Organisatorisches und Einführung

Werbung
Datenbanksysteme 1
Organisatorisches und Einführung
14.4.2008
Felix Naumann
Datenbanken
2
Anwendung
Anwendung
Datenbankmanagementsystem
Datenbank
Felix Naumann | VL Datenbanksysteme II | SS 2008
Zoom heraus: MehrSchichtenarchitekturen
3
1 Schicht: PC
2 Schichten:
Client
2 Schichten:
Datei/DatenbankS
erver
DBS
Business
Logik
3 Schichten:
Application/Web
Server
3 Schichten:
Backend/Datenb kS
bank
Server
FS
Auftrags
AuftragsDBMS
Felix Naumann | VL Datenbanksysteme II | SS 2008
Produkt
nach
h
Katalog [Tomczyk03]
Zoom herein: ANSI/SPARC Architektur
eines DBMS
4
Felix Naumann | VL Datenbanksysteme II | SS 2008
Zoom in die interne Ebene: Die 5Schichten Architektur
5
Mengenorientierter Zugriff
Datenmodellebene
Satzorientierter Zugriff
Logischer
g
Zugriff
g
Interne Satzschnittstelle
Speicherstrukturen
Systempufferschnittstelle
Pufferverwaltung
Dateischnittstelle
Betriebssystem
Geräteschnittstelle
Felix Naumann | VL Datenbanksysteme II | SS 2008
Anfrageübersetzung,
Zugriffspfadwahl, Zugriffskontrolle,
Integritätskontrolle
Sortierung, Transaktionsverwaltung,
C
Cursorverwaltung,
lt
Data
D t Di
Dictionary
ti
Physical Record Manager, Index
Manager,
g , Sperrverwaltung,
p
g, Log
g/
Recovery
Seitenverwaltung,
Puffermanagement Caching
Puffermanagement,
Externspeicherverwaltung
Überblick
6
■ Vorstellung der Arbeitsgruppe
■ Organisatorisches
■ Implementierung
I
l
ti
von D
Datenbanken
t b k
■ Ausblick auf das Semester
Felix Naumann | VL Datenbanksysteme II | SS 2008
Arbeitsgruppe Informationssysteme
7
project fusem
project ViQTOR
Prof. Felix Naumann
Jens Bleiholder
Patricia Hobro
Data Fusion
DQ Assessment
Paul Führing
Information Integration
Information Quality
Peer Data
Management
Systems
Matching
Armin Roth
Service-Oriented
Se
ce O e ed Sys
Systems
e s
project System P
Karsten Draba
project HumMer
Data Cleaning
Duplicate Detection
Data Integration for
Life Science Data Sources
Melanie Weis & Sascha Szott
project XClean
project Aladin
Ontologies
Personal Information
Management
Alexander Albrecht
Mohammed AbuJarour
Felix Naumann | März 2008
Frank Kaufer
Jana Bauckmann
Data Profiling for
Schema Management
Lehrveranstaltungen in diesem
Semester
8
Vorlesungen
■ DBS II
■ Informationsintegration
I f
ti
i t
ti
Seminare
■ Bachelor: Beauty is our Business
■ Bachelor: www.ligageschichte.de
■ Master: Duplikaterkennung
■ Forschungsseminar
Felix Naumann | VL Datenbanksysteme II | SS 2008
Vorstellung – Hörer
9
■ Welches Semester?
□ 2tes, 4tes, 6tes
■ HPI oder
d IfI?
■ Erasmus o.ä.?
■ DBS I bei mir?
Felix Naumann | VL Datenbanksysteme II | SS 2008
Überblick
10
■ Vorstellung der Arbeitsgruppe
■ Organisatorisches
■ Implementierung
I
l
ti
von D
Datenbanken
t b k
■ Ausblick auf das Semester
Felix Naumann | VL Datenbanksysteme II | SS 2008
Termine
11
■ Vorlesung
□ Montags 9:15 - 10:45
◊ in HS 3
□ Donnerstags 9:15 - 10:45
◊ in HS 3
■ Erste Vorlesung
□ 14.4.2008
■ Letzte Vorlesung
□ 17.7.2008
17 7 2008
■ Feiertage
□ 1.5. Maifeiertag (Do)
□ 12.5. Pfingstmontag
■ Sondertermine
□ 17.4. (Do): IBM Tag
□ 21.4. und 24.4.: Sascha
■ Übungen
□ Ungefähr 1 SWS
□ Verteilt auf Doppelstunden
im Semester
□ Bitte immer www beachten
□ Zwei Übungsgruppen
◊ Montags 9:15 in HS 3
◊ Di
Dienstags
t
17:00
17 00 in
i HS
1
■ Klausur
Felix Naumann | VL Datenbanksysteme II | SS 2008
□ Eine Woche nach Semester
□ 1.5 vs. 2 vs. 4 vs. 8
Stunden
Feedback
12
■ Folien
■ Fragen bitte jederzeit!
□ Vor der VL im WWW
◊ ASAP
□ Datiert bei Updates
■ Anregungen
A
zur Verbesserung:
V b
□ Gebrauch der Folien
□ Infos im WWW
□ …
Felix Naumann | VL Datenbanksysteme II | SS 2008
□ In der Vorlesung
g
□ Sprechstunde
◊ Dienstags 15:00 – 16:00
◊ Raum
R
A
A-1.13
1 13
◊ Am liebsten mit
Anmeldung
□ Email: [email protected]
Literatur
13
Database Systems - The Complete Book
■ Hector Garcia-Molina, Jeffrey D.
Ullman, Jennifer Widom: Pearson
Education International, 2002.
Ebenfalls empfehlenswert
■ Datenbanksysteme
Alfons Kemper, André Eickler
ISBN: 3486273922
■ Datenbanken:
Implementierungstechniken
Gunter Saake, Andreas Heuer, KaiUwe Sattler
Und viele andere mehr…
Felix Naumann | VL Datenbanksysteme II | SS 2008
Übungen und Leistungserfassung
14
■ Übungen – Organisatorisches
□ Mehr von Sascha Szott bei erster Übung
□ Zweiergruppen
□ Vermutlich nur 5 Übungsblätter
□ Mind. 50% der Punkte auf jedem Blatt
◊ Kein Freischuss
□ Tutor
◊ Florian Reinhart
■ Übungen – Inhaltliches
□ „Theoretische“ Übungen
◊ Auf
A f Papier
P i
□ Praktische Übungen
p
◊ DB2 im Studentenpool
◊ Neuer DB2 Server!
Felix Naumann | VL Datenbanksysteme II | SS 2008
Überblick
15
■ Vorstellung der Arbeitsgruppe
■ Organisatorisches
■ Implementierung
I
l
ti
von D
Datenbanken
t b k
■ Ausblick auf das Semester
Felix Naumann | VL Datenbanksysteme II | SS 2008
Das Megatron 2002 DBMS
16
■ Naive Sicht
□ DBMS sollte recht einfach sein
■ Megatron
M
t
2002
□ Unter UNIX verfügbar
□ Relationales Datenmodell
□ SQL Anfragen
Felix Naumann | VL Datenbanksysteme II | SS 2008
Megatron - Implementierungsdetails
17
■ Zuerst: NDA unterzeichnen!
■ Relationen
R l ti
werden
d
iin ASCII D
Dateien
t i
gespeichert.
i h t
□ Relation
Studenten(Name, Matrikel, Studiengang)
□ Wird zu Datei
/usr/db/Studenten
■ Eine Zeile pro Tupel
■ Felder werden mit „#“ separiert
Smith # 123 # CS
Jones # 522 # EE
...
Felix Naumann | VL Datenbanksysteme II | SS 2008
Megatron - Implementierungsdetails
18
■ Schema wird in gesonderter ASCII Datei gespeichert
□ /usr/db/schema
■ Eine
Ei
Z
Zeile
il pro R
Relation
l ti
■ Zeile beginnt mit Relationenname
■ Gefolgt von Attributname/Datentyp Paaren
□ Getrennt durch „#“
R1 # A # INT # B # STR …
R2 # C # STR # A # INT …
...
Felix Naumann | VL Datenbanksysteme II | SS 2008
Eine Session mit Megatron
19
■ Maschine: dbhost
■ Megatron prompt: &
■ dbhost> MEGATRON3000
Welcome to MEGATRON 3000!
■ & ...
...
■ & quit
■ dbhost>
Felix Naumann | VL Datenbanksysteme II | SS 2008
Eine Session mit Megatron
20
■ SQL Anfragen werden mit # beendet
■ & SELECT * FROM Studenten #
Name
Matrikel Fach__
Smith
123
Informatik
Jones
522
Mathematik
■ Speicherung von Anfrageergebnissen in einer Datei
■ & SELECT * FROM Studenten WHERE Matrikel > 500 | HoheMtr
#
■ Erzeugt neue Datei /usr/db/HoheMtr mit einer Zeile
Felix Naumann | VL Datenbanksysteme II | SS 2008
Anfrageausführung in Megatron
21
■ & SELECT * FROM R WHERE <Bedingung>
1. Schema-Datei lesen um Attribute und Datentypen von R zu
bestimmen
2. Prüfe, ob Bedingung semantisch korrekt ist.
g jjedes Attribut als Zeilenkopf
p an
3. Zeige
4. Male eine Linie
5. Lese die Datei namens R.
Für jede Zeile
1. Prüfe Bedingung
2 Zeige Zeile als Tupel an
2.
an, falls Bedingung erfüllt ist
ist.
Felix Naumann | VL Datenbanksysteme II | SS 2008
Anfrageausführung in Megatron
22
■ & SELECT * FROM R WHERE <Bedingung> | T #
1. Schema-Datei lesen um Attribute und Datentypen von R zu
bestimmen
2. Prüfe, ob Bedingung semantisch korrekt ist.
3. Lesen der Datei namens R. Für jjede Zeile
1. Prüfe Bedingung
2. Schreibe Zeile in Datei /usr/db/T, falls Bedingung
erfüllt ist.
ist
4. Füge in Datei /usr/db/schema eine Zeile hinzu für Relation T
Felix Naumann | VL Datenbanksysteme II | SS 2008
Anfrageausführung in Megatron
23
■ & SELECT Büro FROM Studenten, Fachbereiche
WHERE Studenten.Name = „Smith“
AND Studenten.Fach = Fachbereich.Name #
1. Schema-Datei lesen um Attribute und Datentypen von
Studenten und Fachbereiche zu bestimmen.
2. Prüfe, ob Bedingungen semantisch korrekt sind.
3. Lesen von Datei /usr/db/Studenten. Für jede Zeile:
1 L
1.
Lesen von Datei
D t i /usr/db/Fachbereiche.
/
/db/F hb
i h Für
Fü jede
j d Zeile:
Z il
1. Erzeuge Join-Tupel
2. Prüfe Bedingungen
3. Zeige Tupel an, falls Bedingung erfüllt
Felix Naumann | VL Datenbanksysteme II | SS 2008
Probleme mit Megatron 2002
24
Felix Naumann | VL Datenbanksysteme II | SS 2008
Probleme mit Megatron 2002
25
■ Tupel-Layout auf der Festplatte
□ Falls sich ein Wert ändert muss gesamte Datei neu
geschrieben werden.
werden
◊ Alle Zeichen bewegen sich entsprechend in der Datei.
□ ASCII Speicherung ist teuer
□ Löschung ist ebenfalls teuer
■ Teure Suche
□ Es kann nicht schnell, z.B. basierend auf einem Schlüssel, ein
bestimmtes Tupel gefunden werden
□ Es wird immer gesamte Relation gelesen
gelesen, selbst bei strengen
Nebenbedingungen
Felix Naumann | VL Datenbanksysteme II | SS 2008
Probleme mit Megatron 2002
26
■ Anfrageausfühung ist brute force
□ Joinoperationen können wesentlich schneller implementiert
werden.
□ Selektionen sollten früher ausgeführt werden
■ Kein Puffermanagement
□ Hauptspeicher wird nicht genutzt
□ Sämtliche Daten werden stets von Festplatte gelesen
■ Keine Nebenläufigkeitskontrolle
□ Mehrere Nutzer könnten gleichzeitig Datei ändern
■ Keine Zuverlässigkeit
□ Daten können bei Systemabsturz verloren gehen
□ Operationen könnten nur teilweise ausgeführt werden
Felix Naumann | VL Datenbanksysteme II | SS 2008
Probleme mit Megatron 2002
27
■ Keine Sicherheit
□ Dateisystem ist unsicher
□ Granularität
G
l ität iistt grob
b
■ Wenig Metadatenfähigkeiten
□ Statistiken,
Statistiken Nebenbedingungen
■ Kein API
□ Wie können anderen Anwendungen auf die Daten zugreifen?
■ Keine Interaktion mit anderen DBMS
■ Keine GUI
Felix Naumann | VL Datenbanksysteme II | SS 2008
Überblick
28
■ Vorstellung der Arbeitsgruppe
■ Organisatorisches
■ Implementierung
I
l
ti
von D
Datenbanken
t b k
■ Ausblick auf das Semester
Felix Naumann | VL Datenbanksysteme II | SS 2008
Kurzüberblick
29
■ Physische Speicherstrukturen (2)
■ Physische Repräsentation von Daten (1)
■ Indexstrukturen (5)
■ Anfrageausführung (2)
■ Optimierung (4)
■ Benchmarking (1)
■ Recovery (2)
■ Transaktionsmanagement (3)
Effi i t U
it großen
ß
D t
Effizienter
Umgang mit
Datenmengen
Teil 1: Umgang mit großen Datenmengen
Teil 2: Effiziente Manipulation der Daten
Felix Naumann | VL Datenbanksysteme II | SS 2008
Physische Speicherstrukturen
30
■ Speicherhierarchie
□ Cache, RAM, Sekundärspeicher, Tertiärspeicher
■ Festplatten
□ Mechanik, Controller, Charakteristiken, Read/Write
■ Algorithmen für Sekundärspeicher
□ Bsp: Sortierung mit „Two-Phase, Multiway Merge-Sort“
■ Zugriffsbeschleunigung
□ Clustering,
Clustering Multiple Disks
Disks, Spiegelung,
Spiegelung Prefetching
■ Diskfehler
□ Checksums,, Stable Storage
g
■ Disk Recovery
□ RAID: Spiegelung, Parity Blocks, …
Felix Naumann | VL Datenbanksysteme II | SS 2008
Physische Repräsentation von Daten
31
■ Datenelemente und Felder
□ Relationale Datenbankelemente, Datentypen, Datensätze
■ Adressierung
Ad
i
□ Client/Server, Physische vs. Logische Adresse
■ Datentypen variabler Länge
□ Variable Felder, Variable Datensätze, Nullwerte, BLOBs
■ Schreiboperationen
□ Insert, Update, Delete
Felix Naumann | VL Datenbanksysteme II | SS 2008
Indexstrukturen
32
■ Indizes auf sequentiellen Dateien
□ Sortiert, dicht-besetzter und dünn-besetzter Index,
Mehrstufiger Index,
Index Updates
■ Sekundärindizes
g , Indirektion,, Invertierte
□ Nicht sortiert,, Aufbau,, Anwendungen,
Indizes (IR)
■ B-Bäume
□ Aufbau, Anwendungen, Bereichsanfragen, Insert, Delete
■ Hashverfahren (für Sekundärspeicher)
□ Insert,
Insert Delete,
Delete erweiterbares Hashen,
Hashen Lineares hashen
■ Eventuell: Multidimensionale Indizes
□ GIS, DWH
■ Eventuell: Bitmap Indizes
Felix Naumann | VL Datenbanksysteme II | SS 2008
Anfrageausführung
33
■ Physische Operatoren
□ Scan, Sortierung, I/O Kosten, Iteratoren
■ One-Pass Operationen
□ Unär: Selektion, Projektion, Duplikateliminierung, Gruppierung
□ Binär: Mengenoperationen (∪∩—×), Join
□ Nested-Loop
p Join
■ Two-Pass Operationen (mittels Sortierung)
□ Duplikateliminierung, Gruppierung, Mengenoperationen (∪∩—×), MergeSort Join
■ Two-Pass Operationen (mittels Hashing)
□ …, Hash-Join, …
■ Index
Index-basierte
basierte Algorithmen
□ Clustering Indizes, Selektion, Joins
■ Puffermanagement
□ Architektur,
Architektur Strategien (LRU,
(LRU FIFO,
FIFO …))
■ Parallele Algorithmen
Felix Naumann | VL Datenbanksysteme II | SS 2008
Optimierung
34
■ Teils schon in DBS I:
□ Parsing, Algebraische Transformationsregeln
■ Kostenmodell
K t
d ll
□ Projektion, Selektion, Verteilungen, Join
■ Kostenbasierte Optimierung
□ Histogramme, Statistiken, Heuristiken, Enumerierung aller
Pläne
■ Joinreihenfolge
□ Links vs. rechts, Dynamische Programmierung, greedy
Algorithmus
■ Physische Anfragepläne
□ Selektionsmethode, Join
Join-Methode,
Methode, Pipelining
Felix Naumann | VL Datenbanksysteme II | SS 2008
Benchmarking
35
■ Leistungsbewertung
□ Komponenten eines Benchmarks, Ziele
■ TPC Benchmarks
B
h
k
□ TPC A, B
□ TPC C: OLTP
□ TPC D/H: Decision Support DWH
□ TPC W: e-Commerce
Felix Naumann | VL Datenbanksysteme II | SS 2008
Recovery
36
■ Fehlerarten
□ Medienfehler, Systemfehler, Transaktionen en detail
■ Undo
U d Logging
L
i
□ Log-Datensätze, Log-Regeln, Wiederherstellung mit Undo,
Checkpoints
p
■ Redo Logging
□ Log-Regeln, Wiederherstellung mit Redo, Checkpoints
■ Undo/Redo Logging
□ Best of both worlds, Regeln, Wiederherstellung, Checkpoints
■ Archivierung
h
□ Archive, Nebenläufige Archivierung, Wiederherstellung mit
Archiven und Logs
Felix Naumann | VL Datenbanksysteme II | SS 2008
Transaktionsmanagement
37
■ Fortsetzung aus DBS I:
□ Transaktionen, Schedules, 2PL, Sperren
■ Mehrere Sperr
Sperr-Modi
Modi
□ Shared und exclusive Sperren, Aufwertung von Sperren, UpdateSperren, Inkrement-Sperren
■ Scheduler
□ Architektur, Sperrtabelle
■ Hierarchisches Sperren
p
□ Sperrgranulate (Tabellen, Blöcke, Tupel), warnende Sperren
■ Baumprotokolle
□ Motivation (z.B. B-Bäume), Regeln, Beweis
■ Nichtsperrende Verfahren
□ Zeitmarken (Timestamps), Validierung, Optimistische Verfahren
Felix Naumann | VL Datenbanksysteme II | SS 2008
Systemarchitektur nach Garcia-Molina
38
Strategy Selector
User Transaction
Concurrency Control
Lock Table
Query Parser
User
Transaction Manager
Buffer Manager
File Manager
Statistical Data
Recovery Manager
M M Buffer
M.M.
Indexes
User Data
Felix Naumann | VL Datenbanksysteme II | SS 2008
y
Data
System
Log
Systemarchitektur nach Leser
39
„Naive“
N i “
Benutzer
Fortgeschrittene
F
t
h itt
Benutzer
Interaktive
Anfrage
Anwendung
AnwendungsA
d
Programmierer
Verwaltungswerkzeug
Präcompiler
DML Compiler
DML-Compiler
DDL Compiler
DDL-Compiler
Anfragebearbeitung
Mehrbenutzersynchr.
Fehlerbehandlung
DatenbankD
t b k
administratoren
DBMS
Datenbankmanager
Schemaverwaltung
Dateiverwaltung
Logdateien
Indexe
Datenbasis
Felix Naumann | VL Datenbanksysteme II | SS 2008
Datenwörterbuch
Feedback
40
Fragen bitte jederzeit!
■ In der VL
■ Sprechstunde:
S
h t d Dienstags
Di
t
15-16
15 16 Uhr
Uh
■ Email: [email protected]
■ Telefon: (0331) 5509 280
Anregungen zur Verbesserung:
■ Z.B. zu
□ Gebrauch der Folien
□ Infos im WWW
Felix Naumann | VL Datenbanksysteme II | SS 2008
Herunterladen