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
Großrechner
(Anwendung + DB)
Terminals Batch Jobs einfache Text-
interfaces zur Administration
Hier spielt die ganze
Musik
Client-Server
Datenbankserver
Client 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 PC PC PC PC
Datenbanken im Web
Datenbankserver Application-
Server
Application- Server Browser
Web-Server Web-Server Web-Server
Browser Browser Browser Browser 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 PC PC PC PC
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
Internet /Intranet Internet /Intranet
DB1
DB2 DB3
Client
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.