
階層型データベースと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の回答を参照してください。
回答ありがとうございます。
確かに、子や孫のある階層の場合、VSAMでは定義できないですね。
ちょっと気がつきませんでした。
ロールバックはVSAMでもできるのですか?
つまり、ログなどをとっているのでしょうか?
排他制御は、OSが管理するのでしょうか?
さらに、それ以外にVSAMとIMSDBの違いというものは
あるのでしょうか?
ちなみに、DB2のマニュアル等にはDBMSについての記載がありますが
IMS-DBのマニュアルにDBMSはありません。DLI-SASとかが
ありますが、それがDBMSの代わりなのでしょうか?
先輩に聞きたいところですが、ベンダーである弊社でIMSを
よく知っている人はおらずマニュアルしか頼るものがありません。
しかし、IBMマニュアルはご存知だと思いますが、いまひとつ
わかりにくく、講習資料もVSAMとDBの違いを記載してません。
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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSのフォームだけを起動す...
-
SQLPlusでUnicode
-
エクセルVBAでcommit,rollback
-
ディスク上のサイズの乖離が大...
-
oracle spool SJIS → UTF-8
-
ヤフーショッピングでPayPay支...
-
pgPool-IIの監視について
-
psql でのエラー出力について
-
shellからpostgresqlへの変数の...
-
CSVファイルをBULK INSERTでSQL...
-
ファイルに記述されている複数...
-
SQLServerへの接続子による違い...
-
SQL: insert/importコマンドの違い
-
pg_restoreでエラー
-
エクセルVBAでコマンドプロンプ...
-
新規作成したPostgresqlデータ...
-
ソケットの異常終了について
-
AWSのcloud9で「 ls -l ~/.ssh/...
-
データベースの復元について
-
postgreSQL、pg_dumpのオプショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESSのフォームだけを起動す...
-
階層型データベースとVSAM...
-
SQL Serverデータベースファイル
-
エクセルVBAでcommit,rollback
-
SQLPlusでUnicode
-
アクセスで、OLEサーバーも...
-
SQLiteファイルへの同時アクセ...
-
エクセルのデータをアクセスに...
-
データベースが開けません
-
Microsoft OfficeとWorksの互換...
-
HTMLからのデータベース アクセス
-
Access2010でリボン等を非表示...
-
C#上でデータベースのコピーを...
-
PostgresQLでサーバーを新規追...
-
ACCESSのレコードを削除しても...
-
HP上で商品の検索をしてもら...
-
SQLのデータベースに韓国語を登...
-
ディスク上のサイズの乖離が大...
-
oracle spool SJIS → UTF-8
-
ヤフーショッピングでPayPay支...
おすすめ情報