コンポーネントフレームワーク

EMPRESSの組み込みデータベースは最小のフットプリントで最高のパフォーマンスを提供するためコンポーネントフレームワークで提供されます。コンポーネントフレームワークはカーネル、ミドルウエア、インターフェースレイヤーの3層で構成され、各コンポーネントの構成は以下の通りです。

カーネルレイヤー

カーネルレイヤーを構成するコンポーネントは以下の通りです。

組込みデータベースとストレージエンジン

EMPRESSは、組込みDB業界初のインプロセスタスクエンジンであるため、データベースはアプリケーションと同一のメモリーでライブラリとして起動されます。サーバを使用しないめサーバとの通信が必要ないために高速性を実現しました。EMPRESSは、30年以上データベースの高速化に注力し、多くの導入実績があるために多くのチューンアップノーハウを所有しています。これにより、検索はもとより更新系(insert、update、delete)ではより高速性を発揮します。

HYBRID(In-memory/On Disk)構造エンジン

EMPRESSのデータベースエンジンはIn-memoryとOn Disk並行使用出来るHYBRID機能を持ちます。高速が要求される場合はメモリで、そうでないものは安全なディスクでというオプションが可能です。ディスクとメモリのデータベースの同期は更新するたびにトランザクション式の同期、テーブルクローズ時(ODBC、JDBC使用時)、シャットダウン時とユーザがプロファイルで設定することが可能です。

断電回復機能・非断片化構造

組込みデータベースは電源断の発生後、再度電源が入ったとき、データベースをいかに早く復旧するという事が大きな課題です。EMPRESSは、トランザクション中に電断になった場合、起動時にトランザクションを解放することが出来ます。又、トランザクションがかかっていない状態で電源断になった場合、レコードごとの検証を実行します。EMPRESSの断電回復機能は非常に高速で13万曲のカラオケデータベースを1秒程度で断電回復することが可能です。
組込みのデータベースに対する書込みと削除を繰り返すと、データベース内の連続データが分割され、データへの読み書き速度が低下します。断片化を解消するためにデフラグが必要です。デフラグはメモリとディスクの両方が必要です。デフラグ中はシステムの使用はできませんし、デフラグ中断電が発生した場合ファイルシステムは壊れてしまいます。EMPRESSの組込みデータベースはメンテナンスフリーを実現し、断片化が発生しにくい組込みへの最適な構造を提供しています。

トランザクション

組込みデータベースは色々な方法でデータアクセスされます。このため、組込みデバイスのデータの一致性を保証するために、EMPRESSはANSIのスタンダードの2相トランザクションとロック機能をサポートしています。トランザクションが確保できない場合でもデータベースのセーフポイントを設置しています。

INDEX

ANSIの標準であるデータベースの標準INDEX,、-Tree、HASH、Timeシリーズなどのインデックスを提供します。ANSIの標準以外でEMPRESS独自に以下のINDEXを有します。

全文検索INDEX

全文検索が検索するインデックスを提供します。

空間INDEX

地図データを検索するインデックスを提供します。

ツリーデータINDEX

親子関係にあるデータの高速検索、更新、削除するインデックスを提供します。

絞込み検索

主にタッチパネルなどで使用される次の候補文字を検索するためのインデックスを提供します。

マルチプロセス/タスクサポート

マルチタスク/スレッドサポートにはトランザクションとロック機能が必要です。ロック機能はグラニューティドがプロファイルで設定出来るので、レコードロック、ページロック、テーブルロックを場面に応じて使い分けすることで可能です。同時にEMPRESSはマルチデータアイソレーションレベルも提供しています。アイソレーションレベルはダーティーリード、リードコミット、シリアライゼーション等を複数のアプリケーションからの使用することが可能です。2相トランザクションとロック機能により完全なマルチプロセス・タスク機能を提供することが可能です。

ミドルウエアレイヤー

ミドルウエアレイヤーを構成するコンポーネントは以下の通りです。

GIS/GPSモジュール

地図データを検索するためのモジュールをカーナビ用に提供します。

全文検索

Empress組込み全文検索は、データベースでは苦手とされる全文検索、中間一致あるいは後方一致検索で圧倒的な高速パフォーマンスを提供します。検索の高速性だけではなく表記ゆれ、シソーラス対応によって検索精度を向上させ、単体の組込みデータベース検索では決して実現できない高速全文検索機能を実現しました。

データレプリケーション

Empress のレプリケーション機能は、データを一つのソースから、別の複数のターゲットのソースへ配布することができます。Empress Replication機能は、一つのマスター・テーブルの複製(コピー)としてデータベース・テーブルのセットを作成し、マスターテーブルの現在の状態を同期させるための機能です。Empressのリプリケーションはプル・プッシュの両方に対応しています。

EMPRESSはEMPRESS SUITEというサーババージョンがあります。EMPRESS SUITERを利用したリプリケーションのメリットは以下の通りです。

* 高度なデータ利用
* データのローカルコピーを利用することでのネットワーク負荷の低減
* データベース・アプリケーション間のデータロードの非競合
* 複数のロケーションを横断した分散システムのロード
* システム障害からの容易なリカバリ
* ネットワークを介したデータ・コピーの自動提供

必要であれば、Empress Replicationは、データのサブセットだけを複製することもできます。

階層データ処理

ツリーINDEXを使用し、親子関係にあるデータの高速検索、更新、削除する機能を提供します。IPフォンの親電話と子電話、上司と部下などの検索、一括更新・削除を高速化する機能です。

データの暗号化・圧縮処理

Empressは暗号化方法をデータベースエンジンに実装しています。これはカーネルデータでの暗号化のため、通常のミドルウェア暗号化方法と比較すると、極小のオーバーヘッドで暗号化されたデータの検索ができます。同時に暗号キーをクラウド上、デバイス内に置くことが可能です。暗号化によって組込みデバイスで扱っている個人情報を守ることができます。

Empress の圧縮は暗号化と同様、データ圧縮方法をデータベースエンジンのカーネルに実装し、通常のミドルウェア圧縮方法と比較すると、非常に低いオーバーヘッドで、圧縮されたデータの検索ができます。例えば、地図データ1300万件、約8GBのテーブルを約3GBまで圧縮し、かつ検索スピードでも1300万件の地図データを0.1秒で検索することに成功しました。

ユーザ定義INDEX

ユーザ定義可能なカスタマイズINDEXです。複数のアトリビュートを組み合わせて独自INDEXを作成し、主キーにすることも可能です。

インターフェースレイヤー

インターフェースレイヤーレイヤーを構成するコンポーネントは以下の通りです。

データリカバリーAPI

EMPRESSはデータベースのデータを外部ファイルからリカバリできるAPIが提供されています。データは、ローカル、ネットワーク、他のデバイスでも、他のOS間でも可能です。

ODBC/JDBC

ODBCは、データベースにアクセスするためのソフトウェアの標準仕様です。各データベースの違いはODBCドライバによって吸収されるため、ユーザはODBCに定められた手順に従ってプログラムを書けば、接続先のデータベースにアクセスすることが可能です。EMPRESSはODBCをEMPRESSの標準インターフェースとし、UNIX/Linux/Windows/eT-kernakなどで稼動するクライアント・アプリケーションが、ネットワーク上にあるEMPRESSデータベースをアクセスすることができます。Empress Connectivity Serverは、クライアント・サーバ構造でODBCとJDBCをサポートしたEmpressの組込みデータベースサーバです。JDBCは、Javaプログラムをデータベース管理システムに接続させるためのJavaプログラミング言語のための標準のAPIです。 JDBCは、Javaによって書かれたクラスとインタ-フェースのセットから構成されます。 JDBCは、プラットフォームに依存しません。Javaのユニークなクロス・プラットフォーム能力の元で、開発者は一度だけデータベース アプリケーションを開発することで、いかなる環境下でも実行できます。EMPRESS JDBC インターフェースは、 JavaプログラムがEmpressのSQL文を実行することを可能にするJDBC API用のオプションです。 EMPRESS JDBCインタ-フェースを利用するユーザは、データベースと容易に接続し、SQLを送信し、瞬時に結果を得ることができるアプリケーションやサーブレットやアプレットを開発できます。EMPRESS JDBCインタ-フェースは、カテゴリー2とカテゴリー4 のJDBCドライバを提供します。

CカーネルAPI

EmpressはC言語を用いてデータベース構造にダイレクトにアクセスできる高速データベース処理用ルーチンを提供します。このインターフェースは 個々の呼出し毎にパーサーが起動しないため、他SQLインターフェースよりも高速な実行環境を実現します。さらにデータ処理をより細かく制御することによって、複雑な計算機能、カスタム定義されたレポートの作成、高度なユーザインターフェースの開発などを可能にします。EMPRESSは以下のMR関数を提供します。

オープン・ルーチン

ロック・ルーチン

空間の割り付け・ルーチン

アトリビュート・デスクリプター・ルーチン

デリート・ルーチン

レコードセット・ルーチン インサート・ルーチン

アップデイト・ルーチン

検索初期化・ルーチン

検索・ルーチン

コンペア・ルーチン

入力変換・ルーチン

制限・ルーチン

表現式・ルーチン

トランザクション・ルーチン

エラーハンドリング・ルーチン

 

 

組込みSQL

Empress 組込み SQLは、C言語でのプログラムにSQLコマンドを利用することで、Empressデータベースにアクセスすることを実現します。 Empressデータベース上のテーブルに対して以下の操作を提供します。

レコード(ロー)の追加

レコードの更新

レコードの削除

レコードの検索

検索された複数のレコードに対しての追加、更新、削除

データの完全性を維持した上でのトランザクションの利用

組込みネットワークAPI

ODBC/JDBC以外、たとえばリソースが少ないデバイスでもEMPRESSはデータのセンドとレシーブが可能な組込みネットワークAPIが用意されています。