1.17 マテリアライズド結合ビューのRDFサポート
RDF問合せで最も頻繁に使用される結合は、主語と主語、および主語と目的語の間の結合です。RDF問合せのパフォーマンスを向上させるため、これら2つの列に対してマテリアライズド結合ビューを作成できます。
マテリアライズド結合ビューは、単一のRDFグラフに作成するか、'ALLOW_DUP=T'
オプションを使用してRDFグラフ・コレクションを作成してから、そのRDFグラフ・コレクションにマテリアライズド結合ビューを作成することによって、複数のグラフに作成できます。マテリアライズド・ビューはすべて、ネットワーク所有者が所有しています。(マテリアライズド結合ビューを作成するには、SEM_APIS.CREATE_MATERIALIZED_VIEWプロシージャを使用します。)
マテリアライズド・ビューはデフォルトで圧縮され、IMDBオプションがインストールされている場合はインメモリーを有効にできます。たとえばT0とT1などの2つの表の間で2つのマテリアライズド・ビューが主語と主語(SS結合)、および主語と目的語(SO結合)で作成され、G、S、P、Oすべての値が決定論的関数でIDによってフェッチされます。値は必要に応じて仮想列として定義できます。つまり、T0とT1の両方のG、S、P、O IDのみが実際の列で、残りは仮想列です。仮想列はインメモリー仮想列を有効にして使用することをお薦めします。これにより、IMDBオプションがインストールされている場合に値がメモリー内で実体化されます。
ビットマップ索引は、マテリアライズド・ビューの1つの列に作成できます。マテリアライズド・ビューの列の名前は、結合の各表で次のようになります。
- グラフID: G
- 主語ID: S
- 述語ID: P
- 目的語ID: O
- グラフ名: GV
- 主語名: SV
- 述語名: PV
- 目的語名: OV
- 値のタイプ: $RDFVTYP
- リテラル・タイプ: $RDFLTYP
- 言語タイプ: $RDFLANG
- order_type: $RDFORDT
- order_num: $RDFORDN
- order_date: $RDFORDD
たとえば、MVXという名前のマテリアライズド・ビューを作成すると、次の結合ビューが作成されます。
SS-join (MVX$SS) and SO-join (MVX$SO) MVX$SS(T0G, T0S, T0P, T0O, T1G, T1S, T1P, T1O, T0GV, T0G$RDFVTYP, T0G$RDFLTYP, T0G$RDFLANG, T0G$RDFORDT, T0G$RDFORDN, T0G$RDFORDD T0SV, T0S$RDFVTYP, T0S$RDFLTYP, T0S$RDFLANG, T0S$RDFORDT, T0S$RDFORDN, T0S$RDFORDD T0PV, T0P$RDFVTYP, T0P$RDFLTYP, T0P$RDFLANG, T0P$RDFORDT, T0P$RDFORDN, T0P$RDFORDD T0OV, T0O$RDFVTYP, T0O$RDFLTYP, T0O$RDFLANG, T0O$RDFORDT, T0O$RDFORDN, T0O$RDFORDD T1GV, T1G$RDFVTYP, T1G$RDFLTYP, T1G$RDFLANG, T1G$RDFORDT, T1G$RDFORDN, T1G$RDFORDD T1SV, T1S$RDFVTYP, T1S$RDFLTYP, T1S$RDFLANG, T1S$RDFORDT, T1S$RDFORDN, T1S$RDFORDD T1PV, T1P$RDFVTYP, T1P$RDFLTYP, T1P$RDFLANG, T1P$RDFORDT, T1P$RDFORDN, T1P$RDFORDD T1OV, T1O$RDFVTYP, T1O$RDFLTYP, T1O$RDFLANG, T1O$RDFORDT, T1O$RDFORDN, T1O$RDFORDD)
MVX$SOの結合ビューと同じ列名も指定されます。
ビットマップ索引がSS結合ビューで作成されると、その索引には<MView name><index column name>_I0$という名前が付けられます。同様に、SO結合ビューの索引には<MView name><index column name>_I1$という名前が付けられます。たとえば、マテリアライズド・ビューMVX内の列T0Pに索引を作成すると、索引名はSS結合ビューの場合はMVXT0P_I0$、SO結合ビューの場合はMVXT0P_I1$となります。
親トピック: RDFグラフの概要