単一テーブルの継承とは
単一テーブル継承は、通常データベースプログラムには含まれていないオブジェクト指向の継承をリレーショナルデータベース用にエミュレートするコーディング方法です。 これを使用することにより、ユーザーは単一のテーブル内の多くの異なるラベル間の関係を確認できるようになり、ユーザーがデータをダイジェストまたは追加しやすくなります。 nullフィールドが多数ある場合、またはリレーションが多数ある場合、単一のテーブル継承を使用すると、予期しない結果が返され、高度なデータベース設計者でも混乱する可能性があります。 このデータベース継承スキーマを使用すると、単一のテーブルにデータが階層的に表示されます。
リレーショナルデータベースは、データのグループを別のグループに関連付けるデータベースであり、通常は階層マップを持ちます。 たとえば、誰かがリレーショナルデータベースを介して本を検索している場合、通常、著者、ジャンル、本の最初の文字、そして本のリストのフィールドを見つけます。 通常の場合、各フィールドには独自のテーブルがあり、テーブル間でユーザーを仲介することを除いて、テーブルが相互作用することはほとんどありません。
単一テーブルの継承では、すべてのフィールドが1つのテーブルに表示されます。 これは見やすく、ふるい分けやすいです。 表に表示されるすべてのデータは、上から下に向かって表示されます。 これは、著者が単一の表の一番上にあり、本の最初の文字が一番下にあることを意味します。
データベース設計者がコーディングに精通していない限り、最初は単一のテーブル継承モデルを作成するのは困難です。 通常、データベースからオブジェクト指向プログラミングスキーマ内のオブジェクトを分離するマップを作成します。 複数のクラスが必要です。そうでないと、すべてが1つのテーブルにグループ化されません。
2つのタイプの問題により、単一テーブルの継承が適切に機能しない場合があります。 1つは、オブジェクトがヌル値を表す場合です。 これが発生すると、null値に継承テーブル内の貴重なデータが振りかけられます。 これは、テーブルに関連情報が表示されることを意味しますが、数行ごと、または多くの場合null値が発生しても、「null」という単語が別の値の近くまたは下に表示されます。
マッピングされるオブジェクトに多くの階層、特に類似していない階層がある場合、単一テーブルの継承の問題も発生する可能性があります。 多くの階層では、設計者が1つを見逃して、リレーショナルエラーを引き起こす可能性があります。 階層が類似していない場合、リレーショナルデータベースは、データセット間で行われたマッピングを理解するのに問題がある可能性があります。