1. ホーム
  2. sql

[解決済み] リレーショナルデータベースとグラフデータベースの比較

2022-09-25 04:14:46

質問

MySQLのような関係データベースと、Neo4jのようなグラフデータベースの長所と短所を説明してもらえますか?

SQLでは、様々なIDでリンクされた複数のテーブルを持っています。そして、テーブルを接続するために結合する必要があります。初心者の観点からすると、グラフデータベースのように最初から接続をエッジとして明示するのではなく、なぜ結合を必要とするようにデータベースを設計するのでしょうか。初心者は概念的に理解できないでしょう。おそらく、非常に技術的な、しかし概念的ではない理由があるのでしょう。

どのように解決するのですか?

実は、どちらのスタイルにも概念的な理由があるのです。 ウィキペディアの 関係モデル グラフデータベース はこれに関する良い概要を提供しています。

主な違いは、グラフデータベースでは、関係が個々のレコードレベルで保存されるのに対し、リレーショナルデータベースでは、構造がより高いレベル(テーブル定義)で定義されることです。

これは重要な意味を持ちます。

  • リレーショナル データベースは、膨大な数のレコードを操作するときに、より高速になります。 のレコードを操作する場合、リレーショナルデータベースははるかに高速です。 グラフデータベースでは、問い合わせの際に各レコードを個別に調査して グラフデータベースでは、問い合わせの際に各レコードを個別に調査し、データの構造を決定する必要がある。 グラフデータベースでは、データの構造を決定するために、問い合わせの際に各レコードを個別に調べる必要があるが、リレーショナルデータベースでは事前に分かっている。
  • リレーショナルデータベースでは、すべての関係を保存する必要がないため、ストレージスペースが少なくて済みます。 を保存する必要がないためです。

そうでなければ、同じものを何度も複製することになります。 つまり、グラフデータベースは、不規則で複雑な構造に適しているのです。 しかし、現実の世界では、ほとんどのデータベースは規則的で比較的単純な構造を必要とします。 そのため、リレーショナルデータベースが主流となっています。