Vorlesung Datenbanken - Universität Würzburg

Werbung
Vorlesung Datenbanken
Wintersemester 2012/13
Vorlesung Datenbanken
im Wintersemester 2012/13
Prof. Dr. Dietmar Seipel
Universität Würzburg
Prof. Dr. Dietmar Seipel
Vorlesung Datenbanken
Wintersemester 2012/13
Minit
LName
FName
Number
WORKS_FOR
Adress
1
N
Name
Salary
Locations
Sex
Name
Startdate
SSN
NumberOfEmployees
DEPARTMENT
EMPLOYEE
1
1
MANAGES
BDate
1
CONTROLS
Hours
supervisor
M
supervisee
1
1
SUPERVISION
N
N
RROJECT
WORKS_ON
N
DEPENDENTS_OF
Location
Name
Number
N
DEPENDENT
Relationship
Name
Sex
Prof. Dr. Dietmar Seipel
BirthDate
Vorlesung Datenbanken
Wintersemester 2012/13
Inhaltsverzeichnis
1 Grundkonzepte von Datenbanken
1.1
1.2
Prof. Dr. Dietmar Seipel
1
Datenbanken und ihre Benutzer . . . . . . . . . . . . . . . . .
1
1.1.1
Beispiel: die U NIVERSITY–Datenbank . . . . . . . .
4
1.1.2
Charakteristika des Datenbankansatzes . . . . . . . .
12
1.1.3
Datenbank–Benutzer . . . . . . . . . . . . . . . . . .
16
1.1.4
Vorteile und Nachteile des Datenbankansatzes . . . . .
19
Das Entity–Relationship–Modell . . . . . . . . . . . . . . . .
21
1.2.1
Grundbegriffe . . . . . . . . . . . . . . . . . . . . . .
21
1.2.2
Erweiterungen des ER–Modells . . . . . . . . . . . .
41
1.2.3
Beispiel: die C OMPANY–Datenbank . . . . . . . . . .
54
iii
Vorlesung Datenbanken
Wintersemester 2012/13
2 Das Relationenmodell: Sprachen und Systeme
64
2.1
Grundlegende Definitionen . . . . . . . . . . . . . . . . . . .
64
2.2
Relationale Algebra . . . . . . . . . . . . . . . . . . . . . . .
81
2.3
Die relationale Datenbanksprache SQL . . . . . . . . . . . . .
95
2.3.1
Datendefinition in SQL . . . . . . . . . . . . . . . . .
95
2.3.2
Anfragen in SQL . . . . . . . . . . . . . . . . . . . . 114
2.3.3
Update–Statements in SQL . . . . . . . . . . . . . . . 166
2.3.4
Views (Sichten) in SQL . . . . . . . . . . . . . . . . 172
2.3.5
Zusätzliche Bedingungen . . . . . . . . . . . . . . . . 181
2.3.6
Indexe in SQL . . . . . . . . . . . . . . . . . . . . . 182
2.3.7
Java Database Connectivity (JDBC) . . . . . . . . . . 184
Prof. Dr. Dietmar Seipel
iv
Vorlesung Datenbanken
Wintersemester 2012/13
3 Datenbankentwurf im Relationenmodell
188
3.1
Informelle Design–Richtlinien und Update–Anomalien . . . . 189
3.2
Funktionale Abhängigkeiten . . . . . . . . . . . . . . . . . . 198
3.3
Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . 243
3.4
Mehrwertige und Verbund–Abhängigkeiten . . . . . . . . . . 259
3.5
Verlustfreie Zerlegungen . . . . . . . . . . . . . . . . . . . . 288
3.6
Prof. Dr. Dietmar Seipel
3.5.1
BCNF–Dekomposition . . . . . . . . . . . . . . . . . 296
3.5.2
3NF–Synthese . . . . . . . . . . . . . . . . . . . . . 309
Azyklische Datenbankschemata . . . . . . . . . . . . . . . . 340
v
Vorlesung Datenbanken
Wintersemester 2012/13
4 Transaktionen und Recovery
4.1
4.2
4.3
Prof. Dr. Dietmar Seipel
426
Transaktionsverwaltung . . . . . . . . . . . . . . . . . . . . . 427
4.1.1
Das Synchronisationsproblem . . . . . . . . . . . . . 428
4.1.2
Operationen, Log–Buch . . . . . . . . . . . . . . . . 436
4.1.3
Das ACID–Prinzip . . . . . . . . . . . . . . . . . . . 444
4.1.4
Transaktionen, Schedules und Serialisierbarkeit . . . . 453
Concurrency Control . . . . . . . . . . . . . . . . . . . . . . 499
4.2.1
Das Zwei–Phasen–Sperrprotokoll . . . . . . . . . . . 504
4.2.2
Deadlocks . . . . . . . . . . . . . . . . . . . . . . . . 516
4.2.3
Zeitstempelverfahren . . . . . . . . . . . . . . . . . . 524
4.2.4
Mehrversionen–Scheduling–Verfahren . . . . . . . . . 532
Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
vi
Vorlesung Datenbanken
Wintersemester 2012/13
5 Data Warehouses and Data Mining
5.1
5.2
Prof. Dr. Dietmar Seipel
540
Data Warehouses, Decision Support and OLAP . . . . . . . . 540
5.1.1
Online Analytical Processing (OLAP) . . . . . . . . . 542
5.1.2
Queries in a Star Schema: Star Joins . . . . . . . . . . 551
Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
5.2.1
Classification . . . . . . . . . . . . . . . . . . . . . . 579
5.2.2
Association Rules . . . . . . . . . . . . . . . . . . . 642
5.2.3
Clustering . . . . . . . . . . . . . . . . . . . . . . . . 703
vii
Vorlesung Datenbanken
6
Wintersemester 2012/13
X ML Data Modelling
733
6.1
X ML Data and Schema Description . . . . . . . . . . . . . . 736
6.2
Relational Databases and X ML . . . . . . . . . . . . . . . . . 760
6.3
The X ML Query Language XQuery . . . . . . . . . . . . . . 777
7 Web Databases
822
7.1
Access to Web Databases by Servlets . . . . . . . . . . . . . . 823
7.2
Java Server Pages . . . . . . . . . . . . . . . . . . . . . . . 835
7.3
Web Database Connections in P HP . . . . . . . . . . . . . . . 844
Prof. Dr. Dietmar Seipel
viii
Vorlesung Datenbanken
Wintersemester 2012/13
8 Extended Database Concepts
8.1
854
Deductive Databases and Logic Programming . . . . . . . . . 855
8.1.1
P ROLOG as a Database Language . . . . . . . . . . . 856
8.1.2
The Deductive Database System DDBASE . . . . . . 895
8.1.3
P ROLOG as a Programming Language . . . . . . . . . 913
8.2
Semantic Web Databases . . . . . . . . . . . . . . . . . . . . 939
8.3
Object–Oriented Databases . . . . . . . . . . . . . . . . . . . 958
Anhang
Prof. Dr. Dietmar Seipel
8.3.1
Complex Objects . . . . . . . . . . . . . . . . . . . . 960
8.3.2
Features of Object–Orientation . . . . . . . . . . . . . 967
8.3.3
Examples: C OMPANY and U NIVERSITY Database . . 975
995
ix
Vorlesung Datenbanken
Wintersemester 2012/13
Überblick
• Gegenwärtig werden die Datenbestände in größeren
Informationssystemen meist in relationalen Datenbanken verwaltet.
Verbreitete Systeme sind z.B. DB2 (von IBM), Oracle und die freien
Systeme MyS QL und P OSTGRESQL.
• Die strukturelle Modellierung der Anwendungsdaten erfolgt meist im
Entity–Relationship–Modell (ER–Modell), welches sodann ins
relationale Modell abgebildet wird. Mit Hilfe von Normalformen wird
die Struktur der Relationen bewertet und weiter verbessert.
• Der Datenzugriff im relationalen Modell erfolgt mittels der Structured
Query Language (S QL).
• Neben dem relationalen Datenmodell gewinnt zur Zeit das aus dem
WWW bekannte X ML–Datenmodell stark an Bedeutung.
Prof. Dr. Dietmar Seipel
x
Vorlesung Datenbanken
Wintersemester 2012/13
Grundlagen
• Eine Datenbank integriert die Daten verschiedener Benutzer
(Datenintegration). Das Datenbankmanagementsystem (DBMS) stellt
Mechanismen zur Verfügung, die die Eingabe inkorrekter Daten
verhindern (Datenkonsistenz).
• Jeder Benutzer kann sich mittels des Systemkatalogs über die Struktur
der Datenbank informieren. Der Zugriff auf den Systemkatalog erfolgt
genau wie der eigentliche Datenzugriff auf der sehr abstrakten Ebene
von Relationen. Die tatsächliche, interne Repräsentation der Daten im
DBMS wird verborgen (Datenabstraktion und Datenunabhängigkeit).
Prof. Dr. Dietmar Seipel
xi
Vorlesung Datenbanken
Wintersemester 2012/13
• Das DBMS stellt sicher, daß die Konsistenz der Daten beim parallelen
Zugriff verschiedener Benutzer erhalten bleibt
(Transaktionsverwaltung), und daß bei Systemabstürzen keine Daten
verloren gehen (Recovery, Datensicherheit). Außerdem wird über
Zugriffsrechte der Datenschutz gewährleistet.
• Die Verwendung von Datenbanken ermöglicht also die Datenintegration,
und sie verkürzt die Entwicklungszeiten für größere Informationssyteme
deutlich.
Prof. Dr. Dietmar Seipel
xii
Vorlesung Datenbanken
Wintersemester 2012/13
Datenmodellierung im ER–Modell
• Die erste Modellierung erfolgt im Entity–Relationship–Modell
(ER–Modell), welches gleichartige Objekte der realen Welt als
Entity–Typen modelliert und die Beziehungen dazwischen als
Relationship–Typen. Die Entities und Relationships werden durch
Attribute beschrieben.
• Man verwendet hauptsächlich die graphische Veranschaulichung in
Form von ER–Diagrammen. Ähnliche Konzepte werden mittlerweile
auch bei der objektorientierten Modellierung auf der Basis der Unified
Modelling Language (UML) verwendet.
• Es gibt eine generische Abbildung vom ER–Modell ins
Relationenmodell, bei der sowohl die Entity–Typen als auch die
Relationship–Typen als Relationenschemata zusammen mit Schlüssel–
bzw. Fremdschlüsselbedingungen repräsentiert werden.
Prof. Dr. Dietmar Seipel
xiii
Vorlesung Datenbanken
Wintersemester 2012/13
Datenbankzugriff im Relationenmodell
• Der Zugriff auf die Daten erfolgt über die Structured Query Language
(S QL). Die Abarbeitung der S QL–Anfragen erfolgt intern über
Operationen auf den Relationen (relationale Algebra).
• Es gibt S QL–Befehle für das Erzeugen und Löschen (C REATE, D ROP)
von Datenbanken bzw. Tabellen (Relationen), für das Einfügen und
Verändern der Tabellen (I NSERT, D ELETE, U PDATE) und für den
eigentlichen Datenzugriff (S ELECT). Beim S ELECT–Statement kann
man verschiedene Tabellen verknüpfen (Join), und man kann Gruppen
bilden und über diese aggregieren.
• S QL kann aus Programmiersprachen wie Java heraus aufgerufen werden
(Java Database Connectivity, J DBC).
Prof. Dr. Dietmar Seipel
xiv
Vorlesung Datenbanken
Wintersemester 2012/13
Datenmodellierung im Relationenmodell
• Ein Relationenschema besteht aus einer Menge von Attributen und einer
Menge von strukturellen Bedigungen (Datenabhängigkeiten). Eine
Relation (Tabelle) ist eine Menge von Tupeln (Zeilen). Jede Zeile besitzt
einen Eintrag pro Attribut (Spalte).
• Bei der Datenmodellierung gibt es informelle Design–Richtlinien,
welche die Übersichtlichkeit des Entwurfs, die Vermeidung von
Redundanz, Update–Anomalien und Nullwerten, sowie die korrekte
Verknüpfung von zerlegten Tabellen betreffen.
• Als formales Konzept werden Normalformen verwendet. Der Entwurf
soll möglichst ein Datenbankschema in dritter Normalform (3NF)
liefern, eventuell sogar in Boyce–Codd–Normalform (BCNF), da diese
Normalformen die informellen Design–Richtlinien sehr gut umsetzen.
Prof. Dr. Dietmar Seipel
xv
Vorlesung Datenbanken
Wintersemester 2012/13
• Die Normalformen basieren auf dem Konzept der funktionalen
Abhängigkeiten; die einfachste funktionale Abhängigkeit ist die
Schlüsselabhängigkeit, welche darin besteht, daß ein Teil der Attribute,
der dann Schlüssel genannt wird, bereits ausreicht um ein Tupel
eindeutig zu identifizieren.
• Auf der Basis der bekannten funktionalen Abhängigkeiten kann eine
Relation in mehrere Relationen in 3NF bzw. BCNF zerlegt werden, so
daß sie aus diesen verlustfrei mit Hilfe von Joins (meist über
Fremdschlüssel) rekonstruiert werden kann.
• Zur Zelegung in 3NF bzw. BCNF verwendet man den Synthese– bzw.
den Dekompositions–Algorithmus.
Prof. Dr. Dietmar Seipel
xvi
Vorlesung Datenbanken
Wintersemester 2012/13
Transaktionen und Recovery
• Für den Mehrbenutzerbetrieb ist es erforderlich, daß die Transaktionen
nach einem genau definierten Protokoll auf die Datenbank zugreifen.
• Durch das ACID–Prinzip wird garantiert, daß Transaktionen selbst beim
parallelen Datenbankzugriff einen konsistenten Datenbankzustand
hinterlassen.
• Das Zwei–Phasen–Sperrprotokoll sperrt die von einer Transaktion
benötigten Datenbankobjekte geeignet für andere Transaktionen.
• Die Zeitstempelverfahren markieren die Datenbankobjekte mit
Zeitstempeln, so daß eine Transaktion – im wesentlichen – nur
Datenbankobjekte bearbeiten darf, die von älteren Transaktionen
markiert wurden.
Prof. Dr. Dietmar Seipel
xvii
Vorlesung Datenbanken
Wintersemester 2012/13
Data Warehouses and Data Mining
• The data of transactional databases are collected in a data warehouse for
further analysis.
• The data are frequently organized in a star schema with a huge fact table
in the center.
• In Online Analytical Processing (OLAP), aggregation queries are posed
to the data warehouse.
• Data Mining tries to discover certain patterns in the data to support
decision making.
• There are three major methods for data mining: classification,
association rules, and clustering.
Prof. Dr. Dietmar Seipel
xviii
Vorlesung Datenbanken
Wintersemester 2012/13
X ML Data Modelling
• Nowadays, complex data are frequently stored in X ML documents, and
in this form, they can be exchanged between different applications or
users. Thus, also many relational database managements systems offer
X ML extensions.
• Certain simple, flat X ML schemas exactly correspond to relational data
modelling. But the representation of complex, nested data structures is
supported much better and more natural by X ML.
• There are suitable query and modification languages for X ML
dcouments/databases (XQ UERY, XU PDATE), which are all based on the
path allocation language XPATH.
Prof. Dr. Dietmar Seipel
xix
Vorlesung Datenbanken
Wintersemester 2012/13
Web Databases
• Dynamic web pages are frequently generated from relational databases.
• S QL code can be embedded in almost all standard host programming
languages.
• Database applications on the web are frequently implemented based on
Java, Javascript, or P HP.
• Java Server Pages and Java Server Faces embedd Java code in
H TML–based web pages.
Prof. Dr. Dietmar Seipel
xx
Vorlesung Datenbanken
Wintersemester 2012/13
Weiterführende Themengebiete
• optimierte Auswertung von Datenbankanfragen:
Indexstrukturen, Join–Optimierung
• weitere Datenbankanfragesprachen: QBE, DATALOG
• Nicht–Standard–Datenbanksysteme:
objektorientierte, deduktive und aktive Datenbanken
• frühere Datenbankstrukturen:
hierarchische Datenbanken und Netzwerk–Datenbanken
• NoS QL–Datenbanken (not only S QL)
Prof. Dr. Dietmar Seipel
xxi
Herunterladen