리포트

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

데이터베이스 표준 기술의 전개

리포트
DBMS별 분류
Etc
작성자
dataonair
작성일
2003-01-01 00:00
조회
6049
pdf.gif11-21.pdf











데이터베이스 표준 기술의 전개

1. SQL1, SQL2, SQL3, SQL/MM

데이터베이스 언어의 첫 번째 버전인 SQL1은 1987년에 “ISO 9075-1987 Database Language SQL"로 제정되었다. 프로그래밍 언어와 독립된 테이블 형태의 데이터 모델, 스키마 정의, 뷰, 그리고 한번에 한 레코드씩 처리하는 프로그래밍 언어 인터페이스를 위한 커서(Cursor)를 제공하였다. 그러나, 벤더(Vendor) 제품들간에 서로 호환 가능한 애플리케이션의 개발은 사용자의 몫으로 남겨졌다. 이 표준은 레벨 1과 2로 지원되었다. 레벨 1은 SQL 벤더들에 의해 이미 구현되었던 공통된 기능들을 정의하고 있으며, 레벨 2는 일부 기능과 제약 조건들을 더 추가했다.
상이한 시스템들간의 상호 운용성 등을 포함하는 SQL2가 1992년에 “ISO/IEC 9075:1992 Information Systems-Database Language- SQL"로 제정되었으며, 일반적으로 널리 알려져 있는 표준이기도 하다. SQL, Outer 조인, 임시 테이블, 집합 연산자인 union, intersect, difference, 스키마에서 도메인 정의, Datetime, National과 Varchar와 같은 새로운 데이터 타입, 트랜잭션 일관성 단계, 지연 제약 검사, 그리고 SQL 진단 등이 포함되어 있다. SQL-92는 초기의 SQL 표준에서 발견되던 많은 약점들을 해결했지만, 완전함과는 거리가 있다.
1999년에는 SQL3 표준이 제정되었다. SQL3는 전통적인 관계 데이터베이스 기능에 객체 기술을 추가함으로써 객체 지향 기술 및 다양한 측면을 고려하고자 했다. SQL3는 모델링 기능을 향상시키기 위해 새로운 내장된 타입을 지원하고, 향상된 갱신 기능과 다른 관계형 확장을 포함하고 있다. 또한, Triggers, Roles, Recursion, Savepoint, OLAP 확장, 객체-관계형 확장, 사용자 정의 타입, Collection 타입, Reference 타입, 사용자 정의 함수, 사용자 정의 프로시저, 사용자 정의 메소드, 서브테이블 등도 지원하여 객체-관계형 데이터베이스 관리 시스템을 위한 표준 언어를 정의하고 있다. 그리고, 새로운 파트들이 제정되었는데, SQL/CLI(Call-Level Interface)는 SQL데이터베이스 시스템에 Call- Level Interface를 정의하기 위해 제정되었다. SQL/CLI에 근간을 두고 밀접하게 맞추어져 만들어진 것이 ODBC(Open Database Connec- tivity)이다. ODBC는 서로 다른 데이터베이스를 통하여 생성된 데이터를 Microsoft Windows 환경에서 서로 공유할 수 있도록 MS사에 의해 제안된 데이터베이스의 데이터를 공유하기위한 규칙이라 할 수 있다. SQL/PSM (Persistent Stored Modules)도 제정되었다. SQL/PSM은 SQL 서버 모듈의 절차적 로직에 대한 구문을 지정하고 있다. SQL의 호스트 프로그래밍 언어나 SQL 프로그램에서 실행하는 함수 및 프로시저를 정의하는 기능을 명시했다. 이 프로시저는 실제로 데이터베이스 내에 저장되기 때문에 보통 저장된 프로시저라고 불려진다. SQL/Bindings(Language Bindings)는 동적 SQL이나 Embedded SQL을 지원하는데, SQL 객체와 일반 프로그래밍 언어 변수 사이에 매핑 관계를 정의한다. 이와 같이 1999년에 제정된 SQL3는 SQL/Framework, SQL/ Foundation, SQL/CLI, SQL/PSM, SQL/ Bindings 등 다섯 파트로 나뉘어져 있다.
SQL3에 이어 새로운 표준이 요구되었는데, SQL3의 ADT(Abstract Data Type) 기능을 이용하여 멀티미디어 데이터를 데이터베이스에서 정의할 수 있는 SQL/MM(Multimedia)이 등장하게 되었다.
현재는 SQL3의 다음 버전인 SQL:200x이 진행되고 있다. 여기서는 이전 버전의 많은 오류를 정정하고 관련된 표준 문서를 수용할 수 있도록 향상시키며 새로운 개체 모델을 지원하고 있다.

2. SQL:200x

2003년 표준 제정을 목표로 현재 진행중인 표준 SQL:200x에 새롭게 추가되는 기능에 대해 살펴보면 다음과 같다.

가. 새로운 데이터 타입

SQL:200x에서 가장 중요한 추가 사항 중에 하나는 collection data type의 추가이다. 데이터베이스 제품이 SQL과 XML을 동시에 지원하기를 바라는 시장의 요구에 부응하기 위해서 SQL에서 XML 문서 내용을 효과적으로 모델링하는 능력을 가지게 되었다. XML은 보통 트리 구조로 다루어지는데, 이러한 구조를 SQL에서 효과적으로 처리하고 저장하기 위해서는 강력하고 복합적인 데이터 타입들이 지원되어야 한다. 따라서, SQL의 새로운 버전에서는 SET, MULTISET(또는bag)과 같은 collection type이 지원된다.

나. 트리거의 강화

SQL:1999에서 트리거는 오직 기본 테이블에 대해서만 실행될 수 있다. 사용자에게 뷰와 관련된 트리거 정의를 허용함으로써 SQL 뷰의 기능을 향상시킬 수 있다.

다. SQL-호출 루틴(SQL-Invoked Routine)

SQL:1999에서 사용자 정의 타입이나 ARRAY 타입 및 ROW 타입보다 더 복잡한 데이터 타입 값을 반환하는 SQL-호출 루틴은 불가능하다. 특히, 루틴은 실행자로부터 테이블을 반환할 수가 없다. 호스트 어플리케이션에게 테이블을 반환할 때, 함수 결과처럼 SQL 코드에 테이블을 반환하는 것은 그리 어려운 문제가 아니다. SQL:200x에서는 함수 값처럼 테이블을 반환할 수 있는 기능을 제공한다.

라. 향상된 보안

SQL로 쓴 SQL의 저장 루틴은 SQL:1999에서 항상 정의자의 권한 루틴으로 되어 있다. 그러나, SQL:200x에서는 이러한 스키마 레벨 루틴의 기능을 추가하기 위해서 SQL/PSM 구조가 루틴을 실행자 권한의 값으로 인식하고 적절한 계획을 가져야 한다.

마. 객체 능력

사용자 정의 타입과 객체 개념의 지원은 이미 SQL:1999에서 이루어졌다. 그러나 SQL:200x에서는 이 기술이 더 향상되어 지원된다. SQL: 1999에서는 subtyping 모델을 지원할 때 단일 상속(SingleInheritance) 모델이었다.SQL:200x의 경로는 다중 상속과 관련된 구현의 어려움과 상관없이 다중 상속의 장점을 제공한다. 이것은 자바 프로그래밍 언어의 구현과 인터페이스 예와 같은 것으로서 자바가 구현에서는 단일 상속을 제공하지만, 인터페이스에서 다중 상속을 제공하는 것과 같은 것이다.

바. XML과의 매핑

XML에 비즈니스 세계의 관심이 계속 집중되자 많은 사람들은 SQL과 XML이 서로 밀접한 관계가 될 것이라 생각하고 있다. W3C에서는 이미 많은 XML 관련 표준 권고안들을 제공하고 있다. 그 중에서 XML 문서들을 질의하기 위해 제공되는 XQuery가 있다. SQL이 개체 단위에 초점을 맞추는 반면에 XQuery는 문서 지향적인 데이터에 더 관심을 둔다. 따라서 SQL에서 XML로의 매핑이나 XML에서 SQL로의 매핑이 이루어져야 한다. 즉, SQL내에서 XML 데이터의 표현이나 반대로 XML내에서 SQL 데이터의 표현, XML 스키마와 SQL 스키마간의 매핑, XML내에서 SQL 스키마의 표현, XML내에서 SQL 동작의 표현, XML을 질의하기 위해 SQL과 친숙한 구문 제공 등이 앞으로의 표준 기술 과제라 하겠다.

제공 : DB포탈사이트 DBguide.net