1

データベースについて勉強していて、この質問に遭遇しました。たとえば、Invoice_Id(pk)、Product_Id(pk)、Date_Of_Supply、Quantity、および Value_Of_Product を含むテーブル product_supply があるとします。

   | Invoice_ID | Product_ID | Date_Of_Supply | Quantity | Value_Of_Product |
   -------------------------------------------------------------------------
   | AA111111111|      5001  | 08-07-2013     |     50   |       200$       |
   | AA111111111|      5002  | 08-07-2013     |     20   |       300$       |
   | BB222222222|      5003  | 10-09-2013     |     70   |        50$       |
   | CC333333333|      5004  | 15-10-2013     |     100  |        40$       |
   | CC333333333|      5005  | 15-10-2013     |     70   |        25$       |
   | CC333333333|      5006  | 15-10-2013     |     100  |        30$       |

ご覧のとおり、テーブルはすでに 1NF 形式になっています。私の質問は次のとおりです。正規化に関しては、このテーブルを 2NF 形式に正規化し、たとえば supply_date と Invoice_ID(pk) および Date_Of_Supply を含む別のテーブルを作成するのが賢明かどうか、または上のテーブルは大丈夫ですか?

    | Invoice_ID | Date_Of_Supply |
    -------------------------------
    |AA111111111 |   08-07-2013   |
    |BB222222222 |   10-09-2013   |
    |CC333333333 |   15-10-2013   |
4

2 に答える 2

0

Changing the table to second normal form involves removing redundancies in the first normal form table. The first question is to determine whether there are even any redundancies.

If a redundancy exists, then we should be able to create a second table which does NOT involve the primary key (Invoice_ID) of the first one. Based on the non PK columns in the first table (namely Product_ID, Date_Of_Supply, Quantity, and Value_Of_Product), it is not clear that any of these are dependent on each other.

As a general rule of thumb, if you have a table where all non PK columns are dependent solely on the PK column of that table, it is already in 2NF.

于 2013-06-12T03:33:29.953 に答える