2.6 スキーマ間のマップ・リクエスト

データベース・ユーザーは、他のデータソース・ユーザーがアクセスを許可されている表のデータを選択するために、別のデータベース・ユーザーに関連付けられたデータを使用するテーマを指定したマップ・リクエストを発行できます。

たとえば、ユーザーSCOTTが、ユーザーMVDEMOに関連付けられたデータを使用するマップ・リクエストを発行するとします。通常、ユーザーSCOTTは、ユーザーMVDEMOが所有する関連する表に対するSELECTアクセス権が付与されていることが必要で、一般に<theme>要素にはschema-name.table-nameの形式で表を指定する必要があります。ここでは、次の使用例を示します。

  • ジオメトリ表の場合、MVDEMOのジオメトリ表に対するSELECT権限をSCOTTに付与します(例2-53を参照)。

  • GeoRaster表の場合、MVDEMOのGeoRaster表およびラスター・データ表に対するSELECT権限をSCOTTに付与します(例2-54を参照)。

  • トポロジ・データ・モデル表の場合、MVDEMOのトポロジ表、トポロジ列の索引表および関連するトポロジ情報の表(topology-name_EDGE$、topology-name_NODE$、topology-name_FACE$、topology-name_RELATION$)に対するSELECT権限をSCOTTに付与します(例2-55を参照)。

  • ネットワーク・データ・モデル表の場合、MVDEMOのネットワーク・リンク、ノード、パスおよびパスリンクの表に対するSELECT権限をSCOTTに付与します(例2-56を参照)。

例2-53は、SCOTTユーザーで定義されたデータソースからジオメトリ表MVDEMO.STATESにアクセスする動的テーマを示しています。

例2-54は、SCOTTユーザーで定義されたデータソースからGeoRaster表MVDEMO.GEORASTER_TABLEおよびそのRDTにアクセスする動的テーマを示しています。実表(GeoRaster表)はschema-name.table-nameの形式で指定します。

例2-55は、SCOTTユーザーで定義されたデータソースから、トポロジ表MVDEMO.LAND_PARCELSおよびCITY_DATAトポロジの関連情報の表にアクセスする動的テーマを示しています。地物表および対象のトポロジが、データソースに関連付けられたスキーマとは別のスキーマで所有されている場合は、これらをschema-name.object-nameの形式で指定します。

例2-55では、トポロジ列の索引表名(<topology-column-index-table-name>)に対するSELECTを付与する必要があります。これは、地物表のトポロジ列に関連付けられた空間索引表が、トポロジ問合せでマップ・ビジュアライゼーション・コンポーネントによって使用されるためです。トポロジ列の索引表名は、次のように特定できます。次の情報を前提とします。

  • トポロジ地物表の所有者: MVDEMO

  • トポロジ地物表の名前: LAND_PARCELS

  • トポロジ地物表のトポロジ列の名前: FEATURE

次の問合せでは、索引表名(この例ではMDTP_14E60$)が返されます。

SQL> select sdo_index_table from all_sdo_index_info
     where table_owner = 'MVDEMO'
     and table_name = 'LAND_PARCELS'
     and column_name = 'FEATURE'
 
SDO_INDEX_TABLE
--------------------------------
MDTP_14E60$

その後、例2-55にある最後のGRANTステートメントを変更して、<topology-column-index-table-name>を指定します。この場合、次のようになります。

SQL> grant select on MDTP_14E60$ to SCOTT;

例2-56は、MVDEMO.BI_TESTネットワーク表およびそのリンク、ノード、パスおよびパスリンクの各表にアクセスする動的テーマを示しています。ネットワーク名はschema-name.network-nameの形式で指定します。

例2-53 スキーマ間のアクセス: ジオメトリ表

SQL> grant select on STATES to SCOTT;
. . .
<themes>
  <theme name="theme1">
     <jdbc_query
       datasource="scottds"
       spatial_column="geom"
       render_style="MVDEMO:C.COUNTIES"
       jdbc_srid="8265"
       >SELECT geom from MVDEMO.STATES</jdbc_query>
   </theme>
</themes>

例2-54 スキーマ間のアクセス: GeoRaster表

SQL> grant select on GEORASTER_TABLE to SCOTT;
SQL> grant select on RDT_GEOR1 to SCOTT;
. . .
<themes>
  <theme name="georaster_theme">
    <jdbc_georaster_query
       georaster_table="MVDEMO.georaster_table"
       georaster_column="georaster"
       raster_table="rdt_geor1"
       raster_id="1"
       jdbc_srid="8307"
       datasource="scottds"
       asis="false">
     </jdbc_georaster_query>
  </theme>
</themes>

例2-55 スキーマ間のアクセス: トポロジ地物表

SQL> grant select on CITY_DATA_FACE$ to SCOTT;
SQL> grant select on CITY_DATA_EDGE$ to SCOTT;
SQL> grant select on CITY_DATA_NODE$ to SCOTT;
SQL> grant select on CITY_DATA_RELATION$ to SCOTT;
SQL> grant select on LAND_PARCELS to SCOTT;
SQL> grant select on <topology-column-index-table-name> to SCOTT;
. . .
<themes>
  <theme name="topo_theme" >
     <jdbc_topology_query
       topology_name="MVDEMO.CITY_DATA"
       feature_table="MVDEMO.LAND_PARCELS"
       spatial_column="FEATURE"
       render_style="MVDEMO:C.COUNTIES"
       jdbc_srid="0"
       datasource="scottds"
       asis="false">select feature from MVDEMO.land_parcels
     </jdbc_topology_query>
   </theme>
</themes>

例2-56 スキーマ間のアクセス: ネットワーク表

SQL> grant select on BI_TEST_LINK$ to SCOTT;
SQL> grant select on BI_TEST_NODE$ to SCOTT;
SQL> grant select on BI_TEST_PATH$ to SCOTT;
SQL> grant select on BI_TEST_PLINK$ to SCOTT;
. . .
<themes>
  <theme name="net_theme" >
     <jdbc_network_query
       network_name="MVDEMO.BI_TEST"
       network_level="1"
       jdbc_srid="0"
       datasource="scottds"
       link_style="MVDEMO:C.RED"
       node_style="MVDEMO:M.CIRCLE"
       node_markersize="5"
       asis="false">
     </jdbc_network_query>
   </theme>
</themes>