1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene...

56
1

Transcript of 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene...

Page 1: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

1

Page 2: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

2

Datenbankentwurf

Abstraktionsebenen des Datenbankentwurfs

1. Konzeptuelle Ebene

2. Implementationsebene

3. Physische Ebene

Page 3: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

3

Allgemeiner „top-down Entwurf“

Einsatz des Systems

Entwurfsschritt 4

Enwurfsschritt 3

Enwurfsschritt 2

Enwurfsschritt 1Anforderungsanalyse

.

.•

. . .

. . .

Page 4: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

4

Hardware/BS-Charakteristika

Datenverarbeitungs-anforderungen

Informations-anforderungen

physische Datenbankstruktur

DBMS-Charakteristika

Physischer Entwurf

Implementations-entwurf

KonzeptuellerEnwurf

Anforderungs-analyse

logische Datenbankstruktur

Informations-struktur

Anforderungs-spezifikation

ER Schema

Phasen des Datenbankentwurfs

Page 5: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

5

Anforderungsanalyse

1. Identifikation von Organisationseinheiten

2. Identifikation der zu unterstützenden Aufgaben

3. Anforderungs-Sammelplan

4. Anforderungs-Sammlung

5. Filterung

6. Satzklassifikationen

7. Formalisierung

Page 6: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

6

Objektbeschreibung Uni-Angestellte

- Anzahl: 1000

- Attribute

PersonalNummer

• Typ: char

• Länge: 9

• Wertebereich: 0...999.999.99

• Anzahl Wiederholungen: 0

• Definiertheit: 100%

• Identifizierend: ja

Gehalt

• Typ: dezimal

• Länge: (8,2)

• Anzahl Wiederholung: 0

• Definiertheit: 10%

• Identifizierend: nein

Rang

• Typ: String

• Länge: 4

• Anzahl Wiederholung: 0

• Definiertheit: 100%

• Identifizierend: nein

Page 7: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

7

Beziehungsbeschreibung: prüfen Beteiligte Objekte:

- Professor als Prüfer

- Student als Prüfling

- Vorlesung als Prüfungsstoff

Attribute der Beziehung:

- Datum

- Uhrzeit

- Note

Anzahl: 100 000 pro Jahr

Page 8: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

8

Prozeßbeschreibungen Prozeßbeschreibung: Zeugnisausstellung

- Häufigkeit: halbjährlich

- benötigte Daten

* Prüfungen

* Studienordnungen

* Studenteninformation

* ...

- Priorität: hoch

- Zu verarbeitende Datenmenge

* 500 Studenten

* 3000 Prüfungen

* 10 Studienordnungen

Page 9: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

9

Hardware/BS-Charakteristika

Datenverarbeitungs-anforderungen

Informations-anforderungen

physische Datenbankstruktur

DBMS-Charakteristika

Physischer Entwurf

Implementations-entwurf

KonzeptuellerEnwurf

Anforderungs-analyse

logische Datenbankstruktur

Informations-struktur

Anforderungs-spezifikation

ER Schema

Phasen des Datenbankentwurfs

Page 10: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

10

Datenmodellierung mit UML Unified Modelling Language UML De-facto Standard für den objekt-orientierten Software-

Entwurf Zentrales Konstrukt ist die Klasse (class), mit der

gleichartige Objekte hinsichtlichStruktur (~Attribute)Verhalten (~Operationen/Methoden)

modelliert werden Assoziationen zwischen Klassen entsprechen

Beziehungstypen Generalisierungshierarchien Aggregation

Page 11: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Klassen/Objekttypen in Java

11

Page 12: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Werte versus Objekte

12

Page 13: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Java Klassendefinition: Syntax

13

Page 14: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Klassen/Objekttypen in UML

14

Page 15: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Klassen in Java

15

Page 16: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Instanziierung

16

Page 17: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Instanziierung eines Quaders

17

Page 18: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Resultierendes Objektnetz

18

Page 19: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Objekt besteht aus (OID, Typ, Rep)

Als OID dient in Java die (virtuelle) SpeicheradresseNennt man physische OID

In Datenbanken verwendet man auch logische OIDsDamit Objekte sich „bewegen“ können

19

Page 20: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Shared Subobjects/Gemeinsame Unterobjekte

20

Page 21: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Shared Subobjects/Gemeinsame Unterobjekte

21

„Kupfer“0.90

Page 22: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Wertvergleich versus Objektvergleich

Dasselbe ist nicht dasgleiche!

Im Restaurant sollte man nie „dasselbe“ sondern „dasgleiche“ wie ein anderer bestellen

22

Page 23: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Beziehungen/Assoziationen in UML

23

Page 24: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

24

Klassen und Assoziationen

+Notenschnitt() : float+SummeWochenstunden() : short

+MatrNr : int+Name : String+Semester : int

Studenten

+AnzHörer() : int+DurchfallQuote() : float

+VorlNr : int+Titel : String

+SWS : int

Vorlesungen

+Hörer

1..*

*

+Nachfolger *

*hören

voraussetzen

Page 25: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Referenzierung/Dereferenzierung

25

Page 26: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Kollektionen mit Arrays

26

Page 27: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Kollektion als shared subobject

27

Page 28: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Kollektionen sind „first class citizens“

28

Page 29: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Kollektion natürlich auch als Typ einer Instanzvariablen möglich …

29

Page 30: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

30

Page 31: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Objekt-Netz

31

Page 32: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Typisierung von (Pfad-)Ausdrücken

32

Page 33: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Typisierung … cont‘d

33

Page 34: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Speicherbereinigung / Garbage Collection Automatisch in Java Nur unerreichbare Objekte dürfen gelöscht werden Erst wenn die letzte Referenz auf ein Objekt entfernt

wurde, darf der garbage collector „zuschlagen“

34

Page 35: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Klassen-Attribute

35

Page 36: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Klassen-Attribute: Zugriff und Modifikation

36

Page 37: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Systematische Modellierung mit UML und Umsetzung in Java

37

Page 38: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Assoziationen

38

Page 39: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

39

Multiplizität

Jedes Element von KlasseA steht mit mindestens i Elementen der KlasseB in Beziehung

... und mit maximal j vielen KlasseB-Elementen

Analoges gilt für das Intervall k..l

Multiplizitätsangabe ist analog zur Funktionalitätsangabe im ER-ModellNicht zur (min,max)-Angabe: Vorsicht!

+op()

+Att1+Att2

KlasseA

1 1..*

Assoziation

i..jk..l+op()

+Att1+Att2

KlasseB

Page 40: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Multiplizität/Funktionalität einer Assoziation

40

Page 41: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Funktionalitäten

41

Page 42: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

42

Page 43: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Aggregation/Komposition

Komposition (ausgefüllter Diamant)Exklusive Zuordnung Existenzabhängig

Aggregation („leerer“ Diamant)Nicht-exklusiveNicht-existenzabhängige Teil/Ganzes-Beziehung

43

+Notenschnitt() : float+SummeWochenstunden() : short

+MatrNr : int+Name : String+Semester : int

Studenten

+verschieben()

+Note : Decimal+Datum : Date

Prüfungen+Prüfling

1 *

+Prüfungsstoff 1

*

*

+Prüfer

1... ...

absolviert

Page 44: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Aggregation/Komposition

44

Page 45: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

45

Begrenzungsflächenmodellierung von Polyedern in UML

+Gewicht() : float+Volumen() : float

+skalieren()+verschieben()

+rotieren()

+PolyID : int+...

Polyeder

+Umfang() : float+Volumen() : float

+FlächenID : int+...

Flächen

+Länge() : float

+KantenID : int+...

Kanten

+rotieren()+verschieben()

+skalieren()

+X : float+Y : float+Z : float

Punkte

1 1..* * * * *

Hülle Begrenzung StartEnde

4..* 2 3..* 3..* 21

Page 46: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

46

Begrenzungsflächendarstellung

Polyeder

Hülle

Flächen

Begrenzung

Kanten

StartEnde

Punkte

PolyID

FlächenID

KantenID

X

Y

Z

1

N

N

M

N

M

(4, )

(1,1)

(3, )

(2, 2)

(2, 2)

(3, )

Beispiel-Polyeder

Page 47: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Universitäts-Modell

47

Page 48: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

48

+Notenschnitt() : float+SummeWochenstunden() : short

+MatrNr : int+Name : String+Semester : int

Studenten

+AnzHörer() : int+DurchfallQuote() : float

+VorlNr : int+Titel : String

+SWS : int

Vorlesungen

+Hörer

1..*

*

+verschieben()

+Note : Decimal+Datum : Date

Prüfungen

+Prüfling1

*

+Prüfungsstoff1*

+Notenschnitt() : float+Gehalt() : short

+Lehrstundenzahl() : short

+Rang : String

Professoren

* +Prüfer1

*

+Dozent

1

+Gehalt() : short

+Fachgebiet : String

Assistenten

*

+Boss

1

+Gehalt() : short

+PersNr : int+Name : String

Angestellte

+Nachfolger *

*hören

voraussetzen

ge

lese

nV

on

arbeitenFür

Page 49: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Umsetzung in Java1:1-Assoziation

49

Page 50: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Umsetzung in Java1:N-Assoziation

50

Page 51: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Umsetzung einer Assoziation in Javaviele-viele (N:M)

51

Page 52: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

52

Begrenzungs-Flächen-Modell

Page 53: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

Polyeder in UML

53

Page 54: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

54

Anwendungsfälle (use cases)

Fakultäten

StudentIn

Vorlesungen anbieten

-Hörer

*

-Lehrveranstaltung

* ProfessorIn

*

-liest

1

Prüfungen durchführen

*

-prüft 1«verwendet»

AssistentIn

*-Beisitzer

1

-Prüfling1

*

Studienplanüberprüfen

«verwendet»

Page 55: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

55

Interaktions-Diagramm:Modellierung komplexer Anwendungen

ProfessorIn Bibliothek Terminkalender Raumvergabe Vorlesungsverz.

entleihe_Buch()

freierTermin()

reserviereTermin()

eintragenTermin()

ankündigenVorlesung()

Page 56: 1. 2 Datenbankentwurf Abstraktionsebenen des Datenbankentwurfs 1.Konzeptuelle Ebene 2.Implementationsebene 3.Physische Ebene.

56

Interaktions-Diagramm: Prüfungsdurchführung

StudentIn

Prüfung

Prüfungsamt Vorlesung ProfessorIn

anmelden()

berechtigt?()

gelesenVon()

freierTermin()

informieren()

create()

benachrichtigen()

bestätigen()

bewerten()

AssistentIn

Beisitz()

protokollieren()