目次へ

解答例 - 実習課題1 - 16.3 正規化

実習課題1

四次元図書館 (仮名) では、会員が図書を借りるときには、必ず次のような図書貸出カードを発行している。

図書貸出カード
会員番号: 貸出日:
会員名: 返却予定日:

書籍番号 書籍名 著者
     
     
     
     
     
四 次 元 図 書 館

この図書貸出カードをテーブルにし、正規化しなさい。第一正規形、第二正規形、第三正規形、ボイスコッド正規形を示して、正規化した流れがわかるようにすること。

解答例

貸出カード毎に一意に定まる貸出番号を割り振ることにします。


非正規形

+=========+---------+-------+-------+----------+---------+-------+------+---------+-------
| 貸出番号 | 会員番号 | 会員名 | 貸出日 | 返却予定日| 書籍番号 | 書籍名 | 著者 | 書籍番号 |  ‥‥
+=========+---------+-------+-------+----------+---------+-------+------+---------+-------



第一正規形

  重複して現れる部分(書籍番号, 書籍名, 著者)を分離して第一正規形にします。

+============+------------+------------+------------+------------+
|  貸出番号  |  会員番号  |   会員名   |   貸出日   | 返却予定日 |
+============+------------+------------+------------+------------+

+============+============+------------+------------+
|  貸出番号  |  書籍番号  |   書籍名   |    著者    |
+============+============+------------+------------+



第二正規形

  部分関数従属関係 (書籍番号) → (書籍名, 著者) を分離して第二正規形にします。

+============+------------+------------+------------+------------+
|  貸出番号  |  会員番号  |   会員名   |   貸出日   | 返却予定日 |
+============+------------+------------+------------+------------+

+============+============+
|  貸出番号  |  書籍番号  |
+============+============+

+============+------------+------------+
|  書籍番号  |   書籍名   |    著者    |
+============+------------+------------+



第三正規形

  推移的関数従属関係 (貸出番号) →(会員番号)、(会員番号) → (会員名) 
  を分離して第二正規形にします。

+============+------------+------------+------------+
|  貸出番号  |  会員番号  |   貸出日   | 返却予定日 |
+============+------------+------------+------------+

+============+------------+
|  会員番号  |   会員名   |
+============+------------+

+============+============+
|  貸出番号  |  書籍番号  |
+============+============+

+============+------------+------------+
|  書籍番号  |   書籍名   |    著者    |
+============+------------+------------+



ボイスコッド正規形

  第三正規形と同じです。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp