基本情報技術者平成15年秋期 午前問24

問24

磁気ディスクに,固定長のレコードをブロック化しないで格納した順編成ファイルがある。プログラムAは,このファイルのデータをすべて順番に読み込んで処理する。ファイルの編成方法又は読込み方式を変更して,プログラムAのデータの読込みにかかる時間を最も短縮することができる改善策はどれか。 ここで,処理の多重化は考えないものとする。
  • データを分割してそれぞれ別ファイルに格納し,各ファイルを順番にアクセスする。
  • ファイルを索引編成ファイルとし,レコードのキーを用いてデータを読み込む。
  • ファイルを直接編成ファイルにして,必要なデータだけを読み込むようにする。
  • レコードをブロック化して格納し,1回の物理的読込みで得られるレコードを多くする。
  • [出題歴]
  • 基本情報技術者 H14秋期 問22

分類

テクノロジ系 » ソフトウェア » ファイルシステム

正解

解説

コンピュータでは、データはひとまとまりのレコード単位で処理されます。例えば住所録では、名前・郵便番号・住所・電話番号などが1つのレコード(論理レコード)です。
磁気ディスクでは、このレコードをいくつかまとめてブロック化(物理レコード)して扱うことにより、読込みにかかる時間を最も短縮できます。
また、ファイルの編成方法の違いによって、順編成ファイル、直接編成ファイル、索引編成ファイル、区分編成ファイルなどがあります。
順編成ファイル

順次アクセスを前提としたファイル編成で、順次アクセスしかできない媒体(磁気テープなど)では、順編成ファイルで持つことになります。
最も基本的なファイル編成であり、レコードをそのまま連続して書き込むだけなので、記憶容量に無駄を生じません。
しかし、あるレコードを削除したり新しいデータを挿入したり、順番を変更するには手間がかかります。
直接編成ファイル
各レコードにどこに(記憶領域の場所)記憶するかのキーを持たせます。
挿入、削除が簡単になる反面、使われない領域が生じる可能性があります。
索引編成ファイル

順編成ファイルに索引をつけることにより、直接アクセスもできるようにしたファイルです。
区分編成ファイル
順編成に、どこに何があるかを記憶しているディレクトリを持っています。プログラムライブラリファイルに用いられます。
  • 各ファイルを順番にアクセスするので、データを分割してそれぞれ別ファイルに格納すれば、逆にシーク時間などの余計な時間がかかります。
  • 問題がファイルのデータをすべて順番に読み込んで処理するプログラムとなっているので、索引編成ファイルだと余分な時間がかかります。
  • 問題がファイルのデータをすべて順番に読み込んで処理するプログラムとなっているので、直接編成ファイルだと余分な時間がかかります。
  • 正しい。
© 2010-2024 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop