160 likes | 334 Views
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?
E N D
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 datenintensivenAnwendungen: • 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 Text- interfaces zur Administration Terminals Batch Jobs Großrechner(Anwendung + DB) Hier spielt die ganze Musik
Client-Server Anwendungslogik, GUIs Client Client Datenbankserver 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 PC PC PC PC PC Application- Server Application- Server Datenbankserver
Datenbanken im Web Browser Browser Browser Browser Browser Browser Internet Web-Server Web-Server Web-Server 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 DB1 Internet /Intranet Client DB2 DB3 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.