Einführung in Datenbanksysteme Donald Kossmann Systems Group ETH Zürich
Termine Vorlesungen –Mittwoch: 10 Uhr bis 12 Uhr Übungen (Start am 3. März) –Montag: 13 Uhr bis 14 Uhr (2 x) –Montag: 16 Uhr bis 17 Uhr (2 x) –Dienstag: 16 Uhr bis 17 Uhr –Mittwoch: 13 Uhr bis 14 Uhr Eintragen zur Übung bis 25. Februar 2008:
Literatur Kemper, Eickler: Datenbanksysteme: Eine Einführung. Oldenbourg Verlag, 6. Auflage, (Kap. 1-6, 9, 12) oder Elmasri, Navathe: Grundlagen von Datenbanksysteme (Ausgabe Grundstudium). Pearson Studium, 3. Auflage (praktisch komplett)
Übersicht Wie benutze ich ein Datenbanksystem? –Datenmodellierung (ER, UML, Theorie) –Datenbankprogrammierung (SQL) Wie baue ich ein Datenbanksystem? –Anfrageoptimierung –Transaktionsverwaltung Wie sieht die nächste Generation aus? –Objektorientierte, objektrelationale Datenbanken –Data Warehousing, Decision Support, Data Mining –XML, verteilte Datenbanken, WWW
Vorlesungsplan Week No.Date (Mi)Topic LectureÜbungen Topic Einführung, DB Architekturen ER Modellierung I ER Modellierung IIER Modellierung, Start Projekt Relationales ModellER, Modellierung SQL IRelationales Modell SQL IISQL SQL IIISQL Integritätsbedingungen- (Sechseläuten) Entwurfstheorie IProjekt: Etappe I Entwurfstheorie IIIntegritätsbed Entwurfstheorie IIIEntwurfstheorie TransaktionsbegriffEntwurfstheorie (?) SicherheitTransaktionen AusblickEnde Projekt II 15??.?.2008-Final Klausur
Hinweise zu Übungen Kein Testat (!) Projekt –Gruppen von ca. drei Studierenden –Pflicht (sonst keine Zulassung zur Klausur) –Keine Note Übungen –Ausgabe in der Vorwoche –Besprechung in der Woche darauf –Bitte vorbereiten!
Was ist ein Datenbanksystem? Ein Datenbanksystem ist ein Werkzeug zur Entwicklung von datenintensiven Anwendungen: –großer Datenbestand –große Datenströme
Vision Alles Wissen dieser Welt elektronisch speichern und jederzeit und an jedem Ort jedem autorisierten Benutzer zur Verfügung stellen. Status: Technologie ist da (Karteikästen). Das Modell fehlt (Beschriftung der Kästen).
Typische Anwendungen Bank (Buchungen Kontoverwaltung) Bibliothek (Volltextsuche, Entleihe) Redaktionssysteme im Internet (Dokumente erstellen, Struktur einer Website) E-Business (Auftrag, Katalog) ERP (Personal, Buchhaltung, Controlling) Decision Support (statistische Auswertungen)
Motivation für den Einsatz eines Datenbanksystems Redundanz und Inkonsistenz Beschränkte Zugriffsmöglichkeiten des Filesystems Probleme beim Mehrbenutzerbetrieb Verlust von Daten bei Systemausfällen Sicherheitsprobleme / Authorisierung Hohe Entwicklungskosten von Anwendungen
Architekturen und Ausprägungen Großrechner Client-Server Multi-Tier Architekturen Parallele Datenbanksysteme Verteilte, Peer-to-peer Datenbanken
Großrechner Großrechner (Anwendung + DB) TerminalsBatch Jobs einfache Text- interfaces zur Administration Hier spielt die ganze Musik
Client-Server Datenbankserver Client Anwendungslogik, GUIs Datenhaltung
Vorteile von Client/Server Skalierbarkeit: Clientrechner übernehmen einen Teil der Last – je mehr Nutzer desto mehr Clientrechner Verfügbarkeit: Hardware am Server kann redundant ausgelegt werden Sicherheit: Beschütze Server und Zugang zum Server Administrierbarkeit: Backups nur am Server Nachteil: Komplexität (Caching, usw.)
Three-Tier Datenbankserver Application- Server Application- Server PC
Datenbanken im Web Datenbankserver Application- Server Application- Server Browser Web-Server Browser Internet
Multi-Tier-Architekturen Schichtenarchitektur: –Jede Ebene implementiert einen anderen Aspekt (Datenbank, Anwendungen, GUI,...) –Unterschiedliche Anbieter für einzelnen Schichten (Oracle für die Datenbank, sd&m für die Anwendung, Apache für den Webserver, Microsoft fürs GUI) Jede Schicht kann auf einem eigenen Rechner implementiert werden. Es können aber auch mehrere Schichten auf einem Rechner installiert werden. Skalierbarkeit auf jeder Schicht bis auf Datenbank.
Paralleles Datenbanksystem Application- Server Application- Server PC DB1DB2DB3
Paralleles Datenbanksystem Das Datenbanksystem selber ist aus mehreren Knoten (Festplatten, CPUs) aufgebaut. Die Knoten sind durch ein schnelles Netzwerk verbunden. Ziele: –Höheren Durchsatz (Inter-Query Parallelität) –Niedrigere Antwortzeiten (Intra-Query Parall.) –Höhere Verfügbarkeit –Kosten, Erweiterbarkeit, Skalierbarkeit Wichtig: Transparenz
Verteiltes Datenbanksystem DB1 Internet /Intranet DB1 DB2DB3 Client
Verteilte Datenbanken Die einzelnen Datenbanken sind autonom und durch ein langsames, instabiles Netzwerk verbunden. Zugriff von überall auf alles möglich. Großen Organisationen mit vielen Filialen. Prinzip: Speichere Daten, wo sie gebraucht werden. Eventuell: Replikation. Transparenz: –Benutzer weiß nicht, wo Kopien, welcher Daten liegen. Aus Sicht des Benutzers ist der Zugriff auf das gesamte System wie bei einem zentralen System.
Stream Data Management (Hub) DB
Stream Data Management „Am Anfang war das Wasser…“ „Alles ist im Fluss …“ –Ursprung aller Daten ist ein „Eventstrom“ –(z.B. Clickstrom, Sensormessungen, …) Daten werden „on the fly“ bearbeitet –Behandele Daten während sie fließen –Teilweise ohne Speicherung / Archivierung –Teilweise mit Speicherung und vorberechnete Reports Selben Ziele und Abstraktionen –Z.B. SQL oder XQuery als Programmiersprache
Die Abstraktionsebenen eines Datenbanksystems Datenunabhängigkeit Physische Ebene Logische Ebene Sicht1Sicht 2Sicht 3... Logische Datenunabhängigkeit Physische Datenunabhängigkeit Änderungen auf einer Ebene betreffen die andere Ebene nicht!
Datenmodellierung Relationales Schema Netzwerk Schema Objektorientiertes Schema Konzeptuelles Schema (ER-Schema) Manuelle/intellektuelle Modellierung Halbautomatische Transformation Ausschnitt der Realen Miniwelt XML
Modellierung einer kleinen Beispielanwendung Studenten Vorlesungen Professoren Reale Welt: Universität PersNrMatrNr Name StudentenProfessoren hören lesen Vorlesungen Titel VorlNr Konzeptuelle Modellierung
Logische Datenmodelle Netzwerkmodell (z.B. CODASYL/COBOL) Hierarchisches Datenmodell (IBM IMS/FastPath) Relationales Datenmodell (SQL) Objektorientiertes Datenmodell (ODMG 2.0) Semistrukturiertes Datenmodell (XML) Deduktives Datenmodell (Datalog)
Das relationale Datenmodell Studenten MatrNrName Fichte Jonas... hören MatrNrVorlNr Vorlesungen VorlNrTitel Grundzüge Glaube und Wissen... Select Name From Studenten, hören, Vorlesungen Where Studenten.MatrNr = hören.MatrNr and hören.VorlNr = Vorlesungen.VorlNr and Vorlesungen.Titel = `Grundzüge´; updateVorlesungen setTitel = `Grundzüge der Logik´ whereVorlNr = 5001;
LogdateienIndexeDatenbasisDatenwörterbuch Dateiverwaltung Mehrbenutzersynchr. Fehlerbehandlung DatenbankmanagerSchemaverwaltung Anfragebearbeitung DBMS DML-CompilerDDL-Compiler Anwendung Interaktive Anfrage Verwaltungs- werkzeug Präcompiler „Naive“ Benutzer Fortgeschrittene Benutzer Anwendungs- Programmierer Datenbank- administratoren Hintergrundspeicher Architekturübersicht eines DBMS