- ベストアンサー
ファイルとDBの違い
ファイルとDBって量以外にどのような違いがあるのでしょうか(p_-)
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
おそらく、汎用機(メインフレーム)系のファイル(データセット)と階層型データベースの違いをお尋ねだと思いますが、そのように明記されないと誤解される可能性が高いと思います。 他の方も書いておられますが、今日び、何も断りが無ければ、データベースといえばリレーショナルDB(またはオブジェクトDB)、ファイルといえばUNIXやwindowsの様な単純なバイトストリームのものを指します。世間的には、階層型データベース・ネットワークデータベースは絶滅したと思われている方もいるようです。 さて、ファイルとデータベースの違いですが、データベースは何らかの構造を持っていますね。(例えば、階層型データベースではレコードが親子の関係を持っています)。ファイルでは、レコードとレコードに関係をもたせることは出来ません。そのような構造は全てアプリケーション側で処理する必要が有ります。 また、データを管理するDBMSがあり、データの入出力はDBMSを介して行われるために、複数のアプリケーションで同じデータを変更して矛盾が発生するようなことが回避できます。 詳しくは参考URLを見てください。 それから、「索引ファイル」とは「索引(順)編成ファイル」のことではないのでしょうか? 「索引(順)編成ファイル」ならば、索引を収納する領域は持っています。 http://www5f.biglobe.ne.jp/~pafu/kihonweb/gozen/02/2_7.htm
その他の回答 (3)
- sha-girl
- ベストアンサー率52% (430/816)
索引ファイル、ランダムファイル? 索引ファイルというのは、ファイルシステムではなく 単に索引情報がはいっているファイルの事じゃないでしょうか。 一般的にファイルシステムはOSの一部なのでOSの種類によると思います。 今データベースというと普通リレーショナルデータベースの事を指します。 windowsでもUNIXでも「 あいうえお」と書かれたテキストファイルを 全フォルダから検索したら相当時間がかかるかとおもいます。 索引についてはB-Treeで調べてみてください。 検索すればたくさんあるので。 最近のデータベースはそれほど単純では ないようですが。 http://www-6.ibm.com/jp/gto/seibu/it/020514.html
お礼
ありがとうございます。m(_"_)m 参考URLとっても分かりやすかったです。ポインタを読んでいるだけなのですね。ファイルシステムの話がなぜ出てきたのか分からないのですが、索引ファイルに入っている索引は何が入っているのでしょう(..) 階層型データベースって名前だけなのでしょうか(__)
- sha-girl
- ベストアンサー率52% (430/816)
DB(RDBMS)とファイルシステムの最大の違いは検索能力だと思います。 たとえば100万件というデータがあったとしても DBなら、該当する1件のデータをすばやく検索できます。 しかし古いファイルシステムでは、ファイル名を検索する場合 シーケンシャルサーチ(上から順番に検索)しようとし 運が悪ければ100万回比較する事になってしまいデータ量が増えれば 増えるほどパフォーマンスが悪くなります。 Oracleなどのデータベースはデータそのものだけでなく 検索するための情報、索引も保存されます。 一般的に同じ文章データでもただのファイルと索引をもったDBのデータのなら DBのデータの方が5倍ほどデータ量が大きくなります。 #1の方の回答を少し誤解されているようです。 DBはサイズ、更新日、ACL以外の情報も多数持っているということです。
お礼
ご回答ありがとうございます。m(_"_)m ファイルにも索引ファイル、ランダムファイルがありますよね。それでも一件ずつ検索しているのでしょうか(・・? ファイルはキーだけは一件ずつ読んでいるとか(・・? DBはここら辺を探せ~と探しているのでしょうか(・・?
補足
(・・? ファイルの場合、索引ファイルだろうとランダムファイルだろうと一レコード読む。リレーショナル・データベースだとキーが含まれているテーブル一行を読む。階層型データベースだと親レコードを一レコード読む。こんな感じでしょうか(-_-)
- mi-si
- ベストアンサー率35% (200/567)
ファイルシステムもデータベースの一種と言えば終わりなんですが・・・。更にデータベースサーバーの上にファイルシステムを載せる事も出来ますし(Oracle Internet File System、WinFS) 実際のファイルをFILE型で入っているデータと見なしてしまうと、他のフィールドにファイルサイズ、更新日、ACLと言った固定したフィールドが入るだけですね。
お礼
ファイルにはサイズ、更新日、ACLがなく、DBにはあるということですか?ファイルサイズで処理していた覚えがあるのですが、あれはDBだったのか~(=_=)可変長にもファイルサイズ付きますよね。(・・?ありがとうございました。
お礼
DBの方が良く見えるのですが、ファイルの方が良い場合もあるみたいですね。システムを変える必要がない(゜_゜>) やはりシステムを変えることの方が大変なのですか。新しい考えたかのファイル形式(゜_゜>) 特殊な扱い方をしたい場合と考えていいのでしょうか…。コスト面でファイルがあるという訳ではないのですね。階層型データベース、絶滅するとは、リレーショナルデータベースができるまでの過程だったのでしょうか。ありがとうございました。