ISBN 9784274225161
データベースシステム(改訂2版)
概要
データベースシステムの基礎から内部実装まで体系的に習得する
想定読者
情報系学科の学生、またはRDBの設計・実装原理をゼロから体系立てて学び直したいエンジニア
こんな人には向いていない
- MySQLやPostgreSQLの実務操作ノウハウを短期で習得したい現場エンジニア(理論中心の教科書構成のため、実装手順書としては機能しない)
- SQLの文法だけを素早く覚えたい入門者(6章のリレーショナル論理など数学的抽象度の高い章を含む)
- NoSQLや分散データベースの設計・運用を主目的とする読者(12章でOODBに触れるが、主軸はリレーショナルモデルに終始する)
この本で身につくこと
- ERモデルと正規化理論を使ったデータモデリングの手順を説明できる
- SQL標準の構文(基本SELECT〜サブクエリ・集約・ビュー・アクセス制御)を正確に読み書きできる
- B木・ハッシュファイルなど物理的データ格納の仕組みを理解し、インデックス選択の判断に応用できる
- 問合せ最適化(コスト見積もり・結合アルゴリズム)の基礎原理を把握できる
- トランザクションの同時実行制御(ロック・直列化可能性・デッドロック)と障害回復(WAL・チェックポイント)の仕組みを説明できる
- リレーショナル代数・タプル関係計算を通じてSQLの意味論的な基盤を理解できる
ハイライト(外部からの言及)
データベースシステムを貫く基本概念こそ変わりませんが、この20年間の新しい技術を取り込み、改訂2版として発行するものです。 — 出典
1996年初版から約24年ぶりの改訂という背景を著者自身が端的に説明した一文。普遍的な理論と現代的アップデートの両立という本書の立ち位置が最もよく表れている
章立て
第1章 データベースシステムの基本概念
DBMS の歴史的変遷と本書の立ち位置。後続章の前提
第2章 データモデリング
ER モデル / UML を使った概念設計
第3章 リレーショナルデータモデル
Codd のリレーショナル理論。本書の中核となる数学的基盤
第4章 リレーショナルデータベース言語SQL
SELECT の基本から集約・結合・ビュー・アクセス制御まで SQL 標準を網羅する章。3章の理論から実際のクエリへ橋渡しする段として、実環境で動かしながら進むと定着が早い。
第5章 より高度なSQL
Window 関数・CTE・トランザクション分離レベルなど実務直結トピック
第6章 リレーショナル論理
リレーショナル代数・ドメイン関係計算の数学。クエリ最適化の前提
第7章 リレーショナルデータベース設計論
正規化・関数従属・第N正規形。本書の設計論の中心
第8章 物理的データ格納方式
B+ Tree / ハッシュインデックス / カラムストアの実装メカニズム
第9章 問合せ処理
クエリオプティマイザの動作原理。実行計画の理解の根拠書
第10章 同時実行制御
ロック / MVCC / Two-Phase Locking。トランザクション制御の理論的背景
第11章 障害回復
ARIES アルゴリズム / WAL の解説。ACID の D を支える仕組み
第12章 オブジェクト指向データベースシステム
OODBMS の概念と SQL への OO 拡張を概説する章。現在の主流から外れるため、登場の歴史的背景と普及しなかった理由を理解する視点で批判的に読むと有益。
関連記事 / 参考情報
- 1年半のソフトウェアエンジニア長期インターンで出会ったオススメ本をたくさん紹介します — インターン経験者が厳選した技術書リスト。データベース理論の学習書として本書を紹介
学習のヒント
- 1〜3章で概念基盤を固めた後、4〜5章(SQL)を実際のDB環境で動かしながら進めると定着が早い。7章(設計論)は4〜5章と並行して読むとモデリング→実装の流れが体感できる
- 6章(リレーショナル論理)は数学的抽象度が高く、初読時に詰まりやすい。8〜11章まで一通り読んだ後に改めて戻ると、SQLとの対応関係が見えて理解しやすくなる
- 各章末の演習問題と解答が充実している。問題を先に解いてから解答を確認する形で進めると、章内容の定着確認に使えるほか、大学院入試の演習としても活用できる
- 8〜11章(物理格納・問合せ処理・同時実行制御・障害回復)はDBエンジン内部を扱う上級セクション。実務でPostgreSQL等を使う読者は、実際の設定パラメータや実行計画(EXPLAIN)と照合しながら読むと抽象論に終わらない
前提知識
- 集合・関係の基本概念(高校数学レベルの集合論で十分)
- 基本的なプログラミング経験(変数・関数・ループ程度)があると演習問題の理解がスムーズ
- テーブル・行・列というRDBの概念を一度でも触れた経験(ゼロ知識でも読めるが、用語の定着速度が上がる)
次に読む本
データ指向アプリケーションデザイン
本書10〜11章(同時実行制御・障害回復)でトランザクションの理論的基盤を固めた後、分散環境でのレプリケーション遅延・パーティション耐性・結果整合性という本書が扱わない領域へ踏み込む際に接続書として機能する。
SQLアンチパターン
本書7章(リレーショナルデータベース設計論)で正規化・関数従属を体系的に学んだ後、それらの理論を実務コードベースで違反しやすい具体的なパターン(EAV・ポリモーフィック関連など)に照らし合わせ、設計判断の精度を上げる際に参照する。
理論から学ぶデータベース実践入門
本書3〜7章のリレーショナルモデル・正規化理論を学んだ読者が、PostgreSQL の行格納・MVCC・統計情報収集といった本書では抽象的にしか触れない実装の具体層へ橋渡しする目的で参照する。理論と OSS 実装の対応を確認する段階で有効。
出版社による内容紹介
データベースシステムの名著、20年ぶりの改訂! 本書は、おもに情報系学科におけるデータベース教育を想定して、データベースシステムの基礎を解説したものです。1996年発行の『データベースシステム』の改訂版です。 本書のカバーする範囲は、データベースシステムの基本概念(1章)、データモデリング(2章)、リレーショナルデータモデル(3章)、リレーショナルデータベース言語SQL(4章)、より高度なSQL(5章)、リレーショナル論理(6章)、リレーショナルデータベース設計論(7章)、物理的データ格納方式(8章)、問合せ処理(9章)、同時実行制御(10章)、障害回復(11章)、オブジェクト指向データベースシステム(12章)です。 各章末に演習問題を付けて、その解答も掲載しています。 今日、マルチメディアのみならず、AIやIoTといった大規模データ処理により、ますます世の中のデータ量は増加しています。また、ITインフラにおいては仮想化やクラウドが当たり前の技術となり、データを取り巻く環境は20年前とは大きく様変わりしました。データベースシステムを貫く基本概念こそ変わりませんが、この20年間の新しい技術を取り込み、改訂2版として発行するものです。 1章 データベースシステムの基本概念 2章 データモデリング 3章 リレーショナルデータモデル 4章 リレーショナルデータベース言語SQL 5章 より高度なSQL 6章 リレーショナル論理 7章 リレーショナルデータベース設計論 8章 物理的データ格納方式 9章 問合せ処理 10章 同時実行制御 11章 障害回復 12章 オブジェクト指向データベースシステム
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。