ファイルへのアクセス方法とファイル編成法について【備忘録-基本情報技術者試験対策 #56】

基本情報技術者試験

※ 本記事では、基本情報技術者試験の対策として私が勉強したことを備忘録的にまとめておきたいと思います。
少しでも参考になれば嬉しいです。

はじめに

さて今回は、基本情報技術者試験対策として、ファイルへのアクセス方法とファイル編成法についてまとめたいと思います。

本題はファイル編成法についてなのですが、せっかくならアクセス方法もといった次第です。

たくさん種類があるので覚えにくいとは思いますが、しっかりと特徴だけでもおさえておきましょう。

ちなみに私はこの参考書を使って勉強してました。

漫画形式で読みやすく、分かりやすい内容になっているため、無理なく学習を進められると思います。

過去問を解きまくり、不明点があれば参考書で知識を補う、このサイクルで試験対策するのが私のオススメです!

最新版はこちらです。

少し内容が異なる部分もあるかもしれませんが、大まかには変わらないはずですので、安心して下さい。

ファイルへのアクセス方法

まずは簡単に、ファイルへ読み書きを行う際のアクセス方法についてまとめます。大きくは3種類あるのでしっかりと理解しておきましょう。

  • 順次アクセス:
    一連のデータに対して先頭から順番に読み書きする方法。データの読み込みが保存された順序でしかできない仕組みで、主にテープドライブや一部の光ディスクで採用されている。シーケンシャルアクセスとも呼ばれる。
  • 直接アクセス:
    データに対して特定の位置を直接指定してアクセスする方法。ランダムアクセスとも呼ばれる。
  • 動的アクセス:
    順次アクセスと直接アクセスを組み合わせた方法特定のレコードに直接アクセスした後、そのレコードから順次アクセスしていく。

ファイル編成法

順編成ファイル

順編成ファイル(Sequential File)は、ファイル内のデータが特定の順序に従って配置されているファイル形式です。この形式は、データを一連のレコードとして扱い、頭から順番にレコードを記録していきます。

直接編成ファイル

直接編成ファイル(Direct Access File)は、ファイル内のデータが物理的な場所に直接関連付けられるように編成されたファイル形式です。各レコードが一意の「キー値」を持ち、そのキー値に基づいてデータが格納されるアドレスが決定されます。つまり、データを検索する際には、ファイル全体を順次走査する必要がなく、特定のデータにすぐにアクセスできることが特徴です。

中でも、直接アドレス方式と間接アドレス方式があり、それぞれ「キー値」からアドレスを決定する方式が異なります。

  • 直接アドレス方式:
    「キー値」がそのまま格納アドレスとなる方式。キー値の内容が、01、02、04、07、10のように飛び飛びとなっていた場合、使用されない領域が出てきてしまい無駄となります。キー値が連続した値となっていれば特に問題ありません。
  • 間接アドレス方式:
    「ハッシュ関数」と呼ばれる計算式を用いて、「キー値」から格納アドレスを算出する方式。ただし困ったことにハッシュ関数による計算結果が重複してしまう場合があります(例:”キー値を7で割った余りが格納アドレスとなる”場合、重複がめちゃくちゃありそうですよね??イメージはそんな感じです)。このように、異なるレコードが同じ格納アドレスで衝突してしまうことを「シノニム」と言います(シノニムが起きたレコードはシノニムレコードと呼ばれます)。シノニムが発生すると、算出結果を別の計算式で再計算する必要があるため、多発することでアクセス速度が落ちてしまいます。

索引編成ファイル

索引編成ファイル(Index Sequential Access Method: ISAM)は、索引を格納する「索引域」、レコードを格納する「基本データ域」、基本データ域からあふれたレコードを格納する「あふれ域」の3つ領域から構成されるファイル編成方式です。

まず、「索引域」のデータを基に直接アクセスで「基本データ域」の適当なレコードにアクセスします。その後、順次アクセスで先頭から順番にアクセスしていき、目的のレコードに到達します。「あふれ域」は、レコードの追加などで「基本データ域」からあふれたデータを格納するための場所です。

順次アクセスと直接アクセスの違いもしっかりと理解しておく必要がありますね。

区分編成ファイル

区分編成ファイル(Partitioned Data Set、PDS)は、「メンバ」と呼ばれる順編成ファイル、メンバを格納する「メンバ域」、各メンバへのアドレスを管理する「ディレクトリ域」の3つの領域から構成されるファイル編成方式です。

「ディレクトリ域」で各メンバへのアドレスを管理しているため、そのデータを基に各メンバに対して直接アクセスを行います。「メンバ」は順編成ファイルなので順次アクセスで目的のレコードまで到達します。

最後に

さて今回は、基本情報技術者試験対策として、ファイルへのアクセス方法とファイル編成法についてまとめました。

複雑ではないのですが、特徴は大きくことなるのでしっかりと理解しておくようにしましょう。キーワードも色々とあるので注意です。

★順次アクセス

先頭から順番に読み書きする方法

★直接アクセス

特定の位置を直接指定してアクセスする方法

★動的アクセス

順次アクセスと直接アクセスを組み合わせた方法。特定のレコードに直接アクセスした後、そのレコードから順次アクセス

★順編成ファイル

ファイル内のデータが特定の順序に従って配置されているファイル形式

★直接編成ファイル

各レコードが一意の「キー値」を持ち、そのキー値に基づいてデータが格納されるアドレスが決定されるファイル形式。

直接アドレス方式:「キー値」がそのまま格納アドレスとなる方式

間接アドレス方式:「ハッシュ関数」と呼ばれる計算式を用いて、「キー値」から格納アドレスを算出する方式

★索引編成ファイル

「索引域」のデータを基に直接アクセスで「基本データ域」の適当なレコードにアクセス。その後、順次アクセスで先頭から順番にアクセスしていき、目的のレコードに到達。「あふれ域」は、レコードの追加などで「基本データ域」からあふれたデータを格納

★区分編成ファイル

「ディレクトリ域」のデータを基に各メンバに対して直接アクセス。「メンバ」は順編成ファイルなので順次アクセスで目的のレコードまで到達

以上!

前回まとめた記事も読んでもらえると嬉しいです!

基本情報以外の勉強記事も是非!

オススメ参考書 & Udemy講座

過去問編

兎にも角にも過去問を解かないことには始まりません。解いて解いて解きまくりましょう!

特に以下の参考書は問題数が多いのでオススメです。

この1冊だけ買って、とりあえず1周すれば合格がかなり近くなると思います!

科目A+B両方合わせて4セット収録されてるとかヤバすぎます・・・

知識網羅編

以下は知識網羅編として、講義系の参考書、動画をピックアップしています。

1からしっかりと学習し、知識を身に着けたい方はとてもオススメです。

過去問を解きまくり、不明点を参考書で補う。これが最高の勉強サイクルです~

私が勉強する際に使用していたオススメ参考書は以下です。

上記シリーズの最新版は以下です。(内容はそこまで変わらないはずですが・・・)

私がぜひオススメしたい、Udemyの講座もいくつかピックアップしておきます。

誰かに解説してもらった方が分かりやすい場合もありますからね~

画像でもボタンでも、どちらを押下しても講座へ飛べるようにしてありますので是非!

コメント

タイトルとURLをコピーしました