データベースの理論的な部分を
を基に学んでいく。
前回
今日のまとめ
- 「テーブルの各セルに1つのデータが入力された」テーブルを第1正規形と呼ぶ。
- 関係スキーマが与えられたとする。その任意のインスタンスについて、属性列の部分列が性質を満たすとき、をこの関係スキーマにおける超キーであるという。 また関係スキーマの超キーはのインスタンスとなる任意のテーブルの超キーともいう。
- 関係スキーマが与えられたとき、属性列の部分列が性質 (1) は超キーである (2)のどの真部分列も超キーとならないを満たすとき、を候補キーという。関係スキーマの属性のうち、候補キーに属するものをキー属性、属さないものを非キー属性という。
- データベース管理上の理由で都合の良いように選ばれた1つの候補キーを主キーという。
2. 関係データベースの基本
関係データベースの基本として、まずはデータの関係モデルを考える。
が提案したデータの関係モデル( )は数学の集合論における「関係」*1の理論をデータベースに応用したものである。
この議論をするために、まずは直積集合を導入する。
2.2 リレーションのテーブルによる表示
データのリレーションはテーブルの形でユーザに表示させる。テーブルの横の並びを行といい、縦の並びは列という。各データが入力される枠をセルないしフィールドと呼ぶ。
2.2.3 インスタンス
1つの関係スキーマに対して、それと組み合わせてテーブルとなることができるリレーションは複数ある。データは常に更新され得ることため、リレーションは流動的なものである。
一般に関係スキーマに対して直積集合の有限部分集合はすべてデータのリレーションとして可能な候補であり、関係スキーマのインスタンスという。関係スキーマはその1つのインスタンスと組み合わせて1つのテーブルを構成する。ただし直積集合の部分集合であっても現実の制約からリレーションとして採用できない部分集合があり得る。
2.2.4 タプルからの成分の切り出し
属性をとし、項リレーションのタプルをとする。このとき各属性に対して
でタプルの-成分と呼ぶ。すなわちはタプルからその番目の属性に関するデータを切り出した結果である。
この定義は属性の列に拡張できる。関係スキーマの属性から個()の属性()をこの順番で選んで並べた列をの部分列という。タプルとの部分列に対して
と定義し、タプルの-成分と呼ぶ。全ての属性についてデータを切り出すと、である。
以下のようにテーブルおよびタプルを定義するとき、
学生名 研究室名 学科名 太郎 知識情報学 知識科学 次郎 データ解析学 データ科学 三郎 データ解析学 データ科学 まず
である。また属性の列に対して、
である。また全属性に対して、
である。
2.2.5 第1正規形
これまで用いてきたテーブルは第1正規形と呼ばれる。第1正規形と呼ばれる条件は「テーブルの各セルに1つのデータが入力されること」である。
1セル1データの条件はデータ処理を単純にするためにがテーブルに課した最低の条件である。第1正規形の条件を満たさないテーブルを非正規形という。
関係データベースは一般に複数のテーブルから構成され、それぞれ少なくとも第1正規形でなければならない。
非正規形のテーブルを第1正規形にする手続きを第1正規化という。タプルの1つのセルに個のデータが入力されていれば、そのタプルは個のタプルにする。更にデータが重複するセルがあるならば、なくなるまで同じ作業を繰り返す。
2.2.6 超キーと候補キー、主キー
データ処理ではテーブルの各行を一意に特定してアクセスする必要がある。テーブルを表示したときのタプル位置は任意であるから、データベースシステムが便宜上、行番号を表示したとしても、それはタプル固有の番号ではなく、データ処理には使えない。そこで各タプルを一意に特定するための仕掛けが必要である。簡単なのは各タプルに属性の1つとして固有の番号を持たせればよい。
タプルを一意に特定できる属性を超キーと呼ぶ。
数学的に一意性を定義する。属性がタプルを1つ特定するならば、任意のタプルに対して、
が成り立つ。これの対偶を取ることで、
を得る。これは、属性-成分が同一となるタプルが1つしか存在しないことを意味する。
超キー 関係スキーマが与えられたとする。その任意のインスタンスについて、属性列の部分列が性質
を満たすとき、をこの関係スキーマにおける超キーであるという。
また関係スキーマの超キーはのインスタンスとなる任意のテーブルの超キーともいう。
いずれの関係スキーマにも自信という超キーを必ず持つ。逆にの超キーに対して、を部分列とする属性列もの超キーである。
しかし自体は超キーとしてたいてい、冗長である。そこで新たに候補キーという概念を定義する。
候補キー 関係スキーマが与えられたとき、属性列の部分列が性質
- は超キーである
- のどの真部分列も超キーとならない
を満たすとき、を候補キーという。関係スキーマの属性のうち、候補キーに属するものをキー属性、属さないものを非キー属性という。
1つの関係スキーマに候補キーが複数存在する場合、データベース管理上の理由で都合の良いキーを1つ選ぶ。それを主キーという。関係スキーマやテーブルでは主キーに下線を引く約束である。
*1:データベースの分野では「リレーション」と呼称するのが一般的である。