Your SlideShare is downloading. ×
Gegevensbanken 2010 les13
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Gegevensbanken 2010 les13

492
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
492
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • http://www.brimediation.ch/graphics/Zeigefinger.jpg
  • http://www.optiker-holz.de/auge.jpg http://www.ooglaseren.net/gif/het_oog.gif Fovea centralis ist Teil des Gelben Flecks (0.5 mm vs. 5 mm) Het zien / het zicht http://www.tirabo.nl/layout_site/blauw_oog.jpg http://www.luit.nl/weblog/wp-content/uploads/2009/11/kindlehersenen.jpg
  • http://www.scholarpedia.org/wiki/images/7/7e/Reading.jpg
  • 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). http://edoc.hu-berlin.de/dissertationen/donner-tobias-hinrich-2003-10-10/HTML/donner_html_med196bd.jpg PS: Kosslyn & Shin 1994: Augenbewegungen beim Sehen ~ beim Vorstellen (zich voorstellen)
  • NICHT BENÖTIGT!
  • Schnitt
  • TODO Quelle
  • This algorithm creates the invariant that for any node, all the nodes in the left subtree are on one side of a splitting plane , and all the nodes in the right subtree are on the other side. Points that lie on the splitting plane may appear on either side.
  • de vier gevallen van een partial-match search
  • verwachte tijdscomplexiteit: O (  n )
  • http://upload.wikimedia.org/wikipedia/en/9/9c/KDTree-animation.gif
  • Transcript

    • 1. Gegevensbanken 2010 Organisatie van meerdimensionale structuren Bettina Berendt www.cs.kuleuven.be/~berendt
    • 2. Organisatie van meerdimensionale structuren : Motivatie & Samenvatting
    • 3. Waar zijn we? Fysisch model / vragen Les Nr. wie wat 1 ED intro, ER 2 ED EER 3 ED relational model 4 ED mapping EER2relational 5 KV relational algebra, relational calculus 6 KV SQL 7 KV vervolg SQL 8 KV demo Access, QBE, JDBC 9 KV functional dependencies and normalisation 10 KV functional dependencies and normalisation 11 BB file structures and hashing 12 BB indexing I 13 BB indexing II and higher-dimensional structures 14 BB query processing 15 BB transaction 16 BB query security 17 BB Data warehousing and mining 18 ED XML, oodb, multimedia db
    • 4. Herhaling: Gegevens zijn als een boek Index Is tekst echt zo lineair als 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-pagina naar informatie zoeken (hoogte = frequentie) Op een zoekmachine-pagina naar 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
    • 14. Welke queries wil men uitvoeren?
      • Vaak voorkomende queries
        • Point query: Vind alle rechthoeken die een gegeven punt bevatten.
        • Range query: Vind alle objecten binnen een query rechthoek.
        • Nearest neighbor: Vind het dichtste punt bij een query punt.
        • Intersection query: Vind alle rechthoeken die een query rechthoek snijden.
    • 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. Partitionering van het vlak g h f a e c b d q
    • 18. Hetzelfde als boom Hetzelfde als boom a f h e b g c d
    • 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  log 2 n
          • de minimale hoogte van de boom is  log 4 n 
    • 22. een voorbeeld van slechte puntenverdeling voor quad-tree: het aantal punten in een kwadrant wordt niet in elk kwadrant n / 4, maar in enkele kwadranten slechts 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 g h 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 d j 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 en T overeenkomen in hun XVal en YVal velden
          • indien ja, overschrijf knoop T 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 en T 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
        • (x q , ?) verticale lijn met vgl x = x q
        • of
        • (? , y q ) horizontale lijn met vgl y = y q
      • tijdscomplexiteit
        • O ( r +  n )
    • 41. x u y u x u x u x q < x u x q = x u x q > x u 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 = ( x q , y q )
        • 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
    • 44. q p
    • 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 ( x c , y c ), en een afstand r specifieert
          • het antwoord op zo’n query is de verzameling van alle punten ( x, y ) in de boom T zodat ( x, y ) binnen afstand r van ( x c , y c ) ligt
          • i.e. a range query definieert een cirkel met straal r gecentreerd rond punt ( x c , y c ), 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 R N
          • Als de gespecificeerde cirkel in de query geen doorsnede heeft met R N , 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 met K = 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
    • 55. R-boom: animatie
      • http://gis.umb.no/gis/applets/rtree2/jdk1.1/
    • 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!