WIPIVERSE

ODBC

ODBC(Open DataBase Connectivity)는 데이터베이스 관리 시스템(DBMS)에 접근하기 위한 표준 애플리케이션 프로그래밍 인터페이스(API)이다. 원래 1990년대 초 마이크로소프트(Microsoft)와 심바 테크놀로지스(Simba Technologies)에 의해 C 프로그래밍 언어 기반으로 개발되었으며, 이후 유닉스 및 메인프레임 분야에서 SQL 액세스 그룹(SQL Access Group)에 의해 표준화된 호출 수준 인터페이스(CLI)의 기초가 되었다. ODBC는 CLI 표준화 과정에서 제거된 여러 기능을 유지하였으며, 이후 전체 ODBC가 다시 해당 플랫폼으로 이식되어 CLI보다 훨씬 더 널리 알려진 사실상의 표준(de facto standard)이 되었다.

ODBC의 핵심 설계 목표는 데이터베이스 시스템 및 운영체제에 대한 독립성이다. ODBC를 사용하여 작성된 응용 프로그램은 데이터 액세스 코드의 변경 없이 클라이언트와 서버 측 모두에서 다른 플랫폼으로 이식될 수 있다. 이러한 DBMS 독립성은 ODBC 드라이버(Driver)라는 번역 계층을 통해 달성된다. 응용 프로그램은 ODBC 드라이버 관리자(Driver Manager)를 통해 표준화된 ODBC 함수를 호출하고, 드라이버는 해당 호출을 특정 DBMS가 이해할 수 있는 형태로 변환하여 전달한다. ODBC 드라이버는 프린터 드라이버와 유사한 개념으로, 응용 프로그램이 사용할 표준 함수 집합을 제공하면서 각 DBMS 고유의 기능을 구현한다.

ODBC를 사용할 수 있는 응용 프로그램을 "ODBC 호환(ODBC-compliant)"이라고 한다. 모든 ODBC 호환 응용 프로그램은 적절한 드라이버만 설치되어 있다면 어떤 DBMS에도 접근할 수 있다. 드라이버는 Oracle, Microsoft SQL Server, IBM DB2, MySQL, PostgreSQL 등 모든 주요 DBMS를 비롯하여, 마이크로소프트 엑셀(Microsoft Excel)과 같은 스프레드시트, 주소록 시스템, 텍스트 파일이나 CSV 파일에 이르기까지 다양한 데이터 소스용으로 존재한다.

ODBC가 등장한 배경에는 1970년대 메인프레임 기반 관계형 데이터베이스의 도입 이후 데이터 접근 방식이 벤더마다 제각각이었던 문제가 있었다. IBM의 SQL과 인그레스(Ingres) 프로젝트의 QUEL 등 다양한 질의 언어가 존재했고, 임베디드 SQL(Embedded SQL) 방식 역시 플랫폼과 언어에 따라 크게 달라 상호운용성에 심각한 제약이 있었다. 1980년대 중반 이후 개인용 컴퓨터의 성능 향상과 클라이언트-서버 모델의 확산으로 인해, 서로 다른 벤더의 데이터베이스와 응용 프로그램 간의 표준화된 데이터 접근 방식에 대한 필요성이 급증하였고, 이에 따라 ODBC가 개발되었다.

ODBC는 관계형 데이터 저장소를 위해 특별히 설계된 낮은 수준의 고성능 인터페이스로, 마이크로소프트 윈도우 운영체제를 비롯한 다양한 플랫폼에서 지원된다. 마이크로소프트는 ODBC 데이터 원본 관리자(ODBC Data Source Administrator)라는 시스템 도구를 제공하여 데이터베이스 드라이버와 데이터 원본(DSN)을 관리할 수 있도록 한다. ODBC는 이후 등장한 ADO.NET, JDBC(Java Database Connectivity) 등 다른 데이터베이스 연결 기술의 개념적 토대를 제공하였으며, 현재까지도 다양한 데이터베이스 환경에서 광범위하게 사용되고 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기