Speicher

Werbung
Speicherverwaltung
•
•
•
•
•
•
Bereitstellen von Speicherplatz bei insert und update
Logische Dateneinheiten
Auskunft über Speicherplatz
Indizes
Bäume
Hash-Funktionen
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 1
Speicherverwaltung
ta_angebot
Angebots Kunden Erstell Bearbeiter Angebot_bis
#
#
datum
_datum
Angebotstext
CREATE TABLE ta_angebot
(angebots# CHAR(7),
kunden# NUMBER(4),
erstelldatum DATE,
bearbeiter CHAR(5),
angebot_bis_datum DATE,
angebotstext char(120));
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 2
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';
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 3
Logische Dateneinheiten
• Datenblock, in unserem Fall 4 Kbytes groß, entspricht
einer Page im Hauptspeicher
• Extent
• Segment
• Tablespace
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 4
Datenblock
Header
Tabellenverzeichnis
Zeilenverzeichnis
Freier
Speicherplatz
19940530| Dieses Angebot ist kein Aprilscherz
Zeilendaten
W039/94|0001|19940322|MW
W040/94|0002|19940401|RF
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 5
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.
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 6
Header
EXTENT
Tabellenverzeichnis
Zeilenverzeichnis
Freier
Speicherplatz
19940530| Dieses Angebot ist kein
Zeilendaten
W039/94|0001|19940322|MW
W040/94|0002|19940401|RF
Extent
Header
Tabellenverzeichnis
Zeilenverzeichnis
Freier
Speicherplatz
Zeilendaten
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 7
Segment
Ein Segment ist die Zusammenfassung
aller Extents einer logischen Speicherstruktur.
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 8
Segment
Header
Tabellenverzeichnis
Segment für ta_angebot
Zeilenverzeichnis
Freier
Speicherplatz
Extent
Extent
Extent
Zeilendaten
Header
Tabellenverzeichnis
Zeilenverzeichnis
Freier
Speicherplatz
Zeilendaten
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 9
Segmentarten
• Datensegmente
• Indexsegmente
• Rollback-Segmente
• temporäre Segmente
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 10
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 11
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 12
Tablespace
Table space
Header
Tabellenverzeichnis
Segment für ta_probe
Zeilenverzeichnis
Freier
Speicherplatz
Extent
Extent
Extent
Zeilendaten
Header
Tabellenverzeichnis
Zeilenverzeichnis
Freier
Speicherplatz
Zeilendaten
Rollback
Segment
Worzyk
FH Anhalt
Index Segment
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 13
Abfrage nach Tablespaces
select substr(file_name,1,45) "file",
bytes,
substr(tablespace_name,1,15)
"tablespace"
from sys.dba_data_files;
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 14
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 15
Indizes
• Zur Unterstützung von Suchvorgängen
• nach einem Auswahlkriterium sortiert und enthalten die
Adresse des entsprechenden Datensatzes
• werden als B*-Bäume abgelegt
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 16
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 17
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 18
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 19
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 Wurzel
Niveau: Alle Knoten mit gleicher Tiefe
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 20
Bäume
Definition
Vorgänger
Nachfolger
Wurzel
Innerer
Knoten
Höhe des
Baumes
Pfad der Länge
3
Blätter
Worzyk
FH Anhalt
Ordnung > 2
B-Baum
Ordnung = 2
Binär-Baum
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 21
Binäre Bäume
Beispiel
106
62
12
115
71
9
58
6
73
47
45
24
127
102
46
Worzyk
FH Anhalt
131
94
Nullzeiger
88
33
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 22
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 23
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 24
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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 25
Binäre Bäume
Beispiel
106
12
62
115
71
9
58
6
47
73
72
46
45
24
Worzyk
FH Anhalt
131
127
102
94
Nullzeiger
88
33
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 26
Binäre Bäume
Anwendungsbeispiel Syntax
x:=(-b+(-b2-4*a*c)0.5)/(2*a)
:=
x
/
+
*
-
2
b
-
0.5
*
b
Worzyk
FH Anhalt
2
*
4
c
a
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 27
a
Binäre Bäume
Anwendungsbeispiel Index
1
2
3
4
5
6
7
8
9
Codd Dijkstra Floyd Lehmann Lovelace Turing Weizenbaum Wirth Zuse
1923 1930
1943 1921
1815
1912
1923
1934 1910
1923
1
1912
6
1815
5
1921
4
1910
9
Worzyk
FH Anhalt
1923
7
1934
8
1930
2
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 28
1943
8
Binäre Bäume
Anwendungsbeispiel
Spielbaum
A.K. Dewdney: Der Turing Omnibus
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 29
B-Bäume
Ein B-Baum mit N-1 Schlüsseln hat N Blätter
Höhe 1:
I S1
I S2
. . . Sn
I
Höhe h:
I S1
I S1
I S2
Worzyk
FH Anhalt
...
Sn
I
I S2
I S1
I S2
. . . Sn
...
I
Sn
I
I S1
I S2
...
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 30
Sn
I
B*-Bäume
Prinzip
• 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
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 31
Hashverfahren
Berechnung des Speicherplatzes aus dem Schlüssel
Beispiel: die erste Ziffer gibt den Speicherplatz an
106
62
12
9
106
12
115
131
102
127
58
71
24
46 115
33
45
6
46
45
47
73
24 131
58
6
62
47 102
71
73
33 127
94
88
Es gibt mehrfach belegte Speicherplätze
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 32
88
9
94
Hashverfahren
Divisions-Rest-Methode
h(k) = k mod(N)
106
62
102
N=20
N=29
62
58
88
12
9
24
62
33
58
71
46 115
45 106 47
46 127
6
6 94
88
45
6
73
24 131
47 102
9
71
11
12
73
33
94 115
9
127
12
71
73
131
102
33 127
94
88
18
45
46
47 106
24
Für N haben sich Primzahlen ausgezeichnet bewährt
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 33
115
Zusammenfassung
• Speichereinheiten
– Datenblock
– Extent
– Segment
– Tablespace
• Suchen über Index
• Index wird als Baum gespeichert
Worzyk
FH Anhalt
Datenbanksysteme für FÜ WS 2004/2005
Speicher - 34
Herunterladen