| 開発者 | CAテクノロジーズ |
|---|---|
| 初回リリース | 1973 |
| 安定リリース | 18.5
|
| オペレーティング·システム | z/OS、z/VM、z/VSE、BS2000/OSD |
| プラットフォーム | メインフレームコンピュータ |
| タイプ | ネットワーク DBMS |
| Webサイト | ca.com/us/products/ca-idms.html |
統合データベース管理システム(IDMS)は、メインフレーム用のネットワークモデル(CODASYL)データベース管理システムです。最初はBFグッドリッチで開発され、後にカリネンデータベースシステム(1983年にカリネットに改名)によって販売されました。1989年以来、この製品はコンピュータアソシエイツ(現在のCAテクノロジーズ)の所有となり 、同社はそれをAdvantage CA-IDMSに改名し、後に単にCA IDMSに改名しました。 2018年にブロードコムがCAテクノロジーズを買収し、名前をIDMSに戻しました。[1]
歴史
IDMS のルーツは、ジェネラル・エレクトリックでチャールズ・バックマン率いるチームによって開発され、1964 年に初めてリリースされた、Integrated Data Store (IDS) と呼ばれる先駆的なデータベース管理システムに遡ります。[2] 1960 年代初頭、IDS は BF Goodrich Chemical Division のコンピュータ グループによって元の形式から引き継がれ、Intermediate System Language (ISL) と呼ばれる言語で書き直されました。[3] ISL は、さまざまなターゲット マシン用のコードを生成できる移植可能なシステム プログラミング言語として設計されました。ISL は実際には ISL で書かれていたため、比較的簡単に他のマシン アーキテクチャに移植でき、それらのアーキテクチャで実行できるコードを生成することができました。
化学部門のコンピュータ グループは、IDMS のコピーを他の会社に販売することを検討していましたが、経営陣から、自分たちはソフトウェア製品ビジネスを営んでいないと言われました。最終的に、ジョン カリネンと契約を結び、権利を購入して製品を販売することになりました。カリネンはBF グッドリッチにロイヤリティを送金する必要があったため、すべてのアドオン製品は、コアの IDMS 製品の動作に必須であっても、別個の製品としてリストされ、請求されました。これにより、顧客が混乱することもありました。
オリジナルのプラットフォームは、GE 235コンピュータと GE DATANET-30メッセージ スイッチング コンピュータでした。後にこの製品は IBM メインフレーム、DECおよびICLハードウェアに移植されました。IBM 移植バージョンは、IBM メインフレームシステム ( System/360、System/370、System/390、zSeries、System z9 ) で動作します。1980 年代半ばには、約 2,500 の IDMS ライセンスが販売されたと言われています。ユーザーには、戦略空軍、Ford of Canada、Ford of Europe、Jaguar Cars、Clarks Shoes UK、AXA /PPP、MAPFRE、Royal Insurance、Tesco、Manulife、Hudson's Bay Company、Cleveland Clinic、Bank of Canada、General Electric、Aetna、英国のBT などがありました。
デジタル・イクイップメント・コーポレーションのPDP-11シリーズのコンピュータで使用するバージョンはDECに売却され、DBMS-11として販売された。1976年にソースコードはICLにライセンス供与され、ICLはソフトウェアを自社の2900シリーズメインフレームで実行できるように移植し、その後、より古い1900シリーズでも実行できるようにした。ICLはカリネンから独立してソフトウェアの開発を続け、移植されたオリジナルの製品をICL 2900 IDMS、拡張バージョンをIDMSXという名前で販売した。この形態で、英国の多くの大規模ユーザーに使用され、その一例としては、国税庁が運営するPay-As-You-Earnシステムが挙げられる。英国政府向けのこれらのIDMSXシステムの多くは、2013年時点でもまだ稼働していた。
1980 年代前半から中頃にかけて、ハードウェアの性能向上とミニコンピュータおよびクライアント サーバーアーキテクチャへの移行により、リレーショナル データベース管理システムの人気が高まり始めました。リレーショナル データベースはCODASYLシステムよりも開発生産性が高く、パフォーマンスの低さを理由とする従来の反対意見は徐々に減少していきました。
Cullinet は、リレーショナル フロントエンドとさまざまな生産性ツールを開発することで、 IBMのDB2やその他のリレーショナル データベースとの競争を続けようとしました。これらのツールには、既存の IDMS 機能である LRF (Logical Record Facility) を利用した Automatic System Facility (ASF) が含まれていました。ASF は、空欄を埋めるタイプのデータベース ジェネレーターであり、テーブルを保守するためのミニ アプリケーションも開発します。
こうした機能が製品の販売寿命を延ばすのに成功したかどうかは判断が難しいが、長期的にはほとんど影響がなかった。IDMS を使い続けたユーザーは、主にその高性能に関心があり、リレーショナル機能には興味がなかった。リレーショナル データベースと、リレーショナルの装いをしたネットワーク データベースの間には大きな違いがあることは、広く認識されていた (リレーショナルモデルの父であるEF Coddによる大々的なキャンペーンのおかげだった)。
1989年、Computer AssociatesはCullinet社を買収[4]した後も開発を続け、1992~93年に完全なSQLを搭載したリリース12.0をリリースしました。CA TechnologiesはCA IDMSの販売とサポートを継続し、後続のリリースではTCP/IPサポート、2相コミットサポート、XMLパブリッシング、zIIP専用プロセッササポート、CA IDMSサーバと組み合わせたWeb対応アクセス、SQLオプション、およびCA IDMS Visual DBAツールによるGUIデータベース管理によってIDMSを強化しました。CA-IDMSシステムは今日でも世界中でビジネスに利用されています。多くの顧客がCA Technologiesのデュアルデータベース戦略の一部であるCA-IDMS SQLオプションを介してアプリケーションをWeb対応にすることを選択しました。
統合データ辞書
IDMS の洗練された機能の 1 つは、組み込みの統合データ ディクショナリ(IDD) です。IDD は主にデータベース定義を維持するために開発されました。IDD 自体が IDMS データベースでした。DBA (データベース管理者) やその他のユーザーは、データ ディクショナリ定義言語 (DDDL) と呼ばれる言語を使用して IDD とインターフェイスしました。IDD は、ADS/Online や IDMS-DC など、IDMS ファミリの他の製品の定義とコードを格納するためにも使用されました。IDD の強みは、拡張可能で、ほぼすべての定義を作成できることです。一部の企業は、社内ドキュメントの開発に IDD を使用していました。
概要
論理データモデル
ユーザーに提供されるデータ モデルは、CODASYLネットワーク モデルです。このモデルの主な構造化概念は、レコードとセットです。レコードは基本的にCOBOLパターンに従い、さまざまなタイプのフィールドで構成されます。これにより、繰り返し項目や繰り返しグループなどの複雑な内部構造が可能になります。
Codasyl モデルで最も特徴的な構造化概念はセットです。数学的なセットと混同しないでください。Codasyl セットは、レコード間の 1 対多の関係 (1 人の所有者、多数のメンバー) を表します。レコードが多数の異なるセットのメンバーになることができるという事実は、ネットワーク モデルを以前の階層モデルと区別する重要な要素です。レコードと同様に、各セットは名前付きセット タイプに属します (異なるセット タイプは異なる論理関係をモデル化します)。セットは実際には順序付けられており、セット内のレコードの順序を使用して情報を伝達できます。レコードは、任意の数のセットの所有者およびメンバーとして参加できます。
レコードには ID があり、この ID はデータベース キーと呼ばれる値で表されます。IDMS では、他のほとんどの Codasyl 実装と同様に、データベース キーはディスク上のレコードの物理アドレスに直接関連しています。データベース キーは、リンク リストやツリーの形式でセットを実装するためのポインタとしても使用されます。論理モデルと物理実装 (これは Codasyl モデルの必須部分ではありませんが、成功した実装すべてに共通する特徴です) 間のこの密接な対応により、データベース検索が効率的に行われますが、データベースの読み込みや再構築などの操作のコストも高くなります。
レコードには、データベース キー、セットの関係に従う、またはキー値を使用した直接アクセスによって直接アクセスできます。当初、直接アクセスはハッシュのみで、これは Codasyl モデルでは CALC アクセスと呼ばれるメカニズムでした。IDMS では、CALC アクセスは内部セットを通じて実装され、同じハッシュ値を共有するすべてのレコードを、各ディスク ページの最初の数バイトを占める所有者レコードにリンクします。
その後、IDMS のいくつかのバージョンでは、BTreeのようなインデックスを使用してレコードにアクセスする機能が追加されました。
ストレージ
IDMS はデータベースを一連のファイルとして整理します。これらのファイルは、いわゆる領域にマッピングされ、事前にフォーマットされています。領域は、ディスク上の物理ブロックに対応するページに分割されます。データベース レコードは、これらのブロック内に保存されます。
DBA は、ファイル内の各領域に固定数のページを割り当てます。次に、各領域に格納するレコードと、その格納方法の詳細を定義します。
IDMS は、データベース全体に特別なスペース割り当てページを散在させます。これらのページは、データベース内の各ページで使用可能な空き領域を追跡するために使用されます。I/O 要件を削減するために、領域の空き領域が 30% を下回った場合にのみ、すべてのページの空き領域が追跡されます。
IDMS データベースにレコードを保存するには、Direct、Sequential、CALC、VIA の 4 つの方法があります。Fujitsu/ICL IDMSX バージョンでは、さらに Page Direct と Random の 2 つの方法が追加されています。
直接モードでは、ターゲット データベース キーはユーザーによって指定され、その DB キーに可能な限り近い場所に格納され、レコードが格納されている実際の DB キーがアプリケーション プログラムに返されます。
順次配置 (インデックス付き順次配置と混同しないでください) では、各新しいレコードが領域の末尾に配置されます。このオプションはほとんど使用されません。
CALC はハッシュ アルゴリズムを使用してレコードを配置する場所を決定します。ハッシュ キーは、レコードの効率的な取得を提供します。CALC 領域全体は、特別な CALC「所有者」レコードで構成されるヘッダーでそれぞれ事前にフォーマットされています。ハッシュ アルゴリズムはページ番号 (物理ディスク アドレスを決定できます) を決定し、レコードはこのページ、またはできるだけこのページに近いページに格納され、CALC セットを使用してそのページのヘッダー レコードにリンクされます。CALC レコードは、単一のリンク リスト (ポインター) を使用してページの CALC 所有者レコードにリンクされます。ページ ヘッダーにある CALC 所有者は、特定のページをターゲットとするすべてのレコードのセットを所有します (レコードがそのページに格納されているか、オーバーフローの場合は別のページに格納されているかに関係なく)。
CALC は、極めて効率的な保存と取得を提供します。IDMS は、1.1 の I/O 操作で CALC レコードを取得できます。ただし、この方法では主キーの値の変更にうまく対応できず、ページ数を拡張する必要がある場合は、コストのかかる再編成が必要になります。回避策としては、領域を拡張してから、各 CALC レコードについて領域を順番にスキャンするアプリケーション プログラムを実行し、次に MODIFY 動詞を使用して各レコードを更新します。これにより、各 CALC レコードは、領域の新しいページ範囲に対して計算された正しいターゲット ページの CALC セットに接続されます。この方法の欠点は、ターゲット ページにある CALC レコードがほとんどなくなることと、各ページの CALC セットをナビゲートすると、多くの IO 操作が必要になる可能性があることです。そのため、パフォーマンスが低下するため、この回避策は極端な状況でのみ使用することをお勧めします。
VIA 配置では、レコードを特定のセット内の所有者の近くに保存しようとします。通常、レコードは所有者と同じ物理ページにクラスター化されます。これにより、そのセットの関係に従ってレコードにアクセスするときに、効率的なナビゲーションが可能になります。(VIA では、レコードを別の IDMS 領域に保存できるため、所有者とは別に保存しながらも、効率性のために一緒にクラスター化されたままにすることができます。IDMSX 内では、レコードは設定されたページ数だけ所有者からオフセットされることもあります)。
ページ ダイレクト (IDMSX のみ) はダイレクト モードに似ていますが、ターゲット データベース ページ番号が指定され、レコードはそのページの CALC チェーンに接続されます。
ランダム (IDMSX のみ) は、CALC アルゴリズムを使用してレコードが保存されるときに、レコードの発生にターゲット ページ番号を割り当てます (レコード内のキーを使用するか、キーなしランダムの場合は、保存の日時を CALC アルゴリズムのシードとして使用します)。
セットは通常、データベース キーをポインターとして使用して、リンク リストとして維持されます。すべてのレコードには、次のレコードへの前方リンクが含まれます。データベース設計者は、所有者ポインターと以前のポインターを含めるかどうかを選択できます (提供されない場合、それらの方向へのナビゲーションは遅くなります)。
その後、IDMS の一部のバージョンには、インデックスを定義する機能が追加されました。レコード インデックスでは、セカンダリ キーの情報からレコードを検索できます。セット インデックスでは、セットのメンバーをキー値で取得できます。
IDMSX ページ ダイレクトおよびランダム配置レコードは、通常、上記のようにレコード インデックスと組み合わせて使用されます。インデックス自体は、ダイレクト (実際には「インデックス ID をキーとして使用する CALC」を意味します) または CALC のいずれかの配置ルールに従います。
リリース履歴(Computer Associates/CA 時代)
ユーザーグループ
IDMS には、CA IDMS または関連製品を使用またはサポートする非営利のユーザー協会があります。次のような団体があります。
- CA IDMS (IUA EIUA) グローバル ユーザー コミュニティ
- AID – Anwendervereinigung IDMS Deutschland
- オーストラリア IDMS ユーザー グループ
- ベネルクスIDMSユーザー協会
- シカゴ IDMS ユーザー グループ
- IDMSケベックユーザー委員会
- ダラス CA-IDMS ユーザー フォーラム
- 欧州IDMSユーザーグループ
- フィンランド IDMS ユーザー グループ
- AUI – IDMS 利用協会 – フランス
- ロッキーマウンテン IDMS ユーザー グループ
- 英国IDMSユーザー協会
参照
参考文献
- ^ 「ブロードコム、CAテクノロジーズを189億ドルの現金で買収へ」2018年7月11日。
- ^ Andrew L. Russell (2011年4月9日). 「Oral-History:Charles Bachman」. IEEE Oral History Network . 2013年9月3日閲覧。
- ^ Karasz, Peter (1977). 「PDP-11 用の中間システム言語」. ACM SIGPLAN Notices . 12 (7): 85–100. doi :10.1145/954639.954646.
- ^ 「CA が Cullinet の合併を完了 (Computer Associates International Inc.、Cullinet Software Inc.)」の情報と結果 | AccessMyLibrary – 図書館のアドボカシーを推進
- ^ findarticles.com
- ^ Computer Associates が OS390 および zOS 向けの CA-IDMS リリース 15.0 を発表 高度な可用性と拡張性の機能により、eBusiness トランザクションに対する顧客の需要増加に対応... [リンク切れ]
- ^ CA の優位性 CA-IDMS データベース r16 for zOS は、パフォーマンス、使いやすさ、柔軟性を最適化します。BT の 1.7 テラバイトの顧客データベースは、年間 100 億件のトランザクションを処理します... [リンク切れ]
- ^ CA IDMS r17 は zIIP エンジンを活用して容量を拡大 最新のデータベース リリースでは、IBM メインフレームの特殊プロセッサの利用における CA のリーダーシップが強調 強化されたアーキテクチャ... [リンク切れ]
- ^ http://www.ca.com/~/media/Files/productbriefs/idms_db_ps_190116.pdf 2011-07-08 に Wayback Machineにアーカイブ[ URL のみの PDF ]
外部リンク
- CA IDMS
