2003年 5月16日 CODD'S NOTATION FOR NORMALIZING DATA BACK >> 目次



● Codd's notation for normalizing data

□ Codd's notation for normalizing data, in which the normalization process are described briefly in 3 steps--the first normalization, the second and the third:

 (1) In the first normalization, the following two tasks can be completed,

   - The primary key shall be identified in a file (table).
   - Repeating groups shall be removed into a separate table,
    i.e. removing all nonsimple domains, converting the data into the form of flat file.

 (2) In the second normalization, the following task, "functional dependence" verification, can be compeleted,

 In "aRb" of a relation, the attribute "b" is funcitonally dependent on the attribute "a" if and when each value in "a" has no more than one value in "b."

Example-1;
 If a tuple (record) is given as{customer-NO, order-NO, customer-name, order-date}, on the assumption that the primary key is compounded of "customer-NO" and "order-NO" because "order-NO" is sequentially numbered and it's not uniquely identified among customers, then{customer-NO, order-NO, order-date}{customer-NO, customer-name}.

 
□ The "customer-name" is functionally dependent on "customer-NO", not on the coumpound-key of "customer-NO and order-NO".

 (3) In the third normalization, the following two tasks, "transitive dependence" verification and "derivation" elimination, can be completed,

 In "transitive dependence" verification, take it that "a", "b" and "c" are 3 attributes of relation R, and if "c" is functionally dependent on "b" and "b" is on "a", then "c" is on "a", and if the converses are NOT true, i.e. if "a" is not funcitonally dependent on "b" or "b" is not on "c", then "c" is said to be "transitively dependent" on "a."

 If (a ⇒ b ∧ b ⇒ c) is observed in{a, b, c}on the assumption that "a" is the primary key, then (c ⇒ a) can be, "c" is transitively dependent on "a".

 The transitive dependence shall be removed by splitting the relation into two:
  {a, b},{b, c}.

Example-2;
 If a tuple (record) is given as{order-NO, supplier-NO, item-NO, quantity, price}, on the assumption that an "order-NO" is the primary-key and it has a "one-to-one" relationship to "supplier-NO" and "item-NO" respectively, then{order-NO, supplier-NO, item-NO, quantity}{item-NO, price}.

 
□ The price is functionally dependent on "item-NO", and "item-NO" is functionally dependent on "order-NO." The "price" is, therefore, transitively dependent on "order-NO."

  - All the deprivations shall be removed from a file (table),

Example-3;
 Take four tables as below,
 {order-NO, supplier-NO, order-DATE, $total}
 {order-NO, item-NO, quantity}
 {item-NO, item-name, price}
 {supplier-NO, supplier-name}

 
 The "$total" is an attribute derived through the calculation of multiplying "price" by "quantity", then it shall not be treated as independent data in a tuple (table). The "$total" shall be eliminated because it can be derived from "price" and "quantity."
 {order-NO, supplier-NO, order-DATE}

 

  << もどる HOME すすむ >>
  T字形ER手法の英訳