Beziehungen zwischen Klassen

Werbung
Beziehungen zwischen
Klassen
Buch S89ff und S98ff
(Informatik I, Oldenbourg-Verlag)
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Klassendiagramm - Beziehungen
ARTIKEL
wird verkauft an>
ArtikelNr
Bezeichner
Preis
Sparte
Lagerbestand
n
m
KUNDE
KundenNr
Name
Adresse
TelefonNr
Bankverb
<kauft
n
wird
geli
<lie
fe
efer
t vo
n>
1
HERSTELLER
rt
Name
Adresse
TelefonNr
FaxNr
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Beziehungen zwischen KLASSEN
(Hefteintrag)
Beziehungen werden im Klassendiagramm beschrieben.
An den Kanten werden ein beschreibender Kurztext und
die Kardinalität der Beziehung angegeben.
1
n
0;1
1..n
Ein Objekt der einen KLASSE steht mit …
genau einem Objekt
keinem, einem oder beliebig vielen Objekten
keinem oder einem Objekt
mindestens einem Objekt
… der anderen KLASSE in Beziehung.
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Onlineshop - Beziehungen
Jeder Kunde kann von keinem, einem oder mehrere Artikel kaufen und
umgekehrt kann jeder Artikel von keinem, einem oder mehreren
Kunden gekauft werden. KURZ: Jeder Kunde kauft n Artikeln und jeder
Artikel wird von m Kunden gekauft. (n:m-Beziehung)
Jeder Artikel wird von genau einem Hersteller geliefert, umgekehrt
kann jeder Hersteller keinen, einen oder mehrere Artikel liefern. KURZ:
Jeder Artikel wird von 1 Hersteller geliefert und jeder Hersteller liefert n
Artikel. (1:n-Beziehung)
Außerdem gibt es im relationalen Modell noch 1:1-Beziehungen.
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung der 1:1-Beziehung
Beispiel:
Jede Schulklasse hat genau einen Klassleiter und jeder
Klassleiter „leitet“ genau eine Schulklasse.
SCHULKLASSE
Bezeichnung
Schülerzahl
1
Klassenzimmer
hat>
<„leitet“
1
KLASSLEITER
Name
Fächer
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung der 1:1-Beziehung
Im Tabellenschema:
SCHULKLASSE (Bezeichnung, Schülerzahl,
Klassenzimmer).
KLASSLEITER (Name, Fächer)
Bemerkung: Wenn man die Fächer so abspeichert, kann man später
nicht alle Mathematiklehrer aus der Datenbank abrufen. Man sagt, das
Attribut „Fächer“ ist nicht atomar (d.h. es kann noch weiter zerlegt
werden).
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung der 1:1-Beziehung
Umsetzung:
Man kann sich aussuchen, in welche Tabelle man den
Schlüssel der anderen als zusätzliches Attribut mit einträgt.
z.B. SCHULKLASSE (Bezeichnung, Schülerzahl,
Klassenzimmer, Name).
KLASSLEITER (Name, Fächer)
Die zusätzliche Spalte bezeichnet man als
Fremdschlüssel.
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung der 1:n-Beziehung
Beispiel:
Jeder Fluss fließt in genau ein Meer. In jedes Meer fließen
beliebig viele Flüsse.
FLUSS
fließt_in>
Flussname
Länge
Länder
1
MEER
Meername
n
<wird_gespeist_von
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung der 1:n-Beziehung
Umsetzung:
Der Schlüssel der anderen Tabelle wird bei der Tabelle
eingetragen, bei der das n steht.
FLUSS(Flussname, Laenge, Meername)
MEER(Meername)
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung der n:m-Beziehung
Beispiel:
Jeder Lehrer unterrichtet mehrere Klassen, jede Klasse
wird von mehreren Lehrern unterrichtet.
SCHULKLASSE wird_unterrichtet_von>
Bezeichnung
Schülerzahl
m
Klassenzimmer
<unterrichtet
n
LEHRER
Lehrername
Fächer
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung der n:m-Beziehung
Umsetzung:
Es muss eine gesonderte Beziehungstabelle angelegt
werden.
SCHULKLASSE (Bezeichnung, Schülerzahl,
Klassenzimmer)
LEHRER (Lehrername, Fächer)
UNTERRICHT (Bezeichnung, Lehrername)
Vorteil: Da man die n:m-Beziehung in einer eigenen
Tabelle umsetzt, kann man weitere Attribute hinzufügen
(z.B. ganze Klasse oder nur Teil).
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Beziehungen in Datenbanken
(Hefteintrag)
1:1-Beziehung
Man kann sich aussuchen, in welche Tabelle man den Schlüssel der
anderen als zusätzliches Attribut mit einträgt. Die neue Spalte heißt
Fremdschlüsselspalte. In ihre Zellen wird jeweils der Primärschlüsselwert des zugehörigen Datensatzes der anderen „Seite“ eingetragen.
1:n-Beziehung
Der Schlüssel der anderen Tabelle wird bei der Tabelle eingetragen,
bei der das n steht. Dies ermöglicht eine eindeutige Zuordnung der
Datensätze der verschiedenen Tabellen.
n:m-Beziehung
Es muss eine gesonderte Beziehungstabelle angelegt werden, deren
Spalten die Primärschlüssel der beiden zu verknüpfenden Tabellen als
Fremdschlüssel enthalten.
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung im DBS
Tipps findest Du im Werkzeugkasten auf S152.
Zunächst musst Du in der Tabelle, in der ein
Fremdschlüssel eingefügt werden soll, ein Feld hinzufügen.
Der Datentyp des Fremdschlüssels muss derselbe sein,
wie der in der referenzierten Tabelle. Geschickterweise gibt
man dem Fremdschlüssel einen aussagekräftigen Namen
(er muss nicht genauso heißen, wie die Spalte, auf die er
sich bezieht).
Auf diesem Fremdschlüssel muss ein Index definiert sein.
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Umsetzung im DBS
Jetzt kann der Fremdschlüssel in der
„Beziehungsübersicht“ eingefügt werden.
„On Update Cascade“ bedeutet, dass die Werte in beiden
Tabellen bei jedem Update aktualisiert werden.
Leider müssen die Tabellen jetzt noch „von Hand“
verknüpft werden, da das DBS ja nicht weiß, welcher
Hersteller zu welchem Artikel gehört.
Probiere, in Deiner Datenbank alle Arten von Beziehungen
umzusetzen.
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Aufgaben
Buch (Informatik I, Oldenbourg-Verlag)
Beziehungen: S93/4
Beziehungen im DBS: S92/1-3
n:m-Beziehungen: S101/1-5
Grundwissen S93/5, S102/6
http://www.informatik.digitale-schule-bayern.de/ © Katharina Brachmann
Herunterladen