Gegevensbanken 2010 les13
-
Upload
gegevensbankenkul2010 -
Category
Documents
-
view
511 -
download
2
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!