Database Systems

作者
所属

法政大学

公開

2026年9月5日

まえがき

現代社会では,情報技術の発展により,膨大なデータが蓄積されている.データを適切に管理し,活用するためには,データベースの知識が必要不可欠である.現在,リレーショナル・データベースは,データベースの中で最も広く利用されている.本講義では,リレーショナル・データベースの基本的な理論と設計方法,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文では,SELECTFROM などの予約語を大文字で書き,文末にセミコロン ; を付ける.SQLは大文字と小文字を区別しないが,本書では読みやすさのためにこの書き方で統一している.

本書について

本書は執筆途中であり,随時更新される.閲覧の際には,最新の内容が表示されるよう,ブラウザを再読み込みしてほしい.

誤字脱字,内容の不備,わかりにくい箇所などを見つけたら,劉子昂まで連絡してほしい.

Email: liu@hosei.ac.jp