Microsoft Jet Database Engine(マイクロソフト・ジェット・データベースエンジン)とは
Microsoft Jet Database Engine(以下、Jet)は、
マイクロソフトが開発した
データベースエンジンであり、いくつかの
マイクロソフト製品で採用されています。Jetは、Microsoft Jetエンジン、または単にJetとも呼ばれます。1992年に最初のバージョンが開発され、データベース操作のための3つの
モジュールで構成されています。
概要
Jetは、Joint Engine Technology(共同エンジン技術)の
頭字語です。初期の
Microsoft Accessや
Visual Basicでは、基盤となる
データベースエンジンとしてJetが使用されていました。しかし、後にMicrosoft Desktop Engine(MSDE)を経て、
SQL Server Expressに置き換えられています。大規模なデータベースを利用する際には、Jetデータベースを
Microsoft [[SQL Server]]のデータベース製品群にアップグレード(
マイクロソフトの用語では「アップサイズ」)することが可能です。
例えば、圧縮と暗号化が有効な50億レコードを含むJetデータベース(Red)の場合、約1テラバイトのディスク記憶域が必要となります。
アーキテクチャ
Jetは、
関係データベース管理システム(RDBMS)の一種であり、ファイル拡張子は
.mdb、または.accdbです。このデータベースにアクセスするための単一のインターフェースを提供し、セキュリティ、参照整合性、
トランザクション処理、インデックス作成、レコードとページのロック、データ
レプリケーションをサポートしています。また、
SQLクエリの実行、
Unicode形式での文字データ保存、データベースビューの作成、
Microsoft [[SQL Server]]との双方向
レプリケーションも可能です。
Jetは以下の3つの
モジュールで構成されています。
1.
ネイティブJet ISAMドライバー:ファイルシステムAPIを使用して
Microsoft Accessデータベースファイル(MDB)を直接操作するダイナミックリンクライブラリ(DLL)。
2.
ISAMドライバーDLL:xBase、Paradox、Btrieve、FoxProなどの各種ISAMデータベースを操作するDLL。
3.
Data Access Objects(DAO)DLL:プログラマーが任意のプログラミング言語を通してJetデータベースを操作するためのAPIを提供。
歴史
Jetは、1992年に
マイクロソフトの内部データベース製品開発プロジェクトであるCirrusというコードネームで開始されました。当初は
Visual Basicコードから開発され、
Microsoft Accessデータベースエンジンとして利用されました。
Access 2.0のリリース時には、Access ODBC開発者がJetコードの一部を利用してODBCドライバーを作成したことで、Jetはよりコンポーネント化されました。また、
Visual Basic 3.0ユーザーがAccess 2.0のJetを利用できるよう、アップデートが提供されました。
Jet 2.0は、
Microsoft Accessなどの
アプリケーション[[ソフトウェア]]で使用されるいくつかのダイナミックリンクライブラリ(DLL)としてリリースされました。DLLは複数のアプリケーションで使用できる共通コードのライブラリで、これにより各アプリケーションは独立してコードを使用し、メンテナンスの手間が軽減されます。Jet 2.0は、Jet DLL、Data Access Objects(DAO)DLL、およびいくつかの外部ISAM DLLの3つのDLLで構成されていました。Jet DLLは、アクセスしているデータベースの種類と、要求された内容を実行する方法を決定しました。データソースがMDBファイルの場合、データを直接読み書きします。データソースが外部の場合、正しいODBCドライバーを呼び出して要求を実行します。DAO DLLは、プログラマーがJetエンジンとのインターフェースに使用できるコンポーネントであり、主に
Visual BasicやAccess Basicプログラマーによって使用されていました。ISAM DLLは、JetがxBase、Paradox、Btrieveの3つのISAMベースのデータベースにアクセスするための
モジュールでした。Jet 2.1は、Jet 2.0とデータベース構造は同じですが、ロック戦略が異なるため、動作が異なります。
Jet 3.0では、ストレージサイズの削減、インデックス作成時間の短縮、インデックスページのロックの削除、新しいページ再利用メカニズム、新しい圧縮方法など多くの機能強化が施されました。また、データベースの圧縮時にインデックスがクラスター化インデックス形式で保存されるようになりました。これにより、Jetの先読み機能が改善され、削除操作の高速化、マルチスレッド処理(先読み、後書き)、暗黙のトランザクション、新しい並べ替えエンジン、長い値の別テーブル保存、動的バッファリング、データベースの複製などが可能になりました。その後、Jet 3.5に置き換えられましたが、データベース構造は同じもののロック戦略が異なるため、Jet 3.0との互換性はありません。
Jet 4.0では、多数の追加機能と拡張機能が追加されました。
Access 2000からAccess 2010までのバージョンには、Jetデータベースを
SQL Server上の同等のデータベースに「アップサイズ」できる「アップサイジングウィザード」が含まれていました。ただし、レポート、クエリ、マクロ、セキュリティなどはこのツールでは処理されないため、手動で変更が必要でした。
Jet 4
データベースエンジンのスタンドアロンバージョンは、
Microsoft Data Access Components(MDAC)のコンポーネントとして、Windows 2000以降のすべてのWindowsに含まれていました。Jet
データベースエンジンは
32ビットのみであり、64ビットバージョンのWindowsではネイティブに実行されませんでした。そのため、ネイティブ64ビットアプリケーションは、中間
ソフトウェア(WOW64で実行)を介してMDBファイルにアクセスする必要がありました。
Access 2007以降には、Office固有バージョンのJetが含まれています。当初はOffice Access Connectivity Engine(ACE)と呼ばれていましたが、現在はAccess
データベースエンジンと呼ばれています。このエンジンは、以前のJetエンジンと下位互換性があり、以前のAccessバージョンからの(.mdb)ファイルを読み書きできます。新しいデフォルトのファイル形式(.accdb)が導入され、複数値フィールド、添付ファイルデータ型、メモフィールドの履歴追跡などの複雑なデータ型など、Accessにいくつかの改善をもたらしました。また、セキュリティの変更と暗号化の改善がもたらされ、
Microsoft Windows SharePoint Services 3.0およびMicrosoft Office Outlook 2007との統合が可能になりました。
Microsoft Access 2010のエンジンは、Access 1.0、Access 2.0、Lotus 1-2-3、およびParadoxファイルのサポートを終了しました。64ビットバージョンのAccess 2010とそのACEドライバー/プロバイダーが導入され、64ビット版のJetが提供されるようになりました。このドライバーはWindows
オペレーティングシステムの一部ではありませんが、再配布可能として利用できます。
Microsoft Access 2013のエンジンは、Access 95、Access 97、およびxBaseファイルのサポートを終了し、
レプリケーションのサポートも終了しました。
Microsoft Access 2016のバージョン1608では、xBaseファイルのサポートが復元され、バージョン1703では多数のデータ型が導入されました。
データアクセス技術の観点から、
マイクロソフトはJetの利用を推奨していませんが、
Microsoft Accessの一部としてACEを引き続きサポートしています。
互換性
マイクロソフトは、
Microsoft Windows向けにのみJetドライバーを提供しています。そのため、Jetデータベースを利用するサードパーティ
ソフトウェアの動作環境はWindowsのみであることが多いです。しかし、MDB Toolsというオープンソースプロジェクトや、Java向けに拡張されたJackcessなどの試みにより、他のプラットフォーム上でのJetデータベースの動作も一部実現されています。
関連項目
Microsoft Access
Microsoft [[SQL Server]]
Microsoft Desktop Engine
SQL Server Express
Microsoft Data Access Components
Data Access Objects