Was bedeutet diese Definition eines Primärschlüssels?


8

Mein Lehrbuch enthält die folgende Definition eines Primärschlüssels in einer relationalen Datenbank, die ich nicht ganz verstehe. Hilfe wäre sehr dankbar.

Sei eine Beziehung. Dann ist der Primärschlüssel für R eine Teilmenge der Menge von Attributen von R , beispielsweise K , die die folgenden zwei Eigenschaften erfüllt:RRRK

  1. Einmaligkeit Objekt: Keine zwei unterschiedlichen Tupel von den gleichen Wert für K .RK

  2. Irreduzibilitätseigenschaft: Keine richtige Teilmenge von hat die Eindeutigkeitseigenschaft.K

Ich verliere mich durch die Irreduzibilitäts-Eigenschaft.


Achtung: 1) Mehr als eine Teilmenge von Spalten kann diese Eigenschaften erfüllen. Daher ist der Primärschlüssel möglicherweise das, was die Person, die die Primärschlüssel definiert, auswählt. 2) In der Praxis erzwingen DBMS, die Primärschlüssel unterstützen, Eigenschaft 1, aber nicht Eigenschaft 2 (obwohl ich dies für viele nicht überprüft habe).
Reinierpost

2
Hinweis: Wenn im Buch " der Primärschlüssel" steht, ist dies irreführend. Es ist möglich und nicht ungewöhnlich, dass mehrere verschiedene Sätze von Spalten vorhanden sind, die als PK verwendet werden können.
AnoE

Antworten:


7

Betrachten Sie die folgende Tabelle:

FirstName  LastName  Pet  FavColour
-----------------------------------
Alice      Jones     dog  red
Alice      Smith     dog  green
Bob        Smith     cat  blue

Ein Schlüssel ist eine beliebige Menge von Attributen: eine beliebige Teilmenge von {Vorname, Nachname, Haustier, FavColour}. Die Eindeutigkeitseigenschaft besagt, dass keine zwei Datensätze dieselben Werte für die Attribute in einem Schlüssel haben können. So ist beispielsweise {FavColour} ein Schlüssel mit der Eigenschaft Eindeutigkeit: Keine zwei Datensätze haben denselben Wert. {Vorname, Nachname} ist ebenfalls eindeutig: Keine zwei Datensätze haben den gleichen Vor- und Nachnamen. {Pet} ist dagegen nicht eindeutig, da der erste und der zweite Datensatz für dieses Attribut denselben Wert haben.

Jetzt ist {Vorname, Nachname, Haustier, FavColour} auch ein eindeutiger Schlüssel: Keine zwei Datensätze haben für alle Attribute den gleichen Wert. Aber das ist eine Art dummer Schlüssel, oder? Die Irreduzibilität besagt, dass wenn Sie eines der Attribute aus Ihrem Schlüssel entfernen, es nicht mehr eindeutig ist. {Vorname, Nachname, Haustier, FavColour} ist also nicht irreduzibel, da Sie beim Entfernen von FavColour den Schlüssel {Vorname, Nachname, Haustier} erhalten, der immer noch eindeutig ist. Und das ist nicht irreduzibel, weil Sie Pet wegwerfen und {Vorname, Nachname} erhalten können, was immer noch einzigartig ist. {Vorname, Nachname} ist jedoch nicht reduzierbar, da weder {Vorname} noch {Nachname} eindeutig sind: Es gibt zwei Personen mit demselben Vornamen und zwei Personen mit demselben Nachnamen.


tl; dr: der kleinste Satz von Spalten, die einen Datensatz eindeutig identifizieren können
DForck42

1
@ DForck42 Nein, eine kleinste Gruppe von Spalten, die jeden Datensatz eindeutig identifizieren können .
David Richerby

Die Frage wird in Bezug auf Datenbanken formuliert, was ich als Schema verstehen würde, nicht als einzelne Beziehungsinstanz. Schlüssel eines Beziehungsschemas können nicht durch Untersuchen von Beispieldaten bestimmt werden. Beispieldaten können uns Sätze von Attributen mitteilen, die KEINE Schlüssel sind (z. B. {Pet} ist in diesem Fall kein Schlüssel), aber funktionale Abhängigkeiten sind die einzige solide Grundlage für die Bestimmung der tatsächlichen Schlüssel.
Nvogel

14

K.

K

Betrachten Sie zum Beispiel diese Beziehung.

A   B   C

1   4   4
2   4   6
3   6   6

Lassen Sie uns alle möglichen Schlüssel untersuchen.

  1. A - einzigartig und irreduzibel.
  2. B -- nicht einzigartig.
  3. C -- nicht einzigartig.
  4. A,B- reduzierbar auf A.
  5. A,C- reduzierbar auf A.
  6. B,C - einzigartig und irreduzibel.
  7. A,B,C- reduzierbar auf A.

Daher gibt es hier zwei Möglichkeiten für Primare-Schlüssel: Aund B,C.


5
K

@ruakh Punkt genommen.
Raphael

1

Irreduzibilität bezieht sich einfach auf eine Mindestmenge von Attributen, die wir nicht unterschreiten können, ohne die Einzigartigkeit zu verlieren. Beispielsweise können wir in einer Personentabelle feststellen, dass (Nachname, Vorname) eindeutig sind, während (Nachname) und (Vorname) dies nicht sind.

Sobald wir die Eindeutigkeit haben, können wir weiterhin Attribute hinzufügen, ohne diese zu verlieren. Die Irreduzibilität behebt dieses Problem.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.