データベースシステム (2024 年度前期)
1 担当者
中村 遼 E-mail: r-nakamura[atmark]fukuoka-u.ac.jp 居室: 14 号館 3 階 313 オフィスアワー: 月曜日 1 限
2 スケジュール (予定)
1. スタートアップ授業 / データベースシステムの概要 24/ 4/16 2. SQL の概要 24/ 4/23 3. SQL によるデータベースの作成 24/ 4/30 4. SQL によるデータの検索 24/ 5/ 7 休講 24/ 5/14 5. SQL による高度な検索 24/ 5/21 6. SQL のその他の機能 24/ 5/28 7. 関係データモデルと関係代数 24/ 6/ 4 8. データベースの設計 24/ 6/11 9. astah* を利用したデータベースの設計 24/ 6/18 10. 正規化と一貫性制約: 第一正規形 24/ 6/25 11. 正規化と一貫性制約: 第二正規形・第三正規形 on-demand 12. トランザクション管理と同時実行制御 on-demand 13. データベース管理システム 24/ 7/13 1 限 14. 前半の総復習 注: 教室は 1121。 24/ 7/16 15. 後半の総復習 / 授業アンケート FURIKA の実施
3 到達目標
- [O1] データベースの重要性およびデータベースのモデルを理解できるよう になる
- [O2] SQL を利用して、データベースを操作できるようになる
- [O3] E-R 図を用いながら、簡易的なデータベースを設計できるようになる
- [O4] 関係データモデルおよび関係代数を理解できるようになる
- [O5] 第一正規形・第二正規形・第三正規形および一貫性制約を理解できる ようになる
- [O6] トランザクション管理/同時実行制御およびファイルアクセス方式の概 要を理解できるようになる
4 成績評価
平常点を 20%、定期試験の得点を 80% で重み付けした得点と、 定期試験の得点を 100% とした得点とのうち、 大きいものを最終的な成績とする。
5 参考書
- 速水治夫・宮崎収兄・山崎晴明, "データベース", ISBN 4274132544
- 増永良文, "リレーショナルデータベース入門 [第 3 版] —データモデル・SQL・管理システム・NoSQL—", ISBN 978-4781913902
6 FU Coder
FU Coder (学内関係者限定) https://code.cx.tl.fukuoka-u.ac.jp/db/
7 ミニッツペーパの回答フォーム
Microsoft Forms (学内関係者限定) https://forms.office.com/r/pACGezEkjF2
8 第 1 回: スタートアップ授業 / データベースシステムの概要
8.1 資料
9 第 2 回: SQL の概要
9.1 資料
9.2 確認演習
演習 1
Wikipedia の「Relational database」のページ (特に、最初の第一段落) を読み、 その上で RDB (Relational DataBase) と RDBMS (Relational DataBase Management System) を、 その違いに注意しながら、 それぞれ簡潔に説明しなさい。
Relational database https://en.wikipedia.org/wiki/Relational_database
演習 2
まず、以下の前提を置く。
- 表 成績を考える。
- 表 成績を構成する列は、学籍番号・科目・得点の三つである。
このときに、自然言語で記述された RDB への問い合わせを SQL の構文で 表現しなさい。
- 表 成績に登録されている科目名を求める。
- 表 成績に対して、50 点未満の得点を取得した学生の学籍番号を求める。
9.3 略解
演習 1
- RDB は、データの関係モデルにもとづくデータベースである。
- RDBMS は、RDB を維持するために用いる DBMS である。
コメント: では、DBMS とは何でしょう。
演習 2
- select 科目 from 成績
- select 学籍番号 from 成績 where 得点 < 50
9.4 課題 (任意)
授業内容を十分に復習した後に、 以下の Forms に記載されている設問に、回答しなさい。 回答の期限は、次回講義の開始時刻の 48 時間前とする。 今回の第 2 回を例として期限を説明すると、 (JST で、) 次回である第 3 回の講義は 4/23(火) であり、 その開始時刻は 9:00am であるから、 期限は 4/21(日) 9:00am である。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/gfJS0Eg3n5
10 第 3 回: SQL によるデータベースの作成
10.2 授業の流れ
1. 解説 (30 分) 2. グループワーク (40 分) 3. 確認テスト (10 分) 4. 採点・教え合い (10 分)
10.3 資料
10.4 確認演習および略解
講義資料を参照されたい。
10.5 確認テスト
- 解答用紙には、持参しているノート・紙などを用いてください。
- 確認テストを問いているときには持ち込みはなしです (→ 確認テストの問 題を閲覧するためだけに PC を用いても構いません)。また、グループでの 相談もなしです。
- 採点・教え合いのときになれば、解答用紙を周囲の人と交換し、互いに採点 してください。採点者は、解答用紙のどこかに自身の氏名を記入してくださ い。
- 採点・教え合いのときには、資料を参照しても構いませんし、グループで相 談しても構いません。
- 授業日の 11:59pm までに、(100 点になるまで) 採点してもらった解答用紙 の画像をアップローダから提出してください。
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/dbsys/2024/priv/quiz.html#03 - アップローダ https://forms.office.com/r/jDqQTzuWBB 補足: 試験的に Forms で回収しています。
10.6 課題 (任意)
第 2 回の課題と同様である。ただし、今回以降の課題で用いる Forms は次の通りである。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/pACGezEkjF2
補足: 「質問」には、講義内容そのものだけでなく、情報科学・研究・キャリ ア (将来設計)・学修に関する質問も歓迎します。
11 第 4 回: SQL によるデータの検索
11.1 前回の質問とその回答
なし。
11.2 授業の流れ
第 3 回の授業の流れと同様である。
11.3 資料
11.4 確認演習および略解
講義資料を参照されたい。
11.5 確認テスト
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/dbsys/2024/priv/quiz.html#04 - アップローダ https://forms.office.com/r/tjuQ2W1iuS 補足: 試験的に Forms で回収しています。
11.6 課題 (任意)
第 3 回の課題と同様である。
12 第 5 回: SQL による高度な検索
12.1 前回の質問とその回答
なし。
12.2 授業の流れ
第 3 回の授業の流れと同様である。
12.3 資料
12.4 補足
演習で用いる表 employee
を定義するには、次のようにすればよい。
- FU Coder での MySQL の場合
以下のクエリをコピペし、発行すればよい。
create table employee (id char(4), name varchar(32), salary int, dept_id char(1)); alter table employee add primary key (id); insert into employee values (1001, 'asano', 800, 'D'); insert into employee values (1002, 'sakaguchi', 600, 'D'); insert into employee values (1003, 'yamaguchi', 800, 'S'); insert into employee values (1004, 'mori', 900, 'S'); insert into employee values (1005, 'tanaka', 700, 'S'); insert into employee values (1006, 'yamada', 600, NULL);
- paiza.io の場合
以下のクエリをコピペし、実行すればよい。
create table employee (id char(4), name varchar(32), salary int, dept_id char(1)); alter table employee add primary key (id); insert into employee values (1001, 'asano', 800, 'D'); insert into employee values (1002, 'sakaguchi', 600, 'D'); insert into employee values (1003, 'yamaguchi', 800, 'S'); insert into employee values (1004, 'mori', 900, 'S'); insert into employee values (1005, 'tanaka', 700, 'S'); insert into employee values (1006, 'yamada', 600, NULL);
12.5 確認演習および略解
講義資料を参照されたい。
12.6 確認テスト
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/dbsys/2024/priv/quiz.html#05 - アップローダ https://forms.office.com/r/Yws2vPgPHd 補足: 試験的に Forms で回収しています。
12.7 課題 (任意)
第 3 回の課題と同様である。
13 第 6 回: SQL のその他の機能
13.1 前回の質問とその回答
なし。
13.2 授業の流れ
第 3 回の授業の流れと同様である。
13.3 資料
13.4 確認演習および略解
講義資料を参照されたい。
13.5 確認テスト
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/dbsys/2024/priv/quiz.html#06 - アップローダ https://forms.office.com/r/WV5wMrhKVH 補足: 試験的に Forms で回収しています。
13.6 課題 (任意)
第 3 回の課題と同様である。
14 第 7 回: 関係データモデルと関係代数
14.1 前回の質問とその回答
なし。
14.2 授業の流れ
1. 解説 (60 分) 2. 確認テストに向けた準備 (10 分) 3. 確認テスト (10 分) 4. 採点・教え合い (10 分)
14.3 資料
14.4 確認演習と略解
省略。
14.5 確認テスト
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/dbsys/2024/priv/quiz.html#07 - アップローダ https://forms.office.com/r/EVCmnbfNZ5 補足: 試験的に Forms で回収しています。
14.6 課題 (任意)
第 3 回の課題と同様である。
15 第 8 回: データベースの設計
15.1 前回の質問とその回答
なし。
15.2 授業の流れ
第 7 回の時と同様である。
15.3 資料
15.4 確認演習
演習 1
実世界における身の周りの何らかの事物を対象とし、ER 図を作成しなさい。 ただし、以下の要件を満たすこと。
- 実体型と関連型の合計が三つ以上である程度には複雑であること
- 実体型と関連型に付随する属性のうち主キーとなる属性には下線を引くこと
- 関連型の種類 (例: 1 対 1 関連型や 1 対 多関連型) を判断した理由も説 明すること
演習 2
講義資料のタイトル「実世界表現の曖昧性」に記載されている ER 図をリレー ションスキーマに変換しなさい。
15.5 略解
演習 1
省略。
演習 2
- 学生 ( 学籍番号 , 学生名, 住所)
- 科目 ( 科目名 , 単位数)
- 履修 ( 履修 ID , 得点)
- 履修学生 ( 履修 ID , 学籍番号)
- 履修科目 ( 履修 ID , 科目名)
15.6 確認テスト
15.7 課題 (任意)
第 3 回の課題と同様である。
16 第 9 回: astah* を利用したデータベースの設計
16.1 前回の質問とその回答
なし。
16.2 授業の流れ
1. 解説 (45 分) 2. 演習 (45 分) 注: 今回は確認テストはなし。
16.3 資料
16.4 確認演習および略解
講義資料を参照されたい。
16.5 課題 (任意)
第 3 回の課題と同様である。
17 第 10 回: 正規化と一貫性制約: 第一正規形
17.1 前回の質問とその回答
なし。
17.2 授業の流れ
第 7 回と同じである。
17.3 資料
17.4 確認演習と略解
TBD
17.5 確認テスト
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/dbsys/2024/priv/quiz.html#10 - アップローダ https://forms.office.com/r/Cs9NNCCmxV 補足: 試験的に Forms で回収しています。
17.6 課題 (任意)
第 3 回の課題と同様である。
18 第 11 回: 正規化と一貫性制約: 第二正規形・第三正規形
18.1 前回の質問とその回答
なし。
18.2 授業の流れ
第 7 回と同じである。
18.3 資料
18.4 確認演習と略解
TBD
18.5 確認テスト
- 問題 https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/dbsys/2024/priv/quiz.html#11 - アップローダ https://forms.office.com/r/7aar0YqDmS 補足: 試験的に Forms で回収しています。
18.6 課題 (任意)
第 3 回の課題と同様である。
第 12 回: トランザクション管理と同時実行制御
前回の質問とその回答
なし。
授業の流れ
- 講義ビデオを視聴する。
- 確認テストに取り組み、自己採点する。
- 確認テストの結果を指定したフォームからアップロードする。期限は 7/16(火) 9:00am である。
資料
確認テスト
課題 (任意)
第 3 回の課題と同様である。
第 13 回: データベース管理システム
前回の質問とその回答
なし。
授業の流れ
- 講義ビデオを視聴する。
- 確認テストに取り組み、自己採点する。
- 確認テストの結果を指定したフォームからアップロードする。期限は 7/16(火) 9:00am である。
資料
確認テスト
課題 (任意)
第 3 回の課題と同様である。
第 14 回: 前半の総復習
授業の流れ
- 演習課題に各自で取り組む
- 担当者による解説
資料
課題 (任意)
第 3 回の課題と同様である。
19 第 15 回: 後半の総復習 / 授業アンケート FURIKA の実施
19.1 前回の質問とその回答
なし。
19.2 授業の流れ
- 演習課題に各自で取り組む
- 担当者による解説
- FURIKA への回答
19.3 資料
19.4 課題 (任意)
第 3 回の課題と同様である。