リレーショナルデータベースにおける第一正規化の定義について。色々な言葉でその定義が表せられるわけですが…そこで「繰り返し項目」とか「繰り返し属性」という言葉で説明されることがあるのですが、単純にこれよく分からなくね?(愚痴)
※なお、属性と項目の定義は同じで、”列”を意味しています。
第一正規化とは何ですか?
第一正規化とは何ですか?
回答としては…
「1つの項目に1つの値しかないこと」を意味します。
Excelを使っている人には「1つのセルに1つの値」と言ってもいいかもしれません。
…この説明でいいと思うのですが色んな書籍や情報源にあたっていたら「繰り返し属性」がないことと書いてありました。おそらく「1つの項目に1つの値しかないこと」と同義だと思いますが、これってレコードの重複がないということではないようですね。なぜなら、第一正規化において重複するレコードは許容されるからです。
「繰り返し属性」や「繰り返し項目」とは以下の部分のこと
例えば、以下のようなスプレッドシートの表があったとしたら…
ID | 姓 | 名 |
---|---|---|
1 | 山田 | 太郎 |
2 | 山田 旧姓:小川 |
花子 |
これは第一正規化になっていません。
なぜなら、たとえば「山田花子さんの旧姓が小川だった」と記載されている場合、「姓」という属性に対して値が2つ(山田と小川)存在していることになります。これは1つの項目に複数の値が入っている状態であり、いわゆる「繰り返し属性」が存在することになります。
※このような状態は、「繰り返し属性」「繰り返し項目」「繰り返し部分」など、いろいろな呼び方がありますが、要は“1つの列(項目)に複数の値が入っている状態”のことだと理解できればOKです。
正直、この概念は最初は少ししんどいです。私自身も「え?」「えっ!?」となって、すぐにはピンときませんでした(笑)。
ちなみに、第二正規化は「重複している項目がない」ことが条件のひとつですが、ここでは「関数従属」や「部分関数従属」といった用語が出てきます。これもなかなかしんどい(苦笑)ですが、それについては別の記事で解説したいと思います。
コメント