• ベストアンサー

ファイルとDBの違い

ファイルとDBって量以外にどのような違いがあるのでしょうか(p_-)

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.4

おそらく、汎用機(メインフレーム)系のファイル(データセット)と階層型データベースの違いをお尋ねだと思いますが、そのように明記されないと誤解される可能性が高いと思います。 他の方も書いておられますが、今日び、何も断りが無ければ、データベースといえばリレーショナルDB(またはオブジェクトDB)、ファイルといえばUNIXやwindowsの様な単純なバイトストリームのものを指します。世間的には、階層型データベース・ネットワークデータベースは絶滅したと思われている方もいるようです。 さて、ファイルとデータベースの違いですが、データベースは何らかの構造を持っていますね。(例えば、階層型データベースではレコードが親子の関係を持っています)。ファイルでは、レコードとレコードに関係をもたせることは出来ません。そのような構造は全てアプリケーション側で処理する必要が有ります。 また、データを管理するDBMSがあり、データの入出力はDBMSを介して行われるために、複数のアプリケーションで同じデータを変更して矛盾が発生するようなことが回避できます。 詳しくは参考URLを見てください。 それから、「索引ファイル」とは「索引(順)編成ファイル」のことではないのでしょうか? 「索引(順)編成ファイル」ならば、索引を収納する領域は持っています。 http://www5f.biglobe.ne.jp/~pafu/kihonweb/gozen/02/2_7.htm

参考URL:
http://www.techscore.com/tech/sql/01_02.html,http://www.lbm.go.jp/toda/library/vosfile.html
konnyaku
質問者

お礼

DBの方が良く見えるのですが、ファイルの方が良い場合もあるみたいですね。システムを変える必要がない(゜_゜>) やはりシステムを変えることの方が大変なのですか。新しい考えたかのファイル形式(゜_゜>) 特殊な扱い方をしたい場合と考えていいのでしょうか…。コスト面でファイルがあるという訳ではないのですね。階層型データベース、絶滅するとは、リレーショナルデータベースができるまでの過程だったのでしょうか。ありがとうございました。

その他の回答 (3)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

索引ファイル、ランダムファイル? 索引ファイルというのは、ファイルシステムではなく 単に索引情報がはいっているファイルの事じゃないでしょうか。 一般的にファイルシステムはOSの一部なのでOSの種類によると思います。 今データベースというと普通リレーショナルデータベースの事を指します。 windowsでもUNIXでも「 あいうえお」と書かれたテキストファイルを 全フォルダから検索したら相当時間がかかるかとおもいます。 索引についてはB-Treeで調べてみてください。 検索すればたくさんあるので。 最近のデータベースはそれほど単純では ないようですが。 http://www-6.ibm.com/jp/gto/seibu/it/020514.html

konnyaku
質問者

お礼

ありがとうございます。m(_"_)m 参考URLとっても分かりやすかったです。ポインタを読んでいるだけなのですね。ファイルシステムの話がなぜ出てきたのか分からないのですが、索引ファイルに入っている索引は何が入っているのでしょう(..) 階層型データベースって名前だけなのでしょうか(__)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

DB(RDBMS)とファイルシステムの最大の違いは検索能力だと思います。 たとえば100万件というデータがあったとしても DBなら、該当する1件のデータをすばやく検索できます。 しかし古いファイルシステムでは、ファイル名を検索する場合 シーケンシャルサーチ(上から順番に検索)しようとし 運が悪ければ100万回比較する事になってしまいデータ量が増えれば 増えるほどパフォーマンスが悪くなります。 Oracleなどのデータベースはデータそのものだけでなく 検索するための情報、索引も保存されます。 一般的に同じ文章データでもただのファイルと索引をもったDBのデータのなら DBのデータの方が5倍ほどデータ量が大きくなります。 #1の方の回答を少し誤解されているようです。 DBはサイズ、更新日、ACL以外の情報も多数持っているということです。

konnyaku
質問者

お礼

ご回答ありがとうございます。m(_"_)m ファイルにも索引ファイル、ランダムファイルがありますよね。それでも一件ずつ検索しているのでしょうか(・・? ファイルはキーだけは一件ずつ読んでいるとか(・・? DBはここら辺を探せ~と探しているのでしょうか(・・?

konnyaku
質問者

補足

(・・? ファイルの場合、索引ファイルだろうとランダムファイルだろうと一レコード読む。リレーショナル・データベースだとキーが含まれているテーブル一行を読む。階層型データベースだと親レコードを一レコード読む。こんな感じでしょうか(-_-)

  • mi-si
  • ベストアンサー率35% (200/567)
回答No.1

ファイルシステムもデータベースの一種と言えば終わりなんですが・・・。更にデータベースサーバーの上にファイルシステムを載せる事も出来ますし(Oracle Internet File System、WinFS) 実際のファイルをFILE型で入っているデータと見なしてしまうと、他のフィールドにファイルサイズ、更新日、ACLと言った固定したフィールドが入るだけですね。

konnyaku
質問者

お礼

ファイルにはサイズ、更新日、ACLがなく、DBにはあるということですか?ファイルサイズで処理していた覚えがあるのですが、あれはDBだったのか~(=_=)可変長にもファイルサイズ付きますよね。(・・?ありがとうございました。

関連するQ&A