前史 — Codd論文という稲妻
SQLの歴史は、1970年6月にE. F. Coddが発表した論文「A Relational Model of Data for Large Shared Data Banks」から始まります。 論文はわずか11ページでしたが、当時支配的だった階層型(IBM IMS)・ネットワーク型(CODASYL)のデータベースモデルに対して 「集合論と述語論理で記述された関係モデル」という全く異なる抽象を提示しました。
Codd自身はIBMの社員でしたが、論文発表当初、IBMは自社のIMSに脅威になるとしてCodd の構想に冷淡でした。 その間隙を突いたのが、カリフォルニア大学バークレー校のMichael StonebrakerとEugene Wongで、 1973年にはCodd理論に基づく研究用DBMS「INGRES」とその問い合わせ言語「QUEL」の開発を開始します。
SEQUEL誕生 — 1974年San Jose
IBMは1973年にCoddの構想を実証する「System R」プロジェクトをSan Jose Research Labで発足させます。 中核メンバーのDonald ChamberlinとRaymond Boyceは、最初「SQUARE(Specifying Queries in A Relational Environment)」という言語を設計しましたが、 添字・上付き文字を多用する数学的記法が難解すぎて断念。
1974年5月、Chamberlinと Boyceは論文「SEQUEL: A Structured English Query Language」をACM SIGFIDETワークショップで発表。 「Structured English」の名の通り、英語に近い宣言的構文を採用し、非数学者にも書きやすい言語を目指しました。
timeline
title SQL誕生への道程
1970 : Codd "A Relational Model of Data..."
: 関係モデルを提唱
1973 : System R プロジェクト発足 (IBM San Jose)
: Berkeleyで INGRES/QUEL 開発開始
1974 : Chamberlin & Boyce "SEQUEL" 論文発表
: SQUAREから改名・簡素化
1977 : Software Development Laboratories 設立
: (後のOracle)
1979 : Oracle V2 リリース (VAX 向け)
: 最初の商用SQL RDBMS
1981 : IBM SQL/DS リリース
1983 : IBM DB2 (MVS向け) リリース
1986 : ANSI SQL-86 標準化
1987 : ISO 9075:1987 標準化QUEL vs SQL — 技術では敗れず、市場で勝った
1970年代末〜1980年代前半、リレーショナルDBにはSQLとQUELの二大勢力がありました。 技術的にはQUELの方が優れているという評価が主流で、C. J. Date(Coddの共同研究者)は1985年の論文で 「QUELはSQLよりリレーショナルモデルに忠実で、合成可能性に優れる」と論じています。
-- SQL (SEQUEL系譜)
SELECT name, age FROM users WHERE age >= 30;
-- QUEL (INGRES) — タプル変数を明示し、関係代数に忠実
RANGE OF u IS users
RETRIEVE (u.name, u.age) WHERE u.age >= 30 それでもSQLが勝った理由は市場と組織の力学です。
- IBMの参入: 1981年SQL/DS、1983年DB2でIBMがSQLを採用。当時のIT業界でIBMの採用はそのままデファクト化を意味した
- Oracleの先手: 1979年、Larry EllisonらのOracle V2がSystem Rより先にSQLを商用リリース。最初の顧客はCIA
- ANSI標準化: 1986年にANSIがSQLを採用。StonebrakerはイデオロギーゆえにANSIに出席せずQUELを擁護しなかったと後に回顧
- INGRESのSQL対応: 3年かけてQUEL→SQLに移行した頃には、顧客の多くがOracleに流れていた
ANSI/ISO標準化 — 10回の改訂
1986年のANSI SQL-86を皮切りに、SQLはISO/IEC 9075として国際標準化され、今日まで10回の改訂を経てきました。 標準化の主役はISO/IEC JTC 1/SC 32/WG 3(Database Languages)で、 米国ではANSI X3H2 → NCITS H2 → INCITS DM32.2と変遷した技術委員会が窓口になっています。
| 年 | 版 | 主要機能 |
|---|---|---|
| 1986 | SQL-86 | 最初のANSI標準 (X3.135-1986) |
| 1987 | SQL-87 | ISO採択 (ISO/IEC 9075:1987) |
| 1989 | SQL-89 | 参照整合性制約、Ada/C言語バインディング |
| 1992 | SQL-92 (SQL2) | OUTER JOIN、CROSS JOIN、CASE式、DATE/TIME型、INFORMATION_SCHEMA — 現代SQLの骨格 |
| 1999 | SQL:1999 (SQL3) | 再帰CTE、ROLLUP/CUBE (OLAP)、Boolean型、ユーザ定義型、トリガー、ロール |
| 2003 | SQL:2003 | SQL/XML、ウィンドウ関数、MERGE文、IDENTITY列 |
| 2006 | SQL:2006 | SQL/XMLにXQueryを統合 |
| 2008 | SQL:2008 | TRUNCATE、INSTEAD OFトリガ、FETCH FIRST/OFFSET |
| 2011 | SQL:2011 | 時間テーブル (temporal tables)、PERIOD FOR、AS OF、ウィンドウ関数強化 |
| 2016 | SQL:2016 | JSON関数 (22機能)、Row Pattern Matching (MATCH_RECOGNIZE)、LISTAGG |
| 2019 | SQL:2019 | Part 15 新設: 多次元配列 (MDarray) |
| 2023 | SQL:2023 | Part 16 SQL/PGQ (Property Graph Queries)、ネイティブJSON型、ANY_VALUE、数値リテラルのアンダースコア |
| 2025 | SQL:2025 (進行中) | 複数パートが改訂予定、2026年時点で策定中 |
SQL-92 — 現代SQLの骨格が固まった年
SQL-92は初版のSQL-86(120ページ)から579ページへと4倍以上に膨張し、 OUTER JOIN、CROSS JOIN、CASE式、CAST、DATE/TIME/TIMESTAMP/INTERVAL型、動的SQL、トランザクション分離レベル、CHECK制約など、 今日のSQLで当たり前に使われる機能の大半を導入しました。 2026年時点でもSQL-92を「現代SQLの基盤」と呼ぶのはこのためです。
SQL:2023 — グラフクエリの標準化
2023年6月採択のSQL:2023は、2016年以来7年ぶりの完全版改訂。 最大のトピックはPart 16「SQL/PGQ(Property Graph Queries)」の新設です。
-- SQL:2023 SQL/PGQ — SQL文の中でグラフパターンマッチを記述
SELECT owner_name, pet_name
FROM GRAPH_TABLE (
my_graph
MATCH (a:Person)-[:OWNS]->(b:Pet)
COLUMNS (a.name AS owner_name, b.name AS pet_name)
); これにより、既存のリレーショナルテーブル上に「プロパティグラフのビュー」を定義し、 Cypher風のパターンマッチング構文でグラフ問い合わせができるようになりました。 Oracle 23aiが初の商用実装、PostgreSQL 18でも実験的サポート、DuckPGQプロジェクトも進行中です。
オープンソース時代 — MySQL と PostgreSQL
商用RDBMS(Oracle, DB2, SQL Server)の陰で、1990年代後半からオープンソースDBが台頭します。 その流れが2010年代のクラウドネイティブ時代の礎になりました。
timeline
title オープンソースRDBMSの系譜
1986 : POSTGRES (UC Berkeley)
: Stonebrakerが指揮
1994 : MySQL 開発開始 (TcX, Monty Widenius)
: Andrew Yu & Jolly Chen が POSTGRES に SQL 追加
1995 : MySQL 1.0 (内部)
: Postgres95 公開
1996 : PostgreSQL に改称
: MySQL 外部リリース
1998 : LAMPスタック命名 (独Computertechnik誌)
2000 : SQLite 1.0 (D. Richard Hipp)
2008 : Sun が MySQL AB を買収
2010 : Oracle が Sun を買収
: Monty Widenius が MariaDB をフォーク
2025 : PostgreSQL 18 (AIO, skip scan, uuidv7)
: MariaDB 11.8 LTS (VECTOR 型搭載)| DB | 初版 | 創設者 | 設計思想 |
|---|---|---|---|
| PostgreSQL | 1996 (Postgres95は1995) | Michael Stonebraker (UC Berkeley) | 拡張性とSQL標準準拠度を最優先 |
| MySQL | 1995 | Monty Widenius, David Axmark (TcX) | 高速・軽量・Webでの実用性 |
| SQLite | 2000 | D. Richard Hipp (米海軍駆逐艦向けに開発) | ゼロ設定・組み込み・Public Domain |
| MariaDB | 2009 | Monty Widenius (Oracleによる買収への懸念から) | MySQL互換・コミュニティ主導 |
現代 — 分散SQL とAI時代
2010年代以降、SQLはクラウド・分散・AIという3つの新しい文脈に拡張されています。
| 時期 | 潮流 | 代表製品 |
|---|---|---|
| 2012-2015 | NewSQL / 分散SQL | Google Spanner, CockroachDB, TiDB |
| 2015-2020 | 組み込み OLAP | DuckDB, ClickHouse, chDB |
| 2020-2024 | Lakehouse SQL | Databricks SQL, DuckLake, Apache Iceberg |
| 2024-2026 | SQL + Vector統合 | pgvector, MariaDB VECTOR, SQL Server 2025, Oracle 23ai AI Vector Search |
| 2024-2026 | Text-to-SQL (AI) | GitHub Copilot in SSMS, Cursor, Vanna, BIRD/Spider 2.0 ベンチマーク |
Amazon Aurora DSQLが2025年5月にGAし、AWSが分散SQLの主戦場に正式参戦。 PostgreSQL互換の分散SQL(CockroachDB, YugabyteDB, Aurora DSQL)が現代の主戦場になっています。 一方でMariaDB 11.8 LTSが2025年にVECTOR型とHNSWインデックスを標準搭載し、 AIワークロードとSQLの融合が本格化しました。
第2章のまとめ
- SQLの歴史は1970年Codd論文→1974年SEQUEL→1979年Oracle V2→1986年ANSI標準化の流れで形作られた
- QUEL(INGRES)は技術的にはSQLより優れていたが、IBMの市場影響力とANSI標準化がSQLを事実上の標準にした
- SQL-92で現代SQLの骨格が完成し、以降の改訂でウィンドウ関数・JSON・グラフクエリなどが積み増された
- SQL:2023ではPGQ(Property Graph Queries)が新設され、グラフDBの領域がSQLに取り込まれた
- 現代のSQLは分散SQL・組み込みOLAP・Vector統合・Text-to-SQLという新しい文脈で進化を続けている
次章では、SQLの設計思想を支える数学的基盤「関係代数」に踏み込みます。 なぜSQLは短く書けて、なぜオプティマイザが勝手に書き換えられるのか。 その答えは関係代数の8つの演算子と「閉包性」にあります。
理解度チェック
SEQUELが「SQL」に改名された理由として最も正しいものはどれですか?
キーボード: 1〜4 で選択、Enter で回答