第一正規形にはなぜ2種類あるのか
ようは、繰り返しグループ(非単純定義域)さえなくなればよいのです。

データベース技術 新版(専門分野シリーズ)」(ITEC)の p.53 には、
関係Rがその属性に繰り返しグループ(非単純定義域)を一つも含まないものを第1正規形という。

とあります。
リレーショナルデータベースであつかうことができるデータは、
最低でも第一正規形をみたしていないとなりません。

関係モデルには、データ構造、データインテグリティ(整合性)、データ操作の三つの要素があります。
データ構造は、
  定義域、
  任意の次数の関係(任意の数の属性からなる関係)、
  属性、
  組(タプル:行のこと)、
  候補キー、
  主キー
からなります。
データベース技術 新版(専門分野シリーズ)」(ITEC)によると、

・表形式では、列や行がある順番をもって並んでいるという概念はない。順番には意味がない。
・関係は、集合の要素の一般的性質を引き継いでいるため、同じ行(組)が複数個存在することがない。また、繰り返し項目を含む表は扱えない。

とあります。リレーショナルデータベースでは、レコードの格納順は保証されません。リレーショナルデータベースはデータの集合体に過ぎません。データの格納順序を考えること自体が無意味なのです。さて最後の「繰り返し項目を含む表は扱えない」に注目してください。
データベースシステム概論」C.J.DATE著、丸善刊によると、リレーショナルデータベースは、
すべての表のすべての列―行の場所には、
常に1つのデータの値のみ存在し、
決していくつかの値の集合であってはならない。

ということです。そして、
すべての基礎をなす定義域がスカラ値のみを含むとき、
そのときに限り、この関係を1NFという。

スカラというのは「分割不可能」ということです。
すなわち、リレーショナルデータベースにおいては、
すべてのデータは、分割不可能(scalar)でなければならないのです。

リレーショナルデータベースの原則は、
1行(1組)が1件のデータ(レコード)です。
さきほど
表形式では、列や行がある順番をもって並んでいるという概念はない
とありました。
たとえ行が入れ替わったり、列が入れ替わったりしても、
内容が変わることはありえない、
というのがリレーショナルデータベースの構造です。
つまり各行(組)が1つ1つ独立して扱える、というのが大事なのです。

なので、ひとつの項目のなかに、
複数のデータが格納されているのは扱えないわけです。
すべての表のすべての列―行の場所には、
常に1つのデータの値のみ存在し、
決していくつかの値の集合であってはならない。

データはそれ以上分割できない(スカラ)という単位とし、
けっして集合としてはならないのです。

第一正規化にあたって、方法は2つあります。

  1.フラットなテーブルにする方法
  2.繰り返しグループを分解する方法

です。
本来ならば、フラットなテーブルの形が最初にあるべきであろうとおもいます。
エクセルなどでも、
最初からそういったフラットなテーブルで入力している、
ということはあります。

しかし、もし仮に繰り返し項目のあるテーブルがあったとしたら、
あなたならどうしますか?

一組を一件とし、繰り返しグループ以外に値を入れてフラットなテーブルを作成する、
という作業は、
入力ミスによる不整合などの間違いをしでかすかもしれません。
これはリレーショナルデータベースの目指しているのとは正反対のことです。
フラットなテーブルにする、というのは、
重複更新・重複登録の危険性をわざわざ増やしているようなものです。

ようは、繰り返し項目(非単純定義域)がなくなればよいのですから、
そのまま分解してしまう、
という方法が生まれるのもわかるというものです。
[PR]
by nwdb | 2004-11-01 21:01 | データベース
<< PostgreSQL の ve... 繰り返しグループ(非単純定義域) >>


リンク
■SQL攻略 実行すれば理解できる

■ITBooks ネットワーク技術の解説とNetwork関連書籍の紹介


受験歴
初級シスアド
→2004年春合格
テクニカルエンジニア(ネットワーク)
→2004年秋受験


アクセス解析

以前の記事
フォロー中のブログ
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧