Geography - Bildungsportal Sachsen

Werbung
4.5. Speicherung von Geodaten
Anforderungen an die Speicherung
• Funktionalität der Speicherung und des Retrieval
• Effizienz der Abfrage
 Retrieval eines einzelnen Geoobjekts
 Punktanfragen
 Rechteckanfragen
 Regionsanfragen
 Abstandsanfragen
 Räumlicher Verbund
 Nächste‐Nachbarn‐Anfrage
 … Untersuchung möglicher Konzepte und Technologien:
 Speicherung in klassischen relationalen Strukturen
 Speicherung in BLOB
 Nutzung objektrelationaler Features
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
35
Relationale Speicherung
Charakteristik des relationalen Modells: nur atomare Datentypen
 Komplexe Datentypen müssen zerlegt werden
Beispiel: SELECT Punkt.laenge, Punkt.breite, Ring.RingID, Ring.art
FROM Bundesland, MultiPolygon, Polygon, Ring, Punkt
WHERE Bundesland.name = ´Sachsen´ AND
Bundeslang.mPolyID = Multipolyon.mPolyID AND
Multipolygon.mPolyID = Polygon.mPolyID AND
Polygon.polyID = Ring.polyID AND
Ring.ringID = Punkt.ringID
ORDER BY Multipolygon.mPolyID, Polygon.polyID,
Ring.ringID, Punkt.pos;
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
36
Speicherung als BLOB
• Speicherung der Geoobjekte als Binary Large Object (BLOB)
• Speicherung (und Retrieval) der Geometrien als Ganzes, aber
• keine Möglichkeit der Anfragebearbeitung und ‐optimierung
• keine Unterstützung für geometrische Operationen
• keine Überprüfung der Korrektheit von Geometrien
 für Vektorgeometrien nicht geeignet
 aber: für bestimmte Geoobjekte (Rasterbilder, Multimedia‐Objekte) trotzdem eine gute Lösung
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
37
Objektrelationale DBMS: Grundlagen
Erweiterung des relationalen Modells • Die grundlegenden Konzepte wie Ablage der Daten in Tabellen, deklarative Anfragesprache und alle DBMS‐Eigenschaften bleiben erhalten!
• Mengenwertige Attribute  Schachtelung / Entschachtelung in der Anfragesprache notwendig!
• Geschachelte Relationen  ein Attribut kann nicht nur mengenwertig sein, sondern sogar wieder selbst eine Relation
• Referenzen  ein Attribut kann eine Referenz auf andere Tupel (der gleichen oder einer anderen Relation enthalten)  nicht mehr auf Fremdschlüssel zur Realisierung von Beziehungen beschränkt
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
38
Objektrelationale DBMS: SQL‐Standard
Definiert in SQL:1999 –Erweiterungen nochmals in SQL:2003
Wichtige Konzepte
 User Defined Types (UDT)–(im Standard heißen diese Abstract Data Types, ADT)  User Defined Functions (UDF), um die definierten Datentypen „vernünftig“ benutzen zu können ( Methoden)
 Vererbungshierarchien für Tabellen und Typen  Objektidentitäten für komplexe Tupel in Relationen
Anwendung für unterschiedliche Bereiche
 vom Anwender selbstdefinierte, proprietäre Datentypen für spezielle Anwendung
 Komplex strukturierte Daten wie XML‐Daten, Geodaten, …
 Idealfall: Standardisierung der Bezeichnungen der UDTs und UDFs für eine bestimmte Anwendungsdomäne im SQL‐Standard Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
39
Objektrelationale Geodatenbanksysteme
 Definition eigener geometrischer Basistypen als Klassen (Umsetzung in objektrelationalen DBMS als UDTs)
 Erforderliche geometrische Methoden können den geometrischen Klassen hinzugefügt werden (Umsetzung in objektrelationalen DBMS als UDFs)
 In vielen Datenbankbetriebssystemen umgesetzt
– Oracle 10g/11g (Oracle Spatial) – IBM Informix (Spatial DataBlade) und DB2 (Spatial Extender)
– MS SQL Server 2005 u. 2008
– PostgreSQL/PostGIS
– MYSQL (Erweiterungen für geometrische Daten)
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
40
4.6. Geodaten im MS SQL Server 2008
Spatiale Datentypen des MS SQL Servers
Der SQL Server 2008 unterstützt zwei Typen von Geodaten:

Geometry ‐ flaches Erdmodell  für projizierte Koordinatensysteme (planar) und lineare Bezugssysteme

Geography ‐ rundes Erdmodell
 für geographische Koordinatensysteme (geodätisch)
• Beide Arten unterstützen alle OGC Typen
Geometry
Geography
 Unterstützung für Legacy Systeme
 Geeignet z.B. für Innenräume (Architektur, ...)
 Einfacher in der Berechnung
 Konzept schwieriger für geospatial
 Unterstützt existierende Anforderungen für weite Entfernungen (Schiffe, Militär, ...)
 Unterstützt neuere Geo‐
Anwendungen
 Komplexer in der Berechnung
 Einfacheres Konzept für geospatial
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
41
Arbeit mit spatialen Datentypen
 Geodaten mit dem Datentyp geometry oder geography werden binär gespeichert
 Instanzen des Typs können NULL sein
 Eingabe als
‐ Weil known Binary ‐ ST[Type] FromWKB
‐ Weil known Text ‐ ST[Type] FromText
‐ Geography Markup Language (GML) ‐ GeomFromGml
Außerdem SQLCLR Funktionen (MS SQL Common Language Runtime)
‐ Parse
‐ Point
 Jeder Typ unterstützt eine Anzahl von Methoden und Properties, die mit den OGC übereinstimmt
‐ Zusätzliche Erweiterungen für die Typen (MakeValid, Reduce, …)
‐ GEOMETRY implementiert alle OGC Properties und Methoden
‐ GEOGRAPHY implementiert die meisten OGC Eigenschaften und Properties
Beispiel:
Prof. Dr. G. Gräfe
CREATE TABLE Districts (
DistrictId int IDENTITY (1,1),
DistrictName nvarchar(20),
DistrictGeo geometry );
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
42
Datentyp Geometry – Point und LineString
Geometrietyp
Neben dem allgemeinsten Typ GEOMETRY können (u.a.) auch alle Typen des Simple‐Feature‐Modells angegeben werden: POINT, LINESTRING, POLYGON etc.
SRID falls kein räumliches Bezugssystem vorliegt, ist 0 anzugeben
Quelle: Microsoft – SQL Server
Beispiel:
INSERT INTO Districts (DistrictName, DistrictGeo)
VALUES ('Mensa', 'POINT (‐5 ‐5)');
INSERT INTO Districts (DistrictName, DistrictGeo)
VALUES (‚Weg',
geometry::STGeomFromText('LINESTRING (5 160, 10 115, 135 100)', 0));
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
43
Datentyp Geometry – einfaches Polygon
INSERT INTO Districts (DistrictName, DistrictGeo)
VALUES ('HTW',
WKT‐Format
geometry::STGeomFromText
('POLYGON ((10 25, 80 10, 150 145, 50 180, 15 115, 60 110, 10 25))', 0));
SELECT DistrictID, DistrictGeo,
Districts.DistrictGeo.STAsText() ‐‐ Klartext über STAsText() FROM Districts Where DistrictID=4
WKB‐Format
WKT‐Format
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
44
Datentyp Geometry – Multipolygon
Beispiel: Polygon mit Ausschnitt
INSERT INTO Districts (DistrictName, DistrictGeo)
VALUES ('Bibliothek',
geometry::STGeomFromText
('POLYGON(( 80 60, 100 100, 120 90, 100 50, 80 60 )' ‐‐ Ab hier der Ausschnitt "Innenhof" + ', ( 90 65, 100 90, 110 90, 100 60, 90 65))',0));
SELECT * FROM Districts;
GEOMETRY arbeitet „in der Ebene“:
Ein Polygon ist unabhängig der Ausrichtung eindeutig definiert
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
45
Datentyp Geography
Beispiel:
CREATE TABLE Gebiet
(GebietsId int IDENTITY (1,1), GebietsName nvarchar(20),
GebietGeo geography );
Anforderungen beim Datentyp Geography:
 Koordinaten werden in Breiten‐/Längengrad eingegeben
 Ändert sich zu Längengrad/Breitengrad vor RTM
 Koordinaten von außengelegene Polygonringe müssen „gegen den Uhrzeiger“ angegeben werden („Linke‐Hand“‐Regel), innen liegende (Löcher) „mit dem Uhrzeiger“
äußere Koordinaten innere Koordinaten
(Im Gegensatz dazu ist beim Datentyp GEOMETRY ist ein Polygon unabhängig der Ausrichtung eindeutig definiert)
 Ein einzelnes Geometrieobjekt kann nicht mehr als eine halbe logische Hemisphäre umfassen.
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
46
Koordinatentransformation beim Datentyp geography
001
002
003
004
005
006
N51 02.262 E13 44.212
N51 02.296 E13 44.107
N51 02.222 E13 44.117
N51 02.227 E13 44.074
N51 02.117 E13 44.144
N51 02.132 E13 44.070
109 m
109 m
110 m
110 m
111 m
111 m
Koordinatentransformation,
„Linke‐Hand“‐Regel beachten
INSERT INTO Gebiet VALUES ('HTW‘,
geography::STGeomFromText ( 'POLYGON (( 13.44212 51.02262
, 13.44107 51.02296
, 13.44074 51.02227
, 13.44117 51.02222
, 13.44070 51.02132
, 13.44144 51.02117
, 13.44212 51.02262 ) )’ ,4326) );
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
47
Polygon mit Ausschnitt beim Datentyp geography
INSERT INTO Gebiet VALUES ('Niedersachen‚
geography::STGeomFromText(
'POLYGON ( ( 10.7080 51.6387 , 10.5596 51.9899
, 10.9734 52.0562
(in Uhrzeigerrichtung)
…
, 7.0424 52.2062
, 7.6176 52.4459
, 8.0267 52.1244
, 8.5208 52.1644
, 8.3500 52.4635
, 9.1354 52.4687
, 9.7164 51.2969
, 10.7080 51.6387 )' ‐‐ Ab hier der Ausschnitt "Bremen" + ',
( 8.5009 53.2254
, 8.9835 53.1127
„Linke‐Hand“‐Regel
, 8.9287 52.9992
(gegen Uhrzeigerrichtung)
, 8.7099 53.0355
, 8.6237 53.1599
, 8.5009 53.2254) )'
SRID: Geographisches Koordinatensystem WGS84 , 4326));
(EPSG‐Code: 4326) in Dezimalgrad
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
48
Methoden auf spatiale Datentypen
Vielzahl von Methoden für
 Validierung von Geometrien
 Metrische Funktionen
 Geometrische Funktionen
 Verschneidungen
 Topologische Beziehungen
 Geometrische Aggregatfunktionen
 Koordinatentransformationen
…
STArea
STAsBinary
STAsText
STBoundary
STBuffer
STCentroid
STContains
STConvexHull
STCrosses
STDifference
• GEOMETRY implementiert alle OGC Properties und STDimension
STDisjoint
Methoden
• GEOGRAPHY implementiert die meisten OGC Eigenschaften STDistance
STEndpoint
und Properties
STEnvelope
STEquals
Siehe MSDN‐Library
STExteriorRing
STGeometryN
OGC‐Methoden für geometry‐Instanzen:
http://msdn.microsoft.com/de‐de/library/bb933960.aspx STGeometryType
STInteriorRingN
STIntersection
OGC‐Methoden für geography‐Instanzen:
STIntersects
STIsClosed
STIsEmpty
STIsRing
STIsSimple
STIsValid
STLength
STNumGeometries
STNumInteriorRing
STNumPoints
STOverlaps
STPointN
STPointOnSurface
STRelate
STSrid
STStartPoint
STSymDifference
STTouches
STUnion
STWithin
STX
STY
http://msdn.microsoft.com/de‐de/library/bb933802.aspx
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
49
Geometrische Methoden (1)
Validierung von Geometrien:
• Prüfung der Korrektheit von Geometrien
• wird (aufgrund des Rechenaufwands) standardmäßig nicht überprüft
• Funktionen zur Überprüfung: STIsValid
Metrische Funktionen:
• Länge eines Linienzuges: STLength bzw. Umfang von Flächen (STBoundary)
• Flächeninhalt einer Geometrie: STArea
• Abstand zwischen zwei Geometrien: STDistance
Beispiele: SELECT A.GebietName,
A.Gebiet.STArea() / 1000000 AS FlaecheKM2,
A.Gebiet.STLength() / 1000 AS UmfangKM
FROM Gebiet AS A;
DECLARE @punkt geography;
SET @punkt = geography::Parse('POINT(7.0424 52.2062)');
Neue Instanz als
Bezugspunkt
SELECT ID, GebietName, Gebiet.STDistance(@punkt) / 1000 AS [Abstand KM] FROM Gebiet ORDER BY Gebiet.STDistance(@punkt);
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
50
Geometrische Methoden (2)
Geometrische Funktionen:
Geometrische Funktionen, die zu einem Geometrieobjekt ein anderes Geometrieobjekt berechnen:
• Minimal umgebendes Rechteck: STEnvelope
• Konvexe Hülle: STConvexHull
• Pufferzone: STBuffer
Verschneidungen:
Verschneidungsoperationen zweier Geometrien, deren Ergebnis eine neue Geometrie ist
• STIntersection (Überschneidung)
• STUnion (Vereinigung)
• STDifference (Differenz)
• STSymDifference
Beispiel:
Prof. Dr. G. Gräfe
DECLARE @a geometry; DECLARE @b geometry;
SET @a = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);
SET @b = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);
SELECT @a.STIntersection(@b).ToString();
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
51
Geometrische Methoden (3)
Topologische Funktionen: ‐ Topologische Beziehung zweier Geo‐Objekte:
• STEquals (Gleichheit)
• STDisjoint (keinerlei Berührung)
DECLARE @pkt geography;
• STIntersects (nicht Disjoint)
• STTouches (Randberührung) SET @pkt = geography::Parse
('POINT(13.44107 51.02296)');
SELECT * FROM Gebiet
WHERE Gebiet.STDisjoint(@pkt) = 1;
Die Ränder von geom1und geom2schneiden sich, nicht aber deren Inneres.
• STCrosses (sich kreuzen)
Die Dimension des Schnitts von geom1mit geom2 ist kleiner als die maximale Dimension von geom1und geom2 und der Schnitt enthält innere Punkte von geom1und geom2 und der Schnitt ist nicht gleich geom1oder geom2.
• STOverlaps (Überlappung im strengen Sinne)
Die Dimension des Schnitts von geom1mit geom2ist gleich der Dimension von geom1und geom2 und der Schnitt ist nicht gleich geom1oder geom2.
• STWithin (sich innerhalb befinden)
• STContains (enthalten)
‐ Aufbau der topologischen Funktionen (auch hier „Richtung“ beachten!)
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
52
4.7. Anfragebearbeitung in Geodatenbanksystemen
Räumliche Basisanfragen (1)
Punktanfragen
Rechteckanfragen
Regionsanfragen
Abstandsanfragen
Geometrischer Verbund (Spatial Join)
Abbildungen: Brinkhoff: Geodatenbanksysteme Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
53
Rechteckanfrage
Räumliche Selektion mit Anfragegeometrien (z.B. Rechteckanfrage)
 Anfragegeometrien können direkt spezifiziert werden oder durch die Funktionen MakePoint(Float, Float)und MakeBox2D(Geometry, Geometry) konstruiert werden.
Beispiel einer Rechteckanfrage:
SELECT geo
FROM Stadt
WHERE geo && MakeBox2D(MakePoint(55,55), MakePoint(115,155)); Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
54
Räumliche Basisanfragen (2)
‐ NearestNeighborQuery (NNQ):  bestimmt zu einem Geoobjekt das nächstgelegene Objekt oder die k nächstgelegenen Objekte. Alternativ kann die Suche auch von einem Anfragepunkt p aus erfolgen.
 Verschiedene Varianten der NNQ:  einfache NNQ: bestimmt als Anfrageergebnis das Geoobjekt aus M, das den geringsten Abstand zu p aufweist
 k‐NearestNeighborQuery: bestimmt die k nächstgelegenen Nachbarn aus M zu p(k: ganze Zahl größer 0)  inkrementelle NNQ: bestimmt zunächst das zu p nächstgelegene Geoobjekt aus M. Danach kann wiederholt das (nächste)
Objekt mit der geringsten Distanz zu p abgerufen werden
Abbildung: Brinkhoff: Geodatenbanksysteme Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
55
Mehrstufige Anfragebearbeitung
Anfrage in mehreren Stufen durch Filterschritte:
• Identifikation von Kandidaten und Treffern in frühen Filterschritten durch schnell ausführbare Algorithmen und Datenrepräsentationen. • erst im letzten Schritt (Verfeinerungsschritt, Refinement Step): aufwändiger exakter Test der Anfragebedingung auf einer reduzierten Kandidatenmenge:
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
56
Approximationen (1) Konservative Approximationen • enthalten die Geometrie vollständig
• dienen in erster Linie dazu, Fehltreffer auszuschließen
• sind meist konvex, wodurch Berechnungen beschleunigt werden
Wichtigste konservative Approximation: MUR (Minimal umgebendes Rechteck) bzw. MBR (Minimum Bounding Rectangle) Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
57
Approximationen (2) Verschiedene Varianten der konservativen Approximation: MUR
gedrehtes MUR
Konvexe Hülle MU 5‐Eck Quelle: Brinkhoff: Geodatenbanksysteme Abwägen zwischen Genauigkeit (Minimierung der Fehlfläche) und Speicherbedarf sowie dem Aufwand beim Test einer Anfragegeometrie
 Beachtung des Zusammenhanges zu räumlichen Index
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
58
4.7. Indexierung von Geodaten
Indexstrukturen in klass. DBMS
B‐Baum
B*‐Baum
Ein B*‐Baum ist ein ausgeglichener sortierter Mehrweg‐Schlüsselbaum, in dessen Nichtblattknoten die Schlüssel und Zeiger zum nächsten Knoten und in dessen Blättern die Tupel (Sätze) stehen.




Schlüsselbaum:
Mehrweg:
sortiert:
ausgeglichen:
In den Knoten des Baumes sind Schlüssel abgespeichert.
Jeder Knoten kann mehrere Nachfolger haben (außer Blätter).
Die Schlüssel in den Knoten einer Ebene sind aufsteigend sortiert.
Die Äste des Baumes haben die gleiche Länge.
ABER: Eignung für Geodaten (Geometrieobjekte)? Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
59
Räumliche Indexe: Anforderungen
Räumliche Indexstrukturen müssen
 Approximationen von Punkten, Linien und Flächen verwalten
 Räumliche Basisanfragen effizient ausführen
 Daten, die räumlich benachbart sind (und daher in räumlichen Anfragen häufig gemeinsam eingelesen werden), sollten mit hoher Wahrscheinlichkeit in einem gemeinsamen Datenbankblock liegen
 Geoobjekte laufend einfügen, löschen und verändern können, wobei die Effizienz der Indexstruktur dadurch sich nicht (wesentlich) verschlechtern darf
 eine gute Speicherplatzausnutzung garantieren
 robust bzgl. Anfragezeiten und Speicherplatzausnutzung gegenüber Ungleichverteilungen der Geoobjekte im Datenraum sein
Räumliche Indexstrukturen wichtiges Instrument zur effizienten Ausführung von räumliche Filteroperationen in Geodatenbanksystemen Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
60
Quadtree
Prinzip: k‐dimensionaler Datenraum wird rekursiv in 2k gleich große Zellen („Kacheln“) unterteilt
 Varianten für Punkte, Linien und Flächen
Probleme dieses Ansatzes:
 Blöcke mit sehr wenigen Geo‐Objekten
 Was passiert beim Überlauf?
Beispiel: PR‐Quadtree (Point‐Region‐Quadtree)
Quelle: Brinkhoff: Geodatenbanksysteme Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
61
Spatial Indexes für Datentyp GEOMETRY in MS SQL (1)
1. Bevor Daten in einen räumlichen Index eingelesen werden, erfolgt eine einheitliche hierarchische Zerlegung des Raums. Während der Indexerstellung wird der Raum in eine vier Ebenen umfassende Rasterhierarchie zerlegt.
Quelle: Microsoft – SQL Server
2. Festlegung der Rasterdichte
Prof. Dr. G. Gräfe
Schlüsselwort
Rasterkonfiguration
Anzahl von
Zellen/Ebene
Anzahl Zellen auf Ebene 4
LOW
4X4
16
65.536
MEDIUM
8X8
64
16.777.216 HIGH
16X16
256
4.294.967.296
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
62
Spatial Indexes für Datentyp GEOMETRY in MS SQL (2)
CREATE SPATIAL INDEX index_name
ON <object> ( spatial_column_name )
USING GEOMETRY_GRID WITH ( BOUNDING_BOX = ( xmin=0, ymin=0, xmax=500, ymax=200 ), GRIDS = (LOW, LOW, MEDIUM, HIGH), CELLS_PER_OBJECT = 64);
Quelle: Microsoft – SQL Server
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
63
Spatial Indexes für Datentyp GEOGRAPHY in MS SQL (1)
Zur Zerlegung des Raums des geodätischen Ellipsoides unterteilt das Geografierastermosaikschema die Oberfläche des Ellipsoids in eine obere und eine untere Hemisphäre.
Schritte:
1. Jede Hemisphäre wird auf die Facetten einer vierseitigen Pyramide projiziert.
2. Die beiden Pyramiden werden auf eine Ebene reduziert. 3. Die vereinfachten Pyramiden werden verbunden, sodass sie eine nicht‐
euklidische Ebene bilden.
Prof. Dr. G. Gräfe
Quelle: Microsoft – SQL Server
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
64
Spatial Indexes für Datentyp GEOGRAPHY in MS SQL (2)
‐ Aufbau analog des Index für Datentyp geometry, aber Verwendung einer standardisierten Rasterstruktur
‐ sind für diesen Datentyp aus Performancegründen dringend erforderlich, einige OGC‐Methoden benötigen diesen Index zwingend
Beispiele:
CREATE SPATIAL INDEX indexname
ON <tabelle> (geography‐attribut) USING GEOGRAPHY_GRID
CREATE SPATIAL INDEX indexname
ON <tabelle> (geography‐attribut) WITH ( BOUNDING_BOX = ( 4033140, 5080080, 4885090, 6108780 ))
Vereinfachte obere Hemishäre
Vereinfachte untere Hemishäre
Quelle: Microsoft – SQL Server
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
65
R‐Baum: Idee
Alle bisher vorgestellten Verfahren haben den Datenraum in disjunkte Teile aufgeteilt.
 Objekte, die die Grenzen dieser disjunkten Blöcke überlappen, müssen mehrfach gespeichert werden müssen
 Anderer Ansatz: Speicherung von Blockregionen, die sich ggf. überlappen können, aber die jeweils die Geometrien vollständig enthalten Implementierung beruht auf dem GiST:
• Projekt der Datenbankgruppe der University of Berkeley
• B+‐Bäume, R‐Bäume und andere Indexstrukturen haben eine relativ ähnliche Grundstruktur und Einfüge‐, Lösch‐und Suchalgorithmen Bereitstellung einer verallgemeinerten, einfach anpassbaren Indexstruktur, die die Funktionalität all dieser Indexstrukturen in einem Programmpaket bereitstellt: GeneralizedSearchTree (GiST)
• http://gist.cs.berkeley.edu/
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
66
R‐Baum: Aufbau
Aufbau eines R‐Baums:
• Höhenbalancierter Baum • Datenknoten (= Blattseiten) enthalten MURs der Geometrieobjekte
• Directory‐Knoten enthalten Indexeinträge der Form (R, Ref) mit  R: Rechteck
 Ref: Referenz auf einen Teilbaum, wobei R die Datenrechtecke des zugehörigen Teilbaums minimal überdeckt Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
67
R‐Baum: Punkt‐und Rechteckanfragen
Bearbeitung Punktanfragen:
• Start bei der Wurzel: Bestimmung aller Einträge (Rechtecke), welche den Anfragepunkt enthalten
• Rekursive Fortsetzung auf jeder Ebene bis zu den Datenknoten
Bearbeitung Rechteckanfragen:
• Start bei der Wurzel: Bestimmung aller Einträge (Rechtecke), die das Anfragerechteck schneiden
• Rekursive Fortsetzung für jedes ermittelte Rechteck auf jeder Ebene bis zu den Datenknoten
Quelle: Brinkhoff: Geodatenbanksysteme Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
68
Vergleich Quadtree und R‐Baum
Welche Datenstruktur ist als Zugriffsstruktur für Geoobjekte geeigneter?
 Pauschal nicht zu beantworten, auch aufgrund der Fülle von Varianten
 Quadtrees sind die am häufigsten verwendeten räumlichen Zugriffsstrukturen in Geo‐Informationssystemen
 Vergleich der in Oracle verfügbaren Quadtrees mit R‐Bäumen zeigte jedoch, dass R‐
Bäume i. A. geeigneter sind (Quelle: Seeger)
 Trend in Geodatenbanksystemen heute eher zu R‐Bäumen Quadtrees und R‐Bäume sind wichtigste spatiale Indexstrukturen
 Vielzahl von Varianten für verschiedenste Geometrietypen (Quadtrees) bzw. unterschiedliche Split‐Strategien (R‐Bäume)
 Animation verschiedener Varianten: http://donar.umiacs.umd.edu/quadtree/
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
69
Erweiterungen von Geo‐DBS ‐ Verwaltung von Rasterdaten
1. einfachste Variante: Speicherung als BLOB
2. Spezielle Rasterdatenbanksysteme (rasdaman)
3. Erweiterungen „normaler“ DBMS – z.B. Oracle Spatial GeoRaster
•
Georeferenzierung
Umrechung Welt‐/Pixelkoordinaten
•
Anfrageunterstützung
Zugriff Pixelwerte/Teilbereiche
räumliche Indexierung
•
Speicherung
Komprimierung
Kachelung
Bildpyramiden
•
Technische Umsetzung
objektrelationale Typen mit entsprechenden Attributen und Methoden
Quelle: Brinkhoff: Geodatenbanksysteme Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
70
Erweiterungen von Geo‐DBS ‐ 3‐D‐Geodatenbanken
Anwendungen:
 3D‐Stadtmodelle
 Klimamodelle für Simulationen
 Luftfahrtinformationssysteme mit Flugplatz‐und Hindernisdaten
 Geologische Anwendungen
 AugmentedReality
Herausforderungen:
 3D‐Datenmodell (schon im abstrakten OGC Feature GeometryModel definiert, aber noch nicht in den Implementierungsstandards Simple Feature bzw. SQL/MM Spatial umgesetzt)
 3D‐Anfragebearbeitung
• Basisanfragen
• Indexierung
• Geometrische Algorithmen
Quelle: Bild: www.cybercity3d.com
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
71
Erweiterungen von Geo‐DBS ‐ Spatio‐Temporale Geo‐DBMS
Anwendungen:
 Umweltinformations‐und ‐analysesysteme
 Telematik‐Anwendungen  Location‐BasedServices
Herausforderungen:
 Geoobjekte besitzen zusätzliche Angaben (Transaction Time, ExpirationTime, Geschwindigkeit, Richtung, …)
 Räumliche, zeitliche und spatio‐temporale Basisanfragen müssen effizient unterstützt werden
Anfragen / Indexierung der Vergangenheit, Gegenwart (und Zukunft)
 Änderungen können genauso häufig wie Anfragen erfolgen
Quelle: Bild: www.geo.de
Prof. Dr. G. Gräfe
EDBT/MA ‐ 4. Geo‐Datenbanksysteme
|
72
Herunterladen