データベーススキーマ
リレーショナルデータベース管理システム(Microsoft SQL Serverなど)のようなスキーマベースのデータベースは、あらかじめ定義された構造(スキーマ)にデータを格納します。 テーブル、フィールドとそのフォーマット、インデックス、テーブル間のリレーションシップなど、データがどのように保存されているかを正確に説明する構造です。
スキーマはデータの論理構成を定義するものなので、データをそのスキーマにマッピングする方法や、スキーマに合わせてデータを修正する方法を理解する必要があります。 スキーマに対応しないデータは、データベースに保存されない。 スキーマを実装した後に変更することも可能ですが、その場合はデータベースをオフラインにして変更を行い、その変更をサポートするためにデータを修正する必要があります。
スキーマは、データがどのように整理され、どのような構造になっているかを明確に理解することができ、あるシステムから別のシステムへのデータ移行を効率化することができる。
スキーマレスデータベース
スキーマレスデータベースとは、データがデータベースに追加される前に適合しなければならない、あらかじめ定義されたスキーマがないことを意味します。 その結果、データの構造を知る必要がなく、すべてのデータを簡単かつ迅速に保存することが可能になります。
スキーマレスデータベースは、データがリレーショナルテーブルに格納されないため、NoSQLデータベースとして知られています。 その代わりに、キーバリューペア、ドキュメント、カラム、グラフデータモデルなど、異なる方法でデータを保存します。 スキーマレスデータベースの例として、MongoDBやRavenDBがあります。
スキーマとスキーマレスデータベースの比較
スキーマベースのデータベースと比較して、スキーマレスデータベースにはいくつかの利点があります。 まず、データ型に対する自由度が高い。 また、データベースをオフラインにしたり、接続されているシステムを更新したりすることなく、データタイプを変更することができます。 また、スキーマレスデータベースはインフラの観点からも拡張性が高く、非常に大きなデータセットを保存することが可能です。 スキーマレスデータベースの欠点は、データベースを照会するための共通の言語や構造がないため、開発者以外には難しいことです。