SQL Deep Dive
1970年のCodd論文から2023年のSQL/PGQまで、半世紀にわたり事実上の標準であり続ける問い合わせ言語SQLを、設計哲学・関係代数・実行モデル・インデックス・トランザクション・方言・未来の10章で徹底解剖するシリーズ
目次
- 第1章 第1章: SQLとは何か — 宣言的言語とリレーショナルモデルの本質 「WHATを書けばHOWはオプティマイザが決める」の意味、集合論との接続、関係モデルの基本語彙、SQLが半世紀君臨する理由→
- 第2章 第2章: 歴史 — SEQUEL誕生からSQL:2025までの半世紀 Codd論文(1970)、SEQUEL誕生(1974)、Oracle V2(1979)、QUEL論争、ANSI/ISO標準化、SQL-92/:2016/:2023の年表→
- 第3章 第3章: リレーショナル代数 — SQLを支える数学的骨格 σ/π/⋈/∪/−/÷の8演算子、SQLとの対応、閉包性・合成可能性、関係代数がオプティマイザを可能にする理由→
- 第4章 第4章: 主要構文と論理処理順序 — DDL/DML/DCL/TCLとNULLの3値論理 FROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BYの論理実行順、JOIN 6種類、NULLと3値論理、詰まりポイントTop5→
- 第5章 第5章: サブクエリ・CTE・ウィンドウ関数 — モダンSQLの3本柱 相関/非相関サブクエリ、WITH再帰CTE、PARTITION BY/ORDER BY/frame、RANK/LAG/LEAD、アンチパターン→
- 第6章 第6章: クエリプランナとオプティマイザ — 宣言性を支える頭脳 パーサ→アナライザ→リライタ→プランナ→エグゼキュータの5段階、CBO、System R論文、Volcano/Cascades、JOIN 3アルゴリズム→
- 第7章 第7章: インデックスと実行計画 — B+tree・GIN・BRIN・EXPLAIN ANALYZE B-tree/B+tree/Hash/GiST/SP-GiST/GIN/BRIN、EXPLAINの読み方、インデックスが効かないクエリ、use-the-index-luke→
- 第8章 第8章: トランザクションと並行性制御 — ACID・分離レベル・MVCC ACID、4つの分離レベル、3つの異常、PostgreSQL/MySQL/Oracleのデフォルト差、MVCC、2PL、Serializable Snapshot Isolation→
- 第9章 第9章: SQL方言と競合技術 — PostgreSQL/MySQL/NoSQL/分散SQL/OLAP 主要RDBMS方言差、SQL vs NoSQL、NewSQL(Spanner/CockroachDB/TiDB/Aurora DSQL)、OLAP系(DuckDB/ClickHouse)、ORM論争→
- 第10章 第10章: AI時代のSQL — 現在の採用状況・Vector統合・学習ロードマップ 市場シェア、採用企業事例、Vector型搭載の潮流(PG/SQL Server/Oracle/MariaDB)、Text-to-SQL、初→中→上級の学習ロードマップ→