OLE DB
1. 개요
OLE DB는 데이터에 접근하는 애플리케이션과 데이터 저장소를 분리하는 기술로, 다양한 데이터 소스에 접근하기 위한 인터페이스를 제공한다. OLE DB는 소비자와 공급자로 구성되며, 마이크로소프트 데이터 액세스 구성 요소(MDAC)의 일부이다. SQL Server 2012가 OLE DB 공급자를 포함하는 마지막 버전이었지만, 이후 사용 중단이 실수로 결정되어 2018년에 새로운 버전이 출시되었다. OLE DB 공급자는 ODBC 드라이버, JDBC 드라이버, ADO.NET 데이터 공급자와 유사하며, 다양한 데이터 저장소에 접근할 수 있도록 한다. 주요 OLE DB 제공자로는 마이크로소프트, 심바 테크놀로지스, 오픈링크 소프트웨어 등이 있다.
-
데이터베이스 API -
임베디드 SQL
임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다. -
데이터베이스 API -
ODBC
ODBC는 응용 프로그램이 데이터베이스 관리 시스템에 접근하도록 하는 표준 API로서, 서로 다른 데이터베이스에 대한 접근 방식을 표준화하여 응용 프로그램이 데이터베이스 종류에 관계없이 동일한 코드로 데이터에 접근하도록 하며, 드라이버 관리자와 데이터베이스 시스템에 특화된 명령으로 변환하는 드라이버로 구성된다. -
SQL -
사용자 정의 함수
사용자 정의 함수는 프로그래밍 언어와 데이터베이스 시스템에서 사용자가 직접 정의하여 재사용할 수 있는 코드 블록이다. -
SQL -
임베디드 SQL
임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다. -
마이크로소프트 API -
윈도우 API
윈도우 API는 마이크로소프트 윈도우 운영 체제에서 응용 프로그램이 시스템 기능에 접근하도록 돕는 인터페이스 집합이며, 다양한 버전으로 발전해 왔고, 현재 Win32가 널리 사용되며, 유연성을 제공하지만 복잡하다는 단점을 보완하기 위해 다양한 래퍼 라이브러리가 개발되었다. -
마이크로소프트 API -
WinFS
WinFS는 마이크로소프트가 개발한 파일 시스템으로, 검색 기능 내장 및 메타데이터 관리를 통해 데이터 관리 효율성을 높이는 것을 목표로 했으나 별도 제품으로 출시되지는 못하고 핵심 기능들이 윈도우 비스타 이후 기술에 통합되었다.
2. 방법론
OLE DB는 데이터 저장소를, 데이터에 접근해야 하는 애플리케이션과 데이터 소스, 세션, 명령, 행 집합을 포함하는 일련의 추상화를 통해 분리한다. 이러한 분리는 서로 다른 애플리케이션이 서로 다른 유형과 데이터 소스에 접근해야 하며, 기술별 메서드를 사용하여 기능에 접근하는 방법을 반드시 알 필요는 없기 때문에 수행되었다. OLE DB는 개념적으로 소비자와 공급자로 나뉜다. 소비자는 데이터에 접근해야 하는 애플리케이션이고, 공급자는 인터페이스를 구현하여 소비자에게 데이터를 제공하는 소프트웨어 구성 요소이다. OLE DB는 마이크로소프트 데이터 액세스 구성 요소(MDAC)의 일부이다.
3. 지원 현황
SQL Server 2012(내부 코드: 'Denali') 출시는 SQL Server용 OLE DB 공급자를 포함하는 마지막 버전이었지만, 7년간 지원이 지속될 예정이었다. 관련 마이크로소프트 FAQ에 따르면, "OLE DB 위에서 실행될 수 있는 ADO.NET과 같은 공급자는 OLE DB가 더 이상 사용되지 않게 되면 OLE DB를 지원하지 않을 것입니다." 그러나 FAQ의 동일한 답변은 원래 게시물이 SQL Server용 OLE DB 공급자에만 관련되어 있다고 언급하므로 OLE DB 자체의 입장은 여전히 불분명했다. 동일한 FAQ는 대부분의 경우 ODBC가 OLE DB보다 성능이 더 좋다고 명시했다.
그러나 이후 검토 과정에서 SQL Server 내에 OLE DB에 여전히 의존하는 상당한 시나리오가 있고, 이를 변경하면 기존 고객 시나리오가 중단될 수 있기 때문에 사용 중단 결정은 실수였다. 2017년 10월 6일, 마이크로소프트는 OLE DB가 사용 중단되지 않았으며 종속성을 유지하기 위한 새로운 버전이 2018년 초에 출시될 것이라고 발표했다.
4. OLE DB 제공자
OLE DB 제공자는 OLE DB 소비자가 데이터 원본과 상호 작용할 수 있도록 하는 소프트웨어 구성 요소이다. OLE DB 제공자는 ODBC 드라이버, JDBC 드라이버, ADO.NET 데이터 공급자와 유사하다.
OLE DB 공급자는 텍스트 파일 및 스프레드시트와 같은 단순한 데이터 저장소부터 Oracle, Microsoft SQL Server, Sybase ASE 및 기타 여러 복잡한 데이터베이스에 이르기까지 다양한 데이터 저장소에 접근하도록 만들 수 있다. 또한 이메일 시스템과 같은 계층적 데이터 저장소에 대한 접근 권한을 제공할 수도 있다.
그러나 서로 다른 데이터 저장소 기술은 서로 다른 기능을 가질 수 있기 때문에 모든 OLE DB 공급자가 OLE DB 표준에서 사용할 수 있는 모든 가능한 인터페이스를 구현할 수 있는 것은 아니다. 사용할 수 있는 기능은 COM 객체를 사용하여 구현된다. OLE DB 공급자는 데이터 저장소 기술 기능을 특정 COM 인터페이스에 매핑한다. 마이크로소프트는 관련된 데이터 저장소 기술에 따라 적용되지 않을 수 있으므로 인터페이스의 가용성을 "공급자별"로 설명한다. 공급자는 데이터 저장소의 기능을 보강할 수 있으며, 이러한 기능을 마이크로소프트 용어로 서비스라고 한다.
4.1. 주요 OLE DB 제공자
* 마이크로소프트는 MDAC와 JET 키트의 일부로 여러 OLE DB 제공자를 제공한다.
* 심바 테크놀로지스는 다차원, 스타형 데이터베이스 연결을 위한 OLAP 제공자의 사용자 지정 OLE DB를 만드는 데 쓰이는 SDK인 심바프로바이더(SimbaProvider)를 제공한다.
* 오픈링크 소프트웨어는 ODBC와 JDBC에 대한 OLE DB 브리지뿐 아니라 수많은 SQL DBMS를 위한 OLE DB 제공자를 제공한다.
* https://www.sqlsummit.com/oledbVen.htm SQLSummit.com: OLE DB 제공자의 카탈로그
* https://www.ibprovider.com/ 인터베이스와 파이어보드요 OLE DB 제공자 (14개의 데이터베이스 형태 지원, 무료/프로 버전 모두 사용 가능)
* https://www.zenkov.com/ OLE DB Provider for PostgreSQL