1.2. リレーショナルデータモデルの形式

リレーショナルモデルの基礎をなしている数学的な概念は、ドメインのリ ストの直積のサブセットである集合理論的なリレーション です。リレーショナルモデル(エンティティ-リ レーションモデルでのリレーションと混同しないでください) という名前は、この集合理論のリレーションという言葉からきています。 形式的には、ドメインは単に一組の値です。例えば、整数の集合はドメイ ンです。長さ20 の文字列と、実数の集合もまたドメインの例と言えます。

D1, D2, ... Dk, というドメインの直積D1 × D2 × ... × Dk というように記述されます。これは v1, v2, ... vk, が v1D1, v2D2, ... vkDk であるような k 個のタプル全ての集合です。

たとえば k=2 で D1={0,1}D2={a,b,c} ならば D1 × D2{(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)} となります。

リレーションは、一つ以上のドメインの直積の任意の部分集合です。 すなわち、 RD1 × D2 × ... × Dk

例えば {(0,a),(0,b),(1,a)} はリレーションです。 これは実際に、上で挙げた D1 × D2 の部分集合になっています。

リレーションの要素はタプルと呼ばれます。ある直積 D1 × D2 × ... × Dk のリレーションは要素数がk個であると言い、 k-タプルの集合になっています。

リレーションは(これまでに見たように)テーブルとしてみなす事ができま す。SUPPLIER と PART データベースを思い出し てください。各タプルは行によって表現され、各列はタプルの中の一つの 要素に対応していました。列に名前(属性と呼ばれます)をつけることは リレーションスキームの定義に通じています。

リレーションスキーム Rは、 A1, A2, ... Ak という属性の有限集合です。 各属性Aiの1 <= i <= kに対して、ドメイン Diが存在して、各属性 の値は対応するドメインの要素になります。リレーションスキームは R(A1, A2, ... Ak) のよう に記述されます。

Note: リレーションスキームはテンプレートの一種 に過ぎないのですが、リレーションリレーションスキーム のインスタンスです。 リレーションはタプルの集まりからなります。(そして、テーブルとし ても見えます。)リレーションスキームとは区別してください。

1.2.1. ドメイン 対 データ型

前節でドメインについて言及しました。正式に はドメインとはまさに値の集合(例えば、整数や実数の集合)であるとい うことを思い出して下さい。データベースシステムの世界では、ドメイ ンの代わりにデータ型という言葉もよく使われ ます。テーブルを作成するときに、どのような属性を含むかを決定し なければいけません。更に、属性値をどのようなデータ型で格納するか も決定しなければいけません。例えば、 SUPPLIERテーブルの SNAMEは文字列型ですし、 SNOは数値型で格納するでしょう。データの型 を各属性に割り当てることによってこれを定義しています。 SNAMEの型はVARCHAR(20)(これは 長さが20以下の文字列を扱うためのSQLの型)です。 SNOの型はINTEGERでしょう。デー タ型の割り当てで、属性のためにドメインを選択しています。 SNAMEのドメインは長さが20以下の文字列すべ ての集合で、SNOのドメインは整数値すべての 集合となります。