コラム・特集

3.3 インフォメーション・マネジメント・システム(lMS)

IEハンドブック
第12部 コンピュータと情報処理システム

第3章 データベース管理

3.3 インフォメーション・マネジメント・システム(lMS)

概 念
IBMの IMSは階層型データ・モデルに基づいている。IMSでは2種類のデータベース,すなわち,物理データベース(physical date base)と論理データベース (logical date base)を区別しなければならない。物理データベースの論理構造は,セグメント(すなわちレコード) ・タイプの階層構造である論理データベースの論理構造もまたセグメント・タイプの階層構造であるが,このセグメント・タイプのそれぞれは物理データベースの論理構造内に在存するようにあらかじめ定義されている。したがって, IMSでは論理データベース無しに物理データベースだけを持つことができるが,反対はできない。IMSデータベースは,物理データベースであれ論理データベースであれ,階層構造内に定義されたセグメント・タイプのセグメント(すなわちレコード )・オカレンスからなる。物理データベースと論理データベースの主な違いは,前者の場合に,いくつか物理的記憶技法の1つを選択しなければならないことである。選択された技法によって階層構造内のセグメント・タイプのオカレンスが物理的に互いにどのように記憶されるカが決まる。論理データベースの階層構造は,セグメント・タイプについて1つ以上の物理データベースの階層構造から定義されているので,論理データベース内のセグメント・オカレンスの相対的な物理的配置に関して選択の余地はない。

物理データベースの階層構造において,2つのセグメント・タイプ間の親子関係は,物理的親子関係と呼ばれ,物理的親(physical parent)と物理的子(physical child)をもつ,論理データベースの階層構造は,物理的親子関係を含みうるが,論理的親子関係の観点からも定義される。物理的親や物理的子とは違って,論理的子セグメント・タイプのセグメント・オカレンスの論理的親であるセグメント・オカレンスのトラックを維持するためにポインターが用いられる セグメント・タイプはたかだか1つの論理的親と1つの物理的親をもつことができる。

以上の諸概念を以下の例で示す。図表12.3.2a と12.3.2bは,2つの物理データベースの論理構造(すなわち,階層チャート:hierarchy chart)を表わしている。

図表12.3.2Cの破線は,PARTとPATDS間の論理関係を表わしている。PARTDSはPARTの論理的親であり,SUPPLIERは PARTの物理的親である。論理関係は単方向(PARTのオカレンスのそれぞれがPARTDSの関連するオカレンに対してポインターをもつ)の場合も双方向(さらに,PARTDSの オカレンスのそれぞれから,PARTの関連するオカレンスにもポインターをもつ) の場合もある。この論理関係は,階層チャートが図表12.3.2dで示される論理データベースを宣言するのに利用することができ, PARTと PARTDSというセグメント・タイプの結びつきの基礎として役立つデータ操作は, 図表12.3.2dの階層チャートに基づいて進めることができる。

物理的親子関係に加え論理的親子関係を許容する根拠は,物理データベース間につくられた関係を認めることである。このことによってIMSが限られた形ではあるがネットワーク化を可能にするし,冗長性を少なくすることにもなる。もし,図表12.3.2dの階層チャートが, 論理データベースではな,物理データベースに対するものであるなら,冗長性がより大きくなろう。ある部は多数の部品メーカーが供給するであろうから,その部品に対するPARTセグメント・タイプのオカレンスが多数存在するであろう。これらのオカレンスのそれぞれはPNAMEフィールドについて同じ値をもつ同じことは PARTNO,COLOR,WEIGHTフィールドについてもいえる。 図表12.3.2Cに示した論理的親子関係は,PARTオカレンスに対応するPARTDSオカレンスを示すポインターを利用することによって冗長性を少なくする。

物理的記憶編成(Physical Storage Organizations)
IMSではユーザーは,各物理データベースに対する物理的記憶編成を明らかにする必要がある。4つの主要なタイプの記憶編成が許されている。

1.階層型順アクセス法 (hierarchical sequential access method :HSAM)
2.階層型索引付き順アクセス法 (hierarchical inde xed sequential access method:HISAM)
3.階層型直接アクセス法(hierarchical direct access method :HDAM)
4.階層型索引付き直接アクセス法(hierarc hical indexed direct access method:HIDAM)

これらは,記憶にセグメントを写像するための異なる方法および「データベース・レコード」にアクセスするための異なる方法を示している。

IMSのデータベース・レコードと前に述べたCODASYLのレコードの概念とを混同してはならない CODASYLのレコードはIMSのセグメントと同じである。IMSのデータベース・レコードは,ル ート・セグメント(root segment:階層内の最高次のセグメント・タイプのオカレンス)とすべての派生セグメント(descendant segment)からなる。たとえば,図表12.3.2aの階層構造のデータベース・レコードは,SUPPLIERのオカレンスとそれに対応する。すべてのPARTのオカレンスとからなる。図表12.3. 3bは,図表12.3.3aの階層チャートに対する2つのデータベース・レコードを示している(小文字はそれぞれ1つのセグメントを示す)。

HSAMの場合には ,データベース・レコ ードのセグメント は物理的な隣接性によって関係づけら れており,データベース・レコードは順編成である。 図表12.3.4は, 図表12.3.3bの2つのデータベース・レコードのセグメントの物理的な位置を示している。HSAMの場合には,データベース・レコード はシーケンシャル・アクセス (逐次呼出し)される。

HISAMは,プライマリー領域とオーバーフロー領域という2つの記憶領域を利用する。プライマリー領域内では,物理的な隣接性によってデータベース・レコードのセグメントを関係づけようとされる。しかし,データベース・レコ ードのためにプライ マリー 領域内に割り当てられたスペー スは限られている。すべてのセグメントが割り当てられたプライマリー・スペースにはいらない場合には,残りのセグメントは,オーバーフロー領域に記憶される。これらのオーバーフローしたセグメントと,プライマリー領域内の適当なデータベース・レコードとを結びつけるためにポインターが使われるプライマリー領域内では,データベース・レコードは,(ルート・セ グメント・タイプ内のキー・フィールドに基づいて)シーケンシャルに記憶される。データベース・レコードは,キー値のインデックスによってアクセスされる。図表12.3.5は,図表12.3.3 bの2つのデータベース・レコードのHISAM編成を示している。

HDAMによって用いられている物理的編成では,データベース・レコード内のセグメントはポインターによって関係づけられている (いくつかの変形はあるが)2つの主なオプションが利用できる 1つは階層型連鎖(hierarchical chaining)であり,もう1つは物理的子/物理的対連鎖 (physical child/physical twin chaining)である。階層型連鎖は,図表12.3.6.aに示したように,データベース ・レコード内のセグメントの深さ優先の結合(depth― first linkage)をする。物理的子/物理 的対連鎖は,すべてのセグメント・オカレンスを,ポ インターによって一緒に同じ物理的親オカレンスのもとで関係づける。さらに,図表12.3.6.bに示したように,もっとも左の物理的子オカレンスは,その物理的親オカレンスによっても示される。大規模なデータベース・レコードのセグメントには,物理的にオーバフロー領域に置かれるものもある。HDAMは,ルート・セグメント内の キー・フィールド に基づいて,データベース・レコードに (ハッシュ機能によって)直接にアクセス可能である。

HIDAMは ,物理的記憶編成に関してDAMとよく似たアプローチをとっている。しかし,HIDAMの 場合には,データベース・レコードの直接アクセスのためにインデックスを用いている。インデックスは,階層構造のルート・セグメント・タイプのキー・フィールドに基づいている。

データベースの形式的指定
IMSのユーザーにとって重大なデータベース設計問題は,物理データベースの階層チャートの構成,論理的親子関係を用いる場所,論理データベースの階層チャート,物理データベースにどの物理的記憶編成を採用するか,および各セグメント・タイプに対する逐次キー(sequencing key)として用いるフィールドを決定することである。これらの諸問題が解決した後,IMSデータベース記述言語を用いて,論理データベースと物理データベースが形式的(formally)に指定される。この言語の主要な種類のステートメントを以下に記述,例示する。

1.DBD このステートメント は,データ・ベースに 名前をつけ,アクセスの方法を指定するアクセス の方法は, 4つの記憶編成の1つを表わす,HSAM, HISAM,HDAM,HIDAMのどれかである

2.DATASET このステートメント は,データ・セットを含む物理的ファイルに名前をつけ,ファイルが存在する物理的記憶装置を指定する

3.SEGM このステートメントは,セグメント・タイプの名前とそれの親セグメント・タイプの名前を与えることによってセグメント・タイプを定義する。親の項は次のような形式をもつ。PRttT= (<物理的親>),(<論理的親>),(<デ ータベー ス>)。これはセグメント・タイプの物理的および論理的親を示している。<データベース>は ,論理的親が属する物理データベースである。

4.FIELD このステートメントは,セグメント・タイプ内のデータ・アイテム ・タイプを定義する。 NAMEパ ラメータはフィールド の名前を与える。他のパラメータは,物理的なバイト長,始点,フィー ルドのデータ・タイプを指定するセグメント・オカレンスを順序づけるのに利用するためにセグメント・タイプ内のあるフィールドを,シ ーケンス(すなわちキー )。フィールドであると宣言できる。シーケ ンス・フィールドは1つであっても1つでなくてもよい子セグメント・タイプのユニーク・キー・フィールドであるとは,どの親セグメント・オカレンスも,そのシーケンス・フィールドについて同じ値をもつ2つの子セグメントを持つことはできないということを意味する。

5.LCHILD このステートメントは,論理的子を示す論理関係を定義するのに用いられる。

6.DBDGEN,FINISH,END これらのステートメントは,データベースの定義を終了させる。

以下は,図表12.3.2 aおよび図表12.3.2 bで示した。物理データベースに対するデータベース記述である PARTDSが論理的親であり,PARTが論理的子である論理的親子関係が,物理データベースの指定において定義されていることに 注意されたい。

ユニーク・シーケンス・フィールド は,(NAME, SEQ,U)によって表わされている。Uの代わりにMの場合には非ユニーク・シーケンス・フィールドを示す。

PARTセグメント・タイプのPARENT項の2番目のアーギュメントは,(PARTDSDBデ ータベース階層構造におい て)PARTDSがPARTの論理的親であることを示している。 論理データベースの階層構造は,物理データベースの階層構造のそれと同じような形で定義される。

データベースの階層構造が定義されると,下位階層構造(sub hierarchy)が形式的に定義されなければならない。各下位階層構造は,「プログラ ム・コミュニケーション・ブロック(program communication block:PCB)」と呼ばれ,物理データベースないし論理データベースのルート・セグメントを含んでいなければならない。物理データベースや論理データベースの全体からなる場合もあるアプリ ケーション・プログラムのデータベー スとのインターフェイスは,PCBの名前のつけられた集まりである。

「プログラム・スペシフィケーション・ブロック」 (program specification block: PSB) によってのみ行うことができるプログラムのPSBは,そのプログラムがデータベースを見る見方を効果的に定義する IMSは PSBを,データベースと実行中のアプリケーション・プログラムとの間のバッファ領域を割り付け,管理するのに用いている。

プログラム・スペシフィケーション・ブロックは,以下のような種類のステートメントを用いて定義される。

1.PCB このステートメントは,プ ログラム・コ ミュニケーション ・ブロックを定義する DBDNA MEは,当該データベースの名前を指定する。このステートメントの後に,このデータベース内のいくつかの下位階層構造を記述する。

2.SENSEG このステートメントは,PCBの見方に含まれるセグメント・タイプを指定する NA MEはそのセグメント・タイプの名前を与える。PARENTは,このセグメント・タイプの親を表わす。パラメータPROCOPTは,オカレンスがこのセグメント・タイプ処理するのに利用できる処理オプションを与え,G(検索), I(挿入),D(削除),R (置換),K(キー・センシティブ)がある。キー・ センシティブというオプションは,そのセグメント・タイプがPCBの見方の一部ではないが,それの子のいくつかが,その見方のなかにあるという理由でのみ述べられているということを意味している。

3.PSBGEN このステートメントは,ホスト言語 (すなわち,デ ータベースがアクセスされる言わ を指定し,PSBプロックに名前をつける PSBGENステートメント1つにつきいくつかのPCBステ ートメントがある場合もある。

4.END このステートメントは,PSBの定義を終了させる。

以下は,(REPORTという名前のつけられた)1つの PCBからなる簡単なPSBの例である。このPCBは,SUPPDBデータベースの階層構造全体を含んでいる。

ホスト言語はPL/1である。

PCB    DBDNANIE=SUPPDB
SENSEC  NAME=SUPPLIER,PROCOPT= GI
SENSEG  NAME=PART,PARENT= SUPPLIER,PROCOPT=G
PSBGEN  LANG=PL/1,PSBNAME= REPORT
END

データ操作言語 IMSのデー タ 操作言語(data manipulation langu age:DML)は ,Data L anguage/1(DL/1)と 呼ばれている。 DL/1のコマンドは, DL/1, COBOLないしアセンプラといったホスト言語で書かれたアプリ ケーシ ョン・プログラムからのプロシージャ・コールの形でつくられている DL/1のコマンドは,プログラムのPSB内に存在する。ある特定のPCB階層構造について実行されるDL/コールの引き数には,アーギュメント・カウント,DL/1コマンド名,利用するPCB名 ,入出力(I/O)領域名,セグメント探索引き数(segment search argument:SSA)が含まれる 。I/O領域は , 単に「ローディング /アンローディング・ゾーン 」として役立つホスト言語の連続した変数の集まりである。もし, DL/1コマンドがデータベースからプログラムヘのデータの転送を伴うならば,そのデータは,指示されたI/O領域の変数に保存される。反対に,プ ログラムからデータベースに挿入されるデータは,挿入を実行するDL/1コマンドを起動する前に,指示されたI/O領域領域に存在しなければならない。

DL/1コールを限定する(すなわち条件づける)ために1つ 以上のSSAを用いることができる。あ るSSAは, 単に1つのセグメント・タイプから成り立っているかもしれない。このようなSSAは ,こ のタイプのSSAが見つかれば満足されるより複雑なSSAは,単にセグメント・タイプの名前ばかりでなく,そのセグメント・タイプ内のフィールドの名前,関係演算子(すなわち=,≠, <),参照量をもつ。このようなSSAが満足するのは, 指示されたフィールド に対するその値が,指示された参 照量に対して指定された関係にあるような指示されたタイプのセグメントが見つかったときである。この他,より 複雑なSSAを,アプリ ケーション・プログラマーが作ることができる。このような場合には,ブール演算記号を含むであろう。

以下は,DL/1によって与えられる 基本的なコマンドのいくつかを記述したものである。プロシージャ・コールの詳細なフォーマットは,このIMSの簡単な考察では述べない。

1.GET UNIQUE(GU) このコマンドは,SSAによって指定された条件を満足する第1番ロセグメントを検索する。SSAの条件を満たすセグメントが2つ以上存在する場合,「第1番目」であるのは, ソート・キーの値とデータベースの物理的記憶編成に依存する。

2.GET NEXT (GN)GNは,もっとも最近検索されたセグメントから始めて,SSAの条件を満たす。次のセグメントを見つけ出す。

3.GET NEXT W:TH:N PARENT(GNP) GU やGNによって検索されたセグメントが,次のGNPコール の「カレント・ペアレント (現在親)」になる GNPコマンドは ,指定されたSSAを満足するセグメントが見つかるまで ,カ レ ン ト・ペ アレント・セグ メントの派生セグメントを探索する。

4.GET HOLD(GHU,GHN,GHNP) GETHOLDコマンドは,検索されたセグメントがアプリケーション・プログラムの他のDL/1コマンドによって修正するのを許容しないという点を除いて上の3つのコマンドに似ている。

5.iNSERT (ISRT)ISRTコマンドは,意味論 的には複雑なコマンドであるが,データベースに新しいセグメントを付け加えるのに用いられる。

6. DELETE(DLET)と REPLACE(REPL) DLETコマンドは ,発見さ れ保持されたセグメントや,その物理的派生セグメントのすべてをデータベースから削除する REPLコマンドは,発見され保持されたセグメントを修正するのに用いられる。そのセグメントのシーケンス・フィールドの値を変更することはできない。

 本コラムは絶版となっている「IEハンドブック(サルベンティ編・日本能率協会訳・1986)」をアーカイブとして掲載するものです。このハンドブックの各章は多くの事例と理論を通して生産性向上に対するアイデアを提供するべく専門家によって執筆されています。基盤をなしているIEの考え方・原則はインダストリアル・エンジニアリングにかかわるすべてのひとに有用でしょう。

関連記事一覧

2019ものづくり公開セミナーガイド

B2Bデジタルマーケティングセミナー

ものづくり人材育成ソリューション

マーケティング分野オンラインセミナー