2

Nosqlデータベースの意気消沈とは正確には何ですか? 私はそれが異なるオブジェクトタイプを異なるドキュメントとしてモデル化することを意味すると読んだことがあります。私の最初の推測では、関連データを保存せずに集約を意味するということでした。つまり、エンティティのすべての行を単一のドキュメントに保存し、関連データは行ごとに異なるドキュメントによって参照されます。しかし、これが正しいかどうかはわかりませんか?例が役に立ちます。前もって感謝します

私は意気消沈を意味しており、非正規化ではありません。この用語は、次のリンクで見つけました。 1. Couchbase のドキュメント 2. Nosql のブログ

4

3 に答える 3

2

NoSQL(および一般的なデータベース)のコンテキストでは、士気喪失は非正規化と同義です。多くの文書で士気喪失と非正規化の混合使用法を見つけることができます。または、士気喪失が正規化の反対であることに言及しています(これも非正規化と同じです)。

一部/多くのスペルチェッカーが「非正規化」ではなく「士気喪失」を示唆しているという言及もあります。これは、一部の人々が士気喪失を使用する理由を説明する可能性があります:非正規化の効果

于 2012-12-07T21:04:45.140 に答える
1

NoSQLは非常に幅広い分野です。これは、データの構造化方法についてまったく異なる概念を持つ、まったく異なる多くのデータベースシステムを対象としています。

データベースの正規化の教義は、主に従来のリレーショナルデータベースに適用されます。NoSQLデータベースがリレーショナル哲学から離れるほど、このドグマに疑問を投げかける必要があります。

正規化の哲学は、データベースのJOINが安価であることを前提としています。したがって、冗長性を排除するために複数のテーブルに分割できるデータはすべて分割する必要があります。ただし、これはすべてのNoSQLデータベースに当てはまるわけではありません。それらのいくつかはJOIN操作をサポートしていないため、多くの異なるデータベースエントリにデータを格納することは、データベースへの複数の連続したクエリまたは高価なデータベース側のコード実行を必要とする非常に高価な操作になる可能性があります。これらのデータベースの1つを使用する場合は、データが冗長になる場合でも、できるだけ少ないエントリを検索することで、パフォーマンスが重要なすべてのユースケースを満たすことができるようにデータを保存する必要があります。

JOINをサポートしない非リレーショナルNoSQLデータベースは、代わりにデータベースエントリの配列をサポートすることがよくあります。これらは通常、1:nの関係をモデル化するための好ましい方法です。したがって、1人の人がn個の電話番号を持っている場合、電話番号を別のテーブル/ドキュメント/コレクション/何を呼び出しても保存せず、人のエントリの配列に保存します。SQLが単一のフィールドの複数の値で適切に機能できない場合は、通常、電話番号を自立したエンティティとして処理する理由はありません。

于 2012-12-07T14:02:50.360 に答える
1

NoSQL の世界での非正規化は、RDBMS の世界と同じ意味になります。読み取りパフォーマンスのためのデータの複製。

于 2012-12-07T13:16:12.840 に答える