3.3. Foreign-Keys - Fremdschlüssel |
![]() |
![]() |
Letztmalig dran rumgefummelt: 29.01.16 18:51:57 |
![]() |
Einfache Anwenderdefinition:
Komplexe Derdefinition: Ein nicht als Identifikationsschlüssel bezeichnetes Attribut eines Entitys A ist Fremdschlüssel des Entiys A, falls das gleiche Attribut als Identifikationsschlüssel in einer anderen Relation B in Erscheinung tritt. Wenn ein Fremdschlüssel Teil des Identifikationsschlüssels ist, so spricht man von einer identifizierenden Beziehung, ansonsten von einer nichtidentifizierenden Beziehung.
|
||||||
![]() |
1. Schlüsselaufbau 2. Spezifik der Foreign Keys 3. Eigenschaften personenbezogener Daten 4. Datenschutzbestimmungen sowie auch rechtliche Probleme |
||||||
![]() |
|
||||||
![]() |
Quellen:
|
||||||
![]() |
Foreign-Keys können nicht allein existieren - sie benötigen mindestens eine Primary-Key eines anderen Entity-Types (damit gibt es in einer einzigen Datentabelle niemals einen Foreign-Key - wo sollte der auch hinzeigen?) | ||||||
![]() |
die Eineindeutigkeit bleibt technisch sogar dann gewahrt, wenn man auf die ungute Idee kommt, Schlüssel Merkmale in verschiedenen Entitytypen mit gleichen Merkmalswerten zu versehen - technisch geht das, man denke nur an den AutWert | ||||||
![]() |
auf ein Foreign-Key-Attribut wird von mindestens einem Primary-Key-Attribut verwiesen - man kann das verstehen wie das Ziel eines Links | ||||||
![]() |
das Gegenstück zum Foreign-Key muss eindeutig sein - kann also nur mindestens ein Primary-Key eines anderen Entity-Types sein | ||||||
![]() |
auf ein Foreign-Key-Attribut können mehrere Primary-Keys verschiedener anderer Entity-Typen stehen | ||||||
![]() |
|||||||
![]() |
Konkreter Fremdschlüssel im Entity-Typ NOTEN und der Bezug zum verweisenden Entity-Typ STUDENT |
1. Schlüsselaufbau |
![]() |
![]() |
![]() |
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
2. Besonderheiten in der Anwendung |
![]() |
![]() |
![]() |
![]() |
|
![]() |
Additional Key kommen uns in der praktischen Anwendung mit zwei verschiedenen Anliegen entgegen |
![]() |
zum einen können mehrere Key-Attribute wirklich mit dem Ziel zusammengefasst werden, Eindeutigkeit zu erzielen |
![]() |
zum anderen wird er natürlich verwendet, um die vermittelnden Entity-Typen in m : n-Relationships zu erstellen |
![]() |
es ist mit zusaamengesetzten Schlüsseln nicht möglich, redundanzfreie Beziehungsgefüge zu erstellen |
![]() |
Praktische Beispiele:
Bei der Modellierung von Beziehungen werden die Attribute der bezugnehmenden Tabelle mit den identifizierenden Attribut-Werten (Primärschlüssel) der Bezugstabelle belegt. Das Datenfeld der bezugnehmenden Tabelle heißt Fremdschlüssel (Foreign Key).
In der referierenden Relation VERKAUF existiert das Attribut KUNDENNUMMER, das die Kundennummer des Autohauskunden angibt. Dieses Attribut ist ein Foreign Key auf den Primary Key KUNDENNUMMER der Relation KUNDE
Kundennummer | Name | Vorname | Anschrift |
716 | Kunze | Hans | Flöha |
719 | Müller | Roswitha | Neukirchen |
731 | Rögner | Renate | Burgstädt |
Tabelle 1 Entität Kunde mit Primary-Key auf dem Attribut KUNDENNUMMER
Ein Fremdschlüssel bezeichnet ein Attribut oder eine Gruppe von Attributen in einem Entity, das auf den Primärschlüssel eines anderen Enitys verweist.
Vertagsnummer |
Kundennummer |
Verkäufernummer |
Autonummer |
Verkaufsdatum |
9 |
716 |
1327 |
13 |
12.12.96 |
10 |
731 |
1327 |
16 |
12.12.96 |
11 |
719 |
1329 |
56 |
13.12.96 |
12 |
716 |
1346 |
6 |
14.12.96 |
Tabelle 2 Entität Verkauf Primary-Key auf dem Attribut VERTRAGSNUMMER und einem Foreign-Key auf KUNDENNUMMER
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost am 17. Januar 2008 |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus (das haben wir schon den Salat - und von dem weiß ich!) nicht mehr teilzunehemn ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |
Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-) |