Oracle XML DBのソリューションを計画する場合に考慮する基本的な設計基準を示します。
Database Configuration Assistant (DBCA)を使用し、汎用テンプレートを使用してOracle Databaseを構築すると、Oracle XML DBが自動的にインストールされます。
Oracle XML DBがすでにインストールされているかどうかは、自分で判断できます。次の条件に当てはまる場合は、インストールされています。
データベース・スキーマ(ユーザー・アカウント)XDB
が存在する。確認するには、次の問合せを実行します。
SELECT * FROM ALL_USERS;
ビューRESOURCE_VIEW
が存在する。確認するには、次のコマンドを使用します。
DESCRIBE RESOURCE_VIEW
関連項目:
Oracle XML DBの手動インストールの詳細は、 Oracle XML DBの管理を参照してください。
データベース・スキーマXDB
の詳細は、『Oracle Database 2日でセキュリティ・ガイド』を参照してください。
Oracle XML DBは、処理されるデータの一部または全部がXMLで表現されているアプリケーションに適しています。
Oracle XML DBでは、高パフォーマンスのデータベースで、XMLデータの収集、格納、処理および取出しが実行されます。また、既存のリレーショナル・データからXMLを迅速に容易に生成できます。Oracle XML DBが特に適しているアプリケーションは、次のとおりです。
Business-to-Business(B2B)およびApplication-to-Application(A2A)統合
インターネット
コンテンツ管理
メッセージ機能
Webサービス
典型的なOracle XML DBアプリケーションには、少なくとも次のうち1つの特長があります。
多くのXML文書を収集または生成する必要がある。
大規模なXML文書を処理または生成する必要がある。
1つの文書内でも、多数の文書の集まりにわたっても、高パフォーマンスな検索が必要とされる。
高いレベルのセキュリティが必要とされる。
ファイングレイン・セキュリティが必要とされる。
データ処理でXML文書を使用し、データをリレーショナル表に格納する必要がある。
プログラミングで、SQL、XML、XQuery、XPath、XSLなどのオープン標準がサポートされている必要がある。
FTP、HTTP(S)、WebDAV、Java Database Connectivity(JDBC)などの標準インターネット・プロトコルを使用して情報にアクセスする必要がある。
XMLデータはSQLから問い合せる必要がある。
XMLデータに分析機能を適用する必要がある。
XML文書をXML Schemaに基づいて検証する必要がある。
Oracle XML DBアプリケーションを計画する場合は、いくつかの基本的な設計基準を考慮することをお薦めします。
例を次に示します。
XMLデータを格納する方法
XMLデータの構造
アプリケーションの実装に使用する言語
XMLデータを処理する方法
ただし、通常は、次のOracle XML DB機能から開始することをお薦めします。ほとんどのユースケースでは、これらを考慮すれば十分です。
記憶域モデル - バイナリXML
索引付け - XML検索文字列、XMLIndex
(構造化コンポーネントあり)
データベース言語 - SQL、SQL/XML関数あり
XML言語 - XQueryおよびXSLT
クライアントAPI - OCI、Thin JDBC、SQL .NET
Oracle DatabaseにXMLデータを格納する方法は複数あります。
図2-1に、XMLType
の表およびビューの記憶域の概要を示します。
既存のリレーショナル・データがある場合は、XMLType
ビューをそのデータに作成することで、そのデータにXMLデータとしてアクセスできます。次を使用して、XMLType
ビューを定義できます。
SQL/XML関数。 リレーショナル・データからのXMLデータの生成およびXQueryとOracle XML DBを参照してください。
オブジェクトタイプ: オブジェクト表、オブジェクト・コンストラクタおよびオブジェクト・ビュー
アプリケーション用に選択した記憶域オプションにかかわらず、Oracle XML DBでは同じ機能が提供されます。使用する記憶域モデルは、アプリケーションのパフォーマンスおよびXMLデータの再現性に影響する場合がありますが、データを問合せおよび更新する頻度やアプリケーションで使用されるAPIとは関係がありません。
関連項目:
XMLデータがどのように構造化されているか、およびXML Schemaに基づいているかどうかは、それを格納する方法に影響を及ぼすことがあります。
XMLデータがXML Schemaに基づいていない場合、その構造化の方法とは関係なく、XMLType
表またはビューにバイナリXMLとして、またはOracle XML DBリポジトリのフォルダ内のファイルとして格納できます。オブジェクト・リレーショナル形式で格納することはできません。
XMLデータがXML Schemaに基づいている場合は、バイナリXMLまたはオブジェクト・リレーショナル形式で格納する必要があります。
関連項目:
Oracle XML DBアプリケーションは、JavaまたはPL/SQLでプログラミングできます。
Java(JDBC、Javaサーブレット)
PL/SQL
Oracle XML DBには、様々なXMLの処理オプションが用意されています。
Oracle XML DBアプリケーションを設計するときには次のものを使用でき、かつ考慮する必要があります。
XMLの生成およびXMLType
ビュー。XMLデータを生成(または再生成)する必要があるかどうか。 リレーショナル・データからのXMLデータの生成を参照してください。
アプリケーションがデータ中心、ドキュメント中心、またはその両方のいずれであるか。 Oracle XML DBの使用方法の概要を参照してください。
DOM再現性、ドキュメントの再現性。XMLType
記憶域は、オブジェクト・リレーショナルまたはバイナリXMLに関係なく、DOM再現性を維持します。つまり、XMLType
として格納されているXML文書から作成されたDOMは、元の文書から作成されたDOMと同じです。ただし、無意味な空白は異なる可能性があります。「DOM再現性」、「SYS_XDBPD$とオブジェクト・リレーショナル記憶域のDOM再現性」およびPL/SQL API for XMLTypeを参照してください。
DOM再現性以外にも、ドキュメントの再現性(無意味な空白)を維持する必要がある場合は、元の文書のコピーを2つ(1つはデータベースとXMLの処理で使用するXMLType
インスタンスとして、もう1つはドキュメントの再現性を実現するCLOB
インスタンスとして)格納します。
XPath検索。SQL文に埋め込まれたXPath構文を使用すると、データベース内のXMLコンテンツを問い合せることができます。「XMLデータの問合せと更新」、「Oracle XML DBリポジトリのデータへのアクセス」、「RESOURCE_VIEWおよびPATH_VIEWを使用したリポジトリへのアクセス」および「XQueryを使用しないXMLデータの全文検索」を参照してください。
XML文書はどれほどの頻度でアクセス、更新および操作されるか。 XMLデータの問合せと更新を参照してください。
更新の対象は文書のフラグメントか、または文書全体か。XPath式を使用して、文書全体を再書込みせずに、更新中に文書の個々の要素および属性を指定できます。これは、特に大規模なXML文書の場合により効率的です。「XMLデータの更新」を参照してください。
どのような種類の索引付けがアプリケーションおよびデータに最も適しているか。「XMLTypeデータの索引」および「XQueryを使用しないXMLデータの全文検索」を参照してください。
XSLT: XMLデータをHTMLやWMLなどの他の言語に変換する必要があるか、その場合は、アプリケーションによってこれがどのように実行されるか。Oracle XML DBにXML文書を格納中に、文書の構造が特定のXML Schemaに準拠するかどうか(妥当かどうか)を確認できます(オプション)。 XMLTypeデータの変換および検証を参照してください。
Oracle XML DBリポジトリを使用するアプリケーションの設計に関する考慮事項には、アクセス方法、セキュリティ・ニーズ、バージョニングが必要かどうかなどがあります。
リポジトリへのアクセス方法には、主に次の2つがあります。
ナビゲーション・ベースのアクセスまたはパス・ベースのアクセス。これはコンテンツ/ドキュメントおよびデータ指向アプリケーションの両方に適しています。Oracle XML DBでは、次の言語およびアクセスAPIが提供されています。
リソース・ビューおよびパス・ビューを介したSQLアクセス。 RESOURCE_VIEWおよびPATH_VIEWを使用したリポジトリへのアクセス を参照してください。
パッケージDBMS_XDB
またはパッケージDBMS_XDB_ADMIN
、DBMS_XDB_CONFIG
およびDBMS_XDB_REPOS
を使用したPL/SQLアクセス。 Oracle XML DBリポジトリへのPL/SQLアクセス を参照してください。
コンテンツ指向のアプリケーションに最適なHTTP(S)、WebDAVまたはFTPを使用したプロトコルベースのアクセス。 プロトコルを使用したリポジトリへのアクセスを参照してください。
問合せベースのアクセス。これはデータ指向アプリケーションに最適です。Oracle XML DBでは、次のAPIを介して、SQL問合せを使用するアクセスが可能です。
(JDBCを介する)Javaアクセス。「Java DOM API for XMLType」を参照してください。
PL/SQLアクセス。 PL/SQL API for XMLTypeを参照してください。
リポジトリ・データにアクセスするためのこれらのオプションは、Oracle XML DBリポジトリ・データへのアクセスでも説明しています。
次のアクセス基準についても考慮します。
どの程度のセキュリティ・レベルが必要か。 リポジトリのアクセス制御を参照してください。
データのバージョニングが必要かどうか。 リソース・バージョンを参照してください。
Oracle XML DBはOracle Databaseに不可欠の部分であり、他のデータベースのオプションおよび機能と連携して機能します。
Oracle Streamsアドバンスト・キューイング(AQ) – XMLペイロードをマージします。 Oracle Streams AQを使用したXMLデータの交換およびOracle Databaseアドバンスト・キューイング・ユーザーズ・ガイドを参照してください。
Oracle GoldenGateおよびOracle Active Data Guard – XMLデータをレプリケートおよび保護したり、ローリング・アップグレードを実行します。Oracle GoldenGateおよび『Oracle Data Guard概要および管理』を参照してください。
Oracle Exadata Storage Server Software – XMLデータを高いパフォーマンスかつ高い可用性でスケーラブルに使用します。『Oracle Database高可用性概要』を参照してください。
Oracle Real Application Clusters (Oracle RAC) – XMLデータをデータベース・インスタンスのクラスタとともに使用します。『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。
Oracle Multitenantオプション - 各プラガブル・データベースが独自のOracle XML DBリポジトリを持つマルチテナント・アーキテクチャでXMLデータを使用します。『Oracle Database概要』を参照してください。
圧縮および暗号化 - SecureFiles LOB記憶域を使用するバイナリXMLデータを圧縮および暗号化できます。オブジェクト・リレーショナル形式で格納されているXMLデータの場合、XMLの要素と属性を個別に圧縮または暗号化できます。
並行実行 - 次の操作を並行して実行できます。
XMLType
データの問合せ
SecureFiles LOBを使用してバイナリXMLとして格納されているXMLType
データのDML
Oracle TextのCONTEXT
索引が定義されているXMLType
表の直接ロード
関連項目:
Oracle Database概要