1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069...

Post on 05-Apr-2015

134 views 2 download

Transcript of 1 Datenbanksysteme Oliver Vornberger Fachbereich Mathematik/Informatik Universität Osnabrück 49069...

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

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

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

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)

6

Motivation

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

Separate Abspeicherung von miteinander in Beziehung stehenden Daten

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

.

..

8

Datenabstraktion

Gesamtsichtkonzeptuelle Ebene

Sicht 1 Sicht 2 Sicht nexterne Ebene

physikalische Speicherunginterne Ebene

9

Schema versus Ausprägung

Datenbankschema = Struktur der abspeicherbaren Daten

Datenbankausprägung = momentan gültiger Zustand der Datenbasis

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

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

12

Modellierungskonzepte

konzeptuelles Schema

externes Schema

internes Schema

Datenbanksystem

reale WeltlogischesSchema

13

Entity-Relationship-Modell

• entity:Gegenstand des Denkens und der Anschauung

• relationship:Beziehung zwischen den entities

14

ER-Diagramm

Student

Vorname Nachname

PLZMat-Nr Studienfach Name

Ortwohnt in

15

ER-Diagramm

Studenten

Vorname Nachname

PLZMat-Nr Studienfach Name

Ortewohnt in

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)

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

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

19

Schlüssel

Schlüsselkandidat = minimale identifizierende Menge von Attributen

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

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

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

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

23

Charakterisierung von Beziehungstypen

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

24

1:1

E1 E2 E E

1:N

1 2

N:1

E1 E2

N:M

E1 E2

Binäre Beziehungen

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

26

Modellierung einer Fluggesellschaft

Instanz_von

gebucht_auf

Passagier

NachnameVornameKdn-Nr Adresse

AbflugDatum

Flug

Nr Start Ziel Abflugzeit Ankunftszeit

N

M

N

1

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.

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

29

Existenzabhängige Entity-Typen

GebNrHöhe

Gebäudeliegt_inN 1

GrößeRaumNr

Räume

30

Generalisierung

Name Uni-Mitglieder

is-a

MatrNr Studenten PersNrAngestellte

is-a

Fachgebiet Assistenten ProfessorenRaum

Rang

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

32

Aggregation

Fahrräder

part-of part-of

RäderRahmen

part-ofpart-of part-of part-of

Rohre Lenker Felgen Speichen

33

Konsolidierung

Konsolidierung

globales Schema

redundanzfrei widerspruchsfrei Synonyme bereinigt Homonyme bereinigt

Sicht 1

Sicht 2

Sicht 3

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

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

36

Logische Datenmodelle

• Hierarchisches Modell• Netzwerkmodell• Relationales Modell• Objektorientiertes Modell

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:

38

COURSE# TITLE DESCRIPN

COURSE

COURSE# TITLE

PREREQ OFFERING

LOCATIONDATE FORMAT

EMP# NAME EMP# NAME GRADE

STUDENTTEACHER

Schema im Hierarchischen Modell

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

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 ?

41

Netzwerkmodell

Autor

Buch

Simmel

Der Henker Selber atmen

Richtig streiken

owner - Typ

set - Typ

member - Typ

schreibt

42

Netzwerk mit M:N-Beziehung

Student

SV

Vorlesung

ss

vs

Mustermann Wacker

Java Stochastik Zahlentheorie

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

44

Operationen im Netzwerk-Modell

FIND ANY Person

FIND NEXT Bestellung WITHIN PB

FIND OWNER WITHIN WB

Typische Operation : Navigation durch die verzeigerten Entities

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

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.

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'

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.

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