Foreign Keys vs. Partielle Tasten und Ihre E-R-Darstellungen
Ich habe Probleme mit dem Verständnis der Unterschied zwischen Teil-Tasten/schwache Entitäten und Fremdschlüssel. Ich fühle mich wie ein idiot für nicht in der Lage zu verstehen, dieses Zeug.
Wie ich es verstehe:
Weak Entity: An entity that is dependent on another entity.
Partial Key: Specifies a key that that is only partially unique. Used for weak entities.
vs
Foreign Key: A key that is used to establish and enforce a relation between data in different tables.
Diese nicht scheinen, wie Sie sind die gleiche Sache, aber ich habe Schwierigkeiten zu unterscheiden, Ihre nutzt.
Nehmen [sehr] einfaches Beispiel:
We have employees specified by an empid. We also have children specified by name. A
child is uniquely specified by name when the parent (employee) is known.
Würden die untergeordnete Entität eine schwache Identität, wo die partiellen Schlüssel ist der name (teilweise einmalig)? Oder soll ich mich mit einem fremden Schlüssel, weil ich bin versucht zu etablieren und durchzusetzen, eine Beziehung zwischen Mitarbeiter und Kind? Ich fühle mich wie ich begründen kann, aber ich habe auch das Gefühl, ich bin hier etwas fehlt. Jede Einsicht wird sehr geschätzt, und ich entschuldige mich für die dummen Fragen.
InformationsquelleAutor prelic | 2011-01-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen schwachen Entitätstyp, dessen Primärschlüssel enthält ein Attribut(en), die Referenz einer anderen Entität. In anderen Worten: ein Fremdschlüssel ist eine Teilmenge des Primärschlüssels. Daher ist die Entität nicht existieren kann, ohne seine Eltern.
Einem partiellen Schlüssel bedeutet, dass nur ein Teil des Schlüssels - einige echte Teilmenge der wichtigsten Attribute.
In deinem Beispiel, wenn der Primärschlüssel ein Kind war (Empid, ChildName) mit Empid, wie eine foreign key-Referenzierung der Mitarbeiter dann Kind ist eine schwache Entität. Wenn Empid war nicht Teil des Primärschlüssels, dann Kind wäre eine starke Einheit.
Es ist zu Bedenken, dass die schwache/starke Unterscheidung ist rein ein ER-modelling-Konzept. In relationale Datenbank-Begriffe, es macht nicht viel Unterschied. Insbesondere das relationale Modell macht keinen Unterschied zwischen Primärschlüssel und anderen Kandidaten-Schlüssel, so dass für alle praktischen Zwecke, es macht keinen Unterschied,, um herauszufinden, primary key Attribute als ein "besonderer" Fall, wenn Sie auf andere Tabellen verweist.
InformationsquelleAutor nvogel
Das problem ist nicht Sie, es ist, dass die alten lehrbuch oder was auch immer Sie verwenden, ist Reine Ausscheidungen, die "Definitionen" sind nicht klar, und es wurden standard-Definitionen für Relationale Datenbanken im Einsatz seit über 30 Jahren, die viel mehr klar. Die "Definitionen", die Sie gebucht haben sind in der Tat ganz im Gegenteil, nicht intuitiv, und es ist keine überraschung, dass die Leute verwirrt.
Einen Fremdschlüssel in einer untergeordneten Zeile, ist der Wert, den Verweise übergeordneten Primary Key (in der übergeordneten Tabelle).
Mit IDEF1X Terminologie. Eine Identifizierende Beziehung ist eine, in der die FK (die Eltern-Pk in der untergeordneten) wird auch verwendet, um form das Kind PK. Es ist einzigartig in der übergeordneten, aber nicht eindeutig in das Kind, müssen Sie einige Spalte, um die es einzigartig machen. Daher der blöde Begriff der "Teil-Taste". Entweder es ist ein Schlüssel (unique), oder es ist nicht ein Schlüssel; das Konzept einer "partiellen Schlüssel" ist zu dumm, um nachzudenken.
In einer ordnungsgemäß Normalisiert und standard-konforme Datenbank, es wird nur sehr wenige Unabhängige Entitäten. Der ganze rest wird Abhängig von einigen Unabhängigen Entität. Solche Personen sind nicht "schwach", außer in dem Sinne, dass Sie nicht existieren, ohne die Entität, die Sie Abhängig sind.
Den Einsatz von Identifizierenden Beziehungen (im Gegensatz zu Nicht-Identifizierung) ist eigentlich stark; es gibt die Abhängige ("schwach") Entitäten, die Ihre Kennung. So dumme Begriffe wie "schwach" und "stark" sollten nicht verwendet werden, in einer Wissenschaft, die erfordert Präzision.
Allgemeine Geschäftsbedingungen benutzen.
Aber um auf Ihre explizite Frage:
Leser, die nicht vertraut sind mit dem Standard für die Modellierung von Relationalen Datenbanken finden können ▶IDEF1X-Notation◀ nützlich.
InformationsquelleAutor PerformanceDBA