HiRDBでは,複数の要素から構成される列(繰返し列)を含む表を定義できます。要素とは,繰返し列中で繰り返されている各項目のことをいいます。従来は,このような表を定義する場合,次の図のように作成する必要がありました。繰返し列を定義しない表の例を次の図に示します。
図13-24 繰返し列を定義しない表の例
この二つの表をアクセスする場合,結合する必要があります。結合することで,SQLの構文が複雑になるなどのデメリットが発生します。そこで,繰返し列を含む表を作成することで,一つの表として作成できるため,結合が不要になります。
繰返し列を含む表の例を次の図に示します。
図13-25 繰返し列を含む表の例
多値多重性のある表を行ごとにまとめた形で表現できます。このため,次に示す効果が期待できます。
繰返し列を指定するには,定義系SQLのCREATE TABLEの列定義にARRAYオプションを指定します。
繰返し列を含む表の定義例を次に示します。この定義例は図13-25に示した社員表の場合です。なお,社員表には,「続柄」,「扶養」に複数列インデクスが定義されているものとします。
CREATE TABLE 社員表
(氏名 NVARCHAR(10),
資格 NVARCHAR(20) ARRAY[10],
性別 NCHAR(1),
家族 NVARCHAR(5) ARRAY[10],
続柄 NVARCHAR(5) ARRAY[10],
扶養 SMALLINT ARRAY[10]);
CREATE INDEX 扶養IDX ON 社員表 (続柄,扶養);