Gegevensbanken 2010 les13

61
Gegevensbanken 2010 Organisatie van meerdimensionale structuren Bettina Berendt www.cs.kuleuven.be/~berendt

Transcript of Gegevensbanken 2010 les13

Page 1: Gegevensbanken 2010 les13

Gegevensbanken 2010

Organisatie van meerdimensionale structuren

Bettina Berendtwww.cs.kuleuven.be/~berendt

Page 2: Gegevensbanken 2010 les13

2

Organisatie van meerdimensionale structuren:

Motivatie & Samenvatting

Page 3: Gegevensbanken 2010 les13

3

Waar zijn we?LesNr. wie wat

1 ED intro, ER2 ED EER3 ED relational model4 ED mapping EER2relational5 KV relational algebra, relational calculus6 KV SQL7 KV vervolg SQL8 KV demo Access, QBE, JDBC

9 KV functional dependencies and normalisation

10 KV functional dependencies and normalisation11 BB file structures and hashing12 BB indexing I

13 BBindexing II and higher-dimensional structures

14 BB query processing15 BB transaction16 BB query security17 BB Data warehousing and mining18 ED XML, oodb, multimedia db

Fysisch model / vragen

Page 4: Gegevensbanken 2010 les13

4

Herhaling: Gegevens zijn als een boek

Index

Is tekst echt zo lineairals de gegevens en indexstructuren in

computer-geheugens?

Page 5: Gegevensbanken 2010 les13

5

Gegevens zijn als ... het lezen/zien van een boek

Foveale zien: max. 2°

Page 6: Gegevensbanken 2010 les13

6

Gegevens zijn als ... het lezen/zien van een boek

Een 2D (tekst)beeld wordt door oogbewegingen „geserialiseerd“.

Page 7: Gegevensbanken 2010 les13

7

Gegevens zijn als het lezen/zien van een complexere realiteit

Muster der Augenbewegungen einer Versuchsperson beim freien Betrachten einer visuellen Szene. Sie lenkte den Blick besonders häufig auf die Gesichter. Erläuterungen im Text. Aus Yarbus (1967).

Een ≥2D visuele input wordt door oogbewe-gingen „geserialiseerd“. Belangrijke „punten“ werken als ankers.

Page 8: Gegevensbanken 2010 les13

8

Hoe je iets leest is afhankelijk van wat je darmee wilt doen

Op een zoekmachine-paginanaar informatie zoeken

(hoogte = frequentie)

Op een zoekmachine-paginanaar transactie-mogelijkheiden zoeken

Page 9: Gegevensbanken 2010 les13

9

Meerdimensionale indexstructuren

• indexeren ≥ 2D gegevens

• door een structuur van lagere dimensionaliteit (boom)

• bevatten natuurlijk niet zoveel ruis en zijn niet zo redundant en afhankelijk van interesse etc. als oogbewegingen

Page 10: Gegevensbanken 2010 les13

10

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Page 11: Gegevensbanken 2010 les13

11

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Page 12: Gegevensbanken 2010 les13

12

meerdimensionale structuren

• gewoon bestand van relationele gegevensbank:– 1-dimensionaal ( lineair )

• sleutel bepaalt een lineaire ordenig van de records

• andere gegevens kunnen 2-dimensionaal of meer-dimensionaal zijn– vbn:

• punten in een vlak• gebieden in een vlak• punten in de ruimte

– deze vereisen een andere voorstellingswijze of toegangsstructuur

– we beperken ons tot 2-dimensionale verzamelingen

Page 13: Gegevensbanken 2010 les13

13

2-dimensionale verzamelingen punten

• structuren:– in centraal geheugen:

• quad - bomen alleen 2-dimensionaal

• k-d - bomen k geeft dimensie aan (2, 3,…)

– op secundair geheugen:• R-bomen

• grid-files

– voorbeelden van queries:• range query

• nearest neighbour query

• partial match query

• region query

Page 14: Gegevensbanken 2010 les13

15

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Page 15: Gegevensbanken 2010 les13

16

point quadtrees

• point quad trees:– in een point quadtree splitst knoop N het gebied dat het

representeert als vier delen:• NW (noord-west), ZW (zuid-west), NO (noord-oost), ZO (zuid-oost)

– Elk van deze kwadranten komt overeen met een kind van knoop N

– knoopstructuur:• qtnodetype = record

– Info: infotype;

– XVal: real;

– YVal: real;

– NW, SW, NE, SE: qtnodetype

Page 16: Gegevensbanken 2010 les13

17

gh

f

a

e

c

b

d

q

Partitionering van het vlak

Page 17: Gegevensbanken 2010 les13

18

Hetzelfde als boom

a

f h eb

g c d

Hetzelfde als boom

Page 18: Gegevensbanken 2010 les13

19

Toevoegen in quadbomen (1)

Page 19: Gegevensbanken 2010 les13

20

Toevoegen in quadbomen (2)

Page 20: Gegevensbanken 2010 les13

21

Constructie van quad bomen

– gegeven:• n verschillende punten in het vlak

– methode:• sorteer de punten eerst volgens abscis (x-waarde), daarna volgens

ordinaat (y-waarde)

• bepaal de mediaan volgens de abscis, dit geeft reeds een verdeling in twee helften

• verdeel de punten verder volgens de ordinaat in 4 quadranten

• herhaal dit proces voor elk van verzameling punten in elk van de vier quadranten, tot er geen punten meer overblijven

– eigenschappen:• deze verdeling levert in elk quadrant maximaal de helft van de n

punten

• daardoor is de hoogte van de boom log2 n

• de minimale hoogte van de boom is log4 n

Page 21: Gegevensbanken 2010 les13

22

een voorbeeld van slechte puntenverdeling voor quad-tree:het aantal punten in een kwadrantwordt niet in elk kwadrant n / 4, maar in enkele kwadrantenslechts n / 2

... niet altijd optimaal ...

Page 22: Gegevensbanken 2010 les13

23

range en co-range queries

• definities:– range query:

• geef alle punten binnen een bepaald gebied

– co-range query:• geef alle punten buiten een bepaald gebied

• tijdscomplexiteit:– aantal punten: n– aantal punten in antwoord: r– een één-dimensionale range query:

• als alle punten moeten worden gegeven: O ( r + log n ) • als alleen moet worden opgegeven waar de punten te vinden zijn:

O ( log n )

– in quad-tree met minimale hoogte: O ( r + n )• (zonder bewijs)

Page 23: Gegevensbanken 2010 les13

24

vier soorten range queries (gebied)

Page 24: Gegevensbanken 2010 les13

25

vier soorten semi-range queries (half gebied)

Page 25: Gegevensbanken 2010 les13

26

drie soorten quarterplane queries (kwartvlak)

Page 26: Gegevensbanken 2010 les13

27

twee soorten slab queries (snee)

Page 27: Gegevensbanken 2010 les13

28

twee soorten halfplane queries (halfvlak)

Page 28: Gegevensbanken 2010 les13

29

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Page 29: Gegevensbanken 2010 les13

30

k-d-bomen

• k-d-bomen– Gebruikt om k-dimensionale puntgegevens op te slaan

• 2-dimensionale puntgegevens: 2-d boom

• 3-dimensional puntgegevens : 3-d boom

• ...

– Wordt niet gebruikt om regio data op te slaan– nodetype = record

• Info: infotype; gebruikergedefinieerd type

• XVal: real; coördinaten

• YVal: real;

• LLink: nodetype; verwijzingen naar kinderen

• RLink: nodetype;

Page 30: Gegevensbanken 2010 les13

31

2-d trees

• Als N een knoop is in een 2-d boom:

dan level(N) = 0 als N de wortel van de boom is

level(P) + 1 als N’s ouder P is

• Def: een 2-d boom is elke binaire boom die aan de volgende voorwaarden voldoet:

– Als N een knoop in de boom is zodat level(N) even is, dan

• voor elke knoop M in de subboom met N als wortel.LLink:

M.XVal < N.XVal

• voor elke knoop P in de subboom met N als wortel.RLink:

P.XVal N.XVal

– Als N een knoop in de boom is zodat level(N) oneven is, dan

• Voor elke knoop M in de subboom met N als wortel.LLink:

M.YVal < N.YVal

• voor elke knoop P in de subboom met N als wortel.RLink:

P.YVal N.YVal

Page 31: Gegevensbanken 2010 les13

32

2-d boom: Op het vlak

gh

f

a

e

c

b

d

1

2

3

2

3

3

3

4

Page 32: Gegevensbanken 2010 les13

33

2-d-boom

a

f c

e g d h

b

x

x

y

y

Page 33: Gegevensbanken 2010 les13

34

(ook in 3D)

A 3-dimensional kd-tree. The first split (red) cuts the root cell (white) into two subcells, each of which is then split (green) into two subcells. Finally, each of those four is split (blue) into two subcells. Since there is no more splitting, the final eight are called leaf cells.

Page 34: Gegevensbanken 2010 les13

35

a

b

c

d

e

f

g

h

i

j

Oefening: wat gebeurt hiermee?

Page 35: Gegevensbanken 2010 les13

36

a

b

c

d

e

f

g

h

i

j

f

c

b

a

i

dj

h

e g

Oplossing

Page 36: Gegevensbanken 2010 les13

37

2-d bomen: Toevoegen en zoeken

– Om een knoop N toe te voegen in de boom waarnaar verwezen wordt door T

• ga na of N enT overeenkomen in hun XVal en YVal velden

indien ja, overschrijf knoopT en we zijn klaar

in het andere geval, vertak links als N.XVal < T.XVal en vertak rechts in het andere geval

• veronderstel dat P het kind voorstelt dat we aan het onderzoeken zijn.

als N enT overeenkomen in hun XVal en YVal velden,

overschrijf P en we zijn klaar,

in het andere geval, vertak links als N.YVal < T.YVal en rechts in het andere geval

• herhaal deze procedure, wanneer je vertakt op XVal’s in de even niveaus van de boom, en op YVal’s wanneer we ons in de oneven niveaus van de boom bevinden

Page 37: Gegevensbanken 2010 les13

38

Toevoegen in 2-d bomen (1)

Page 38: Gegevensbanken 2010 les13

39

Toevoegen in 2-d bomen (2)

Page 39: Gegevensbanken 2010 les13

40

partial-match search

• queries van de vorm(xq , ?) verticale lijn met vgl x = xq

of

(? , yq) horizontale lijn met vgl y = yq

• tijdscomplexiteitO ( r + n )

Page 40: Gegevensbanken 2010 les13

41

xuyuxuxu

xq < xu xq = xuxq > xu

de vier gevallen van een partial-match search

Page 41: Gegevensbanken 2010 les13

42

nearest neighbour search

• definitie:– gegeven

• een verzameling S van n punten in het vlak

• een query punt q = ( xq , yq )

– gevraagd• punt van S dat het dichtst bij q ligt

– methode:• begin met cirkel met middelpunt q en oneindige straal

• voor een kandidaat punt p van S: krimp de cirkel zo dat die door p gaat

Page 42: Gegevensbanken 2010 les13

43

nearest neighbour search - animatie

Page 43: Gegevensbanken 2010 les13

45

Range queries in 2-d-bomen

– range queries in 2-d bomen• range query ten opzichte van een 2-d boom T: een query dat een

punt (xc , yc), en een afstand r specifieert

• het antwoord op zo’n query is de verzameling van alle punten (x, y) in de boomT zodat (x, y) binnen afstand r van (xc, yc) ligt

• i.e. a range query definieert een cirkel met straal r gecentreerd rond punt (xc, yc), en verwacht alle punten te vinden in de 2-d boom die in deze cirkel liggen

• elke knoop N in een 2-d boom representeert impliciet een gebied RN

• Als de gespecificeerde cirkel in de query geen doorsnede heeft met RN , dan heeft het geen zin de subtree met als wortel N te doorzoeken

Page 44: Gegevensbanken 2010 les13

46

Range queries in 2-d-bomen: voorbeeld

Page 45: Gegevensbanken 2010 les13

47

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Page 46: Gegevensbanken 2010 les13

48

R-bomen: idee

• R-bomen:– ~ B-bomen voor >1D– Meest gebruikt voor ruimtelijke gegevens– gebruikt om rechthoekige gebieden van een beeld of kaart op

te slaan (R = rechthoek)– zijn vooral nuttig voor het opslaan van zeer grote aantallen data

op schijf– voorzien in een handige manier om het aantal schijftoegangen

te minimalizeren

Page 47: Gegevensbanken 2010 les13

49

R-bomen: details

• R-bomen:• elke R-tree heeft een geassocieerde orde, voorgesteld door een

integer K

• elke R-boom knoop dat geen blad is bevat een verzameling van hoogstens K rechthoeken en tenminste K/2 rechthoeken (met de wortel als mogelijke uitzondering)

• intuïtief wil dit zeggen dat elk blad in de R-tree dat geen knoop is, met uitzondering van de wortel, tenminste “half” vol moet zijn.

• dit kenmerk maakt R-bomen geschikt voor schijfgebaseerd zoeken, omdat elke schijftoegang een pagina teruggeeft die meerdere (i.e. tenminste K/2) rechthoeken bevat.

– R-bomen bevatten twee soorten rechthoeken:• “echte” rechthoeken (“real” rectangles), en

• “groep” rechthoeken (“group” rectangles)

Page 48: Gegevensbanken 2010 les13

50

Knopen van een R-boom

– knoopstructuur:• rtnodetype = record

– Rec1, ... , RecK: rectangle;

– P1, ... , PK: rtnodetype

Page 49: Gegevensbanken 2010 les13

51

R-boom metK = 4

R-bomen: voorbeeld (op het vlak)

Page 50: Gegevensbanken 2010 les13

52

R-bomen: voorbeeld (de boom)

Page 51: Gegevensbanken 2010 les13

53

Toevoegen in een R-boom: R10, R11

Page 52: Gegevensbanken 2010 les13

54

Twee manieren om de nieuwe gebieden toe te voegen

Page 53: Gegevensbanken 2010 les13

56

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Page 54: Gegevensbanken 2010 les13

57

2-dimensionale gegevens op hulpgeheugen

• grid-files– verdeling van het vlak in een rooster, zo dat

• elk deel een beperkt aantal punten bevat

• vanuit elk deel een wijzer naar een gegevensblok vertrekt

– toevoeging van punten kan delen doen splitsen– weglating van punten kan delen doen samensmelten

Page 55: Gegevensbanken 2010 les13

58

Page 56: Gegevensbanken 2010 les13

59

Page 57: Gegevensbanken 2010 les13

60

Page 58: Gegevensbanken 2010 les13

61

Grid files voor 2D/nD toegang: idee

– grid files kunnen ook gebruikt worden wanneer men toegang wil hebben tot een bestand door middel van twee verschillende attributen

vb:

• toegang tot het bestand EMPLOYEE door middel van

– DNO en

– AGE

• maak de schalen zo dat een uniforme verdeling wordt bekomen ( lineaire schalen) door groepering van waarden

– kan ook voor meer dan twee sleutels: n-dimensionale grid file

Page 59: Gegevensbanken 2010 les13

62

Grid files voor 2D toegang: voorbeeld

Page 60: Gegevensbanken 2010 les13

63

Vooruitblijk

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Query-verwerking

Page 61: Gegevensbanken 2010 les13

64

Bronnen

• Deze slides zijn gebaseerd op Henk Olivié‘s slides voor Gegevensbanken 2009.

• Verdere figuren: bronnen zie “Powerpoint comments field”

• Bedankt iedereen!