KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft...
Transcript of KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft...
1
Datenbanken1 Datenbankentwurf
Karl Meier [email protected] 21.09.2010
221.09.2010 1 Datenbankentwurf
Inhalt 3-Phasen-Modell
Datenbank – Lebenszyklus
Datenbankentwurf
ER - Modell
Übung
2
321.09.2010 1 Datenbankentwurf
3 – Ebenen – Modell(ANSI-SPARC 1978)
Externe Ebene
Konzeptionelle Ebene
Interne Ebene
Transformationsregeln
Transformationsregeln
Sicht 3Sicht 2Sicht 1
Konzeptionelles Schema
Internes Schema
Logische Gesamtsicht
Physikalische Beschreibung
Benutzerdefinierte Sichten
421.09.2010 1 Datenbankentwurf
Datenbankentwurf
Datenbankentwurf ist der Planungs-prozess der Datenbank mit folgendenAspekten:
Logische Struktur Physische Struktur Zusätzliche Bedingungen
3
521.09.2010 1 Datenbankentwurf
Entwicklungsprozess eines DBS
AnalyseDesign /
Redesign
Betrieb Implementation
621.09.2010 1 Datenbankentwurf
Datenbank - Lebenszyklus
Verschiedene Phasen der Entwicklungvon Software können auch auf dieDatenbankentwicklung angewendetwerden.
AnalysePlanung
Entwicklung
Test BetriebEntwurf
4
721.09.2010 1 Datenbankentwurf
Anforderungsanalyse
• Anforderungskatalog / Lastenheft
• Pflichtenheft
• Benutzergruppen
• Anwendungen
• Prozesse / Vorgänge
• Randbedingungen
• Dialog mit Anwendern
821.09.2010 1 Datenbankentwurf
PflichtenheftDas Pflichtenheft ist die vertraglich bindende,detaillierte Beschreibung einer zu erfüllenden Leistung,zum Beispiel der Erstellung eines Computerprogramms.Laut DIN 69905 umfasst das Pflichtenheft die "vomAuftragnehmer erarbeiteten Realisierungsvorhabenaufgrund der Umsetzung des vom Auftraggebervorgegebenen Lastenhefts."Die Inhalte des zuvor ausgearbeiteten Lastenhefts (auchgrobes Pflichtenheft genannt) sind nun präzisiert,vollständig und nachvollziehbar sowie mit technischenFestlegungen der Betriebs- und Wartungsumgebungverknüpft.
5
921.09.2010 1 Datenbankentwurf
Motivation
1021.09.2010 1 Datenbankentwurf
Inhalt eines Pflichtenheftes1. Zielbestimmung: muss / soll / kann und Abgrenzungen2. Produkteinsatz: Anwendungsbereiche / Zielgruppen /
Betriebsbedingungen3. Produktübersicht: kurze Übersicht über das Produkt4. Produktfunktionen: genaue und detaillierte Beschreibung5. Produktdaten: langfristig zu speichernde Daten aus Benutzersicht6. Produktleistungen: Anforderungen bezüglich Zeit und Genauigkeit7. Qualitätsanforderungen8. Benutzeroberfläche: grundlegende Anforderungen, Zugriffsrechte9. Nichtfunktionale Anforderungen: einzuhaltende Gesetze und
Normen, Sicherheitsanforderungen, Plattformabhängigkeiten 10. Technische Produktumgebung: Software / Hardware /
Organisatorisches / Schnittstellen11. Spezielle Anforderungen an die Entwicklungs-Umgebung12. Gliederung in Teilprodukte13. Ergänzungen
6
1121.09.2010 1 Datenbankentwurf
Konzeptioneller Entwurf
• Modellierung der SichtenTop-Down-Methode
• Integration in GesamtschemaBottom-Up-Methode
• ER – Modell (ERM)
• UML – Diagramme
UML – Unified Modeling Language http://ivs.cs.uni-magdeburg.de/~dumke/UML/index.htm
1221.09.2010 1 Datenbankentwurf
Logischer Entwurf
• Transformation der Konzepte
• Datenmodell
z.B. relationales Datenmodell
• Normalisierung
• Entwurf für Verteilung im Netz
Datenintegrität
7
1321.09.2010 1 Datenbankentwurf
Implementierung
• Physischer Entwurf
• Datenbankerstellung
• SQL
• Datenkonvertierung
• Datenimport
Performance, Datensicherheit, Wartbarkeit
1421.09.2010 1 Datenbankentwurf
Test
• Datenbank und Abfragen
• Systemtest
• Benutzertest
• Validierung Anforderungen
Qualitätssicherung
8
1521.09.2010 1 Datenbankentwurf
Betrieb
• Wartung des DBS
• Datenbankadministration
• Datenadministration
• Änderungsanforderungen
1621.09.2010 1 Datenbankentwurf
EntwurfsphasenAnforderungsanalyse
Konzeptioneller Entwurf
Logischer Entwurf
Verteilung im Netz
Physischer Entwurf / Implementierung
Test
Betrieb
9
1721.09.2010 1 Datenbankentwurf
Fazit: Datenbankentwurf
Hoher Einfluss auf Qualität Je später Änderungen notwendig werden, desto höher fallen die Kosten aus!!! Bei der Modellierung zu beachten: Vollständigkeit Korrektheit Lesbarkeit Minimalität Modifizierbarkeit
1821.09.2010 1 Datenbankentwurf
Datenmodell
Abstraktionsprozess
10
1921.09.2010 1 Datenbankentwurf
Abstraktionsprozess 1/2
Klassifikation Klassen gleichartiger Objekte
Aggregation Klasse aus bereits existierenden Klassen
Generalisierung Teilmengenbeziehung Vererbung der Eigenschaften
2021.09.2010 1 Datenbankentwurf
Abstraktionsprozess 2/2
Assoziation Beziehung zwischen den Objekten Basierend auf Identifikation
Identifikation Eigenschaften als Schlüssel definiert Eindeutige Objektidentifizierung
11
2121.09.2010 1 Datenbankentwurf
Entity-Relationship-Modell
ER-Modell oder kurz ERM (E. F. Codd) bekanntestes und meistverwendetes grafisches Hilfsmittel für DB-Entwurf Unabhängig vom Datenmodell leicht verständlich Abstraktionskonzepte anwendbar
Ein Ausschnitt aus der realen Welt wird modelliert.
2221.09.2010 1 Datenbankentwurf
Grundbausteine des ERM
Entitäten (Entities)
Beziehungen (Relationships)
Subjekte oder Objekte aus der realen Welt
(z.B. Kunde, Lieferung, …)
Zusammenhänge zwischen Gegenständen
(z.B. kaufen, liefern, …)
12
2321.09.2010 1 Datenbankentwurf
Definition Entität
Substantiv Objekt von Bedeutung Notwendigkeit, Information zu besitzen
Entität stellt ein bedeutendes Objekt aus derrealen Welt dar, worüber dem UnternehmenInformationen vorliegen müssen.
2421.09.2010 1 Datenbankentwurf
Konventionen
MITARBEITER
ABTEILUNGFIRMA(KUNDE)
• Box
• eindeutiger Entitätsname
• Synonym (optional)
13
2521.09.2010 1 Datenbankentwurf
Entität - Instanzen
MITARBEITER ABTEILUNG
Leitung
Produktion Verkauf
Eine Entität identifiziert eine Gruppe von Dingen.
Innerhalb dieser Gruppe gibt es einzelne Instanzen.
2621.09.2010 1 Datenbankentwurf
Beispiel
Instanz
Gruppe
Entität MITARBEITER ABTEILUNG
Alle Mitarbeiter
Alle Abteilungen
Mitarbeiter Meier
Abteilung Verkauf
14
2721.09.2010 1 Datenbankentwurf
Entitäten modellieren
Substantiv identifizieren Ist es von Bedeutung? Liegen benötigte Informationen vor? Ist es Gruppe oder Instanz?Entität benennenIdentifikation der wichtigsten AttributeErstellen der BeschreibungZeichnen der Box
2821.09.2010 1 Datenbankentwurf
Aufgabe
Entwickeln Sie Entitäten zur Darstellungder Information aus dem Interview„Videothek Hollywood“
15
2921.09.2010 1 Datenbankentwurf
Videothek „Hollywood“„Ich bin der Geschäftsführer einer Videothek namens Hollywood.Wir führen mehr als 3'000 Kopien von Videofilmen, über die wir Buch führen müssen.Von jedem Videofilm müssen wir den Titel und die Kategorie, wie z.B. Horror,Spannung, Drama wissen.Wir führen von jedem Titel mehrere Kopien und jede dieser Kopien erhält eineeindeutige Nummer, so dass über diese Buch geführt werden kann. Ein Medium kannentweder das Format DVD oder VHS haben. Wir haben immer mindestens eineKopie von jedem Titel und jedes Medium enthält nur einen Film. Einige dieser Filesind sehr lang und trotzdem sind sie stets nur auf einem Band oder einer DVDenthalten.Trotz unserer vielen Kunden stellen wir immer sicher, dass wir Videos nur anPersonen verleihen, die Mitglied unseres Verleih-Clubs geworden sind. Von jedemMitglied haben wir Name und Vorname, Telefonnummer, die Adresse und natürlichseine Mitgliedsnummer gespeichert.Ausserdem müssen wir Buch darüber führen, welche Videos ein Mitglied im Momentausgeliehen hat. Es können jederzeit mehrere Filme ausgeliehen werden. Wirbenötigen keine Historie der ausgeliehenen Filme, wir müssen nur wissen, werwelche Kopie hat und wann sie ausgeliehen wurde.Wir berechnen unterschiedliche Gebühren abhängig davon, wer das Video ausleiht,wann es voraussichtlich zurückgegeben wird, um welchen Film es sich dabei handeltund welche Qualität die Kopie hat.“
3021.09.2010 1 Datenbankentwurf
Mögliche Lösung
MITGLIED TITELKOPIE
16
3121.09.2010 1 Datenbankentwurf
Beziehung (Relationship)
Benannte und bedeutsame Verbindung zwischen zwei Entitäten (oder zwischen 2 Instanzen einer Entität) „Was hat eine Sache mit einer anderen zu tun?“ Bidirektional Unternehmensregeln
3221.09.2010 1 Datenbankentwurf
Bidirektionale Beziehung
DOZENT VORLESUNG
Ein Dozent kann eine Vorlesung halten.
Eine Vorlesung kann von einem Dozenten gehalten werden.
17
3321.09.2010 1 Datenbankentwurf
Eine Linie zwischen zwei Entitäten Infinitiv in Kleinbuchstaben Optionalität (Modalität)
Grad (Kardinalität)
Konventionen
Muss – erforderlich
Kann - möglich
Eine einzige
Eine oder mehrere („Krähenfuss“)
3421.09.2010 1 Datenbankentwurf
Beispiel
DOZENT VORLESUNG
Ein Dozent kann eine oder mehrere Vorlesungen halten.
Eine Vorlesung kann von einem Dozenten gehalten werden.
18
3521.09.2010 1 Datenbankentwurf
Beziehungssyntax
JedeEntität 1
Entität 2Beziehungs-name
mussoderkann
eine odermehrere
oder
eine einzige
Subjekt-Entität
Modalität Name Grad Objekt-Entität
3621.09.2010 1 Datenbankentwurf
Beispiel
Jeder Dozent kann zugeteilt sein zu einer oder mehrerenVorlesungen.
Jede Vorlesung kann gehalten werden von einem einzigenDozenten.
DOZENT VORLESUNG
19
3721.09.2010 1 Datenbankentwurf
Beziehungstypen
1:1
M:N
M:1
3821.09.2010 1 Datenbankentwurf
M:1 Beziehung
Kommt am häufigsten vor Vater-Kind-Beziehung Übergeordnete-Untergeordnete-Beziehung
muss – kann Übergeordnete Entität wird zuerst erstellt
kann – kann Reihenfolge der Erstellung unwichtig
muss – muss (sehr selten) Instanzen gegenseitig abhängig voneinander
20
3921.09.2010 1 Datenbankentwurf
M:N Beziehungen
Zu Beginn der Analyse häufig verwendet Mehrzahl sind kann-kann-Beziehungen muss-muss-Beziehungen sehr selten (Gleichzeitige Erstellung der Instanzen)
Auflösen von M:N Beziehungen
4021.09.2010 1 Datenbankentwurf
1:1 Beziehungen
Eventuell identische Entitäten muss-muss-Beziehungen sehr selten
AUTO FAHRERgefahren werden von
Fahrer sein von
Das ER-Diagramm ist eine Momentaufnahme
21
4121.09.2010 1 Datenbankentwurf
Krähenfussnotation
4221.09.2010 1 Datenbankentwurf
Beziehungen modellieren
Existenz einer Beziehung bestimmen (Auch Beziehung der Entität zu sich selbst)
Jeder Richtung einer Beziehung einenNamen gebenGrad der einzelnen RichtungenbestimmenOptionalität jeder Richtung bestimmenValidierung der Beziehung (vorlesen)
22
4321.09.2010 1 Datenbankentwurf
Aufgabe
Modellieren Sie Beziehungen zwischenden Entitäten aus dem Beispiel „VideothekHollywood“
MITGLIED TITELKOPIE
4421.09.2010 1 Datenbankentwurf
TITEL
Mögliche Lösung
MITGLIED
KOPIE
ausleihen
ausgeliehenwerden von haben
verfügbar sein als
23
4521.09.2010 1 Datenbankentwurf
Beziehungen prüfen
1:1 Beziehungen Sind es wirklich zwei Entitäten?
1:M (muss – kann)„Titel, die als mindestens eine Kopie vorliegenmüssen, um den Titel erfassen zu können“
muss – muss Beziehungen
4621.09.2010 1 Datenbankentwurf
• Klar und sauber
• Eindeutiger Text
• Erkennbare Muster
• Möglichst wenige
Überschneidungen
• „lebhaftere“ Entitäten oben und links
Layout Konventionen
24
4721.09.2010 1 Datenbankentwurf
Beispiel Hollywood
MITGLIED
KOPIE TITEL
ausleihen
ausgeliehenwerden von
haben
verfügbar sein als
4821.09.2010 1 Datenbankentwurf
Attribute
Sind Informationen über eine Entität Attribute beschreiben eine Entität Klarer und eindeutiger Name Zusammengesetzte Namen auflösen Hat keine eigenen Attribute Ein einziger Wert für jede Instanz Formatinformationen sind zugeordnet Domäne: Zulässiger Wertebereich der Attribute
25
4921.09.2010 1 Datenbankentwurf
Konventionen
MITGLIED
namevornametelefonnummeradressemitgliedernummer
• Innerhalb der Entität
• Singular
• Kleinbuchstaben
Im ERM müssen nicht alle Attributedargestellt werden
5021.09.2010 1 Datenbankentwurf
Gemeinsame Daten
Gleiche Daten in mehreren Entitäten
Dieselbe Information liegt oft an zweiverschiedenen Stellen vor, um den Zugriffdarauf zu vereinfachen.
Thema für Design-Phase
26
5121.09.2010 1 Datenbankentwurf
Abgeleitete Daten
Abgeleitete Attribute sind redundant undkönnen zu inkonsistenten Werten führen
• Anzahl
• Summe
• Maximum, Minimum, Durchschnitt
• Berechnung
Design-Thema: Speicherplatz vs. Verarbeitungszeit
5221.09.2010 1 Datenbankentwurf
Attribut - Optionalität
Muss – Attribute (Volumen 100%) Für jede Instanz muss ein Wert
gespeichert sein Markierung: *
Kann – Attribute (Volumen ≤100%) Für jede Instanz kann ein Wert gespeichert sein Markierung: o
27
5321.09.2010 1 Datenbankentwurf
Aufgabe
Verwenden Sie das ERM aus demInterview „Videothek Hollywood“ undergänzen Sie es mit den notwendigenAttributen
5421.09.2010 1 Datenbankentwurf
Mögliche Lösung
MITGLIED
* name* vorname° telefonnummer* adresse* mitgliedernummer* rabattstufe
TITEL
* titel° länge* kategorie* preisklasse
KOPIE
* nummer* format° zustand° rückgabedatum° ausleihdatum
haben
verfügbar seinals
ausleihen
ausgeliehenwerden von
28
5521.09.2010 1 Datenbankentwurf
Instanz
Jede Instanz einer Entität ist eindeutig Attribut(e) als eindeutiger Bezeichner ( UID – Unique Identifier )
MITARBEITER
personalnummernamevornamegeburtsdatum
5621.09.2010 1 Datenbankentwurf
Einfacher UID
MITGLIED
# * mitgliedernummer
• Einzelnes Attribut
• UID mit # kennzeichnen
29
5721.09.2010 1 Datenbankentwurf
Zusammengesetzter UID:Attribute
MITGLIED
# * name# * vorname# * adresse# * geburtsdatum
• mehrere Attribute
• diese Attribute mit # kennzeichnen
5821.09.2010 1 Datenbankentwurf
Zusammengesetzter UID:Kombination
KONTO
# * nummer# * blz (FK)
BANK
# * blz
• Kombination aus Attributen und Beziehung
30
5921.09.2010 1 Datenbankentwurf
Zusammengesetzter UID:Beziehungen
LEIHGEGENSTAND# * nummer (FK)# * inventarnummer (FK)* ausleihperiode° rückgabe
KOPIE
# * inventarnummer * einkaufspreis
VERLEIH
# * nummer * verleihdatum
6021.09.2010 1 Datenbankentwurf
Beziehungs-UIDs mit mehrerenEbenen
TICKET# * name (FK)# * datum (FK)# * zeit (FK)# * titel (FK)# * haus (FK)
THEATER
# * haus
KUNDE
# * name
STÜCK
# * titel# * haus (FK)
VORSTELLUNG
# * datum# * zeit# * titel (FK)# * haus (FK)
Name des Theaters + Titel des Stücks +
Vorstellungsdatum + Zeit der Vorstellung +
Kundenname
31
6121.09.2010 1 Datenbankentwurf
Schlüssel und Primärschlüssel
Umfassen eines oder mehrere Attribute Sollte Minimalitätsanforderung erfüllen Allenfalls künstliches Attribut einführen Index
Primärschlüssel zur eindeutigen Identifizierung Ein Primärschlüssel pro Entität
6221.09.2010 1 Datenbankentwurf
Aufgabe
Verwenden Sie das ERM aus demInterview „Videothek Hollywood“ undidentifizieren Sie eindeutige Bezeichner(UIDs) für jede Entität
32
6321.09.2010 1 Datenbankentwurf
Mögliche Lösung
MITGLIED
# * mitgliedernummer * name * vorname ° telefonnummer * adresse * rabattstufe
TITEL
# * id * titel ° länge * kategorie * preisklasse
KOPIE
# * nummer * format ° zustand ° rückgabedatum ° ausleihdatum
haben
verfügbar seinals
ausleihen
ausgeliehenwerden von
6421.09.2010 1 Datenbankentwurf
Sonderfälle
Verknüpfungsentitäten Rekursive Beziehung Hierarchische Daten Netzwerkstrukturen
33
6521.09.2010 1 Datenbankentwurf
Verknüpfungsentität
Mit einer Verknüpfungsentität werden M:NBeziehungen aufgelöst
TITEL
# * prod code * name
LIEFERANT
# * lieferant nr * name
Problem: Wo kommt der „kaufpreis“ hin?
6621.09.2010 1 Datenbankentwurf
Auflösung
TITEL
# * prod code * name
LIEFERANT
# * lieferant nr * name
KATALOGARTIKEL
# * artikelnummer * kaufpreis
sein für
verfügbar sein als
sein für
Lieferant sein von
34
6721.09.2010 1 Datenbankentwurf
oder
TITEL
# * prod code * name
LIEFERANT
# * lieferant nr * name
KATALOGARTIKEL# * prod code (FK)# * lieferant nr (FK) * kaufpreis
sein für
verfügbar sein als
sein für
Lieferant sein von
6821.09.2010 1 Datenbankentwurf
Aufgabe
Lösen Sie folgende M:N Beziehung auf:
KUNDE# * id * vorname * name
PRODUKT
# * nummer * name * mengeneinheit
der Auftraggebersein von
bestelltwerden von
Fügen Sie die Attribute bestelldatum, bestellmenge und preis hinzu
35
6921.09.2010 1 Datenbankentwurf
LösungPRODUKT# * nummer * name * mengeneinheit
KUNDE# * id * vorname * name
AUFTRAG# * bestellnr * bestelldatum
AUFTRAGSPOSITION# * nummer# * bestellnr (FK) * menge * preis
beinhalten
vorkommen inenthaltensein in
umfassen
stammen von
Auftraggebersein von
7021.09.2010 1 Datenbankentwurf
Rekursive Beziehung
MITARBEITER
Managersein von
betreutwerden von
36
7121.09.2010 1 Datenbankentwurf
Hierarchien sequentiell
Firma
Bereich
Abteilung
Gruppe
GRUPPE# * name
ABTEILUNG# * name
BEREICH# * name
FIRMA# * name
Beispiel Organisationsstruktur
7221.09.2010 1 Datenbankentwurf
Hierarchien rekursivGRUPPE# * name
ABTEILUNG# * name
BEREICH# * name
FIRMA# * name
ORGANISATIONSELEMENT
# * name * typ
bestehen aus
enthaltensein in
37
7321.09.2010 1 Datenbankentwurf
Rekursive Hierarchien
Eine rekursive Hierarchie muss immer inbeide Richtungen optional sein.
Sonst würde eine unendliche Hierarchieohne jegliche praktische Anwendung inder Realität entstehen!
7421.09.2010 1 Datenbankentwurf
Netzwerkstrukturen
KOMPONENTE
# * identifizierer
ein Teilsein von
bestehenaus
Beispiel StücklisteRekursive M:N Beziehung
38
7521.09.2010 1 Datenbankentwurf
Netzwerkstrukturen
FERTIGUNGSREGEL# * identifizierer produkt (FK)# * identifizierer bestandteil (FK)° menge
KOMPONENTE
# * identifizierer
sein für sein für
bestehen aus ein Teil sein von
7621.09.2010 1 Datenbankentwurf
Tools zur Modellierung Visio 2010 (Microsoft)
Powerdesigner (Sybase)
AllFusion ERwin Data Modeller (CA)
ORACLE Designer
DBDesigner 4 (Fabforce)
MySQL Workbench
39
7721.09.2010 1 Datenbankentwurf
Visio 2010
7821.09.2010 1 Datenbankentwurf
Powerdesigner
40
7921.09.2010 1 Datenbankentwurf
AllFusion ERwin Data Modeller
8021.09.2010 1 Datenbankentwurf
AllFusion ERwin Data Modeller
41
8121.09.2010 1 Datenbankentwurf
ORACLE Designer
8221.09.2010 1 Datenbankentwurf
DBDesigner 4
http://www.fabforce.net
42
8321.09.2010 1 Datenbankentwurf
DBDesigner 4
MySQL DatenbankenGPLWindows und LinuxEinfache Weiterverarbeitung, da Daten inXML gespeichert sindQuery Mode zur Erstellung komplexer DB-Abfragen
8421.09.2010 1 Datenbankentwurf
MySQL Workbench
http://www.mysql.com/products/workbench
43
8521.09.2010 1 Datenbankentwurf
MySQL Workbench
Mit einem einzigen, integrierten Framework aufvisueller Basis lassen sich Datenbankenentwerfen, modellieren, ändern und anpassen.Auch Hilfsmittel zum Erstellen der Dokumentationwerden mitgeliefert. MySQL Workbench ist unterGPL veröffentlicht als kostenlose CommunityEdition / kommerzielle Standard Edition.WB wurde von Sun-Mitarbeiter Michael G. Zinnerentwickelt, gleichzeitig der Autor des Open-Source-Datenbankwerkzeugs DBDesigner 4.
8621.09.2010 1 Datenbankentwurf
Komplexe Strukturen
Exklusivität Zeit Verbindungsfallen
44
8721.09.2010 1 Datenbankentwurf
Exklusive Entitäten
BUCH° autor
CD° interpret° laenge
TITEL# * produktcode * titel * beschreibung * kategorie
SUPERTYP / SUBTYP
8821.09.2010 1 Datenbankentwurf
Supertyp / Subtyp
Supertyp Kann eigene Attribute haben oder auch nur
als Gruppenname verwendet werden Beinhaltet kleinere Gruppen
Subtyp Müssen sich gegenseitig ausschliessen Erbt Attribute des Supertyps Kann auch ohne eigene Attribute bestehen UID des Supertyps auch für Subtyp gültig
45
8921.09.2010 1 Datenbankentwurf
Beispiel „Videothek“
FIRMA
# * firmennr * name * telefonnummer ° lieferantennr ° vertrieb
KOPIE
# * regnr ° zustand
gekauft von
verkaufen
MITGLIEDSCHAFT
# * nummer * startdatum * gültigkeit ° bemerkungen
lauten auf
Inhabersein von
9021.09.2010 1 Datenbankentwurf
ver-kaufen
Beispiel „Videothek“
FIRMA
# * firmennr * name * telefonnummer
KOPIE
# * regnr ° zustand
gekauft von
MITGLIEDSCHAFT
# * nummer * startdatum * gültigkeit ° bemerkungen
lauten auf
Inhabersein von
ANDERE
LIEFERANT ° lieferantennr ° vertrieb
46
9121.09.2010 1 Datenbankentwurf
Entitäten verschachteln
MITARBEITER
VERTRIEB
VERTRETER
TELEFON-VERKAUF
INFORMATIKER
MECHANIKER
FIRMENWAGEN
Auf Klarheit achten!
9221.09.2010 1 Datenbankentwurf
ERM mit Historie
Was tun, wenn die Videothek eineVermiethistorie einer Kopie festhaltenmöchte?
KOPIE MITGLIED
47
9321.09.2010 1 Datenbankentwurf
Lösung
KOPIE# * inventarnr
MITGLIED# * mitgliedernr
MIETVERTRAG# * ausleihdatum# * inventarnr (FK) ° rueckgabedatum
Verknüpfungsentität für sichändernde Daten.
Aber: Das Speichern historischerDaten, die nicht benötigt werden,kann teuer werden.
9421.09.2010 1 Datenbankentwurf
AufgabePERSON# * personalnr * name * vorname
POSITION# * jobbezeichnung ° beschreibung
ABTEILUNG# * abteilungsnr * name
Entwickeln Sie ein ERD für eine Beschäftigungshistorie.
48
9521.09.2010 1 Datenbankentwurf
Achtung: FächerfallePERSON# * personalnr * name * vorname
POSITION# * jobbezeichnung ° beschreibung
ABTEILUNG# * abteilungsnr * name
POSITIONS- HISTORIE
ABTEILUNGS- HISTORIE
ORGANISATIONS- HISTORIE
Unmöglichkeit, Positionund Firma zum Zeitpunktx festzustellen.
9621.09.2010 1 Datenbankentwurf
Lösung
PERSON# * personalnr * name * vorname
POSITION# * jobbezeichnung ° beschreibung
ABTEILUNG# * abteilungsnr * name
BESCHÄFTIGUNGSHISTORIE# * startdatum# * personalnr (FK)# * abteilungsnr (FK)# * jobbezeichnung (FK) ° enddatum
Eine einzige Verknüpfungsentität !
49
9721.09.2010 1 Datenbankentwurf
Abgrundfalle
MITARBEITER
FIRMENWAGENABTEILUNG
Falls der letzte Mitarbeiter, der zur Benutzung eines Abteilungswagensberechtigt ist, die Firma verlässt, geht die Verbindung verloren.
9821.09.2010 1 Datenbankentwurf
Lösung der Abgrundfalle
MITARBEITER
FIRMENWAGENABTEILUNG
ZUWEISUNG
Eine Abgrundfalle istZeichen für einefehlende Beziehung.
50
9921.09.2010 1 Datenbankentwurf
Konvergenz
Vereinfachung des Modells Anzahl Entitäten und Beziehungen reduzieren Oftmals ineinander verschachtelte Subtypen Unternehmensregeln können verloren gehen Achtung vor übermässiger Vereinfachung
DING !
10021.09.2010 1 Datenbankentwurf
Divergenz
Detaillierung des Modells Gefahr der überflüssigen Komplexität Kann zu Unlesbarkeit des Modells führen „Ist dieser Detaillierungsgrad wirklich nötig?“
ADRESSE
ADRESSZEILEWORT
51
10121.09.2010 1 Datenbankentwurf
Qualitätsicherung
Am Ende der Modellierung sollte das ERDauf seine Qualität geprüft werden.
Fragen und Checklisten zu Entitäten Attributen Beziehungen Domänen
10221.09.2010 1 Datenbankentwurf
Unterschiedliche ERD Notationen
52
10321.09.2010 1 Datenbankentwurf
Beispiel
10421.09.2010 1 Datenbankentwurf
Aufgabe
ANGESTELLTER
MITARBEITER
SACHBEARBEITER
PROJEKT
KUNDE
AUFTRAG
ABTEILUNG?
Jeder Mitarbeiter kann in mehreren Projekten tätig sein. Das Projekt wiederum kannmehrere Mitarbeiter haben. Jeder Auftrag wird von einem Projekt initiiert. Ein Projektkann zu mehreren Aufträgen führen. Diese Aufträge sind jeweils einem Kundenzugeordnet. Jeder Kunde wird von einem Sachbearbeiter betreut. Dieser kann fürmehrere Kunden zuständig sein. Die Projekte sind jeweils einer Abteilung zugeordnet.
53
10521.09.2010 1 Datenbankentwurf
Lösung
ANGESTELLTER# * personalnummer * name … * position
MITARBEITER
SACHBEARBEITER
ABTEILUNG# * abteilungsnr * abteilungsname
PROJEKT# * projektnr * name * startdatum * enddatum
PROJEKT/MA# * personalnummer (FK)# * projektnr (FK) * funktion * prozent
AUFTRAG
# * aufnr
KUNDE
# * kdnr * name
10621.09.2010 1 Datenbankentwurf