임베디드 SQL

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

임베디드 SQL은 프로그래밍 언어 내에 SQL 문을 포함시켜 데이터베이스와 상호 작용하는 기술이다. 알티베이스, IBM Db2, IBM Informix, Mimer SQL, 오라클 데이터베이스, PostgreSQL, SAP Sybase 등 다양한 데이터베이스 시스템에서 C, C++, COBOL, Fortran 등의 언어를 위한 임베디드 SQL을 지원한다. MySQL은 임베디드 SQL을 지원하지 않는다. 또한 LINQ-to-SQL, JPA, jOOQ와 같은 도메인 특정 언어를 통해 SQL과 유사한 언어를 .NET, 자바에 포함시키기도 한다.

임베디드 SQL
개요
종류데이터베이스 관리 시스템
용도응용 프로그램에 내장된 SQL문 사용
관련 표준SQL
상세 정보
개념응용 프로그램 소스 코드에 삽입된 SQL문
사용 언어C
Java
COBOL
Pascal
포트란
어셈블리어
기능응용 프로그램과 데이터베이스 간의 상호 작용
장점데이터베이스 작업 단순화 및 효율성 향상
단점호스트 언어와 SQL 간의 의존성 증가
처리 방법프리컴파일러를 사용하여 SQL문을 호스트 언어 코드로 변환
변환 과정SQL문이 포함된 소스 코드를 컴파일하기 전에 특별한 컴파일러(프리컴파일러)를 사용하여 변환
참고 사항SQL 표준에 정의되어 있으며, 다양한 프로그래밍 언어에서 사용 가능
📚 더 읽어볼만한 페이지
  • 데이터베이스 API - ODBC
    ODBC는 응용 프로그램이 데이터베이스 관리 시스템에 접근하도록 하는 표준 API로서, 서로 다른 데이터베이스에 대한 접근 방식을 표준화하여 응용 프로그램이 데이터베이스 종류에 관계없이 동일한 코드로 데이터에 접근하도록 하며, 드라이버 관리자와 데이터베이스 시스템에 특화된 명령으로 변환하는 드라이버로 구성된다.
  • 데이터베이스 API - OLE DB
    OLE DB는 마이크로소프트가 개발한 데이터베이스 접속 기술로, 다양한 데이터 소스에 대한 통합적인 접근 방식을 제공하며, 소비자와 공급자로 나뉘어 여러 API 및 프레임워크와 연동되어 활용된다.
  • 선언형 프로그래밍 언어 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • 선언형 프로그래밍 언어 - SQL
    SQL은 관계형 데이터베이스 관리 시스템에서 데이터를 관리하고 조작하기 위해 설계된 표준 프로그래밍 언어로서, 데이터 정의어, 데이터 조작어, 데이터 제어어를 포함하는 다양한 명령어 문법을 제공하며 ANSI와 ISO에 의해 표준으로 채택되었다.
  • 데이터베이스 - 지식 베이스
    지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다.
  • 데이터베이스 - 화이트리스트
    화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다.

2. 임베디드 SQL 지원 데이터베이스 시스템

알티베이스, IBM Db2, IBM Informix, 마이크로소프트 SQL 서버, Mimer SQL, 오라클 데이터베이스, PostgreSQL, SAP Sybase 등 다양한 데이터베이스 시스템이 임베디드 SQL을 지원한다. 각 데이터베이스 시스템별로 지원하는 프로그래밍 언어와 특징은 다음과 같다.

* 알티베이스 (Altibase): APRE는 알티베이스사가 제공하는 임베디드 SQL 프리컴파일러이다.
* IBM Db2: C, C++, Java, COBOL용 임베디드 SQL을 지원하며, FORTRAN과 REXX에 대한 지원은 더 이상 사용되지 않는다.
* IBM Informix: 버전 14.10 (리눅스, 유닉스, 윈도우용)은 C 언어에 대한 임베디드 SQL을 지원한다.
* 마이크로소프트 SQL 서버 (Microsoft SQL Server): C/C++용 임베디드 SQL은 2008년부터 더 이상 사용되지 않지만, 이전 버전에서는 지원되었다.
* Mimer SQL: 리눅스, macOS, OpenVMS, 윈도우에서 C/C++, COBOL, Fortran 용 임베디드 SQL을 지원한다. 단, COBOL과 Fortran은 OpenVMS에서만 지원된다.
* 오라클 데이터베이스 (Oracle Database): Pro*C, Pro*COBOL을 통해 C/C++와 COBOL을 공식적으로 지원한다. 에이다, 포트란, 파스칼, PL/I은 더 이상 지원하지 않거나 업데이트가 중단되었다.
* PostgreSQL: ECPG는 버전 6.3부터 PostgreSQL의 일부로 제공되며 C 언어를 지원한다. C++ 지원은 제한적이다. Cobol-IT와 Micro Focus를 통해 COBOL 프리컴파일러를 사용할 수 있다.
* SAP Sybase: SAP Sybase ASE, SQL Anywhere, IQ는 C 및 C++용 임베디드 SQL을 지원하며, SAP Sybase ASE는 COBOL도 지원한다.

2.1. 알티베이스 (Altibase)

APRE는 알티베이스사가 제공하는 자사의 DBMS 서버용 임베디드 SQL 프리컴파일러이다.

2.2. IBM Db2

IBM Db2는 C, C++, Java, COBOL용 임베디드 SQL을 지원하며, FORTRAN과 REXX에 대한 지원은 더 이상 사용되지 않는다.

2.3. IBM Informix

IBM Informix 버전 14.10 (리눅스, 유닉스, 윈도우용)은 C 언어에 대한 임베디드 SQL을 지원한다.

2.4. 마이크로소프트 SQL 서버 (Microsoft SQL Server)

C/C++용 임베디드 SQL은 마이크로소프트 SQL 서버 2008부터 더 이상 사용되지 않지만, 이전 버전에서는 지원되었다.

2.5. Mimer SQL

Mimer SQL은 리눅스, macOS, OpenVMS, 윈도우에서 임베디드 SQL을 지원한다.

C/C++용 임베디드 SQL은 리눅스, macOS, OpenVMS, 윈도우에서 지원된다. COBOL용 임베디드 SQL은 OpenVMS에서 지원된다. Fortran용 임베디드 SQL은 OpenVMS에서 지원된다.

2.6. 오라클 데이터베이스 (Oracle Database)

👆
좌우로 밀어서 보기
프로그래밍 언어설명
에이다Pro*Ada는 버전 7.3에서 오라클에 의해 공식적으로 지원이 중단되었다. Oracle8부터 Pro*Ada는 SQL*Module로 대체되었지만 그 이후 업데이트는 없는 것으로 보인다. SQL*Module은 임베디드 SQL과는 다른 프로그래밍 방식을 제공하는 모듈 언어이며, Ada83 언어 표준을 지원한다.
C/C++Pro*C는 Oracle8에서 Pro*C/C++가 되었다. Pro*C/C++는 현재 Oracle Database에서 지원된다.
COBOLPro*COBOL은 현재 Oracle Database에서 지원된다.
포트란Pro*FORTRAN은 Oracle8부터 더 이상 업데이트되지 않지만, 오라클은 버그가 보고되고 수정되면 패치 릴리스를 계속 발행할 것이다.
파스칼Pro*Pascal은 Oracle8과 함께 출시되지 않았다.
PL/IPro*PL/I는 Oracle8과 함께 출시되지 않았다. 그러나, Oracle Precompilers Guide의 Pro*PL/I 보충 자료는 릴리스 11g까지 오라클 문서 라이브러리에 계속 나타났다. 릴리스 12c부터 Pro*PL/I는 오라클 문서 라이브러리에서 제거되었다.

2.7. PostgreSQL

ECPG는 버전 6.3부터 PostgreSQL의 일부이다. C++ 지원은 제한적이며, 정상적으로 처리할 수 없는 구문이 존재한다.

Cobol-IT는 현재 PostgreSQL용 COBOL 프리컴파일러를 배포하고 있으며, Micro Focus는 OpenESQL 프리프로세서를 통해 지원을 제공한다.

2.8. SAP Sybase

SAP Sybase ASE 15.7은 Sybase 소프트웨어 개발 키트의 일부로 C 및 COBOL용 임베디드 SQL을 지원한다.

SAP Sybase SQL Anywhere는 SQL Anywhere 데이터베이스 관리 시스템의 일부로 C 및 C++용 임베디드 SQL을 지원한다.

SAP Sybase IQ는 Sybase IQ 데이터베이스 관리 시스템의 일부로 C 및 C++용 임베디드 SQL을 지원한다.

3. 임베디드 SQL을 지원하지 않는 데이터베이스 시스템

MySQL은 임베디드 SQL을 지원하지 않는다.

3.1. MySQL

MySQL은 임베디드 SQL을 지원하지 않는다.

4. 도메인 특정 언어를 통한 임베디드 SQL

* LINQ-to-SQL은 SQL과 유사한 언어를 .NET 언어에 포함시킨다.
* JPA는 Criteria API를 통해 SQL과 유사한 언어를 자바에 포함시킨다.
* jOOQ는 SQL과 유사한 언어를 자바에 포함시킨다.