21224229

コンピュータ工学COM506f 

3年前学期木2

データベース論

Database Systems

大森・新谷

単位区分

単位数: 2単位
必修
課程・類・プログラム
種別
先端工学基礎課程

関連Webサイト

Google Classroomにて資料配布. 遠隔授業に関する項目を見よ.

主題および達成目標

関係データベースシステムの諸原理の学部講義. 最初に, 関係データモデルや関係代数, SQL, などの諸概念と操作の水準を知り, SQLから関係代数演算系列への変換方法を学ぶ. 次に, データベースのデータ自体のディスク上の永続的記憶方法と索引技術, 関係代数演算の高速実行アルゴリズムなど, データ処理の実装技法を中盤で学ぶ. 後半では, 共有データベースへの無矛盾な同時並行読み書き処理や障害発生時の自動的なデータベース復元の制御など, システムの制御原理を学ぶ. 最後にデータマイニングなど現代のデータ分析との関連なども簡単にふれる. (2026年度は大森が担当します). これによって, ビッグデータを扱う計算機システムであるデータベースシステムに関わる基本概念を修得することを目指す.

前もって履修しておくべき科目

アルゴリズムの入門編に相当する講義の履修経験は必須. 木とグラフ, ハッシュ, 探索法などとCプログラミングの知見があると理解がしやすい.

前もって履修しておくことが望ましい科目

オペレーティングシステム, 特にプロセス管理や並行処理と, tcp/ipネットワーク通信に関する履修経験があると, わかりやすい. クライアント・サーバシステムのOS上の作り方がわかっていると良い.

教科書等

資料は独自に作成し毎回配布する. 資料・演習の指示の大半はGoogle Classroom (クラスコードはg742wlre )にも載せるので, 履修登録者は参照されたし. 初回講義にて解説する.

資料内容は, 古典的な関係データベースの原理を12回程度で概観できるように(海外の有名本から)大森が整理したもの. 標準的な日本の学部参考書としては, 以下を見てほしい:

1. 北川博之, 「データベースシステム」, オーム社, 3200円. (もとは昭晃堂から発刊. 多くの大学で1980年代半ばから標準テキストとして使われてきた. やや旧いが原理は不変). 本書は, 最近30年ぶりに改訂された第2版が出ており, そちらが入手しやすい. 旧版でも差し支えない.

2. 川越恭二, 「楽しく学べるデータベース」, 共立出版. (元は昭晃堂). 上記の本の入門編に位置し, 基本概念を学ぶという視点での内容は充実. PostgreSQLの例題つき. 比較的新しく, 学部で初心者が概念そのものを知るためにはお勧めできる. 分厚くなく, バランスがとれた内容. この講義の骨組みをわかるには適す. 本書で大枠をつかみ, 詳しく調べるときに上の1. などを見るのが良い.

3. 白鳥則郎 監修, 「データベース - ビッグデータ時代の基礎 --」(未来へつなぐデジタルシリーズ 26), 共立出版(2014)あちこちから話題を寄せ集めしたタイプの教科書. 先進的な話題で項目を拾い読みしたいときに参考となる.

4. 他に, 情報処理資格者上級試験の「データベース(スペシャリスト)」の午前の部の試験対策本も基本概念を理解するには適切. 講義前半のRDBの概念, 個々の関係代数演算の計算結果の例, 後半のトランザクション処理と直列可能性の説明や並行動作, トランザクションの取り消し処理の時の動作結果の例, など, 例題中心に, 授業資料で不足しているところを調べるには良い.

授業内容とその進め方

H30年度(2018)から始まった講義で, H30大森, H31新谷, R2(2020)大森, R3新谷, R4大森, R5新谷, R6大森, と隔年交替で担当. (授業内容は最初に大森が作った学部用資料が基になっているので, 最後の1~2回の先進的話題の他は毎年ほぼ同じです. )

講義は, 関係データベースシステムの原理を中心に行い, 最後に先進的話題として現代の巨大データ処理機構やデータマイニングの入門的な内容にもふれる.

<授業予定全15回>
第1回. ガイダンス. データベース・データベースシステムの概要
----
第2回. 関係データモデルと関係代数 (1)関係データモデル, キー制約など.
第3回 同(2) 関係代数演算の導入
----
第4回. 関係代数の演算体系, 関係論理式との対応
第5回. 関係代数式による問い合わせ記述
第6回. 関係代数式の演算列の最適化
----
第7回. SQL問い合わせ言語・基本構文, 参照性制約
第8回. SQLの複雑な問い合わせ - 集約処理, 入れ子SQL
第9回. SQLプログラミング例, Viewの定義と利用
----
第10回. 関係データベースシステムの実装法 (1) インデックスとリレーションの実装
第11回. 同(2) 関係代数演算の実行アルゴリズム -入れ子ループ結合, ハッシュ結合, マージソート結合, 並列データベース処理
第12回. 関数従属性とスキーマの正規化
----
第13回. 共有データベース上のトランザクション処理(1) トランザクションの概念と直列可能性
第14回. 同(2)2相ロック規約, 障害回復, クライアント・サーバ方式による実装
第15回. 先進的話題(2020年代のデータエンジン技術, データマイニング・データ応用など), まとめ

授業時間外の学習

関係データベース(RDB)システムとして代表的なPostgreSQLを使ってRDB上の問い合わせ・データ分析処理のSQL記述例を演習的に紹介する場合がある. このような紹介的な演習例は, インストール含め, 参考として紹介する程度とし, 必須課題としない. linux用. 総合成績点への組み込み方法は講義中に連絡する.

この紹介例の内容は, 元は, linuxの一つであるcentos7.xの環境上でpostgreSQLを載せてSQLやトランザクション処理のコード例, ビュー定義の利用例, を動かす程度のものでした. 今なら, windows11上のWSL2 (windows system for linux 2) のubuntuを用いるのが一番簡単です. pythonからpostgresを操作するトランザクション処理コードの例などを紹介します.

成績評価方法および評価基準

理解度確認の宿題を数回程度(100点満点の内数として必須の点数扱い)とし, 期末に筆記試験(仮に宿題必須が合計10点なら試験は90点満点)を行って, その合計で100点満点での総合成績をつける. 宿題は必須. 他に, 演習としてPostgreSQLのプログラミング例やその他の最近のデータ管理システム・データ処理エンジンの例題プログラミング例や例題を紹介するが, これは必須ではなく, 自由課題(やらなくても良い)として, この演習分は, 100点満点の外枠での加点扱いとしています(高々5~7点程度). 講義の基本は, 関係データベースシステムまでで確立したデータ管理システムの理論上の諸原理や実装技術の基本原則を理解することにあります.

オフィスアワー・授業相談

授業終了後やその他平日午後の空き時間ならメールで相談してください.

学生へのメッセージ

巨大データ管理と応用の基本を学ぶ入門的な科目でII類学生向けの情報系科目の基礎の一つ. 関係データベースシステムの基本原理を解説して, 現代の巨大データベースシステムやデータ応用の原理の理解につながるように, データベース分野の諸原理や基本概念を理解してもらいたいです. 巨大分散データベース記憶システムや並列データ処理機構によるデータ応用の記述など, この分野の先端的なデータ処理基盤システムは現在のIT環境そのものであり, そこに接近するだけの魅力を学部授業で発信できるようにしたい.

その

本講義の担当は新谷・大森で隔年交替で行います. 情報学分野で必須なデータ管理・データベース応用の基本を学ぶ講義という位置づけで, 学生の理解度や各年度の要請に応じて内容を調整します. なお本講義は大森が2028年3月に定年退官となるため, 2026, 2027の2年間は現体制で行いますがその後は未定です. 過年次で本講義を履修する者などは特に注意してほしい.

キーワード

SQL
データベースシステム
データマイニング
トランザクション処理
巨大データエンジン
巨大データ応用
関係データベース
関係代数
最終変更日時: 2026/04/01 17:10:10