スポンサーリンク

【応用情報技術者試験】ソフトウェアの基礎を固めよう!      ~第4章~ファイル管理

近年のコンピュータは高性能なCPU、大容量のメモリ、高速通信が行えるネットワークカードなど、様々な高度な装置によって構成されています。これらの装置の性能を十分に発揮させるためには、しっかりとした管理が必要です。基本ソフトウェア(オペレーティングシステム,OS)は、コンピュータに備わるさなざまな装置を管理するソフトウェアです。

画像参照:https://pc-yougo.com/software/

ファイルとレコード

ファイルはデータを保存する基本的な単位で、レコードはファイルやデータベース内で関連する複数のデータ項目(フィールド)をまとめた1件のデータの集まり(行)です。例えば、氏名・電話番号・住所といった情報が1レコードとなり、それが複数集まって「顧客データファイル」という1つのファイルが構成される、という関係になります。ファイルが物理的な入れ物なら、レコードはその中に整然と並べられた「一品」のようなものです。 

  • ファイル :
    • コンピュータでデータを保存・管理する際の基本的なまとまり。
    • ハードディスクやUSBメモリなどの記憶装置に保存される。
    • テキストファイル、画像ファイル、Excelファイルなど、様々な種類がある。
    • レコード指向ファイルシステムでは、ファイルの読み書きの最小単位がレコードになる。
  • レコード :
    • 関連するデータ項目(フィールド)を1つにまとめたデータ構造。
    • データベースではテーブルの「行」に相当し、エクセルでは「行」にあたる。
    • 例: 「氏名」「電話番号」「住所」がフィールドで、それらが集まって1人の顧客情報(1レコード)となる。
    • ファイルは複数のレコードで構成される(例: 8人分のデータなら8レコードで1ファイル)。 

ファイル編成法

ファイル編成法とは、コンピュータが補助記憶装置(ディスクやテープ)にデータをどのように記録し、アクセスするかという方式の総称で、主に順編成直接編成索引編成区分編成などがあり、データの用途(順次アクセスか直接アクセスか)に応じて最適な方法が選ばれ、データの効率的な管理と高速な検索を実現します。

編成法基本的な構造媒体
順編成先頭から順にレコードを記録する。テープ装置
ディスク装置
直接編成レコードのキー値を基に格納場所を決める。ディスク装置
索引編成索引を引いたアクセスができる。
索引域、基本域、あふれ域で構成され、データは基本域に格納する。
ディスク装置
区分編成プログラムライブラリを記録する。
ディレクトリ域、メンバ域で構成される。
ディスク装置

順編成

順編成は、コンピューターファイルでレコード(データ)を先頭から順番に記録・格納し、読み出す際も先頭から順にアクセスする最も基本的なファイル編成方法です。順次アクセスのみが可能で、大量のデータをまとめて処理するのに適しており、磁気テープやテキストファイルなどで利用されますが、特定のレコードを取り出すには時間がかかります。 

主な特徴

  • 記録方法: ファイルの先頭からレコードを隙間なく(あるいはレコード区切り文字を挟んで)連続して書き込みます。
  • アクセス方法: ファイルの先頭から1レコードずつ順に読み進めます(順次アクセス)。
  • 長所: 構造が単純で実装が容易。記憶領域の無駄が少ない(特に連続記録の場合)。大量のデータを一括処理するのに効率的。
  • 短所: 目的のレコードを見つけるために、それより前のすべてのレコードを読み飛ばす必要があるため、ランダムアクセス(直接アクセス)には不向き。
  • 具体例: テキストファイル(メモ帳など)、COBOLの順次ファイル、磁気テープ。 

直接編成

直接編成とは、レコードのキー値(重複しない一意の値)を使って、直接そのレコードが格納されている物理アドレス(場所)を計算・特定し、高速にアクセスする方式で、直接アクセス(ランダムアクセス)に適しています。直接アドレス方式(キー値=アドレス)と、ハッシュ関数でキー値からアドレスを算出する間接アドレス方式(ハッシュ編成)があり、後者が一般的に使われ、シノニム(同名衝突)の問題があります。 

直接編成の仕組み

  • キー値とアドレスの対応: レコード内のキー値と、ディスク上の物理的な格納アドレス(場所)を直接関連付けます。
  • 直接アクセス: 目的のキー値さえ分かれば、計算によってそのレコードの場所を即座に特定し、読み書きできるため、アクセスが非常に高速です。 

メリット・デメリット

  • メリット: 高速な直接アクセス、レコードの追加・削除が容易。
  • デメリット: 記憶領域の無駄(空き領域)が発生しやすい、媒体の利用効率が低い。 

索引編成

索引編成とは、順編成ファイルに「索引(インデックス)」を追加し、その索引を使って目的のデータに直接アクセスしたり、順次アクセスも可能にしたファイル編成方式です。基本データ域、索引域、あふれ域の3領域で構成され、索引域でデータのアドレスを特定後、基本データ域で順次探索することで効率的なデータアクセスを実現します。 

特徴

  • ハイブリッドなアクセス: 索引を使うことで直接アクセスが可能になり、索引がない場合は先頭から順次アクセスもできます。
  • 構造:
    • 索引域 : キー値とレコードの格納アドレス(場所)を対応させた索引情報を持ちます。
    • 基本データ域  レコード本体を格納する主要な領域です。レコードはキー順に格納されます。
    • あふれ域 : 基本データ域がいっぱいになった場合に、追加レコードを格納する領域です。
  • アクセス方法:
    1. 索引域を参照: 探したいキー値に対応する索引情報を探します。
    2. 直接アクセス: 索引情報から、目的のレコードが格納されている基本データ域の特定のアドレスへ直接ジャンプします。
    3. 順次アクセス: そのアドレスから、目的のレコードが見つかるまで順にレコードを読み進めます(基本データ域やあふれ域内)。
  • 利点: 順編成の効率性と直接編成の利便性を併せ持ち、データの追加・削除にも柔軟に対応しやすいですが、繰り返すと断片化(フラグメンテーション)が発生し、再構築が必要になることがあります。 

用途

  • 顧客ファイル、在庫管理ファイルなど、更新頻度が高く、特定のレコードへの高速アクセスが必要なシステムで利用されます。 

区分編成

区分編成とは、一つの大きなファイル(データセット)を「メンバ」と呼ばれる複数の順編成ファイルに分割し、それらをまとめて管理する方式で、メンバ域とディレクトリ域から構成され、プログラムライブラリやモジュール管理に利用され、メンバ単位での直接アクセスとメンバ内での順次アクセスを可能にします。 

区分編成の仕組み

  • 構成要素: 複数のメンバ(順編成ファイル)を格納する「メンバ域」と、各メンバの先頭アドレスや名前を管理する「ディレクトリ域(登録簿域)」で成り立っています。
  • アクセス方法:
    1. メンバへの直接アクセス: ディレクトリ域を参照し、目的のメンバの先頭アドレスを特定して直接アクセスします。
    2. メンバ内の順次アクセス: メンバの先頭に到達した後、そのメンバ内のレコードは先頭から順にアクセスします(順編成ファイルと同じ)。
  • 特徴:
    • 動的アクセス向き: メンバ単位で直接アクセスできるため、プログラムやライブラリの管理に適しています。
    • 階層的構造: ディレクトリがメンバを管理し、メンバがレコードを管理する、という階層構造を持ちます。
    • 用途: 汎用コンピュータでプログラムライブラリやソースコード群を管理する際によく使われます。

ファイルシステム

ファイルシステムとは、コンピュータがハードディスクやSSDなどの記憶装置にファイルとディレクトリ(フォルダ)を整理・管理するための仕組み(ルール)です。データがどこに保存され、どのようにアクセスされるかを定義し、ユーザーがファイル名でファイルを扱えるようにしたり、ファイル属性(更新日時、サイズなど)を管理したりする、OSの基幹機能です。WindowsのNTFSやFAT32、MacのAPFSなど、OSによって様々な種類があります。 

ファイルシステムの役割

  • データの構造化: 記憶領域を「セクタ」や「クラスタ」といった単位に区切り、ファイルを論理的にまとめる。
  • ファイル管理: ファイル名による識別、保存、削除、移動などを可能にする。
  • 属性管理: ファイルの更新日時、サイズ、読み取り専用などの情報を記録・管理する。
  • 効率的なアクセス: データを断片化させずに(あるいは断片化しても)1つのファイルとして扱えるようにする。 

主な種類

  • FAT(FAT32, exFAT): USBメモリやSDカードで広く使われる、互換性の高い形式。
  • NTFS: Windowsで標準的に使われる高機能なファイルシステム。
  • APFS (Apple File System): MacやiPhoneなどで使われる、SSDに最適化されたファイルシステム。
  • ext4: Linuxで広く使われているファイルシステム。 

ディレクトリ

ディレクトリとは、コンピューターでデータ(ファイル)を整理・管理するための仕組みで、ディレクトリ(フォルダ)がファイルをグループ化する「入れ物」の役割を果たし、ファイルシステムがそれらファイルの階層構造全体(ツリー構造)と、どこに保存されているかを管理する仕組み全体を指します。ファイルシステムは、ファイル名やパス(経路)、アクセス権限、保存領域などを管理し、ユーザーが論理的にデータを扱えるようにします。 

ディレクトリ(フォルダ)

  • 役割: ファイルや他のディレクトリをまとめるための箱(コンテナ)。
  • 特徴: 階層構造を持ち、中にファイルやサブディレクトリ(子ディレクトリ)を格納できる。
  • 呼び方: WindowsやmacOSでは「フォルダ」、UNIX系OSでは「ディレクトリ」と呼ばれることが多い。 

階層構造とパス

  • ルートディレクトリ ( / ): 階層構造の最上位にあるディレクトリ。
  • カレントディレクトリ ( . ): 現在作業しているディレクトリ。
  • 親ディレクトリ ( .. ): 現在のディレクトリの1つ上の階層にあるディレクトリ。
  • パス : ルートディレクトリから目的のファイルやディレクトリまでの経路(例: /home/user/document.txt)。 

パス

パスとは、コンピュータ内のファイルやディレクトリ(フォルダ)の場所を示す「住所」のようなもので、階層構造をたどる文字列です。主に、**絶対パス(フルパス)**はルートから完全に指定し、相対パスは現在地(カレントディレクトリ)から目的までの経路を示します。これらは「/」や「\」などの区切り文字で階層をつなぎ、C:\Users\...\file.txt(Windows)や/home/user/file.csv(UNIX系)のように表記されます。 

パスの種類

  • 絶対パス(フルパス): ファイルシステムの最上位(ルートディレクトリ)から始まり、目的のファイルやディレクトリまでの完全な経路を記述します。どこから実行しても同じ場所を指します。
    • 例: C:\Users\Taro\Documents\report.docx (Windows)
    • 例: /Users/Taro/Documents/report.docx (macOS/Linux)
  • 相対パス: 現在作業しているディレクトリ(カレントディレクトリ)を基準に、目的のファイルやディレクトリまでの経路を示します。カレントディレクトリが変わるとパスも変わります。
    • 例: Documents\report.docx (カレントディレクトリがC:\Users\Taroの場合)
    • ..(ドットドット)は一つ上の階層を示します。例: ../Backup/old_report.docx
    • .(ドット)は現在のディレクトリを示します。 

パスの構成要素

  • ディレクトリ(フォルダ): ファイルを整理するための入れ物。階層構造を作ります。
  • 区切り文字: ディレクトリやファイルを区切る記号。Windowsでは\(バックスラッシュ)、macOS/Linuxでは/(スラッシュ)が使われます。
  • ドライブ名(Windows): C:ドライブ、D:ドライブなど、ストレージの物理的な場所を示す。  

特殊なパス

  • /dev/null (UNIX系): データを捨て去るための特殊なファイル。
  • ~ (チルダ): 現在ログインしているユーザーのホームディレクトリを示す。 

コメント