北川 博之著「データベースシステム(オーム社)」を参考に,データベースシステムの知識をまとめます。
リレーショナルデータモデルの定義
データモデルの一種であるリレーショナルデータモデルでは,リレーションと呼ばれる表でデータを管理し,リレーション名は$R$と記述されます。リレーションは$n$個の属性$A_{1},\ldots,A_{n}$を持ち,リレーション名と属性は併せてリレーションスキーマと呼ばれ,$R(A_{1},\ldots,A_{n})$と書きます。
各属性$A_{i}$の取り得る値全体の集合をドメイン$D_{i}$と呼びます。$R(A_{1},\ldots,A_{n})$が与えられたとき,ドメインの直積集合の部分集合$r$は,リレーション,もしくはインスタンスと定義されます。
\begin{align}
r\subseteq D_{1}\times\ldots\times D_{n}\label{def_r}
\end{align}
r\subseteq D_{1}\times\ldots\times D_{n}\label{def_r}
\end{align}
集合の定義より,$r$は重複した要素を有してはなりません。一方,実際のDBの中身では重複した要素が許容されますので,厳密な定義と運用上のルールは異なるということに注意が必要です。
$r$は$n$次元タプルの集合から構成され,表を成しています。冒頭で$R$という名前のリレーションが表であることを述べましたが,式($\ref{def_r}$)はそれを裏付けています。つまり,タプルは表のある行を表しているということです。なお,リレーションスキーマ$R(A_{1},\ldots,A_{n})$をもつリレーション$r$のことを,単にリレーション$R$と呼ぶことが多いです。
補足
リレーションの各要素を$r=\{t_{1},\ldots,t_{n}\}$とおくとき,$t_{i}$は
\begin{align}
t_{i}:~\{A_{1},\ldots,A_{n}\}~\rarr~D_{1}\cup\ldots\cup D_{n}
\end{align}
t_{i}:~\{A_{1},\ldots,A_{n}\}~\rarr~D_{1}\cup\ldots\cup D_{n}
\end{align}
を満たし,かつ$t_{i}(A_{k})\in D_{k}$を満たす写像として定義することもできます。
コメント