Datenbanksysteme Donald Kossmann TU Mnchen bersicht Wie benutze
Datenbanksysteme Donald Kossmann TU München
Ü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
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)
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 Hier spielt die ganze Musik Batch Jobs Großrechner (Anwendung + DB)
Anwendungslogik, GUIs Client-Server 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 Application. Server Datenbankserver PC
Datenbanken im Web Browser Browser Internet Web-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 Application. Server DB 1 PC Application. Server DB 2 DB 3 PC
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 DB 1 Internet /Intranet Client DB 2 Client DB 3
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.
- Slides: 16