OLE DB(Object Linking and Embedding, Database) 또는 객체 연결 삽입 데이터베이스마이크로소프트사가 개발한 API로, 통일된 방식으로 저장된 여러 종류의 데이터에 접근하기 위해 만들어졌다. 컴포넌트 오브젝트 모델 (COM)을 사용하여 추가된 인터페이스 집합이며 객체 연결 삽입과는 관련이 없다. ODBC를 높은 수준으로 대체하면서도 그 뒤를 잇도록 설계되었으며 오브젝트 데이터베이스SQL 추가가 필수적이지 않은 스프레드시트 같이 더 다양한 범위의 비관계형 데이터베이스를 지원하기 위해 기능을 확장하였다.

OLE DB는 데이터 저장을 데이터소스, 세션, 명령어, 열 집합을 포함한 추상 집합을 통해 접근해야 하는 응용 프로그램과 따로 떼어놓는다. 그 까닭은 다른 응용 프로그램들이 여러 종류와 원천의 데이터에 접근해야 하며 기술적인 측면에서 어떻게 동작하는지를 알 필요는 없기 때문이다. OLE DB는 개념적으로 소비자(consumer)와 제공자(provider)로 구분되어 있다. 소비자는 데이터에 접근해야 하는 응용 프로그램이며 제공자는 인터페이스를 추가하는 소프트웨어 구성 요소이다. 이로써 데이터는 소비자에게 전달된다. OLE DB는 마이크로소프트 데이터 액세스 구성 요소(MDAC) 스택의 일부이다. MDAC는 마이크로소프트 기술들을 한데 모아 놓은 것으로, 프로그래머가 거의 모든 데이터 저장소에 접근하는 통일되고 포괄적인 방법을 허용해 주는 프레임워크로서 함께 상호작용을 할 수 있게 도와 준다. 텍스트 파일과 스프레드시트로 오라클 SQL 서버, Sybase ASE와 같은 복잡한 데이터베이스를 통하여 이러한 단순한 데이터 저장소를 접근할 수 있게 OLE DB 제공자를 만들 수 있다. 또, 전자 우편 시스템과 같은 계층 데이터저장소로의 접근을 제공할 수 있다.

그러나 서로 다른 저장 기술은 각기 다른 수행 기능을 보이므로 OLE DB 제공자는 OLE DB에 이용할 수 있는 가능한 모든 인터페이스를 추가하지 않을 수 있다. 사용할 수 있는 수행 기능은 COM 오브젝트를 사용함으로써 추가할 수 있다. OLE DB 제공자는 데이터 저장 기술 기능을 특정한 COM 인터페이스에 매핑할 것이다. 마이크로소프트는 제공자 정의(provider-specific)로 인터페이스를 사용할 수 있다고 설명한다. 이는 이에 수반되는 데이터베이스 기술에 의지하여 적용하지 못할 수도 있음을 말한다. 다만 제공자들이 데이터 저장 수행 기능을 늘릴 수 있으며 이러한 수행 기능들은 마이크로소프트 환경에서 서비스(services)로 알려져 있다.

OLE DB 제공자 편집