tbee's page
   home  work  myself  mixed  guestbook  
   
      INHALT MySQL Datenbank Schlüssel

Wer mir was gutes tun will kauft über diesen Link bei Amazon ein !

Datenbank Schlüssel

  • Ein Schlüssel ist eine Menge von Attributen (also eines oder mehrere), die eine Datenzeile (Tupel) einer Tabelle eindeutig identifiziert
  • Unter einem Schlüsselkandidaten versteht man ein Schlüssel mit minimaler Anzahl Attribute (eine Personalausweis Nummer hat eine eindeutiges Attribut, Eine Koordinate (Länge/Breite zwei...)
Eine Relation kann mehrere Schlüsselkandidaten haben!

Vereinfacht:

Jede Reihe in einer Tabelle sollte eindeutig identifizierbar sein, d.h. in einer Spalte der Tabelle sollten Werte eingetragen sein, die einmalig sind und die betreffende Reihe eindeutig identifizieren (z.B. Identifikationsnummer).
Eine solche Spalte nennt man Primärschlüssel (primary key).

ID Titel Interpret Spiellänge Preis
1 Queen Live Queen 65:01 12.99

Primärschlüssel: ID (hier können wir sicher sein das es bei einer fortlaufenden ID nur ein vorkommen dieser gibt und somit jede Zeile eindeutig identifiziert werden kann.)

Ein Primärschlüssel kann sich auch aus mehreren Attributen zusammensetzen, dann spricht man von einem zusammengesetzter Primärschlüssel (composite key)

Titel Interpret Spiellänge Preis
Queen Live Queen 65:01 12.99

Zusammengesetzter Primärschlüssel: Titel und Interpret (wobei zu überprüfen ist ob diese Kombination wirklich einmalig ist! Bzw. ob es nicht sein kann das eine CDs mehrfach vorhanden ist)

Mittels des Primärschlüssels ist die Verknüpfung mit anderen Tabellen einfach: in der anderen Tabelle muß nur eine Spalte vorhanden sein, in der der entsprechende Primärschlüssel der ersten Spalte eingetragen ist. Eine solche Spalte nennt man auswärtigen Schlüssel (foreign key).

CDs
ID Titel Interpret Spiellänge Preis
1 Queen Live 11 65:01 12.99

Interpreten
Name
11 Queen

 

Der Primärschlüssel der Tabelle Interpreten ist in der Tabelle CDs gleichzeitig der sogenannte Fremdschlüssel (foreign key).

Begrifflichkeit: Ein Schlüsselattribut ist ein Attribut, das Teil mindestens eines Schlüsselkandidaten ist. Alle anderen Attribute sind Nicht-Schlüsselattribute

 

MySQL unterstützt bis zur Version 4.0 keine foreign key's sie können zur Kompatibilität zu anderen DBs (z.B. Oracle) jedoch angelegt werden. (MySQL ignoriert sie dann einfach) 
Für die Datenintegrität ist der Entwickler der die DB verwendet selbst verantwortlich. Um in neueren Versionen Forein Keys verwenden zu können, muss als Tabellentyp InnoDB verwendet werden!

Beispiel:


CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT, INDEX par_ind (parent_id),
             FOREIGN KEY (parent_id) REFERENCES parent(id)
             ON DELETE SET NULL
) TYPE=INNODB;

 

 

Probleme? Fragen? Optimieren? Was ist Normalisierung?

 

Druckerversion     [valid html 4.01]      [english]
style: blauer Stylegelber Styleroter Stylegruener StyleStandard Style
© 2001 by  tbee / Impressum last update at: 19.05. 2003 20:05:18
url: www.tbee.de/mysql/t2_schluessel.php