1.1 トポロジ・データを使用するための主なステップ

このトピックでは、トポロジ・データを使用するための主なステップの概要を示します。

また、重要な概念、構造および操作を示します(詳細は他のトピックを参照してください)。

具体的な主要ステップは、2つある基本的な方法のいずれを採用するかによって異なります。どちらの方法を採用するかは、トポロジの作成に使用するデータの種類によって決定します。

トポロジ・データ・モデルのPL/SQL APIおよびJava APIを使用すると、トポロジを更新(たとえば、エッジ、ノードまたはフェイスに関するデータを変更)できます。ほとんどの編集操作用のPL/SQL APIは、SDO_TOPO_MAPパッケージ(「SDO_TOPO_MAPパッケージ・サブプログラム」を参照)です。Java APIについては、「トポロジ・データ・モデルのJavaインタフェース」を参照してください。

1.1.1 トポロジ・データから作成したトポロジの使用

トポロジ・データから作成したトポロジを使用するための主なステップは次のとおりです。

  1. SDO_TOPO.CREATE_TOPOLOGYプロシージャを使用して、トポロジを作成します。これによって、<topology-name>_EDGE$表、<topology-name>_NODE$表、<topology-name>_FACE$表および<topology-name>_HISTORY$表が作成されます。(これらの表については、それぞれ「エッジ情報表」「ノード情報表」「フェイス情報表」および「履歴情報表」を参照してください。)
  2. ステップ1で作成したノード表、エッジ表およびフェイス表にトポロジ・データをロードします。これは、通常、バルク・ロード・ユーティリティを使用して実行しますが、SQLのINSERT文を使用して実行することもできます。
  3. トポロジ内のトポロジ・ジオメトリ・レイヤーのタイプごとに1つのフィーチャ表を作成します。たとえば、都市データ・トポロジには、土地区画、通りおよび道路標識用の個別のフィーチャ表が含まれる場合があります。
  4. 各フィーチャ表に対してSDO_TOPO.ADD_TOPO_GEOMETRY_LAYERプロシージャを使用して、フィーチャ表をトポロジに関連付けます。これによって、<topology-name>_RELATION$表が作成されます。(この表については、「関係情報表」を参照してください。)
  5. SDO_TOPO.INITIALIZE_METADATAプロシージャを使用して、トポロジ・メタデータを初期化します。(このプロシージャによって、<topology-name>_EDGE$表、<topology-name>_NODE$表および<topology-name>_FACE$表に空間索引が作成され、<topology-name>_EDGE$表および<topology-name>_NODE$表にBツリー索引が追加で作成されます。)
  6. SDO_TOPO_GEOMETRYのコンストラクタを使用して、フィーチャ表をロードします。(このコンストラクタについては、「SDO_TOPO_GEOMETRYのコンストラクタ」を参照してください。)
  7. トポロジ・データを(たとえば、「トポロジ演算子」で説明するトポロジ演算子の1つを使用して)問い合せます。
  8. オプションで、PL/SQL Application Program Interface(API)またはJava APIを使用してトポロジ・データを編集します。

これらの主なステップのPL/SQLでの実行例を、「トポロジ・データから作成したトポロジ」に示します。

1.1.2 空間ジオメトリから作成したトポロジの使用

空間ジオメトリからトポロジを作成するには、最初に、Oracle Spatialで使用できるデータを準備するための一般的な操作を実行する必要があります(『Oracle Spatial開発者ガイド』を参照)。

  1. 空間表を作成します。

  2. 空間メタデータ(USER_SDO_GEOM_METADATAビュー)を更新します。

  3. データを空間表にロードします。

  4. 空間データを検証します。

  5. 空間索引を作成します。

Oracle Spatialのジオメトリから作成したトポロジを使用するための主なステップは次のとおりです。

  1. SDO_TOPO.CREATE_TOPOLOGYプロシージャを使用して、トポロジを作成します。これによって、<topology-name>_EDGE$表、<topology-name>_NODE$表、<topology-name>_FACE$表および<topology-name>_HISTORY$表が作成されます。(これらの表については、それぞれ「エッジ情報表」「ノード情報表」「フェイス情報表」および「履歴情報表」を参照してください。)
  2. ユニバース・フェイス(「トポロジ・データ・モデルの概念」で定義するF0)を作成します。
  3. トポロジ内のトポロジ・ジオメトリ・レイヤーのタイプごとに1つのフィーチャ表を作成します。たとえば、都市データ・トポロジには、土地区画、通りおよび道路標識用の個別のフィーチャ表が含まれる場合があります。
  4. 各フィーチャ表に対してSDO_TOPO.ADD_TOPO_GEOMETRY_LAYERプロシージャを使用して、フィーチャ表をトポロジに関連付けます。これによって、<topology-name>_RELATION$表が作成されます。(この表については、「関係情報表」を参照してください。)
  5. SDO_TOPO.INITIALIZE_METADATAプロシージャを使用して、トポロジ・メタデータを初期化します。(このプロシージャによって、<topology-name>_EDGE$表、<topology-name>_NODE$表および<topology-name>_FACE$表に空間索引が作成され、<topology-name>_EDGE$表および<topology-name>_NODE$表にBツリー索引が追加で作成されます。)
  6. TopoMapオブジェクトを作成し、トポロジ全体をキャッシュにロードします。
  7. 空間表からデータを挿入し、SDO_TOPO_MAP.CREATE_FEATUREファンクションを使用して、フィーチャ表をロードします。
  8. トポロジ・データを(「トポロジ演算子」で説明するトポロジ演算子の1つを使用して)問い合せます。
  9. オプションで、PL/SQL Application Program Interface(API)またはJava APIを使用してトポロジ・データを編集します。

これらの主なステップのPL/SQLでの実行例を、「空間ジオメトリから作成したトポロジ」に示します。