• ベストアンサー

階層型データベースとVSAMの違い

階層型データベースとVSAMの違い メインフレームの話です。 階層型DB(IMS-DB)について勉強しているのですが、 VSAMとの違いがよくわかりません。 どちらも、HIDAMやHSAMもあり、CI単位にデータが 入っているとマニュアルに書いてありました。 実は、同じものなのでしょうか? それとも、DBはロールバックやロールフォワードができ VSAMはできないとかの違いだけあるのでしょうか?(よくわかりませんが) VSAMと階層DBは、何が違うのか?と言われたときに、 「こう違います。」と説明できるようになりたいです。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

#1回答者です。「階層型データベース」と書かれていたので、少し誤解していました。 DBMSの機能の一つとして、「VSAMなどのOSのファイルシステムで作成したファイルを、DMLで操作する」といったものがあります。この場合は、VSAMのファイルそのものを、DBMSの管理下で操作します。この機能を利用することで、アプリ側ではDMLで操作でき、ファイルの宣言、オープン/クローズ、例外処理などをDBMS側に任せることができます。 これらは、単純構造などの名称で呼ばれ、階層型データベースとはまったく別のものです。あくまでも、階層型DBMSの一機能として、VSAMファイルも操作できるというものです。 階層データベースについては、#1の回答を参照してください。

phoenix062
質問者

お礼

回答ありがとうございます。 確かに、子や孫のある階層の場合、VSAMでは定義できないですね。 ちょっと気がつきませんでした。 ロールバックはVSAMでもできるのですか? つまり、ログなどをとっているのでしょうか? 排他制御は、OSが管理するのでしょうか? さらに、それ以外にVSAMとIMSDBの違いというものは あるのでしょうか? ちなみに、DB2のマニュアル等にはDBMSについての記載がありますが IMS-DBのマニュアルにDBMSはありません。DLI-SASとかが ありますが、それがDBMSの代わりなのでしょうか? 先輩に聞きたいところですが、ベンダーである弊社でIMSを よく知っている人はおらずマニュアルしか頼るものがありません。 しかし、IBMマニュアルはご存知だと思いますが、いまひとつ わかりにくく、講習資料もVSAMとDBの違いを記載してません。

その他の回答 (2)

回答No.3

IMSについても、IBMによる高価なセミナーが実施されているようですね。 英語サイトですけど、IMSのDB内部構造等について、図などを用いられて解説されているところがありました。 http://www.dbazine.com/ofinterest/oi-articles/ims2 ざくっと見ましたけど、 IMSでのHSAMは、OSレベルではBSAM、QSAMで実装されている。 IMSでのHISAMは、OSレベルではVSAMで実装されている。 といった記述があるようです。 メインフレームの情報は、インターネット上でゴロゴロ転がっている訳ではないし、情報の鮮度や信憑性なども判断できません。 どこの誰だか分からない人に聞くのは、仕事上、大いに問題ありです。 ただ、IBMの情報は、英語サイトなどで意外と出てたりしますけどね。 英語サイトですが、メインフレーム・フォーラムもあるようですよ。 http://ibmmainframes.com/index.php

回答No.1

IBMのDBMSについて、そんなに詳しい訳ではないですが。。。 こういった Q&A サイトで、質問するようなことではないのでは? 子や孫が存在しない単純な構造だけを見れば、似たようなものと感じることもあるかも知れませんが、例えば、3階層のデータベースを考えてみましょう。1:m:nの関係、しかも m や n の個数を事前に予測できないといった場合、これをVSAMで容易に実現できますか? VSAMを使った場合、定義変更があった場合は、どんな作業が発生するか考えてみましょう。また、IMSにつながるDBMSは、階層型だけでなく、リレショナル型のDB2などもありますよね? VSAMも排他制御やログによる回復など、多機能だったりしますが、そこはやはりファイルシステムの一つです。 DBMSがシステム実装の上で、ファイルシステムとしてのVSAMを活用していたりもします。 この場合、 ・VSAMの1レコード=DBMSの1レコード といったケースや ・VSAM上では1レコードだけど、その1レコードの中をDBMS独自のデータ形式で管理し、DBMSとしては複数レコードを管理する といったことも行われていたりします。 詳しくはここのようなサイトではなく、マニュアル、先輩、DBMSサポート部署などに相談してみてください。

関連するQ&A