Einführung in Datenbanksysteme Donald Kossmann Institut für Informationssysteme ETH Zürich kossmann@inf.ethz.ch www.dbis.ethz.ch
Vorlesungen Termine Mittwoch: 10 Uhr bis 12 Uhr Übungen (Start am 2. April) Montag: 13 Uhr bis 14 Uhr (3 x) Dienstag: 15 Uhr bis 16 Uhr Dienstag: 16 Uhr bis 17 Uhr Mittwoch: 13 Uhr bis 14 Uhr Eintragen zur Übung bis 28. März 2006: www.dbis.ethz.ch/education/ss2007/07_dbs_introdb
Literatur Kemper, Eickler: Datenbanksysteme: Eine Einführung. Oldenbourg Verlag, 6. Auflage, 2006. (Kap. 1-6, 9, 12) oder Elmasri, Navathe: Grundlagen von Datenbanksysteme (Ausgabe Grundstudium). Pearson Studium, 3. Auflage 2005. (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 1 21.3.2007 Einführung, DB Architekturen - 2 28.3.2007 ER Modellierung I - 3 4.4.2007 ER Modellierung II ER Modellierung, Start Projekt 4 11.4.2007 Relationales Modell - 5 18.4.2007 SQL I - 6 25.4.2007 SQL II ER, Relat. Modell 7 2.5.2007 SQL III SQL (Maifeiertag!) 8 9.5.2007 Integritätsbedingungen SQL 9 16.5.2007 Entwurfstheorie I Ende Projekt I 10 23.5.2007 Entwurfstheorie II Entwurfstheorie 11 30.5.2007 Entwurfstheorie III - 12 6.6.2007 Transaktionsbegriff Entwurfstheorie 13 13.6.2007 Sicherheit Transaktionen 14 20.6.2007 Ausblick Ende Projekt II 15??.?.2007 - Final Klausur
Kein Testat (!) Projekt Hinweise zu Übungen 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 einfache Textinterfaces zur Administration Terminals Batch Jobs Hier spielt die ganze Musik Großrechner (Anwendung + DB)
Anwendungslogik, GUIs Client-Server Client Client Datenhaltung Datenbankserver
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 PC PC PC PC PC Application- Server Application- Server Datenbankserver
Datenbanken im Web Browser Browser Browser Browser Browser Browser Web-Server Web-Server Web-Server Internet Application- Server Application- Server Datenbankserver
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 PC PC PC PC PC Application- Server Application- Server DB1 DB2 DB3
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 Client Internet /Intranet Client DB2 DB3
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.
Die Abstraktionsebenen eines Datenbanksystems Datenunabhängigkeit Logische Datenunabhängigkeit Sicht1 Sicht 2... Sicht 3 Logische Ebene Physische Datenunabhängigkeit Änderungen auf einer Ebene betreffen die andere Ebene nicht! Physische Ebene
Datenmodellierung Ausschnitt der Realen Miniwelt XML Relationales Schema Konzeptuelles Schema (ER-Schema) Netzwerk Schema Manuelle/intellektuelle Modellierung Halbautomatische Transformation Objektorientiertes Schema
Modellierung einer kleinen Beispielanwendung Studenten Vorlesungen Professoren Reale Welt: Universität Konzeptuelle Modellierung MatrNr Name Studenten hören Professoren lesen PersNr Name Vorlesungen VorlNr Titel
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 MatrNr 26120 25403... Name Fichte Jonas... MatrNr 25403 26120... hören VorlNr 5022 5001... VorlNr 5001 5022... Vorlesungen Titel Grundzüge Select Name From Studenten, hören, Vorlesungen Where Studenten.MatrNr = hören.matrnr and hören.vorlnr = Vorlesungen.VorlNr and Vorlesungen.Titel = `Grundzüge ; update Vorlesungen set Titel = `Grundzüge der Logik where VorlNr = 5001; Glaube und Wissen...
Architekturübersicht eines DBMS Naive Benutzer Fortgeschrittene Benutzer Anwendungs- Programmierer Datenbankadministratoren Anwendung Interaktive Anfrage Präcompiler Verwaltungswerkzeug DML-Compiler Anfragebearbeitung DDL-Compiler DBMS Mehrbenutzersynchr. Fehlerbehandlung Datenbankmanager Schemaverwaltung Dateiverwaltung Logdateien Indexe Datenbasis Datenwörterbuch Hintergrundspeicher