アプローチ目次 戻る 次へ

シーケンシャルファイル
昔々のパソコンのお話から始めます。

8ビットのパソコンというものが有りました。
「8ビットパソコン」とは、8個の信号を同時に処理するパソコンのことです。現在のWINDOWSのNTや2000は32ビットですね。

4倍も同時に処理するってことなんです。

「そんなこととデータベースが何の関係があるんじゃ!(-_-メ)」ってしかられそうですが・・・


まず、パソコンの作業はメモリーの中で行われます。
その中にはウインドウズのプログラムやらアプリケーションのプログラムがまず存在します。

そしてユーザがキーボードにより入力されたデータが発生し追加されます。

追加されたデータは「ファイルの保存」という操作でディスクなどの「パソコンの電源を切っても消えない記録媒体」に保存されます。

この時、メモリーもディスクも番地単位に電気信号が記録されます。
それを数値の16進法にします。そのほうが分かりやすいんです。

次の図は、記録されたファイルを16進法で表示させたものです。

注の1、1バイト(8ビット)分を1単位とし、それをメモリーなどに1番地ずつ割り振ったものと仮定して表示されています。
実番地ではありません。

注の2、図左の10は16進法の10ですから、10進法では16になります。


4つの「1と0」で「0からF」で表示できるのですから8個で「3C」などとできる、つまり「256通り」の組み合わせができる。
キーボード上にある英数、カナ、記号、その他のキーは全て収まります。
これら、キーボードの文字(それ以外を含む)コードのことをキャラクターコードと呼んでいます。

これらのコードを使ってプログラミングが可能なのです。

ところがどっこい、困った問題が・・・実は日本語がだめなんですね。
このままでは漢字やひら仮名が使えない。扱わなければならない文字数が多すぎるんです。

そこで考え出されたのが2バイトの文字コードです。
「3C21」で1つの文字とする・・・です。
難しい漢字は「4桁のコード入力」ってのがあったですね。これです。
ですがパソコンは1処理は1バイト、しかたがないので2回の処理を1つとして扱う・・・で解決。

でもそれじゃ処理が遅いんです。
そこで16ビットパソコンが・・・となってきます。

ここでのポイント、
メモリーもディスクも、ファイルはコードで番地の順番通りに記録される。

要素
上の図は、実はいくつもの大事な要素を含んでいます。

1、作成されたファイルの処理は結果が決めること。

ファイルは、数値のデータでしかありません。
そのファイルが「数値データでテキストエディターで処理可能なら、それがテキストファイルである」という点です。

処理できないのならテキストファイルではないわけです。
アプリケーションであったり、画像ファイルであったりするのです。

図は、HTMLファイルです。
このファイルはテキストエディタで処理可能ですから、その意味では「テキストファイル」です、しかし、ブラウザで処理すれば「プログラムファイル」にもなるのです。
でも、このファイルを使用してパソコンは終了できない(-_-;)

つまり、処理される結果が全てです。

ここでは、「テキストファイル」が少しでも分かっていただけたらと思います。
パソコンに「文字データ」ということが分かってもらえるならそれが「テキストファイル」ということなのです。


2、この図のファイルは「テキスト形式のシーケンシャルファイル」である。(ここからがほんとに本題です!)

シーケンシャルファイルの特徴

0000 0001 0002 0003
A B C D

表はメモリーの各番地に順にA・・Dという文字データが入っています。
もしも先頭の「0000番地」にZが入ると

0000 0001 0002 0003 0004
Z A B C D

このようにA・・Dが一つずつ後の番地にずれていきます。
もしも1万個の文字データが入っていれば、この1万個の文字データもずれるわけです。

ワープロを使ったことのあるユーザはとっくにご存知ですね。
しかしながら、問題が時に生じます。
それはメモリーの中に文字データが入りきらない場合です。

例として

インターネットエクスプローラのメニューに「表示」があります。
その中に「ソース」というのがあるんですが
これを使うとホームページ表示に使われている「HTML」を見ることが出来ます。

普通は「メモ帳」が起動しますが、とても大きなものであればワープロソフトが起動します。

これは「メモ帳」で処理できない、つまり「メモ帳」で決めている範囲のメモリーに入りきらない場合ということなのです。

「メモ帳」は文字データを全てメモリーの中に読み込んで処理します。
ですから、とっても軽い感じで操作できます。

では、ワープロソフトはどうしているのでしょう。

ワープロソフトは、いったんTEMPファイル(一時的なファイル)を作成し、ハードディスクに仮に保存します。
その一部だけをメモリーに読み込んで処理するのです。

だから、処理も遅くなります。
さらに、その他の情報も付加されることがありますから、よけい遅くなったりします。

また、このファイルのことを知っておくと、もしもパソコンが異常な状態で終了したとき、この一時ファイルの名前を変更することで再処理が可能な場合があります。
(アプリケーションによっては再起動時、これを利用して自動的に回復処理を行うものもあります)


編集作業を続け完成するとTEMPファイルなどと合わせて保存します。
もしも、以前に作成されたファイルを編集したものであれば、保存時に以前のものを消去し、改めて
同じ名前で保存します。
これが「上書き保存」です。

ここでのポイント、
シーケンシャルファイルは基本的にメモリーで処理され、データが追加されれば、それ以降のデータは、全てその追加分だけ後へずれる。

また、上書き保存時は、前のファイルをいったん消去して改めて保存する。

(「別の名前を付けて保存」する場合は除く)

アプローチ目次 戻る 次へ