データの正規化

ページ名:データの正規化

1. リレーショナルデータベースの基礎

1.1 データベースとDBMS

データベースとは?

  • データを蓄積したものにすぎない。
  • あらゆる環境で利用される。ex. 航空券の予約、個人の住所録

データベースマネージメントシステム(DBMS : Database Management System)

  • データベースとそれを利用するユーザーの間に立ち、データ管理に関する様々な問題を一手に引き受ける。
  • アプリケーション開発者は、ユーザーインターフェイスとDBMSとの通信に専念できる。

1.2 データモデル

データの構造を論理的に表したもの。主なデータモデルは以下の3種類。

  • 階層型
  • ネットワーク型
  • リレーショナル(関係)型

階層型、ネットワーク型は、リレーショナル型以前に考案されたデータモデル。ポインタによってデータが関連付けられている。ポインタとは、次のレコードのアドレスを指し示す情報のこと。

ポインタを用いるデータモデルの利点

データのつながりを実現するためにはポインタを格納するだけで良い。

ルートノードからのデータの配置と検索順序が基本的に固定されているため、少しでも異なる順序でデータを検索しようとすると、非常に効率が悪くなる。また、データの物理的なアドレスを直接的に扱うため、拡張が難しく、柔軟性に欠ける。

リレーショナル型のデータモデルは、データの扱いが簡単で、拡張性と柔軟性に富む。

現在、もっとも普及しているデータモデル。

 

1.3 リレーショナルデータベースの特性

1.3.1 表

リレーショナルデータベースの基本は、全てのデータを2次元の表として表すこと。

表は、行と列から構成される。

表のことをテーブル、行のことをロー、列のことをカラムと呼ぶこともある。

表のことを関係(リレーション)、行のことを組(タプル)、列名のことを属性(アトリビュート)と呼ぶ場合もある。

さらに、列の取りうる値の範囲のことを定義域(ドメイン)と呼ぶ場合もある。

 

1.3.2 リレーションシップ

リレーションデータベースでは、表を定義することによってデータベースを構成する。

複数の表がつながって1つの表になるようにデータベースを設計する。

 

1.3.3 キー

表どうしを関連付けるには、キーとなる列を介して表と表を結びつけていく。

・主キー

表の中の行を一意に識別するために使う列のこと。

・候補キー

表によっては、キーとなりうる列が複数あることもある。キーとなりうる列のことを候補キーと呼ぶ。主キー以外の物を代替キーと呼ぶ。

・外部キー

ある表(表A)と別の表(表B)に同じ値を取りうる列がある場合、一方が主キーであって、もう一方が主キーでないときに、主キーではない方の列を指して外部キーという。

・連結キー

複数の列の組み合わせによって構成されるキーのことを連結キーという。

 

1.4 集合演算と関係演算

リレーショナルデータベースでは、データを物理的なファイルとしてではなく、抽象的な表として扱う。表を集合であると考える。

表に対する演算には、集合演算と関係演算がある。

 

1.4.1 集合演算

  • 和(union)

和は、複数の集合において、両方の集合の全ての要素を集めたもの。ただし、重複する行は除かれる。

  • 差(difference)

差は、複数の集合において、元の集合にしか存在しない要素を集めたもの。どちらの表を元にするかによって結果が異なる。

  • 積(intersection)

積は、複数の集合において、両方の集合に含まれる要素を集めたもの。

  • 直積(cartesian product)

直積は、複数の集合において、両方の集合の全ての要素の全ての組み合わせ。

 

1.4.2 関係演算

  • 選択(selection)

選択は、表の中から条件に合った行を抽出する演算。

  • 射影(projection)

射影は、表の中から条件に合った列を抽出する演算。

  • 結合(join)

結合は、共通の列を介して複数の表を結び付け、新しい表を作る演算。

  • 除算(division)

除算では、まず、割られる方の表から、割る方の表の全ての列の値を対応する列にもつ行を取り出す。次に、その行から、割る方の表の列を取り除く。重複する行は除かれる。

この演算はあまり使われないと考えられているためか、現実のリレーショナルデータベースには実装されないことが多い。

 

1.5 データの正規化

データベースアプリケーション開発者にとって、ハードウェアプラットフォームとRDBMSの選択に次いで重要なことは、データベーステーブルの構造を決定すること。つまり、表の中にどのように列を並べるかを決めること。

表の構造を適切に決定するには、データの正規化を行う。正規化とは、一般に、重複するデータを取り除き、独立した固有の集合にデータを分割するプロセスのこと。

正規化されたデータのことを正規形という。正規形には、第1正規形から第5正規形までがある。通常は第3正規形までを使う。第3正規形のデータは、次のような特徴を備えている。

  1. 繰り返されるフィールドが存在しない[第1正規形の条件]
  2. 主キーの値が決まれば、各フィールドの値が自動的に決まる[第2正規形の条件]
  3. 主キー以外のフィールドの値によって、各フィールドの値が自動的に決まることはない[第3正規形の条件]
  • 非正規形
  • 第1正規形
  • 第2正規形
  • 第3正規形

 

1. リレーショナルデータベースの基礎

2. SQLの基礎

3. 演算子

4. 関数

5. SELECT文の句

6. 表の結合

7. サブクエリー

8. データの操作

9. 表の作成と保守

10. ビューとインデックス

11. トランザクション

12. セキュリティ

 

シェアボタン: このページをSNSに投稿するのに便利です。

コメント

返信元返信をやめる

※ 悪質なユーザーの書き込みは制限します。

最新を表示する

NG表示方式

NGID一覧