SHOEISHA iD

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

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

Cyber Luxeonで学ぶXMLDB入門

XMLDBとCyber Luxeonの基本

Cyber Luxeonで学ぶXMLDB入門 第1回


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

XMLDBの概論について説明します。その後、国産XMLデータベース製品であるCyber Luxeonのアーキテクチャ、そして、その管理ツールであるDXE Managerの基本的な使用法を説明します。

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

はじめに

 1998年にXMLがW3Cで勧告となり、その直後からXMLがITシステム上で急速に用いられるようになりました。その当初、XMLデータの保存先としては、ファイルシステム上に直接保存する手法がよく用いられました。しかし、ファイルシステム上に直接保存する方法ではファイルシステムの制約に依存し、さまざまな問題があることから、データの格納先として「XMLデータべース(以降、XMLDB)」が必然的に登場しました。その当時に登場したXMLDBは、第一世代のXMLDBと呼ばれます。

 第一世代のXMLDBは、データを格納する際にスキーマを必要としたことや、検索に時間がかかるなど、使い勝手、性能などの面で実用的ではない製品も多かったいうこともあり、あまり普及は進みませんでした。

 その後、スキーマレスという大きな特徴を持ち、検索性能などが大幅に向上した第二世代と呼ばれるXMLDBが世の中に登場します。この第二世代のXMLDBの登場により、XMLDBは実用段階に入ったと言われています。しかし実際のところ、まだまだXMLDBを活用しきれていないというのがIT業界の現状ではないでしょうか。

 Microsoft Office 2007や、OpenOffice.orgのドキュメントファイルがXMLに完全対応することもあり、それらのオフィスドキュメントのデータ化によるフル活用の時代がやってきます。ある調査では、いままでにオフィスドキュメントや、業務データなど、電子化された全データのうち、構造化され管理されているデータはわずか15%程度という結果が出ています。

 これらのデータは、半定型的で、複雑な構造であり、頻繁に構造の変更が入るという性質を持っています。そのため「リレーショナル・データベース(以降、RDB)」で管理にするには、管理不可能か、管理するにはコストがかかりすぎるデータであると考えられていました。つまり管理をあきらめていたデータであり、完全に活用しきれていなかったデータであると言えます。

 XMLDBをITソリューションの一手段として視野に入れれば、今まで管理不可能とあきらめていたデータを活用できる可能性が大きく広がります。

 本連載では、国産のネイティブXMLデータベースであるCyber Luxeonを通じて、XMLDBの基本について紹介します。本連載で扱う内容は、次のとおりです。

  • XMLDB概論
  • Cyber Luxeonの基本
  • XMLDBのデータ操作~XQueryの基本
  • Cyber LuxeonによるWebアプリケーション開発
  • Cyber Luxeonチューニング技法

 本稿ではまず、この中からXMLDBの概論を説明します。その後、国産XMLDB製品であるCyber Luxeonのアーキテクチャと、その管理ツールであるDXE Managerの基本的な使用法を説明します。

対象読者

 XMLに触れたことがある方、RDBなどのデータベースを操作したことがある方を対象とします。

必要な環境

  • OS:Windows XP
  • DB:Cyber Luxeon Ver2.0 Developer Edition
著注
 Cyber Luxeon 2.0では、Windows、Solaris、RedHat Linux ES3をサポートしていますが、本連載ではWindows XPを対象とします。

XMLDB概論

 Cyber Luxeonの説明に入る前に、まずはXMLDBの概要について説明します。

RDBとXMLDBの比較

 XMLDBについて説明する際に、その比較対象としては外せないのがRDBです。RDBとXMLDBの違いについて比較し、以下の表にまとめました。

RDBとXMLDBの比較
比較内容RDBXMLDB
格納するデータの構造定型的半定型的
データスキーマの必要性必須任意
スキーマ構造変更時にかかる変更コスト高い低い
大量データの高速な一括処理強い弱い

格納するデータの構造

 RDBに格納するデータは定型的で構造的なデータが向いています。それに対し、XMLDBに格納するデータは半定型的で、半構造的なデータが向いています。半構造的なデータとは、構造自体は持っているが、RDBのように、はっきりと構造を確定していないデータのことです。XMLDBにRDBで格納できるような構造的なデータを格納しても、あまりメリットはないでしょう。

データスキーマの必要性

 RDBは、スキーマをまず第一に設計/定義し、作成するのが大前提です。それに対し、XMLDBはスキーマがなくてもXMLをデータとしてDBに格納することができます。このスキーマレスという性質は、XMLDBの最も大きな特徴です。

スキーマ構造変更時にかかる変更コスト

 RDBの場合、データ構造に大きな追加・変更が入った場合、システム全体に大きなインパクトを与えます。最悪の場合、テーブルの正規化をやり直したり、つぎはぎだらけのテーブル追加で対応せざるを得ない状況も考えられ、そのような場合、変更コストはとても大きくなります。それに対し、XMLDBは、データ構造に変更が入ってもDBの変更は必要ないので、変更にかかるコストを低くおさえることができます。もちろん、スキーマを設計/定義し、データの妥当性を検証することもできます。

大量データの高速な一括処理

 大量のデータを高速で一括処理するようなバッチ処理は、RDBが最も得意とするところです。XMLDBは、格納するデータがXMLであり、階層構造であることから、大量のデータを一括で処理するのは、もともと得意ではありません。ただし、XMLDB各製品も、複数のXMLドキュメントを束ねて処理できる機能などを開発してきており、これからの動向が注目されるところです。

XMLDBの導入局面

 前節で、RDBとXMLDBを比較しましたが、RDBは固定的、XMLDBは柔軟といったイメージが沸いてきたかと思います。では、そのXMLDBの特徴は、実際にどのような局面で活用されているのでしょうか。以下の表にXMLDBの活用局面をまとめました。

XMLDBの導入局面例
適用分野適用例効果
ナレッジマネジメントオフィスドキュメント、業務マニュアル、社内規定集などをXMLDBに格納見出し、文書構造レベルでの検索、新旧対照表の自動生成などが可能となった。
CAD/CAM図面情報、設計情報をDB化しWebで情報共有複雑な階層構造を持つ図面データの効率的なデータ管理が実現した。
出版業界自動組版ソリューションRDBでは、データ化しにくかったコンテンツデータの一元管理が可能となった
電子カタログ商品情報をXMLDBに保存商品属性項目の追加が容易になり、カタログ情報の頻繁な更新が実現した。

ファイルシステムにXMLデータを保存する手法の問題点

 本稿冒頭で、XMLの普及時に、XMLデータを格納する手法としてファイルシステム上に直接保存する方法に問題点があることについて簡単に触れました。ここでは、具体的にその問題点について説明します。

 ファイルシステム上に直接保存する手法の問題点の大きなものとして、トランザクション機能がない、大量データに向かないなど、ファイルシステムがもともと持っているさまざまな制約があるということです。これらを克服するためには、さまざまな仕組みを作りこむ必要があり、結局割高になってしまいます。

 以下の表に、問題点をまとめました。

ファイルシステム上にXMLデータを保存する手法の問題点
問題点内容
トランザクション機能一度ファイルの上書きを始めた後、元に戻せない。戻すためには仕組みを作りこむ必要がある。
システム負荷キャッシュ機能がないため、アクセスのたびにディスクから読み込む必要があり、ディスクの入出力負荷が増大する。
大容量データの扱いOSによって、1フォルダ(ディレクトリ)に格納できるファイル数に制限がある。また制限を越えていなくても、大量のファイルを扱うと読込みスピードが遅くなる

 これらの問題はすべてXMLDBを導入することによって、解決できる可能性があるものです。

主要なXMLDB製品の紹介と分類

 以上、XMLDBの概要について理解できてきたところで、実際のXMLDB製品にどのようなものがあるのかを見ていきます。XMLDBにも、さまざまな製品が存在します。その分類は、ネイティブXMLDB(XML専用データベース)と、XML対応RDB(RDBにXMLを扱える機能を追加したデータベース)の2つに大きく分類することができます。

 ネイティブXMLDBはさらに、その登場時期、機能によって「第一世代」「第二世代」に分類されます。「第一世代」の特徴としては、スキーマを必要とする、インデックスの設定が必要などの特徴があります。「第二世代」の特徴としては、スキーマレス、インデックスフリー、検索性能の大幅な向上などがあげられます。具体的な製品について、XMLDBの分類別に以下の表にまとめました。

ネイティブXMLDB(第一世代)
製品名会社
Yggdrasill & EsTerra XSSMedia Fusion
ネイティブXMLDB(第二世代)
製品名会社
Cyber Luxeonサイバーテック
NeoCore XMS米Xpriori社(開発)、
三井物産三井情報開発
(日本での導入コンサルティング)
TX1東芝ソリューション
Shunsaku富士通

 本稿では、XMLDBを学ぶための題材として、上記の中から、Cyber Luxeonを紹介します。Cyber Luxeonは、サイバーテック社が開発・販売するネイティブXMLデータベースです。もともとはeXelonというXMLDBで、その登場は1999年3月とネイティブXMLDBの中でも最も歴史が古く、導入実績も豊富です。その登場時期から、第一世代のXMLDBに分類されることもありますが、2006年12月25日にはバージョン2.0の出荷が開始され、大幅な検索性能の向上が図られるなど、第二世代への仲間入りを果たしたといってもよいでしょう。また日本語の高速な全文検索機能(ターボサーチ)やあいまい検索機能の開発などにも意欲的に取り組み、今後ますます飛躍が期待される製品です。

次のページ
Cyber Luxeonのアーキテクチャと管理ツール

修正履歴

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

  • 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 X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング