Microsoft Jet Database Engine (マイクロソフト・ジェット・データベースエンジン)は、いくつかのマイクロソフト 製品が採用しているデータベースエンジン である。Microsoft Jetエンジンまたは単にJet とも呼ばれる。Jetの最初のバージョンは1992年に開発され、データベースの操作に使用できる3つのモジュール で構成される。
JETは、J oint E ngine T echnology (共同エンジン技術)の頭字語 である。 Microsoft Access やVisual Basic は、その基盤となるデータベースエンジンとしてJetを使用していた。ただし、後にMicrosoft Desktop Engine (MSDE)に、さらに後にSQL Server Express に置き換えらた。大規模なデータベース活用の際には、JetデータベースをMicrosoft SQL Server のデータベース製品群にアップグレード(またはマイクロソフトの用語では「アップサイズ」)することができる。
圧縮と暗号化が有効な50億レコードを含むMS Jet(Red)データベースの場合、約1テラバイトのディスク記憶域が必要となる[要出典 ] 。
アーキテクチャ
Jetは、関係データベース管理システム (RDBMS)の一種である。ファイル拡張子は *.mdb、または*.accdb。他のソフトウェアがこのデータベースにアクセスするための単一のインターフェイス と、セキュリティ、参照整合性 、トランザクション処理 、インデックス作成 、レコードとページのロック 、およびデータレプリケーション のサポートを提供する。以降のバージョンでは、エンジンが拡張され、 SQL クエリの実行、Unicode 形式での文字データの保存、データベースビュー の作成、Microsoft SQL Server との双方向レプリケーションが可能になった。
Jet DLL
Jetには3つのモジュールがある。1つ目はネイティブJet ISAMドライバー で、(ランダムアクセス)ファイルシステムAPIを使ってMicrosoft Accessデータベースファイル(MDB)を直接操作するダイナミックリンクライブラリ (DLL)である。2つ目のモジュールは 、Jetのバージョンに応じて、xBase 、Paradox 、Btrieve 、FoxPro などのさまざまなISAM データベースを操作するISAMドライバー のDLLである。3つ目のモジュールは、Data Access Objects (DAO)DLLである。 DAOは、プログラマーが任意のプログラミング言語を通してJetデータベースを操作するAPI を提供する。
歴史
Jet バージョン
Jet エンジン
DLL ファイル名
サポートされるデータベースバージョン
1.0
??
??
1.0
1.1
1.10.0001
MSAJT110.DLL
1.0 / 1.1
2.0
2.00.0000
MSAJT200.DLL
1.0 / 1.1 / 2.0
2.5
2.50.1606
MSAJT200.DLL
1.0 / 1.1 / 2.0
3.0
3.0.0.2118
MSJT3032.DLL
1.0 / 1.1 / 2.0 / 3.0
3.5
3.51.3328.0
MSJET35.DLL
1.0 / 1.1 / 2.0 / 3.X
4.0 SP8
4.0.8015.0
MSJET40.DLL
1.0 / 1.1 / 2.0 / 3.X / 4.0
ACE 12
12.0.xxxx.xxxx
ACECORE.DLL
1.0 / 1.1 / 2.0 / 3.X / 4.0 / ACE
ACE 14
14.0.xxxx.xxxx
ACECORE.DLL
3.X / 4.0 / ACE
ACE 15
15.0.xxxx.xxxx
ACECORE.DLL
4.0 / ACE
ACE 16
16.0.xxxx.xxxx
ACECORE.DLL
4.0 / ACE
Jetはもともと、1992年にマイクロソフトの内部データベース製品開発プロジェクトであるCirrusというコードネームから生まれた基盤となるデータアクセス技術として開始された。 Cirrusは、プレリリースバージョンのVisual Basicコードから開発され、 Microsoft Access データベースエンジンとして使用されていた。
Access 2.0がリリースされたとき、Access ODBC開発者がJetコードの一部を使用してODBCドライバーを生成したため、Jetはよりコンポーネント化された。 Visual Basic 3.0ユーザーがAccess 2.0で発行された更新されたJetを使用できるようにする更新が提供された[ 1] 。
Jet 2.0は、Microsoft Accessデータベースなどのアプリケーションソフトウェア で使用されるいくつかのダイナミックリンクライブラリ (DLL)としてリリースされた。Windows のDLLは複数のアプリケーションで使用できる共通コードの「ライブラリ」である。これらのアプリケーションのそれぞれは独立して、コードのメンテナンスを使用することができ、共通のライブラリーの下に複数のアプリケーションが使用するコードを保つことによって減少し、アプリケーションの機能れますより少ない開発努力で増加する。 Jet 2.0は、Jet DLL、Data Access Objects (DAO)DLL、およびいくつかの外部ISAM DLLの3つのDLLで構成されていた。 Jet DLLは、アクセスしているデータベースの種類と、要求された内容を実行する方法を決定した。データソースがMDBファイル(Microsoft Access形式)の場合、データを直接読み取り、ファイルに書き込む。データソースが外部の場合、正しいODBCドライバーを呼び出して要求を実行する。 DAO DLLは、プログラマーがJetエンジンとのインターフェースに使用できるコンポーネントであり、主にVisual BasicおよびAccess Basicプログラマーによって使用されていました。 ISAM DLLは、Jetが3つのISAMベースのデータベース(xBase、Paradox、およびBtrieve)にアクセスするためのモジュールであった。 Jet 2.0の後継でリリースされたJet 2.1は、同じデータベース構造を用いるが、ロック戦略が異なるため、Jet 2.0と動作が異なる。
Jet 3.0には、ストレージサイズを削減する新しいインデックス 構造と、高度に複製されたインデックスの作成にかかる時間、インデックスページの読み取りロックの削除、ページ再利用の新しいメカニズム、次の新しい圧縮方法など、多くの機能強化が含まれていました。データベースを圧縮すると、インデックスがクラスター化インデックス形式で保存され、Jetの先読み機能を改善する新しいページ割り当てメカニズム、処理を高速化する削除操作の改善、マルチスレッド (3つのスレッドを使用して先読み、後書きを実行) 、およびキャッシュのメンテナンス)、暗黙のトランザクション(ユーザーがエンジンに手動で開始してデータベースにトランザクションをコミットするように指示する必要はない)、新しい並べ替えエンジン、長い値(メモやバイナリデータタイプなど)は別々のテーブルに保存された。動的バッファリング(これにより、Jetのキャッシュは起動時に動的に割り当てられ、制限はなく、ファーストイン、ファーストアウト (FIFO)のバッファ置換ポリシーから最も最近使用されていない (LRU)バッファー置換ポリシー)[ 2] 。 Jet 3.0では、データベースの複製も可能だった。 Jet 3.0はJet 3.5に置き換えられた。これは、同じデータベース構造を使用するが、ロック戦略が異なるため、Jet 3.0との互換性がない。
Jet 4.0には、多数の追加機能と拡張機能が追加された[ 3] 。
Access 2000からAccess 2010までのMicrosoft Accessバージョンには、Jetデータベースを元のデータベースと同じテーブル構造、データ、およびその他の多くの属性を持つSQL Server上の同等のデータベースに「アップサイズ」(アップグレード)できる「アップサイジング ウィザード」が含まれていた。レポート、クエリ、マクロ、セキュリティはこのツールでは処理されない。つまり、アプリケーションがこれらのJet機能に大きく依存している場合は、手動で変更する必要があった[ 4] 。
Jet 4データベースエンジンのスタンドアロンバージョンは、 Microsoft Data Access Components (MDAC)のコンポーネントであり、Windows 2000以降のすべてのバージョンのWindowsに含まれていた[ 5] 。 Jetデータベースエンジンは32ビット のみであり、64ビット バージョンのWindowsではネイティブに実行されなかった。つまり、ネイティブ64ビットアプリケーション(64ビットバージョンのSQL Serverなど)は、プロキシとして機能する中間の32ビットソフトウェア(WOW64 で実行)を除いて、ODBC、OLE DB 、またはその他の手段を介してMDBファイルに格納されているデータにアクセスできなかった[ 6] 。
バージョン2007以降、AccessにはOffice固有のバージョンのJetが含まれている。当初はOffice Access Connectivity Engine (ACE)と呼ばれていたが、現在はAccessデータベースエンジン と呼ばれている。このエンジンは、以前のバージョンのJetエンジンと下位互換性があるため、以前のAccessバージョンから(.mdb)ファイルを読み書きできた。新しいデフォルトのファイル形式(.accdb)が導入され、複数値フィールド、添付ファイルデータ型、メモフィールドの履歴追跡などの複雑なデータ型など、Accessにいくつかの改善をもたらした。また、セキュリティの変更と暗号化の改善がもたらされ、Microsoft Windows SharePoint Services 3.0 およびMicrosoft Office Outlook 2007との統合が可能になった[ 7] [ 8] [ 9] 。
Microsoft Access 2010のエンジンは、Access 1.0、Access 2.0、Lotus 1-2-3、およびParadoxファイルのサポートを終了した[ 10] 。 64ビットバージョンのAccess 2010とそのACEドライバー/プロバイダーが導入された。これは本質的に64ビットバージョンのJetを提供します。ドライバーはWindowsオペレーティングシステムの一部ではないが、再配布可能として利用できる[ 11] 。
Microsoft Access 2013のエンジンは、Access 95、Access 97、およびxBaseファイルのサポートを終了し、レプリケーションのサポートも終了した[ 12] 。
Microsoft Access 2016のバージョン1608は、xBaseファイルのサポートを復元した[ 13] 。 バージョン1703では、多数のデータ型が導入された[ 14] 。
データアクセス技術の観点から、Jetの利用をマイクロソフトは推奨しないが[ 15] 、Microsoft Accessの一部としてACEを引き続きサポートしている。
互換性
マイクロソフトは、Microsoft Windows向けにのみJetドライバーを提供している。したがって、Jetデータベースを使うサードパーティソフトウェアの動作環境は、Windowsのみとなっていることが多い。MDB Tools 、そしてMDB ToolsをJava向けに大きく拡張されたJackcess というオープンソースプロジェクトがあり、他のプラットフォーム上でJetデータベースを動作させる試みである 。
関連項目
脚注
^ Goodhew (November 1996). “Jet Engine: History ”. 2017年8月8日時点のオリジナル よりアーカイブ。2020年3月28日 閲覧。
^ MS KB article 137039 (2003年12月3日). “New Features in Microsoft Jet Version 3.0 ”. Microsoft. 2008年6月19日 閲覧。
^ MS KB article 275561 (2007年1月29日). “Description of the new features that are included in Microsoft Jet 4.0 ”. Microsoft. 2008年6月19日 閲覧。
^ Microsoft , "Microsoft Access 2000 Data Engine Options", white paper.
^ MS KB article 239114 (2008年5月29日). “How to obtain the latest service pack for the Microsoft Jet 4.0 Database Engine ”. Microsoft. 2010年1月2日 閲覧。
^ Gorm Braarvig. “Access database from SQL 2005/64 ”. 2007年6月18日 閲覧。
^ Jakšić (August 2008). “Developing Access 2007 Solutions with Native C or C++ ”. Microsoft Corporation. 2008年8月26日 閲覧。
^ Andy Baron, Optimizing Microsoft Office Access Applications Linked to SQL Server , November 2006.
^ Microsoft, New features of the Access 2007 file format Archived 2009-12-27 at the Wayback Machine ..
^ Microsoft, Discontinued features and modified functionality in Access 2010 .
^ Adam W. Saxton, Microsoft SQL Server Escalation Services (2010年1月21日). “How to get a x64 version of Jet? ”. 2010年2月6日 閲覧。
^ Microsoft, Discontinued features and modified functionality in Access 2013 .
^ Microsoft, Back by popular demand—dBASE file support in Access
^ Microsoft,
What's New in Access 2016
^ Shirolkar (January 2008). “Data Access Technologies Road Map ”. Microsoft Corporation. 2008年6月19日 閲覧。
参考文献