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