데이터베이스 연결 열기
Open Database Connectivity컴퓨팅에서 Open Database Connectivity(ODBC)는 데이터베이스 관리 시스템(DBMS)에 액세스하기 위한 표준 애플리케이션 프로그래밍 인터페이스(API)입니다.ODBC 설계자는 데이터베이스 시스템 및 운영 체제로부터 [citation needed]독립하는 것을 목표로 했습니다.ODBC를 사용하여 작성된 애플리케이션은 데이터 액세스 코드를 거의 변경하지 않고 클라이언트 측과 서버 측 모두에서 다른 플랫폼으로 이식할 수 있습니다.
ODBC는 응용 프로그램과 DBMS 간의 변환 계층으로 ODBC 드라이버를 사용하여 DBMS 독립성을 실현합니다. 응용 프로그램은 연결된 ODBC 드라이버 관리자를 통해 ODBC 기능을 사용하고 드라이버는 쿼리를 DBM에 전달합니다. ODBC 드라이버는 프린터 드라이버 또는 다른 드라이버와 유사하다고 생각할 수 있습니다.응용 프로그램이 사용하는 표준 기능 세트 및 DBMS 고유의 기능을 구현합니다.ODBC를 사용할 수 있는 응용 프로그램을 "ODBC 호환"이라고 합니다.ODBC 준거 애플리케이션은, 드라이버가 인스톨 되고 있는 임의의 DBMS 에 액세스 할 수 있습니다.드라이버는 모든 주요 DBMS, 주소록 시스템 및 Microsoft Excel 등의 기타 많은 데이터 소스, 텍스트 또는 CSV(쉼표로 구분된 값) 파일에도 존재합니다.
ODBC는 원래 1990년대 초에 Microsoft와 Simba Technologies에 의해 개발되었으며 Unix 및 메인프레임 필드에서 SQL Access Group에 의해 표준화된 Call Level Interface(CLI; 콜레벨 인터페이스)의 기반이 되었습니다.ODBC는 CLI 작업의 일환으로 제거된 몇 가지 기능을 보유하고 있습니다.완전한 ODBC는 나중에 이러한 플랫폼으로 다시 이식되어 CLI보다 훨씬 더 잘 알려진 사실상의 표준이 되었습니다.CLI는 ODBC와 비슷하며 애플리케이션을 거의 변경하지 않고 하나의 플랫폼에서 다른 플랫폼으로 이식할 수 있습니다.
역사
ODBC 이전
1970년대 메인프레임 기반 관계형 데이터베이스의 도입으로 데이터 액세스 방법이 확산되었습니다.일반적으로 이러한 시스템은 간단한 명령어 프로세서와 함께 작동하여 사용자가 영어와 같은 명령어를 입력하고 출력을 수신할 수 있습니다.가장 잘 알려진 예는 IBM의 SQL과 Ingres 프로젝트의 QUEL입니다.이러한 시스템은 다른 응용 프로그램이 데이터에 직접 액세스하는 것을 허용할 수도 있고 허용하지 않을 수도 있습니다. 또한 다양한 방법론을 사용한 응용 프로그램도 마찬가지입니다.SQL의 도입은 언어 표준화 문제를 해결하기 위한 것이었지만 구현에 있어 상당한 차이는 남아 있었습니다.
SQL 언어는 기본적인 프로그래밍 기능만 가지고 있었기 때문에 사용자들은 종종 다른 언어로 작성된 프로그램(예: Fortran 또는 C) 내에서 SQL을 사용하고 싶어했습니다.그 결과 임베디드 SQL이라는 개념이 생겨났고, 이를 통해 SQL 코드를 다른 언어로 삽입할 수 있게 되었습니다.예를 들어 다음과 같은 SQL 문이 있습니다.SELECT * FROM city
C 소스 코드 내에 텍스트로 삽입할 수 있으며 컴파일 중에 명령문을 SQL 시스템에 전달하는 라이브러리 내의 함수를 직접 호출하는 커스텀 형식으로 변환됩니다.스테이트먼트에서 반환된 결과는 다음과 같은 C 데이터 형식으로 해석됩니다.char *
유사한 라이브러리 코드를 사용합니다.
Embedded SQL 접근법에는 몇 가지 문제가 있었습니다.SQL, 임베디드 SQLs의 다양한 널리, 플랫폼 뿐만 아니라 플랫폼지만, 하나의 플랫폼에 언어에서조차에서 이들을 다양한처럼 IBMDb2을 호출할 매우 있는 임베디드 SQL개념은 살을 위해서 그들만의 SQL[의심스러운 –을 논의하]또 다른 주요 문제로에서 다를 것 줄 만한 시스템 –.SQL코드 cou.ld는 프로그램의 소스 코드에서만 변경되므로 쿼리에 대한 작은 변경도 상당한 프로그래머의 수정 노력이 필요합니다.SQL 시장에서는 이를 정적 SQL이라고 불렀습니다.이는 거의 모든 SQL 시스템과 함께 제공된 명령줄 인터페이스나 호출될 때까지 SQL을 일반 텍스트로 남겨둔 프로그래밍 인터페이스와 같이 언제든지 변경할 수 있는 동적 SQL입니다.동적 SQL 시스템은 1980년대에 SQL 벤더에게 주요 관심사가 되었습니다.
오래된 메인프레임 데이터베이스와 이를 기반으로 한 새로운 마이크로컴퓨터 기반 시스템은 일반적으로 사용자와 데이터베이스 엔진 사이에 SQL과 같은 명령 프로세서가 없었습니다.대신 대형 메인프레임 시스템의 경우 프로그래밍 라이브러리, dBASE 및 유사한 애플리케이션의 경우 명령줄 인터페이스 또는 대화형 양식 시스템인 프로그램을 통해 데이터에 직접 액세스했습니다.일반적으로 기계에서 실행 중인 다른 프로그램에서 dBASE의 데이터에 직접 액세스할 수 없었습니다.이러한 프로그램은 종종 라이브러리를 통해 이 데이터에 액세스하는 방법을 제공받을 수 있지만, 다른 데이터베이스 엔진이나 같은 엔진 내의 다른 데이터베이스에서는 작동하지 않습니다.사실상, 그러한 모든 시스템은 정적인 상태였고, 이는 상당한 문제를 야기했다.
초기 노력
1980년대 중반까지 마이크로컴퓨터의 급속한 개선, 특히 그래픽 사용자 인터페이스와 Lotus 1-2-3과 같은 데이터가 풍부한 애플리케이션 프로그램의 도입으로 클라이언트-서버 컴퓨팅에서 선택하는 클라이언트 측 플랫폼으로 개인용 컴퓨터를 사용하는 것에 대한 관심이 높아졌습니다.이 모델에서는 대형 메인프레임과 미니컴퓨터가 주로 로컬 에리어 네트워크를 통해 데이터를 해석, 표시 및 조작하는 마이크로컴퓨터에 데이터를 제공하기 위해 사용됩니다.이 모델이 기능하기 위해서는 데이터 액세스 표준이 필요했습니다.메인프레임 분야에서는 한 회사의 모든 컴퓨터가 1사의 컴퓨터이며 클라이언트가 직접 통신하는 컴퓨터 단말기일 가능성이 높지만 마이크로 분야에서는 이러한 표준화가 이루어지지 않아 어떤 클라이언트도 네트워킹 sy를 사용하여 서버에 액세스할 수 있습니다.줄기.
1980년대 후반에는 이러한 목적을 위한 추상화 계층을 제공하기 위한 여러 가지 노력이 진행 중이었다.이들 중 일부는 메인프레임과 관련된 것으로, 이러한 머신에서 실행되는 프로그램이 다양한 SQL을 변환하고 다른 메인프레임 또는 마이크로컴퓨터 프로그램에서 호출할 수 있는 단일 공통 인터페이스를 제공하도록 설계되었습니다.이러한 솔루션에는 IBM의 DRDA(Distributed Relational Database Architecture)와 Apple 컴퓨터의 데이터 액세스 언어가 포함되어 있습니다.그러나 훨씬 더 일반적인 것은 마이크로컴퓨터 상에서 실행되는 시스템으로, 여기에는 필요한 네트워킹 또는 파일 번역 지원이 포함된 전체 프로토콜 스택이 포함됩니다.
이러한 시스템의 초기 예 중 하나는 Lotus Development의 DataLens로, 처음에는 청사진으로 알려져 있었습니다.1-2-3용으로 개발된 청사진은 SQL/DS, DB2, FOCUS 및 다양한 유사한 메인프레임 시스템뿐만 아니라 dBase와 같은 마이크로컴퓨터 시스템 및 Microsoft/Ashton-Tate의 초기 노력을 포함하여 다양한 데이터 소스를 지원했습니다.[1]이후 ODBC와 달리 Blueprint는 순전히 코드 기반 시스템이었고 SQL과 같은 명령어에 가까운 언어가 없었습니다.대신 프로그래머들은 데이터 구조를 사용하여 쿼리 정보를 저장했고, 이들 구조 중 많은 부분을 서로 링크함으로써 쿼리를 구성했다.Lotus는 이러한 복합 구조를 쿼리 [2]트리라고 불렀습니다.
같은 시기에 Sybase(Tom Haggin), Tandem Computers(Jim Gray & Rao Yendluri) 및 Microsoft(Kyle G)의 멤버로 구성된 업계 팀이 표준화된 다이내믹 SQL 개념을 개발하고 있었습니다.시스템의 대부분은 Sybase의 DB-Library 시스템을 기반으로 하며 Sybase 고유의 섹션은 삭제되고 다른 [3]플랫폼을 지원하기 위해 몇 가지 추가가 되었습니다.DB-Library는 특정 언어와 밀접하게 연계된 라이브러리 시스템에서 운영 체제에서 제공하는 라이브러리 시스템으로 업계 전반의 이동에 힘입어 해당 플랫폼의 언어가 표준을 준수해야 했습니다.즉, 단일 라이브러리는 특정 플랫폼 상의 모든 프로그래밍 언어와 함께 사용할 수 있습니다.
Microsoft Data Access API의 첫 번째 초안은 1989년 4월에 발표되었으며, 이는 Lotus의 [4]청사진 발표와 거의 같은 시기입니다.MSDA가 아직 문서 프로젝트일 때 실행 중이었던 청사진의 큰 우위에도 불구하고, Lotus는 SQL이 사실상의 데이터베이스 [2]표준이 될 것이 분명해짐에 따라 MSDA에 참여하게 되었습니다.업계에서 많은 의견을 얻은 후 1989년 여름 표준이 SQL Connectivity(SQLC)[5]가 되었습니다.
SAG 및 CLI
1988년 UNIX 및 데이터베이스 커뮤니티에서 온 여러 벤더가 SQL 언어를 위한 단일 기본 표준을 작성하기 위해 SQL Access Group(SAG)을 결성했습니다.첫 번째 회의에서는 SQL 언어 자체만으로 작업을 수행할 것인지, 아니면 동적 SQL 언어 임베디드 시스템(CLI)[6]을 포함하는 광범위한 표준화를 시도할 것인지에 대해 상당한 논의가 있었습니다.Microsoft의 Kyle Geiger는 당시 MS Data Access로 알려진 초기 초안을 가지고 회의에 참석하면서 DEC(Digital Equipment Corporation)의 Jeff Balboni와 Larry Barnes도 SQLC 회의에 참석하도록 초대했습니다.SQLC는 DEC가 주도하고 있던 CLI 호출에 대한 잠재적인 해결책이었습니다.
새로운 SQLC "gang of 4" (MS, Tandem, DEC 및 Sybase)는 SQLC의 업데이트 버전을 1990년 [7]6월 다음 SAG 회의에 가져왔습니다.SAG는 모든 경쟁 설계에 표준적인 노력을 개방하는 것으로 대응했지만, 많은 제안 중 Oracle Corp만이 심각한 경쟁을 나타내는 시스템을 가지고 있었다.결국 SQLC는 투표를 얻어 표준 초안이 되었습니다.그러나 API의 많은 부분이 삭제된 후에야 표준 문서는 120페이지에서 50페이지로 수정되었습니다.콜 레벨 인터페이스라는 이름이 공식적으로 [7]채택된 것도 이 시기입니다.1995년에 SQL/CLI는 국제 SQL 표준 ISO/IEC 9075-3의 [8]일부가 되었습니다.SAG 자체는 1996년에 X/Open 그룹에 인수되어, 시간이 지남에 따라 The Open Group의 공통 애플리케이션 환경의 일부가 되었습니다.
MS는 원래 SQLC 표준을 계속 사용하면서 CLI 버전에서 제거된 많은 고급 기능을 유지했습니다.여기에는 스크롤 가능한 커서 및 메타데이터 정보 쿼리와 같은 기능이 포함되어 있습니다.API의 명령어는 여러 그룹으로 분할되어 있습니다.Core 그룹은 CLI와 동일하며 레벨1 확장 기능은 드라이버로 구현하기 쉬운 명령어이며 레벨2 명령어에는 커서 등의 고급 기능이 포함되어 있습니다.1991년 12월에 제안된 표준이 발표되었고, 1992년까지 업계의 의견이 수집되어 시스템에 적용되었으며, [9]그 결과 ODBC라는 또 다른 이름이 변경되었습니다.
JET 및 ODBC
이 기간 동안 마이크로소프트는 Jet 데이터베이스 시스템 개발에 한창이었다.Jet은 ISAM 기반의 데이터베이스 엔진(혼동을 일으키기 위해 Jet이라고도 함), 어플리케이션이 데이터에 액세스할 수 있도록 하는 C 기반의 인터페이스 및 동일한 C 인터페이스를 사용하여 Paradox 및 xBase 등의 다른 ISAM 기반 데이터베이스로 입출력을 리다이렉트할 수 있도록 하는 드라이버 Dynamic Link Library(DLL; 다이내믹 링크 라이브러리)의 3가지 주요 서브시스템을 조합했습니다.Jet은 하나의 호출 세트를 사용하여 청사진과 유사한 방식으로 일반적인 마이크로컴퓨터 데이터베이스에 액세스할 수 있도록 했고, 이때 DataLens로 이름을 변경했습니다.그러나 Jet은 SQL을 사용하지 않았습니다. DataLens와 마찬가지로 인터페이스는 C에 있으며 데이터 구조와 함수 호출로 구성되었습니다.
SAG의 표준화에 의해, Microsoft는 Jet 시스템을 새로운 CLI 표준에 적응시킬 수 있었습니다.이를 통해 Windows는 CLI 개발을 위한 최고의 플랫폼이 될 뿐만 아니라 SQL을 사용하여 Jet 및 기타 데이터베이스 모두에 액세스할 수 있습니다.누락된 것은 텍스트 형식의 콜을 Jet에서 사용되는 C 인터페이스로 변환할 수 있는 SQL 파서입니다.이를 해결하기 위해 MS는 PageAhead Software와 제휴하여 기존 쿼리 프로세서인 SIMBA를 사용했습니다.SIMBA는 Jet의 C 라이브러리 위의 파서로 사용되었으며 Jet은 SQL 데이터베이스로 전환되었습니다.또한 Jet은 이러한 C 기반 콜을 다른 데이터베이스로 전송할 수 있기 때문에 SIMBA는 다른 시스템을 쿼리할 수도 있습니다.Microsoft는 스프레드시트 문서를 SQL 접근 가능한 데이터베이스 [10]테이블로 변환하기 위한 Excel용 드라이버를 포함했습니다.
출시 및 지속적인 개발
ODBC 1.0은 1992년 [11]9월에 출시되었습니다.당시에는 SQL 데이터베이스에 대한 직접적인 지원은 거의 없었고(ISAM에 비해), 초기 드라이버는 성능 저하로 유명했습니다.이 중 일부는 콜이 Jet 기반 스택을 경유한 경로로 인해 불가피했습니다. SQL 데이터베이스에 대한 ODBC 콜은 처음에 Simba Technologies의 SQL 방언에서 Jet의 내부 C 기반 형식으로 변환된 후 데이터베이스용 SQL 콜로 다시 변환하기 위해 드라이버로 전달되었습니다.Digital Equipment와 Oracle은 모두 Simba Technologies와 계약을 맺고 데이터베이스용 드라이버를 개발했습니다.[12]
Circa 1993년, OpenLink 소프트웨어, PROGRESS DBMS,[13]만 빨아먹고 그들의 UDBC(ODBC의cross-platform API와 맞먹는 것과 SAG/CLI)SDK과 PROGRESS, 사이 베이스, Oracle, 과 다른 DBMS에 관련된 운전자들과 함께, 유닉스 계열 OS(AIX, HP-UX, 솔라리스, Linux,에 사용하기 위해서 한 처음으로 자체 건조한 제3의 ODBC드라이버의 이송했다. 기타.VMS, Windows NT, OS/2 및 기타 [14]OS.
한편 CLI 표준 작업은 오래 걸렸고 1995년 3월에야 최종 버전이 완성되었습니다.그때까지 Microsoft는 Visgenic Software에 Windows 이외의 플랫폼에서 ODBC를 개발하기 위한 소스 코드 라이선스를 이미 부여하고 있었습니다.Visigenic은 ODBC를 클래식 Mac OS 및 다양한 Unix 플랫폼으로 포팅하여 ODBC는 곧 사실상의 [15]표준이 되었습니다.현재 "Real" CLI는 거의 없습니다.두 시스템은 비슷한 상태로 유지되며 많은 애플리케이션을 거의 [16]또는 전혀 변경하지 않고 ODBC에서 CLI로 이식할 수 있습니다.
시간이 지남에 따라 데이터베이스 벤더는 드라이버 인터페이스를 넘겨받아 자사 제품에 대한 직접 링크를 제공했습니다.Jet 또는 유사한 래퍼와의 중간 변환을 건너뛰면 성능이 향상되는 경우가 많습니다.그러나 그 무렵 Microsoft는 OLE[17] DB 개념(최근 복원)으로 초점을 변경해 주소록에서 텍스트 파일까지 다양한 데이터 소스에 직접 액세스할 수 있게 되었습니다.ActiveX Data Objects(ADO)와 ADO.net를 비롯한 몇 가지 새로운 시스템이 ODBC에서 더욱 주목을 받았습니다.이 시스템은 ODBC와 수명 동안 거의 상호 작용했습니다.
Microsoft가 ODBC에서 직접 작업하는 것에서 관심을 돌리자 Unix 분야는 ODBC를 점점 더 많이 수용하고 있습니다.이는 시장 내에서의 두 가지 변화에 의해 추진되었습니다.GNOME과 같은 그래피컬 사용자 인터페이스(GUI)의 도입으로 이들 소스에 텍스트 이외의 형식으로 접근할 필요가 생겼으며 Postgre와 같은 오픈 소프트웨어 데이터베이스 시스템의 출현입니다.SQL 및 MySQL(처음에는 Unix에서 사용).이후 Apple이 표준 Unix 사이드 iODBC 패키지 Mac OS X 10.2([19]Jaguar)(OpenLink Software가 2001년부터 Mac OS X 10.0 및 Mac OS 9에 대해 독립적으로[20] 제공)를 사용하기 위해 ODBC를 채택함에 따라 ODBC가 크로스 플랫폼 데이터 액세스의 표준으로 굳어졌습니다.
Sun Microsystems는 ODBC 시스템을 자체 개방형 표준인 Java Database Connectivity(JDBC)의 기반으로 사용했습니다.대부분의 경우 JDBC는 C가 아닌 프로그래밍 언어 Java의 ODBC 버전으로 간주할 수 있습니다.JDBC와 ODBC 간의 브리지에서는 Java 기반의 프로그램이 네이티브 JDBC 드라이버가 없는 플랫폼의 ODBC 드라이버를 통해 데이터 소스에 액세스할 수 있습니다.반대로 ODBC-to-JDBC 브릿지를 사용하면 플랫폼 상의 JDBC 드라이버 또는 적절한 ODBC 드라이버가 없는 데이터베이스에서 C 기반 프로그램이 데이터 소스에 액세스할 수 있습니다.
현재의 ODBC
ODBC는 오늘날에도 널리 사용되고 있으며 대부분의 플랫폼과 데이터베이스에서 드라이버를 사용할 수 있습니다.SQLite와 같이 내장되어 있는 데이터베이스 엔진용 ODBC 드라이버는 테스트 및 [21]디버깅을 위해 기존 툴이 이러한 엔진에 프런트 엔드 역할을 할 수 있도록 하는 방법으로 자주 발견됩니다.
그러나 HTML을 중간 포맷으로 사용하는 신 클라이언트 컴퓨팅의 증가로 ODBC의 필요성이 감소했습니다.많은 웹 개발 플랫폼에는 대상 데이터베이스로의 직접 링크가 포함되어 있습니다. MySQL은 매우 일반적입니다.이러한 시나리오에서는 클라이언트 측에서 직접 액세스하거나 여러 클라이언트 소프트웨어 시스템을 지원할 필요가 없습니다.모든 것은 프로그래머가 제공하는 HTML 애플리케이션을 통해 이루어집니다.ODBC가 제공하는 가상화는 더 이상 강력한 요건이 아니며 ODBC 개발도 [citation needed]예전만큼 활발하지 않습니다.그러나 ODBC는 더 이상 클라이언트-서버 프로그래밍에 대한 강력한 요구 사항이 아니지만, 분석 및 데이터 과학 시나리오에서 액세스, 가상화 및 통합에 있어 더욱 중요합니다.이러한 새로운 요건은 반구조화 및 계층화 데이터, 웹 인증 및 성능 향상과 같은 새로운 ODBC 4.0 기능에 반영됩니다.
버전 이력
버전 이력:[22]
- 1.0: 1992년 9월[23] 출시
- 2.0: 1994
- 2.5
- 3.0: 1995년 Intersolv의 John Goodson, IBM의 Frank Pellow 및 Paul Cotton이 ODBC 3.0에[24] 중요한 정보를 제공했습니다.
- 3.5: 1997
- 3.8: 2009, Windows[25] 7 탑재
- 4.0: 개발은 2016년 6월[26] 발표, 2017년 9월 출시된 SQL Server 2017의 첫 구현과 2018년 말 Github 최종 사양의 데스크톱 드라이버 추가
드라이버와 매니저
드라이버
ODBC는 디바이스 드라이버 모델을 기반으로 합니다.드라이버는 표준 명령어 및 함수 세트를 기본 시스템에서 필요한 특정 호출로 변환하는 데 필요한 로직을 캡슐화합니다.예를 들어 프린터 드라이버는 인쇄 시스템을 사용하는 애플리케이션에 표준 인쇄 명령어 세트인 API를 제시한다.이러한 API에 대한 콜은 드라이버에 의해 실제 하드웨어에서 사용되는 형식(PostScript 또는 PCL 등)으로 변환됩니다.
ODBC의 경우 드라이버는 여러 가지 광범위한 범주로 나눌 수 있는 많은 기능을 캡슐화합니다.한 가지 기능은 주로 운전자가 통신하는 DBMS의 검색, 연결 및 연결 해제와 관련이 있습니다.두 번째 세트는 SQL 명령을 ODBC 시스템에서 DBMS로 전송하여 내부적으로 지원되지 않는 명령을 변환 또는 해석하는 데 사용됩니다.예를 들어 커서를 지원하지 않는 DBMS는 드라이버에서 이 기능을 에뮬레이트할 수 있습니다.마지막으로 DBMS의 내부 형식에서 C 언어 형식에 기반한 표준화된 ODBC 형식 집합으로 데이터를 변환하는 데 주로 내부적으로 사용되는 다른 명령 집합이 사용됩니다.
ODBC 드라이버를 사용하면 ODBC 준거 어플리케이션이 데이터 소스(일반적으로 DBMS)를 사용할 수 있습니다.CSV 파일 등의 데이터 소스에 대해서는 드라이버 내부에 작은 DBMS를 실장함으로써 일부 비 DBMS 드라이버가 존재합니다.Oracle, Postgre를 포함한 대부분의 DBMS에 ODBC 드라이버가 있음SQL, MySQL, Microsoft SQL Server(단, Compact CE Edition은 제외), Sybase ASE, SAP[28][29] HANA 및 IBM DB2가 있습니다.기술에 따라 기능이 다르기 때문에 대부분의 ODBC 드라이버는 ODBC 표준에 정의된 모든 기능을 구현하지 않습니다.일부 드라이버는 표준에서 정의되지 않은 추가 기능을 제공합니다.
드라이버 매니저
일반적으로 디바이스 드라이버는 별도의 Manager 계층에 의해 열거, 셋업 및 관리되므로 추가 기능을 제공할 수 있습니다.예를 들어, 인쇄 시스템에는, 드라이버에 스풀 기능을 탑재해, 서포트되고 있는 프린터에 프린트 스풀 기능을 제공하는 기능이 포함되어 있는 경우가 많습니다.
ODBC 에서는, 드라이버 매니저(DM)가 이러한 [30]기능을 제공합니다.DM 에서는, 인스톨 되고 있는 드라이버를 열거해, 리스트로서 표시할 수 있습니다(대부분 GUI 베이스의 형식).
그러나 ODBC 시스템의 운용에 있어서 더욱 중요한 것은 DM의 DSN(데이터 소스 이름) 개념입니다.DSN은 DBMS 자체보다 특정 데이터 소스 연결에 필요한 추가 정보를 수집합니다.예를 들어 동일한 MySQL 드라이버를 사용하여 MySQL 서버에 연결할 수 있지만 로컬 개인 서버에 연결하기 위한 연결 정보는 인터넷 호스팅된 공용 서버에 연결하는 데 필요한 정보와 다릅니다.DSN은 이 정보를 표준화된 형식으로 저장하고 DM은 접속 요구 시 드라이버에게 제공합니다.DM에는 사람이 읽을 수 있는 이름을 사용하여 DSN 목록을 표시하고 런타임에 DSN을 선택하여 다른 리소스에 연결하는 기능도 포함되어 있습니다.
DM에는 부분적으로 완전한 DSN을 저장하는 기능도 포함되어 있습니다.실행시에 사용자에게 누락된 정보를 요구하는 코드와 로직이 포함되어 있습니다.예를 들어 필요한 암호 없이 DSN을 생성할 수 있습니다.ODBC 응용 프로그램이 이 DSN을 사용하여 DBMS에 연결을 시도하면 시스템은 일시 중지되고 계속하기 전에 사용자에게 암호를 제공하도록 요청합니다.이것에 의해, 애플리케이션 개발자는 이러한 종류의 코드를 작성할 필요가 없어져, 어떤 질문을 할 필요가 없어집니다.이 모든 것이 드라이버와 DSN에 포함되어 있습니다.
브리징 설정
브릿지는 특별한 종류의 드라이버입니다: 다른 드라이버 기반 기술을 사용하는 드라이버입니다.
ODBC-to-JDBC(ODBC-JDBC) 브리지
ODBC-JDBC 브릿지는 JDBC 드라이버의 서비스를 사용하여 데이터베이스에 연결하는 ODBC 드라이버로 구성됩니다.이 드라이버는 ODBC 함수 호출을 JDBC 메서드 호출로 변환합니다.프로그래머는 일반적으로 일부 데이터베이스용 ODBC 드라이버가 없지만 JDBC 드라이버에 액세스할 수 있는 경우 이러한 브리지를 사용합니다.예:OpenLink ODBC-JDBC 브리지, SequeLink ODBC-JDBC 브리지.
JDBC/ODBC(JDBC-ODBC) 브리지
JDBC-ODBC 브릿지는 타겟 데이터베이스에 접속하기 위해 ODBC 드라이버를 사용하는 JDBC 드라이버로 구성됩니다.이 드라이버는 JDBC 메서드 호출을 ODBC 함수 호출로 변환합니다.프로그래머는 일반적으로 특정 데이터베이스에 JDBC 드라이버가 없지만 ODBC 드라이버를 통해 액세스할 수 있는 경우 이러한 브리지를 사용합니다.Sun Microsystems는 JVM에 이러한 브리지 중 하나를 포함시켰지만 JDBC 드라이버가 거의 존재하지 않는 동안 이를 임시방편으로 간주했습니다(JDBC-ODBC 브릿지는 Java[31] 8의 JVM에서 삭제되었습니다).Sun은 실제 가동 환경에 브릿지를 의도한 적이 없으며 일반적으로 사용을 권장하지 않습니다.2008년 현재[update] 독립 데이터 액세스 벤더는 JDBC-ODBC 브릿지를 제공하고 있습니다.이는 두 메커니즘의 현재 표준을 지원하며 JVM의 빌트인을 [citation needed]훨씬 능가하는 성능을 제공합니다.예:OpenLink JDBC-ODBC 브리지, SequeLink JDBC-ODBC 브리지.
OLE DB-to-ODBC 브리지
OLE DB-ODBC 브리지는 OLE DB 공급자로 구성되어 ODBC 드라이버의 서비스를 사용하여 대상 데이터베이스에 연결합니다.이 공급자는 OLE DB 메서드 호출을 ODBC 함수 호출로 변환합니다.프로그래머는 일반적으로 주어진 데이터베이스에 OLE DB 공급자가 없지만 ODBC 드라이버를 통해 액세스할 수 있는 경우 이러한 브리지를 사용합니다.Microsoft는 MSDASQL을 출하하고 있습니다.DLL은 MDAC 시스템 컴포넌트 번들의 일부로서 다른 데이터베이스 드라이버와 함께 COM 인식 언어(Visual Basic 등)로 개발을 단순화합니다.셋째 당사자들은 그러한, 특히 OpenLink 소프트웨얼 때 마이크로 소프트는 처음 그들의 64비트 OS별 분류를 이 다리를 비난했다의 64비트 OLEDBProviderODBC데이터 원본의 간격을 메웠다 개발했다.[32](Microsoft후에, 64비트 WindowsWindowsServer2008및 WindowsVistaSP1부터 시작하여 MSDASQL의 64비트 버전에 선적되고 있다..) 예:OpenLink OLEDB-ODBC 브리지, SequeLink OLEDB-ODBC 브리지.
ADO.NET에서ODBC 브릿지
ADO.NET-ODBC 브릿지는 ADO로 구성됩니다.ODBC 드라이버의 서비스를 사용하여 대상 데이터베이스에 연결하는 NET 공급자입니다.이 공급자는 ADO를 변환합니다.NET 메서드가 ODBC 함수 호출을 호출합니다.프로그래머는 보통 특정 데이터베이스에 ADO가 없을 때 이러한 브리지를 사용합니다.NET 프로바이더. 단, ODBC 드라이버를 통해 액세스 할 수 있습니다.Microsoft는 MDAC 시스템 컴포넌트 번들의 일부로서 다른 데이터베이스 드라이버와 함께 C#의 개발을 심플하게 하기 위해 1개를 출하하고 있습니다.서드파티도 이와 같이 발전하고 있다.예:OpenLink ADO.NET-ODBC 브리지, SequeLink ADO.NET-ODBC 브리지
「 」를 참조해 주세요.
- GNU 데이터 액세스
- Java Database Connectivity(Java Database Connectivity)
- Windows 오픈 서비스 아키텍처
- ODBC 관리자
레퍼런스
- 참고 문헌
- Geiger, Kyle (1995). Inside ODBC. Microsoft Press. ISBN 9781556158155.
- 인용문
- ^ McGlinn, Evan(1988), 설계도, 외부 데이터에 1-2-3 액세스", InfoWorld, vol.10, no.14, 1988년 4월 4일, 페이지 1,69
- ^ a b 가이거 1995, 페이지 65
- ^ 가이거 1995, 페이지 86-87
- ^ 가이거 1995, 페이지 56
- ^ 가이거 1995, 페이지 106
- ^ 가이거 1995, 페이지 165
- ^ a b 가이거 1995, 186-187페이지.
- ^ ISO/IEC 9075-3 – 정보기술 – 데이터베이스 언어 – SQL – Part 3: 콜레벨 인터페이스 (SQL/CLI)
- ^ 가이거 1995, 페이지 203
- ^ Harindranath, G; Jože Zupančič (2001). New perspectives on information systems development: theory, methods, and practice. Springer. p. 451. ISBN 978-0-306-47251-0. Retrieved 2010-07-28.
The first ODBC drivers […] used the SIMBA query processor, which translated calls into the Microsoft Jet ISAM calls, and dispatched the calls to the appropriate ISAM driver to access the backend […]
- ^ "Linux/UNIX ODBC – What is ODBC?".
- ^ "우리의 역사", Simba Technologies
- ^ Idehen, Kingsley Uyi (October 1994). "ODBC and progress V7.2d". Usenet Newsgroup comp.databases. Retrieved 13 December 2013.
- ^ Idehen, Kingsley Uyi (1995-07-18). "Need ODBC/Ingres driver for DEC OSF/1". Usenet Newsgroup comp.databases.oracle. Retrieved 13 December 2013.
- ^ Sippl, Roger(1996) "SQL Access Group의 콜레벨 인터페이스", Dobbs 박사, 1996년 2월 1일
- ^ "ODBC와 CLI의 유사점과 차이점", InfoSphere Classic 설명서, IBM, 2008년 9월 26일
- ^ "OLE DB and SQL Server: History, End-Game, and some Microsoft "dirt"". 25 September 2011.
- ^ "Announcing the new release of OLE DB Driver for SQL Server".
- ^ Anderson, Andrew (2003-06-20). "Open Database Connectivity in Jaguar". O'Reilly MacDevCenter.com. O'Reilly Media, Inc. Retrieved 13 December 2013.
- ^ Sellers, Dennis (2001-07-17). "ODBC SDK update out for Mac OS Classic, Mac OS X". MacWorld. IDG Consumer & SMB. Retrieved 13 December 2013.
- ^ Werner, Christian (2018) "SQLite ODBC Driver" 2014-06-26 Wayback Machine에서 보관, 2018-02-24
- ^ "ODBC Versions". Linux/UNIX ODBC. Easysoft. Retrieved 2009-10-27.
- ^ Antal, Tiberiu Alexandru. "Access to an Oracle database using JDBC" (PDF). Cluj-Napoca: Technical University of Cluj-Napoca. p. 2. Archived from the original (PDF) on 2011-07-22. Retrieved 2009-10-27.
ODBC 1.0 was released in September 1992
- ^ Microsoft CorporationMicrosoft ODBC 3.0 Programmer's Reference and SDK Guide, Volume 1.Microsoft Press.1997년 2월 (ISBN 9781572315167)
- ^ "What's New in ODBC 3.8". Microsoft. Retrieved 2010-01-13.
Windows 7 includes an updated version of ODBC, ODBC 3.8.
- ^ Rukmangathan, Krishnakumar (2016-06-07). "A new release of ODBC for Modern Data Stores". Microsoft Data Access / SQL BI Technologies Blog. Microsoft. Retrieved 2017-01-03.
After more than 15 years since the last release, Microsoft is looking at updating the Open Data Base Connectivity (ODBC) specification.
- ^ "History of the Desktop Database Drivers - Open Database Connectivity (ODBC)".
- ^ "SAP HANA System Properties". DB-Engines. Retrieved 2016-03-28.
- ^ "Connect to SAP HANA via ODBC - SAP HANA Developer Guide for SAP HANA Studio - SAP Library". help.sap.com. Retrieved 2016-03-28.
- ^ Sybase. "Introduction to ODBC". infocenter.sybase.com. Sybase. Retrieved 8 October 2011.
- ^ "Java JDBC API". docs.oracle.com. Retrieved 18 December 2018.
- ^ Microsoft, "Data Access Technologies 로드맵", 사용되지 않는 MDAC 컴포넌트, Microsoft "ADO Programmer's Guide" 부록 A: Providers, Microsoft OLE DB Provider for ODBC, 2005년 7월 30일 취득.2001년 10월 5일 Wayback Machine에서 아카이브 완료
외부 링크
- Microsoft ODBC의 개요
- OS400 및 iOS ODBC 관리
- www.roth.net 프레젠테이션 슬라이드
- Microsoft ODBC & Data Access API 이력 기사