- 締切済み
第1正規形から第2正規形へ
正規化についてお聞きしたいです。 大学の図書館の本の貸し借りのデータベースで 現在第1正規化した↓のテーブルがあるのですが 本の貸借 学生ID|学生氏名|学部|学部棟 | 図書番号|出版社|本のタイトル 111 山田花子 経済 102B 100122 A社 経済白書 222 小林武 理学 201C 200021 D社 人間失格 555 鈴木一郎 文学 301D 103455 D社 走れメロス 555 鈴木一郎 文学 301D 204333 B社 バカの壁 666 沢井竹子 経済 102B 104444 C社 雑学無駄知識 (図書番号は重複がないものとする。) これを第2正規形に正規化した場合 学生ID(主キー)|学生氏名|学部|学部棟 学生ID(主キー)|図書番号(主キー)|出版社|本のタイトル ↑のように2つの表に分ければ良いのでしょうか? まだ完全に第2正規化を理解できていないので みなさんもし宜しければ力を貸してください。 学生ID(主キー)|学生氏名|学部|学部棟 学生ID(主キー)|図書番号(主キー)|出版社|本のタイトル
- みんなの回答 (2)
- 専門家の回答
みんなの回答
「複合キーが決定しないと一意に決まらないもの」(完全関数従属)と 「複合キーの一部が決定すれば決まるもの」(部分関数従属性)で分けると思うので ☆複合キーは(学生ID、図書番号) ○第2正規形 ★貸借表 学生ID(主キー)|図書番号(主キー) もしここで貸出日とか返却日があればこの表に入るかな ★学生表 学生ID(主キー)|学生氏名|学部|学部棟 ★図書表(第3正規形) 図書番号(主キー)|出版社|本のタイトル 以上の3表に分かれると思います また、学生表の学部棟を見ると学生IDから学部が決まり、学部から学部棟が決まる(推移的に決まる)ので ★学生表(第3正規形) 学生ID(主キー)|学生氏名|学部 と ★学部表(第3正規形) 学部(主キー)|学部棟 だと思います
- CHRONOS_0
- ベストアンサー率54% (457/838)
正規化を考えることも大切ですが テーブル設計はそれだけでは出来ませんよ アップされたテーブルでは本の貸借を記録しきれないと思います 現在の貸し出しをどのように管理しているか 帳簿はどうなっているかを調べられたほうがいいみたいですね 学生に本を貸すのなら 学生で1テーブル、本で1テーブル、貸し出しで1テーブル 最低でも3つテーブルが要ります また、貸し出しでは何時、誰に、何を貸し出し、何時返却されたか という情報が必須では