スキーマがめったに変更を取得しないうちに、インスタンスが頻繁に変更されます。
比較表
比較基準 | スキーマ | インスタンス |
---|---|---|
基本 | データベースの説明 | 特定の時点におけるデータベースのスナップショット |
発生を変更 | まれな | 頻繁に |
初期状態 | 空の | 常にいくつかのデータを持っています。 |
スキーマの定義
スキーマはデータベースの完全な設計であり、 意図とも呼ばれます。 名前付きオブジェクトのコレクションです。 表の名前、各表の列、データ型、トリガー、関数ビュー、パッケージ、およびその他のオブジェクトは、スキーマに含まれています。 スキーマ内の変更はそれほど頻繁には適用されませんが、アプリケーション変更の要件として変更を適用する必要がある場合があります。 スキーマの変更または変更は、 スキーマ革命として知られています 。
学生データベースの例を見てみましょう。 学生データベースのためのスキーマ図は、名前、コース詳細、学業成績および他の情報のような学生の情報に関するテーブルを含むことができる。 以下のスキーマ図では、studentとcourseという名前の2つのレコードとその属性を作成しています。
データベースシステムは、物理的、論理的および外部/サブスキーマなどの抽象化レベルに従って分離された様々なスキーマを有する。 一般に、DBMSは1つの物理的な論理的なスキーマと複数のサブスキーマを支援します。
- 物理スキーマは、データがディスクまたは物理ストレージにどのように格納されているかを記述するスキーマの最下位レベルです。
- 論理スキーマは、データベースの構造をデータベース設計者に記述するスキーマの中間レベルです。 データ間にどのような関係が存在するのかも指定します。
- 外部スキーマまたはサブスキーマは、エンドユーザーのビューを定義する最高レベルのスキーマです。
インスタンスの定義
インスタンスとは、ある特定の瞬間にデータベースに収集された情報であり、 状態または拡張とも呼ばれます。 これは、データベースの現在の状態または発生がその時点で囲まれているスナップショットです。 データベースにデータが挿入または削除されるたびにデータベースの状態が変化するため、データベースのインスタンスが頻繁に変化します。
データベースのスキーマは、新しいデータベースが定義されたときにDBMSに指定され、その時点で対応するデータベースは空であるため、空のインスタンスを持ちます。 データベースの初期状態は、データベースに初期データが最初にロードされたときに取得されます。 それ以降は、データが更新されるたびに、新しいデータベースインスタンスが取得されます。 どの時点でも、データベースに関連付けられた現在の状態があります。 インスタンスがスキーマで指定された構造と制約を保証する場合、DBMSはデータベースの有効なインスタンスを確認することに対して部分的に責任を負います。
インスタンスで同様の例を見てみましょう。 ここでは、学生構成体は属性にそれぞれの実体を含みます。
スキーマとインスタンスの主な違い
- スキーマはデータベースの設計表現であり、インスタンスは特定の瞬間におけるデータベースのスナップショットです。
- データがデータベースから削除または追加されるたびに、インスタンスは非常に頻繁に変更されます。 反対に、スキーマの変更はめったに起こりません。
- たとえば、スキーマとインスタンスは、プログラムと同じように容易に認識できます。 プログラム言語でプログラムを書くとき、そのプログラムの変数は最初に宣言されます、これはスキーマ定義に類似しています。 さらに、プログラム内の各変数には、特定の時点で関連付けられている値が必要です。 これはインスタンスに似ています。
結論
スキーマとインスタンスはどういうわけか関連しています、スキーマはデータベースが最初に設計されているデータベースの初期状態です。 一方、インスタンスは、データがデータベースにロードされたとき、または対応するデータベースによって何らかの変更が取得されたときの状態です。 スキーマはデータベースの構造の詳細な説明ですが、データベースの特定の瞬間に格納された情報はインスタンスと呼ばれます。