データベースシステム (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 参考書

  1. 速水治夫・宮崎収兄・山崎晴明, "データベース", ISBN 4274132544
  2. 増永良文, "リレーショナルデータベース入門 [第 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 の構文で 表現しなさい。

  1. 表 成績に登録されている科目名を求める。
  2. 表 成績に対して、50 点未満の得点を取得した学生の学籍番号を求める。

9.3 略解

演習 1

  • RDB は、データの関係モデルにもとづくデータベースである。
  • RDBMS は、RDB を維持するために用いる DBMS である。

コメント: では、DBMS とは何でしょう。

演習 2

  1. select 科目 from 成績
  2. 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.7 課題 (任意)

第 3 回の課題と同様である。

16 第 9 回: astah* を利用したデータベースの設計

16.1 前回の質問とその回答

なし。

16.2 授業の流れ

1. 解説 (45 分)
2. 演習 (45 分)

注: 今回は確認テストはなし。

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 回: トランザクション管理と同時実行制御

前回の質問とその回答

なし。

授業の流れ

  1. 講義ビデオを視聴する。
  2. 確認テストに取り組み、自己採点する。
  3. 確認テストの結果を指定したフォームからアップロードする。期限は 7/16(火) 9:00am である。

課題 (任意)

第 3 回の課題と同様である。

第 13 回: データベース管理システム

前回の質問とその回答

なし。

授業の流れ

  1. 講義ビデオを視聴する。
  2. 確認テストに取り組み、自己採点する。
  3. 確認テストの結果を指定したフォームからアップロードする。期限は 7/16(火) 9:00am である。

課題 (任意)

第 3 回の課題と同様である。

第 14 回: 前半の総復習

授業の流れ

  1. 演習課題に各自で取り組む
  2. 担当者による解説

課題 (任意)

第 3 回の課題と同様である。

19 第 15 回: 後半の総復習 / 授業アンケート FURIKA の実施

19.1 前回の質問とその回答

なし。

19.2 授業の流れ

  1. 演習課題に各自で取り組む
  2. 担当者による解説
  3. FURIKA への回答

19.4 課題 (任意)

第 3 回の課題と同様である。

Last Modified: 2024-07-16 Tue 07:31 (JST)
Copyright © 2023-, Ryo Nakamura. All rights reserved.