Introduction - id.ethz.ch

Werbung
Einführung in Datenbanksysteme
Donald Kossmann
Systems Group
ETH Zürich
[email protected]
www.systems.ethz.ch
Termine
• Vorlesungen
– Mittwoch: 10 Uhr bis 12 Uhr
• Übungen (Start am 3. März)
–
–
–
–
Montag: 13 Uhr bis 14 Uhr (2 x)
Montag: 16 Uhr bis 17 Uhr (2 x)
Dienstag: 16 Uhr bis 17 Uhr
Mittwoch: 13 Uhr bis 14 Uhr
• Eintragen zur Übung bis 25. Februar 2008:
www.dbis.ethz.ch/education/ss2008/ss08_dbs_introdb
Literatur
• Kemper, Eickler: Datenbanksysteme: Eine
Einführung. Oldenbourg Verlag, 6. Auflage,
2006. (Kap. 1-6, 9, 12)
oder
• Elmasri, Navathe: Grundlagen von
Datenbanksysteme (Ausgabe Grundstudium).
Pearson Studium, 3. Auflage 2005.
(praktisch komplett)
Ü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
Vorlesungsplan
Week No.
Date (Mi)
Topic Lecture
Übungen Topic
1
20.2.2008 Einführung, DB Architekturen
-
2
27.2.2008 ER Modellierung I
-
3
5.3.2008 ER Modellierung II
ER Modellierung,
Start Projekt
4
12.3.2008 Relationales Modell
ER, Modellierung
5
19.3.2008 SQL I
Relationales Modell
6
2.4.2008 SQL II
SQL
7
9.4.2008 SQL III
SQL
8
16.4.2008 Integritätsbedingungen
- (Sechseläuten)
9
23.4.2008 Entwurfstheorie I
Projekt: Etappe I
30.4.2008 Entwurfstheorie II
Integritätsbed.
10
11
7.5.2008 Entwurfstheorie III
12
14.5.2008 Transaktionsbegriff
Entwurfstheorie (?)
13
21.5.2008 Sicherheit
Transaktionen
14
28.5.2008 Ausblick
Ende Projekt II
15
??.?.2008 -
Final Klausur
Entwurfstheorie
Hinweise zu Übungen
• Kein Testat (!)
• Projekt
– Gruppen von ca. drei Studierenden
– Pflicht (sonst keine Zulassung zur Klausur)
– Keine Note
• Übungen
– Ausgabe in der Vorwoche
– Besprechung in der Woche darauf
– Bitte vorbereiten!
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)
Motivation für den Einsatz eines
Datenbanksystems
• Redundanz und Inkonsistenz
• Beschränkte Zugriffsmöglichkeiten des
Filesystems
• Probleme beim Mehrbenutzerbetrieb
• Verlust von Daten bei Systemausfällen
• Sicherheitsprobleme / Authorisierung
• Hohe Entwicklungskosten von Anwendungen
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.
Stream Data Management (Hub)
DB
Stream Data Management
• „Am Anfang war das Wasser…“
„Alles ist im Fluss …“
– Ursprung aller Daten ist ein „Eventstrom“
– (z.B. Clickstrom, Sensormessungen, …)
• Daten werden „on the fly“ bearbeitet
– Behandele Daten während sie fließen
– Teilweise ohne Speicherung / Archivierung
– Teilweise mit Speicherung und vorberechnete Reports
• Selben Ziele und Abstraktionen
– Z.B. SQL oder XQuery als Programmiersprache
Die Abstraktionsebenen eines
Datenbanksystems
Datenunabhängigkeit
Sicht1
Sicht 2 ...
Logische
Datenunabhängigkeit
Logische Ebene
Physische
Datenunabhängigkeit
Physische Ebene
Änderungen auf einer
Ebene betreffen die andere Ebene nicht!
Sicht 3
Datenmodellierung
Ausschnitt der
Realen Miniwelt
Manuelle/intellektuelle
Modellierung
Konzeptuelles Schema
(ER-Schema)
XML
Relationales
Schema
Netzwerk
Schema
Halbautomatische
Transformation
Objektorientiertes
Schema
Modellierung einer kleinen
Beispielanwendung
Studenten
Professoren
Vorlesungen
Reale Welt: Universität
Konzeptuelle Modellierung
MatrNr
Studenten
PersNr
Professoren
Name
Name
hören
lesen
VorlNr
Vorlesungen
Titel
Logische Datenmodelle
• Netzwerkmodell (z.B. CODASYL/COBOL)
• Hierarchisches Datenmodell (IBM IMS/FastPath)
• Relationales Datenmodell (SQL)
• Objektorientiertes Datenmodell (ODMG 2.0)
• Semistrukturiertes Datenmodell (XML)
• Deduktives Datenmodell (Datalog)
Das relationale Datenmodell
Studenten
MatrNr Name
26120 Fichte
25403 Jonas
...
...
hören
MatrNr VorlNr
25403 5022
26120 5001
...
...
Vorlesungen
VorlNr
Titel
5001 Grundzüge
5022 Glaube und Wissen
...
...
Select Name
From Studenten, hören, Vorlesungen
Where Studenten.MatrNr = hören.MatrNr and
hören.VorlNr = Vorlesungen.VorlNr and
Vorlesungen.Titel = `Grundzüge´;
update
Vorlesungen
set Titel = `Grundzüge der Logik´
where
VorlNr = 5001;
Architekturübersicht eines DBMS
„Naive“
Benutzer
Anwendung
Fortgeschrittene
Benutzer
AnwendungsProgrammierer
Datenbankadministratoren
Interaktive
Anfrage
Präcompiler
Verwaltungswerkzeug
DML-Compiler
DDL-Compiler
Anfragebearbeitung
Mehrbenutzersynchr.
Fehlerbehandlung
Datenbankmanager
DBMS
Schemaverwaltung
Dateiverwaltung
Logdateien
Indexe
Datenbasis
Hintergrundspeicher
Datenwörterbuch
Herunterladen