KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft...

53
1 Datenbanken 1 Datenbankentwurf Karl Meier [email protected] 21.09.2010 2 21.09.2010 1 Datenbankentwurf Inhalt 3-Phasen-Modell Datenbank – Lebenszyklus Datenbankentwurf ER - Modell Übung

Transcript of KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft...

Page 1: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 2: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 3: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 4: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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.

Page 5: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 6: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 7: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 8: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 9: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 10: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 11: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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, …)

Page 12: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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)

Page 13: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 14: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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“

Page 15: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 16: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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.

Page 17: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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.

Page 18: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 19: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 20: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 21: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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)

Page 22: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 23: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 24: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 25: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 26: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 27: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 28: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 29: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 30: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 31: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 32: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 33: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 34: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 35: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 36: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 37: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 38: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 39: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

39

7721.09.2010 1 Datenbankentwurf

Visio 2010

7821.09.2010 1 Datenbankentwurf

Powerdesigner

Page 40: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

40

7921.09.2010 1 Datenbankentwurf

AllFusion ERwin Data Modeller

8021.09.2010 1 Datenbankentwurf

AllFusion ERwin Data Modeller

Page 41: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

41

8121.09.2010 1 Datenbankentwurf

ORACLE Designer

8221.09.2010 1 Datenbankentwurf

DBDesigner 4

http://www.fabforce.net

Page 42: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 43: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 44: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 45: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 46: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 47: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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.

Page 48: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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 !

Page 49: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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.

Page 50: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 51: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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

Page 52: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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.

Page 53: KK10 1 Datenbankentwurf - schulstoff.ch · • Anforderungskatalog / Lastenheft • Pflichtenheft • Benutzergruppen • Anwendungen • Prozesse / Vorgänge • Randbedingungen

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