Beruflich Dokumente
Kultur Dokumente
Motivation
Entwurfsaufgabe
■ Anforderungen an Entwurf
□ Anwendungsdaten jeder Anwendung sollen aus Daten der Datenbank ableitbar sein.
– Möglichst effizient
□ Nur „vernünftige“ (wirklich benötigte) Daten sollen gespeichert werden.
□ Nicht-redundante Speicherung
Entwurfsprozess
§ In jedem Schritt
§ Informationserhaltung
§ Konsistenzerhaltung
Datenbank
Konzeptioneller Entwurf
Verteilungsentwurf
Logischer Entwurf
Datendefinition
Physischer Entwurf
Implementierung
und Wartung
Anforderungsanalyse
■ Vorgehensweise Anforderungsanalyse
□ Sammlung des Informationsbedarfs in den Fachabteilungen
■ Ergebnis Konzeptioneller
Entwurf
□ Informale Beschreibung des Fachproblems
– Texte, tabellarische Aufstellungen, Formblätter, …
Verteilungsentwurf
□ Trennen der Information über Daten (Datenanalyse) von den Information
über Funktionen (Funktionsanalyse)
Logischer Entwurf
■ „Klassischer“ DB-Entwurf
□ Nur Datenanalyse und Folgeschritte Datendefinition
■ Funktionsentwurf
□ Siehe Methoden des Software-Engineering Physischer Entwurf
Implementierung
und Wartung
Konzeptioneller Entwurf
■ Erste formale Beschreibung des Fachproblems Anforderungsanalyse
□ Diskurswelt (Universe of Discourse)
■ Sprachmittel: semantisches Datenmodell Konzeptioneller
□ ER-Modell (Entity-Relationship-Modell) Entwurf
■ Vorgehensweise Verteilungsentwurf
Sichtenintegration
Verkaufs-
sicht Verkaufs-
sicht
Globales
Schema
Produkt-
Buchaltungs- Produkt- Buchaltungs-sicht
sicht
sicht sicht
Integrationskonflikte
■ Namenskonflikte
□ Homonyme: Schloss, Kunde
□ Synonyme: Auto, KFZ, Fahrzeug
■ Typkonflikte
□ Verschiedene Strukturen für das gleiche Element
□ String vs. int vs. date
■ Wertebereichskonflikte
□ Verschiedene Wertebereiche für ein Element
□ KW 1 – 52 vs. Januar, Februar, …, Dezember
■ Bedingungskonflikte
□ z.B. verschiedene Schlüssel für ein Element
□ <ISBN> vs. <Titel, Autor>
■ Strukturkonflikte
□ Gleicher Sachverhalt durch unterschiedliche Konstrukte ausgedrückt
Verteilungsentwurf (Partitionierung)
■ Sollen Daten auf mehreren Rechnern verteilt vorliegen, muss Art und Weise Anforderungsanalyse
der verteilten Speicherung festgelegt werden.
Konzeptioneller
Entwurf
■ Z.B. bei Relation KUNDE (KNr, Name, Adresse, PLZ, Konto)
□ Horizontale Partitionierung
Verteilungsentwurf
– KUNDE_1 (KNr, Name, Adresse, PLZ, Konto)
where PLZ < 50000
– KUNDE_2 (KNr, Name, Adresse, PLZ, Konto) Logischer Entwurf
where PLZ >= 50000
□ Vertikale Partitionierung (Verbindung über KNr Attribut)
Datendefinition
– KUNDE_Adr (KNr, Name, Adresse, PLZ)
– KUNDE_Konto (KNr, Konto)
Physischer Entwurf
■ Nicht in diesem Kurs
Implementierung
und Wartung
Logischer Entwurf
■ Sprachmittel: Datenmodell des ausgewählten DBMS Anforderungsanalyse
□ z.B. DB2, Oracle, … ® relationales Modell
□ Tamino ® XML Konzeptioneller
Entwurf
□ Dynamo, Redis ® key-value Modell
□ OO, JSON, RDF, …
Verteilungsentwurf
■ Vorgehensweise
Logischer Entwurf
□ (Automatische) Transformation des konzeptionellen Schemas
– z.B. ER in relationales Modell
□ Verbesserung des relationalen Schemas anhand von Gütekriterien Datendefinition
– Normalisierung, Redundanzvermeidung, …
■ Ergebnis: logisches Schema, z.B. Sammlung von Relationen-schemata Physischer Entwurf
Implementierung
und Wartung
Datendefinition
■ Umsetzung des logischen Schemas in ein konkretes Schema Anforderungsanalyse
Konzeptioneller
■ Sprachmittel: SQL Entwurf
□ DDL (data definition language) und
DML (data manipulation language) eines DBMS
Verteilungsentwurf
– z.B. Oracle, DB2, SQL Server, …
□ Datenbankdeklaration in der DDL des DBMS
– CREATE TABLE … Logischer Entwurf
Implementierung
und Wartung
Physischer Entwurf
■ DBMS nimmt automatisiert physischen Entwurf vor. Anforderungsanalyse
■ Ergänzen um Zugriffsunterstützung zur Effizienzverbesserung
□ z.B. Definition von Indizes Konzeptioneller
□ CREATE INDEX … Entwurf
■ Index
□ Datenstruktur für effizienten, Suchschlüssel-basierten Zugriff auf Verteilungsentwurf
Datensätze
(<Schlüsselattributwert, Tupeladresse>)
□ Meist als Baumstruktur oder Hashtabelle realisiert Logischer Entwurf
■ Beispiel
□ Tabelle mit 10 GB Daten Datendefinition
□ Festplattentransferrate ca. 50 MB/s
□ Operation: Suchen einer Bestellung (Selektion)
Physischer Entwurf
□ Implementierung: sequentielles Durchsuchen
□ Aufwand: 10.240/50 = 205 sec. = 3,5 min.
Implementierung
■ Nicht in dieser VL und Wartung
Datendefinition
■ Kostenaufwändigste Phase
■ Software Engineering
Physischer Entwurf
Verteilungsentwurf
Physischer Entwurf
Implementierung
Tupleorganisation und Wartung
§ Entitytyp: Rechteck
§ Relationshiptyp: Raute
§ Attribut: Oval
Name
Titel Jahr Schauspieler*in
spielt_in Adresse
Filme
besitzt
Länge Typ
Name
Studios
Adresse
Filme
Filme
besitzt
Länge Typ
Titel Jahr Länge Typ Name
Schauspieler*in spielt_in
Name Adresse Name Titel
Sharon Stone Hollywood Sharon Stone Total Recall
Arnold Schwarzenegger Sacramento Sharon Stone Basic Instinct
Johnny Depp Paris Arnold Schwarzenegger Total Recall
Johnny Depp Dead Man
Prof. Dr. Ziawasch Abedjan Seite 25
Kardinalitäten von Relationships
§ Allgemein: Eine binäre Relationship kann beliebig viele Entities des einen Typen mit
beliebig vielen des anderen Typen verbinden.
§ Ein Schauspieler kann in mehreren Filmen spielen.
§ In einem Film spielen mehrere Schauspieler.
§ „Kann“: D.h. nicht jeder Entity muss mit einem anderen verbunden sein.
§ In einem Animationsfilm spielen keine
Schauspieler.
§ m:n Beziehung
§ Einschränkungen („Spezialfälle“)
§ 1:n Beziehung
§ 1:1 Beziehung
§ Ein Entity vom Typ E kann mit höchstens einem Entity des Typs F verbunden sein.
§ Ein Entity vom Typ F kann mit höchstens einem Entity des Typs E verbunden sein.
§ Beispiel
§ Ein Studio kann nur von einem Vorsitzenden geleitet werden.
§ Ein Vorsitzender kann nur ein Studio leiten.
§ „Kann“: D.h. nicht jeder Entity muss mit einem anderen verbunden sein.
§ Ein Studio kann (vorübergehend) keinen E F
Vorsitzenden haben.
§ [min,max]-Notation (Lookup-Semantik)
§ Schränkt die möglichen Teilnahmen von Instanzen der beteiligten Entitytypen
an der Beziehung ein.
§ Wie oft steht ein Entitytyp in Beziehung?
[0,1] [0,3]
Produkt lagert_in Regal
Studios
Original
ist_Fortsetzung Filme
Fortsetzung
Prof. Dr. Ziawasch Abedjan Seite 32
Rollen von Relationships
§ Stammstudio eines Schauspielers erlaubt einem anderen Studio den Schauspieler für einen bestimmten Film
auszuleihen
Stammstudio des
Schauspielers Produzierendes Studio
Studios
§ Kardinalitäten:
§ Gegeben Schauspieler, Film und produzierendes Studio, ist das ausleihenden Stammstudio eindeutig (höchstens
ein Studio ist das ausleihende Stammstudio).
§ Gegeben Schauspieler, Film und Stammstudio ist das produzierende Studio eindeutig (höchstens ein Studio kann
einen Film produzieren).
§ Gegeben Schauspieler, Stammstudio und produzierendes Studio könnte es mehrere Filme geben, die in dieser
Konstellation gedreht werden.
§ Gegeben Film, Stammstudio und produzierendes Studio könnte es mehrere Schauspieler geben, die in dieser
Konstellation ausgeliehen werden.
Stammstudio des
Schauspielers Produzierendes Studio
Studios
Schauspieler*in Filme
Schauspieler_von Film_von
Vertrag
Stammstudio_Schauspieler Produzierendes_Studio
Name
Länge Typ Studios
Adresse
Name
Länge Typ
Studios
Adresse
Prof. Dr. Ziawasch Abedjan Seite 37
Die IST-Beziehung
§ Subklasse
§ Spezialfall / Spezialisierung
§ Weniger Entities
§ Mehr Attribute
§ Eventl. mehr Relationships
§ Besonderer Relationshiptyp
§ IST (is-a)
§ Darstellung durch Dreieck
§ Spitze zeigt zur Superklasse
§ Immer 1:1
§ Trotzdem keine Pfeile
§ Subklassen zu Filmen
§ Zeichentrickfilme Länge Titel Jahr Typ
§ Krimis
Filme
zu Schauspielern
IST IST
Stimmen
Filme
Bäume Stimmen
IST IST
§ Schlüssel
§ Ein oder mehrere Attribute
§ Werte identifizieren eindeutig ein Entity.
§ Referentielle Integrität
§ Existenz des referenzierten Entities
§ Entspricht „dangling pointer“
§ Domänen
§ Einschränkung des Wertebereichs
§ Allgemeine Nebenbedingungen (assertions)
§ Z.B. nicht mehr als 10 Schauspieler pro Film
§ Nebenbedingungen sind Teil des Schemas. Sie leiten sich nicht aus den Daten ab!
§ Ein Schlüssel ist eine (minimale) Menge von Attributen eines Entitytyps, für die gilt, dass
keine zwei Entities gleiche Werte in allen Schlüsselattributen haben.
§ Einige Attributwerte können übereinstimmen.
§ Oft nur ein Attribut
§ Für jeden Entitytyp muss ein Schlüssel angegeben werden.
§ Es kann mehr als einen Schlüssel für einen Entitytyp geben.
§ Üblich: Primärschlüssel auswählen
§ Bei IST-Beziehungen muss die Wurzel-Superklasse sämtliche Schlüsselattribute enthalten.
besitzt
Länge Typ
Name
Studios
Adresse
Ein Entitytyp ist schwach wenn es zur eindeutigen Identifizierung eines Entities nötig
ist, eine oder mehr n:1 Relationships zu folgen und den Schlüssel der verwandten
Entities hinzuzunehmen.
§ Eine Spezies ist definiert durch den Namen der Gattung und
des Spezies.
§ Gattung: homo
§ Spezies: homo sapiens
Schauspieler_von Film_von
Vertrag
Gehalt
Studio_von
Name
Adresse Studios
Relationship
Vertrag hat kein Attribut, das Teil des Filme ist_unter_Vertrag Schauspieler*in
Studios
Adresse
§ Optionales Attribut
§ Attributwert nicht für jede Entität vorhanden
§ Abgeleitetes Attribut
§ Wert wird anhand einer Berechnungsvorschrift aus nicht-abgeleiteten
Attributen errechnet.
§ Mengenwertiges Attribut
§ Enthält Menge von Werten
§ Strukturiertes Attribut
§ Wird durch weitere Attribute beschrieben
§ Wert des strukturierten Attributs entspricht Verkettung der Unterattribute.
Abgeleitetes
Attribut
Optionales Mengenwertiges
Attribut Produkt Bruttopreis
Attribut
Bruttopreis = Preis * 1,19
§ Spezialisierung
§ entpricht IST-Beziehung
§ Luftballons sind Spezialisierung von Produkt
§ Generalisierung
§ Entities in einen allgemeineren Kontext
§ Luftballons oder Filme als Produkt
§ Partitionierung
§ mehrere disjunkte Entity-Typen
§ Spezialfall der Spezialisierung
§ Partitionierung von Produkten in Zubehör und Drachen
Teil-von Teil-von
Rahmen Räder
§ Redundanz tritt auf, wenn der gleiche Sachverhalt auf mehr als eine Weise
ausgedrückt wird.
§ Redundanz verschwendet Platz.
§ Auf dem Papier
§ Auf der Festplatte
§ Redundanz fördert Inkonsistenz.
§ Veränderung eines Sachverhalts wird nur an einer Stelle repräsentiert.
Name Adresse
Titel
Filme besitzt Studios
Studio
reprä-
Filme sentiert
Holdings besitzt Studios
Studios
Name Adresse
Name
Titel Jahr Schauspieler*in
spielt_in Adresse
Filme
????
besitzt
Länge Typ
Name
Studios
Adresse
Name Adresse
Besser
Titel
Filme
Studioname
Ist dies nicht auch
Redundanz?