ファイル管理〜基本情報技術者合格のための学習法〜

基本情報

ファイル管理

ファイルとは

ファイルには大きく分けて、プログラムファイルとデータファイルの2種類があります。

プログラムファイル

OSやアプリケーションなどのソフトウェア全般を指します。

データファイル

写真や動画、パソコンで作成したエクセルのファイルや文章など、ユーザーが自分で作成したデータを指します。

ファイル形式

ファイルには、そのファイルの種類を示した拡張子という文字列が割り当てられていて、それぞれに対応したアプリケーションが存在します。

拡張子意味
テキスト形式(.txtなど)文字コードと、改行やタブなど一部の制御文字のみで作られるファイル形式です。
「.txt」だとWindowsだとデフォルトでインストールされている「メモ帳」で編集が可能です。
CSV形式(.csv)ひとつひとつのデータをカンマで区切ったテキストファイルです。行と行を改行で区切ることで、表計算ソフトやアプリケーションソフト間のデータ交換に特化したファイル形式です。
PDF(.pdf)パソコンの機種やOS等の種類に依らず、元の通りに再現して表示することができる電子文書のファイル形式です。
JPEG形式(.jpeg/.jpg)デジタルカメラの画像などで使用されている、フルカラー対応の画像形式です。
不可逆圧縮を行うため、圧縮レベルに応じて画像が劣化します。
PNG形式(.png)ウェブでの使用を目的にGIFの次世代形式として開発された、フルカラー対応で、可逆圧縮であるため画像の劣化もない画像形式です。
ただし単純な圧縮率ではJPEGの方が勝ります。
MP3形式(.mp3)最も普及している高圧縮音声形式です。CD並の音質で、データ量を一律ではないですが、約10分の1に圧縮できる。
MPEG1形式(.mpeg/.mpg)動画を圧縮して保存するファイル形式で、不可逆圧縮を行います。MPEG1は、ビデオCD用の基準で低容量、MPEG2は、ハイビジョン放送やDVDビデオなどの基準で高画質、MPEG4は、ストリーミングビデオ(インターネット配信)や携帯電話などで使われている規格などがあります。

MP3

マルチメディアデータの圧縮と伸張

画像や音声、動画などのマルチメディアデータは、そのまま保存すると膨大なデータ量になってしまします。

例えば1000万画素のフルカラー画像(24B)だと3648×2736×24で約30MBにもなります

圧縮と伸張

圧縮とは何らかの圧縮技術を用いて、ファイルサイズを小さくするための技術です。

音声の場合は人には聞こえない高音域の周波数の音を間引くことによって、音質を保ちつつデータ量を少なくしています。
動画の場合は時間軸に沿って各コマの変化があったとこだけをデータとして持つようにしています。

伸張とは圧縮したデータを開く時、元の状態に復元する技術です。

もともとのデータを間引く形で圧縮したものは、伸張後も完全な形では元の情報に戻りません。このような圧縮方法を不可逆圧縮と呼びます。
逆に元に戻せる場合は、可逆圧縮と呼びます。

ディレクトリ

ディレクトリは、ファイルをグループ化して整理するものです。
ハードディスクの中は、ディレクトリで管理されています。

詳しい記事はこちら

ルートディレクトリ

 一番上の階層のディレクトリを指します。

サブディレクトリ

 他のディレクトリに含まれるディレクトリのことです。
 通常、ディレクトリは、ひとつのルートディレクトリの下に配置されているため、ルートディレクトリ以外のディレクトリは、全てサブディレクトリであるとも呼べます。

カレントディレクトリ

 現在参照しているディレクトリを指します。
 カレントディレクトリを含む1階層上のディレクトリは、親ディレクトリと呼びます。

ホームディレクトリ

 ログインをした際に最初に移動するディレクトリを指します。

ディレクトリ

フォルダとディレクトリの違い
どちらも同じ意味です
しかしWindows系の話では「フォルダ」と、UNIX系(Linuxなど)では「ディレクトリ」と呼びます。
普通にパソコンを操作するときは「フォルダ」と表現していますが、プログラミングの場合は「ディレクトリ」と表現することが多いです。

絶対パスと相対パス

パスとは

ファイルは違うディレクトリだと同じ名前をつけて保存することができます。
つまり、ファイルに名前をつけて保存しただけだと、それがどのファイルを指名ているのか特定ができません。どこのディレクトリの下層にあるファイルなのか、わかるように、ファイルまでの場所を指し示す経路をパスと呼びます。
パスの指定方法には 絶対パスと相対パスの2種類あります。

絶対パス
 ルートディレクトリを基準としてファイルの位置を指定する方法です。

相対パス
 カレントディレクトリを基準としてファイルの位置を指定する方法です。

Macのターミナルでの入力方法

絶対パスはルートディレクトリ(/)から始まる位置の指定方法で表し、
相対パスはカレントディレクトリ(.)から始まる位置の指定方法で表します。

例えばホームディクトリ(Home)のダウンロード内の「Test.txt」というファイルのパスはこのようになります。

絶対パス

相対パス

ファイル構成法の種類とアクセス方法

汎用コンピュータでは、ファイルのデータ編成やそのアクセス法をOSが管理していました。
汎用コンピュータにおけるファイルは、一連のデータをまとめたものです。
レコードの集合がファイルです。

ファイル

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

 ファイルにデータ(レコード)を書きこんだり読み出したりすることをアクセスといい、その方式をアクセス法と呼びます。

順次アクセス(シーケンシャルアクセス)

先頭のレコードから順にアクセスする方式です。

順次アクセス

レコードの順に関係なく処理する場合、あるいは既に処理に適した順にソートされている場合で、大量のレコードが対象になるときに適しています。しかし、ある特定のレコードを探索する場合には、時間がかかります。
例:テープデバイスなど
直接アクセス(ランダムアクセス)

任意のコードに直接アクセスする方式です。

直接アクセス

大量のレコードを持つファイルを対象にして、少数のレコードをアクセスするときに向いています。
例:CDやハードディスクなど
動的アクセス(ダイナミックアクセス)

順次アクセスと直接アクセスを組み合わせたアクセス方式です。

動的アクセス

例:売上ファイルが商品別にソートされている場合、指定した商品の先頭のレコードを直接アクセスで探索し、それ以降を順次アクセスするような場合です。

ファイル編成方式

OS自身が、「どのようにレコードを格納するか」を定義付けた方法をファイル編成方式といいます。この編成方式により、ファイルのアクセス法が限定されます。

  • レコード
    • データの1件づつをレコードと呼びます
  • フィールド
    • 各項目をフィールドと呼びます
  • ファイル
    • 汎用コンピューターにおける、一連のデータをまとめたものです。
      レコードの集合体がファイルです

順編成ファイル(シーケンシャルファイル)

頭から順番にレコードを記憶していくファイル編成です。
順次アクセスのみ可能です。

最も基本的なファイル編成であり、レコードをそのまま連続して書き込むだけなので、記憶容量に無駄を生じなく一連のデータを大量に処理する用途に向きます。
しかし、レコードを挿入するときには、既存のファイルから、挿入直前のレコードまでを新しいファイルにコピーし、、挿入レコードを新ファイルに書き込んで、また既存ファイルから新ファイルにコピーする処理が必要になります。

直接編成ファイル(ダイレクトファイル)

直接アクセスに適した編成になっています。
レコードの中のキーを指定して任意のレコードを直接アクセスできます。

レコードの追加・削除が容易で小容量のデータを読み書きするのに向きます。
アクセスは高速になりますが、記憶領域が連続してとられないので無駄が生じ、使用効率はあまりよくありません。

直接編成ファイルには、次の2つの方式があり、それぞれキー値から格納アドレスを求める方法が異なります。

直接アドレス指定方式

キーの値の内容をそのまま格納アドレスとして用いる方式です。

キー値が連続した値の場合に向いていますが、キー値が連続していない場合使用されない領域が生じ、無駄が発生します。
間接アドレス指定方式(ハッシュ編成方式)

ハッシュ関数という計算により、キー値から格納アドレスを算出して用いる方式です。ハッシュ値を用いるので、ハッシュ編成方式ともいいます。

直接アドレス指定方式では、キーの値を求めるのに、既存のレコードの状況を知る必要があるのに対して、間接アドレス指定方式では、その必要がありません。
異なるキーなのに同一のハッシュ値になる(シノニム)ことがあります。(シノニムが起きたレコードはシノニムレコードと呼びます。)
シノニムが発生すると求めた値を別の式で再計算して、違う場所に納めないといけませんので、多発するとアクセス速度が落ちることになるます。
索引順編成ファイル(インデクスファイル、ISAMファイル)

索引(インデックス)による直接アクセスと、任意に索引を作ることによって、順次アクセスの両方のアクセスを備える編成法です。

索引順編成ファイルは、次の3つの領域があります。

  • 索引域(インデクス域)
    キーと格納位置アドレスの対応表です
  • 基本データ域(プライム域)
    レコードをキーの昇順で順編成ファイルの方式で格納する領域です
  • あふれ域(オーバーフロー域)
    基本データ域に格納できないレコードを格納する領域。
基本データ域を大きく設定すると、格納領域に無駄が生じますし、小さく設定すると、多くのレコードがあふれ域に格納され処理効率が低下します。それで、必要に応じて再編成します。
区分編成ファイル

一つのファイルを、メンバという順編成ファイルを複数区分し、それらを格納するメンバ域と、各メンバのアドレスを管理するディレクトリ域(登録簿域)で構成法です。

メンバを丸ごと追加・削除するのは柔軟に行えますが、レコード単位の挿入や左s駆除は順編成ファイルの欠点を引き継ぎ苦手とします。

おすすめの書籍はこちら

コメント

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