SQL
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

ANSI X3.135-1992[注釈 1]JIS X 3005:1995
1995年SQL/CLI コールレベルインターフェース (Call Level Interface)
業界標準になった ODBC API のインタフェースに相当する機能を国際標準化した規格
1996年SQL/PSM 永続格納モジュール (Persistent Storage Module)
一般的にストアドプロシージャと呼ばれる機能を国際標準化した規格
1999年SQL:1999(英語版)
(SQL99)SQL3RDBMSのための完全な言語になることを目指した仕様[注釈 3]

正規表現による値照合

共通表式(WITH句)

再帰クエリ

OLAP (ROLLUP、CUBE、GROUPING SETS)

ユニオン (UNION)・結合経由の更新

カーソル操作の機能強化 (トランザクション完了後のオープン状態保持)・ユーザ定義権限 (ROLE)・トランザクション管理の新機能 (SAVEPOINT)

SQL/PSM強化 (制御構文IFWHILEなど) サポートなど)

SQLJJavaを親言語とする埋め込みSQL規格)

データベーストリガ

ユーザ定義関数 (ストアドファンクション)

非スカラー型の新しいデータ型: 真理値 (BOOLEAN) 型と配列 (ARRAY) 型、LOB (Large Object)、ユーザ定義型、構造型

上位表と下位表 (スーパーテーブルとサブテーブル)

オブジェクト指向の考え方を取り入れたオブジェクト関係データベース技術 (ORDB)。配列型やユーザ定義型、ユーザ定義関数と上位表/下位表仕様により実現されている。
ISO/IEC 9075:1999

JIS X 3005-1:2002、JIS X 3005-2:2002
2003年SQL:2003(英語版) 

SQL/MM (マルチメディア: フレームワーク、全文検索、空間データ (Spatial)、静止画像)

SQL/MED (外部データ管理: 非関係データ (順編成ファイル階層型データベースなど) や他社の関係データをSQLでアクセスするための規格)

SQL/OLB (オブジェクト言語バインディング: SQLJを標準化する。Javaプログラムに埋め込むSQL文)

XML関連の機能

ウィンドウ関数

順序(シーケンス)の標準化と識別キー列に対する値の自動生成を行う列仕様の導入 (ID型)

(See Eisenberg et al.: SQL:2003 Has Been Published.)
2008年SQL:2008(英語版) 

INSTEAD OF トリガ

TRUNCATE TABLE ステートメント

配列型の集約と展開 (array_agg, unnest) [5]
ISO/IEC 9075-2:2008
JIS X 3005-1:2014
2011年SQL:2011(英語版) ISO/IEC 9075-2:2011
JIS X 3005-2:2015
2016年SQL:2016(英語版) ISO/IEC 9075-2:2016
2023年SQL:2023(英語版)ISO/IEC 9075-2:2023

SQLとオンライン処理

SQLはその性質上、「宣言型」の言語である。
SQLとプログラミング言語

プログラムから関係データベースを操作するための方法として、SQLが関係するものや関係しないものがあり、以下にそれらを述べる。

手続き型プログラミング言語、あるいは手続き型ではないプログラミング言語から関係データベースを操作するため、ソースコード中にSQLを埋め込み、プリプロセッサによってSQL部分を変換してデータベースアプリケーションを開発する方式がある。これを「埋め込みSQL」(Embedded SQL/ESQL) と呼び、後にANSIにより仕様が標準化された。

マイクロソフトは、C言語からAPIレベルで統一したソースコードを記述し、クライアント・サーバ型アプリケーションシステムの構築に有用である仕組み「Open Database Connectivity」(ODBC) を発表し、その有用性からANSIではODBC仕様を参考に「SQL/CLI」という仕様を標準化した。

LINQでは、プログラミング言語C#内において、文脈によって何らかの綴りをキーワードとして扱うという contextual keyword を活用し、言語内に言語の拡張のようにしてSQLライクな記述ができる。文字列ベースの埋め込みで発生するインジェクションに関係する問題や、プレースホルダの利用のようなわずらわしさが無いのが利点である。
SQLとバッチ処理

埋め込みSQLやODBCの普及により、オンライントランザクション処理向きのSQLアクセス方法は確立されたが、バッチ処理性能向上の必要性が求められるようになった。

ある表 (テーブル)の内容を編集して別の表に格納する大量データの更新処理などをデータベースエンジン内部で処理プログラムを実行し、入出力 (I/O) のほとんどをデータベース内部で完結することにより、クライアント側とのデータ通信によるオーバヘッドを削減することでバッチ処理性能を向上させる「ストアドプロシージャ」が考え出された。

ストアドプロシージャは、同じくデータベース内部に定義し、データベースに発生したイベントの内容に応じて任意の処理を実行する機能である「データベーストリガ」とともに、標準SQL仕様に採用され、SQL:1999 (SQL99) 規格の永続格納モジュール (SQL/PSM) として標準化された。

しかし、標準化される以前から各関係データベース管理システム (RDBMS) ベンダーがデータベースエンジン内部で制御文法を記述し実行できるように独自の拡張が行われていたため、ストアドプロシージャの処理ロジック記述文法はそれ以前に標準化されたSQL文法と比較して著しい非互換が認められるため、アプリケーションソフトウェア移植性・開発生産性・保守性を損なう場合がある。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:45 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef