Datenbankentwicklung: Primär- und Fremdschlüssel
Primär- und Fremdschlüssel kennenlernen
Schlüsselattribute in einer Datenbank
Wozu dienen Primär- und Fremdschlüssel?
Primär- und Fremdschlüssel kennenlernen
Bevor Du diesen Lernpfad bearbeitest, solltest Du bereits mit den Grundzügen des Entity-Relationship-Modells (ERM) vertraut sein. Du findest dazu einen Webquest auf dem Hessischen Bildungsserver.
Im ERM werden die zu verwaltenden Daten grafisch dargestellt. Dabei erfolgt eine Betrachtung zwischen Entitätstypen, Attributen und den Beziehungen zwischen den Entitätstypen.
Wenn dieses Modell in Tabellen aufgelöst wird, wird die Beziehung zwischen den Entitätstypen durch Primär- und Fremdschlüssel hergestellt.
In diesem Lernpfad lernst Du, ...
... was ein Primärschlüssel ist und wofür er benötigt wird.
... was ein Fremdschlüssel ist und wofür er benötigt wird.
... nach welchen Kriterien man Fremdschlüssel in einer Tabelle setzt.
Primär- und Fremdschlüssel bezeichnet man generell als Schlüssel-Attribute. Dies sind Attribute, die einen Datensatz eindeutig identifizieren (kennzeichnen, ausweisen).
Ein Datensatz ist eine Zeile in einer Datenbanktabelle.
PERSONAL | ||||
Personalnr | Nachname | Vorname | Gehaltsstufe | ..... |
12345 | Meier | Karl | V | ... |
23456 | Meier | Sabine | VI | ... |
34567 | Schmidt | Marlene | V | ... |
Die Personalnummer ist in der Tabelle ein geeignetes Primärschlüsselattribut, weil es einmalig und eindeutig ist und damit einen Datensatz, also eine Zeile in der Tabelle, eindeutig ausweist. Die Personalnummer 12345 verrät, dass es sich bei dem Mitarbeiter mit dem Namen Meier um Karl Meier mit der Gehaltsstufe V handelt und eben nicht um Sabine Meier.
Daneben gibt es Fremdschlüsselattribute. Sie liefern die Information, mit welchem Datensatz einer anderen Tabelle ein Datensatz verbunden ist. Während jede Tabelle ein Primärschüsselattribut benötigt, wird das Fremdschlüsselattribut nur dann benötigt, wenn eine abhängige Beziehung zu einer anderen Tabelle besteht. So könnte z. B. eine Tabelle Projekt über die Projektleitung informieren:
PROJEKT | ||||
Projektnr | Bezeichnung | Budget | Leitung | |
100 | Aquise | 300000 | 23456 | |
200 | Wissensmanagement | 250000 | 34567 | |
300 | Kommunikationsstruktur | 270000 | 12345 |
In dieser Tabelle ist das Fremdschlüsselattribut Leitung. Der jeweilige Attributwert (23456, 34567, 12345) ist der Primärschlüssel der Mastertabelle und liefert die Information, welche Datensätze miteinander verbunden sind. Das Primärschlüsselattribut in der Projekttabelle ist die Projektnummer.
Im folgenden wird es darum gehen, ...
... bereits gesetzte Primär- und Fremdschlüssel in einer Tabelle zu erkennen,
... selbst ein geeignetes Attribut für den Primärschlüssel zu finden und zu setzen,
... zu lernen, in welche Tabellen ein Fremdschlüsselattribut eingefügt werden muss.
Einen Primärschlüssel setzen
Der Primärschlüssel ist im Rahmen des Entwicklungs-Prozesses zuerst ein logisches Konzept, indem Du ein oder mehrere geeignete Attribute identifizierst, die einen Datensatz eindeutig identifizieren, und diese im Entity-Relationship-Modell (ERM) durch einen Unterstrich kenntlich machst:
Später, wenn Du Dein relationales Modell in einem Datenbank-Management-Systems realisierst, setzt Du eine Schlüsselmarkierung auf ebendiese Attribute.
Fremdschlüssel setzen
Wenn Du Dein ERM in Tabellen auflöst, dann ginge die Zuordnung zwischen den Datensätzen verloren, wenn nicht die Betrachtungsebene "Beziehung" durch ein anderes Konzept ersetzt würde.
Dieses Konzept ist die Verbindung von Primärschlüssel der einen Tabelle mit dem Fremdschüssel einer anderen Tabelle. Dabei wird das Fremdschlüssel-Attribut als zusätzliche Spalte in einer Tabelle eingefügt. Als Attributwert wird dann später der passende Primärschlüssel eingefügt.
Hier ein Beispiel zur Verdeutlichung:
Wenn das ERM später in Tabellen aufgelöst wird, dann ginge die Verbindung "wird gleitet von" verloren, wenn es nur eine Tabelle Kurs und Kursleitung mit den dargestellten Attributen gäbe.
Die Information, wer welchen Kurs leitet wird daher dann über einen Fremdschlüssel in der Tabelle KURS realisiert, indem das Attribut Kursleitung zum KURS hinzugefügt wird. Dort wird später die Personalnummer der Kursleitung als Attributwert eingetragen.
Zur Verdeutlicheung und um diese Information später nicht zu vergessen, kann man das ERM um das Fremdschlüsselattribut ergänzen und erhält ein eERM (erweitertes ERM), bevor man es in das relationale Modell (das Tabellenmodell) überführt.
Hinweis: Für das Abitur in Informatik in Hessen ist die im Folgenden beschrieben Vorgehensweise über das eERM nicht zugelassen. Hier wird streng das ERM (s. Abb. oben) angewandt und dieses direkt in das relationale Modell überführt. Für Lernende der allgemeinbildenden Gymnasien sei daher direkt der Lernpfad "Überführung des ERM in das Relationale Modell" empfohlen. Lernende anderer Schulformen, insbesondere der beruflichen Schulen, können den Weg über das eERM beschreiten (vgl. u. a. Berufliche Informatik (Cornelsen, 2015), Berufliche Informatik (Bildungsverlag EINS, 2009), Datenbankentwicklug mit Access, SQL und Einführung in PHP (Bildungsverlag EINS, 2009))
Diese Ergänzung sieht dann wie folgt aus:
Das Fremdschlüssel-Attribut in der Tabelle Kurs ist in roter Farbe dargestellt. Dies soll verdeutlichen, dass dort später die Personalnummer der jeweiligen Kursleitung eingetragen wird.
Wie geht es weiter?
Eine Einordnung
Wenn man die Fremdschlüssel gesetzt hat, kann man das ERM in Tabellen auflösen. Man nennt das die Überführung in das Relationale Modell. Damit muss Du Dich als nächstes auseinandersetzen. Du findest dazu einen Lernpfad auf dem Hessischen Bildungsserver.
Erst danach geht an die physische Realisierung des Datenbanksystems (DBS).
Die Tabellen (s. Relationales Modell) werden dazu in einem DBMS angelegt und können mit Daten gefüllt werden.
Daneben muss dann noch die Benutzeroberfläche im DBMS angepasst werden und die Rechte der Nutzer/-innen müssen vergeben und angepasst werden. Backups und andere Einstellungen für die Datensicherheit und den Datenschutz sind ebenfalls vorzunehmen. Die Pflege ist dann die Aufgabe der Datenbank-Administrator/-innen.
Die Anwender/-innen pflegen Daten ein und rufen Informationen ab. Im Hintergrund arbeiten die DBMS mit der Datenbank-Abfragesprache SQL.