• Keine Ergebnisse gefunden

Suche nach Sekundärschlüssel

N/A
N/A
Protected

Academic year: 2022

Aktie "Suche nach Sekundärschlüssel"

Copied!
43
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Datenbanksysteme 2015

Kapitel 5:

Mehrdimensionale Suchstrukturen

Oliver Vornberger Institut für Informatik Universität Osnabrück

(2)

Suche nach Primärschlüssel

select name from studenten where matrnr = 4711

Aufwand : logk (c·n)

(3)

Suche nach Sekundärschlüssel

select name from studenten where groesse > 170

and groesse < 180

Aufwand bei m Treffern von n Records: log

k

(c·n) + cm

(4)

Suche nach 2 Sekundärschlüsseln

select name from studenten where gewicht > 80

and iq < 80

80 85 90 95

65 70 75 60

85 80 75 70 90 95 100

Gewicht IQ

100

Dick &

Doof

(5)

k-d-Baum

zur Verwaltung von mehrdimensionalen Datenpunkten Verallgemeinerung des binären Suchbaums

mit k-dimensionalem Sortierschlüssel

Homogene Variante: Baumknoten = Datenrecord + Zeiger Inhomogene Variante: Baumknoten = Schlüssel + Zeiger

Blätter zeigen auf Datenrecord Ebene i modulo k diskriminiert bzgl. Dimension i

x y

z

(6)

2-d-Baum

Im 2-dimensionalen Fall gilt für Knoten mit Schlüssel [x/y]:

im linken Sohn im rechten Sohn ungerade Ebene alle Schlüssel  x alle Schlüssel > x gerade Ebene alle Schlüssel  y alle Schlüssel > y

A [12,56]

(7)

G

2-d-Baum: Beispiel

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 2 3 4 5 6 7 8 9 10

C

B D

E

F

H A

(8)

2-d-Baum: Beispiel

Insert z.B. füge Record [3/9] ein

I 3/9

D 6/2 H 8/5

C 9/4

B14/3 B 14/3

A 5/6

G 1/8 F12/7

E 7/9

bzgl.ykleiner

bzgl. xkleiner

bzgl.ykleiner

bzgl. y grösser

bzgl.ygrösser

bzgl. xgrösser

bzgl. xgrösser

(9)

2-d-Baum: Beispiel

D 6/2 H 8/5

C 9/4

B14/3 B 14/3

A 5/6

G 1/8 F12/7

E 7/9

bzgl.ykleiner

bzgl. xkleiner

bzgl.ykleiner

bzgl. y grösser

bzgl.ygrösser

bzgl. xgrösser

bzgl. xgrösser

Exact Match z.B. finde Record [15/5]

(10)

2-d-Baum: Beispiel

D 6/2 H 8/5

C 9/4

B14/3 B 14/3

A 5/6

G 1/8 F12/7

E 7/9

bzgl.ykleiner

bzgl. xkleiner

bzgl.ykleiner

bzgl. y grösser

bzgl.ygrösser

bzgl. xgrösser

bzgl. xgrösser

Partial Match z.B. finde alle Records [x/y] mit x=7

(11)

2-d-Baum: Beispiel

D 6/2 H 8/5

C 9/4

B14/3 B 14/3

A 5/6

G 1/8 F12/7

E 7/9

bzgl.ykleiner

bzgl. xkleiner

bzgl.ykleiner

bzgl. y grösser

bzgl.ygrösser

bzgl. xgrösser

bzgl. xgrösser

Range-Query z.B. finde Records [x/y] mit 8  x  13, 5  y  8

(12)

2-d-Baum: Beispiel

D 6/2 H 8/5

C 9/4

B14/3 B 14/3

A 5/6

G 1/8 F12/7

E 7/9

bzgl.ykleiner

bzgl. xkleiner

bzgl.ykleiner

bzgl. y grösser

bzgl.ygrösser

bzgl. xgrösser

bzgl. xgrösser

Best Match z.B. finde nächsten Nachbarn zu [7/3]

=> Traversierung mit schrumpfender Rangequery

(13)

2-d-Baum: Best match

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 2 3 4 5 6 7 8 9 10

A

C

B D

E

G F

H

(14)

Traversierung für Best Match zu [7/3]

D 6/2 H 8/5

C 9/4

B14/3 B 14/3

A 5/6

G 1/8 F12/7

E 7/9

bzgl.ykleiner

bzgl. xkleiner

bzgl.ykleiner

bzgl. y grösser

bzgl.ygrösser

bzgl. xgrösser

bzgl. xgrösser

(15)

Inhomogene Variante

Blätter verweisen auf Datenblöcke

(16)

Partitionierungen des Raumes

(17)

Gitterverfahren

mit konstanter Gittergröße

(18)

Grid File

Alternative zu fester Gittergröße

1981 vorgestellt von Hinrichs & Nievergelt 2-Platten-Zugriffsgarantie

Bei k-dimensionalen Tupeln:

• k Skalen zum Einstieg ins Grid-Directory

• Grid Directory zum Finden der Bucket-Nr.

• Bucket für Datensätze

(Haupt)

(Platte)

(Platte)

(19)

Grid File im 2-dimensionalen Fall

Alle Records der roten Gitterzelle sind im Bucket mit Adresse G[1,2]

0

y[i],i=0,.. max_y 3030

2500 2050

800 y

30 40 85 120 x

x 0 30 40 85 120 x[i],i=0,.. max_x

y 0 800 2050 2500 3030

Region: benachbarte Gitterzellen Gitterzelle: rechteckiger Teilbereich

Bucket: Records einer Region

(20)

Bucket Directory

0 30 40 85 120

0 1 2 3 4 4

3 2 1 0 3030

2500 2050 800 0

Suche Record [35 / 2400]

Befrage Skalen

asp07nk99jh056509 aasdf0cß03j400d0v 9v8asßfimo98csi98a dxcvß98dspa0s9fxc0 wi00808ß3jsßsa9ßß

Lade Block mit G[1,2] vom Bucketdirectory Lade Datenblock

(21)

Speichernutzung

Datenblöcke und Directory-Blöcke nicht immer ausgenutzt:

Beispiel: 4 Datenrecords pro Block:

4 volle Datenblöcke 6 Directory-Einträge

6 Datenblöcke 6 Directory-Einträge

(22)

Bucket-Überlauf

(23)

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

Insert A = [5 / 6]

(24)

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

A Insert B = [14 / 3]

(25)

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

B

A B Insert C = [9 / 4]

(26)

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

C

B

A B C Insert D = [6 / 2]

(27)

Aufspalten der Regionen

8

6

4

2

2 4 6 8 10 12 14

A

C

B A D B C

D

Insert E = [7 / 9]

(28)

Aufspalten der Regionen

B C 8

6

4

2

2 4 6 8 10 12 14

E

A

C

B

D

A E

D

Insert F = [12 / 7]

(29)

Aufspalten der Regionen

B C 8

6

4

2

2 4 6 8 10 12 14

E

A

C

B

F F

D

A E

D

Insert G = [1 / 8]

(30)

Aufspalten der Regionen

B C 8

6

4

2

2 4 6 8 10 12 14

E

A

C

B

F F

D

G A E

D G

(31)

Directory-Zugriff

0 15 16 31 32 47 48 63 64 79 79

64 63 48 47 32 31 16 15 0

Indizes: 0 ≤ i, j ≤ 79

Directoryblock b = 5 * j/16 + i/16

Adresse a = 16 *(j mod 16) + (i mod16)

42 51

5*3+2=17 16*3+10=58

00 01 02 03 04

05 06 07 08 09

10 11 12 13 14

20 21 22 23 24

15 16 17 18 19

(32)

Gridfile Beispiel

12 18 34 2000

1600 1100

1100 12 2000

34 1800

1700 1600 1500 1400 1300

15 16 17 18 26 30 32

4 Records pro Datenblock 16 Adressen pro Directory-Block

(33)

Gridfile: Zahlenbeispiel

Größe eines Datenrecords: 100 Byte

mittlere Zahl der Datenrecords pro Block:

maximale Zahl der Datenrecords pro Block

Zahl der Datenrecords: 300.000

Zahl der Datenblöcke:

Zahl der Directoryblöcke:

mittlere Zahl von Adressen pro Directoryblock maximale Zahl von Adressen pro Directoryblock:

Größe des Root-Directory:

(34)

10 20 30 250

200

A

B

C

10 30 50 300

200

D

10 30 50 300

200

E

250

300

F

30 50 300

200

Dynamik des Grid Directory

(35)

Vereinigung von Regionen

bei zu geringer Bucketauslastung:

• Benachbarte Regionen vereinigen

• Vereinigung muß Rechteck ergeben

Vereinigung wird ausgelöst

• wenn Bucket < 30 % Auslastung

• wenn vereinigtes Bucket < 70 % Auslastung

(36)

Nearest Neighbor

R Q

P

(37)

Verwaltung von

geometrischen Objekten

Grid File unterstützt Range-Query bisher: k Attribute

Jetzt: k-dimensionale Punkte

(38)

Verwaltung von Intervallen

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 2 3 4 5

E

A

B

C

D

F

A

[Anfang / Ende]

E

A

B C

D F

Besser: [Mittelpunkt / halbe Länge]

(39)

Query-Punkt gegen Intervall

Punkt p liegt im Intervall mit Mitte m und halber Länge d  m-d  p  m+d

m-d m m+d

(40)

Query-Punkt gegen Intervall

p=5  m-d  5  m+d

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 2 3 4 5

E

A

B

C

D

F

E

A

B C

D F

Punkt p liegt im Intervall mit Mitte m und halber Länge d  m-d  p  m+d

(41)

Query-Intervall gegen Intervall

Intervall mit Mitte s und halber Länge t schneidet Intervall mit Mitte m und halber Länge d 

m-d  s+t und s-t  m+d

m-d m+d

s+t s-t

(42)

Query-Intervall gegen Intervall

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1 2 3 4 5

E

A

B

C

D

F

E

A

B C

D F

Intervall mit Mitte s und halber Länge t schneidet Intervall mit Mitte m und halber Länge d 

m-d  s+t und s-t  m+d s=10, t=1  m-d  11 und 9  m+d

(43)

Query-Rechteck gegen Rechteck

Stelle Rechteck durch vierdimensionalen Punkt dar

Referenzen

ÄHNLICHE DOKUMENTE

Die digitale Schließanlage der TU Graz bietet die Möglichkeit, Bediensteten und Studierenden sehr flexibel Zutritt zu Gebäuden und einzelnen räumen zu geben. Nach mehreren Jahren

Diese unter ESPRIT ge- förderten Projekte waren aber nur der Beginn der ESSI-Initiative (European System and Soft- ware Initiative), deren Ziel es ist, den Bedarfan neuen Methoden

Die Betriebsgrösse kann für die Schweizer Landwirt- schaft durchaus als agrarökonomische Grundkonstante bezeichnet werden, denn sie hat immer einen stark po- sitiven Einfluss auf

Das Neujahrskon- zert in Zusammenarbeit mit der Stadt Königstein und gefördert von der Taunus Sparkasse, ist seit einigen Jahren ein Publi- kumsmagnet nicht nur für

Im Seminar geht es um Selbstverantwor- tung, verbale und nonverbale Kom- munikation, Respekt und Wertschät- zung für die eigene Person, die Kollegen und Patienten – genau

Im Europäischen Parlament gehöre ich als Mitglied dem Aus- schuss für Beschäftigung und so- ziale Angelegenheiten (EMPL) so- wie als stellvertretendes Mitglied dem Ausschuss

Für dieses Jahr wünsche ich uns allen Gesundheit, gute Geschäfte und bald wieder viele sorgenfreie Kontakte mit Freunden und der Familie.. Für DIE PTA IN DER APOTHEKE wird es

Aus „sozialer“ wird „emo- tionale“ Intelligenz Damals stellten Edward Lee Thorn- dike und David Wechsler, zwei US-amerikanische Psycholo- gen, eine These auf: Selbst der