Vorlesung Datenbanken Wintersemester 2013/14
Vorlesung Datenbanken
im Wintersemester 2013/14
Prof. Dr. Dietmar Seipel
Universität Würzburg
Prof. Dr. Dietmar Seipel
Vorlesung Datenbanken Wintersemester 2013/14
Adress
BirthDate
Relationship
SexName
DEPENDENT
DEPENDENTS_OFNumber
Name
RROJECT
CONTROLS
DEPARTMENTStartdate NumberOfEmployees
WORKS_FOR
EMPLOYEE
SUPERVISION
BDate
SSN
Name
SalarySex
MANAGES
WORKS_ON
Hours
superviseesupervisor
1
1
1
1
1
N
N
N
N
1
NM
LName
Minit
FName
Location
Name
Number
Locations
Prof. Dr. Dietmar Seipel
Vorlesung Datenbanken Wintersemester 2013/14
Inhaltsverzeichnis
1 Grundkonzepte von Datenbanken 1
1.1 Datenbanken und ihre Benutzer. . . . . . . . . . . . . . . . . 1
1.1.1 Beispiel: die UNIVERSITY–Datenbank . . . . . . . . 4
1.1.2 Charakteristika des Datenbankansatzes. . . . . . . . 12
1.1.3 Datenbank–Benutzer. . . . . . . . . . . . . . . . . . 16
1.1.4 Vorteile und Nachteile des Datenbankansatzes. . . . . 19
1.2 Das Entity–Relationship–Modell. . . . . . . . . . . . . . . . 21
1.2.1 Grundbegriffe. . . . . . . . . . . . . . . . . . . . . . 21
1.2.2 Erweiterungen des ER–Modells. . . . . . . . . . . . 42
1.2.3 Beispiel: die COMPANY–Datenbank. . . . . . . . . . 55
Prof. Dr. Dietmar Seipel iii
Vorlesung Datenbanken Wintersemester 2013/14
2 Das Relationenmodell: Sprachen und Systeme 65
2.1 Grundlegende Definitionen. . . . . . . . . . . . . . . . . . . 65
2.2 Relationale Algebra. . . . . . . . . . . . . . . . . . . . . . . 82
2.3 Die relationale Datenbanksprache SQL. . . . . . . . . . . . . 97
2.3.1 Datendefinition in SQL. . . . . . . . . . . . . . . . . 97
2.3.2 Anfragen in SQL. . . . . . . . . . . . . . . . . . . . 116
2.3.3 Update–Statements in SQL. . . . . . . . . . . . . . . 172
2.3.4 Views (Sichten) in SQL . . . . . . . . . . . . . . . . 178
2.3.5 Zusätzliche Bedingungen. . . . . . . . . . . . . . . . 187
2.3.6 Indexe in SQL . . . . . . . . . . . . . . . . . . . . . 188
2.3.7 Java Database Connectivity (JDBC). . . . . . . . . . 190
Prof. Dr. Dietmar Seipel iv
Vorlesung Datenbanken Wintersemester 2013/14
3 Datenbankentwurf im Relationenmodell 194
3.1 Informelle Design–Richtlinien und Update–Anomalien. . . . 195
3.2 Funktionale Abhängigkeiten. . . . . . . . . . . . . . . . . . 204
3.3 Normalformen. . . . . . . . . . . . . . . . . . . . . . . . . . 252
3.4 Mehrwertige und Verbund–Abhängigkeiten. . . . . . . . . . 268
3.5 Verlustfreie Zerlegungen. . . . . . . . . . . . . . . . . . . . 297
3.5.1 BCNF–Dekomposition. . . . . . . . . . . . . . . . . 305
3.5.2 3NF–Synthese. . . . . . . . . . . . . . . . . . . . . 318
3.6 Azyklische Datenbankschemata. . . . . . . . . . . . . . . . 354
Prof. Dr. Dietmar Seipel v
Vorlesung Datenbanken Wintersemester 2013/14
4 Transaktionen und Recovery 440
4.1 Transaktionsverwaltung. . . . . . . . . . . . . . . . . . . . . 441
4.1.1 Das Synchronisationsproblem. . . . . . . . . . . . . 442
4.1.2 Operationen, Log–Buch. . . . . . . . . . . . . . . . 450
4.1.3 Das ACID–Prinzip. . . . . . . . . . . . . . . . . . . 458
4.1.4 Transaktionen, Schedules und Serialisierbarkeit. . . . 467
4.2 Concurrency Control. . . . . . . . . . . . . . . . . . . . . . 513
4.2.1 Das Zwei–Phasen–Sperrprotokoll. . . . . . . . . . . 518
4.2.2 Deadlocks. . . . . . . . . . . . . . . . . . . . . . . . 530
4.2.3 Zeitstempelverfahren. . . . . . . . . . . . . . . . . . 538
4.2.4 Mehrversionen–Scheduling–Verfahren. . . . . . . . . 546
4.3 Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Prof. Dr. Dietmar Seipel vi
Vorlesung Datenbanken Wintersemester 2013/14
5 Data Warehouses and Data Mining 554
5.1 Data Warehouses, Decision Support, and OLAP. . . . . . . . 554
5.1.1 Online Analytical Processing (OLAP). . . . . . . . . 556
5.1.2 Queries in a Star Schema: Star Joins. . . . . . . . . . 565
5.2 Data Mining. . . . . . . . . . . . . . . . . . . . . . . . . . . 591
5.2.1 Classification. . . . . . . . . . . . . . . . . . . . . . 593
5.2.2 Association Rules. . . . . . . . . . . . . . . . . . . 656
5.2.3 Clustering. . . . . . . . . . . . . . . . . . . . . . . . 717
Prof. Dr. Dietmar Seipel vii
Vorlesung Datenbanken Wintersemester 2013/14
6 XML Data Modelling 747
6.1 XML Data and Schema Description. . . . . . . . . . . . . . 750
6.2 Relational Databases and XML . . . . . . . . . . . . . . . . . 774
6.3 The XML Query Language XQuery. . . . . . . . . . . . . . 794
7 Web Databases 837
7.1 Access to Web Databases by Servlets. . . . . . . . . . . . . . 838
7.2 Java Server Pages . . . . . . . . . . . . . . . . . . . . . . . 850
7.3 Web Database Connections in PHP . . . . . . . . . . . . . . . 859
Prof. Dr. Dietmar Seipel viii
Vorlesung Datenbanken Wintersemester 2013/14
8 Extended Database Concepts 869
8.1 Deductive Databases and Logic Programming. . . . . . . . . 870
8.1.1 PROLOG as a Database Language. . . . . . . . . . . 878
8.1.2 The Deductive Database System DDBASE . . . . . . 894
8.1.3 PROLOG as a Programming Language. . . . . . . . . 904
8.2 Semantic Web Databases. . . . . . . . . . . . . . . . . . . . 923
8.3 Object–Oriented Databases. . . . . . . . . . . . . . . . . . . 942
8.3.1 Complex Objects. . . . . . . . . . . . . . . . . . . . 944
8.3.2 Features of Object–Orientation. . . . . . . . . . . . . 951
8.3.3 Examples: COMPANY and UNIVERSITY Database . . 959
Anhang 979
Prof. Dr. Dietmar Seipel ix
Vorlesung Datenbanken Wintersemester 2013/14
Ü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 MySQL und POSTGRESQL.
• Die strukturelle Modellierung der Anwendungsdaten erfolgt meist im
Entity–Relationship–Modell (ER–Modell), welches sodannins
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 (SQL).
• Neben dem relationalen Datenmodell gewinnt zur Zeit das ausdem
WWW bekannte XML–Datenmodell stark an Bedeutung.
Prof. Dr. Dietmar Seipel x
Vorlesung Datenbanken Wintersemester 2013/14
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äsentationder Daten im
DBMS wird verborgen (Datenabstraktion und Datenunabhängigkeit).
Prof. Dr. Dietmar Seipel xi
Vorlesung Datenbanken Wintersemester 2013/14
• 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 2013/14
Datenmodellierung im ER–Modell
• Die erste Modellierung erfolgt im Entity–Relationship–Modell(ER–Modell), welches gleichartige Objekte der realen WeltalsEntity–Typen modelliert und die Beziehungen dazwischen alsRelationship–Typen. Die Entities und Relationships werden durchAttribute beschrieben.
• Man verwendet hauptsächlich die graphische Veranschaulichung inForm von ER–Diagrammen. Ähnliche Konzepte werden mittlerweileauch bei der objektorientierten Modellierung auf der Basisder UnifiedModelling Language (UML) verwendet.
• Es gibt eine generische Abbildung vom ER–Modell insRelationenmodell, bei der sowohl die Entity–Typen als auchdieRelationship–Typen als Relationenschemata zusammen mit Schlüssel–bzw. Fremdschlüsselbedingungen repräsentiert werden.
Prof. Dr. Dietmar Seipel xiii
Vorlesung Datenbanken Wintersemester 2013/14
Datenbankzugriff im Relationenmodell
• Der Zugriff auf die Daten erfolgt über die Structured Query Language
(SQL). Die Abarbeitung der SQL–Anfragen erfolgt intern über
Operationen auf den Relationen (relationale Algebra).
• Es gibt SQL–Befehle für das Erzeugen und Löschen (CREATE , DROP)
von Datenbanken bzw. Tabellen (Relationen), für das Einfügen und
Verändern der Tabellen (I NSERT, DELETE , UPDATE) und für den
eigentlichen Datenzugriff (SELECT ). BeimSELECT –Statement kann
man verschiedene Tabellen verknüpfen (Join), und man kann Gruppen
bilden und über diese aggregieren.
• SQL kann aus Programmiersprachen wieJava heraus aufgerufen werden
(Java Database Connectivity, JDBC).
Prof. Dr. Dietmar Seipel xiv
Vorlesung Datenbanken Wintersemester 2013/14
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). JedeZeile besitzt
einen Eintrag pro Attribut (Spalte).
• Bei der Datenmodellierung gibt es informelle Design–Richtlinien,
welche die Übersichtlichkeit des Entwurfs, die Vermeidungvon
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 gutumsetzen.
Prof. Dr. Dietmar Seipel xv
Vorlesung Datenbanken Wintersemester 2013/14
• Die Normalformen basieren auf dem Konzept der funktionalen
Abhängigkeiten; die einfachste funktionale Abhängigkeitist die
Schlüsselabhängigkeit, welche darin besteht, daß ein Teilder 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 2013/14
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ß Transaktionenselbst 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 Datenbankobjektemit
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 2013/14
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 hugefact 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 tosupport
decision making.
• There are three major methods for data mining: classification,
association rules, and clustering.
Prof. Dr. Dietmar Seipel xviii
Vorlesung Datenbanken Wintersemester 2013/14
XML Data Modelling
• Nowadays, complex data are frequently stored in XML documents, and
in this form, they can be exchanged between different applications or
users. Thus, also many relational database managements systems offer
XML extensions.
• Certain simple, flat XML schemas exactly correspond to relational data
modelling. But the representation of complex, nested data structures is
supported much better and more natural by XML .
• There are suitable query and modification languages for XML
dcouments/databases (XQUERY, XUPDATE), which are all based on the
path allocation language XPATH.
Prof. Dr. Dietmar Seipel xix
Vorlesung Datenbanken Wintersemester 2013/14
Web Databases
• Dynamic web pages are frequently generated from relationaldatabases.
• SQL code can be embedded in almost all standard host programming
languages.
• Database applications on the web are frequently implemented based on
Java, Javascript, or PHP.
• Java Server Pages and Java Server Faces embedd Java code in
HTML–based web pages.
Prof. Dr. Dietmar Seipel xx
Vorlesung Datenbanken Wintersemester 2013/14
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
• NoSQL–Datenbanken (not only SQL)
Prof. Dr. Dietmar Seipel xxi