-1

データベース(ERモデル)を設計し、CHECKING-ACCOUNT、SAVINGS-ACCOUNT、およびLOAN-ACCOUNTの3つのテーブルがあるとします。スーパータイプのサブタイプテーブルの利点

Tables

スーパータイプのサブタイプの関係を認識しているとします。そこで彼はスーパータイプサブタイプを実装しました。

new structure

私の質問は - スーパータイプを実装した後 - 彼は何を得るの利益や利点サブタイプ関係?スーパータイプ - サブタイプのベストプラクティスを実装していますか?

+0

私はなぜ彼はアカウントの種類、accountid、accountbalanceのアカウントテーブルをすべて同じテーブルに持っていないのか分かりません。 – Forklift

+0

我々は常に1つのテーブルを使用して、同じタイプ(100%類似ではない)のタイプ(同じカラム数とわずかなカラム数)のタイプを格納する場合、スーパータイプ - サブタイプ関係の使用は何ですか? –

+0

お互いに何の関係もない多くの列が各表にある場合、多くのNULL列の膨大化を望まないかもしれません。あるいは、多くのサブタイプがある場合は、再び多くのヌル列で終わるでしょう。サブスーパーはこれらの問題を防ぎます。 – Forklift

答えて

1

スーパータイプは、複数のエンティティセットに対して共通の属性、リレーションシップ、および整合性を統一することができるという利点があります。サブタイプは、タイプ固有の属性、リレーションシップ、および整合性制約をサポートします。これにより、データベースとクエリを簡素化し、より完全な整合性を実現することができます。

最初の例では、すべてのアカウントが開かれたかレビューされたかを知りたい場合は、3つのテーブルのそれぞれを個別に照会する必要があります。アカウントと顧客の関係を確立したい場合は、3つの別個の関係と、3つの個別のクエリが必要であり、すべての顧客とアカウントを取得する必要があります。開かれた日付の後にレビュー日付を確実にするなどの制約は、3回定義する必要があります。

サブタイプがなければ、単一の共通タイプに対して可能なすべての属性とリレーションシップをサポートする必要があります。クエリでは、別々のローを個別に処理するタイプ固有のロジックを含める必要があります。当座預金には適用されない正の金利のような型固有の制約を容易に実施することはできませんでした。