0

Dies ist ein Beispiel für eine Vogelbeobachter-Datenbank. Angenommen, Sie haben drei Entitäten: BirdSpecies, Location und Observer. Um eine Entität Observation zu haben, benötigen Sie alle diese drei. Ohne sie gibt es keine Beobachtung.Schwache Einheit mit eindeutiger Nummer ID

Mein Verständnis ist, dass die obige Anforderung Observation eine schwache Einheit macht. Aber was, wenn dieselbe Person die gleiche Spezies mehrmals am gleichen Ort entdecken kann? Dann wird der Eintrag nicht eindeutig sein.

Meine Frage ist daher, können Sie einen Primärschlüssel für Observation haben, die nur eine Zahl ist, sequentiell für jede Beobachtung zu erhöhen, und die Entität immer noch eine schwache Einheit?

Antwort

0

Ich denke, dass die Schwäche der neuen Entität durch ihre Beziehungen bedingt ist, jetzt ist es wichtig, was ihr Primärschlüssel ist.

Um dies zu verstehen, stellen Sie sich vor, dass Sie anstelle einer sequenziell zunehmenden Zahl eine Datum-Uhrzeit haben, die für jede Beobachtung einzigartig ist. Dies ändert nichts an der Tatsache, dass wenn Sie eine der drei Entitäten entfernen, es keine Beobachtung gibt.

+0

Schwache Entitäten werden nicht durch ihre Beziehungen definiert, sondern durch ihre Abhängigkeit vom Schlüssel einer übergeordneten Entität. Sehen Sie https://en.wikipedia.org/wiki/Weak_entity oder besser noch lesen Sie Peter Chens 'Das Entity-Relationship-Modell - in Richtung einer einheitlichen Sicht der Daten – reaanb

0

Schwache Entitäten werden durch den Primärschlüssel einer einzelnen übergeordneten Entität und ein anderes Attribut identifiziert. Schwache Entitäten sind typischerweise Teile eines Ganzen. Observation (ohne Einführung eines Ersatzschlüssels) ist eine ternäre Beziehung, keine schwache Entität.

Um mehrere Beobachtungen derselben Person derselben Spezies am selben Ort aufzuzeichnen, würde ich einen Datums-/Uhrzeitwert in die Observation Relation und den Primärschlüssel oder alternativ eine Nicht-Primzahl-Spalte einfügen, um die Anzahl von zu erfassen Beobachtungen. Denken Sie daran, dass Relationen keine doppelten Einträge enthalten können. Es ist also keine Eindeutigkeit ohne eine Unterscheidungsspalte, sondern die Möglichkeit, mehrere Einträge zu erfassen. SQL-DBMS sind jedoch nicht richtig relational und ermöglichen es Ihnen, sich in den Fuß zu schießen.

Sobald Sie einen Ersatzschlüssel einführen, verdreifachen Sie die Beziehung zu einer assoziativen Entität. Entitäten, die durch einen Ersatzschlüssel identifiziert werden, sind immer starke Entitäten, da sie durch ihre eigenen Attribute identifiziert werden. Mit einem Ersatzschlüssel können Sie sonst doppelte Einträge aufzeichnen, weshalb Ersatzschlüssel oft mit eindeutigen Schlüsseln anderer Attribute ergänzt werden.