1
Datenbanksysteme
Oliver Vornberger
Fachbereich Mathematik/Informatik
Universität Osnabrück
49069 Osnabrück
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
Top Related