質問
データベースを使用する場合のトレードオフと、他のオプションは何なのか疑問に思っていました。また、データベースに適していない問題にはどのようなものがありますか?
私はリレーショナル データベースに興味があります。
解決
データベースの概念は非常に広いです。私は私がここに存在するものの中にいくつかの単純化を行います。
いくつかのタスクでは、最も一般的なデータベースは、リレーショナル・データベースです。これは、リレーショナルモデルに基づいてデータベースです。リレーショナルモデルでは、各テーブルには、列の指定した固定番号を持っているテーブルに属する、行にデータを記述することを前提としています。あなたは、あなたのテーブルのすべての列に関するデータを含む単一のショット内の行を提供しなければならないことを意味し、「行ごと」ベースでデータを送信してください。すべての提出された行は、通常、時にはデータベースレベルで、テーブルレベルで一意である識別子を取得します。あなたは、テーブル内の特定のセルがそう、いわゆる「参照整合性」を維持するために、別のテーブルの行を参照しなければならないと言って、たとえば、リレーショナルデータベース内のエンティティ間のリレーションシップを作成することができます。
このモデルは正常に動作しますが、それはそこだけではないのです。いくつかのケースでは、データはツリーとしてよりよく整理されています。ファイルシステムは、階層型データベースです。ルートから始まり、すべてが構造のような木で、このルートの下になります。別のモデルは、キー/値のペアです。 SleepycatのBDBは、基本的には、キー/値の実体の店です。
LDAPは二つの利点がある別のデータベースです。店ではなく、一般的なデータを、それはデザインによって配布され、それが読み取り用に最適化されています。
グラフデータベースとtriplestoresは、あなたがグラフを保存し、同型の検索を実行することができます。あなたは、基本的には不明であるので、幅広いあなたのエンティティの記述の幅広いレベルを包含することができる非常に汎用的なデータセットを持っている場合、これは一般的に必要とされています。これは、列の非常に正確なセットで、あなたのテーブルを作成し、リレーショナルモデルに明確な反対であり、そしてあなたは、各列が含まれているために何が起こっているか知ってます。
いくつかのリレーショナル列ベースのデータベースも同様に存在します。代わりに、行ごとにデータを提出するには、列全体でそれらを提出します。
だから、あなたの質問に答えるために:データベースは、データを格納するための方法です。技術的にもテキストファイルには、データベース、ではないが、特に素晴らしいものです。データベースの背後にあるモデルの選択は、アプリケーションの典型的なニーズが何であるかに主に相対的です。
私はおそらく厳密には正しくない何かを言っているように、CWとしての答えを設定します。編集すること自由に感じています。
他のヒント
これはかなり広い質問ですが、データベースはリレーショナルデータを管理するのに適しています。選択肢はほとんど常に最も小さな/標準アプリケーションのために努力する価値されていない、独自のデータ保存と検索エンジンを設計する暗示ます。
データベースにあまり適していない典型的なシナリオは、この場合には、単純なファイルシステムのようなシステムが十分であることができる、論理ファイルの比較的少量として編成されている大量のデータの記憶装置である。
NOSQLデータベースを見てみることを忘れないでください。これはかなり新しい技術とリレーショナルデータベースに/規模に適合しないものに適しています。
データベースを使用します。
技術的には、ほとんどのものは、データベースに適しています。コンピュータは、データを処理するために作られており、データベースはそれらを格納するために作られています。
考慮すべき唯一のことは、コストです。導入コスト、メンテナンスコスト、時間の投資が、それは通常、それだけの価値になります。
あなただけの非常にシンプルなデータを格納する必要がある場合は、、フラット・ファイルは、代替(テキストファイル)になります。
注:あなたは、一般的な用語「データベース」を使用しますが、多くの多くの異なる種類及びこれらの実装があります。
。のために 検索アプリケーション, 全文検索エンジン (その一部は従来の DBMS に統合されていますが、一部は統合されていません) は、より優れた機能 (さまざまな言語認識、半構造化データを保持する機能、ランキングなど) とより優れた機能の両方を可能にする優れた代替手段となる可能性があります。パフォーマンス。
また、次のようなアプリケーションも見たことがあります。 設定データ データベースに保存されており、場合によってはこれが理にかなっていますが、 プレーンテキストファイルを使用する (または YAML、XML など) を使用し、初期化中に基礎となるオブジェクトをロードすることは、そのような代替手段の自己完結型の性質と、そのようなファイルの変更と複製の容易さのため、推奨される場合があります。
あ フラットログファイル, 、もちろん、使用状況によっては、DBMS へのログ記録の良い代替手段になる可能性があります。
つまり、過去 10 年ほどで、DBMS システムは一般的に、さまざまな形式のデータやさまざまな検索機能を処理できるようにするために、多くの機能を追加してきました (例:前述の全文検索、XML、BLOB のスマート ストレージ/処理、強力なユーザー定義関数など) より汎用性の高いものになります, 、したがってかなりユビキタスなサービスです。 その強みは依然として主にリレーショナル データにありますが、.