ADTs - Institut für Geodäsie und Geoinformation der Universität Bonn

Werbung
Institut für Kartographie und Geoinformation
Seminar
Geoinformation
WS 2001/2202
Räumliche Anfrageverfahren
Überblick
Foliengliederung
• Einführung, Wiederholung
• Anfragebeispiele
• I/O Algorithmen
– bei riesigen Datensätzen,
zwei optimale Algorithmen
• external sort/merge
• distribution sweeping
(rectangle intersection) (fällt weg)
2
Einleitung
Aufgaben eines Geoinformationssystems:
•
•
•
•
•
Erfassung
Verwaltung
Analyse
Modellierung und
Visualisierung
von Geoinformationen.
Die Analyse von Daten erfolgt von dem Benutzer des
Geoinformationssystems.
3
Database Management System (DBMS)
Eine Datenbank ist eine Ansammlung von untereinander in
Beziehung stehenden Daten. (persistent,großes Volumen)
Ein DBMS ist die Brücke zwischen den Daten und dem
Benutzer:
data independence:
Repräsentation
unabhängig von
Speicherung!!!
4
Database Management System (DBMS)
• logische Ebene
– Datenstruktur festlegen (beispielsweise mit einem Diagramm)
– Übersetzung in DBMS (mittels DDL)
• physikalische Datenmanagement
–
–
–
–
Speicherung (auf Disketten,CDs,etc...)
günstige Datenzugriffspfade (B,R-Bäume...)  access paths
Query proccessing (effiziente Join Algorithmen konstruieren)
Query optimization (Benutzer nur deklarierend, Berechnung Sache des
Systems)
– Datensicherheit
Physikalisches Datenmanagement ist auf effiziente
Berechnung von Anfragen ausgerichtet!
5
Relationale Datenbanken
•
•
•
•
basieren nur auf Tabellen (Relationen)
am meisten verbreitetes Modell
ein geographisches Objekt ist eine Reihe oder ein Tupel
Beispiel : Paris ist die Hauptstadt von Frankreich.
Der Ausdruck „ist die Hauptstadt von“ ist eine Relation.
Zwei Schritte:
– konzeptuale Modellierung (Einträge und Relationen)
– logische Ebene (selektierend oder generierend)
• Nachteile:
– Räumliche Anfragen verlangen Kenntnis der Struktur der
räumlichen Objekte
– Probleme beim Definieren neuer (räumlicher) Typen
– und fehlende Möglichkeit zu Berechnungen wie adjacency test, point
query und window query
6
Spatial Join (im relationalen Modell)
DEFINITIONEN:
• Join:
Verknüpfung von 2 oder mehr Tabellen über
mindestens ein beschreibendes Attribut
 alphanumerische Anfragen
• Spatial Join:
Verknüpfung von 2 oder mehr Tabellen über
mindestens ein räumliches Attribut
 raumbezogene Anfragen
Geographische Objekte bestehen aus
• beschreibenden und
• räumliche Attributen (Geometrie)
7
Query language im relationalen Modell
SQL bei relationalen Datenbanken dominierend.
Eigenschaften:
• deklarierend (Benutzer drückt Ergebniswunsch aus ohne
Systemanweisungen geben zu müssen)
 auch für weniger erfahrene Anwender geeignet
• basiert auf soliden mathematischen Grundlagen
• Nachteil:
geringe Ausdrucksfähigkeit im Vergleich zu den
Programmiersprachen wie C
(z.B. keine Rekursion möglich)
8
Structured Query Language (SQL)
• Syntax:
- SELECT ...
(Was soll gesucht werden?)
- FROM ...
(Wo soll gesucht werden ?)
- WHERE ...
(Welche Bedingungen gibt es ?)
• logische (Boolesche) Operatoren:
- UND, ODER
-UNWAHR (NOT)
- < , >, =
• Verfeinerung der Anfrage
- mehrere Anfragen nacheinander (select from current selection!)
- Anfragen mit mehreren Kriterien
9
Abstract Data Types (ADTs)
• Erweiterung des relationalen Modells notwendig,
• ADTs (Strukturen und mögliche Operationen)
- Bsp.: polygon and polygonarea
• Encapsulation (Zugriff nur über die Operationen)
Konflikt zwischen der Simplizität der Handhabung
und dem Reichtum an der Darstellung und den Funktionen!
10
Objektorientierte Datenbanken
• setzt wie die objektorientierten Programmiersprachen auf
dem objektorientierten Paradigma auf.
(Klassen und Objekte, Identifizierung, Kapselung,
Vererbung)
• hier OQL dominierend
• ADTs auch werden hier verwendet:
– eine Klasse entspricht der Implementierung eines ADT
– ADTs Teil des objektorientierten Datenbankmodells
– Zugriff auf Daten nur über die Methoden
11
ADT-Vorteile (am Bsp. region)
• „region“ ist eine Liste von Operationen, Speicherung
unwichtig
• Trennung erlaubt freie Wahl der Raummodellierung
• unterer Layer für oberen unsichtbar, demnach region
„gleichwertig“ zu float oder string
12
Defining ADTs
• region ADT:
– PointInRegion, Overlaps, OverlapsRect,
Intersection, Meets(Adjazenz), Area, RegionUnion
• line ADT:
– PointInLine, Length, OverlapsLR
• point ADT:
– Distance
Das sind natürlich nicht alle möglichen Operationen!
13
Schema 1: administrative units
Country
County
State
Country-code
State-code
County-code
Country-name
State-name
County-name
Geometry
Geometry
Population
Geometry
Aggregation: Ganzes-Teile Hierarchie
Das ist kein UML-Diagramm! Bei einem UML-Diagramm
sind noch Operationen(Methoden) beschrieben(3-teilig).
14
Schema 2: highway network
Highway
Section
Highway-code
Section-code
Highway -name
Section-name
Highway-type
Number-lanes
Geometry
Starts-at
Ends-at
City
„einer-zu-vielen“ Beziehung
City-name
Population
Geometry
15
Schema 3: land use
Wohngebiet, landwirtschaftliche Nutzung, Wald,
Schule etc... ..
16
Anfragetypen
Einteilung in folgende Typen:
• ALPHANUMERISCHE ANFRAGEN
• RÄUMLICHE ANFRAGEN:
• INTERAKTIVE ANFRAGEN
(ALPHA)
(SPAT)
(INTER)
17
Anfragebeispiele ALPHA
•
•
•
•
ALPHA-ADM1:
ALPHA-ADM2:
ALPHA-ADM3:
ALPHA-R1
:
• ALPHA-R2
Einwohner im County of San Francisco
Liste der counties im State of California
Einwohner in den USA
Anzahl der lanes im ersten Abschnitt des
Interstate 99
: Namen aller sections, die den
Interstate 99 bilden
18
Anfragebeispiele SPAT
• SPAT-ADM4 :
•
•
•
•
•
Counties adjazent zum County of San
Francisco im State of California
SPAT-ADM5 : Anzeigen des State of California
SPAT-ADM6 : Counties größer als ein vorgegebenes
SPAT-R3
: Länge des Interstate 99
SPAT-ADM-R1: alle highways, die durch den State of
California führen
SPAT-ADM-LU1: Anzeigen von allen Wohngebieten im
County of San Jose
19
Anfragebeispiele INTER
• INTER-ADM7 : Beschreibung des am Bildschirm
ausgesuchten counties
• INTER-ADM8 : counties, die in einem auf dem
Bildschirm vorgegebenem Rechteck
liegen (intersect)
20
Einordnung
• Spatial Access Methods (SAMs) reduzieren die Objekte,
die bei dem Join berücksichtigt werden müssen.
(mbb,grids,linear structures,(Gabriel),R-Bäume(Andreas)
,filter step).
• Als nächstes käme der refinement step(Carsten).
• Komplexe Anfragen und die Query Execution Plans
wurden von Stefan behandelt.
21
Problem:Riesige Datenmengen
Was ist zu beachten, wenn die Datenmengen nicht mehr
in den Hauptspeicher passen?
RAM = Random Access Machine
(theoretisches CPU-Modell)
Annahme: Jeder Zugriff auf die Daten hat einen
konstanten „Preis“, unabhängig von der
aktuellen Lage im Hauptspeicher.
22
Algorithmenoptimierung
Der Design der Algorithmen wird auf die Minimierung der
Diskettenzugriffe optimiert.
Für jeden Algorithmus ist der Tranfer der Daten von oder
zu einem externen Laufwerk die „key-operation“.
Die Komplexität wird als Funktion der Anzahl der I/Os
ausgedrückt.
Die Wichtigkeit dieses Problems soll an einem kleinem
Beispiel gezeigt werden:
23
Algorithmenoptimierung
Auf dem Bildschirm werden 40 Gegenstände angezeigt,
wobei auf eine Seite maximal 10 Gegenstände abbildbar
sind. Diese sollen später gedruckt werden.
In den Hauptspeicher, der nach dem LRU Prinzip arbeitet,
passen nur 3 Seiten herein.
Die Daten sind wie folgt verteilt:
1
5
9
13 ...
Seite1
2
6
10
14 ...
Seite2
3
7
11
15 ...
Seite3
4
8
12
16 ...
Seite4
24
Optimale I/O Algorithmen
Annahmen: ein Laufwerk, ein Prozessor
Definitionen: n Datengröße, m Hauptspeichergröße
(jeweils in page units)
Jeder Zugriff auf eine Seite der Diskette gilt als ein I/O.
Obwohl sonst wichtig, wird hier also nicht zwischen
sequentiellem oder zufälligem I/O unterschieden.
25
Sort/Merge (relationale Datenbanken)
Sortieren ist eine Schlüsseloperation im query processing.
Oftmal setzen Algorithmen sortierte Daten voraus.
Sort/Merge:1.Top-down 2. Bottom-up (divide and conquer)
join:linear time, sort(n log2 n)
7 5 1 34 6 8 2
7 5 1 3
4 6 8 2
5 7 1 3
4 6 2 8
1 2 3 4 5 6 7 8
Im Hauptspeicher wird Quicksort jedoch vorgezogen!
26
External Sort/Merge
Bildung von initial runs:
• m Pufferseiten im Hauptspeicher werden mit Daten gefüllt
• interner Sortieralgorithmus (meist Quicksort)
• die sortierten Blöcke werden auf die Festplatte geschrieben
27
External Sort/Merge
1 Block für Output,m-1 für Input ,
Einlesen der jeweils ersten Seite der (m-1) inputs in den Hauptspeicher,
jeweils der „kleinste“ wird gepickt,dann merge,wenn ein Input run leer ist,
wird der nächste eingeladen
wenn Output-Block voll,dann in den Output-run schreiben und
mit Outputs höherer Ordnung „mergen“
O(n logmn)
28
Danke für die Aufmerksamkeit
Ein frohes Fest
und einen
guten Rutsch ins neue Jahr!
29
Herunterladen