1 datenbanksysteme oliver vornberger fachbereich mathematik/informatik universität osnabrück 49069...

49
1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück [email protected]

Upload: lothur-lazer

Post on 05-Apr-2015

135 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

1

Datenbanksysteme

Oliver Vornberger

Fachbereich Mathematik/Informatik

Universität Osnabrück

49069 Osnabrück

[email protected]

Page 2: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

2

Literatur

• Alfons Kemper, André Eickler:„Datenbanksysteme - Eine Einführung“Oldenbourg Verlag, München, 3. Auflage, 1999, 68 DM

• Oliver Vornberger:„Datenbanksysteme“Vorlesungsskript Heft 92, SS 1999, 7 DM

• Online-Material zur Vorlesung:http://www-lehre.inf.uos/~dbs

Page 3: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

3

...mehr Literatur• Date, C.J:

An Introduction to Database Systems, Addison-Wesley, 1995.

• Elmasri R. & S. Navathe: Fundamentals of Database Systems , Addison Wesley, 2000

• Hamilton G., R. Cattell, M. Fisher: JDBC Datenbankzugriff mit Java , Addison-Wesley, 1998

• Heuer, A. & G. Saake: Datenbanken - Konzepte und Sprachen , International Thompson Publishing, 2000.

• Schlageter, G. & W. Stucky: Datenbanksysteme: Konzepte und Modelle Teubner 1983

• Silberschatz, A. & H.F. Korth & S. Sudarshan: Database System Concepts, Mc Graw-Hill, 1991.

• Ullman, J. D.: Principles of Data and Knowledge-Base Systems, Computer Science Press, 1988.

• Riordan, R:SQL-Server 2000 Programmierung Schritt für Schritt, Microsoft Press, 2001

Page 4: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

4

Gliederung1. Einführung2. Konzeptuelle Modellierung3. Logische Datenmodelle4. Physikalische Datenorganisation5. Mehrdimensionale Suchstrukturen6. Das Relationale Modell7. Relationale Abfragesprachen8. Datenintegrität9. Datenbankapplikationen10. Relationale Entwurfstheorie11. Transaktionsverwaltung12. Mehrbenutzersynchronisation13. Recovery14. Sicherheit15. Objektorientierte Datenbanken16. Data Warehouse

Page 5: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

5

Definition

• Datenbasis zur Beschreibung eines Ausschnitts der Realwelt

• Programme zum geregelten Zugriff auf die Datenbasis.

Ein Datenbanksystem ist ein computergestütztes System, bestehend aus

( auch genannt: Datenbankverwaltungssystem, DBMS = data base management system)

Page 6: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

6

Motivation

• Redundanz• Inkonsistenz• Integritätsverletzung• Verknüpfungseinschränkung• Mehrbenutzerprobleme• Verlust von Daten• Sicherheitsprobleme• Hohe Entwicklungskosten

Separate Abspeicherung von miteinander in Beziehung stehenden Daten

Page 7: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

7

Isolierte Dateien versus zentrale Datenbasis

Programm 1

Physikalische Datei n

Physikalische Datei 1

Programm n

.

..

Logische Datei n

Logische Datei 1

Programm n

Programm 1

DBMSDatenbasis

.

..

Page 8: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

8

Datenabstraktion

Gesamtsichtkonzeptuelle Ebene

Sicht 1 Sicht 2 Sicht nexterne Ebene

physikalische Speicherunginterne Ebene

Page 9: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

9

Schema versus Ausprägung

Datenbankschema = Struktur der abspeicherbaren Daten

Datenbankausprägung = momentan gültiger Zustand der Datenbasis

Page 10: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

10

TransformationsregelnTransformationsregeln für Verbindungen zwischen den Ebenen

Bundesbahn:

konzeptuelles Schema = Kursbuch

externes Schema = Städteverbindungen Osnabrück

internes Schema = Abbildung auf Dateisystem

Personaldatei:

konzeptuelle Ebene = Angestellte mit ihren Namen, Wohnorten und Geburtsdaten

externes Schema = Geburtstagsliste mit Name, Datum, Alter

internes Schema = Abbildung auf Dateisystem

Page 11: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

11

Datenunabhängigkeit

• Physische Datenunabhängigkeit:

keine Änderung des externen Schemasbei Änderung des internen Schemas

• Logische Datenunabhängigkeit:

keine Änderung des externen Schemasbei Änderungen des konzeptuellen Schemas

Page 12: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

12

Modellierungskonzepte

konzeptuelles Schema

externes Schema

internes Schema

Datenbanksystem

reale WeltlogischesSchema

Page 13: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

13

Entity-Relationship-Modell

• entity:Gegenstand des Denkens und der Anschauung

• relationship:Beziehung zwischen den entities

Page 14: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

14

ER-Diagramm

Student

Vorname Nachname

PLZMat-Nr Studienfach Name

Ortwohnt in

Page 15: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

15

ER-Diagramm

Studenten

Vorname Nachname

PLZMat-Nr Studienfach Name

Ortewohnt in

Page 16: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

16

Logisches Schema

• Das hierarchische Modell (z. B. IMS von IBM)• Das Netzwerkmodell (z. B. UDS von Siemens)• Das relationale Modell (z. B. Access von Microsoft)

• Das objektorientierte Modell (z. B. O2 von O2 Technology)

Page 17: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

17

Architektur eines DBMS

"Naive"Benutzer

Fortgeschrittene Benutzer

Anwendungs-programmierer

Datenbank-administratoren

Anwendunginteraktive

AnfragePräcompiler

Verwaltungs-werkzeug

DML- Compiler DDL-Compiler

Anfragebearbeitung

Datenbankmanager Schemaverwaltung

Mehrbenutzersynchr.Fehlerbehandlung

DBMS

Logdateien Indexe DatenwörterbuchDatenbasis

Filemanager

Hintergrundspeicher

Page 18: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

18

Das Entity-Relationship-Modell

VorlNr

SWS

Titel

voraussetzen

NachfolgerVorgänger

MatrNr

Name

Sem

hören

Note

Studenten Vorlesungen

lesen

Assistenten

Fachgebiet

Name

PersNrRang

Raum

NamePersNr

prüfen

ProfessorenarbeitenFür

Page 19: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

19

Schlüssel

Schlüsselkandidat = minimale identifizierende Menge von Attributen

Primärschlüssel = ein ausgezeichneter (oft künstlicher) Schlüssel

Page 20: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

20

Das Entity-Relationship-Modell(Schlüssel unterstrichen)

VorlNr

SWS

Titel

voraussetzen

NachfolgerVorgänger

MatrNr

Name

Sem

hören

Note

Studenten Vorlesungen

lesen

Assistenten

Fachgebiet

Name

PersNrRang

Raum

NamePersNr

prüfen

ProfessorenarbeitenFür

Page 21: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

21

Beispiel für Schlüsselkandidaten

49080 Osnabrück Altenburger Str. 1449080 Osnabrück Altenburger Str. 1649080 Osnabrück Blumenhaller Weg 5249082 Osnabrück Hochstr. 1033699 Bielefeld Altenburger Str. 14

Adresse

PLZ Ort HausnrStraße

Schlüsselkandidat: PLZ + Straße + Hausnummer

Page 22: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

22

Beispiel für Schlüsselkandidaten

XML Schreiner MO, 12:00 31/322XML Schreiner DO, 16:15 31/449aDBS Vornberger MO, 14:15 31/449a

Vorlesungsverzeichnis

Titel Dozent RaumTermin

Schlüsselkandidaten:

Titel + Termin

Dozent + Termin

Raum + Termin

Page 23: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

23

Charakterisierung von Beziehungstypen

• 1:1-Beziehung (one-one)• 1:N-Beziehung (one-many)• N:1-Beziehung (many-one)• N:M-Beziehung (many-many)

Page 24: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

24

1:1

E1 E2 E E

1:N

1 2

N:1

E1 E2

N:M

E1 E2

Binäre Beziehungen

Page 25: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

25

Modellierung einer Literaturliste

Buch

AuflageTitelISBN Jahr

M

N

N

1

Autor Verlag

verfaßt_von erscheint_bei

ID Vorname Nachname ID Name Ort

Autor Verlag

Page 26: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

26

Modellierung einer Fluggesellschaft

Instanz_von

gebucht_auf

Passagier

NachnameVornameKdn-Nr Adresse

AbflugDatum

Flug

Nr Start Ziel Abflugzeit Ankunftszeit

N

M

N

1

Page 27: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

27

Die (min, max)-Notation

Für jeden an einem Beziehungstyp beteiligten Entitytyp wird ein (min,max)-Wert festgelegt.

Der (min, max)-Wert gibt an, wie oft ein Entity mindestens und wie oft es höchstens an einer Beziehung beteiligt ist.

Page 28: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

28

ER-Diagramm für Begrenzungsflächen-

darstellung von Polyedern

Polyeder

Flächen

Kanten

Punkte

PolyID

FlächenID

KantenID

Begrenzung

StartEnde

1

N

(4,*)

(1,1)

N

M

(3,*)

(2,2)

N

M

(2,2)

(3,*)

Hülle

Y

Z

X

Page 29: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

29

Existenzabhängige Entity-Typen

GebNrHöhe

Gebäudeliegt_inN 1

GrößeRaumNr

Räume

Page 30: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

30

Generalisierung

Name Uni-Mitglieder

is-a

MatrNr Studenten PersNrAngestellte

is-a

Fachgebiet Assistenten ProfessorenRaum

Rang

Page 31: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

31

Modellierung einer Fluggesellschaft

bedient_von

Instanz_von

gebucht_auf

Passagier

NachnameVornameKdn-Nr Adresse

N

AbflugDatumM

M

N

Flug

Nr Start Ziel Abflugzeit Ankunftszeit

1

Angestellter

VornamePersNr Nachname

Pilot

Lizenz

Flugzeug

1

1

M

N

1

Typ

N

Maschine

isa

P_Info

Modell

SerienNr

Hersteller

N

Page 32: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

32

Aggregation

Fahrräder

part-of part-of

RäderRahmen

part-ofpart-of part-of part-of

Rohre Lenker Felgen Speichen

Page 33: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

33

Konsolidierung

Konsolidierung

globales Schema

redundanzfrei widerspruchsfrei Synonyme bereinigt Homonyme bereinigt

Sicht 1

Sicht 2

Sicht 3

Page 34: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

34

Drei Sichten einer Universitätsdatenbank

Studenten

Assistenten

Professoren

erstellen Diplomarbeiten

Titel

Dissertationenverfassen

betreuen

bewerten TitelSicht 1: Erstellung von Dokumenten als Prüfungsleistung

Bibliotheken

leiten

UniMitglieder

Fakultät

besitzen Dokumente

entleihen

Datum

Signatur

Autoren

Titel

Jahr

Sicht 2: Bibliotheksverwaltung

Vorlesungen

Dozenten

empfehlen

Bücher Autoren

Titel

Jahr

Verlag

Sicht 3: Buchempfehlungen für Vorlesungen

Page 35: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

35

Konsolidiertes Schema der

Universitätsdatenbank

Bibliotheken besitzen

Fakultät

Vorlesungen

BücherDissertationen

Dokumente

Studenten

Diplomarbeiten

Personen

ProfessorenAssistenten

UniMitglieder

Angestellte

empfehlen

leiten

Autoren

entleihen betreuen bewerten

Datum

Signatur

Verlag

Jahr

Titel

Page 36: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

36

Logische Datenmodelle

• Hierarchisches Modell• Netzwerkmodell• Relationales Modell• Objektorientiertes Modell

Page 37: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

37

Hierarchisches Modell

Vorlesung

VorlNr Titel SWS

Student

MatrNr Name Semester

Dozent

PersNr Name Rang Raum

Mustermann StochastikV JavaV StadjeD VogtD

SchreinerD WackerS ZahlentheorieV VogtD

S

Ausprägung (S = Student, V = Vorlesung, D = Dozent):

Schema:

Page 38: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

38

COURSE# TITLE DESCRIPN

COURSE

COURSE# TITLE

PREREQ OFFERING

LOCATIONDATE FORMAT

EMP# NAME EMP# NAME GRADE

STUDENTTEACHER

Schema im Hierarchischen Modell

Page 39: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

39

M 23

COURSE

Dynamics

CalculusM 19

TrigonometryM 16PREREQ

PREREQOslo750106 F 2

OFFERING

Dublin741104 F 3OFFERING

Madrid730813 F 3OFFERING

Sharp, R.421633 Tallis, T.761620 BSTUDENT

Gibbons, O.183009 ASTUDENT

Byrd, W.102141 BSTUDENT

TEACHER

Ausprägung im Hierarchischen Modell

Page 40: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

40

COURSE# TITLE DESCRIPN

COURSE

COURSE# TITLE

PREREQ OFFERING

LOCATIONDATE FORMAT

EMP# NAME EMP# NAME GRADE

STUDENTTEACHER

Operationen im Hierarchischen Modell

GU COURSE(COURSE#='M23')

OFFERING (DATE='730813')

if gefunden then

begin

GNP STUDENT

if gefunden then

begin

write(STUDENT.NAME)

GNP STUDENT

end

end;

Welche Studenten sind im Kurs M23 am 13.08.1973 ?

Page 41: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

41

Netzwerkmodell

Autor

Buch

Simmel

Der Henker Selber atmen

Richtig streiken

owner - Typ

set - Typ

member - Typ

schreibt

Page 42: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

42

Netzwerk mit M:N-Beziehung

Student

SV

Vorlesung

ss

vs

Mustermann Wacker

Java Stochastik Zahlentheorie

Page 43: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

43

Ware

Nr Bezeichnung

Bestellung

Anz

Nr

Person

Name

Wb

Pb

Apfel Birne Tomate

Lehmann Schulz Meier

30 12 18 24 22 18

Kettrecords mit Attribut im Netzwerkmodell

Page 44: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

44

Operationen im Netzwerk-Modell

FIND ANY Person

FIND NEXT Bestellung WITHIN PB

FIND OWNER WITHIN WB

Typische Operation : Navigation durch die verzeigerten Entities

Page 45: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

45

Operationen im Netzwerkmodell

PERSON.NAME := ’SCHULZ’;

FIND ANY PERSON USING NAME;

IF GEFUNDEN THEN

BEGIN

FIND FIRST BESTELLUNG WITHIN PB;

WHILE GEFUNDEN DO

BEGIN

FIND OWNER WITHIN WB;

GET WARE;

WRITE(WARE.BEZEICHNUNG);

FIND NEXT BESTELLUNG WITHIN PB;

END

END;

Apfel Birne Tomate

Lehmann Schulz Meier

30 12 18 24 22 18

Wb

Pb

Page 46: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

46

Relationales Datenmodell

• pro Relationshiptyp gibt es eine Tabelle mit Spalten für die Schlüssel der beteiligten Entity-Typen und ggf. weitere Spalten.

MatNr Vorname Nachname 653467 Erika Mustermann 875462 Willi Wacker 432788 Peter Pan

Student

MatNr VorNr

875462 6.712 432788 6.712 875462 6.102

Hoert

VorNr Titel Umfang 6.718 Java 4 6.174 Stochastik 2 6.108 Zahlentheorie 4

Vorlesung

• pro Entity-Typ gibt es eine Tabelle mit Spalten benannt nach den Attributen.

Page 47: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

47

Operationen im Relationalen Modell

• Selektion:Suche alle Tupel einer Relation mit gewissen Attributeigenschaften

• Projektion:filtere gewisse Spalten heraus

• Verbund:Finde Tupel in mehreren Relationen, die bzgl. gewisser Spalten übereinstimmen.

Query: Welche Studenten hören die Vorlesung Zahlentheorie?

SELECT Student.Nachname from Student, Hoert, VorlesungWHERE Student.MatNr = Hoert.MatNrAND Hoert.VorNr = Vorlesung.VorNrAND Vorlesung.Titel = 'Zahlentheorie'

Page 48: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

48

Das Objektorientierte Datenmodell

• Eine Klasse repräsentiert einen Entity-Typ zusammen mit seinen Beziehungen und mit darauf erlaubten Operationen.

• Attribute müssen nicht atomar sein, sondern bestehen ggf. aus Tupeln, Listen und Mengen.

• Die Struktur einer Klasse kann an eine Unterklasse vererbt werden.

• Binäre Beziehungen können durch mengenwertige Attribute modelliert werden.

Page 49: 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069 Osnabrück oliver@uos.de

49

class Person

type tuple (name : String,

geb_datum : Date,

kinder : list(Person))

end;

class Student inherit Person

type tuple (mat_nr : Integer,

hoert : set (Vorlesung))

end;

class Vorlesung

type tuple (titel : String,

gehoert_von : set (Student))

end;

Beispiel für objektorientierte Modellierung