34
Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung • Bereitstellen von Speicherplatz bei insert und update • Logische Dateneinheiten • Auskunft über Speicherplatz • Indizes • Bäume • Hash-Funktionen

Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Embed Size (px)

Citation preview

Page 1: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 1

WorzykFH Anhalt

Speicherverwaltung

• Bereitstellen von Speicherplatz bei insert und update

• Logische Dateneinheiten• Auskunft über Speicherplatz• Indizes• Bäume• Hash-Funktionen

Page 2: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 2

WorzykFH Anhalt

Speicherverwaltung

Angebots#

Kunden#

Erstelldatum

Bearbeiter Angebot_bis_datum

Angebotstext

ta_angebot

CREATE TABLE ta_angebot (angebots# CHAR(7), kunden# NUMBER(4), erstelldatum DATE, bearbeiter CHAR(5), angebot_bis_datum DATE, angebotstext char(120));

Page 3: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 3

WorzykFH Anhalt

Was passiert im Speicher?

insert into ta_angebot (Angebots#, Kunden#, Erstelldatum, Bearbeiter)

values ('W040/94', 0002, sysdate, 'RF');

update ta_angebot set Angebot_bis_Datum = to_date(940530,'YYMMDD'), Angebotstext = 'Dieses Angebot ist kein Aprilscherz';

Page 4: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 4

WorzykFH Anhalt

Logische Dateneinheiten

• Datenblock, in unserem Fall 4 Kbytes groß, entspricht einer Page im Hauptspeicher

• Extent

• Segment

• Tablespace

Page 5: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 5

WorzykFH Anhalt

DatenblockHeader

Tabellenverzeichnis

Zeilenverzeichnis

FreierSpeicherplatz19940530| Dieses Angebot ist kein Aprilscherz

ZeilendatenW039/94|0001|19940322|MWW040/94|0002|19940401|RF

Page 6: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 6

WorzykFH Anhalt

Extent• besteht aus mehreren

zusammenhängenden Datenblöcken. • ist die Einheit, in der neuer

Speicherplatz zugewiesen wird. • wird erst wieder freigegeben, wenn

das dazugehörende Schema mit DROP gelöscht wird.

• Beim Anlegen wird der vorhandenen freien Speicherplatz optimal ausgenutzt.

Page 7: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 7

WorzykFH Anhalt

EXTENT

Extent

Header

Tabellenverzeichnis

Zeilenverzeichnis

FreierSpeicherplatz

Zeilendaten

Header

Tabellenverzeichnis

Zeilenverzeichnis

FreierSpeicherplatz19940530| Dieses Angebot ist kein

ZeilendatenW039/94|0001|19940322|MWW040/94|0002|19940401|RF

Page 8: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 8

WorzykFH Anhalt

Segment

Ein Segment ist die Zusammenfassung aller Extents einer logischen Speicherstruktur.

Page 9: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 9

WorzykFH Anhalt

Segment

Header

Tabellenverzeichnis

Zeilenverzeichnis

Freier Speicherplatz

Zeilendaten

Header

Tabellenverzeichnis

Zeilenverzeichnis

Freier Speicherplatz

Zeilendaten

Extent Extent Extent

Segment für ta_angebot

Page 10: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 10

WorzykFH Anhalt

Segmentarten

• Datensegmente

• Indexsegmente

• Rollback-Segmente

• temporäre Segmente

Page 11: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 11

WorzykFH Anhalt

temporäre Segmente

• Bei der Bearbeitung können Zwischenergebnisse anfallen, die in temporären Segmenten gespeichert werden. Beispiele:

• CREATE INDEX• SELECT ... ORDER BY• SELECT ... DISTINCT• SELECT ... GROUP BY• Joins• Unterabfragen

Page 12: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 12

WorzykFH Anhalt

Tablespace• steuert die Belegung von Plattenspeicher• ordnet Benutzern bestimmte

Speicherplatzquoten zu• steuert die Verfügbarkeit von Daten,

indem bestimmte Tablespaces OFFLINE gesetzt werden.

• ermöglicht, Teilsicherungen und -wiederherstellungen durchzuführen.

• verteilt Daten und Indizes unter Performance-Gesichtspunkten

Page 13: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 13

WorzykFH Anhalt

Tablespace

Header

Tabellenverzeichnis

Zeilenverzeichnis

FreierSpeicherplatz

Zeilendaten

Header

Tabellenverzeichnis

Zeilenverzeichnis

FreierSpeicherplatz

Zeilendaten

Extent Extent Extent

Segment für ta_probe

Index SegmentRollbackSegment

Table space

Page 14: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 14

WorzykFH Anhalt

Abfrage nach Tablespaces

select substr(file_name,1,45) "file",

bytes,

substr(tablespace_name,1,15) "tablespace"

from sys.dba_data_files;

Page 15: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 15

WorzykFH Anhalt

vorhandene Tablespaces

file BYTES tablespace

--------------------------------------------- --------- --------------

/applications/oracle/oradata/prod/system01.db 183500800 SYSTEM

/applications/oracle/oradata/prod/oemrep01.db 5242880 OEM_REPOSITORY

/applications/oracle/oradata/prod/rbs01.dbf 31750144 RBS

/applications/oracle/oradata/prod/temp01.dbf 10485760 TEMP

/applications/oracle/oradata/prod/users01.dbf 10485760 USERS

/applications/oracle/oradata/prod/indx01.dbf 10485760 INDX

/applications/oracle/oradata/prod/reposi01.db 419430400 TS_REPOSITORY

/applications/oracle/oradata/prod/drsys01.dbf 83886080 DRSYS

/applications/oracle/oradata/prod/rs_temp.dbf 62914560 TS_TEMP

/applications/oracle/oradata/prod/system02.db 41943040 SYSTEM

/applications/oracle/oradata/prod/lehre01.dbf 41943040 TS_LEHRE

Page 16: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 16

WorzykFH Anhalt

Indizes

• Zur Unterstützung von Suchvorgängen

• nach einem Auswahlkriterium sortiert und enthalten die Adresse des entsprechenden Datensatzes

• werden als B*-Bäume abgelegt

Page 17: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 17

WorzykFH Anhalt

Bäume Definition

Ein Baum ist eine Menge von Punkten (Knoten) und gerichteten Verbindungen (Kanten), die eine Vorgänger-Nachfolger Relation definieren mit:

genau einem Knoten, der keinen Vorgänger und beliebig viele Nachfolger hat

beliebig vielen Knoten, die genau je genau einen Vorgänger und beliebig viele Nachfolger haben

Page 18: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 18

WorzykFH Anhalt

Bäume Definition

Wurzel: erstes Element des Baumes

Sohn: Nachfolger eines Knoten

Vater: Vorgänger eines Knoten

innerer Knoten: hat sowohl Vorgänger als

auch Nachfolger

Blatt oder Blattknoten: hat keine

Nachfolger

Page 19: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 19

WorzykFH Anhalt

Bäume Definition

Geordneter Baum: Die Söhne eines jeden Knotens sind angeordnet

Ordnung: Maximale Anzahl der Söhne eines Knotens

Binärer Baum: geordneter Baum mit der Ordnung 2

Page 20: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 20

WorzykFH Anhalt

Bäume Definition

Pfad: Folge von Knoten, die der Vater-Sohn Beziehung genügen

Länge eines Pfades: Anzahl der Kanten entlang eines Pfades

Höhe: Maximale Pfadlänge zwischen Wurzel und Blättern

Tiefe: Pfadlänge eines Knotens zur WurzelNiveau: Alle Knoten mit gleicher Tiefe

Page 21: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 21

WorzykFH Anhalt

Bäume Definition

WurzelInnerer Knoten

Nachfolger

Vorgänger

Pfad der Länge 3

Blätter

Ordnung > 2B-Baum

Ordnung = 2Binär-Baum

Höhe desBaumes

Page 22: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 22

WorzykFH Anhalt

Binäre Bäume Beispiel

106

62 115

12

9

6

46

58

33

88

127

47

71

73

102

94

131

45

24

Nullzeiger

Page 23: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 23

WorzykFH Anhalt

Bäume suchen

Algorithmus:gibt es noch einen Teilbaum zu durchsuchen

nein -> nicht gefunden

ist der Schlüssel kleiner als die Wurzel (des Teilbaumes)ja -> linken Teilbaum durchsuchen

ist der Schlüssel größer als die Wurzel (des Teilbaumes)ja -> rechten Teilbaum durchsuchen

gefunden

Page 24: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 24

WorzykFH Anhalt

Bäume einfügen

Algorithmus:Nullzeiger (= Noch keine Wurzel vorhanden)

ja -> Schlüssel einfügen, linker u. rechter Sohn = Nullzeiger

ist der Schlüssel kleiner als die Wurzel (des Teilbaumes)ja -> im linken Teilbaum einfügen

ist der Schlüssel größer als die Wurzel (des Teilbaumes)ja -> im rechten Teilbaum einfügen

Schlüssel schon vorhanden

Page 25: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 25

WorzykFH Anhalt

Binäre Bäume entfernen

Algorithmus

Kein Sohn vorhanden -> entfernen

einen Knoten als Sohn -> den zu

entfernenden Knoten durch den Sohn

ersetzen

zwei Teilbäume als Söhne -> durch das

Minimum des rechten Teilbaumes ersetzen

Page 26: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 26

WorzykFH Anhalt

Binäre Bäume Beispiel

106

62 115

9

6

46

58

33

88

127

47

71

73

102

94

131

45

24

Nullzeiger

72

12

Page 27: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 27

WorzykFH Anhalt

Binäre Bäume Anwendungsbeispiel

Syntax:=

x /

+

-

b

a

2

a

-

2

0.5

*

*

b

4

c*

x:=(-b+(-b2-4*a*c)0.5)/(2*a)

Page 28: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 28

WorzykFH Anhalt

Binäre Bäume Anwendungsbeispiel

Index

19231

19126

19237

19214

18155

19438

19348

1 2 3 4 5 6 7 8 9Codd Dijkstra Floyd Lehmann Lovelace Turing Weizenbaum Wirth Zuse1923 1930 1943 1921 1815 1912 1923 1934 1910

19302

19109

Page 29: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 29

WorzykFH Anhalt

Binäre Bäume Anwendungsbeispiel

Spielbaum

A.K. Dewdney: Der Turing Omnibus

Page 30: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 30

WorzykFH Anhalt

B-Bäume

Ein B-Baum mit N-1 Schlüsseln hat N Blätter

Höhe

I S1 I S2 . . . Sn I

Höhe h:

Höhe 1:

I S1 I S2 . . . Sn I

I S1 I S2 . . . Sn I I S1 I S2 . . . Sn I I S1 I S2 . . . Sn I

Page 31: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 31

WorzykFH Anhalt

B*-BäumePrinzip

• B*-Bäume:– nur Datenblöcke mit höchstem

Rang enthalten Schlüssel + Daten– alle anderen Datenblöcke

Schlüssel und Zeiger, aber keine weiteren Daten

Page 32: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 32

WorzykFH Anhalt

HashverfahrenBerechnung des Speicherplatzes

aus dem Schlüssel

Beispiel: die erste Ziffer gibt den Speicherplatz an

Es gibt mehrfach belegte Speicherplätze

106 62 12 9 58 71 46 115 45 6 73 24 131 47 102 33 127 94 88

10612

115131102127

24 33 464547

58 662

7173

88 994

Page 33: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 33

WorzykFH Anhalt

HashverfahrenDivisions-Rest-Methode

h(k) = k mod(N)

Für N haben sich Primzahlen ausgezeichnet bewährt

106 62 12 9 58 71 46 115 45 6 73 24 131 47 102 33 127 94 88

N=20 62102

24 45 106466

47127

88 9 7111

12 7333

94 115 18

N=29 58 88 6233

6 94 9 127 12 71 73131102

45 46 47 106 24 115

Page 34: Datenbanksysteme für FÜ WS 2004/2005 Speicher - 1 Worzyk FH Anhalt Speicherverwaltung Bereitstellen von Speicherplatz bei insert und update Logische Dateneinheiten

Datenbanksysteme für FÜ WS 2004/2005Speicher - 34

WorzykFH Anhalt

Zusammenfassung

• Speichereinheiten– Datenblock– Extent– Segment– Tablespace

• Suchen über Index• Index wird als Baum gespeichert