5.1.1 プロパティ・グラフ表(詳細情報)

プロパティ・グラフがデータベースに確立された後、いくつかの表がユーザーのスキーマに自動的に作成され、接頭辞としてグラフ名が、接尾辞としてVT$またはGE$が付きます。たとえば、myGraphという名前のグラフの場合、表myGraphVT$が作成されて頂点およびそのプロパティ(K/Vペア)が格納され、表myGraphGE$が作成されてエッジおよびそのプロパティが格納されます。

追加の内部表がIT$およびGT$の接尾辞で作成され、テキスト索引メタデータおよびグラフ・スケルトン(トポロジ構造)が格納されます。

表myGraphVT$およびmyGraphGE$の定義は次のとおりです。これらはSQLベースの分析およびSQLべースのプロパティ・グラフの問合せに重要です。VT$およびGE$表の両方で、VTS、VTEおよびFEは予約済の列で、列SLはセキュリティ・ラベル用、列K、T、V、VNおよびVTはグラフ要素のプロパティ(K/Vペア)に関する情報をまとめて格納します。VT$表で、VIDは頂点IDを格納するための長整数です。GE$表で、EID、SVIDおよびDVIDは、エッジID、出力(from)頂点IDおよび入力(to)頂点IDを格納するための長整数列です。

SQL> describe myGraphVT$
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 VID                       NOT NULL NUMBER
 K                                  NVARCHAR2(3100)
 T                                  NUMBER(38)
 V                                  NVARCHAR2(15000)
 VN                                 NUMBER
 VT                                 TIMESTAMP(6) WITH TIME ZONE
 SL                                 NUMBER
 VTS                                DATE
 VTE                                DATE
 FE                                 NVARCHAR2(4000)


SQL> describe myGraphGE$
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 EID                        NOT NULL NUMBER
 SVID                       NOT NULL NUMBER
 DVID                       NOT NULL NUMBER
 EL                                  NVARCHAR2(3100)
 K                                   NVARCHAR2(3100)
 T                                   NUMBER(38)
 V                                   NVARCHAR2(15000)
 VN                                  NUMBER
 VT                                  TIMESTAMP(6) WITH TIME ZONE
 SL                                  NUMBER
 VTS                                 DATE
 VTE                                 DATE
 FE                                  NVARCHAR2(4000)

簡単にするために、1つのグラフ名だけを許可し、大文字と小文字は区別されません。

VT$表とGE$表の両方で、列K、T、V、VN、VTはグラフ要素のプロパティ(K/Vペア)に関するすべての情報をまとめて格納し、SLはセキュリティラベルに使用され、VTS、VTEおよびFEは予約列になります。

プロパティ・グラフのスキーマ設計で、プロパティ値は数値データ型(long、int、double、float)の場合、VN列に格納され、タイムスタンプの場合、VT列に格納され、文字列、booleanおよびその他のシリアライズ可能データ型の場合、V列に格納されます。よりよいOracleテキスト問合せサポートのために、プロパティ値のリテラル表現は、データ型が数値またはタイムスタンプであっても、V列に格納されます。すべてのサポートされるデータ型を区別するために、整数IDはT列に格納されます。

VT$およびGE$表の両方のK列にはプロパティ・キーが格納されます。各エッジにはString型のラベルが必要で、そのラベルはGE$表のEL列に格納されます。

VT$表とGE$表のT列は、その列が示すプロパティの値のデータ型を表す数値です。たとえば、1は値が文字列、2は値が整数、などを意味します。T列に指定できる値および関連するデータ型の一部は次のとおりです。

  • 1: STRING

  • 2: INTEGER

  • 3: FLOAT

  • 4: DOUBLE

  • 5: DATE

  • 6: BOOLEAN

  • 7: LONG

  • 8: SHORT

  • 9: BYTE

  • 10: CHAR

  • 20: 空間データ

頂点を格納するためのVT$表スキーマには、次の列があります。

  • VID: 頂点のIDを示す長い列。

  • VL: 頂点のラベルを表す文字列列。

  • K: プロパティの名前を示す文字列の列。頂点に関連付けられているプロパティがない場合、この列の値は空白にする必要があります。

  • T: プロパティのタイプを示す長い列。

  • V: プロパティの値を文字列として示す文字列の列。プロパティ・タイプが数値である場合、値の文字列書式バージョンがこの列に格納されます。同様に、プロパティがタイムスタンプ・ベースである場合、値の文字列書式バージョンが格納されます。

  • VN: 数値プロパティの値を示す数値列。この列には、プロパティ・タイプが数値である場合のみ、プロパティ値が格納されます。

  • VT: 日時プロパティの値を格納するタイムゾーン列のあるタイムスタンプ。この列には、プロパティ・タイプがタイムスタンプ・ベースである場合のみ、プロパティ値が格納されます。

  • SL: Oracle Label Securityを使用してセキュリティ・ラベル・セット用に予約された数値列(セキュリティ・ラベルの使用の詳細は、プロパティ・グラフ・データのアクセス制御(グラフレベルおよびOLS)を参照)。

  • VTS: 今後の拡張用として予約されているタイムゾーン列のタイムスタンプ。

  • VTE: 今後の拡張用として予約されているタイムゾーン列のタイムスタンプ。

  • FE: 今後の拡張用として予約されている文字列列。

次の例では、CONNECTIONSVT$という名前の表に行を挿入します。これには、(様々なデータ型を表す) 1から10のT列値が含まれます。

INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '1-STRING', 1, 'Some String', NULL, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '2-INTEGER', 2, NULL, 21, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '3-FLOAT', 3, NULL, 21.5, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '4-DOUBLE', 4, NULL, 21.5, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '5-DATE', 5, NULL, NULL, timestamp'2018-07-20 15:32:53.991000'); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '6-BOOLEAN', 6, 'Y', NULL, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '7-LONG', 7, NULL, 42, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '8-SHORT', 8, NULL, 10, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '9-BYTE', 9, NULL, 10, NULL); 
INSERT INTO connectionsvt$(vid,k,t,v,vn,vt) VALUES (2001, '10-CHAR', 10, 'A', NULL, NULL); 
...
UPDATE connectionsVT$ SET V = coalesce(v,to_nchar(vn),to_nchar(vt)) WHERE vid=2001; 
COMMIT;

エッジを格納するためのGE$表スキーマには、次の列があります。

  • EID: エッジのIDを示す長い列。

  • SVID: 出力(元の)頂点のIDを示す長い列。

  • DVID: 入力(宛先)頂点のIDを示す長い列。

  • EL: エッジのラベルを表す文字列列。

  • K: プロパティの名前を示す文字列の列。頂点に関連付けられているプロパティがない場合、この列の値は空白にする必要があります。

  • T: プロパティのタイプを示す長い列。

  • V: プロパティの値を文字列として示す文字列の列。プロパティ・タイプが数値である場合、値の文字列書式バージョンがこの列に格納されます。同様に、プロパティがタイムスタンプ・ベースである場合、値の文字列書式バージョンが格納されます。

  • VN: 数値プロパティの値を示す数値列。この列には、プロパティ・タイプが数値である場合のみ、プロパティ値が格納されます。

  • VT: 日時プロパティの値を格納するタイムゾーン列のあるタイムスタンプ。この列には、プロパティ・タイプがタイムスタンプ・ベースである場合のみ、プロパティ値が格納されます。

  • SL: Oracle Label Securityを使用してセキュリティ・ラベル・セット用に予約された数値列(セキュリティ・ラベルの使用の詳細は、プロパティ・グラフ・データのアクセス制御(グラフレベルおよびOLS)を参照)。

  • VTS: 今後の拡張用として予約されているタイムゾーン列のタイムスタンプ。

  • VTE: 今後の拡張用として予約されているタイムゾーン列のタイムスタンプ。

  • FE: 今後の拡張用として予約されている文字列列。

VT$およびGE$表に加えて、Oracle Spatial and Graphはその他の内部表も保持します。

GT$接尾辞を使用して定義された内部グラフ・スケルトン表は、グラフのトポロジ構造を格納するために使用され、次の列を含んでいます。

  • EID: エッジのIDを示す長い列。

  • EL: エッジのラベルを表す文字列列。

  • SVID: 出力(元の)頂点のIDを示す長い列。

  • DVID: 入力(宛先)頂点のIDを示す長い列。

  • ELH: エッジ・ラベルのハッシュ値を指定する未加工の列。

  • ELS: 合計文字数を基準にしてエッジ・ラベル・サイズを指定する整数列。

IT$接尾辞を使用して作成された内部テキスト索引メタデータ表は、Oracle Text検索エンジンを使用して作成されたテキスト索引に関するメタデータ情報の格納に使用されます。作成されたテキスト索引に基づいて自動的に入力されます。IT$表には、テキスト索引に関する一般情報を示す次の列があります。

  • EIN: テキスト索引の名前を示す文字列列。

  • ET: テキスト索引の構築に使用されたエンティティを示す数値列(頂点(1)またはエッジ(2)テキスト索引である場合)。

  • IT: テキスト索引のタイプを示す数値列(自動(1)または手動(2)テキスト索引である場合)。

  • SE: エンティティ・プロパティの索引付けに使用される検索エンジンを示す数値列(2はOracle Textを示します)。

  • K: テキスト索引付けに使用されるプロパティ名を示す文字列列。

Oracle Textベースの索引では、次の列を使用してテキスト索引の構成を記述します(Oracle Textベースの索引の作成の詳細は、Oracle Textを使用したテキスト索引の構成を参照してください)。

  • PO: テキスト索引構成設定の優先所有者を示す列。デフォルトでは、パッケージ所有者はMDSYSに設定されます。

  • DS: テキスト索引の構築に使用されるデータ・ストアを指定する文字列列。

  • FIL: テキスト索引の構築に使用されるフィルタを指定する文字列列。

  • STR: テキスト索引の構築に使用されるストレージ・プロパティを指定する文字列列。

  • WL: テキスト索引の作成時に使用されるワード・リストを指定する文字列列。

  • SL: テキスト索引の構築に使用されるストップ・リストを指定する文字列列。

  • LXR: テキストの索引付け中にOracle Textが使用するレクサーを指定する文字列列。

  • OPTS: 追加の構成オプションを指定する文字列列。

Oracleの内部専用として、SS$接尾辞を使用して定義された内部表が作成されます。