スキーマレスは、現在 NoSql の世界で出回っている用語です。
- これは何を意味するのでしょうか ?
- 現在、3 つのプロパティを持つドキュメントがあり、それを使用して運用に移行しました。その後、ドキュメントにさらに 2 つのプロパティを追加する必要がある場合、データはどうなりますか?
- これは純粋にデータの移行を管理する必要がある移行の問題ですか、それとも NoSql データベースは RDBMS と同じくらい多くの摩擦を生み出すことができますか、それとも何らかの方法で簡単にすることができますか?
スキーマレスは少し誤称です。次のように考える方がよいでしょう。
したがって、想定されるスキーマレスのNoSQLデータストアでは、理論的には、キーやデータ型についての事前の知識がなくても、好きなデータ(通常はキーと値のペアをドキュメントに)を保存できますが、データを取得して使用するためのメカニズム。したがって、基本的に、スキーマはRDBMSからアプリケーションコードに部分的に移動されます。ドキュメントコレクションにインデックスを追加したり、パフォーマンスのためにデータを分割したりするので、部分的に言います。そのため、NoSQL DBMSには、ローカルで定義された部分スキーマがあり、場合によっては一意の制約を介して適用されます。
ストア内のドキュメント/オブジェクトに属性を追加することについて。ドキュメント(未使用スペース)の周囲のパディングの量によっては、その物理データブロックで、ドキュメントにさらにいくつかのキーと値のペアを追加すると、ドキュメントをより大きな連続したストレージブロックに物理的に移動する必要が生じる場合があります。関連するインデックスが再構築されました。頻繁に使用されるクエリで新しいキーを使用する場合は、適切な新しいインデックスも追加する必要があります。これには明らかに物理ストレージが必要であり、最初にビルドするのに時間がかかり、場合によってはシステム管理者に次のように依頼する必要があります。新しいインデックスをキャッシュできるように、DBMSにより多くのメモリを割り当てます。
少し遅くなりましたが、トピックを再度検索しているときに、この記事を見つけました
http://tech.pro/tutorial/1189/basics-of-ravendb-nosql
記事のセクション 3 を参照してください。わかりやすくするためにもう一度引用します。
RavenDB へのデータ モデルの追加と変更は、これほど簡単ではありません。これは NoSQL データベースであるため、モデルへの追加と削除を非常に簡単に処理できます。プロパティがクラスに追加されると、そのタイプのデフォルト値に設定されます。プロパティが削除された場合、逆シリアル化時にその値は無視されます。もう SQL スクリプトをいじる必要はありません。
これが RavenDB の論理的な答えのようです。