前史 — 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 標準化
1970-1987年: リレーショナルモデルから国際標準化までの17年

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が勝った理由は市場と組織の力学です。

  1. IBMの参入: 1981年SQL/DS、1983年DB2でIBMがSQLを採用。当時のIT業界でIBMの採用はそのままデファクト化を意味した
  2. Oracleの先手: 1979年、Larry EllisonらのOracle V2がSystem Rより先にSQLを商用リリース。最初の顧客はCIA
  3. ANSI標準化: 1986年にANSIがSQLを採用。StonebrakerはイデオロギーゆえにANSIに出席せずQUELを擁護しなかったと後に回顧
  4. 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 型搭載)
1986-2025: オープンソースRDBMSの40年史
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年SEQUEL1979年Oracle V21986年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つの演算子と「閉包性」にあります。

理解度チェック

問題 0 / 50%
Q1

SEQUELが「SQL」に改名された理由として最も正しいものはどれですか?

キーボード: 1〜4 で選択、Enter で回答