スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(UNIX(R)用)

[目次][索引][前へ][次へ]

13.16 繰返し列を含む表

HiRDBでは,複数の要素から構成される列(繰返し列)を含む表を定義できます。要素とは,繰返し列中で繰り返されている各項目のことをいいます。従来は,このような表を定義する場合,次の図のように作成する必要がありました。繰返し列を定義しない表の例を次の図に示します。

図13-24 繰返し列を定義しない表の例

[図データ]

この二つの表をアクセスする場合,結合する必要があります。結合することで,SQLの構文が複雑になるなどのデメリットが発生します。そこで,繰返し列を含む表を作成することで,一つの表として作成できるため,結合が不要になります。

繰返し列を含む表の例を次の図に示します。

図13-25 繰返し列を含む表の例

[図データ]

〔説明〕
「資格」,「家族」,「続柄」,「扶養」が繰返し列になります。
<この節の構成>
(1) 繰返し列を含む表を定義したときの効果
(2) 指定方法
(3) 注意

(1) 繰返し列を含む表を定義したときの効果

多値多重性のある表を行ごとにまとめた形で表現できます。このため,次に示す効果が期待できます。

(2) 指定方法

繰返し列を指定するには,定義系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 社員表 (続柄,扶養);

注 扶養IDXは,社員表に付けたインデクス名です。

(3) 注意