DB-Entwurf im ER-Modell DB-Entwurf im ER-Modell 1 Datenbankentwurf 2 Datenbankmodell 3 ER-Modell 4 Erweiterungen des ER-Modells 5 Weiteres Vorgehen beim Entwurf Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–1 DB-Entwurf im ER-Modell Datenbankentwurf Entwurfsaufgabe Datenhaltung für mehrere Anwendungssysteme und mehrere Jahre daher: besondere Bedeutung Anforderungen an Entwurf Anwendungsdaten jeder Anwendung sollen aus Daten der Datenbank ableitbar sein (und zwar möglichst effizient) nur „vernünftige“ (wirklich benötigte) Daten sollen gespeichert werden nicht-redundante Speicherung Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–2 DB-Entwurf im ER-Modell Datenbankentwurf Phasenmodell Anforderungsanalyse Konzeptioneller Entwurf Verteilungsentwurf Logischer Entwurf Datendefinition Physischer Entwurf Implementierung & Wartung Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–3 DB-Entwurf im ER-Modell Datenbankentwurf Anforderungsanalyse Vorgehensweise: Sammlung des Informationsbedarfs in den Fachabteilungen Ergebnis: informale Beschreibung (Texte, tabellarische Aufstellungen, Formblätter, usw.) des Fachproblems Trennen der Information über Daten (Datenanalyse) von den Information über Funktionen (Funktionsanalyse) „Klassischer“ DB-Entwurf: nur Datenanalyse und Folgeschritte Funktionsentwurf: siehe Methoden des Software Engineering Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–4 DB-Entwurf im ER-Modell Datenbankentwurf Konzeptioneller Entwurf erste formale Beschreibung des Fachproblems Sprachmittel: semantisches Datenmodell Vorgehensweise: Modellierung von Sichten z.B. für verschiedene Fachabteilungen Analyse der vorliegenden Sichten in Bezug auf Konflikte Integration der Sichten in ein Gesamtschema Ergebnis: konzeptionelles Gesamtschema, z.B. (E)ER-Diagramm Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–5 DB-Entwurf im ER-Modell Datenbankmodell Grundlagen von Datenbankmodellen Ein Datenbankmodell ist ein System von Konzepten zur Beschreibung von Datenbanken. Es legt Syntax und Semantik von Datenbankbeschreibungen für ein Datenbanksystem fest. Datenbankbeschreibungen = Datenbankschemata Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–6 DB-Entwurf im ER-Modell Datenbankmodell Ein Datenbankmodell legt fest... 1 statische Eigenschaften 1 2 2 inklusive der Standard-Datentypen, die Daten über die Beziehungen und Objekte darstellen können, dynamische Eigenschaften wie 1 2 3 Objekte Beziehungen Operationen Beziehungen zwischen Operationen, Integritätsbedingungen an 1 2 Objekte Operationen Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–7 DB-Entwurf im ER-Modell Datenbankmodell Datenbankmodelle Klassische Datenbankmodelle sind speziell geeignet für große Informationsmengen mit relativ starrer Struktur und die Darstellung statischer Eigenschaften und Integritätsbedingungen (also die Bereiche 1(a), 1(b) und 3(a)) Entwurfsmodelle: (E)ER-Modell, UML, . . . Realisierungsmodelle: Relationenmodell, objektorientierte Modelle, . . . Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–8 DB-Entwurf im ER-Modell ER-Modell Das ER-Modell Entity: Objekt der realen oder der Vorstellungswelt, über das Informationen zu speichern sind, z.B. Produkte (CD, Album), Musiker oder Kunde; aber auch Informationen über Ereignisse, wie z.B. Bestellungen Relationship: beschreibt eine Beziehung zwischen Entities, z.B. ein Kunde bestellt ein Album oder ein Album wird von einem Musiker eingespielt Attribut: repräsentiert eine Eigenschaft von Entities oder Beziehungen, z.B. Name eines Kunden, Titel eines Albums oder Datum einer Bestellung Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–9 DB-Entwurf im ER-Modell ER-Modell ER-Beispiel BestellNr AlbumNr Datum Menge Titel Bestellung Album umfasst Preis eingespielt von Versand bestellt Telefon Kunde Name KundenNr Musiker Name Land MNr Name Adresse Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–10 DB-Entwurf im ER-Modell ER-Modell Werte Werte: primitive Datenelemente, die direkt darstellbar sind Wertemengen sind beschrieben durch Datentypen, die neben einer Wertemenge auch die Grundoperationen auf diesen Werten charakterisieren ER-Modell: vorgegebene Standard-Datentypen, etwa die ganzen Zahlen int, die Zeichenketten string, Datumswerte date etc. jeder Datentyp stellt Wertebereich mit Operationen und Prädikaten dar Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–11 DB-Entwurf im ER-Modell ER-Modell Entities Entities sind die in einer Datenbank zu repräsentierenden Informationseinheiten im Gegensatz zu Werten nicht direkt darstellbar, sondern nur über ihre Eigenschaften beobachtbar Entities sind eingeteilt in Entity-Typen, etwa E1 , E2 . . . Album Menge der aktuellen Entities: σ(E1 ) = {e1 , e2 , . . . , en } Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–12 DB-Entwurf im ER-Modell ER-Modell Attribute Attribute modellieren Eigenschaften von Entities oder auch Beziehungen alle Entities eines Entity-Typs haben dieselben Arten von Eigenschaften; Attribute werden somit für Entity-Typen deklariert AlbumNr Titel Album Preis textuelle Notation E(A1 : D1 , . . . , Am : Dm ) Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–13 DB-Entwurf im ER-Modell ER-Modell Identifizierung durch Schlüssel Schlüsselattribute: Teilmenge der gesamten Attribute eines Entity-Typs E(A1 , . . . , Am ) {S1 , . . . , Sk } ⊆ {A1 , . . . , Am } in jedem Datenbankzustand identifizieren die aktuellen Werte der Schlüsselattribute eindeutig Instanzen des Entity-Typs E bei mehreren möglichen Schlüsselkandidaten: Auswahl eines Primärschlüssels Notation: markieren durch Unterstreichung: E(. . . , S1 , . . . , Si , . . .) Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–14 DB-Entwurf im ER-Modell ER-Modell Beziehungstypen Beziehungen zwischen Entities werden zu Beziehungstypen zusammengefasst allgemein: beliebige Anzahl n ≥ 2 von Entity-Typen kann an einem Beziehungstyp teilhaben zu jedem n-stelligen Beziehungstyp R gehören n Entity-Typen E1 , . . . , En Ausprägung eines Beziehungstyps σ(R) ⊆ σ(E1 ) × σ(E2 ) × · · · × σ(En ) Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–15 DB-Entwurf im ER-Modell ER-Modell Beziehungstypen /2 Notation Album eingespielt von Musiker textuelle Notation: R(E1 , E2 , . . . , En ) wenn Entity-Typ mehrfach an einem Beziehungstyp beteiligt: Vergabe von Rollennamen möglich verheiratet(Frau: Person, Mann: Person) Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–16 DB-Entwurf im ER-Modell ER-Modell Beziehungsattribute Beziehungen können ebenfalls Attribute besitzen Attributdeklarationen werden beim Beziehungstyp vorgenommen; gilt auch hier für alle Ausprägungen eines Beziehungstyps Beziehungsattribute Menge Bestellung umfasst Album textuelle Notation: R(E1 , . . . , En ; A1 , . . . , Ak ) Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–17 DB-Entwurf im ER-Modell ER-Modell Merkmale von Beziehungen Stelligkeit oder Grad: Anzahl der beteiligten Entity-Typen häufig: binär Beispiel: Lieferant liefert Produkt Kardinalität oder Funktionalität: Anzahl der eingehenden Instanzen eines Entity-Typs Formen: 1:1, 1:n, m:n stellt Integritätsbedingung dar Beispiel: maximal 5 Produkte pro Bestellung Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–18 DB-Entwurf im ER-Modell ER-Modell Zwei- vs. mehrstellige Beziehungen Produkt ProdId ProdId Produkt K-P bestellt Name P-V Name Versand Versand K-V Kunde Sattler / Saake KundenNr Kunde Datenbanksysteme KundenNr Wintersemester 2006/7 4–19 DB-Entwurf im ER-Modell ER-Modell Ausprägungen im Beispiel Produkte Kunden K1 P1 K2 P1 P2 V1 V2 Versand Sattler / Saake K1 K2 P2 V1 Produkte Kunden V2 Versand Datenbanksysteme Wintersemester 2006/7 4–20 DB-Entwurf im ER-Modell ER-Modell Rekonstruktion der Ausprägungen Produkte Kunden K1 P1 K1 – P1 – V1 K2 K1 – P2 – V2 P2 K2 – P1 – V2 aber auch: K1 – P1 – V2 V1 V2 Versand Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–21 DB-Entwurf im ER-Modell ER-Modell 1:1-Beziehungen jedem Entity e1 vom Entity-Typ E1 ist maximal ein Entity e2 aus E2 zugeordnet und umgekehrt Beispiele: Prospekt beschreibt Produkt, Mann ist verheiratet mit Frau Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–22 DB-Entwurf im ER-Modell ER-Modell 1:N-Beziehungen jedem Entity e1 vom Entity-Typ E1 sind beliebig viele Entities E2 zugeordnet, aber zu jedem Entity e2 gibt es maximal ein e1 aus E1 Beispiele: Lieferant liefert Produkt, Mutter hat Kinder Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–23 DB-Entwurf im ER-Modell ER-Modell N:1-Beziehung invers zu 1:N, auch funktionale Beziehung zweistellige Beziehungen, die eine Funktion beschreiben: Jedem Entity eines Entity-Typs E1 wird maximal ein Entity eines Entity-Typs E2 zugeordnet. R : E1 → E2 geliefert von Produkt ProdId Preis Lieferant Name Adresse Titel Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–24 DB-Entwurf im ER-Modell ER-Modell M:N-Beziehungen keine Restriktionen Beispiel: Bestellung umfasst Produkte Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–25 DB-Entwurf im ER-Modell ER-Modell [min,max]-Notation E1 [min1, max1] R [min2, max2] [minn, maxn] En ... E2 schränkt die möglichen Teilnahmen von Instanzen der beteiligten Entity-Typen an der Beziehung ein, indem ein minimaler und ein maximaler Wert vorgegeben wird Notation für Kardinalitätsangaben an einem Beziehungstyp R(E1 , . . . , Ei [mini , maxi ], . . . , En ) Kardinalitätsbedingung: mini ≤ |{r | r ∈ R ∧ r.Ei = ei }| ≤ maxi Spezielle Wertangabe für maxi ist ∗ Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–26 DB-Entwurf im ER-Modell ER-Modell Kardinalitätsangaben [0, ∗] legt keine Einschränkung fest (default) R(E1 [0, 1], E2 ) entspricht einer (partiellen) funktionalen Beziehung R : E1 → E2 , da jede Instanz aus E1 maximal einer Instanz aus E2 zugeordnet ist totale funktionale Beziehung wird durch R(E1 [1, 1], E2 ) modelliert Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–27 DB-Entwurf im ER-Modell ER-Modell Kardinalitätsangaben: Beispiele partielle funktionale Beziehung lagert_in(Produkt[0,1],Fach[0,3]) „Jedes Produkt ist im Lager in einem Fach abgelegt, allerdings wird ausverkauften bzw. gegenwärtig nicht lieferbaren Produkte kein Fach zugeordnet. Pro Fach können maximal drei Produkte gelagert werden.“ totale funktionale Beziehung liefert(Lieferant[0,*],Produkt[1,1]) „Jedes Produkt wird durch genau einen Lieferant geliefert, aber ein Lieferant kann durchaus mehrere Produkte liefern.“ Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–28 DB-Entwurf im ER-Modell ER-Modell Alternative Kardinalitätsangabe [1,1] Produkt N Produkt Sattler / Saake geliefert von geliefert von Datenbanksysteme [0,*] Lieferant 1 Lieferant Wintersemester 2006/7 4–29 DB-Entwurf im ER-Modell ER-Modell Abhängige Entity-Typen abhängiger Entity-Typ: Identifikation über funktionale Beziehung Bestellposition gehört zu Produkt PosNr Bestellung BestNr Datum Menge Abhängige Entities im ER-Modell: Funktionale Beziehung als Schlüssel Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–30 DB-Entwurf im ER-Modell ER-Modell Abhängige Entity-Typen /2 Mögliche Ausprägung für abhängige Entities gehört zu BestNr: 1011 Datum: 18.02.06 PosNr: 1 Menge: 2 Produkt: Amplified gehört zu PosNr: 2 Menge: 1 Produkt: Rosenrot gehört zu PosNr: 1 Menge: 1 Produkt: Living With War BestNr: 1012 Datum: 22.11.06 Bestellposition Bestellung Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–31 DB-Entwurf im ER-Modell ER-Modell Abhängige Entity-Typen /3 Alternative Notation Bestellposition gehört zu Produkt PosNr Bestellung BestNr Datum Menge Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–32 DB-Entwurf im ER-Modell ER-Modell Die IST-Beziehung Spezialisierungs-/Generalisierungsbeziehung oder auch Beziehung (engl. is-a relationship) textuelle Notation: E1 IST-Beziehung IST IST- E2 entspricht semantisch einer injektiven funktionalen Beziehung IST Album Genre Produkt ProdId Laufzeit Sattler / Saake Preis Titel Datenbanksysteme Wintersemester 2006/7 4–33 DB-Entwurf im ER-Modell ER-Modell Eigenschaften der IST-Beziehung Jeder Album-Instanz ist genau eine Produkt-Instanz zugeordnet Album-Instanzen werden durch die funktionale IST-Beziehung identifiziert Nicht jedes Produkt ist zugleich ein Album (z.B. Single, Film, . . . ). Attribute des Entity-Typs Produkt treffen auch auf Alben zu: „vererbte“ Attribute Album(Produkt#,Titel,Preis,Genre,Laufzeit) von Produkt nicht nur die Attributdeklarationen vererben sich, sondern auch jeweils die aktuellen Werte für eine Instanz Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–34 DB-Entwurf im ER-Modell ER-Modell Alternative Notation für IST-Beziehung Album Produkt Genre ProdId Laufzeit Sattler / Saake Preis Titel Datenbanksysteme Wintersemester 2006/7 4–35 DB-Entwurf im ER-Modell ER-Modell Kardinalitätsangaben: IST für Beziehung E1 IST E2 gilt immer: IST(E1 [1, 1], E2 [0, 1]) Jede Instanz von E1 nimmt genau einmal an der IST-Beziehung teil, während Instanzen des Obertyps E2 nicht teilnehmen müssen Aspekte wie Attributvererbung werden hiervon nicht erfasst Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–36 DB-Entwurf im ER-Modell ER-Modell Optionalität von Attributen Kunde KundenNr Adresse Name Telefon Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–37 DB-Entwurf im ER-Modell ER-Modell Weitere Konzepte Strukturierte Attributwerte im ER-Modell Kunde KundenNr Ort Adresse Name PLZ Straße Telefon Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–38 DB-Entwurf im ER-Modell ER-Modell Weitere Konzepte Abgeleitete Attributwerte im ER-Modell Album Nettopreis Nettopreis := Preis * 1,17 AlbumNr Preis Titel Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–39 DB-Entwurf im ER-Modell Erweiterungen des ER-Modells Erweiterungen des ER-Modells Spezialisierung und Generalisierung Spezialisierung enstpricht IST-Beziehung: Album Spezialisierung von Produkt Generalisierung: Entities in einen allgemeineren Kontext. Album oder Film als Produkt Partitionierung: Spezialfall der Spezialisierung, mehrere disjunkte Entity-Typen. Partitionierung von Produkten in Album und Film. Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–40 DB-Entwurf im ER-Modell Erweiterungen des ER-Modells Erweiterungen des ER-Modells /2 Komplexe Objekte Aggregierung: Entity aus einzelnen Instanzen anderer Entity-Typen zusammengesetzt. „Album zusammengesetzt aus Titeln, Bonus-Video, Booklet“ Sammlung oder Assoziation: Mengenbildung. „Team als Gruppe von Personen“ Beziehungen höheren Typs Spezialisierung und Generalisierung auch für Beziehungstypen. Beispiel: Beziehung bestellt zu bestelltPerExpress spezialisiert. Beziehungen zwischen Beziehungsinstanzen: Beziehungen zweiter und höherer Ordnung Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–41 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Weiteres Vorgehen beim Entwurf ER-Modellierung von verschiedenen Sichten auf Gesamtinformation, z.B. für verschiedene Fachabteilungen eines Unternehmens konzeptueller Entwurf Analyse und Integration der Sichten Ergebnis: konzeptionelles Gesamtschema Verteilungsentwurf bei verteilter Speicherung Abbildung auf konkretes Implementierungsmodell (z.B. Relationenmodell) logischer Entwurf Datendefinition, Implementierung und Wartung physischer Entwurf Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–42 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Sichtenintegration Analyse der vorliegenden Sichten in Bezug auf Konflikte Integration der Sichten in ein Gesamtschema Sicht #2 Sicht #1 Konsolidierung Globales Schema Sicht #3 Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–43 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Integrationskonflikte Namenskonflikte: Homonyme / Synonyme Homonyme: Schloss; Kunde Synonyme: Auto, KFZ, Fahrzeug Typkonflikte: verschiedene Strukturen für das gleiche Element Wertebereichskonflikte: verschiedene Wertebereiche für ein Element Bedingungskonflikte: z.B. verschiedene Schlüssel für ein Element Strukturkonflikte: gleicher Sachverhalt durch unterschiedliche Konstrukte ausgedrückt Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–44 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Verteilungsentwurf sollen Daten auf mehreren Rechnern verteilt vorliegen, muss Art und Weise der verteilten Speicherung festgelegt werden z.B. bei einer Relation KUNDE (KNr, Name, Adresse, PLZ, Konto) horizontale Verteilung: KUNDE_1 (KNr, Name, Adresse, PLZ, Konto) where PLZ < 50.000 KUNDE_2 (KNr, Name, Adresse, PLZ, Konto) where PLZ >= 50.000 vertikale Verteilung (Verbindung über KNr Attribut): KUNDE_Adr (KNr, Name, Adresse, PLZ) KUNDE_Konto (KNr, Konto) Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–45 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Logischer Entwurf Sprachmittel: Datenmodell des ausgewählten „Realisierungs“-DBMS z.B. relationales Modell Vorgehensweise: 1 2 (automatische) Transformation des konzeptionellen Schemas z.B. ER → relationales Modell Verbesserung des relationalen Schemas anhand von Gütekriterien (Normalisierung, siehe Kapitel 5): Entwurfsziele: Redundanzvermeidung, . . . Ergebnis: logisches Schema, z.B. Sammlung von Relationenschemata Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–46 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Datendefinition Umsetzung des logischen Schemas in ein konkretes Schema Sprachmittel: DDL und DML eines DBMS z.B. Oracle, DB2, SQL Server Datenbankdeklaration in der DDL des DBMS Realisierung der Integritätssicherung Definition der Benutzersichten Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–47 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Physischer Entwurf Ergänzen des physischen Entwurfs um Zugriffsunterstützung bzgl. Effizienzverbesserung, z.B. Definition von Indexen Index Zugriffspfad: Datenstruktur für zusätzlichen, schlüsselbasierten Zugriff auf Tupel (Schlüsselattributwert, Tupeladresse) meist als B*-Baum realisiert Sprachmittel: Speicherstruktursprache SSL Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–48 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Indexe in SQL create [ unique ] index indexname on relname ( attrname [ asc | desc ], attrname [ asc | desc ], ... ) Beispiel create index AlbumIdx on Album (Titel) Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–49 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Notwendigkeit für Zugriffspfade Beispiel: Tabelle mit 10 GB Daten, Festplattentransferrate ca. 10 MB/s Operation: Suchen eines Tupels (Selektion) Implementierung: sequentielles Durchsuchen Aufwand: 10.240/10 = 1.024 sec. ≈ 17 min. Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–50 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Implementierung und Wartung Phasen der Wartung, der weiteren Optimierung der physischen Ebene, der Anpassung an neue Anforderungen und Systemplattformen, der Portierung auf neue Datenbankmanagementsysteme etc. Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–51 DB-Entwurf im ER-Modell Weiteres Vorgehen beim Entwurf Zusammenfassung Phasen des Datenbankentwurfs Datenbankmodell, Datenbankschema, Datenbank(instanz) Entity-Relationship-Modell ER-Erweiterungen: Spezialisierung, Generalisierung, Partitionierung weitere Entwurfsschritte Sattler / Saake Datenbanksysteme Wintersemester 2006/7 4–52