2016-06-13 11 views
0

In diesem ERD:Primärschlüssel von Assoziative Entity

enter image description here

Zertifikat Entity ist ein assoziatives Entity und es hat eine eindeutige Kennung - Zertifikatsnummer. Da eine assoziative Entität ihren Primärschlüssel von anderen Entitäten erbt. Das Schlüsselfeld der verknüpften Entität ist der Primärschlüssel jeder Endeinheit, ein Fremdschlüssel in der zugeordneten Entität, und beide Fremdschlüssel, die miteinander kombiniert werden, werden zu einem Primärschlüssel (Concepts from Textbook).

Ist der Primärschlüssel der Certificate Entity ein zusammengesetzter Schlüssel, der drei Teile enthält: CertificateNumber, EmployeeID, CourseID?

Oder der Primärschlüssel ist CertificateNumber und nimmt EmployeeID, CourseID als Attribute dieser Entität?

Ich bin in dieser Frage verwirrt, weil normalerweise eine assoziierte Entität keine eigene Kennung (Zertifikatsnummer) hat. Es nimmt nur Primärschlüssel von anderen Entitäten zusammen, die als zusammengesetzter Schlüssel (EmployeeID, CourseID) kombiniert werden, und verwenden dann diesen zusammengesetzten Schlüssel als seinen Bezeichner.

Danke

Alex

Antwort

1

Assoziative Einheiten haben keinen Primärschlüssel auf der Grundlage ihrer eigenen Attribute. In Ihrem ersten Diagramm haben Sie eine assoziative Entität mit der funktionalen Abhängigkeit (Employee_ID, Course_ID) -> Date_Completed erstellt. Beachten Sie, dass Employee_ID und Course_ID Spalten in der Tabelle sind, aber keine Attribute sind. Ein Attribut im ER-Modell ist ein Mapping von einem Entity-Set auf ein Value-Set. Fremdschlüssel sind Komponenten einer Beziehung und werden keinem Wertsatz zugeordnet.

In Ihrem zweiten Diagramm wird Ihre assoziative Entität durch Hinzufügen eines Ersatzschlüssels zu einer regulären Entität, die in Beziehungen mit Employee und Course steht. Ihr Primärschlüssel ist nur Certificate_Number, aber eine eindeutige Einschränkung auf (Employee_ID, Course_ID) ist wahrscheinlich eine gute Idee. Die Beziehungen werden durch die funktionalen Abhängigkeiten Certificate_Number -> Employee_ID und Certificate_Number -> Course_ID in der Tabelle Certificate dargestellt.

Sie könnten auch eine assoziative Entität behalten und (Employee_ID, Course_ID) als Primärschlüssel verwenden und Certificate_Number zu einem regulären Attribut machen, obwohl eindeutig eingeschränkt (und wahrscheinlich automatisch inkrementiert). In diesem Fall würde das Diagramm wie Ihr erstes aussehen, jedoch mit einem zusätzlichen Attribut für die Beziehung.