Database Systems
まえがき

現代社会では,情報技術の発展により,膨大なデータが蓄積されている.データを適切に管理し,活用するためには,データベースの知識が必要不可欠である.現在,リレーショナル・データベースは,データベースの中で最も広く利用されている.本講義では,リレーショナル・データベースの基本的な理論と設計方法,SQL言語を用いたデータベース操作を学ぶ.
本書は,法政大学の講義「リレーショナル・データベース」の講義資料である.理論を述べて終わりにせず,学んだモデルをSQLで実際に動かし,最後は自分で設計したデータベースをアプリケーションから操作するところまでを一冊で扱う.
本書の構成
本書は,理論から実装へと順に進む.
リレーショナルモデル. データベースを支える理論を扱う.リレーション,キーと一貫性制約,リレーショナル代数を,集合の言葉で定義する.
データベース設計. 実体関連モデル(ER図)によって対象世界をスキーマに写し,正規化によってその設計を検証する.
SQL. SQLiteを用いて,テーブルの定義から,データの検索・追加・更新・削除,集計,グループ化,結合,副問い合わせまでを扱う.「SQL応用」からは,サンプルデータベース Chinook を題材とする.
アプリケーション開発とデータベース. Pythonの sqlite3 モジュールからデータベースを操作する方法を学び,設計から実装までを一貫して行うプロジェクト演習に取り組む.
Recap. 理論とSQLの総合演習をまとめてある.知識の確認に使うとよい.
章の順序は講義の進行に対応している.後半のSQLは前半のリレーショナルモデルを前提としているため,順に読むことを勧める.
想定する読者と前提知識
データベースを扱った経験のない学部生を対象としている.
数学は集合の初歩のみを用いる.必要な範囲は集合の章にまとめてあるので,不安があれば先に目を通すとよい.
プログラミングの経験は前提としない.SQLは本書の中で一から説明する.Pythonを用いるのは「アプリケーション開発とデータベース」の部だけであり,そこで使う範囲のコードはすべて本文に示す.
演習環境
演習には,Visual Studio CodeとそのSQLite拡張機能を用いる.導入の手順はSQLiteのインストールにある.SQLiteを選んだのは,サーバーの設定が不要で,データベース全体が1つのファイルに収まるためである.
「SQL応用」以降で用いるサンプルデータベースは,chinook.dbからダウンロードできる.Pythonのコードは,Google Colabのブラウザ上でも実行できる.
表記
本書では,内容に応じて次の形式を使い分けている.
定義 は,覚えておくべき用語を与える.例 は,その定義を具体的なデータで確かめるためのものであり,読むだけでよい.どちらも番号がついており,@def-relation のように本文から参照できる.
練習 は,読者が手を動かすためのものである.章末に置いてある.
補足は,次のような囲みで示す.本筋ではないため,読み飛ばしても差し支えない.
SQL文では,SELECT,FROM などの予約語を大文字で書き,文末にセミコロン ; を付ける.SQLは大文字と小文字を区別しないが,本書では読みやすさのためにこの書き方で統一している.
本書について
本書は執筆途中であり,随時更新される.閲覧の際には,最新の内容が表示されるよう,ブラウザを再読み込みしてほしい.
誤字脱字,内容の不備,わかりにくい箇所などを見つけたら,劉子昂まで連絡してほしい.
Email: liu@hosei.ac.jp