• 締切済み

第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(主キー)|図書番号(主キー)|出版社|本のタイトル

みんなの回答

noname#246547
noname#246547
回答No.2

「複合キーが決定しないと一意に決まらないもの」(完全関数従属)と 「複合キーの一部が決定すれば決まるもの」(部分関数従属性)で分けると思うので ☆複合キーは(学生ID、図書番号) ○第2正規形 ★貸借表 学生ID(主キー)|図書番号(主キー) もしここで貸出日とか返却日があればこの表に入るかな ★学生表 学生ID(主キー)|学生氏名|学部|学部棟 ★図書表(第3正規形) 図書番号(主キー)|出版社|本のタイトル 以上の3表に分かれると思います また、学生表の学部棟を見ると学生IDから学部が決まり、学部から学部棟が決まる(推移的に決まる)ので ★学生表(第3正規形) 学生ID(主キー)|学生氏名|学部 と ★学部表(第3正規形) 学部(主キー)|学部棟 だと思います

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

正規化を考えることも大切ですが テーブル設計はそれだけでは出来ませんよ アップされたテーブルでは本の貸借を記録しきれないと思います 現在の貸し出しをどのように管理しているか 帳簿はどうなっているかを調べられたほうがいいみたいですね 学生に本を貸すのなら 学生で1テーブル、本で1テーブル、貸し出しで1テーブル 最低でも3つテーブルが要ります また、貸し出しでは何時、誰に、何を貸し出し、何時返却されたか という情報が必須では

関連するQ&A