Red > Green > Refactor > Red

cycle is based on desire

1NF ; Design

定義

  • シンプルなドメイン[1]上で定義されたリレーション[2]
    • シンプル
      • 他の幾つかのドメインの直積でない ... 甲
      • ドメインの冪集合ではない(属性値として集合をとらない) ... 乙

not シンプルな例

他の幾つかのドメインの直積であるリレーション Z(name)

name
(FirstName, FamilyName)
...
{Taro, Yamada}
{Hanako, Yamada}

 Z = X \times Y

 (X = \big{x | \textit{x is FirstName} })

 (Y = \big{y | \textit{y is FamilyName} })

ドメインの冪集合であるリレーション Z(favorite_food)

favorite_food
{tomato salad, fried egg, curry and rice}

-

name favorite_food
TaroYamada {tomato salad, curry and rice}
HanakoYamada {fried egg, hot dog, humburger}

第一正規化

name favorite_food
TaroYamada {tomato salad, curry and rice}
HanakoYamada {fried egg, hot dog, humburger}

name favorite_food
TaroYamada tomato salad
TaroYamada curry and rice
HanakoYamada fried egg
HanakoYamada hot dog
HanakoYamada humburger

になる


[1] 集合(もしくは定義域) - 有限集合, 無限集合いずれでもよい

[2] ドメインを直積したときの任意の有限部分集合


参考元 # 参考させていただきました

定義域(データベース)

冪集合