Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf

Slides:



Advertisements
Ähnliche Präsentationen
ER-Modell: Objekte und Klassen
Advertisements

Datenbankdesign mit ACCESS.
Datenbanken Beispiel: Musikverwaltungsdatenbank Daten: Musikstück
Projekt: Datenbankentwurf
Zur Rolle der Sprache bei der Modellierung von Datenbanken
Entity-Relationship-Ansatz
MS Office-Paket: Access
Franziska Schmidt Sarah Ahlheit
Themenschwerpunkte Übung 3:
Entity Relationship Model
Datenbankentwurf mit Hilfe des ER-Modells entwickeln
Entity-Relationship (ER)-Modell
Übung Datenbanksysteme UML
Was ist eine Datenbank? ermöglicht die Eingabe von Daten
Datenmodellierung - Aufbau einer Datenbank -
Buch S73ff (Informatik I, Oldenbourg-Verlag)
© Katharina Brachmann Normalformen Oldenbourg S137, Klett S117
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
Buch S70ff (Informatik I, Oldenbourg-Verlag)
6. Vorlesung: Statische Konzepte
Microsoft® Access® 2010-Schulung
Relationale Datenbanken II
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt
Einführung Access Einführung und Datenbankgrundbegriffe
Übersicht Auf den folgenden Seiten wird Ihnen anhand einer kleinen Abteilung gezeigt, wie Sie PQM an Ihre Bedürfnisse anpassen können. Mitarbeiter einrichten.
Access 2000 Willkommen im Access-Kurs Oliver Mochmann.
(D.h. „Hallo MausFans!“ auf Japanisch).
Das Entity-Relationship-Modell
Freiwillige Feuerwehr der Stadt Perg
Microsoft® Access® 2010-Schulung
verstehen planen bearbeiten
Normalisierungsprozess
Relationale Datenbanken
Datenbank Wandertag Situationsbeschreibung
8.4.3 Übertragung von Beziehungstypen (1|12)
Was ist eine Datenbank „MS Access“
Datenbanken Datenbank-Entwurf
Entität Attribute Beziehung AUTOR CD M 1 N leihen erstellen N verfasst
Vom Konzept zur Datenbank
CD BÜCHER FREUNDE INTERPRETAUTOR Entität Attribute Beziehung Preis TitelCd# Musikricht- ung von bis Handy PLZ Ort Straße Gdatum Vorname Nachname.
Übungsblatt 3 Erläuterungen Wintersemester 15/16 DBIS.
Excel-Tool: Beschwerdeanalyse  Folie 1 von Bitte Makros aktivieren Das Excel-Tool funktioniert nur mit eingeschalteten Makros. Eventuell erhalten.
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
SZ Neustadt, Delmestraße 141B, Bremen 1 Datenbanken Datenbank = Datenbankprogramm + Daten Datenbankprogramm = Datenbankmanagementsystem (DBMS) = System,
Anforderungen an die neue Datenstruktur
SQL Basics Schulung –
Anforderungen an ein Datenbanksystem
Struktur von Datenbanktabellen
Vorlesung #2 ER –Modellierung (Datenbankentwurf)
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Serienbrief erstellen mit LibreOffice Writer
Aggregatfunktionen bei mehreren Tabellen
Verbund von Tabellen.
Create Table, Rechte und Rollen
Vorlesung #2 Datenbankentwurf
DATENBANKEN Datenbanken Modellierung – Architektur – Beziehungen
Kapitel 6: Datenbanksysteme
ER-Modell und Relationales Schema
Wissenschaftliches Projekt
1. Die rekursive Datenstruktur Liste 1.5 Das Entwurfsmuster Kompositum
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
Übung 01 Erstellen Sie eine neue Tabelle mit dem Namen: TBL_Lieferanten Diese Felder soll die Tabelle erhalten: Lieferanten Nummer Name Adresse PLZ Ort.
Übung 01 Erstellen Sie eine neue Tabelle TBL_Lieferanten
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
Informatik Softwareentwicklung – 4.2 Diagramme
Administrieren und Arbeiten mit Datenbanken und SQL
(Structured Query Language)
 Präsentation transkript:

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

Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf Musikdatenbank – Fortsetzung: Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf

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

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

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

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

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

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

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

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

Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf Übung 5 Transportunternehmen (Seite 106, Aufgabe 2) Informatik 9 – 2.Datenbanken – 2.5 Datenbankentwurf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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