”ディレクトリの中”

  • 投稿日:
  • by
  • カテゴリ:



昔から違和感があります。


"ファイルをディレクトリの中に入れる"という言い回しです。


受けた教育が古いからなのか、私にとってディレクトリというのは、索引か目次のことです。


しかし他の人の話を聞いていると、まるでファイルシステム上にディレクトリという入れ物があり、その中にファイルが記録されているような説明をしているのです。


これはたぶんAppleが戦犯で、ディレクトリをフォルダと言い換えたのが原因でしょう。ディレクトリをフォルダと言い換えたのは、ユーザにとってはより直感的なもので好ましいことです。


ですが、少なくともソフトウェアエンジニアであれば、それが言い換えであることは把握しておいた方がよいと思うのです。


ファイルシステム上にディレクトリという入れ物は無いということです。せいぜいファイル名一覧か、ノードポインタのリンクリストがあるだけだということです。


もちろん、それも今現在メジャなファイルシステムでだけ成り立つ話ではありますが。



昔の教育を受けた人なら当然ご存知のはずですが、2次記憶装置にデータを記録するとき、



  • 固定長のレコード

  • 可変長のレコード

  • 可変長のレコードで索引付き


などの分類がなされます。分類は本によって違うと思います。


蛇足ですが、アクセス性については、



  • シーケンシャル

  • ランダムアクセス


があります。


ファイルシステムというのは、可変長レコードで索引付きのもののうち、索引のインデクスが/hoge/bar/fooと言う風に可変長文字列でアクセスできるものであるに過ぎません。


RDBなら固定長レコードです。装置ひとつの記憶容量が小さいとき、つまり1テーブル/1装置なら簡単ですが、記憶容量が増えれば、1装置に複数のテーブルを入れるように拡張したくなるのが人間のあさましさです。それではと、複数のフォーマットの固定長のレコードを自由自在にひとつの記憶装置に押し込んで編集できるようにしたら便利ですよという押し売りがはじまるわけです。たぶんその辺がRDBMSの起源だと勝手に思っています。ご存知の方はお知らせください。


ややこしいのは最近のRDBは以前と違って、いわゆるファイルシステム上のファイルとしてデータベースを保存する場合があることです。一昔前は、いけしゃあしゃあと、



ファイルシステム上にDBを置いたりしたら、信頼性も性能も全く担保できなくなります。


ええもちろん、OSとは別パーティションにしたくらいではだめです。OSなんか信用できません。


物理的に別ドライブにしていただかないと。できればインタフェースも別のものがよいです。



というような、"ベンダしかしらない貴重なノウハウ"とやらを披露してくれるのが普通だったと思うのですが。



いずれにしても、ファイルシステム上にDBを格納すると言うのがいかに非効率的で間抜けであるかについては私も同意します。