'DWHQEDQNV\VWHPH Bernhard Seeger Fachbereich Mathematik und Informatik Philipps-Universität Marburg Dieses “Skript” ist nur als eine Orientierungshilfe zur Vorlesung Datenbanksysteme. Die Kopien entsprechen zu einem großen Teil den Folien, die in den Vorlesungsstunden aufgelegt und erläutert werden. Seite 1 2UJDQLVDWLRQ Vorlesung – bis zum 9.12.2004: Mo 14-16, Di 11-13 und Do 14-16 im Hörsaal IV – ab dem 12.12.2004: Mo 14-16 im Hörsaal IV ± %ORFNYHUDQVWDOWXQJDPLP+|UVDDO,9YRQ8KU Übung – Übungsleiter: Martin Schneider – Keine Abgabe der Übungen, keine Korrektur der Aufgaben – Wunschtermin: mittwochs 12:45-14:15 – ab Januar 2005: “kleines” Datenbankpraktikum benoteter Schein: Klausur, Termin: ? Web-Seite: http://www.mathematik.uni-marburg.de/~maschn/vor04WSDBS1.shtml Forum: http://dbs.mathematik.uni-marburg.de/forum/phpBB2/ Seminar “Dynamische Informationsfusion” Seite 2 /LWHUDWXUOLVWH Basisliteratur A. Kemper, A. Eikler: “ Datenbanksysteme. Eine Einführung” , Oldenbourg, 2004 (5. Auflage). G. Saake, A. Heuer: “ Datenbanken Konzepte und Sprachen” , mitp. 2000. G. Vossen: “ Datenmodelle, Datenbanksprachen und Datenbankmanagement-Systeme” , Oldenbourg, 2000. Jeffrey D. Ullman, Jennifer D. Widom: A First Course in Database Systems, Prentice Hall, 2001. Ramez A. Elmasri, Shamkant B. Navathe: Fundamentals of Database Systems (4th Edition), Addison-Wesley, 1999 (deutsche Fassung bei Pearson Studium erschienen) Jim Melton, Alan R. Simon, Jim Gray: SQL: 1999 - Understanding Relational Language Components, Morgan Kaufmann Publishers, 2001 Spezialliteratur Gerhard Weikum, Gottfried Vossen: Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control, Morgan Kaufmann, 2001. Serge Abiteboul, Richard Hull, Victor Vianu: Foundations of Database Systems, AddisonWesley, 1995. Seite 3 :LFKWLJH=HLWVFKULIWHQXQG.RQIHUHQ]HQ Zeitschriften: ACM Transactions on Database Systems (TODS) IEEE Transactions on Knowledge and Database Engineering Information Systems The VLDB Journal Diese Zeitschriften gibt es bei uns in der Bibliothek, oder stehen im Internet bereit. Wichtige Konferenzen: Int. Conf. on Very Large Data Bases (VLDB) ACM SIGMOD Int. Conf. on Management of Data ACM SIGACT-SIGMOD Principles of Database Systems IEEE Int. Conf. on Data Engineering Int. Conf. on International Conference on Extending Database Technology Seite 4 9RUOlXILJHV,QKDOWVYHU]HLFKQLV 1. Einführung 2. Konzeptionelle Datenmodellierung 3. Relationales Datenmodell relationale Algebra, Relationen-Kalkül, erweiterte Algebra 4. SQL: Die relationale Datenbanksprache 5. Anwendungsprogrammierung statisches und dynamisches eSQL, JDBC, JDO 6. Integritätsbedingungen 7. Entwurfstheorie relationaler Datenbanken 8. Anfrageverarbeitung 9. Transaktionskonzepte u. Fehlerbehandlung 10.Objektrelationale Datenbanken (SQL:1999) 11.Data Warehousing 12.XML-Datenbanken * (2)* (3) (6) (6) (6) (2) (3) (6) (6) (3) (3) (6) Die Zahl in Klammern zeigt die Anzahl der Stunden, die für das jeweilige Kapitel eingeplant sind. Seite 5 (LQIKUXQJ (LQIKUXQJ 'DWHQEDQNV\VWHPH (DBS) werden genutzt zur rechnergestützten Verwaltung großer Datenbestände, die auf nichtflüchtigen Speichermedien abgelegt werden. Datenbanksystem besteht aus – 'DWHQEDQNYHUZDOWXQJVV\VWHP (engl. database management system) Dahinter verbirgt sich die Software zur Verwaltung von Daten. – 'DWHQEDQN Darunter versteht man die zu verwaltenden Daten und andere Hilfsdaten (z. B. Indexe und Metadaten). Eine Datenbank stellt eine logische Einheit dar. Typische Anwendungen von Datenbanksystemen: Bankinformationssystem: Verwaltung der Kunden, ihre Konten, … Versicherungsinformationssystem: Verwaltung der Kunden, ihre Verträge, … Neuerdings werden DBS auch in anderen Anwendungsbereichen eingesetzt: – Biologie: Gen-Datenbanken – Geographie: Kataster, Leitungsnetzwerken wie z. B. bei Energieversorger – Text-Dokumente: Artikel, Zeitschriften, Bücher – Multimedia: Bilder, Videos Seite 6 (LQIKUXQJ $OVHVQRFKNHLQH'DWHQEDQNV\VWHPHJDE« Entwicklung von DBS setzte erst in den frühen 60er Jahre ein. Zuvor wurden vornehmlich einfache Dateisysteme benutzt Beispiel für die Datenverarbeitung in einer Versicherung: Drei Kundenberater Alfred, Beatrice und Carlo, die je nach Art des Versicherungstyps Kunden betreuen. Jeder der Kundenberater benutzt für den Zugriff auf die Kundendaten ein eigenentwickeltes Programm Jeder Berater hat seine eigene Kundendatei KB Alfred Programm KundenVonA KB Beatrice Programm KundenVonB KB Carlo Programm KundenVonC Seite 7 (LQIKUXQJ 3UREOHPHGHUIUKHQ'DWHQYHUDUEHLWXQJ Direkte Erzeugung und Verarbeitung der Daten durch Anwendungsprogramme ($:3) unter Verwendung von Dateien – kein standardisiertes Speicherungsformat – hoher Aufwand bei der Verknüpfung von Daten aus mehreren Dateien – hoher Aufwand beim Austausch von Daten verschiedener Benutzern – mehrfache und unkoordinierte Verwaltung der Daten – häufige Inkonsistenzen im Datenbestand Zugriff auf Daten erfolgt explizit in den AWP – hoher Aufwand für die Entwicklung einer großen Anzahl maßgeschneiderter, aber auch unflexibler Programme Dateninkonsistenzen bei gleichzeitigem Zugriff durch mehrere Benutzer Datenschutz Seite 8 (LQIKUXQJ $QIRUGHUXQJHQDQHLQ'DWHQEDQNV\VWHP Gemeinsame persistente Datenbasis auf dem Externpseicher – Zugriff der Benutzer und der AWP auf einen gemeinsam verwalteten Datenbestand Kontrollierte Datenredundanz – Vermeidung von Kopien derselben Daten durch integrierte Verwaltung aller Daten. Mehrbenutzerbetrieb – gleichzeitiger Zugriff mehrerer Benutzer auf ihre Daten – Jeder Benutzer hat dabei den Eindruck der exklusiven Nutzung des Systems. Datenunabhängigkeit (siehe auch unten) – Unabhängigkeit der AWP von der Datenrepräsentation und -speicherung Schneller Datenzugriff – Mächtige Sammlung von Werkzeugen zur effizienten Speicherung und Anfragevearbeitung externer Datenquellen. – Indexstrukturen für Plattenspeicher – effiziente Algorithmen zum externen Sortieren Seite 9 (LQIKUXQJ Datenintegrität – Unterstützung von Integritätsbedingungen zur Gewährleistung der Korrektheit und Vollständigkeit der Daten – automatische Überprüfung der Bedingungen beim Einfügen, Ändern und Löschen der Daten Datenkonsistenz – Sicherstellung der Datenkonsistenz auf Basis der Integritätsbedingungen – Transaktionskonzept Datensicherung – Zugriffskontrolle durch Authentisierung und Verschlüsselung – Schutz der Datenbank vor nicht-autorisierten Zugriff Fehlerbehandlung – Schutz vor den Auswirkungen von Systemfehlern – Wiederanlauf des Systems (Recovery): automatisches Wiederherstellen des zuletzt aktuellen, konsistenten Datenbankzustands mittels von Log-Dateien – Anlegen von Sicherungskopien für den Fall der Zerstörung eines Speichermediums Seite 10 (LQIKUXQJ Bereitsstellung verschiedener Benutzerschnittstellen – ad-hoc Anfragesprachen für interaktive Benutzer – Programmierschnittstellen für die Erstellung von AWP – menügesteuerte, einfach zu benutzende Schnittstelle (GUI) – Spezieller Zugang für Administrator (z. B. zur Datendefinition) Effektive Anfragebearbeitung – Übersetzung und Optimierung von Anfragen – Anfrageoptimierung mit dem Ziel eines hohen Durchsatzes (Anfragen/Sekunde) Flexibilität – Änderung der Datenbankstruktur ohne Änderung der AWP (siehe auch Datenunabhängigkeit) – einfache, aber mächtige Werkzeuge zur Verarbeitung von Daten Schnelle Entwicklung von neuen Anwendungen Seite 11 1DFKHLQHU8PVWUXNWXULHUXQJ Alfred Carlo (LQIKUXQJ Beatrice DBMS DB Zugriff auf die Datenbank ist nur über ein DBMS möglich es gibt HLQHQ zentralen Datenbestand – (eigentlichen) Daten – Metadaten (Daten über die Daten) – Funktionen Seite 12 (LQIKUXQJ 'DWHQDEVWUDNWLRQ DBS besitzt mehrere Abstraktionsstufen: ([WHUQH(EHQHQ: beschreiben den Teil der DB, der für einen Benutzer (oder eine Benutzergruppe) relevant ist. .RQ]HSWLRQHOOH(EHQH gibt an, welche Daten und welche Beziehungen in der DB vorhanden sind 3K\VLVFKHV(EHQH beschreibt, wie die Daten physisch abgelegt sind (physisches Datenmodell) 'DWHQEDQNVFKHPD bezeichnet den Entwurf der Datenbank Entsprechend der drei oben genannten Ebenen gibt es: – externe Schemata, – ein konzeptionelles, – und ein physisches Schema. AWP greifen über ein externes Schema auf die Daten eines DBS zu. AWP externe Ebenen konzeptionelle Ebene physische Ebene Datenbankzustand Konkrete Instanz, die einem Datenbankschema folgt. Seite 13 'DWHQXQDEKlQJLJNHLW (LQIKUXQJ bezeichnet die Eigenschaft, das Schema in einer Ebene zu ändern, ohne dabei das Schema der Daten in der darüber liegenden Ebene zu beeinflussen. logische Datenunabhängigkeit: – Änderungen an der konzeptionellen Ebene haben keine Auswirkungen auf die externe Ebene und damit auch nicht auf die AWP. – Beispiel: Daten bei der Kontoführung sollen um das Attribut “ Uhrzeit” erweitert werden. physische Datenunabhängigkeit: – Änderungen an der physischen Ebene haben keine Auswirkungen auf die konzeptionelle Ebene und damit auch nicht auf die externe Ebenen und die AWP. – Beispiele: Der Datenbestand “ Kontoführung” soll statt in einer Datei auf mehrere Dateien verteilt gespeichert werden. Der Algorithmus für das externe Sortieren wird neu implementiert. Ein Suchbaum soll aufgebaut werden, um schneller Anfragen zu beantworten. Seite 14 'DWHQPRGHOOH (LQIKUXQJ Ein Datenmodell ist ein Formalismus zur Beschreibung und Definition – von Daten – und von Operationen zur Datenmanipulation. Dies beinhaltet nicht nur die Syntax, sondern insbesondere auch die Semantik! Typischerweise besitzt ein DBS zumindest zwei Datenmodelle: – physisches Datenmodell: zur speicher-orientierten Repräsentation der Daten – logisches Datenmodell: zur benutzer-orientierten Repräsentation der Daten logische Datenmodelle sind – objekt-orientiert, z. B. Entity-Relationship Modell objekt-oientiertes Modell – satz-orientiert, z. B. relationales Datenmodell Netzwerk-Datenmodel hierarchisches Datenmodell Seite 15 6SUDFKHQLQ'%6 (LQIKUXQJ Datendefinitionssprache (DDL = data definition language) Sprache zur Manipulation des Datenbankschemas Verwaltung von Meta-Daten zur Beschreibung des Schemas (data dictionary) Spezifikation von “ lästigen” Implementierungsdetails Datenmanipulationssprache (DML = data manipulation language) Funktionalität: – Einfügen, Löschen und Ändern von Datenobjekten in (aus) der Datenbank – Suche nach Datenobjekten in der Datenbank Anfragesprachen sind i.a. deklarativ – Benutzer spezifiziert nur, was für Daten gesucht werden, aber nicht wie die Daten aufgefunden werden sollen. Anfrage, die ein Benutzer mittels von Objekten in seiner externen Ebene formuliert hat, wird in eine effiziente Anfrage übersetzt, die auf Objekten der physischen Ebene aufsetzt. Seite 16 .RPSRQHQWHQHLQHV'%06 naiver Benutzer Anwendungsprogrammierer Precompiler der DML ad-hoc Anfrager Compiler der DML Code des Anwenderprogramms (LQIKUXQJ Datenbankadministrator Compiler der Datendefinitionssprache Datenbank Manager Dateisystem Dateien Dateien DatenDictionary Seite 17