맨위로가기

SQL:2011

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

1. 개요

SQL:2011은 데이터베이스 언어인 SQL의 표준으로, 임시 데이터베이스 지원을 강화한 것이 특징이다. 이 표준은 프레임워크, 기초, Call-Level 인터페이스, Persistent Stored Modules, 외부 데이터 관리, 객체 언어 바인딩, 정보 및 정의 스키마, 자바 프로그래밍 언어를 사용한 SQL 루틴 및 타입, XML 관련 항목 등 여러 부분으로 구성된다. SQL:2011은 시간 기간 정의, 애플리케이션 시간 기간 테이블, 시스템 버전 테이블, 자동 시간 기간 분할, 시점 기본 키, 시점 참조 무결성, 시점 술어, 시간 분할 및 순차 쿼리, 이중 시점 테이블과 같은 기능을 제공하며, IBM DB2, Oracle, Microsoft SQL Server, MariaDB, PostgreSQL, Ebean ORM, CockroachDB, SAP HANA 등 다양한 데이터베이스 관리 시스템(DBMS)에서 지원된다.

더 읽어볼만한 페이지

  • 2011년 도입된 제품 - 애플 실리콘
    애플 실리콘은 애플이 자체 설계한 시스템 온 칩(SoC) 제품군으로, 아이폰, 아이패드, 맥 등 다양한 애플 기기에 사용되며 A, H, M, R, S, T, U, W 시리즈 및 M 시리즈 보조 프로세서로 구성된다.
  • 2011년 도입된 제품 - 화웨이 앱갤러리
    화웨이 앱갤러리는 화웨이가 개발 및 운영하는 앱 마켓으로, 미국의 제재 이후 자체 HMS 기반으로 적극 육성되어 HarmonyOS와 연계한 독자적인 앱 생태계를 구축하고 있으며, 개인 정보 보호 논란에도 불구하고 글로벌 시장 확대를 추진하고 있다.
  • 질의 언어 - 임베디드 SQL
    임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
  • 질의 언어 - XQuery
    XQuery는 함수형 프로그래밍 패러다임을 지원하며 XPath 식 구문의 상위 집합을 포함하는 XML 데이터 추출 및 조작을 위한 쿼리 언어로서, FLWOR 식을 통해 XML 데이터 조작 및 새로운 XML 문서 구성을 지원하고 XQuery 및 XPath 데이터 모델(XDM)을 기반으로 한다.
  • 선언형 프로그래밍 언어 - XAML
    XAML은 마이크로소프트에서 개발한 XML 기반의 마크업 언어로, 사용자 인터페이스, 데이터 바인딩, 이벤트 처리 등을 정의하며 WPF, Silverlight, WF, WinRT API 앱, Xamarin.Forms 등에서 UI 개발에 널리 사용된다.
  • 선언형 프로그래밍 언어 - 임베디드 SQL
    임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
SQL:2011
SQL:2011
발표2011년
이전 버전SQL:2008
후속 버전SQL:2016
형식표준
작성 기관ISO / IEC JTC1/SC32

2. SQL:2011 표준의 부분

SQL:2011 표준은 다음과 같이 구성된다.[19]

번호명칭비고
1장SQL/프레임워크프레임워크
2장SQL/기초기초
3장SQL/CLICall-Level 인터페이스
4장SQL/PSMPersistent Stored Modules
9장SQL/MEDManagement of External Data
10장SQL/OLBObject Language Bindings
11장SQL/스키마타정보와 정의 스키마
13장SQL/JRTSQL Routines and Types Using the Java™ Programming Language
14장SQL/XMLXML-관련 항목


2. 1. 프레임워크 (SQL/Framework)

SQL 표준은 다음과 같이 구분되어 있다.[19]

번호명칭비고
1장SQL/프레임워크프레임워크
2장SQL/기초기초
3장SQL/CLICall-Level 인터페이스
4장SQL/PSMPersistent Stored Modules
9장SQL/MEDManagement of External Data
10장SQL/OLBObject Language Bindings
11장SQL/스키마타정보와 정의 스키마
13장SQL/JRTSQL Routines and Types Using the Java™ Programming Language
14장SQL/XMLXML-관련 항목


2. 2. 기초 (SQL/Foundation)

SQL 언어의 핵심 요소와 데이터 타입, 연산자 등을 정의한다.[19]

2. 3. Call-Level 인터페이스 (SQL/CLI)

SQL/CLI는 응용 프로그램에서 SQL 데이터베이스에 접근하기 위한 표준 API이다.[19]

2. 4. Persistent Stored Modules (SQL/PSM)

SQL/PSM은 SQL 내에서 저장 프로시저, 함수, 트리거 등 영구적으로 저장되는 모듈을 정의하고 사용하는 방법을 다룬다.[19]

2. 5. Management of External Data (SQL/MED)

SQL/MED는 SQL 데이터베이스 외부의 데이터를 관리하고 접근하는 방법을 정의한다.[19]

2. 6. Object Language Bindings (SQL/OLB)

SQL/OLB영어는 SQL과 객체 지향 프로그래밍 언어 간의 상호 작용을 위한 바인딩을 정의한다.[19]

2. 7. 정보와 정의 스키마 (SQL/Schemata)

표준은 아래와 같이 구분된다.[19]

파트 번호파트 이름비고
1장SQL/프레임워크
2장SQL/기초
3장SQL/CLIকল-লেভেল ইন্টারফেস (Call-Level Interface)
4장SQL/PSM영구 저장 모듈 (Persistent Stored Modules)
9장SQL/MED외부 데이터 관리 (Management of External Data)
10장SQL/OLB객체 언어 바인딩 (Object Language Bindings)
11장SQL/스키마타정보 및 정의 스키마
13장SQL/JRTJava™ 프로그래밍 언어를 사용한 SQL 루틴 및 유형 (SQL Routines and Types Using the Java™ Programming Language)
14장SQL/XMLXML 관련 항목


2. 8. SQL Routines and Types Using the Java™ Programming Language (SQL/JRT)

SQL/JRT는 Java 프로그래밍 언어를 사용하여 SQL 루틴 및 사용자 정의 타입을 정의하는 방법을 다룬다.[19]

2. 9. XML-관련 항목 (SQL/XML)

SQL/XML영어은 SQL 내에서 XML 데이터를 처리하고 조작하는 기능을 정의한다.[19]

3. SQL:2011의 새로운 기능

SQL:2011의 주요 특징 중 하나는 임시 데이터베이스에 대한 향상된 지원이다.[20][21] IBM DB2 버전 10은 소위 “시간 여행 쿼리”(Time Travel Queries)라고 부르는 이러한 특징을 최초로 구현하였다.[22][23]

SQL:2011은 시점 데이터베이스의 정의 및 조작을 위한 언어 개선 사항을 포함한다. 주요 내용은 다음과 같다.


  • 애플리케이션 시간 테이블은 일반 쿼리 구문을 사용하거나, 앨런의 간격 관계를 수정한 새로운 시점 술어를 사용하여 쿼리할 수 있다.
  • 애플리케이션 시간과 시스템 버전 관리를 함께 사용하여 이중 시점 테이블을 제공할 수 있다.

3. 1. 시간 기간 정의

시간 기간 정의는 명명된 시간 기간의 시작과 끝을 나타내는 두 개의 표준 테이블 열을 사용하며, 닫힌 집합-열린 집합 의미 체계를 따른다. 이는 기존의 데이터 모델, 애플리케이션 코드 및 도구와의 호환성을 제공한다.[2][3]

3. 2. 애플리케이션 시간 기간 테이블

`PERIOD FOR` 주석을 사용하여 '''애플리케이션 시간 기간 테이블'''(유효 시간 테이블)을 정의한다.[2][3]

3. 3. 시스템 버전 테이블

PERIOD FOR SYSTEM_TIME영어 주석과 WITH SYSTEM VERSIONING영어 수정자를 사용하여 '''시스템 버전 테이블'''(다른 곳에서는 트랜잭션 시간 테이블이라고 함)을 정의한다. 시스템 시간 기간은 자동으로 유지 관리된다. 시스템 버전 테이블에 대한 제약 조건은 시점일 필요가 없으며 현재 행에 대해서만 적용된다.[2]

3. 4. 자동 시간 기간 분할

애플리케이션 시간 행을 업데이트하고 삭제할 때 시간 기간을 자동 분할하는 기능이 제공된다.[2][3]

3. 5. 시점 기본 키

`WITHOUT OVERLAPS` 절을 통해 선택적인 비중첩 제약 조건을 포함하는 애플리케이션 시간 기간을 통합하는 '''시점 기본 키'''이다.[2][3]

3. 6. 시점 참조 무결성

애플리케이션 시간 테이블에 대한 시점 참조 무결성 제약 조건을 정의한다.[2][3]

3. 7. 시점 술어

앨런의 간격 관계의 수정된 버전인 `CONTAINS`, `OVERLAPS`, `EQUALS`, `PRECEDES`, `SUCCEEDS`, `IMMEDIATELY PRECEDES`, `IMMEDIATELY SUCCEEDS` 등을 포함하는 시간 기간에 대한 새로운 '''시점 술어'''를 사용하여 시점 데이터베이스에 대한 쿼리를 수행할 수 있다.[2][3]

3. 8. 시간 분할 및 순차 쿼리

`` 및 `` 절을 통해 시스템 시간 테이블에 대한 '''시간 분할''' 및 '''순차''' 쿼리 구문을 제공한다.[2]

3. 9. 이중 시점 테이블

이중 시점 테이블은 애플리케이션 시간과 시스템 버전 관리를 함께 사용하여 데이터의 유효 기간과 트랜잭션 시간을 모두 추적할 수 있게 한다.[2][3]

4. 데이터베이스 관리 시스템(DBMS) 지원 현황

다양한 데이터베이스 관리 시스템(DBMS)들이 SQL:2011 표준의 시간 데이터 처리 기능을 지원하고 있으며, 각 DBMS별 지원 현황은 아래 표와 같다.

DBMS지원 현황
SAP HANA2.0 SP03부터 시스템 버전 테이블을 지원하며, 2.0 SP04에서는 애플리케이션 시간 버전 관리에 대한 부분적인 지원이 추가되었다.[4][5][6]
IBM DB2버전 10부터 "시간 여행 쿼리"(Time Travel Queries) 기능을 지원한다.[7][8]
오라클12c 버전부터 SQL:2011을 준수하는 시간적 기능을 지원하며, 이전 버전(9, 10g, 11g)에서는 Flashback Queries 기능을 통해 시간 슬라이스 쿼리를 구현했다.[9][10][11][12]
마이크로소프트 SQL 서버버전 2016부터 시간 테이블을 구현한다.[13]
MariaDB10.3 버전부터 시스템 버전 테이블을 지원하며, 10.4.3 버전부터 애플리케이션 버전 테이블에 대한 지원을 추가했다.[14][15]
PostgreSQLtemporal_tables 확장을 설치해야 하며, 시스템 기간 시간 테이블만 지원하고 SQL:2011 설계를 따르지 않는다.
Ebean ORMPostgreSQLMySQL에서 History AS OF 및 VERSIONS BETWEEN 쿼리를 지원한다.
CockroachDB최소 v1.0.7부터 `AS OF SYSTEM TIME` 쿼리를 지원한다.[16][17]


4. 1. SAP HANA

SAP HANA 2.0 SP03은 표준 `SELECT` 구문 `FOR SYSTEM_TIME AS OF ''`을 사용하여 시스템 버전 테이블을 지원한다.[5][4] SAP HANA 2.0 SP04는 애플리케이션 시간 버전 관리에 대한 부분적인 지원을 추가한다.[6]

4. 2. IBM DB2

IBM DB2 버전 10은 "시간 여행 쿼리"(Time Travel Queries)라고 부르는 기능을 지원하며, `FOR SYSTEM_TIME AS OF` 구문을 사용한다.[7][8]

4. 3. Oracle Database

오라클 12c는 SQL:2011을 준수하는 시간적 기능을 지원한다.[9] 버전 9,[10][11] 10g 및 11g는 '''Flashback Queries'''라고 부르는 기능을 사용하여 '''시간 슬라이스''' 쿼리를 구현하며, `AS OF TIMESTAMP` 구문을 사용한다.[12] 특히 오라클의 두 구현 모두 데이터베이스의 롤백 세그먼트에 의존하므로, 백업을 위해 여전히 유지되는 최근 변경 사항에 대해서만 시간적 쿼리를 허용한다.

4. 4. Microsoft SQL Server

마이크로소프트 SQL 서버 (버전 2016)는 `SYSTEM_VERSIONING`으로 시간 테이블을 구현한다.[13]

4. 5. MariaDB

MariaDB 10.3은 시스템 버전 테이블을 구현한다.[14] MariaDB 10.4.3은 애플리케이션 버전 테이블에 대한 지원을 추가했다.[15]

4. 6. PostgreSQL

PostgreSQL은 [https://github.com/arkhipov/temporal_tables temporal_tables 확장] 설치가 필요하다. Temporal Tables Extension은 시스템 기간 시간 테이블만 지원하지만, SQL:2011 설계를 따르지 않는다.[5]

4. 7. Ebean ORM

Ebean ORM은 PostgreSQLMySQL에서 트리거, 히스토리 테이블, 뷰를 사용하여 History AS OF 및 VERSIONS BETWEEN 쿼리를 지원한다.

4. 8. CockroachDB

CockroachDB는 최소한 v1.0.7부터 `AS OF SYSTEM TIME` 쿼리를 지원해 왔다.[16][17]

참조

[1] 간행물 IA https://archive.toda[...] Sybase 2011-12-16
[2] 논문 What's new in SQL:2011 http://www.sigmod.or[...] 2012
[3] 논문 Temporal features in SQL: 2011 http://www.sigmod.or[...] 2012
[4] 웹사이트 SAP Help Portal https://help.sap.com[...]
[5] 웹사이트 SAP Help Portal https://help.sap.com[...]
[6] 웹사이트 SAP Help Portal https://help.sap.com[...]
[7] 웹사이트 Data management http://www.ibm.com/d[...]
[8] 웹사이트 Data management http://www.ibm.com/d[...]
[9] 웹사이트 Implementing Temporal Validity http://www.oracle.co[...]
[10] 웹사이트 flashback query in oracle 9i https://www.oracle-d[...] 2024-11-01
[11] 웹사이트 Flashback Query https://oracle-base.[...] 2024-11-01
[12] 웹사이트 Database SQL Reference http://docs.oracle.c[...]
[13] 웹사이트 Temporal Tables - SQL Server https://msdn.microso[...] 2023-10-16
[14] 웹사이트 Changes & Improvements in MariaDB 10.3 https://mariadb.com/[...]
[15] 웹사이트 Application-Time Periods https://mariadb.com/[...]
[16] 웹사이트 AS OF SYSTEM TIME | CockroachDB Docs https://www.cockroac[...]
[17] 뉴스 Time-Travel Queries: SELECT witty_subtitle FROM THE FUTURE https://www.cockroac[...] 2016-06-22
[18] 간행물 IA http://iablog.sybase[...] Sybase 2013-05-06
[19] 간행물 Part 1: Framework (SQL/Framework) http://www.jtc1sc32.[...] JTC1SC32 2013-05-06
[20] 논문 What's new in SQL:2011 http://www.sigmod.or[...] 2012
[21] 논문 Temporal features in SQL: 2011 http://www.sigmod.or[...] 2012
[22] 웹사이트 http://www.ibm.com/d[...]
[23] 웹사이트 http://www.ibm.com/d[...]



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com