Hitachi

ノンストップデータベース HiRDB Version 9 システム導入・設計ガイド(Windows(R)用)


12.16.1 繰返し列を含む表の効果と指定方法

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

図12‒25 繰返し列を定義しない表の例

[図データ]

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

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

図12‒26 繰返し列を含む表の例

[図データ]

〔説明〕

「資格」,「家族」,「続柄」,「扶養」が繰返し列になります。

〈この項の構成〉

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

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

(2) 指定方法

繰返し列を指定するには,定義系SQLのCREATE TABLEの列定義にARRAYオプションを指定します。

繰返し列を含む表の定義例を次に示します。この定義例は図「繰返し列を含む表の例」に示した社員表の場合です。なお,社員表には,「続柄」,「扶養」に複数列インデクスが定義されているものとします。

(例)
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) 注意