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