• Keine Ergebnisse gefunden

Vorlesung Datenbanksysteme WS 2.0

N/A
N/A
Protected

Academic year: 2022

Aktie "Vorlesung Datenbanksysteme WS 2.0"

Copied!
142
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung Datenbanksysteme WS 2.0

Christoph Koch

dbvo@dbai.tuwien.ac.at (Subject: „DBVO: ...“

(2)

Elmasri / Navathe

Ramakrishnan / Gehrke

(3)

Architektur eines DBMS

DML-Compiler DDL-Compiler

Abfrageoptimierung

Datenbankmanager

Schemaverwaltung

Mehrbenutzersynchronisation Fehlerbehandlung

Interactive Abfrage API/Präcompiler Verwaltungswerkzeug

(4)

Themen

Physische Datenorganisation

Abfrageoptimierung

Transaktionsverwaltung

Fehlerbehandlung

Mehrbenutzersynchronisation

Sicherheit

Verteilte Datenbanken

(5)

Buch zur Vorlesung

Datenbanksysteme – Eine Einführung

Alfons Kemper / André Eickler Oldenbourg Verlag

5. Auflage, 2004 Stoff der Vorlesung:

(6)

Vorlesung Datenbanksysteme vom 11.10.2004

Physische Datenorganisation

Speicherhierarchie

Hintergrundspeicher / RAID

B-Bäume

Hashing

R-Bäume

(7)

Überblick: Speicherhierarchie

1-10ns Register 10-100ns

Cache 100-1000ns Hauptspeicher

10 ms

Plattenspeicher

Zugriffslücke 105

(8)

Magnetplattenspeicher

(9)
(10)

Lesen von Daten von der Platte

Seek Time: Arm positionieren

5ms

Latenzzeit: ½ Plattenumdrehung (im Durchschnitt)

10000 Umdrehungen / Minute

 Ca 3ms

Transfer von der Platte zum Hauptspeicher

15 MB/s

(11)

Random versus Chained IO

1000 Blöcke à 4KB sind zu lesen

Random I/O

Jedesmal Arm positionieren

Jedesmal Latenzzeit

 1000 * (5 ms + 3 ms) + Transferzeit von 4 MB

 > 8000 ms + 300ms  8s

Chained IO

Einmal positionieren, dann „von der Platte kratzen“

 5 ms + 3ms + Transferzeit von 4 MB

 8ms + 300 ms  1/3 s

Also ist chained IO ein bis zwei Größenordnungen schneller als random IO

(12)

Disk Arrays  RAID-Systeme

(13)
(14)

RAID 0: Striping

Lastbalancierung wenn alle Blöcke mit gleicher Häufigkeit gelesen/geschrieben werden

Doppelte Bandbreite beim sequentiellen Lesen der Datei A

C

B D

A B C D

Datei

(15)

RAID 1: Spiegelung (mirroring)

Datensicherheit: durch Redundanz aller Daten (Engl. mirror)

Doppelter Speicherbedarf

Lastbalancierung beim Lesen: z.B. kann Block A von der linken oder der rechten Platte gelesen werden

Aber beim Schreiben müssen beide Kopien geschrieben werden

Kann aber parallel geschehen A

C

B D

A C

B D

(16)

Kombiniert RAID 0 und RAID 1

Immer noch doppelter Speicherbedarf

Zusätzlich zu RAID 1 erzielt man hierbei auch eine höhere Bandbreite beim Lesen der gesamten Datei ABCD....

Wird manchmal auch als RAID 10 bezeichnet

RAID 0+1: Striping und Spiegelung

A C

A C

B D

B D

(17)

RAID 2: Striping auf Bit-Ebene

Anstatt ganzer Blöcke, wie bei RAID 0 und RAID 0+1, wird das Striping auf Bit- (oder Byte-) Ebene durchgeführt

Es werden zusätzlich auf einer Platte noch Fehlererkennungs- und Korrekturcodes gespeichert

1010 1101 1011 0110 0011 1100.... Datei

111001... 010101... 101110... 011010...

(18)

RAID 3: Striping auf Bit-Ebene,

zusätzliche Platte für Paritätsinfo

Das Striping wird auf Bit- (oder Byte-) Ebene durchgeführt

Es wird auf einer Platte noch die Parität der anderen Platten gespeichert. Parität = bit-weise xor 

1010 1101 1011 0110 0011 1100.... Datei

111001... 010101... 101110... 011010... 011000...

Parität

(19)

RAID 3: Plattenausfall

1010 1101 1011 0110 0011 1100.... Datei

111001... 010101... 101110... 011010... 011000...

Parität

011010...

Reparatur

(20)

RAID 4: Striping von Blöcken

Bessere Lastbalancierung als bei RAID 3

Flaschenhals bildet die Paritätsplatte

Bei jedem Schreiben muss darauf zugegriffen werden

Bei Modifikation von Block A zu A‘ wird die Parität PA-D wie folgt neu berechnet:

P‘ := P  A  A‘

A E B F C G D H PA-D PE-H

(21)

RAID 4: Striping von Blöcken

Flaschenhals bildet die Paritätsplatte

Bei jedem Schreiben muss darauf zugegriffen werden

Bei Modifikation von Block A zu A‘ wird die Parität PA-D wie folgt neu berechnet:

P‘ := P  A  A‘

1010 1101 1011 0110 0011 1100.... Datei

1010... 1101... 1011... 0110... 1010...

Paritäts block

(22)

RAID 5: Striping von Blöcken, Verteilung der Paritätsblöcke

Bessere Lastbalancierung als bei RAID 4

die Paritätsplatte bildet jetzt keinen Flaschenhals mehr

Wird in der Praxis häufig eingesetzt

A E B F C G D PE-H PA-D H

I M J PM-P PI-L N K O L P

(23)

Parallelität bei Lese/Schreib-Aufträgen

(24)

verdrängen

Hauptspeicher einlagern

Platte ~ persistente DB

Systempuffer-Verwaltung

(25)

Ein- und Auslagern von Seiten

Systempuffer ist in Seitenrahmen gleicher Größe aufgeteilt

Ein Rahmen kann eine Seite aufnehmen

„Überzählige“ Seiten werden auf die Platte ausgelagert

Platte(swap device)

Hauptspeicher

0 4K 8K 12K

28K 44K 60K 40K

48K

24K 16K 20K

32K 36K

56K 52K

P480 P123

(26)

B-Bäume

Balancierte Mehrwege-Suchbäume Für den Hintergrundspeicher

(27)

SuchschlüsselS..

Weitere DatenD..

(28)
(29)
(30)

Einfügen eines neuen Objekts (Datensatz) in einen B-Baum

(31)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

(32)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

(33)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

?

(34)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

?

(35)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

(36)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

(37)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

1

(38)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

1

(39)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

(40)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

(41)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

2

(42)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

2

(43)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

2

(44)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

4

(45)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

4

(46)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

4

(47)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

10?

4

4

(48)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 4

4

(49)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10?

(50)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 11

(51)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10?

(52)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 21

(53)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 21

(54)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 12

(55)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 12

(56)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 12

(57)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10? 12

(58)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 12

(59)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 12

(60)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 12

(61)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 14

(62)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 14

(63)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 15

(64)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 20

(65)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 20

20

(66)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13? 20

20

(67)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13 19? 20

20

(68)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13 19? 20

20 21

(69)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13 19? 5

20 21

(70)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13 19? 5

20 21

(71)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13 19? 5

20 21

(72)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13 19? 6

20 21

(73)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

3 10 13 19? 6

20 21

(74)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 8

(75)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 8

(76)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 8

(77)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 8

(78)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 8

(79)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 6

(80)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 6

(81)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 6

(82)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 6

(83)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

3 10 13 19?

20 21 6

3 6

(84)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 10

3 6

(85)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 3 6

10

(86)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 3 6

10

10

(87)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 3 6

10 B-Baum mit

Minimaler Speicherplatz-

ausnutzung

(88)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 3 6

10 B-Baum mit

Minimaler Speicherplatz-

ausnutzung

(89)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 3 6

10

23

(90)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 23 3 6

10

(91)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 23 3 6

10

14

(92)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 23 3 6

10

14

Unterlauf

(93)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 19?

20 21 23 3 6

10

Unterlauf

(94)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3 6

10

(95)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3 6

10

5

(96)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3 6

10

5

(97)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3 6

10

(98)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3 6

10

(99)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3

Unterlauf 10

(100)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3

merge 10

(101)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

13 20?

21 23 3

merge 10

(102)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

?

21 23 3 10 13 20

(103)

Sukzessiver Aufbau eines B-Baums vom Grad k=2

1 2

?

21 23 3 10 13 20

Schrumpfung, Freie Knoten

(104)

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher

4

(105)

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher

3

0

8 KB-Blöcke

0*8KB 1*8KB 2*8KB 3*8KB

1 1 0 1 0 0 1 1 0

Freispeicher- Verwaltung

4*8KB

(106)

Zusammenspiel:

Hintergrundspeicher -- Hauptspeicher

Hintergrundspeicher

4

4

Hauptspeicher- Puffer

(107)

B

+

-Baum

Referenz- schlüssel Such-

schlüssel

(108)
(109)
(110)

Mehrere Indexe auf denselben Objekten

B-Baum Mit

(PersNr, Daten) Einträgen

B-Baum Mit

(Alter, ???) Einträgen

(111)

Mehrere Indexe auf denselben Objekten

B-Baum Mit

(PersNr, Daten) Einträgen

B-Baum Mit

(Alter, ???) Einträgen Wer ist

20 ?

(112)

Mehrere Indexe auf denselben Objekten

B-Baum Mit

(PersNr, Daten) Einträgen

B-Baum Mit

(Alter, ???) Einträgen Wer ist

20 ?

(113)

Eine andere Möglichkeit: Referenzierung über Speicheradressen

PersNr Alter

007,... 20,...

(114)
(115)

Verschiebung von einer Seite auf eine andere

Forward

(116)

Verschiebung von einer Seite auf eine andere

Bei der nächsten Verschiebung wird

(117)

„Statische“ Hashtabellen

À priori Allokation des Speichers

Nachträgliche Vergrößerung der Hashtabelle ist „teuer“

Hashfunktion h(...) = ... mod N

Rehashing der Einträge

h(...) = ... mod M

In Datenbankanwendungen viele GB

Erweiterbares Hashing

Zusätzliche Indirektion über ein Directory

Ein zusätzlicher Zugriff auf ein Directory, das den Zeiger (Verweis, BlockNr) des Hash-Bucket enthält

Dynamisches Wachsen (und Schrumpfen) ist möglich

(118)

Statisches Hashing

(119)

0 1

0 1

0 1

binärer Trie, Entschei-

dungs- baum Directory

(120)

Hashfunktion für erweiterbares Hashing

h: Schlüsselmenge {0,1}*

Der Bitstring muss lang genug sein, um alle Objekte auf ihre Buckets abbilden zu können

Anfangs wird nur ein (kurzer) Präfix des Hashwertes (Bitstrings) benötigt

Wenn die Hashtabelle wächst wird aber sukzessive ein längerer Präfix benötigt

Beispiel-Hashfunktion: gespiegelte binäre PersNr

h(004) = 001000000... (4=0..0100)

h(006) = 011000000... (6=0..0110)

h(007) = 111000000... (7 =0..0111)

h(013) = 101100000... (13 =0..01101)

(121)
(122)
(123)

Wertbasierter Zugriff auf der Grundlage mehrerer Attribute, dies einzeln oder in beliebigen Kombinationen.

Typische Anforderungen aus CAD, VLSI-Entwurf, Kartographie,...

Anfragen decken den Bereich ab zwischen

mehrdimensionalem Punktzugriff (EMQ) und

mehrdimensionalen Bereichsanfragen (RQ)

Lösung mit eindimensionalen Indexen

erfordert konjunktive Zerlegung der Anfrage in Einattributanfragen und Schnittmengenbildung

bedingt hohe Speicherredundanz

Mehrdimensionale Datenstrukturen

(124)

Wertebereiche D0,..., Dk-1:

alle Di sind endlich, linear geordnet und besitzen kleinstes (-i) und größtes (i) Element

Datenraum D = D0... Dk-1

k-dimensionaler Schlüssel entspricht Punkt im Datenraum p D

Grundlagen mehrdimensionaler Datenstrukturen

(125)

1. Exact Match Query spezifiziert Suchwert für jede Dimension Di

2. Partial Match Query

spezifiziert Suchwert für einen Teil der Dimensionen 3. Range Query

spezifiziert ein Suchintervall [ugi, ogi ] für alle Dimensionen 4. Partial Range Query

spezifiziert ein Suchintervall für einen Teil der Dimensionen

Grundlagen mehrdimensionaler Datenstrukturen

(126)

Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden:

1. nur atomare Gebiete (beschreibbar durch ein Rechteck)

2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum)

3. disjunkt (die Gebiete überlappen nicht)

Charakterisierung mehrdimensionaler Datenstrukturen

R-Baum: atomar

(127)

R-Baum: Urvater der baum-strukturierten mehrdimensionalen Zugriffsstrukturen

[60,120]

[18,60]

Bond 120K

60

Mini 80K 20

Mickey 70K

43

Duck 60K

18

Alter

20 40 60

Mickey

Duck Mini

Bond

(128)

Gute versus schlechte Partitionierung

Alter

Mickey

Duck Mini

Bond

Speedy

Alter

Mickey

Duck Mini

Bond

Speedy gute Partitionierung schlechte Partitionierung

(129)

Nächste Phase in der

Entstehungsgeschichte des R-Baums

Alter

Mickey

Duck Mini

Bond

Speedy Bert

(noch nicht eingefügt)

[60,80]

[18,43]

[100,120]

[40,60]

Mini 80K 20

Mickey 70K

43

Duck 60K

18

Bond 120K

60

Speedy 100K

40

(130)

Nächste Phase

[60,80][18,20] [110,120][25,60] [45,70][41,45] [95,100][40,65]

Mini 80K 20

Duck 60K

18

Bond 120K

60

Urmel 112K

35

Mickey 70K

43

Bert 55K 45

Ernie 45K

41 Bill 110K

25

(131)

Datenraum

Alter

Mickey

Duck Mini

Bond

Speedy Bert

Ernie

Bill Lucie

Urmel

(132)

Wachsen des Baums:

nach oben – wie im B-Baum

[60,80]

[18,20]

[45,55]

[41,45]

[60,70]

[41,50]

[45,70]

[41,45]

[95,100]

[40,65]

[45,80]

[18,50]

[95,120]

[25,65]

60K 41

65K 50 70K

43

(133)

Datenraum

Alter

Mickey

Duck Mini

Speedy Bert

Ernie

Bill Lucie

Urmel Jan

Sepp

(134)

Datenraum und Speicherstruktur – Überblick

Alter

Mickey

Duck Mini

Bond

Speedy Bert

Ernie

Bill Lucie

Urmel Jan

Sepp

[60,80]

[18,20]

[45,55]

[41,45]

[60,70]

[41,50]

[110,120]

[25,60]

[95,100]

[40,65]

[45,80]

[18,50]

[95,120]

[25,65]

Jan 60K 41

Sepp 65K

50 Mickey

70K 43

(135)

[60,80]

[18,20]

[45,55]

[41,45]

[60,70]

[41,50]

[110,120]

[25,60]

[95,100]

[40,65]

[45,80]

[18,50]

[95,120]

[25,65]

Speedy 100K

40

Lucie 95K

65 Mini

80K 20

Duck 60K

18

Bond 120K 60

Urmel 112K

35

Bert 55K 45

Ernie 45K

41

Bill 110K

25

(136)

Bereichsanfragen auf dem R-Baum

Alter

Gehalt Mickey

Duck Mini

Speedy Bert

Ernie

Bill Lucie

Urmel Jan

Sepp

[60,80]

[18,20]

[45,55]

[41,45]

[60,70]

[41,50]

[110,120]

[25,60]

[95,100]

[40,65]

[45,80]

[18,50]

[95,120]

[25,65]

Jan 60K

41

Sepp 65K

50

Mickey ...

70K 43

Anfragefenster

Bond

(137)

[60,80]

[18,20]

[45,55]

[41,45]

[60,70]

[41,50]

[110,120]

[25,60]

[95,100]

[40,65]

[45,80]

[18,50]

[95,120]

[25,65]

Speedy 100K

40

Lucie 95K

65 Mini

80K 20

Duck 60K

18

Bond 120K 60

Urmel 112K

35

Bert 55K 45

Ernie 45K

41

Bill 110K

25

(138)

Objektballung / Clustering logisch verwandter Daten

(139)
(140)

Clustering von Professoren mit ihren Vorlesungen

(141)

Unterstützung eines

Anwendungsverhaltens

Select Name

From Professoren

Where PersNr = 2136

Select Name

From Professoren

Where Gehalt >= 90000 and Gehalt <= 100000

(142)

Indexe in SQL

Create index SemsterInd on Studenten

(Semester)

drop index SemsterInd

Referenzen

ÄHNLICHE DOKUMENTE

1) Einfügen in Rot-Schwarz Baum (zeichnen) Geben Sie Rot-Schwarz-Bäume an (mit allen. Zwischenschritten), die beim Einfügen der Buchstaben

Fast alle befragten Unternehmen sind der Auffassung, daß das Commitment der Geschäftsführung sowie die Einbindung der Mitarbeiter mit Abstand zu den wich- tigsten

Als wesentliches Ergebnis zeigt die Analyse, daß etwa ein Viertel aller befragten Unter- nehmen über eine abnehmende Bereitschaft der Banken zur Kreditvergabe und über eine

• Dieser optimistischen Erwartungshaltung steht die Tatsache gegenüber, daß 20% der Unternehmen keine Tests zur Sicherstellung der „Jahr 2000 Festigkeit“ durchgeführt haben,

Denn hohe Subventionen auf fossile Ener- gien bedeutet in der Regel billige Endenergie, so dass es erneuerbare Energien schwer haben, sich am Markt durchzusetzen.. Außerdem gilt

Im Folgenden werden die durchgeführten Analysen und Ergebnisse vorgestellt. Hierbei sollen vor allem die zwei Kernfragen beantworten werden ob 1) eine semantische Zuord- nung

Wenn etwas über die Pipeline kommt, muss es nicht von der Platte gelesen werden?.  Überlegen Sie sich, wie die Formeln

26 Es wird für die EU nicht ohne Folgen bleiben können, wenn die Erreichbarkeit des 2-Grad-Ziels gegen Mitte der laufenden Dekade massiv in Frage gestellt werden und