Das ER-Modell in der Praxis: Verknüpfte Tabellen

Abbilden von Beziehung zwischen Entitäten

Primärschlüssel oder "minimale" Schlüssel

In einer Datenbank muss jeder Datensatz eindeutig identifizierbar sein. Ein Kombination von Attributen, anhand dessen man einen Datensatz eindeutig finden kann, wird in der Datenbanksprache Primärschlüssel oder "minimaler Schlüssel" genannt. Eine Tabelle darf nie zwei oder mehr Datensätze enthalten, die den gleichen Primärschlüssel haben.

Wenn man ein oder mehrere Attribute als Primärschlüssel definiert, gibt das Datenbanksystem einen Fehler zurück, sobald man versucht, einen Datensatz einzufügen oder zu verändern, so dass die Eindeutigkeit verletzt würde.

In einer Datenbank bietet es sich häufig an, eine fortlaufende Nummer zu vergeben, die nur innerhalb der Datenbank eine Bedeutung hat (künstlicher Schlüssel oder Surrogatschlüssel). Die Option "auto_increment" sorgt dafür, dass ein neu hinzugefügter Datensatz automatisch die nächste mögliche Nummer bekommt, wenn man keinen Wert für den Primärschlüssel einträgt.

Fremdschlüssel

Um eine 1:N-Beziehung zwischen zwei Tabellen in einer Datenbank zu modellieren, wird die Tabelle auf der "N-Seite" der Beziehung (in unserem Beispiel die Schüler) um eine Spalte erweitert, in die man den Primärschlüssel des Objekts einträgt, zu dem die Beziehung besteht (im Beispiel die Nummer des Klassenlehrers). Wenn der Primärschlüssel einer Tabelle in einer anderen Tabelle verwendet wird, so ist dies ein sogenannter Fremdschlüssel. Es ist natürlich einfacher, wenn man die Beziehung auf der Seite speichert, wo mehrere Entitäten möglich sind. Jeder Schüler muss sich nur eine Information merken, was einfacher zu verwalten ist, als wenn jeder Lehrer sich alle seine Schüler merken müsste.

Aufgaben

(A1)

Gegeben ist die folgende Schuldatenbank Datenbank mit zwei Tabellen (schueler/lehrer):

schueler
SNummer	SNachname	SVorname	SGeburtsdatum	SGeschlecht	SKlasse	SEmail	KLNummer
1	Fischer	Fritz	06.04.1993	m	7a	fritzle@gmx.de	1
2	Müller	Martina	01.12.1997	w	6c	muellerma@web.de	2
3	Wahnsinn	Heller	05.12.1994	w	9b	hellwa@hotmail.com	3
4	Meyer	Lischen	05.12.1992	w	10a	meli@hotmail.com	4
5	Maier	Lieschen	05.12.1991	w	10a	melie@hotmail.com	4
lehrer
LNummer	LNachname	LVorname	LGeburtsdatum	LGeschlecht	LEmail
1	Lämpel	Fritz	06.04.1965	m	llaempel@gmx.de
2	Gauss	Carl	01.12.1954	m	cfgauss@web.de
3	Fermat	Hanni	05.12.1972	w	hfermat@hotmail.com
4	Feinmann	Marie	05.12.1969	w	mfein@hotmail.com

Skizziere ein ER-Diagramm der Datenbank

Ordne den Schülern ihre Klassenlehrer zu. Wie gehst du dabei vor? – erkläre!

Welche Attribute sind in diesem Beispiel Primär– und Fremdschlüssel?

Warum eignet sich das Attribut "LNachname" nicht als Primärschlüssel?

Worauf ist zu achten, wenn ein neuer Lehrer angelegt wird?

Herr Gauss geht in Pension und wird aus der Datenbank gelöscht, im darauffolgenden Jahr wird Herr Newton eingestellt. Wie sollte sich das DBMS bezüglich der Lehrernummer 2, die Herr Gauss innehatte verhalten? Begründe deine Antwort.

Könnte man die Datenbank durch Schaffung einer weiteren Entität weiter "modularisieren"? Wenn ja, welche Entität käme in Frage? Wie würden sich die Attribute und Werte der Tabelle schueler dadurch verändern? Welchen Vorteil könnte es haben, diese Information in eine weitere Tabelle auszulagern?

Lösungen

ER-Diagramm ++

Wie wird die Relation hergestellt? Die Relation wird hergestellt durch Verknüpfung von Fremd– zu Primärschlüssel. Der Fremdschlüssel ist das Tabellenfeld KLNummer in der Tabelle Schüler, der Primärschlüssel ist das Feld LNummer in der Tabelle lehrer. Die Verknüpfung wird realisisert durch die Bedingung "Ist schuler.KLNummer = lehrer.LNummer?". LNachname ist ungeeignet, da er ziemlich sicher nicht eindeutig ist. (Müller, Maier, Eissler) ++

Eigenschaften des Primärschlüssels/Probleme bei Änderungen EinNeuer Lehrer muss eine neue LNummer erhalten,die es noch niemals gab. Die LNummer 2 sollte niemals wieder vergeben werden. Wenn die Nummer nicht mehr existiert, erhält man als Ergebnis "existiert nicht", andernfalls erhält man falsche Daten. Idealerweise kann man der Datenbank mitteilen, was mit den zur LNummer 2 gehörenden Fremdschlüssel passieren soll, wenn der Datensatz mit dem Primärschlüssel 2 gelöscht wird. Der Fachbegriff dafür ist "Constraint". ++

Weitere "Modularisierung" Man könnte die Klassen als weitere Entität einführen: In der Tabelle schueler muss dann anstatt des Klassennamens die ID der Klasse als weiterer Fremdschlüssel eingetragen werden. ++

(A2)

Markiere in folgender Übersicht der Datenbank webshop die minimalen Schlüssel und Fremdschlüssel. Minimale Schlüssel werden unterstrichen, Fremdschlüssel gestrichelt unterstrichen.

Importiere die Datenbank webshop in deinen mysql-Datenbankbereich.

Dateien

Filename	Filesize	Last modified
03-er-modellierung.odp	1.2 MiB	24.11.2020 06:52
03-er-modellierung.pdf	514.7 KiB	19.11.2020 13:31
ent.png	37.3 KiB	14.11.2019 12:13
er1.jpg	26.4 KiB	14.11.2019 12:13
er2.jpg	22.3 KiB	14.11.2019 12:13
er3.jpg	25.3 KiB	14.11.2019 12:13
er4.jpg	24.8 KiB	14.11.2019 12:13
er5.jpg	21.6 KiB	14.11.2019 12:13
er_diagramm.png	39.5 KiB	21.10.2020 13:52
erd.png	39.7 KiB	21.10.2020 13:55
erd_schule_erweitert.drawio.png	131.4 KiB	23.01.2024 13:43
erd_schule_variante2.drawio.png	141.1 KiB	23.01.2024 13:46
Filename	Filesize	Last modified
lsg_a1_erdiagramm.png	76.1 KiB	24.11.2020 06:57
lsg_a1_klassen.png	15.3 KiB	24.11.2020 07:12
lsg_a1_verkn.png	20.7 KiB	24.11.2020 07:01
lsgschule.drawio.png	103.8 KiB	28.11.2024 19:33
primaer_fremdschluessel_01.odp	91.6 KiB	20.11.2019 19:41
primaer_fremdschluessel_01.pdf	95.3 KiB	20.11.2019 19:41
webshop.zip	2.1 KiB	20.11.2019 20:06
webshop_er.png	84.6 KiB	06.11.2024 08:52