• ベストアンサー

ファイル編成法について

高度情報処理試験の午前で、ファイル編成法についての問題があるのですが、いまいち理解ができません。 説明か、詳しいサイトなどご存知でしたら教えてください。質問としては以下です。 ○順編成、区分編成、直接編成、索引編成、VSAM編成といった5種類がありますが、DB(ファイル編成法はDBにて使用するという認識でOK?)を作成する際に、上記方法から1つを選んで作成する、ということでよいのでしょうか?それとも、1つのDBの中に混在しているのでしょうか? ○5種類の編成法の認識は正しいですか?また、よくわからない編成法については説明がほしいです。 ・順編成:1の巨大なファイルを保存するため ・区分編成:(作りかけの)プログラムのバージョンアップを管理したいがために使用する。 ・直接編成:何に使う?? ・索引編成:例えば、生徒情報のDBがあって、「名前」や「住所」のキーから検索したいがために使用する。※でもあふれ値って?? ・VSAM編成:何に使う? ○そもそも、VSAM編成はよくわかりません。 編成法について詳しい方、ご回答いただけますよう、よろしくお願いいたします。

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

  • ベストアンサー
  • mitoneko
  • ベストアンサー率58% (469/798)
回答No.3

 編成法に関しては、先のお二方の示されているとおりです。  今のパソコンや、UNIX系のサーバーでは、単純なバイトストリームですから、この辺の編成法に関しては、過去の知識となりつつあります。  ところで、これらは、すべて、主に大型汎用機に置いて、大概はCOBOL言語で業務系のアプリケーションを作成するときに使用されていたファイルの「物理形式」です。  アプリケーションを作成するためには、この物理形式は常に意識しておく必要があり、物理形式を別のものに変える羽目になると、アプリケーションの改造ということになります。  そこで、DBMSという考え方が出てきました。これは、ファイル編成法だの、最近のパソコンのような単純なバイトストリームの中に作成した物理的なファイルフォーマットの世界と、アプリケーションがデータにアクセスするための方法を完全に切り離すことを目標に作られたものです。  たとえば、リレーショナルタイプのDBMSであれば、アプリケーション側は、表の形で表現されたデータレイアウトだけを意識して、SQLという標準化されたコマンド形式で、自由にデータを取り扱うことができるようになっています。この段階では、物理ファイルの構造・編成に関しては、「意識しなくて良い」というのがDBMSの最大の利点であり、このために、DBMSは構築されています。  よって、DBMSにおいて、データベースを作成する際に、どのようなファイル編成にするかは、DBMSに任せておけばよい。(アプリケーション作成者は関与しない。)ということになるわけです。まぁ、DBMSのシステムを汎用機で実現するには、かなり融通が利くファイル編成を必要とするので、VSAM編成を利用する場合が多いかと思います。(必要に応じて、他のファイル編成で構成された一群のコントロールファイルを従えることもあるでしょう。)(一方、UNIXやWindowsベースのシステムの場合は、ファイルの物理形式がフラットなバイトストリームしかありませんから、その中に、各種のフィールド構造を構築しています。)  データベースとファイルの物理構造に関する補足でした。

ishiro
質問者

お礼

ご回答、ありがとうございます。 背景の説明があり、非常に分かりやすかったです。 なるほど、DBMSが出現する前の管理法なのですね。 VSAM編成は汎用機にてDBMSチックに(融通が利くファイル編成)する際に使用するわけですね。 VSAMの必要性がよくわからなかったのですが、理解できました。 ありがとうございました。

その他の回答 (2)

  • root139
  • ベストアンサー率60% (488/809)
回答No.2

順編成・区分編成などのファイル編成は、主に大型汎用機(メインフレーム)系のファイル(データセット)の話です。 http://e-words.jp/w/E5A4A7E59E8BE6B18EE794A8E6A99F.html 他の方も指摘されていますが、大型汎用機のプログラムにはCOBOLがよく使われています。 よく目にするUNIX系のOSやwindowsのファイルは、バイト単位のデータが順番に並んでいるだけの単純なバイトストリームになっていますので、それ以上の構造が有りません。したがって、ファイル編成という概念も有りません。 http://www.lbm.go.jp/toda/library/vosfile.html ですので、ファイル編成方法はDBの内部構造を指定するためのものと言うわけではないのですね。(もちろん、大型汎用機のDBでは内部で何らかの編成のファイルを使っているのでしょうが。) 個々のファイル編成については、「区分編成」「VSAM」などで検索すれば、解説しているサイトが見つかると思います。 http://www.hitachi.co.jp/Prod/comp/soft1/VOS3FS/v3ga0228.htm

ishiro
質問者

お礼

ご回答、ありがとうございます。 参考URL、ご提供ありがとうございます。 もう少し調査してみます。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.1

そもそも COBOLが全盛のころ意識された問題だと思います。どの方式でも使えないことは無いのですが すぐに検索しやすいかどうかによって どのタイプが よいのか選択すればよいのでしょう。 順編成ファイルは 磁気テープに保管するなどの必要があるときは この方法をとるでしょう。

参考URL:
http://mt-net.vis.ne.jp/ADFE_mail/0190.htm#answer
ishiro
質問者

お礼

早速のご回答をありがとうございます。 私も参考URLの説明を見たのですが、いまいち理解できませんでした。背景などがわからないと厳しいのかもしれませんね。COBOL全盛ということですね。 情報のご提供、ありがとうございました。

関連するQ&A

  • ファイル編成の種類について教えてください

    基本情報勉強中に「ファイル編成」という、ファイルを作成する際に定めるファイルの論理構造を学びました。その中で、 ・順編成ファイル ・索引編成ファイル ・直接編成ファイル ・区分編成ファイル ・VSAMファイル の五つの種類がでてきましたが、説明文を読んでも意味がわかりませんでした。 どなたか身近なものをつかってわかりやすく説明してください。 どうかお願いします!!

  • 順編成ファイル、区分編成ファイル、VSAMについて

    順編成ファイル、区分編成ファイル、VSAMについてそれぞれ どういうものか教えてくれませんか。

  • ファイルシステムとファイル編成

    現在データベースの勉強をしております。書籍を読み進めると、ファイル編成(順編成、相対編成、VSAM編成etc)なるものの解説がでてました。これらはデータの格納形式と自身理解をしているのですが、OSのファイルシステム(FAT,NTFS etc)とは、どのような関係にあるのでしょうか? ただ単に、FATでは~編成、NTFSでは、~編成を採用しているというような理解でいいのでしょうか? 

  • 基本情報、過去問について

    こんにちは、2010年10月の基本情報技術者試験を受験して 午後試験で 50.50点だったものです。 趣味でプログラミングをしていて、 JavaScriptでポーカーを再現し、 同じくJavaScriptで音声は出ませんが、 http://sdin.jp/browser/casino/blackjack/ と同様の動作をするブラックジャックを作るくらいです。 ( CGI, サーバーのことはよくわかりません。) 現在 暇な時間をみて、4月の同試験の受験に向けて勉強しているのですが、 わからないことが出てきましたので、質問させていただきます。 下記の問題についてなのですが、 シノニムレコードの発生する可能性があるファイルアクセスはどれか。 ア 区分編成ファイルへのレコードの追加 イ 索引順編成ファイルのレコードの更新 ウ 順編成ファイルのレコードの更新 エ 直接編成ファイルへのレコードの追加 初見でこの問題を解いたところ間違えてしまったのですが、 正解は エ らしいのですが、いくつか質問させていただきます。 (1) インターネットで調べてみたのですが、、 直接編成ファイルは「間接アドレス方式」で ハッシュ関数などでアドレスを変換した場合 同じハッシュ値になる場合にシノニムレコードが発生する、 上記の理解でよろしいでしょうか? (2) それと、索引編成ファイルについても調べたのですが、 索引領域ファイルは階層構造になっている目次  (マスタ索引、シリンダ索引、トラック索引の索引領域) と、 データを格納する基本データ領域 の二つで構成されている、 とありましたが、(詳しいことはわかりません) 調べたところによりますと、 索引編成ファイルも直接アクセス可能とあったのですが、 シノニムレコードは発生しないのでしょうか。 データへのアクセスの方法がハッシュ関数などを使わない 別の方法なのでしょうか? それは二分探索のようなものなのでしょうか? (3) これらのファイル編成の方法に出てくる「ファイル」とは データベースのファイルを指すのでしょうか。 ほかのファイルのこともいうのでしょうか? どなたかご存知の方教えていただけないでしょうか? よろしくお願いします。

  • COBOLのファイル出力

    初歩の初歩だと思うのですが、3つ質問があります。 1.出力ファイルを新規作成したい場合(物理ファイルが存在していない場合)、コーディングで作成する方法 2.出力ファイルにすでにデータがある場合、後ろに追加する方法 3.出力ファイルにすでにデータがある場合、指定した位置にデータを追加する方法 2,3は順編成ではできないでしょうか?VSAMならできますか? 1はコーディングではできないとしたら、JCLを使用しますか? ご教授、よろしくお願い致します。

  • 基本情報 平成16年 春期 問5について

    こんにちは。 7月の基本情報技術者試験を受験しようと思って、 暇を見て対策に取り組んでいる者です。 過去問を解いていてわからないことが出てまいりましたので、 質問させていただきます。 まずは、下記のサイトを見ていただきたいのですが・・・ http://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2004h16_1/2004h16h_fe_pm_qs.pdf 平成16年度春期 午後の 19ページからの問5についてなのですが、 (1)  設問2についてなのですが、  ( b, c ) = ( ア, カ ) のところを、  ( b, c ) = ( カ ,ア ) と答えてしまいました。  これは、19ページの[システムの概要]の(1)より、  ニュースファイルのニュースのレコードは順ファイルの様式で  格納されているからでしょうか。   順ファイルというものが、よくわからないのですが、  インターネットで調べたところ、  「ファイルの先頭から、レコードを連続して記録。   格納効率は良いが、インデックスやキーがないので   特定のレコードへは直接アクセスできない」  と、ありました。  レコード単位で、先頭から見ていく、ということは、  「端末種別」の情報が、各レコードの最初のほうになければ、  結果出力処理で、「簡易」「詳細」の処理をわけられない。  ということでしょうか? (2)  基本情報技術者の午後試験の問5に出題される  ファイルとは、すべて、「データベースのファイル」を意味するのでしょうか?  午前の問題を解いていて、以前 「ファイル編成」についての問題を  解いたことがあったのですが、その中で、  「順編成」「直接編成」「区分編成」「索引編成」  という言葉が出てきたのですが、  主に、データベースのデータの格納の仕方をいうのでしょうか?  データベースの「CREATE INDEX ~ 」と「索引編成」  というのは、関係があるのでしょうか? なにぶんにもしろうとなので質問文の記述が拙いですが、 どなたか、教えていただけないでしょうか。 よろしくお願いします。

  • デジカメで撮った動画のファイルを認識しない

    驚速 動画カッターを購入 早速ファイルを一つに纏めようとしたが、全く認識してくれない。 直接ドロップすると「このファイルは編集できません。オーディオ/ビデオ情報が見つかりません」と表示されます ファイルの種類はQuick Time ムービーと成っています 宜しくご指導下さい

  • ファイルの種類(形式)

    お世話になります。 WinXPを使用しております。ファイルの種類?でよく分からないものが 2種類あり、それがなんなのか知りたく、質問させていただきます。 1.Thumbs.db .dbとのことなので、なにかデーターベース?のファイルでしょうか? 2.desktop.ini これも全く意味が分かりません。 どなたかご存じの方、ご教授よろしくお願いいたします。

  • PostgreSQLのバキュームとリインデックスについて

    PostgreSQLのバキュームとリインデックスについて バキュームは領域の再編成と解析 リインデックスは索引情報の再編成 であるという事は理解しています。 データベースを作成し、 テーブルを作成し、 まとまった量の初期データを放り込んだとします。 バキュームはやっておいた方が良さそうですが、 リインデックスもやっといた方が良いですか? 両方やるとしたら、 どっちが先とか後とかありますか? それとも同時にやっても良いぐらいですか?

  • jarファイル実行でDB接続するやり方(Eclipseで開発)

    Eclipseを使って、DB接続(DBはMySQL)して情報を表示する アプリケーションを作成しています。 Eclipse上ではうまく動作するんですが、jarファイルを作成して 実行するとDB接続時にエラーが発生します。 ↓ここにも同じような問題で解決策が書かれていたんですが、  具体的な解決法がわかりませんでした。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27342&forum=12 わかる方がいらっしゃいましたら教えてください。 よろしくお願いいたします。