InterBaseは、エンバカデロ・テクノロジーズが開発・販売している関係
[データベース管理システム]です。その特徴として、他の
[データベース管理システム]]と比較して、非常に小さなフットプリントであること、そして必要最小限の管理で運用可能であることが挙げられます。また、マルチ・ジェネレーション・アーキテクチャーを採用している点も特徴の一つです。InterBaseは、Linux、Windows、macOSといった様々な[[オペレーティングシステム]で動作します。
テクノロジー
InterBaseは多くの点で標準的なRDBMSの機能を備えています。
SQL-92互換の
関係データベースであり、JDBC、ODBC、
ADO.NETなどの標準インターフェースをサポートしています。しかし、他の製品とは異なる特徴的な機能もいくつか存在します。
小さなフットプリント
InterBase 7サーバの完全インストールに必要なディスク容量は、わずか40MBです。これは、競合する多くのデータベースサーバのクライアントアプリケーションのインストールに必要なディスク容量よりも小さいです。また、サーバのユーザーがアイドル時のメモリ使用量も極めて小さく、InterBaseのクライアントに必要な最低限のディスク容量は、わずか400KBです。このコンパクトさが、組み込みシステムなどでの利用を容易にしています。
最小限の管理
InterBaseは、通常は常勤のデータベース管理者を必要としません。この管理の容易さから、組み込み用データベースとしても適しており、例えば、
M1エイブラムス戦車の中央射撃管制システムにも使用されたと言われています。
マルチ・ジェネレーション・アーキテクチャー
InterBaseの
並行性制御の中核となるのが、マルチ・ジェネレーション・アーキテクチャーです。これは、InterBaseのマルチバージョン並行処理制御の実装を指します。InterBaseはこの技術を使用した2番目の商用データベースです。ちなみに最初の商用データベースは、DECのRdb/ELNでした。
データベースでは、複数のユーザーが同時にデータにアクセスする場合、データの整合性を保つために
並行性制御が必要です。伝統的なデータベースでは、ロックという仕組みを使ってこれを実現していました。例えば、あるユーザーがデータを変更しようとすると、そのデータはロックされ、他のユーザーは変更が完了するまでそのデータにアクセスすることができません。しかし、このロックは、パフォーマンスを低下させる原因となることがあります。
InterBaseでは、この問題を解決するために、マルチバージョン並行処理制御を採用しています。これは、各レコードに対して複数のバージョンを保持することで、ロックを使用せずに、複数のトランザクションが同時にデータにアクセスできるようにする技術です。例えば、ユーザーAがデータを読み込んでいる間に、ユーザーBが同じデータを変更しようとした場合、ユーザーAは古いバージョンのデータを、ユーザーBは新しいバージョンのデータを参照することができます。これにより、ロックによる待ち時間を減らし、パフォーマンスを向上させることが可能になります。
InterBaseでは、読み込みは書き込みをブロックしません。データベースの各レコードは複数のバージョンとして存在することができ、トランザクションごとにデータの独立したビューを提供します。これにより、真のスナップショット・トランザクション・アイソレーション(独立性)を比較的シンプルに実装できます。InterBaseのスナップショット・アイソレーションを持つトランザクションは、トランザクションが開始された時点のデータベースの状態を正確に示します。この機能は、アクティブなデータベースのバックアップや、長時間のバッチ処理などに非常に便利です。
InterBaseは
ロールバックの実装にも、マルチ・ジェネレーション・アーキテクチャーを利用しています。多くのデータベースサーバは
ロールバック機能にログを使用しますが、InterBaseでは
ロールバックが瞬時に近く、失敗することもありません。これにより、システムの信頼性と安定性が向上します。
難点
一方で、マルチ・ジェネレーション・アーキテクチャーには、特定の実装が困難な操作もあります。例えば、
SQLのCOUNT文は、インデックスが利用可能であっても、現在のトランザクションの独立性に基づいてレコードを全て確認する必要があるため、従来の方式と比較して実行速度が遅くなる場合があります。
歴史
初期
InterBaseのアイデアは、ジム・スターキー氏がDECのDATATRIEVEネットワークデータベース製品に従事していた時に生まれました。当時、多数のユーザーによる同時変更を管理するシステムでは、ロックが大きな問題となっていました。スターキー氏のアイデアは、この問題を単純化するものでした。しかし、DECはRdb/VMS製品の開発を始めたばかりで、この縄張り争いにより、スターキー氏は退職を決意しました。
スターキー氏は、MITのリード氏のシステムを参考に、独自にマルチバージョン並行処理制御のアイデアにたどり着きました。このアイデアは、Prime Computer社によるページ・レベルのスナップショットをサポートするデータベース・システムからヒントを得たものです。この機能は、読み取り側が書き込みをブロックせずに、データベースの一貫したビューを取得できるという非常に便利な特徴として、スターキー氏の興味を惹きました。
開発と販売
スターキー氏は、
アポロコンピュータが
UNIXマシンで稼働するデータベースを探していることを聞きつけ、開発資金の提供に応じることにしました。
1984年にグロトン・データベース・システムを設立し、
1986年にInterBaseとしてデータベースを発表しました。しかし、
アポロコンピュータは企業再編により
ソフトウェア事業から撤退しましたが、その頃にはInterBaseは大きな収益を上げていました。
1986年から
1991年にかけて、InterBaseは段階的に
アシュトンテイトに売却されました。
アシュトンテイトはdBASEのメーカーでしたが、経営危機に陥り、
1991年に
ボーランドに買収されました。InterBaseは
ボーランドの一部として取得されました。
オープンソース化と分裂
1998年以降、
ボーランドも経営危機に見舞われました。ParadoxやdBASEなどのデータベース製品が次々と売却される中、InterBaseも
1999年に開発が中断しました。
2000年初頭に
ボーランドはInterBaseをオープンソース化すると発表しましたが、新会社の経営陣との条件が折り合わずスピンオフは中止されました。InterBase 6がオープンソースとして公開され、これを基にFirebirdとしてオープンソース開発が続けられています。しかし、その後
ボーランドがオープンソース戦略を撤回し、新バージョンのInterbase 6.5を販売したため、両者は別プロジェクトとして分岐してしまいました。
最近の動向
2002年末、
ボーランドはInterBase 7を発売し、SMPサポートやサーバモニタリングのサポートを強化しました。その後も、2003年に7.1、2004年に7.5、2005年に7.5.1とバージョンアップを重ねました。2006年にはInterBase 2007が発表され、ジャーナリングによるポイントインタイムリカバリー、増分バックアップ、バッチ文による操作、新しいユニコード文字エンコード、新しいODBCドライバーなどの新機能が追加されました。2007年にはMac OS X版が登場し、2008年にはエンバカデロ・テクノロジーズがInterBase SMP 2009日本語版を発表し、データベースとカラムレベルの暗号化、OTWネットワークの暗号化、バックアップファイルの暗号化などの機能が追加されました。また、組み込み用としてTo-Go Editionが追加されました。
2011年以降も、InterBase XE、XE3、XE7、2017、2020とバージョンアップが続けられ、64ビットネイティブ対応や、ODBCドライバの改善、コンカレントなインデックス作成、変更ビュー、テーブルスペースのサポートなど、様々な新機能が追加されています。最新のInterBaseでは、再帰CTEをサポートするなど、
SQLの機能も拡張されています。
InterBaseは、そのコンパクトさ、管理の容易さ、マルチ・ジェネレーション・アーキテクチャーによる高い
並行性制御能力により、様々な分野で活用されています。継続的な進化を続け、最新のニーズに応え続けています。