Einführung in Datenbanksysteme

Transcrição

Einführung in Datenbanksysteme
Einführung in Datenbanksysteme
Donald Kossmann
Institut für Informationssysteme
ETH Zürich
[email protected]
www.dbis.ethz.ch
Termine
• Vorlesungen
– Mittwoch: 10 Uhr bis 12 Uhr
• Übungen (Start am 2. April)
–
–
–
–
Montag: 13 Uhr bis 14 Uhr (3 x)
Dienstag: 15 Uhr bis 16 Uhr
Dienstag: 16 Uhr bis 17 Uhr
Mittwoch: 13 Uhr bis 14 Uhr
• Eintragen zur Übung bis 28. März 2006:
www.dbis.ethz.ch/education/ss2007/07_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
21.3.2007 Einführung, DB Architekturen
-
2
28.3.2007 ER Modellierung I
-
3
4.4.2007 ER Modellierung II
ER Modellierung,
Start Projekt
4
11.4.2007 Relationales Modell
-
5
18.4.2007 SQL I
-
6
25.4.2007 SQL II
ER, Relat. Modell
7
2.5.2007 SQL III
SQL (Maifeiertag!)
8
9.5.2007 Integritätsbedingungen
SQL
9
16.5.2007 Entwurfstheorie I
Ende Projekt I
10
23.5.2007 Entwurfstheorie II
Entwurfstheorie
11
30.5.2007 Entwurfstheorie III
-
12
6.6.2007 Transaktionsbegriff
Entwurfstheorie
13
13.6.2007 Sicherheit
Transaktionen
14
20.6.2007 Ausblick
Ende Projekt II
15
??.?.2007 -
Final Klausur
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)
Anwendungslogik,
GUIs
Client-Server
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.
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
Vorlesungen
Professoren
Reale Welt: Universität
Konzeptuelle Modellierung
MatrNr
Name
Studenten
Professoren
hören
Name
lesen
VorlNr
Vorlesungen
PersNr
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
hören
Vorlesungen
MatrNr Name
26120 Fichte
25403 Jonas
...
...
MatrNr VorlNr
25403 5022
26120 5001
...
...
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