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 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 2013/14 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 . . . . . . . . . . . . 42 1.2.3 Beispiel: die C OMPANY–Datenbank . . . . . . . . . . 55 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.6 Prof. Dr. Dietmar Seipel 3.5.1 BCNF–Dekomposition . . . . . . . . . . . . . . . . . 305 3.5.2 3NF–Synthese . . . . . . . . . . . . . . . . . . . . . 318 Azyklische Datenbankschemata . . . . . . . . . . . . . . . . 354 v Vorlesung Datenbanken Wintersemester 2013/14 4 Transaktionen und Recovery 4.1 4.2 4.3 Prof. Dr. Dietmar Seipel 440 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 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 Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 vi Vorlesung Datenbanken Wintersemester 2013/14 5 Data Warehouses and Data Mining 5.1 5.2 Prof. Dr. Dietmar Seipel 554 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 Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 5.2.1 Classification . . . . . . . . . . . . . . . . . . . . . . 593 5.2.2 Association Rules . . . . . . . . . . . . . . . . . . . 656 5.2.3 Clustering . . . . . . . . . . . . . . . . . . . . . . . . 717 vii Vorlesung Datenbanken 6 Wintersemester 2013/14 X ML Data Modelling 747 6.1 X ML Data and Schema Description . . . . . . . . . . . . . . 750 6.2 Relational Databases and X ML . . . . . . . . . . . . . . . . . 774 6.3 The X ML 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 P HP . . . . . . . . . . . . . . . 859 Prof. Dr. Dietmar Seipel viii Vorlesung Datenbanken Wintersemester 2013/14 8 Extended Database Concepts 8.1 869 Deductive Databases and Logic Programming . . . . . . . . . 870 8.1.1 P ROLOG as a Database Language . . . . . . . . . . . 878 8.1.2 The Deductive Database System DDBASE . . . . . . 894 8.1.3 P ROLOG as a Programming Language . . . . . . . . . 904 8.2 Semantic Web Databases . . . . . . . . . . . . . . . . . . . . 923 8.3 Object–Oriented Databases . . . . . . . . . . . . . . . . . . . 942 Anhang Prof. Dr. Dietmar Seipel 8.3.1 Complex Objects . . . . . . . . . . . . . . . . . . . . 944 8.3.2 Features of Object–Orientation . . . . . . . . . . . . . 951 8.3.3 Examples: C OMPANY and U NIVERSITY Database . . 959 979 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 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 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äsentation der 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 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 2013/14 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 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). 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 2013/14 • 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 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ß 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 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 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 2013/14 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 2013/14 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 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 • NoS QL–Datenbanken (not only S QL) Prof. Dr. Dietmar Seipel xxi