Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ute Amsel Geändert vor über 5 Jahren
1
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Die Abbildung zeigt einen Ausschnitt einer (schlecht geplanten) Musikdatenbank, die CD-Titel, Bands, Bandmitglieder und Songs verwalten soll. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
2
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Musikdatenbank – Fortsetzung: Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
3
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 1 a) Erläutere anhand Beispielen, wo Redundanzen auftreten und welche Anomalien sich daraus ergeben können b) Beschreibe die Inkonsistenz, die man bei folgender Abfrage erhält: SELECT Liedtitel FROM musik WHERE (Bandname = ‘Eastlife´ AND CDTitel = ´Downtown Boy´); Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
4
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Beispiel: Um Redundanzen zu vermeiden, teilt man die Tabelle in mehrere Tabellen auf. Dazu überlegt man sich vorher im Datenbankentwurf geeignete Klassen. Zwischen den Klassen kann es Beziehungen geben, die durch Verbindungslinien dargestellt werden. Die Richtung gibt man neben dem Namen der Beziehung an. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
5
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Zu einer Beziehung gehört auch eine Kardinalität, die angibt, wie viele Objekte (Datensätze) jeweils zusammengehören: 1:1 zu einem Objekt einer Klasse gehört höchtens ein Objekt der anderen Klasse und umgekehrt. 1:n zu einem Objekt einer Klasse gehören mehrere Objekte der anderen Klasse. Zu einem Objekt der Klasse auf der n-Seite gehört aber höchstens ein Objekt auf der 1-Seite. n:m zu einem Objekt einer Klasse gehören mehrere Objekte der anderen Klasse und umgekehrt n m 1 Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
6
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
1 Das Klassendiagramm kann auch als Tabellenschema angegeben werden. KUNDE [KNr, Name, Vorname, Straße] ARTIKEL [ArtNr, Bezeichnung, Einkaufspreis, Verkaufspreis, Lagerbestand] ORT [Plz, Name] DATENBLATT [KatNr, AutorenID] Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
7
Informatik 9 – 2.Datenbanken – 2.4 Redundanz
Um Redundanzen zu vermeiden muss man im Datenbankentwurf geeignete Klassen festlegen. In einem Klassendiagramm zeichnet man die Klassenkarten mit den jeweiligen Attributen. Zwischen den Klassen kann es Beziehungen geben, die durch Verbindungslinien zwischen den Klassenkarten dargestellt werden. Zu einer Beziehung gehört eine Kardinalität (1:1, 1:n oder n:m), die angibt, wie viele Objekte jeweils zusammengehören. Informatik 9 – 2.Datenbanken – 2.4 Redundanz
8
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 2 Überlege dir für die Musikdatenbank geeignete Klassen und Beziehungen. Erstelle ein Klassendiagramm mit Kardinalitäten und ein Tabellenschema. Bei der Modellierung kannst du folgende sinnvollen Vereinfachungen machen: Jeder Musiker spielt in genau einer Band. Jedes Lied ist auf genau einer CD Jede Band hat mindestens ein Mitglied. Auf jeder CD spielt nur eine Band. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
9
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 3 Erstelle ein Klassendiagramm mit Kardinalitäten: Eine europäische Fachzeitschrift für Leichtathletik möchte in einer Datenbank die folgenden Informationen zu den Olympischen Sommerspielen speichern: Für jeden Sportler, der bei den Olympischen Spielen teilgenommen hat, sollen der Name, die Nationalität, die Größe und das Gewicht bekannt sein. Zusätzlich soll abgefragt werden können, ob der betreffenden Sportler aus Europa stammt. Zu den Olympischen Spielen sollen das Jahr der Austragungsort und die Teilnehmerzahl gespeichert werden. Außerdem soll bekannt sein, welcher Sportler bei welchen Spielen welchen Rekord erzielt hat. Zu jedem Rekord sollen die Disziplin und die Art des Rekords (Weltrekord, Europarekord,...) gespeichert werden. Darüber soll ohne Umweg abrufbar sein, ob es sich um einen Rekord in der Leichtathletik handelt. Es sei vorausgesetzt, dass jeder Sportler eindeutig durch seinen Namen identifizierbar ist und dass Olympische Spiele in verschiedenen Jahren in derselben Stadt stattfinden können. Ein Rekord soll eindeutig durch die Disziplin und die Art des Rekords gekennzeichnet sein. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
10
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 4 Erstelle ein Klassendiagramm mit Kardinalitäten: Eine Leihbücherei will in einer Datenbank die folgenden Informationen speichern: Zu jedem Buch sollen der Titel, der Autor und die Bestellnummer gespeichert werden. Außerdem soll das Erscheinungsjahr, die Gattung (Sachbuch, Roman, Prosa, ...) und der Standort in der Bücherei bekannt sein. Es kann mehrere Bücher mit demselben Titel geben, desgleichen viele Bücher vom selben Autor, aber ein Autor schreibt nicht zwei verschiedene Bücher mit demselben Titel. Der Einfachheit halber wird angenommen, dass von jedem Buch nur ein Exemplar vorhanden ist. Jeder Entleiher bekommt eine persönliche Benutzernummer zugewiesen, wenn er zum ersten Mal ein Buch ausleiht. Außer seiner Benutzernummer sollen in der Datenbank der Name und die Adresse des Entleihers bekannt sein. Zu jedem Benutzer der Bücherei soll zusätzlich noch abfragbar sein, ob er am Ort wohnt oder auswärtiger Entleiher ist. Die Leihbücherei möchte außerdem noch Namen und Adressen aller Verlage, von denen sie Bücher bezieht, speichern. Ebenfalls soll bekannt sein, welches Buch von welchem Verlag vertrieben wird. Es gibt nicht zwei Verlage mit derselben Anschrift. Weiterhin soll natürlich bekannt sein, wer welche Bücher gerade ausgeliehen hat. Dabei sind das Ausleihdatum und das Rückgabedatum (wird individuell vereinbart) zu speichern. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
11
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 5 Transportunternehmen (Seite 106, Aufgabe 2) Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
12
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
E-R-Diagramme Zur Planung der Datenbank verwendet man anstelle der Klassendiagramme auch Entity - Relationship - Diagramme. Entity = Klassen; Die Attribute werden in Ellipsen an die Entities gehängt; Relationship = Beziehung zwischen den Klassen; Darstellung der Beziehungen: in Rauten zwischen den Entities; Kardinalitäten auf den Verbindungslinien; Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
13
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Umsetzung einer 1:n Beziehung Zu jedem Datensatz der Tabelle LIED gehört eindeutig ein Datensatz der Tabelle CD. Um dies in der Datenbank umzusetzen, ergänzt man die Tabelle LIED um die Attribute, welche den Primärschlüssel von CD bilden. Das neue Tabellenschema von LIED lautet: LIED [LiedTitel, Länge, CDTitel] Die auf diese Weise ergänzten Attribute bezeichnet man als Fremdschlüssel von CD in LIED. Eine 1:1 Beziehung realisiert man genauso. In diesem Fall spielt es keine Rolle, auf welcher Seite der Fremdschlüssel ergänzt wird. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
14
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Tabellenschema mit Fremdschlüsseln BAND [Bandname, Stil] PERSON [Nr, Vorname, Nachname, Geburtsjahr, Instrument, Bandname] CD [CDTitel, Bandname] LIED [LiedTitel, Länge, CDTitel] Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
15
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 6 Erstelle in einer neuen Datenbank Musikgruppen_Fremdschlüssel nach dem neuem Tabellenschema die vier Tabellen und trage einige Datensätze ein. Verwende für die Daten z.B. die Datei Musikgruppen_redundant.docx Hinweise zur Erleichterung der Dateneingabe: Aktiviere für den Primärschlüssel Nr in PERSON die Funktion Autowert Erstelle in SQL folgende Abfragen: Liste alle Lieder einer bestimmten CD auf, die länger als 3 Minuten dauern. In welchen Bands spielen Musiker, die 1980 oder früher geboren wurden? Ermittle die Mitgliederzahlen aller Bands. Liste alle Sänger mit zugehörigem Bandnamen auf. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
16
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Umsetzung einer n:m Beziehung Ort_ID Beispiel: Verwalten der Daten von einem Sportverein mit verschiedenen Sportarten. Tabellenschema: PERSON [MNr, Name, Vorname, GebDatum, Geschlecht, Straße, TelNr, Ort_ID] ORT [Ort_ID, PLZ, Ortsname] Die n:m-Beziehung ist_Mitglied kann nicht durch Fremdschlüssel in den den Tabellen PERSON und ABTEILUNG realisiert werden, da man diesen Attribute jeweils keinen eindeutigen Wert zuordnen könnte. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
17
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Umsetzung einer n:m Beziehung Ort_ID Lösung: Man ergänzt das Tabellenschema um eine neue Tabelle. Die Attribute dieser neuen Beziehungstabelle sind die Primärschlüssel der beteiligten Tabellen: IST_MITGLIED [MNr, Sport_ID] Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
18
Informatik 9 – 2.Datenbanken – 2.4 Redundanz
Zur Realisierung einer n : m – Beziehung muss eine weitere Tabelle angelegt werden. Diese Tabelle enthält die Primärschlüssel der zu verknüpfenden Tabellen als Fremdschlüssel. Der Primärschlüssel der Tabelle ist die Kombination der Fremdschlüssel. Informatik 9 – 2.Datenbanken – 2.4 Redundanz
19
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 7 Erstelle in der Datenbank Sportverein1 die Beziehungstabelle IST_MITGLIED und ordne einigen Mitgliedern ihre Abteilungen zu. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
20
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Integritätsregeln bei Datenbanken Öffne die Datenbank Musikgruppen_mit_Fremdschlüssel. Sie enthält drei 1:n-Beziehungen, die mithlife von Fremdschlüsseln umgesetzt sind. Beispiel: PERSON [Nr, Vorname, Nachname, Geburtsjahr, Instrument, Bandname] Bandname ist ein Fremdschlüssel von BAND in der Klasse PERSON. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
21
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Integritätsregeln bei Datenbanken PERSON [Nr, Vorname, Nachname, Geburtsjahr, Instrument, Bandname] Bei der Dateneingabe in der Klasse PERSON gibt man den zugehörigen Wert von Bandname ein. Bei der Eingabe könnten jedoch Fehler passieren. Dadurch wäre die Verknüpfung zur Tabelle BAND fehlerhaft und die Datenbank inkonsistent. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
22
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Integritätsregeln bei Datenbanken Um dies zu vermeiden, müssen die Beziehungen im Tabellenentwurf noch festgelegt werden. Für LibreOffice: Gehe dazu auf Extras und wähle Beziehungen. Füge alle Tabellen, zwischen denen es Beziehungen gibt hinzu: Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
23
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Integritätsregeln bei Datenbanken Ziehe den Primärschlüssel von BAND auf den Fremdschlüpssel Bandname in PERSON. Die 1:n-Beziehung ist nun festgelegt. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
24
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Integritätsregeln bei Datenbanken Wird nun bei der Dateneingabe in PERSON ein Fremdschlüssel eingegeben, der als Primärschlüssel in BAND nicht existiert, ist eine der Integritätsregeln verletzt und das System gibt eine Fehlermeldung aus: Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
25
Informatik 9 – 2.Datenbanken – 2.4 Redundanz
Integritätsregeln 1. Jede Tabelle muss einen Primärschlüssel besitzen. 2. Bei einem Datensatz darf der Primärschlüssel nicht leer bleiben. 3. Besitzt eine Tabelle A einen Fremdschlüssel der Tabelle B, so muss es für jeden Wert des Fremdschlüssels in A auch einen zugehörigen Wert in B geben. (referentielle Integrität) Informatik 9 – 2.Datenbanken – 2.4 Redundanz
26
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 8 Erstelle in der Datenbank Musikgruppen_mit_Fremdschlüssel alle Beziehungen. Teste, ob eine fehlerhafte Eingabe eine Fehlermeldung liefert. Erstelle in der Datenbank Sportverein1 alle Beziehungen. Die n:m-Beziehung wird dabei durch zwei 1:n Beziehungen festgelegt. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
27
Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Übung 9 S. 116, Aufgabe 9 Elektromarkt a) Erläutere die Tabellen und erkläre, welche Attribute Fremdschlüssel sind. b) Versuche, das zugrunde liegende Klassendiagramm zu reorganisieren. c) Ergänze in der Datenbank die Beziehungen. Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.