Datenbanksysteme

Werbung
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)
Client-Server
Anwendungslogik,
GUIs
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
ApplicationServer
PC
ApplicationServer
Datenbankserver
PC
Datenbanken im Web
Browser Browser Browser Browser Browser Browser
Internet
Web-Server
Web-Server
ApplicationServer
Web-Server
ApplicationServer
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
ApplicationServer
DB1
PC
ApplicationServer
DB2
DB3
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
DB1
Internet /Intranet
Client
DB2
Client
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.
Herunterladen