Ingres Database(/ ɪŋˈɡrɛs / ing - GRESS )は、大規模な商用および政府アプリケーションをサポートすることを目的とした、独自のSQLリレーショナルデータベース管理システムです。
Ingresは初期の頃、データベース開発の歴史において重要なマイルストーンでした。Ingresは1970年代初頭にUCバークレーの研究プロジェクトとして始まり、1985年に終了しました。 [ 2 ]この間、Ingresは概念的にはIBMの画期的なSystem Rとほぼ同じでしたが、ソースコードのライセンスがより寛容であること、 UNIX [ 3 ]とVAX/VMS [ 4 ]の両方で 主にDECマシンに基づいていること、クエリ言語としてSQLではなくQUELを提供している点で異なっていました。QUELは当時、エドガー・F・コッドの関係代数(特に構成可能性に関して)により忠実であると考えられていましたが、SQLは解析が容易で、数学の正式な背景を持たない人にとってはそれほど難しくありませんでした。[ 5 ]
ANSIが1986年のSQL標準(SQL-86)の一部としてQUELよりもSQLを優先したため、IngresはOracleなどの競合製品に対して競争力が低下しましたが、将来のIngresバージョンではSQLも提供されるようになりました。[ 6 ]元のIngresテクノロジーからスピンオフした企業は多く、その中には元々Relational Technology Inc.として知られていたActian自体や、元々はTandem Computersによって開発され、現在はHewlett Packard Enterpriseによって提供されているNonStop SQLデータベースなどがあります。
Ingresは、1970年代初頭にカリフォルニア大学バークレー校で始まった研究プロジェクトで、1985年に終了しました。 [ 2 ]バークレー校の他のプロジェクトと同様に、オリジナルのコードは寛容なライセンスの下で最小限のコストで利用可能でした。Ingresは、Sybase、Microsoft SQL Server、NonStop SQLなど、多数の商用データベースアプリケーションを生み出しました。[ 7 ]
1980年代半ばに始まったプロジェクトであるPostgres(Post Ingres)[ 8 ]は、後にPostgreSQLへと進化しました。ACID互換であり、完全なトランザクション処理(すべてのDDLステートメントを含む)が可能で、 Lisogオープンソーススタックイニシアチブの一部です。
1973年、IBMでエドガー・コッドが率いるSystem Rプロジェクトが始まったとき、研究チームは構築中のシステムを説明する一連の論文を発表した。[ 7 ]バークレーの2人の科学者、マイケル・ストーンブレーカーとユージン・ウォンは、これらの論文を読んでその概念に興味を持ち、独自の関係データベース研究プロジェクトを開始した。[ 9 ] [ 10 ] [ 11 ]
彼らはすでに、バークレーの経済学グループのために地理データベースシステムを研究するための資金を集めており、それをインタラクティブグラフィックス検索システムを意味するIngresと呼んでいた。彼らは代わりにこの資金を自分たちの関係プロジェクトに充てることを決め、これを新しい、はるかに大きなプロジェクトの種とした。彼らは元のプロジェクト名を再利用することに決め、新しいプロジェクトはUniversity INGRESとなった。[ 9 ]さらなる資金を得るために、ストーンブレーカーは当時コンピューティングの研究開発の明らかな資金源であったDARPAにアプローチしたが、DARPAと海軍研究局(ONR)の両方が、すでに他のデータベース研究に資金を提供していたため、彼らを断った[ 12 ]。ストーンブレーカーはその後、自分のアイデアを他の機関に紹介し、同僚の助けを借りて、最終的にNSF [ 13 ]と3つの軍事機関、空軍科学研究局、陸軍研究局、海軍電子システム司令部からささやかな支援を得た。
こうして資金を得たIngresは、1970年代半ばに学生と職員からなる交代制チームによって開発されました。IngresはIBM System Rと同様の進化を遂げ、1974年に初期プロトタイプが作成され、その後、コードの保守性を高めるために大幅な改訂が行われました。Ingresはその後、小規模なユーザーコミュニティに配布され、プロジェクトメンバーは蓄積された経験、ユーザーからのフィードバック、新しいアイデアを取り入れるためにプロトタイプを繰り返し書き直しました。この研究プロジェクトは1985年に終了しました。[ 2 ]
Ingresはコンセプト的にはIBMのSystem Rとほぼ同じだったが、 Unixを実行するDECマシン をベースとしていた。[ 3 ] System Rとは異なり、IngresはUnixの人気上昇の恩恵を受け、無料で入手できた。[ 10 ]ソースコードは(テープで)わずかな料金で入手できた。1980年までに約1,000部が配布され、[ 14 ]主に大学に配布された。Ingresのソースコードを使用したバークレー大学や他の大学の多くの学生は、さまざまな商用データベースソフトウェアシステムに取り組んだ。
多くの人がIngresがいつ商用製品になるのかと尋ねた。ラリー・エリソンがOracle DatabaseとIngresを比較していると聞いて、プロジェクトは商用会社を設立し、無料ライセンスと引き換えに大学のコンピュータを借り、データベースをUnixからVAX VMSに移植した。最初の製品リリースは1981年初頭に行われ、顧客の中にはDECやシュルンベルジェが含まれていた。VMS版の需要はUnix版よりもはるかに強かったため、同社はUnix版を放置し、ソフトウェアをUnix版に移植し直さなければならなかった。[ 11 ]
バークレーの学生だったジェリー・ヘルドと後にカレル・ユセフィはタンデム・コンピュータに移り、そこでノンストップSQLへと発展するデータベースシステムを構築した。タンデムのデータベースシステムは、イングレス技術の再実装であった。[ 15 ]このシステムは、並列コンピュータ上で効率的に動作するシステムへと発展した。つまり、分散データ、分散実行、分散トランザクション(最後のものはかなり難しかった)の機能を備えていた。システムのコンポーネントは1970年代後半に初めてリリースされた。1989年までに、このシステムはクエリを並列実行できるようになり、マシンのプロセッサ数にほぼ比例してスケーリングする数少ないシステムの1つとして、この製品はかなり有名になった。既存のノンストップSQLサーバーに2つ目のCPUを追加すると、パフォーマンスがほぼ正確に2倍になる。タンデムは後にコンパックに買収され、2000年に書き直しが開始され、現在この製品はヒューレット・パッカード・エンタープライズにある。
1980年代初頭、IngresはOracleと真っ向から競合していたが[ 16 ]、IBMがSQLを支持したことでOracleが有利になった[ 17 ] 。両製品はハードウェアに依存しないリレーショナルデータベース実装のリーダーとして広く認識されており、機能、パフォーマンス、市場シェア、価格設定は同等で、多くの評論家はIngresを(おそらくわずかに)優れた製品だと考えていた。しかし、1985年頃からIngresは着実に市場シェアを失っていった。その理由の一つはOracleの積極的なマーケティングであり、もう一つはSQLが好ましいリレーショナルクエリ言語として認識されるようになったことである。Ingresは当初QUELという別の言語を提供しており、SQLへの移行(Ingresバージョン6で提供)には約3年かかり、競争で貴重な時間を失ってしまった。
バークレー在学中にこのプロジェクトの主任プログラマーを務めたロバート・エプスタインは、イングレス・プロジェクトの他の学生であるポーラ・ホーソーンとマイケル・ウベルと共にブリットン・リー社[ 18 ]を設立し、後にエリック・オールマンが加わった。その後、エプスタインはサイベースを設立した。サイベースは1980年代から1990年代にかけてしばらくの間、 (オラクルに次ぐ)第2位の製品であったが、1997年にインフォームクスが突如として現れ、その座を奪った。サイベースの製品ラインは1992年にマイクロソフトにもライセンス供与され、マイクロソフトはそれをマイクロソフトSQL Serverとしてブランド変更した。この関係は1990年代後半に悪化し、現在ではSQL Serverがサイベースを大きく上回る売上を記録している。
いくつかの企業がIngresのソースコードを使用して製品を開発した。最も成功したのは、1980年にStonebrakerとWong、そしてもう一人のバークレー教授であるLawrence A. Roweによって設立されたRelational Technology , Inc. (RTI)という会社だった。[ 19 ] RTIは1980年代後半にIngres Corporationに社名変更した。同社は、 DEC VAXコンピュータの商用オペレーティングシステムであるDEC VAX/VMSにコードを移植した。また、データベースの作成と操作のためのフロントエンドツール(レポーターライター、フォームの入力と更新など)とアプリケーション開発ツールも開発した。時間の経過とともに、ソースコードの大部分は機能を追加(たとえば、複数ステートメントトランザクション、SQL、Bツリーアクセス方式、日付/時刻データ型など)し、パフォーマンスを向上させる(たとえば、コンパイル済みクエリ、マルチスレッドサーバーなど)ために書き直された。
プロジェクト・ジュエルは、抽象データ型の初期プロトタイプでした。イングレスは、「レインボーブック」B2認証データベースとして認定された最初のデータベースであり、そのため、米国の国立研究所(ロスアラモス、リバモア、サンディア)によって核兵器設計の保存に採用されました。CIAでも使用されました。高度に機密性の高いエアギャップシステムのサポートニーズにより、DARPAネットワーク上でホストされる問題解決のためのエキスパートシステムが開発されました。
DECがIngresへの投資計画から撤退した後、[ 20 ]同社は1990年11月にASK Corporationに買収された。創業者たちはその後数ヶ月のうちに会社を去った。
1994年、ASK/IngresはComputer Associatesに買収された。[ 21 ] [ 22 ]
2000年2月、Computer AssociatesはLinux版Ingres II 2.0の一般提供開始を発表した。SDKに含まれるコンポーネントに加え、フルバージョンには以下のようなモジュールが多数含まれている。
Ingresバージョン6.4とIngres IIは、主に大学やその他の公共機関のデータセンター運用において、長年にわたり広く利用されてきたデータベース管理システム(DBMS)である。ライセンス費用が低かったため、しばらくの間はOracleの支配に抵抗することができた。
Ingres IIは、ライセンス料が低いことに加え、例えばOracleに比べてリソース要件が低いという利点があり、そのため小型のマシンでも使用できた。一方、操作性がやや難しかったこと、動作するプラットフォームの種類が少なかったこと、Ingres対応アプリケーションが少なかったことなどが欠点だった。
Ingresの性能が他の大規模DBMSと同等であるという理由で、Computer Associatesはライセンス料を大幅に引き上げ、Oracleに対する重要な優位性を失った。Computer Associatesのマーケティング不足とそれに伴う販売不振、そしてこのシステムを熟知し、必要に応じて頼れるIT技術者の不足も、市場シェア低下の一因となった。その結果、Ingresの導入はOracleの導入に取って代わられるケースが増え(2004年時点で全世界で約1万5000件の導入にとどまった)、
2004年、Computer Associates(CA)は、オープンソースライセンスであるCA Trusted Open Source License(CATOSL)の下でIngres R3をリリースしました。このコードには、DBMSサーバーとユーティリティ、文字ベースのフロントエンド、およびアプリケーション開発ツールが含まれています。つまり、Windows 4GL GUIベースの開発環境であるOpenROADを除くすべてのものが同梱されていました。
2005年11月、ガーネット&ヘルフレッチ・キャピタルは、コンピュータ・アソシエイツと提携し、イングレス・コーポレーションという新会社を設立した。同社は、イングレス、OpenROAD、および接続製品に対するサポートとサービスを提供した。
2006年2月、Ingres CorporationはGNU一般公衆ライセンスの下でIngres 2006をリリースした。Ingres 9.3は2009年10月7日にリリースされた。[ 23 ]これはLinuxとWindowsのみでの新規アプリケーション開発を対象とした限定リリースだった。[ 24 ]
同社はオープンソースコミュニティに注力し、以下の取り組みを行った。
Ingres 10 は、以前のバージョンからのアップグレードをサポートするフルリリースとして、2010 年 10 月 12 日にリリースされました。[ 31 ] 32 ビットおよび 64 ビットLinux、および 32 ビットMicrosoft Windowsで利用可能でした。[ 32 ]
2010年11月、ガーネット&ヘルフレッチ・キャピタルは、イングレス社の残りの20%の株式を取得した。[ 33 ]
2011年9月22日、Ingres CorporationはActian Corporationに社名を変更し、Vectorwise /Vector、Btrieve / Pervasive PSQL /Zen、OpenROAD 、 Ingresデータベースなどのデータ管理および統合技術に注力するようになりました。
ActianはHCL TechnologiesとSumeru Equity Partnersによって3億3000万ドルで買収されました。[ 34 ] 2021年、HCL TechnologiesはActianの単独所有者となり、ActianはHCLSoftwareのデータおよび分析部門となりました。
2017年4月18日、Actian Xは、トランザクション、分析、ハイブリッドデータワークロードを単一のデータベースから管理するように設計された、初のネイティブ統合型ハイブリッドデータベースとして発表されました。[ 35 ]
Actian X は、Ingres と Vector の機能と能力を組み合わせたもので、列ベースのストレージ、ベクトル処理、マルチコア並列処理などが含まれます。[ 36 ]
2024年、ActianはActian Xブランドを廃止し、そのすべての機能をIngres 12.0に統合することを決定しました。
Actianは、 OpenVMSを実行するHP Itaniumシステム(2025年12月31日)およびOracle Solaris 10/11.3(2027年1月31日)のベンダーによるサポート終了決定に伴い、これらのプラットフォーム上のIngresは「ベストエフォートのみ」のサポートモデルに移行すると発表しました。これは、オペレーティングシステムまたはハードウェアに関連する問題が完全に解決されない可能性があることを意味します。顧客は、継続的な完全なサポートとメンテナンスを確保するために、サポートされているプラットフォーム(特にDBMSワークロードにはLinux、必要な場合はOpenVMS x86)に移行することを推奨します。[ 49 ]
特定の製品バージョンで利用可能なサポートの種類に関する詳細については、Actian Ingresライフサイクル日付ページ(https://communities.actian.com/s/supportservices/lifecycle-dates/actian-ingres?language=en_US )をご覧ください。
Actian Ingres 11.2で利用可能な主な機能:
Ingresはシングルノードのリレーショナルデータベース管理システムであり、そのため「すべてを共有する」システムです。
Ingresはディスク指向のDBMSであり、デフォルトではn進ストレージモデル(NSM)[ 51 ] 、別名行ストアを採用しています。
しかし、Actianは最新バージョンのIngres(Actian X)にカラム型ストレージを組み込み、OLAPタスクのパフォーマンスを向上させています。Actian Xには、従来のIngresと、Actian Vectorと同じエンジンであるX100の2つのストレージエンジンがあります。
現在「Actian X Hybrid Database」というブランド名が付けられていますが、「ハイブリッド」という用語は、ハイブリッドストレージモデル(つまり、行と列の両方)を採用することでOLTPとOLAPの両方のタスクを実行できる能力を指しており、ハイブリッドストレージアーキテクチャを持っているという意味ではありません。[ 52 ]
Ingres はデフォルトで ISAM (Index Sequential Access Method) をインデックス データ構造として選択しますが、オプションとして B+ ツリー、ハッシュ テーブル、および R-ツリーも提供します。Actian X では、X100 テーブルでのみ利用可能な他の 2 つのオプションもあります。[ 54 ]
Ingresは、マルチバージョン並行性制御(MVCC)、決定論的並行性制御、および2相ロック(デッドロック検出)を使用しています。[ 55 ]
Ingres は、一貫性を優先するものから並行性を最大化するものまで、Serializable、Repeatable Read、Read Committed、Read Uncommitted の 4 つの分離レベルをサポートしています。Serializable はデフォルトの分離レベルであり、最も強力な一貫性保証を提供します。[ 56 ]
Ingres は、ハッシュ結合、ソートマージ結合、ネストループ結合アルゴリズムによる結合をサポートしています。クエリ最適化ツールは、クエリの分析に基づいて使用する結合アルゴリズムの種類を決定します。ネストループ結合は、相関変数とテーブル名がランダムな順序で任意に使用される非連結クエリで最もよく見られます。結合句でどちらのテーブルにも制約がなく、結合される行が空間的に連続している場合、クエリ最適化ツールはソートマージ結合またはハッシュ結合を選択する可能性が高くなります。[ 57 ]
Ingresはクライアント(クライアントインストール)またはサーバー(サーバーインストール)としてインストールできます。クライアントには関連付けられたデータベースはありませんが、サーバーインストールで作成されたデータベースにアクセスできます。
一般的なサイトでは、サイトの中核となるIngresサーバーとやり取りする作業員用のコンピューターに、Ingresクライアントをインストールします。
「インスタンス」という表現は「インストール」と同義であることに注意してください。
インストールとは、サーバープロセス、共有メモリ、プロセス間通信のためのセマフォ、そしてホストまたはインストール障害発生時のトランザクション処理や復旧に使用されるディスクファイルの集合体と考えることができる。
インストールは、インストールIDによって命名されることがよくあります。この識別子は、大文字と小文字を区別する2文字で構成され、先頭はアルファベット1文字です。デフォルトは「II」です。インストールIDは、Ingresサーバーがリッスンするポートを計算するために使用されます。たとえば、「II」は、サーバーがポート21064とその7つ後のポートでリッスンしていることを示します。
ホスト(実機または仮想マシン)には複数のIngresインストールが存在する可能性がありますが、クライアントとコンポーネントが正しいインストールとやり取りできるように、各インストールには一意の識別子が必要です。
1つのインストールで複数のインストールIDを使用できます。典型的な例としては、サーバー上で8つ以上のプロセスを実行する必要がある場合が挙げられます。また、Ingresデータベースサーバー(iidbms)とIngres通信サーバー(iigcc)は慣例として同じインストールIDを使用しますが、必ずしもそうする必要はありません。
インストール先では、いくつかの重要なパスを指定する必要があります。これらのパスは再インストールしない限り変更されないため、慎重に選択してください。
パスは以下の表に示されています。「II_」という接頭辞は、これらのパスが「II」インストール用であることを示すものではありません。インストールIDに関係なく、各インストールにはそれぞれ独自の変数セットがあります。
Ingresのインストール(またはインスタンス)は、複数のデータベースをサポートでき、各データベースはインストールに登録されている任意のユーザーが所有できます。インストールでは、複数のデータベースに同時にアクセスできます。データベースの数は設定可能です。ただし、これは同時に使用できるデータベースの数を制限するだけであり、実際にはもっと多くのデータベースを作成できます。
Ingresサーバーをインストールすると、「iidbdb」と「imadb」というデータベースが作成され、ユーザー「$ingres」が所有します。iidbdbデータベースは「マスターカタログデータベース」とも呼ばれ、インストール自体を管理するための多くの特別なテーブルが含まれています。imadb(管理アーキテクチャデータベース)データベースにも、インストールの管理に使用される登録済みオブジェクトが含まれています。
特に注目すべき点は、データベースのサイズが事前に設定されていないことです。インストールされた各データベースは、ディスクの空き容量が許す限り、サイズを拡張できます。
Ingresは以下をサポートします:
Postgresプロジェクトは、リレーショナルモデルの既存のデータベース管理実装の限界に対処するために1980年代半ばに開始されました。その主な限界は、ユーザーがより単純なドメインの組み合わせである新しいドメイン(または「型」)を定義できないことでした(「ドメイン」という用語の説明については、リレーショナルモデルを参照してください)。このプロジェクトでは、一度だけ書き込み可能なメディア(光ディスクなど)の組み込み、大容量ストレージ(データを削除しないなど)の使用、推論、オブジェクト指向データモデルなど、他のアイデアも検討されました。また、データベースとアプリケーションプログラム間の新しいインターフェース(「ポータル」、時には「ファットカーソル」と呼ばれる)も実験的に導入されました。[ 58 ]
その結果生まれたプロジェクト「Postgres」は、完全な型サポートを追加するために必要な最小限の機能を導入することを目的としていました。これには、型を定義する機能だけでなく、それまで広く使われていたものの、完全にユーザー自身で管理していた関係性を完全に記述する機能も含まれていました。Postgresでは、データベースが関係性を「理解」し、ルールを使って関連テーブルから自然な方法で情報を取得できるようになりました。
1990年代、ストーンブレーカーはPostgresを商業化するためにIllustraという新会社を設立した。この会社と技術は後にInformix Corporationに買収された。
リファレンス マニュアルは 4 つのパートに分かれています。Quel では、INGRES 内で使用されるコマンドと機能について説明します。Unix では、...
上で動作するVAX-II向けに、リレーショナル・テクノロジー社が最新のDBMSを提供。カリフォルニア州バークレー発 ― リレーショナル・テクノロジー社(RTI)は、VAX向けIngresを発表した。
(マイケル・ストーンブレーカー著)...バークレーでの在職期間、1986年のPostgres(Post INGRES)。
University INGRES には、端末モニタ、EQUEL C、GeoQUEL の 3 つのクライアント アプリケーションがありました。
さらなる支援を求めて、ストーンブレーカーは国防高等研究計画局(DARPA)に接触した。
DECは、この助成金の下で資金提供を受けた研究者に機器を提供しました...
ユセフィ(タンデム・コンピュータ社)は、後にノンストップSQLへと発展するシステムを構築した。タンデムのデータベースシステムは、イングレス技術の再実装であった。
ます。
その後Britton-Lee Incorporated、そしてSybaseを共同設立した。
ユージン・ウォン...1980年、彼は(マイケル・ストーンブレーカーとローレンス・A・ロウと共に)リレーショナル・テクノロジー社を共同設立し、後にINGRESコーポレーションに社名変更した。
rdbmsfinancing20070612が呼び出されましたが、定義されていません (ヘルプ ページを参照してください)。ファット カーソル
の最初の行に対して動作するため、
位置指定 UPDATE/DELETE ステートメントを発行する前に、sp_cursor SETPOSITION を使用してカーソルの位置を指定する必要があります。