ERD(エンティティ関係図)とEERD(拡張エンティティ関係図)の違いは何ですか?
関係があります( image source )
および属性( image source )
これは主キーにもなります( image source )
ERモデルと同じです。
専門化
パーティショニング(複数の専門分野)
一般化
集約
キーには異なる注釈が付けられます。
ERモデルは、リレーショナル代数に必要なものすべてをそのまま備えた基本モデルである(ISA階層-不注意やその他の覚えていないものを含む)。さらに抽象的な(すべてのボックスがデータベーステーブルである必要はありません。また、一部のボックスの他の方法は1つ以上のテーブルにすることができます)
EERモデルは、実際のデータベースのように見えます。したがって、すべてのボックスは実際にはテーブルです。
受け入れられた答えも正しいと思いますが、私の意見では(これはどこでも読んでいると思います)EERは、人々が基本的な関係代数よりもさらにデータベースを設計できるように作成されました。 ERを使用したリレーショナル代数は、データベースをモデル化するために必要なすべてを提供しますが、ISA階層とリレーションを実際のテーブルに変換し、EERを使用して表示を取得するコンパイラが必要です。設計テーブル-ERはより論理的です。なぜなら、ERツールにこれを継承したいので、2つのテーブルを作成する必要がないので、継承のようなものからあなたを抽象化するからです。
結論:ERは基本原則であり、EERは抽象化の少ない実際の作業に適したツールです。
(リレーショナル代数の私の理論的知識は錆びすぎているので、すべてが正しいことを覚えていることを望み、間違っている場合は修正してください)
拡張ERモデルによって追加された主な機能は、特化/一般化および結合です。これらのGen-specは、Stackoverflowの質問への回答で最もよく出てくるものです。
Gen-specは、ERモデリングでは、オブジェクトモデリングのクラスサブクラスに相当します。説明する例:自動車は自動車またはトラックである可能性があります。貨物スペースのような機能はトラックに関係しますが、自動車には関係しません。そのため、一般化されたエンティティに適用される機能がありますが、これらはいずれかの専門分野にのみ適用される機能でもあります。
非常に頻繁に、gen-specの場合のテーブル設計について質問があります。しかし、彼らはそれをそのように認識しません。なぜなら、彼らはデータベースに関する最初の教育でgen-specに紹介されたことがないからです。
別の言い方をすれば、「は」の関係をモデル化して実装する方法を教えられたが、「は」の関係をモデル化して実装する方法は教えられなかったということです。