SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Cyber Luxeonで学ぶXMLDB入門

XMLDBとCyber Luxeonの基本

Cyber Luxeonで学ぶXMLDB入門 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

DXE Managerの基本的な使用方法

 ここでは、DXE Managerの物理構造の作成、XMLドキュメントの操作、インデックスの作成、スタイルシートの適用など、DXE Managerの基本的な使用方法を説明します。

DXE Managerの起動、DXEサーバーへの接続

 以下にDXE Managerの起動、そして、DXEサーバーへの接続方法について説明します。

DXE Managerの起動

 Windows XPの場合、スタートメニューから、[すべてのプログラム]-[Cyber Luxeon]-[DXE Manager]を選択すると、DXE Managerが起動します。

DXE Managerの起動
DXE Managerの起動

DXEサーバーへの接続

 メニューバーから[接続]-[新規接続]を選択します。[ホスト名]タブで、Cyber Luxeonをインストールしたマシンのホスト名(IPアドレス)を入力します。セキュリティが有効になっている場合は、[認証]タブでユーザー名とパスワードを入力します。[OK]ボタンをクリックすると、接続されます。

 図のように、DXEサーバー上の情報が表示されれば、接続成功です。

DXEサーバーへの接続
DXEサーバーへの接続

パーティション、XMLStore、ディレクトリの作成

 パーティション、XMLStore、ディレクトリなど、XMLドキュメントを格納するための入れ物をDXE Managerで作成する方法を説明します。

パーティションの作成

 DXE Managerのツリーペイン(ウィンドウ左側のペイン)でホストのアイコンを右クリックし、表示されたコンテキストメニューから[パーティションの作成]を選択すると、[パーティションの作成]ダイアログが表示されます。[パーティション名]欄には任意の名前を入力します。ここでは、「test_storage」という値を入力します。[パーティションのパス]欄には、存在するフォルダ名を入力します。ここでは「C:\Program Files\CyberTech\Luxeon\test_storage\」という値を入力します(事前にフォルダは作成しておきます)。

 入力後、[OK]ボタンを押下すると、パーティションが作成され、ツリーペインに表示されます(「P」の表示があるアイコン)。

パーティションの作成
パーティションの作成

XMLStoreの作成

 DXE Managerのツリーペインでパーティションを右クリックし、[XMLStoreの作成]を選択します。ツリーペイン上のパーティションの直下にXMLStoreのアイコンが表示されるので、XMLStoreの名前を入力します。ここでは「test_xmlstore」という値を入力します。

XMLStoreの作成
XMLStoreの作成

ディレクトリの作成

 DXE ManagerのツリーペインでXMLStoreを右クリックし、[新規作成]-[ディレクトリ]を選択します。ツリーペイン上のXMLStoreの直下にディレクトリのアイコンが表示されるので、ディレクトリの名前を入力します。ここでは「test_dir」という値を入力します。

ディレクトリの作成
ディレクトリの作成

XMLドキュメントの作成

 DXE ManagerでXMLドキュメントを作成する方法は、3種類用意されています。なお、ツリーペイン上では、XMLドキュメントは1つのファイルのように見えますが、物理的には、XMLStoreのデータファイル内にバイナリデータとして格納されます。

ツリーペイン上で作成する方法

 DXE ManagerのツリーペインでXMLStore、またはディレクトリを選択し、[新規作成]-[ドキュメント]を選択します。直下にドキュメントのアイコンが表示されるので、ドキュメントの名前を入力します。ここでは、「players.xml」という値を入力します。値入力後、ドキュメントの編集ダイアログが表示されます。このダイアログを使用して、XMLを編集することができます。

ファイルのドラッグ&ドロップ

 ツリーペイン上に、直接XMLファイルをドラッグ&ドロップをすることによって、XMLを保存する方法です。

インポート

 データを作成する、XMLStoreまたはディレクトリをツリーペイン上で選択します。選択後、DXE Managerのメニューバーから[ファイル]-[インポート]-[ファイルシステムから]を選択します。ファイルを選択するダイアログが表示されますので、インポートするXMLファイル、またはXSLファイルを選択し、[開く]ボタンを押下します。

XMLドキュメントの更新

 DXE ManagerからXMLドキュメントを更新する方法は3種類用意されています。なお、XMLを更新する方法には、テキストの手動更新のほかに、更新グラマーを使用した方法が用意されていますが、それについては、次回以降で説明します。

テキストの手動更新

 ツリーペイン上で、更新したいXMLドキュメントを右クリックし、[更新]-[ドキュメント全体の編集とアップロード]を選択します。ドキュメントの編集ダイアログが表示されますので、テキストベースで編集し、保存します。

XMLのテキスト手動更新
XMLのテキスト手動更新

XMLドキュメントの削除

 XMLドキュメントを削除するには、ツリーペイン上で、削除したいXMLドキュメントを右クリックし、[削除]を選択します。

XMLの削除
XMLの削除

XMLドキュメントに対するクエリーの実行

 以下に、Cyber Luxeonが用意しているクエリーウィザードを使用したXMLドキュメントの検索方法を説明します。なお、XPath、XQueryを用いた検索については、連載の2回目以降に改めて詳細紹介いたします。

 クエリーを実行したいXMLドキュメントを右クリックし、[クエリー]-[クエリーウィザード]を選択します。

 クエリーダイアログが表示されるので、検索条件を定義します。まずは、XMLのツリー構造上で、抽出したい要素、または属性をチェックボックスで選択します。

クエリーダイアログ
クエリーダイアログ

 選択後、検索条件を指定します。クエリーダイアログの[検索条件の定義]ボタンを押下します。検索条件ウィザードダイアログが開きます。

 ここでは、「XMLドキュメントの更新」で作成したXMLを使用し、背番号(backnumber)が50以上の選手を抽出するため、次のようにダイアログ上で値を入力します。

  1. スキーマ構成要素エリアのbacknumberを選択
  2. 演算子セレクトボックスで、>=を選択
  3. 値テキストボックスで、50を入力
クエリーの抽出条件指定
クエリーの抽出条件指定

 入力後、[OK]ボタンを押下し、クエリーダイアログに戻ります。ダイアログ内のクエリー欄に「/players/player[@backnumber >= 50]」と表示されているのを確認してください。クエリーダイアログの[OK]ボタンを押下すると、検索結果がテキストのXMLで表示されます。

 [保存]ボタンを押下すると、[保存先を選ぶ]ダイアログが表示されます。ここではXMLStoreに「test_xmlstore」を選択し、さらにXMLStore内の保存先として「test_dir」を選択し、「players.xsl」という名前で保存してください。

キャッシュ機能の補足
 上記の「Cyber Luxeonのプロセス構成」の節で、キャッシュ機能の概要について簡単に説明しました。デフォルトキャッシュと、キャッシュの構成要素であるアクセスタイプについて、以下に補足します。

デフォルトキャッシュ

 Cyber Luxeonの起動時に必ず立ち上がるXMLキャッシュのことです。DB管理者用のGUIツールのDXEマネージャは、このデフォルトキャッシュにアクセスします。このデフォルトキャッシュは、パフォーマンス上、ObjectStoreサーバーと同じマシンで稼動させることが推奨されています。

アクセスタイプ

 XMLキャッシュには、アクセスタイプというXMLStoreへのアクセス権限を設定するタイプがあります。種類は、更新可能とリードオンリー(読込専用)が用意されています。アクセスタイプはキャッシュ上のルートに対して設定します。
  1. 更新可能
  2. 更新可能の場合は以下の処理が実行できます。
    • XMLデータの作成、検索、更新、削除、XSL処理
    • XSL適用結果のXMLStoreへの保存
  3. リードオンリー
  4. リードオンリーの場合は、以下の処理のみ可能です。
    • XMLデータの検索
    • XSL適用(XMLStoreへの保存はできない)

ロックタイプ

 XMLキャッシュには、XMLStoreのデータにアクセスする際に、ロックを取得するかしないかを設定するロックタイプがあります。ロックタイプには、ロック型と非ロック型が用意されています。
  1. ロック型
  2. XMLStoreにアクセスするたびに以下の処理を実行します。
    • ロックを取得
    • データの変更有無をチェック
    • XMLデータをメモリ上に読み直す
  3. 非ロック型
  4. ロックを取得する代わりに、XMLStoreのスナップショットを作成し、それをキャッシュします。非ロック型のXMLキャッシュの場合、アクセスタイプはリードオンリーのみ指定可能です。

ロックタイプとアクセスタイプの組み合わせ

 以下の表に、ロックタイプとアクセスタイプの組み合わせの可否をまとめます。
アクセスタイプとロックタイプの組み合わせ
ロックタイプ/アクセスタイプ更新可能リードオンリー
ロック型
非ロック型×

ルート

 XMLキャッシュは、XMLStoreの1部分のXML操作を担当します。その担当として割り当てられたXMLStore上の位置をルートと呼びます。1つのXMLキャッシュには、複数のルートを設定することができます。また同一のルートを複数のXMLキャッシュに設定することが可能です。

まとめ

 冒頭で、オフィスドキュメントのデータ化によるフル活用の時代がやってくると述べましたが、それは真のナレッジマネジメントの時代がやってくる時でもあります。

 また、いままでRDBありきで、複雑なテーブル設計によって実現していたシステムアーキテクチャが、XMLDBを活用することによって、自然で柔軟なシステムアーキテクチャに生まれ変わる可能性もあります。RDBありきで構築したシステムをXMLDBで実現したらどのような効果が出るかを具体的なシステムを題材に検討してみるのも面白いでしょう。

 本稿が、Cyber LuxeonというネイティブXMLデータベースに触れるきっかけとなり、XMLデータベース活用への第一歩となれば幸いです。

参考資料

  1. Cyber Luxeon ハンドブック』 サイバーテック社
  2. XMLデータベース入門』 山田祥寛 著、翔泳社、2006年4月
  3. ThinkIT 『第1回:事例から見るXMLデータベース適用範囲の広がり』 丸山則夫 著、2006年2月
  4. ITmediaエンタープライズ 『XMLデータベース市場に追い風、その活用方法は?』 谷川耕一 著、2006年3月
修正履歴

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Cyber Luxeonで学ぶXMLDB入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 佐藤 治夫 (株式会社ビープラウド)(サトウ ハルオ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/835 2007/06/13 10:07

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング