ODBC와 OLE DB는 경쟁하는 두 가지 데이터 액세스 기술입니다. 특히 SQL Server와 관련하여 Microsoft는 두 가지 모두를 서로 다른시기에 선호하는 미래 방향으로 홍보했습니다.
ODBC
ODBC는 테이블과 같은 데이터에 액세스하기위한 업계 표준 인터페이스입니다. 주로 데이터베이스 용으로 개발되었으며 레코드 모음으로 데이터를 제공하며 각 레코드는 필드 모음으로 그룹화됩니다. 각 필드에는 포함 된 데이터 유형에 적합한 자체 데이터 유형이 있습니다. 각 데이터베이스 공급 업체 (Microsoft, Oracle, Postgres…)는 데이터베이스에 대한 ODBC 드라이버를 제공합니다.
데이터베이스 테이블은 아니지만 같은 방식으로 데이터에 액세스하는 것이 충분히 유사한 객체에 대한 ODBC 드라이버도 있습니다. 스프레드 시트, CSV 파일 및 열 보고서가 그 예입니다.
OLE DB
OLE DB는 데이터 액세스를위한 Microsoft 기술입니다. ODBC와 달리 전자 메일 메시지, 웹 페이지, Word 문서 및 파일 디렉토리와 같은 테이블과 데이터가 아닌 데이터를 모두 포함합니다. 그러나 객체 지향이 아니라 프로 시저 지향이며 데이터 소스에 대한 액세스를 개발하기에는 다소 어려운 인터페이스로 간주됩니다. 이를 극복하기 위해 ADO는 OLE DB를 기반으로 한 객체 지향 계층으로 설계되었으며 더 강력하면서도 강력한 방법을 제공합니다. ADO의 장점은 모든 데이터 소스 유형에 적용되는 속성에 액세스하는 데 쉽게 사용할 수있는 것처럼 지정된 유형의 데이터 소스에 특정한 속성을 조작하는 데 사용할 수 있다는 것입니다. 불만족스러운 최저 공통 분모로 제한되지 않습니다.
모든 데이터베이스에는 ODBC 드라이버가 있지만 OLE DB 드라이버는 없습니다. 그러나 OLE와 ODBC 사이에 사용 가능한 인터페이스가 있는데 OLE DB와 같은 방식으로 액세스하려는 경우 사용할 수 있습니다. 이 인터페이스를 MSDASQL (ODBC 용 Microsoft OLE DB 공급자)이라고합니다.
SQL Server 데이터 액세스 기술
SQL 서버는 Microsoft에서 만든 (1)이며, 이후 (2) 마이크로 소프트 데이터베이스 플랫폼은 ODBC와 OLE DB 모두는 그것을위한 자연 적합합니다.
ODBC
다른 모든 데이터베이스 플랫폼에는 ODBC 인터페이스가 있었으므로 Microsoft는 SQL Server 용 인터페이스를 제공해야했습니다. 또한 Microsoft Access의 원래 기본 기술인 DAO는 ODBC를 모든 외부 데이터 원본과 통신하는 표준 방법으로 사용합니다. 이로 인해 ODBC 인터페이스가 정식으로 작성되었습니다. SQL Server 2000과 함께 릴리스 된 SQL Server 용 버전 6 ODBC 드라이버는 여전히 사용 중입니다. 후속 릴리스에서 나타나는 새로운 데이터 유형, 연결 기술, 암호화, HA / DR 등을 처리하기 위해 업데이트 된 버전이 출시되었습니다. 2018 년 9 월 7 일 현재 최신 릴리스는 2018 년 3 월 23 일에 릴리스 된 v13.1“SQL Server 용 ODBC 드라이버”입니다.
OLE DB
이 기술은 Microsoft 자체 기술이며, ADO 계층과 함께 약 2002 – 2005 년 사이에 강력하게 홍보하고있었습니다. 그들은 이것이 선택한 데이터 액세스 기술이되기를 바랐습니다. (ADO를 Access 2002/2003에서 데이터에 액세스하기위한 기본 방법으로 만들었습니다.) 그러나 다음과 같은 여러 가지 이유로 인해 이것이 일어나지 않을 것이라는 것이 분명해졌습니다.
- 세계는 Microsoft 기술로 전환하지 않고 ODBC에서 멀어 질 것입니다.
- DAO / ODBC는 ADO / OLE DB보다 빠르며 MS Access에 완전히 통합되어 자연스럽게 죽지 않을 것입니다.
- Microsoft에서 개발 한 새로운 기술, 특히 ADO.NET도 ODBC와 직접 통신 할 수 있습니다. ADO.NET은 OLE DB와 직접 통신 할 수도 있기 때문에 (ADO를 역류로 남겨 두는 것만) ADO와는 달리 (ADO와는 달리) 그것에 의존하지 않았습니다.
이러한 이유 등 , 마이크로 소프트는 실제로 데이터 액세스 기술로 OLE DB를 사용되지 V11 (SQL 서버 2012) 이후 SQL Server 릴리스합니다. 이 시점 이전에는 ODBC와 OLE DB 기술을 모두 지원하는 SQL Server Native Client를 생성하고 업데이트했습니다. 그러나 2012 년 말에 그들은 SQL Server에서 네이티브 관계형 데이터 액세스를 위해 ODBC와 연계 할 것이라고 발표했으며, 다른 모든 사람들도 그렇게하도록 장려했습니다. 또한 v11 / SQL Server 2012 이후의 SQL Server 릴리스 는 OLE DB를 적극적으로 지원 하지 않을 것이라고 언급했습니다 .
이 발표는 항의의 폭풍을 일으켰다. 사람들은 왜 MS가 자신이 맡기도록 수년 동안 소비했던 기술을 갑자기 사용하지 않는지 이해하지 못했습니다. 또한 SQL Server에 밀접하게 연결된 MS 작성 응용 프로그램 인 SSAS / SSRS 및 SSIS는 OLE DB에 전적으로 또는 부분적으로 의존했습니다. 또 다른 불만은 OLE DB에 ODBC로 다시 포팅 할 수없는 바람직한 기능이 있다는 것입니다. 결국 OLE DB에는 많은 장점이있었습니다.
2017 년 10 월 Microsoft는 OLE DB를 공식적으로 폐기하고 폐기하지 않았습니다 . 이들은 Native Client 11의 기존 기능 세트를 보유하고 다중 서브넷 장애 조치 및 TLS 1.2 지원을 도입 할 새로운 드라이버 (MSOLEDBSQL)가 임박했다고 발표했습니다. 이 드라이버는 2018 년 3 월에 출시되었습니다.