[odbc] OLE DB와 ODBC 데이터 소스의 차이점은 무엇입니까?

pivotcache에 대한 MS Excel 도움말 기사를 읽고 OLE DB 및 ODBC 소스의 의미가 무엇인지 궁금 합니다.

… 현재는 이전 버전의 Microsoft Excel과의 호환성을 위해 존재하는 SQL 속성 대신 CommandText 속성을 사용해야합니다. 두 속성을 모두 사용하는 경우 CommandText 속성 값이 우선합니다.

들어 OLE DB 소스 의 CommandType을 속성은 CommandText 속성의 값을 설명합니다.

들어 ODBC 소스 , CommandText 속성을 정확히 SQL 속성과 같은 기능과 속성을 설정하면 데이터의 원인은 갱신 할 …

나는 당신의 짧은 답변에 정말 감사합니다.



답변

에 따르면 ADO : ActiveX 데이터 개체 , 2001 년 한빛 출판 제이슨 T 로프의 책, (여기에 뛰어난 다이어그램), 그는 모질라 말했다 정확하게 무엇을 말한다.

(도서의 7 페이지에서 직접)

  • ODBC는 관계형 데이터베이스에만 액세스를 제공합니다
  • OLE DB는 다음과 같은 기능을 제공합니다
    • 형식이나 위치에 관계없이 데이터에 액세스
    • ODBC 데이터 소스 및 ODBC 드라이버에 대한 전체 액세스

따라서 OLE DB는 ODBC 드라이버 계층을 통해 SQL 기반 데이터 소스와 상호 작용하는 것 같습니다.

대체 텍스트

이 이미지가 올바른지 100 % 확실하지 않습니다. 확실하지 않은 두 가지 연결은 ADO C-api를 통한 ADO.NET과 SQL 기반 데이터 소스에 대한 ODBC를 통한 OLE DB입니다 ( 이 다이어그램 에서 저자는 ODBC를 통해 OLE DB의 액세스를 허용하지 않기 때문에) 실수입니다).


답변

ODBC :-관계형 데이터베이스 (Sql Server, Oracle 등)에만 해당

OLE DB :-관계형 및 비 관계형 데이터베이스 모두에 해당합니다. (Oracle, Sql-Server, Excel, 원시 파일 등)


답변

여기 내 이해 (권한 없음)가 있습니다.

ODBC는 대부분의 소프트웨어 공급 업체에서 지원하는 기술에 독립적 인 개방형 표준입니다. OLEDB는 COM 시대의 기술 별 Microsoft API입니다 (COM은 .NET 이전의 구성 요소 및 상호 운용성 기술이었습니다)

언젠가는 다양한 데이터 소스 공급 업체 (예 : Oracle 등)가 Microsoft 데이터 소비자와 호환되고 해당 제품에 대한 OLEDB 공급자를 개발했지만 대부분의 경우 OLEDB는 Microsoft 전용 표준으로 남아 있습니다. 이제 대부분의 Microsoft 데이터 소스는 주로 레거시 ODBC 데이터 소비자와의 호환성을 위해 ODBC 및 OLEDB 액세스를 모두 허용합니다. 또한 ODBC 용 OLEDB 공급자 (래퍼)가있어 원하는 경우 OLEDB를 사용하여 ODBC 데이터 원본에 액세스 할 수 있습니다.

기능 측면에서 OLEDB는 ODBC보다 실질적으로 풍부하지만 한 고리에서 규칙까지의 모든 증후군 (과도하게 일반적이고 지나치게 복잡하며 비 소견)이 있습니다.

Microsoft 이외의 세계에서는 ODBC 기반 데이터 공급자와 클라이언트가 널리 사용되며 어디에도 가지 않습니다.

Microsoft bubble OLEDB는 해당 데이터 소스의 기본 전송 계층 (예 : MS SQL Server 용 TDS) 위에 구축 된 기본 .NET API를 선호하여 단계적으로 폐지되고 있습니다.


답변

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에서 데이터에 액세스하기위한 기본 방법으로 만들었습니다.) 그러나 다음과 같은 여러 가지 이유로 인해 이것이 일어나지 않을 것이라는 것이 분명해졌습니다.

  1. 세계는 Microsoft 기술로 전환하지 않고 ODBC에서 멀어 질 것입니다.
  2. DAO / ODBC는 ADO / OLE DB보다 빠르며 MS Access에 완전히 통합되어 자연스럽게 죽지 않을 것입니다.
  3. 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 월에 출시되었습니다.


답변

매우 기본적인 수준에서 이는 다른 데이터 소스 (예 : 데이터베이스)에 대해 다른 API 일뿐입니다. OLE DB는 더 새롭고 더 좋습니다.

Wikipedia에서 더 자세히 읽을 수 있습니다.

  1. OLE DB
  2. ODBC

즉, ODBC 드라이버 또는 OLE DB 드라이버를 사용하여 동일한 데이터베이스에 연결할 수 있습니다. 이 경우 데이터베이스 동작의 차이는 책이 참조하는 것입니다.


답변

둘 다 데이터 공급자 (코드가 데이터 소스와 통신하는 데 사용할 API)입니다. 1998 년에 소개 된 Oledb는 ODBC를 대체하기위한 것입니다 (1992 년에 도입 됨)


답변

• 2011 년 8 월 : Microsoft, OLE DB 지원 중단 ( Microsoft는 네이티브 관계형 데이터 액세스를 위해 ODBC와 정렬 중임 )

• 2017 년 10 월 : Microsoft는 OLE DB를 폐기합니다 ( SQL Server 용 OLE DB 드라이버의 새 릴리스 발표 ).