Jetデータベースエンジン(ジェットデータベースエンジン)とは | 意味や読み方など丁寧でわかりやすい用語解説
Jetデータベースエンジン(ジェットデータベースエンジン)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
ジェットデータベースエンジン (ジェットデータベースエンジン)
英語表記
Jet database engine (ジェットデータベースエンジン)
用語解説
Jetデータベースエンジンとは、マイクロソフトが開発したデータベースエンジンであり、特にMicrosoft Accessの標準エンジンとして広く利用されたことで知られている。システムエンジニアを目指す上で、データベースの基本的なアーキテクチャの一つであるファイルベースのデータベースを理解する上で、Jetはその代表的な事例となる。Jetは、大規模なサーバークライアント型のデータベース管理システムとは異なり、サーバープロセスを必要とせず、アプリケーションに直接組み込まれて動作するライブラリ形式のエンジンである。この特徴により、小規模なアプリケーションやデスクトップアプリケーションにおいて、手軽にデータベース機能を実現するための手段として重宝された。データベース全体が単一のファイル(拡張子は.mdbや、後のバージョンでは.accdb)として管理されるため、アプリケーションと共にこのファイルを配布するだけでデータベースの展開が完了するという利便性を持っていた。
Jetデータベースエンジンのアーキテクチャは、共有ファイル型データベースに分類される。これは、データベースファイルがファイルサーバーなどの共有場所に置かれ、複数のクライアントコンピュータ上のアプリケーションが同時にそのファイルにアクセスする形態を指す。各アプリケーションは自身のメモリ上でJetエンジンを動作させ、ファイルへの読み書きを行う。この仕組みは、専用のデータベースサーバーを構築・管理する必要がないため、導入コストが低く、開発も容易であるというメリットがある。しかしその一方で、複数のユーザーからの同時アクセスが増加すると、ファイルロックの競合が頻発し、パフォーマンスが著しく低下するというデメリットも抱えている。また、データの整合性を保つための排他制御は、ファイルシステムレベルのロックに依存する部分が大きく、高度なトランザクション管理や堅牢性においてはサーバークライアント型に及ばない。
Jetエンジンは、内部的にISAM (Indexed Sequential Access Method) というデータアクセス方式を基礎としている。これは、データレコードを特定の順序で格納しつつ、高速な検索を可能にするためのインデックスを別途保持する仕組みである。このISAMの仕組みの上に、SQLクエリを解釈・実行するクエリプロセッサ、データの整合性を保証するためのトランザクション処理機能、そしてデータへのアクセスを制御するセキュリティ機能などが実装されている。Jetが処理するSQLは、標準SQLに準拠しつつも、一部独自の拡張構文を含んでいた。トランザクション機能により、一連のデータベース操作を一つの処理単位としてまとめ、すべて成功した場合のみ結果を確定(コミット)し、途中で失敗した場合には処理前の状態に戻す(ロールバック)ことが可能であった。
Jetデータベースへのアクセス方法としては、主にDAO (Data Access Objects) とADO (ActiveX Data Objects) という二つの技術が用いられた。DAOは、Jetデータベースをネイティブに操作するために設計されたオブジェクトモデルであり、特にVisual Basicからの利用において高いパフォーマンスを発揮した。一方のADOは、OLE DBという統一されたインターフェースを介して様々なデータソースにアクセスするための、より汎用的な技術である。Jetデータベースへは、Microsoft OLE DB Provider for Jetを介してADOからアクセスすることができた。ADOの登場により、開発者はJetだけでなくSQL Serverなど他のデータベースとも比較的容易に連携できるアプリケーションを構築できるようになった。
Jetデータベースエンジンは、バージョンアップを重ねて機能強化が図られてきた。特に重要なバージョンとしてJet 4.0が挙げられる。これはMicrosoft Access 2000と共にリリースされ、Unicodeに完全対応したほか、トランザクション処理の改善や安定性の向上が図られ、より信頼性の高いエンジンとなった。しかし、技術の進化と共に、Jetが持つアーキテクチャ上の限界も明らかになっていった。インターネットの普及に伴い、Webアプリケーションのような多人数同時アクセス環境が一般的になると、Jetの共有ファイル型アーキテクチャでは性能要件を満たすことが難しくなった。そのため、よりスケーラビリティの高いSQL Serverなどのサーバークライアント型データベースへの移行が進んだ。
現在、Jetデータベースエンジンは、その後継であるACE (Access Connectivity Engine) にその役割を引き継いでいる。ACEはOffice 2007以降のAccessで採用されており、64ビット環境への対応や新しいデータ型のサポートなど、現代的な改良が加えられている。Jetで培われたファイルベースで手軽に利用できるデータベースというコンセプトは、現代のSQLiteやSQL Server Compactといった組み込みデータベースにも通じるものがあり、技術の系譜を理解する上で重要な存在である。レガシーシステムの中には依然としてJetデータベースを利用しているものも存在し、それらの保守や新しいシステムへの移行は、システムエンジニアが直面する課題の一つでもある。