特長・アーキテクチャ

「NeoCore」は、まったく新しいタイプのXMLデータベースエンジンです。

スキーマ定義は一切不要、XML形式のデータであれば、すべて柔軟に吸収。フルオートインデックス機能により、すべてのタグに対して自動的にインデックスを作成します。システム開発者の悩みどころであった、インデックス設計を不要にし、システム開発の効率を飛躍的に向上させることができます。

XMLの超高速検索を実現する、DPP(Digitatl Pattern Processing)を搭載。元データを見ることなく、フラットな構造のアイコンをパターンマッチさせる事でデータ量やデータ構造の複雑さに依存しない安定した検索パフォーマンスを実現します。XML形式のデータをスキーマレスで格納、XMLの柔軟性を活かしたデータ管理が可能です。

1. XML超高速検索機能

リレーショナルデータベース(RDB)のテーブル構造にXMLデータをマッピングしたり、XMLデータ型の領域に格納した場合に、著しく検索性能が低下してしまう場合があります。NeoCoreは、独自の特許技術であるDPP(Digital Pattern Processing)により、XMLのデータ量やXMLの階層構造の深さに依存しない安定した検索が可能です。

NeoCoreは、XMLデータを格納する際、Parsingを通過したXMLデータを、Flattenerと呼ばれるモジュールにより、パスとデータに分解します。DPPは、この分解した1つ1つのパスとデータを、64bitの固定長のデータに変換し、全てのタグに対してユニークな「アイコン」として生成します。

NeoCoreでは、データベースに格納されたXMLデータを検索する際に、元データを見ることなく、フラットな構造の「アイコン」をパターンマッチさせる方式を採用。この「アイコン」がXMLデータを検索する際のインデックスとして機能し、実データはこの「アイコン」が指し示す場所に格納されます。

XML超高速検索機能

2. フルオートインデックス機能

NeoCoreは、XMLデータをデータベースに格納する際、DPP(Digital Pattern Processing)により、すべてのタグに対して自動的にインデックスを生成します。

フルオートインデックス機能は、リレーショナルデータベース(RDB)で必要とされるインデックス設計や生成のための作業を不要とします。つまり、開発者はどの項目にインデックスを設定すれば良いかを考える必要はなく、インデックスを上手に使用するような検索方法を考えるだけで済むため、システム開発時の時間とコストを飛躍的に向上する事が可能です。NeoCoreは、格納時や更新時にDPPにより分解されたXMLの構造を、独自の方式でバイナリデータとして種類別に分類して格納します。

NeoCoreの内部は、下記の複数ファイルで構成・管理されます。

タグ部及びデータ部の実体を格納する「辞書ファイル」

タグ部及びデータ部のインデックス情報を格納する「インデックスファイル」

タグ部及びデータ部の重複インデックス情報を格納する「重複ファイル」

辞書ファイルとインデックスファイルを相互参照する「クロスリファレンス」

XMLデータの物理的な構造情報を格納する「マップファイル」

データベースファイルのロケーション情報や、格納されている文書数などの管理者情報を格納する「Adminファイル」

フルオートインデックス機能

3. スキーマ定義不要

NeoCoreは、XML形式のデータを格納する際、スキーマを定義する必要がありません。格納、更新等の操作の際に入力するXMLについては、妥当性検証(Validationチェック)を行わず、整形式であるかどうかのチェック(Parsing)のみを行います。従って、DTDやXMLSchemaとは関係なく、あらゆるXML形式のデータを格納し、またエレメントの追加や削除を自由に行うことができます。

リレーショナルデータベース(RDB)は、格納するデータ全てのデータについて、厳密なスキーマ定義を必要とするため、仕様変更のたびにスキーマを再定義する必要がありました。これに対して、NeoCoreを用いたデータベース設計では、ノードや属性をTree型に配置した構造を設計し、パフォーマンスを考慮したTree構造の変更を行います。リレーショナルデータベース(RDB)の場合はインプリメントの前に構造設計が完結している必要がありますが、NeoCoreの場合は、基礎が決まっていれば、ある程度の変更はアプリケーションで吸収できてしまいます。

これにより、ビジネスサイドからの要求によって発生するスキーマ設計とインデックス再設計にかかるシステムエンジニアコストと時間を大幅に削減する事が可能となり、システム開発の初期の段階でデータ構造を厳密に定義できない場合や、システム運用フェーズでのデータ項目の追加変更の際には、大きなメリットとなります。

スキーマ定義不要

ページのトップへ