Gegevensbanken 2010 les13

Post on 10-Jun-2015

511 views 2 download

Transcript of Gegevensbanken 2010 les13

Gegevensbanken 2010

Organisatie van meerdimensionale structuren

Bettina Berendtwww.cs.kuleuven.be/~berendt

2

Organisatie van meerdimensionale structuren:

Motivatie & Samenvatting

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

4

Herhaling: Gegevens zijn als een boek

Index

Is tekst echt zo lineairals de gegevens en indexstructuren in

computer-geheugens?

5

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

Foveale zien: max. 2°

6

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

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

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.

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

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

10

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

11

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

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

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

15

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

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

17

gh

f

a

e

c

b

d

q

Partitionering van het vlak

18

Hetzelfde als boom

a

f h eb

g c d

Hetzelfde als boom

19

Toevoegen in quadbomen (1)

20

Toevoegen in quadbomen (2)

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

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 ...

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)

24

vier soorten range queries (gebied)

25

vier soorten semi-range queries (half gebied)

26

drie soorten quarterplane queries (kwartvlak)

27

twee soorten slab queries (snee)

28

twee soorten halfplane queries (halfvlak)

29

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

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;

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

32

2-d boom: Op het vlak

gh

f

a

e

c

b

d

1

2

3

2

3

3

3

4

33

2-d-boom

a

f c

e g d h

b

x

x

y

y

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.

35

a

b

c

d

e

f

g

h

i

j

Oefening: wat gebeurt hiermee?

36

a

b

c

d

e

f

g

h

i

j

f

c

b

a

i

dj

h

e g

Oplossing

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

38

Toevoegen in 2-d bomen (1)

39

Toevoegen in 2-d bomen (2)

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 )

41

xuyuxuxu

xq < xu xq = xuxq > xu

de vier gevallen van een partial-match search

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

43

nearest neighbour search - animatie

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

46

Range queries in 2-d-bomen: voorbeeld

47

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

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

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)

50

Knopen van een R-boom

– knoopstructuur:• rtnodetype = record

– Rec1, ... , RecK: rectangle;

– P1, ... , PK: rtnodetype

51

R-boom metK = 4

R-bomen: voorbeeld (op het vlak)

52

R-bomen: voorbeeld (de boom)

53

Toevoegen in een R-boom: R10, R11

54

Twee manieren om de nieuwe gebieden toe te voegen

56

Agenda

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

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

58

59

60

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

62

Grid files voor 2D toegang: voorbeeld

63

Vooruitblijk

Overzicht

Quadbomen (point quadtrees)

k-d-bomen

R-bomen

Grid files

Query-verwerking

64

Bronnen

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

• Verdere figuren: bronnen zie “Powerpoint comments field”

• Bedankt iedereen!