Einführung Datenmodellierung Entitätstypen, Attribute, Relationen und Entitäten
Wozu Datenbanken? Datenbanken dienen zur Speicherung und Verwaltung großer Datenbestände Beispiele: Adressdaten aller Kunden des Amazon-Webshops Bestellungen all dieser Kunden Vertragsdaten aller A1-Handykunden Die Daten werden in miteinander verknüpften Tabellen gespeichert (relationales Datenbanksystem). Ein Nutzen ergibt sich aus der Möglichkeit, diese großen Datenbestände mit Abfragen leicht durchsuch- und analysierbar zu machen Beispiele: - Welche Amazon-Kunden in Innsbruck haben in diesem Jahr mindestens dreimal bestellt? - Welche Produkte haben im letzten Monat die höchsten Umsätze erzielt? Professionelle Datenbanksysteme Oracle, IBM DB2, Microsoft SQL-Server, MySQL Folie 2
Modelle und Modellieren reales Objekt detailgetreues Modell (z.b. 1:100) vereinfachtes Modell (z.b. 1:100) Folie 3
Einführung Datenmodellierung Realwelt Modellierung Modell Es wird immer ein Ausschnitt (Teil) der Realwelt modelliert, wobei es immer einer Abstraktion bedarf. Bei der Abstraktion sollten die Bedürfnisse aller Beteiligten und Betroffenen berücksichtigt werden. Datenmodelle beschreiben die Tabellen und Beziehungen einer relationalen Datenbank. Datenbank Umsetzung Folie 4
Das Entity-Relationship-Modell (ER-Modell) Ein ER-Modell ist ein Modell, welches für den Entwurf von relationalen Datenbanken eingesetzt wird. Es basiert auf drei Grundkonzepten: 1. Dem Entitätstyp" 2. Den Attributen (den Eigenschaften eines Entitätstyps) 3. Den Realtionen (den Beziehung zwischen Entitätstypen) 1. Was ist ein Entitätstyp": Eine Person, ein Objekt oder Ding (aus der Realwelt ) über welche(s) Daten von vielen Instanzen ("Entitäten") gesammelt und gespeichert werden sollten. 2. Die Attribute: Beschreiben jene Details einer Entitätstype über welche Daten gesammelt und gespeichert werden sollten, z.b. Name, Bezeichnung, Preis, Größe, Gewicht, Farbe, Ort, Zeit Darstellungskonventionen der Crow s Foot Notation : Der Entitätstyp wird durch ein Rechteck dargestellt Der Name des Entitätstyps steht oben im Rechteck Attribute werden darunter geschrieben Das/die Schlüsselattribut(e) wird/werden durch einen Stern (*) vor dem Attributsnamen gekennzeichnet Person *ID vorname nachname geschlecht Folie 5
Der Entitätstyp und die Entität Einem Entitätstyp im ER-Modell entspricht eine Tabelle in der Datenbank! Primärschlüssel- Attribut ARTIKEL *ArtikelID Artikelbezeichnung Preis Lagerbestand Attribute ER- Modell Achtung: Eine Tabelle (ein Entitätstyp) kann nur eine begrenzte Anzahl an Spalten (Attributen), aber eine unbegrenzte Anzahl an Zeilen (Entitäten) haben! Attribut Einem Attribut im ER-Modell entspricht eine Tabellenspalte in der Datenbank! Attribut Attribut Entität Entität Entität Entität Einer Entität entspricht eine Tabellenzeile in der Datenbank! Daten bank Folie 6
3. Relationen (Beziehungen) in ER-Modellen - Relationen illustrieren realweltliche Verbindungen zwischen Entitätstypen. - Werden durch ihre Kardinalität, die maximale Anzahl an Verbindungen einer Entität aus Entitätstyp E1 zu Entitäten aus Entitätstyp E2 (1 oder mehrere (N)) und Konditionalität, die minimale Anzahl an Verbindungen einer Entität aus Entitätstyp 1 zu Entitäten aus Entitätstyp 2, (0 oder 1)) bestimmt (genau definiert): 1:1 E 1 E 2 1:N N:M Relationsdarstellung in der Crow s-foot-notation: 1 : 1 1 : (0 oder 1) 1 : (1 oder N) 1 : (0 oder N) Folie 7
3.a) 1:N Beziehungen ER-Modell in Crow s-foot Notation: Dasselbe ER-Modell in MS Access Notation: Die Tabellen in MS-Access: Folie 8
Referenzielle Integrität: Für jeden Fremdschlüsselwert muss ein dazugehöriger Primärschlüsselwert vorhanden sein! Konkret heißt das: Für jede FSBetreuerID in der Tabelle Kunde muss (bereits vorher) eine Entität in der Tabelle Betreuer angelegt sein. Es kann keinem Kunden ein Betreuer zugeteilt werden, der nicht existiert! Ein Primärschlüsselwert muss bestehen, bevor er als Fremdschlüsselwert eingetragen werden kann. Aussage Primärschlüssel Fremdschlüssel PS/FS-Spalte muss Wert enthalten. PS/FS-Wert darf in einer Tabelle nur einmal vorkommen. Vorsicht bei Änderung des PS/FS-Wertes. ja ja ja nein nein ja Folie 9
1:N Beziehungen: Bedeutung und Anforderungen an Primär- und Fremdschlüsselattribute a. Ein gemeinsames Attributpaar in zwei Entitätstypen, bestehend aus Primärschlüssel und zugehörigem Fremdschlüssel stellt die physische Ausprägung einer modellierten 1 zu N Beziehung in der Datenbank dar. b. Auf die Primärschlüsselwerte wird im Fremdschlüssel referenziert, d.h. als Fremdschlüsselwerte sind nur solche Werte erlaubt, die als Primärschlüsselwerte bereits vorhanden sind (Referenzielle Integrität). PS Realwelt Modell Datenbank c. Primärschlüsselwertemüssen (unter anderem auch wegen b.) jede Entität von jeder anderen unterscheidbar machen, sie müssen eindeutig sein! FS Ein Primärschlüssel kann: Aus einem natürlichen (in der Realwelt existierenden) Attribut bestehen, wenn dieses die geforderte Eindeutigkeit erfüllt. Aus mehreren natürlichen Attributen bestehen, wenn die Kombination dieser Attribute die geforderte Eindeutigkeit erfüllt. Aus einem künstlichen (in der Realwelt nicht existierenden) Attributbestehen, welches als zusätzliches Attributin den Entitätstyp eingeführt wird, wenn die geforderte Eindeutigkeit sonst gar nicht oder nur durch Kombination zu vieler natürlicher Attribute herstellbar wäre. d. Fremdschlüsselwerte müssen nicht(!) eindeutig sein, sie dürfen allerdings nur solche Werte annehmen, die einem der eindeutigen Werte des zugehörigen Primärschlüssels entsprechen! Ein Fremdschlüssel: Besteht aus genau so vielen Attributen wie der zugehörige Primärschlüssel. Kann andere Attributnamen verwenden (kann anders heißen) als der zugehörige Primärschlüssel, muss aber denselben Datentyp verwenden, weil zu den Primärschlüsselwerten identische Werte zu speichern sind. Fremdschlüssel repräsentieren das N einer 1:N Beziehung und sind damit auf den N-Seite der Relation zu modellieren: e. Werteänderungen in Schlüsselspalten Welche Konsequenz hätte im Beispiel oben die Änderung des Primärschlüsselwertes 1 in 10? Welche Konsequenz hätte im Beispiel oben die Änderung des Fremdschlüsselwertes 2 in 15? Wie können die Konsequenzen von Werteänderungen in Schlüsselspalten abgefangen werden? Folie 10
3.b) N:M Beziehungen Beziehungen des Typs N:M können in der Datenbank NICHT durch ein gemeinsames Attributpaar in beiden Entitätstypen, bestehend aus Primärschlüssel und zugehörigem Fremdschlüssel, dargestellt werden, wie es bei 1:N Beziehungen der Fall ist: Die Übernahme des Primärschlüssels Anbieter als Fremdschlüssel in die Tabelle Ausschreibungen funktioniert nicht: Wenn mehr als 1 Anbieter zu einer Ausschreibung anbietet, müsste die Eindeutigkeit des Primärschlüssel AusschreibungsID verletzt werden! Die Übernahme des Primärschlüssels AusschreibungsID als Fremdschlüssel in der Tabelle Anbieter funktioniertebenfalls nicht: Wenn ein Anbieter zu mehr als einer Ausschreibung Angebote stellt, müsste die Eindeutigkeit seines Primärschlüssels AnbieterID verletzt werden! Daher sind Beziehungen des Typs N:M durch Einführung einer weiteren Entitätstype (einer sog. Auflösungstabelle ) in mehrerer Beziehungen des Typs 1:N zu überführen und diese wie erläutert jeweils durch ein gemeinsames Attributpaar, bestehend aus Primärschlüssel und zugehörigem Fremdschlüssel in der Datenbank zu implementieren: Anmerkung: Ist eine Relation zwischen Auflösungs- und ursprünglicher Tabelle wieder vom Typ N:M, ist eine weitere Auflösungstabelle zu implementieren, solange, bis nur mehr Beziehungen des Typs 1:N resultieren. Beispiel: Modellieren Sie den Sachverhalt Kunde kauft Artikel? Folie 11
N:M Beziehung - Beispiel Folie 12
N:M Beziehung Umsetzung in das relationale DB-Schema Problem: Es ist nicht möglich, den Primärschlüssel der Tabelle Artikel als Fremdschlüssel in die Tabelle Bestellung aufzunehmen: Bestellung Artikel *Auftragsnummer Bestelldatum FSArtikelnummer *Artikelnummer Artikelbezeichnung Preis Lagerbestand 1 01.11.2008 109 108 Keinohrhasen 9,95 20 2 23.11.2008 109 109 Hancock 16,95 130 Eine Bestellung, die mehrere Artikel enthält, kann nicht gespeichert werden. Es ist nicht möglich, den Primärschlüssel der Tabelle Bestellung als Fremdschlüssel in die Tabelle Artikel aufzunehmen: Artikel Bestellung *Artikelnummer Artikelbezeichnung Preis Lagerbestand FSAuftragsnummer *Auftragsnummer Bestelldatum 108 Keinohrhasen 9,95 20 1 1 01.11.2008 109 Hancock 16,95 130 1 2 23.11.2008 Ein Artikel kann nicht zu mehreren Bestellungen zugeordnet werden. Quelle: nach Watson (2006), S. 115f Folie 13
N:M Beziehung: Umsetzung in das relationale DB-Schema Lösung: Durch die Erstellung der Tabelle Bestellposition wird gewährleistet, dass: Eine Bestellung mehrere Artikel enthalten kann Ein Artikel in mehreren Bestellungen enthalten sein kann Quelle: nach Saake/Sattler/Heuer (2008), S. 159ff, Watson (2006), S. 115f Folie 14
Datenmodellierung Schritt für Schritt, Übungen Eine mögliche Vorgehensweise zur Modellierung von ER-Diagrammen könnte so ausschauen: 1. Erkennen von Realweltlichen Objekten und Modellierung der Entitätstypen, 2. Erkennen der Relationen zwischen den Entitätstypen, 3. Bestimmen und Modellierung der Relationstypen, 4. Auflösen von N:M Beziehungen, Modellieren der neuen Entitätstypen und Bestimmen der neuen Relationen, 5. Bestimmen und Modellierung geeigneter Primärschlüssel für jede Entitätstype, 6. Bestimmen und Modellierung zugehöriger Fremdschlüssel, 7. Erkennen und ModellierungweitererAttribute Übungsbeispiele: 1. Shop für Sportartikel a. Jeder angebotene Artikel soll damit Kunden ihn leicht finden können Kategorien (z.b. Damen/Herren, Winter/Sommer, Indoor/Outdoor, ) zugeordnet werden können. b. Angeboten werden Einzelartikel und Sets, die aus einer beliebigen Kombination dieser Einzelartikel bestehen können. 2. Fluglinie a. Kunden buchen Flüge (aus Sicht einer Fluglinie). b. Kunden sitzen während der Flüge auf Sitzen (Boarding). c. MitarbeiterINNEN (derselben Fluglinie) führen Flüge durch. 3. Wie könnte ein Datenmodell ausschauen, aus welchem die nebenstehende Notenliste abgleitet werden könnte? Folie 15