Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf"—  Präsentation transkript:

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


Herunterladen ppt "Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf"

Ähnliche Präsentationen


Google-Anzeigen