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 ANALYZEB-tree/B+tree/Hash/GiST/SP-GiST/GIN/BRIN、EXPLAINの読み方、インデックスが効かないクエリ、use-the-index-luke→
- 第8章第8章: トランザクションと並行性制御 — ACID・分離レベル・MVCCACID、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、初→中→上級の学習ロードマップ→