Institut für Kartographie und Geoinformation Seminar Geoinformation WS 2001/2202 Räumliche Anfrageverfahren Überblick
2 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)
3 Einleitung Aufgaben eines Geoinformationssystems: Erfassung Verwaltung Analyse Modellierung und Visualisierung von Geoinformationen. Die Analyse von Daten erfolgt von dem Benutzer des Geoinformationssystems.
4 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!!!
5 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!
6 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
7 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 einräumliches Attribut raumbezogene Anfragen Geographische Objekte bestehen aus beschreibenden und räumliche Attributen (Geometrie)
8 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)
9 Structured Query Language (SQL) Syntax: logische (Boolesche) Operatoren: - SELECT...(Was soll gesucht werden?) - FROM...(Wo soll gesucht werden ?) - WHERE...(Welche Bedingungen gibt es ?) - UND, ODER -UNWAHR (NOT) -, = Verfeinerung der Anfrage - mehrere Anfragen nacheinander (select from current selection!) - Anfragen mit mehreren Kriterien
10 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!
11 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
12 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
13 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!
14 Schema 1: administrative units County County-code County-name Population Geometry State State-code State-name Geometry Country Country-code Country-name Geometry Aggregation: Ganzes-Teile Hierarchie Das ist kein UML-Diagramm! Bei einem UML-Diagramm sind noch Operationen(Methoden) beschrieben( 3-teilig).
15 Schema 2: highway network Highway Highway-code Highway -name Highway-type Section Section-code Section-name Number-lanes Geometry „einer-zu-vielen“ Beziehung City City-name Population Geometry Starts-atEnds-at
16 Schema 3: land use Wohngebiet, landwirtschaftliche Nutzung, Wald, Schule etc.....
17 Anfragetypen ALPHANUMERISCHE ANFRAGEN (ALPHA) RÄUMLICHE ANFRAGEN: (SPAT) INTERAKTIVE ANFRAGEN (INTER) Einteilung in folgende Typen:
18 Anfragebeispiele ALPHA ALPHA-ADM1: Einwohner im County of San Francisco ALPHA-ADM2: Liste der counties im State of California ALPHA-ADM3: Einwohner in den USA ALPHA-R1 : Anzahl der lanes im ersten Abschnitt des Interstate 99 ALPHA-R2 : Namen aller sections, die den Interstate 99 bilden
19 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
20 Anfragebeispiele INTER INTER-ADM7 : Beschreibung des am Bildschirm ausgesuchten counties INTER-ADM8 : counties, die in einem auf dem Bildschirm vorgegebenem Rechteck liegen (intersect)
21 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.
22 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.
23 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:
24 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: Seite1Seite2Seite3Seite4
25 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.
26 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 log 2 n) Im Hauptspeicher wird Quicksort jedoch vorgezogen!
27 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
28 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 log m n)
29 Danke für die Aufmerksamkeit Ein frohes Fest und einen guten Rutsch ins neue Jahr!