正しいモデルを選択する:関係,文書,グラフデータベースの比較


データベースモデルとは何かデータベースモデルは、データがどのように格納されて、アクセスされることができるかについて決定する関係と制約を含むデータベースの論理構造を示します.
個々のデータベースは、デザイナーが採用するより広いデータモデルの規則と概念に基づいて設計されます.開発者は、これらのモデルを使用して、以下のような大規模な実世界プロジェクトのためのデータベースを戦略的に設計します.

  • 注文管理システム(ERP)例えば、建物の材料を販売する会社の典型的なデータベースは、次のように配置されるかもしれません:データベースの各々の顧客は、1つ以上のアドレス、1つ以上の接触電話と顧客と会社の間の連絡として機能するデフォルト販売員を割り当てられます.購入注文は、購入された材料、量、価格の種類を記録する別のテーブルに格納され、注文の責任を負う顧客.

  • ヘルスケア関連システム(EMRS)ヘルスケアプロバイダーは、多くの異なる州で複数のオフィスを持ちます.多くの医師は会社のために働いています、そして、各々の医者は複数の患者の世話をします.他の人は別のオフィスで別の日に仕事中にいくつかの医師は1つのオフィスで働く.この場合、データベーステーブルは、氏名、住所、連絡方法、専門領域、料金構造などの各医師の情報を追跡する.もう一つのテーブルは、患者、彼らの医学史、訪問と好ましい医者の記録を保つかもしれません.第3のテーブルにおいて、ヘルスケアプロバイダーは、患者および医師のアイデンティティを記録している予定についての情報を格納するかもしれなくて、任命の時間および場所およびコストを記憶することができる.

  • 科学研究.分子および細胞生物学のゲノムおよび関連する研究分野は、おそらく科学的データベースのユースケースの良い例である.これらのデータベースは、完全に配列されたゲノムおよびいくつかの部分ゲノム、ゲノムマップおよび生物情報のための遺伝子カタログ、およびデータベース内のすべての生物のすべての既知の遺伝子の間の配列類似性に関するデータを含むことができる.また、細胞内の分子相互作用ネットワークや化合物や反応に関する情報も含んでいる.
  • 現代のソフトウェアの背後にある高レベルのデータ構造を理解するために、3種類のモデルを調べます.
  • リレーショナル
  • 書類
  • グラフ
  • 各モデルは、それを使用している例会社が付属しています.ボーナスとして、今時代遅れのネットワークモデルを読むために最後までスクロールします.

    関係データベースモデル
    リレーショナルデータベースに最も近いアナログは、スプレッドシートです.しかし、スプレッドシートは個々のセルまたは行の間のリンクを格納しながら、リレーショナルデータベースストアデータ間のリンク.
    オンラインストアからの注文は、関係データベースモデルが良いものの規範的な例です.顧客には注文があり、注文には金額があり、金額は通貨があります.これらの関係は、それぞれのテーブルがどのように別のものにリンクするかを視覚的に記述することで表現することができます.

    テーブル間のこの関係の利点は、顧客データが変化するとき、このデータが1つの場所で更新される必要があるだけであるということです.たとえば、顧客が新しいメールアドレスを取得した場合、単一の行を変更することができますし、その顧客のすべての注文が自動的に新しいメールアドレスに関連付けられます.
    リレーショナルデータベースは、厳密なモデルを持つトランザクションデータに対してもうまく機能する.頻繁に変わることができて、色とサイズの多くの組合せがある製品カタログのような他のタイプのデータは、より良いデータモデルに適しています.

    リレーショナルデータベースモデル
    我々は、HibspotやSalesforceで使用されるようなCRMデータベースモデルに深いダイビングを持っている.リレーショナルプロパティの重要性を以下のポストに表示できます.



    ドキュメントデータベース
    一方、製品カタログのような不変のデータモデルはリレーショナルデータベースに適していないかもしれませんが、ドキュメントデータベースにとっては素晴らしいフィットです.これらのデータベースのほとんどは、情報を記録するためにJSONのような入れ子になったキー/値ストアを使用します、そして、我々はキー/価値と文書データモデルを同じ傘の下で考慮します.

    あなたがJSONに精通しているならば、あなたはそれがどれくらい柔軟性があるかについてわかっています.これらの制約はドキュメントデータベースに拡張されます.あなたはいくつかの項目、またはキーで起動することができますし、必要に応じて深くネスティングし、時間をかけてそれらを追加します.
    各キーは、多くの値を含むドキュメントにポイントします.ドキュメントは、2000のWordブログポスト、または数、またはリンク、または何かのような実際のドキュメントであるかもしれません.JSONと異なり、ほとんどのドキュメントデータベースは厳密に入力され、整数またはfloatで動作するかどうかを指定する必要があります.
    ドキュメントデータベースの問題は、リレーショナルデータベースで同じような保証を得ることができないことです.ですから、たまにデータを複製しているかもしれませんし、データが大きくなると進化してしまうかもしれません.しばしば企業は、ドキュメントと関係データベースのミックスを使用して終了します.いくつかの関係データベースも大きなサポートを提供します.

    ドキュメントデータベースモデル
    MongoDBとREDISはよく知られている文書データベースです.eBayはドキュメントモデルに大きく依存する電子商取引プラットフォームの典型的な例です.以下のイメージは、eBayデータベースシステムがどのように機能するかについての大まかな例です.


    グラフデータベースモデル
    グラフデータベースは、互いに接続されている各オブジェクトを表します.これはfinancial connections 企業間、ソーシャルメディア、ゲノミクス、およびグラフ構造に適している他のタイプのデータの間.最も有名なもののうちの1つgraph databases is neo4j , これは2000年代に開発された.
    グラフデータベースを作成するには、データをインポートする必要があります.あなたがA、B、およびCを持っていると言いましょう、AがBに接続されるならば、BはCに接続されます、そして、Cはあなたに接続されます、このようなデータを表すことができました.
    A, B
    B, C
    C, A
    
    このデータセットから作成されたグラフは完全に接続されます.私たちはグラフデータベースを使って質問をすることができましたデータベースは「AからBへ移動し、BからCへ進んでください」という答えを返します.「CからAへどうやって行けばよいのか」ということに注意してくださいデータベースは単に"CからAへの移動
    これは抽象的な例です.グラフデータベース上の本当のクエリを想像するには、さまざまなソーシャルメディアアプリのニュースフィードを考える.アプリケーションはあなたに接続を要求する必要があります、お友達に接続し、あなたの友人が気に入っている記事を投稿し、自分の記事に好きです.

    サンプルグラフデータベース

    Facebookは-最後の一瞥-と呼ばれる独自のグラフデータベースを実装Tao . 上の図は、単純なポストの接続がどれほど複雑かを示しています.今すぐニュースフィード全体を想像してください.
    タオは興味深い質問モードのカップルをサポートしています.つのオブジェクトが接続されているかどうかにかかわらず、ポイント質問は必須です.範囲クエリは、最近の投稿のようなものを見つけるために使用することができます.そして、カウント問い合わせはリストのようです:彼らは手でオブジェクトに関連したすべてのアイテムを得ます.かなり便利な場合は、社会グラフを解析する必要があります!

    正しいモデルの選択
    本稿では,関係データベース,文書データベースモデルの使用方法を検討した.私たちはどのようにそれぞれの仕事とどのような要因を決定するときにどのオプションがあなたのプロジェクトに最適かを判断する方法を見た.それぞれの利点と欠点を持っているので、あなたが構築を開始する前に、どの方向に行きたいかを決めるときに慎重に考える必要があります.

    アーカイブから:ネットワークデータベースモデル
    The network database model 複数のレコードを同じ所有者ファイルにリンクできます.モデルは反転木と考えられ,枝はメンバ情報であり,そのメンバの所有者はルートである.これは、ノード間で複数のリンケージが存在するため、多くのデザインの柔軟性を実現します.それを考えると、データベース内のほとんどのノードが互いに多くの関係を持つことを考える.

    ネットワークデータベースモデルはもはや1970年代にリレーショナルモデルに置き換えられている.以前の投稿でSQLの履歴を読むことができます.


    使用するデータベースシステムnetwork database model HP 3000、統合データストア、IDMS(Integrated Database Management System)、OpenVMS用のOracle Codasyl DBMSのイメージを含みます.

    例のネットワークデータベースモデル
    アメリカ軍とボーイング社はHP 3000 Sを実施し、今日も終焉は2010年であったとしても今日は使用している.Oracleのネットワークデータベースも使用され、サポートされます.下の図をレビューし、グラフベースのデータベースの図と比較します.何が違う?