アプリ版:「スタンプのみでお礼する」機能のリリースについて

Cやjavaなどの言語で、データをテキストファイルか何かに
吐き出すことでも、簡単なデータ管理は実現可能です。

オラクルなどのデータベースを利用することの具体的な利点はなんでしょうか?

データベースの利点がわかるような例えがあれば、併せて教えてください。

A 回答 (4件)

例えば100万件のデータから、1件を抽出するとき


ファイルでは大変な時間がかかるでしょう。
しかしリレーショナルデータベースでは、
しかるべき索引があれば一瞬ですみます。

またセキュリティもデータベースならばそれぞれのDBMSで
きめの細かい指定が可能です。
(aさんは読込のみ、bさんは更新はできるが削除はさせないなど)
暗号化などの対策も比較的簡単です。
ファイルで暗号化を行うとメンテナンスは手動ではほぼ不可能ですよね。

扱うデータの容量が多くセキュリティに気を遣う必要があるシステムでは
ほとんどデータベースが使われます。
逆に簡便で軽量かつ秘守性のないシステムならば
ファイルによるデータ蓄積で充分、ということになると思います。
データベースを使う必要性は無いと言えます。
    • good
    • 0

> 簡単なデータ管理は実現可能です。



おっしゃるとおり、「簡単ではないデータ管理」に使うのではないかと。

性能に対しての考え方は時代により変化していくでしょう。

DBやファイルに依存するより、メモリにのせた方が桁違いに早いので、
容量が小さいものは、起動時に読み込んじゃった方が早いです。
メモリの値段は、年々安くなって、今ではPCだってサーバーだって
数ギガ積むのが当たり前ですよね。
ということは、1GB程度のデータならメモリに読んじゃった方が
性能は桁違いに早いです。
10年後には、もっと多くのメモリを積めるでしょうし、SSDだって登場します。
DBよりファイルアクセスが優位に立つ時代も近いかもしれません。

一方、簡単なデータ管理にも使うケースがあります。

簡単なデータ管理も、Webサーバーのように複数から同時アクセスがり、
しかもファイルの更新がある場合、ファイルで正しく更新の制御を行う
のはものすごく大変です。
でも、DBならファイル操作に比べて簡単に出来上がります。
多くの技術者が慣れている、という場合もあります。
ミドルウェアを購入することは、手順化された手続きを買うというケースも
あります。
    • good
    • 0

こんにちは。


ぱっと思いついた事を羅列していきますね。
・SQLという共通言語でデータの取り出し、操作が行える事。
・トランザクション等の仕組みが提供されていて、複数ユーザで同時アクセスしてもデータの不整合が起こらない事。
・データが破損した時に、データを復元する方法が提供されている事。
・他の回答者様による「大量データアクセス時も効率よく目的のデータを取得できる事」

データ不整合やデータ消失をさせずに、効率的なデータアクセスを提供しますよってのが利点です。

参考URL:http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/97 …
    • good
    • 0

答えは他の方がすでに出していますので、ちょっと違う回答をします。


テキストファイル・データベースそれぞれ利点があります。
扱うデータの量が少ない時はテキストファイルが向いています。(扱いが簡単なため)
しかし膨大なデータを扱う事を考えてみてください。

(例 : 図書館のデータ。本が300万冊あるとする)

ISBN 著者 タイトル 本棚の番号
00909 オラクル太郎 データベースの謎 C3
03033 吉野家一郎 牛丼の謎 D2

(中略:300万行)

39993 砂漠五郎 砂漠の謎 E3

これをテキストファイルに保存した時、"JAVAの謎"というタイトルの本の本棚の番号を調べるプログラムを書く事を想像してみてください。
300万行逐一アクセスしていては膨大な時間がかかってしまいます。

しかし、データベース等を用いて、タイトルにインデックス(索引)をつけていれば、一瞬で見つかります。インデックスの付け方にもよりますが、22回もアクセスすれば見つかります。スピードにして1万倍以上です。
しかし、本が5冊しかないならば・・データベースは不要と言えます。

他にも利点・欠点はありますので用途に応じて選べばいいと思います。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す