Post on 21-Jan-2016
description
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 BrowserBrowserBrowser
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.