다음을 통해 공유


기타 드라이버 아키텍처

일부 ODBC 드라이버는 이전에 설명한 아키텍처를 엄격하게 준수하지 않습니다. 이는 드라이버가 기존 ODBC 드라이버가 아닌 다른 작업을 수행하거나 일반적인 의미에서 운전자가 아니기 때문일 수 있습니다.

중간 구성 요소로서의 드라이버

ODBC 드라이버는 드라이버 관리자와 하나 이상의 다른 ODBC 드라이버 사이에 있을 수 있습니다. 중간에 있는 드라이버가 여러 데이터 원본으로 작업할 수 있는 경우 실제로 데이터 원본에 액세스하는 다른 모듈에 대한 ODBC 호출(또는 적절하게 변환된 호출)의 디스패처 역할을 합니다. 이 아키텍처에서 중간에 있는 드라이버는 드라이버 관리자의 역할 중 일부를 수행합니다.

이러한 종류의 드라이버의 또 다른 예는 드라이버 관리자와 드라이버 간에 전송되는 ODBC 함수를 가로채서 복사하는 ODBC용 스파이 프로그램입니다. 이 계층을 사용하여 드라이버 또는 애플리케이션을 에뮬레이트할 수 있습니다. 드라이버 관리자에 계층이 드라이버인 것처럼 보입니다. 드라이버에 계층이 드라이버 관리자로 나타납니다.

다른 유형의 조인 엔진

일부 ODBC 드라이버는 다른 유형의 조인을 수행하기 위한 쿼리 엔진을 기반으로 합니다. 다른 유형의 조인 엔진의 한 아키텍처에서(다음 그림 참조) 드라이버는 애플리케이션에 드라이버로 표시되지만 드라이버 관리자의 다른 인스턴스에 애플리케이션으로 표시됩니다. 이 드라이버는 각 조인된 데이터베이스에 대해 드라이버에서 별도의 SQL 문을 호출하여 애플리케이션에서 다른 유형의 조인을 처리합니다.

Architecture of a heterogeneous join engine

이 아키텍처는 애플리케이션이 다른 데이터베이스의 데이터에 액세스하기 위한 공통 인터페이스를 제공합니다. 특수 열에 대한 정보(행 식별자)와 같은 메타데이터를 검색하는 일반적인 방법을 사용할 수 있으며 일반적인 카탈로그 함수를 호출하여 데이터 사전 정보를 검색할 수 있습니다. 예를 들어 ODBC 함수 SQLStatistics를 호출하면 테이블이 별도의 두 데이터베이스에 있더라도 애플리케이션은 조인할 테이블의 인덱스에 대한 정보를 검색할 수 있습니다. 쿼리 프로세서는 데이터베이스가 메타데이터를 저장하는 방법에 대해 걱정할 필요가 없습니다.

애플리케이션에는 데이터 형식에 대한 표준 액세스 권한도 있습니다. ODBC는 DBMS 관련 데이터 형식이 매핑되는 일반적인 SQL 데이터 형식을 정의합니다. 애플리케이션은 SQLGetTypeInfo를 호출하여 다른 데이터베이스의 데이터 형식에 대한 정보를 검색할 수 있습니다.

애플리케이션이 다른 유형의 조인 문을 생성하는 경우 이 아키텍처의 쿼리 프로세서는 SQL 문을 구문 분석한 다음 조인할 각 데이터베이스에 대해 별도의 SQL 문을 생성합니다. 쿼리 프로세서는 각 드라이버에 대한 메타데이터를 사용하여 가장 효율적이고 지능적인 조인을 결정할 수 있습니다. 예를 들어 문이 한 데이터베이스의 두 테이블을 다른 데이터베이스의 테이블과 조인하는 경우 쿼리 프로세서는 한 데이터베이스의 두 테이블을 조인한 후 결과를 다른 데이터베이스의 테이블과 조인할 수 있습니다.

서버의 ODBC

ODBC 드라이버는 일련의 클라이언트 컴퓨터에서 애플리케이션에서 사용할 수 있도록 서버에 설치할 수 있습니다. 이 아키텍처에서(다음 그림 참조) 드라이버 관리자와 단일 ODBC 드라이버가 각 클라이언트에 설치되고 다른 드라이버 관리자와 일련의 ODBC 드라이버가 서버에 설치됩니다. 이렇게 하면 각 클라이언트가 서버에서 사용하고 기본 다양한 드라이버에 액세스할 수 있습니다.

Architecture of ODBC drivers on a server

이 아키텍처의 장점 중 하나는 효율적인 소프트웨어 기본 테넌트 및 구성입니다. 드라이버는 서버의 한 곳에서만 업데이트해야 합니다. 시스템 데이터 원본을 사용하면 모든 클라이언트에서 사용하기 위해 서버에서 데이터 원본을 정의할 수 있습니다. 데이터 원본은 클라이언트에서 정의할 필요가 없습니다. 커넥트ion 풀링을 사용하여 클라이언트가 데이터 원본에 연결하는 프로세스를 간소화할 수 있습니다.

클라이언트의 드라이버는 일반적으로 드라이버 관리자 호출을 서버로 전송하는 매우 작은 드라이버입니다. 해당 공간은 서버의 완전 기능 ODBC 드라이버보다 훨씬 작을 수 있습니다. 이 아키텍처에서는 서버에 더 많은 컴퓨팅 성능이 있는 경우 클라이언트 리소스를 해제할 수 있습니다. 또한 백업 서버를 설치하고 부하 분산을 수행하여 서버 사용을 최적화하여 전체 시스템의 효율성과 보안을 향상시킬 수 있습니다.