• ベストアンサー

ファイルと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

  • DBファイルの開き方

    拡張子がDBというファイルが開けません。どうしたら良いのですか?

  • DB2のファイル読込み

    DB2にinsert文を書いているファイルを読込ませて、実行させたいのですが、ORACLEで@に該当するコマンドがDB2に存在するのでしょうか?存在するなら教えてください。

  • ORACLEとDB2の違い

    ORACLEとDB2の違いはなんですか?ORACLEをある程度理解できていれば、DB2は理解できているのと同じですか?

  • DBファイルについて

    デジカメで撮影した画像を削除してしまい、ゴミ箱も空にしてしまいました。無駄を承知で復元をし、削除したファイルを検索したらDBファイルとなっていました。このファイルは開けないのでしょうか?教えてください。 画像を取り組んだソフトは、デジカメDE同時プリントです。復元したあとこのソフトの写真の検索で、完全に削除した画像が表示されました。しかしファイルの移動 コピーが出来ません。どうして画像があるのにファイルがないのですか? DBファイルと関係があるのですか教えてください。

  • thumb.dbファイルが見当たらないのですが、どうしてなのでしょうか?

    バックアップツールを使ってバックアップしてみると、thumb.dbというファイルも バックアップされていることが分かります。 しかしながら、エクスプローラーで全てのファイルを表示するにしても、 thumb.dbファイルは見当たりません。 どうしてなのでしょうか?

  • dbファイル?

    ホームページビルダーでHPを作製しています。 未使用ファイルの中に「dbファイル」という種類の、サイズが大きなものがあります。自分で作製した事もないし、これはいったい何なのでしょうか?削除してしまっても構いませんか?

  • MySqlで、DBのファイルサイズ圧縮は?

    お尋ねします。 MySqlのINNODBのファイル容量を削減する方法は、 1.mysqldump -A -u root -p パスワード --opt > ダンプファイル名 でダンプ 2.DBファイルを”rm”で削除(あるいは、別フォルダに退避) 3.CREATE DATABASE データベース名 CHARACTER SET utf8; でDB再構築 4.mysql -u root -p パスワード < ダンプファイル名 でリストア で、良いんでしょうか?(^^;

  • DBファイルが0644になってしまう

    Linuxで perl5.005_03 + AnyDBM_FileでDBを作ろうとしているのですが、 作成された DBのファイルパーミッションが「0644」になってしまいます。 「0444」だと意味はありませんが正しく設定されます。 「0777」だと「0744」になりました。 以下のようにやっているのですが、何が間違えているのでしょう。 それとも操作に関しての権限が「0666」になるだけで、実際のファイル パーミッションは後から変更しないといけないのでしょうか? ---------------------------------- use Fcntl; use Config; use AnyDBM_File; $flags = O_CREAT | O_RDWR | &BINARY; tie( %HASH, AnyDBM_File, dbmfile, $flags,0666 ) || die "Can't open DB\n"; ~処理~ untie( %HASH ); sub BINARY{ return O_BINARY if $Config{osname} =~ /^(MS)?Win/; }

    • ベストアンサー
    • Perl
  • DB2でのcsvファイルのインポート

    今、IBM DB2 for Windowsを扱っているのですが、 csvファイルのインポートが良くわかりません。 csv形式で保存されているファイルがあるのですが、 そのファイルを元にテーブルを作りたいんです。 SQL以外で、何か簡単にできる方法は無いのでしょうか? また、やり方を解説しているページがあれば教えてください。 お願いします。

  • 拡張子: .db ファイルが開けない

    拡張子: .db ファイルを開きたいです。 スカイプの会話ログをスカイプを起動しないで見たいのです。 バージョンを入れ替えたりするとき、いくつかmain.dbをコピーしていたのですが、どれがいつのだか分からなくなってしまいました。 よろしくお願いします。

    • ベストアンサー
    • Skype