P r o s e m i n a r Geoinfo II Relationale Datenbanken die Architektur von ArcSDE Carsten Himpler Bonn, 03.02.2003 Übersicht Relationale Datenbanken ArcSDE Architektur Datenintegrität Datenspeicherung Räumliche Anfragen RELATIONALE GEODATENBANKEN Was ist eine relationale Geodatenbank? Datenbank, die räumlich bezogene geographische Daten enthält Was ist eine relationale Geodatenbank? Datenbank, die räumlich bezogene geographische Daten enthält Repräsentation von Dingen als Objekte mit Eigenschaften, Verhalten und räumlichen Beziehungen; Rhein Name, Gesamtlänge… Flussrichtung Breite (x,y), Tiefe (x,y),… Was ist eine relationale Geodatenbank? Datenbank, die räumlich bezogene geographische Daten enthält Repräsentation von Dingen als Objekte mit Eigenschaften, Verhalten und räumlichen Beziehungen; Definition von Beziehungsregeln zwischen Objekten möglich (referentielle Integrität) Rhein Name, Gesamtlänge… Flussrichtung Breite (x,y), Tiefe (x,y),… Mindestabstand Gebäude - Ufer Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Domains Validation rules Raster datasets Rasters TIN datasets Locators Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Domains Validation rules Raster datasets Rasters TIN datasets Locators Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Domains Validation rules Raster datasets Rasters TIN datasets Locators Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Relationship classes Domains Validation rules Raster datasets Rasters TIN datasets Locators Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Objekt: nichträumlich z.B.Grundstückseigentümer Relationship classes Objekt class: Datentabelle von Objekten Domains Validation rules Raster datasets Rasters TIN datasets Locators Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature: räumlich, koordiniert (x,y) Feature classes Typen: Punkt, Linie, Kurve, Polygon, Fläche Relationship classes z.B. Grundstück Feature Class: Domains Validation rules Raster datasets Rasters TIN datasets Tabelle von Features des gleichen Types enthält feature attributes (Adresse, m²,..) unabhängig von anderen f.classes Alle feature classes eines featuredatasets haben das gleiche Koordinatensystem! (spatial reference) Locators Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Relationship classes Relationship: verlinkt räumliche und nicht räumliche Dinge z.B. Zuordnung von Grundstück und Eigentümer Relationship class: Domains Validation rules Raster datasets Rasters TIN datasets Locators speichert Beziehungen zwischen classes in Tabellen Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Relationship classes Geometric networks: Geom. networks Benutzerdefinierte Sammlung von feature classes Domains Validation rules feature classes bilden ein geometrisches Netzwerk aus Raster datasets Rasters TIN datasets Locators Kanten, Knoten und Schritten („turn“) Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Relationship classes Geom. networks Planar topologies Domains Validation rules Raster datasets Rasters TIN datasets Locators Planar topologies: verbinden faetures zu kontinuierlichen Flächenobjekten erlauben faetures gemeinsame Grenzen Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Relationship classes Geom. networks Planar topologies Domains: Domains Validation rules Raster datasets Rasters TIN datasets Locators Definition von wahren Attributwerten (text, numerisch) Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Relationship classes Geom. networks Planar topologies Validation rules: Domains Validation rules Raster datasets erzwingen Datenintegrität durch Domänen, relationship rules, connectivity rules Rasters TIN datasets Locators Bsp.: Verbindungsregeln für verschieden dicke Wasserleitungen Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets Raster data: (spatial reference) Objekt classes Feature classes Relationship classes kopierte Karte, Oberfläche, Gitterdaten (Temp.), Luftbilder Geom. networks Planar topologies Domains Pyramidenform Problem: Datengrösse!!! Validation rules Speicherform: Tabelle Raster datasets Rasters TIN datasets Locators Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes TIN datasets: Feature classes Relationship classes Geom. networks trianguliert, unregelmäßig verteilte Punkte mit zWerten Planar topologies Domains Validation rules Raster datasets Rasters TIN datasets Locators Speicherungsform: in coverage workspaces Speicherung noch nicht in Geodatenbanken!!! Inhalte und Daten in einer Geodatenbank GEODATENBANK feature datasets (spatial reference) Objekt classes Feature classes Locators: Relationship classes Geom. networks Planar topologies Domains Validation rules Raster datasets Rasters TIN datasets Locators Definition von Konvertierungsprozessen, die alphanumerische Beschreibungen geographischen features zuordnen (Bsp.: Zuordnung Adresstabelle - Orte) ArcSDE Was ist ArcSDE? ArcSDE ist keine Datenbank! Schnittstelle zu relationalen Datenbanken ArcView Tool zum Speichern, Verwalten und Bearbeiten von eigenen und fremden Daten ArcEditor ArcInfo ArcExplorer HTML (Java edition) Viewer ArcGIS Desktop ArcIMS ArcSDE Gateway Dateien Datenbank ArcIMS Server ArcSDE Hauptproblem: Wie verwalte und bearbeite ich eine so große Datenmenge bei gleichzeitiger Reduzierung des Rechenaufwands? ArcSDE Hauptproblem: Wie verwalte und bearbeite ich eine so große Datenmenge bei gleichzeitiger Reduzierung des Rechenaufwands? Lösung: Systemorientierte Datenverwaltung Die ArcSDE Architektur Three-tier-Architektur (application server) Two-tier-Architektur (direct connection) Die Three-tier-Architektur client application Anfrage Ergebnis ArcSDE application server DBMS Die Three-tier-Architektur client application Verteilung der Anwendungen auf server und client cooperative processing Anfrage Ergebnis ArcSDE application server DBMS Die Three-tier-Architektur client application Anfrage Ergebnis ArcSDE application server Probleme: Serverausfall Datenklammerung Viele Clients: Versionen DBMS Two-tier-Architektur ArcSDE Client (+ server) direct connection DBMS Two-tier-Architektur ArcSDE Client (+ server) direct connection DBMS Performance-Vorteile bezüglich Zugriff Verwaltungsaufwand Serverausfall ABER: Hardwareanforderungen Die ArcSDE Architektur Vorteil dieser Architekturen: Datenverwaltung auf dir zur Verfügung stehende Hardwareleistung abstimmbar. Datenspeicherung ArcSDE Datenintegrität Integritätsverwaltung von: a) Punkt, Linie, Bogen, Polygon b) speziellen Beschränkungen (in Datenbank nicht sinnvoll) z.B. Mindestbandbreite oder Polygon mit höchstens 5 Seiten Datenspeicherung in Datenbank: indizierte Tabellen bisher: nur FID (siehe GIS I: Redundanzfreiheit) jetzt: FID + Typenindex zur Suchbeschleunigung Datenspeicherung Binary Large Object (BLOB) Binärcode Normalized Schema Koordinaten Geometry Type Geometrie Räumliche Anfragen Eigenschaften räumlicher Objekte: i.d.R. hoher Speicherplatzbedarf komplexe Berechnungen (steigende Kosten und CPU-Anforderungen) Räumliche Anfragen Eigenschaften räumlicher Objekte: i.d.R. hoher Speicherplatzbedarf komplexe Berechnungen (steigende Kosten und CPU-Anforderungen) Prinzip: angenäherte Repräsentation eines Objektes Filter- und Verfeinerungstechniken (umgesetzt durch SQL) Räumliche Anfragen Eigenschaften räumlicher Objekte: i.d.R. hoher Speicherplatzbedarf komplexe Berechnungen (steigende Kosten und CPU-Anforderungen) Prinzip: angenäherte Repräsentation eines Objektes Filter- und Verfeinerungstechniken (umgesetzt durch SQL) Ergebnis: Lieferung eines wahrscheinlichen Ergebnisses schnellere und effektivere Suche Räumliche Anfragen Window queries Finde alle Bonner Straßen, die den Hofgarten durchqueren Join queries Finde alle öffentlichen Gebäude der Stadt Bonn, die mehr als 8000 m² Büroflächen haben, und innerhalb von 10 min vom Hauptbahnhof mit öffentlichen Verkehrsmitteln erreichbar sind. Problem: Wegen Größe der Ergebnismenge exakte Fragestellung notwendig! Räumliche Anfragen Window queries Finde alle Bonner Straßen, die den Hofgarten durchqueren Join queries Finde alle öffentlichen Gebäude der Stadt Bonn, die mehr als 8000 m² Büroflächen haben, und innerhalb von 10 min vom Hauptbahnhof mit öffentlichen Verkehrsmitteln erreichbar sind. Problem: Wegen Größe der Ergebnismenge exakte Fragestellung notwendig! Räumliche Anfragen Umsetzung: Spatial Indexing (SQL) SELECT Parks.Name FROM Parks, Roads WHERE MDSYS.SDO_RELATE (Parks.Geometry, Roads.Geometry, ‘MASK=OVERLAPBDYINTERSECT‘) = TRUE AND Roads.Name = ‚A555‘ Spatial Indexing Ziel: schnelle Lieferung eines Datenpfades durch Erleichterung räumlicher Selektion Spatial Indexing Ziel: schnelle Lieferung eines Datenpfades durch Erleichterung räumlicher Selektion Prinzip: Durchsuchung von Teildatensätzen 1. Hinzufügen von best. räuml. Datenstrukturen zum System (vgl. Binärer Suchbaum bei Standartattributen) 2. Kartierung von räuml. Objekten in einem eindimensionalen Raum Speicherung in einem eindimensionalen Index, wie binärer Suchbaum Räumliche Anfragen erfolgen nur anhand von Tabellen Spatial Indexing Umsetzung: Quad-Tree-Indexing R-Tree-Indexing Spatial Indexing Vorraussetzung: kontinuierliches Datenmodel , d.h. keine Datenaufspaltung Bsp.: Speicherung eines Grundstückes als Polygon oder Speicherung mehrerer Polygone zu einer kontinuierlichen feature class Quad-Tree-Indexing Prinzip: Anbringung eines eines numerierten Gitters an eine feature class Anlegung einer Indextabelle Inhalt: welches feature in welchen Quadranten fällt Index Grid QUAD Quad-Tree-Indexing Prinzip: Anbringung eines eines numerierten Gitters an eine feature class Anlegung einer Indextabelle Inhalt: welches feature in welchen Quadranten fällt Index Grid hierarchiches Muster TREE Quad-Tree-Indexing Prinzip: Anbringung eines eines numerierten Gitters an eine feature class Anlegung einer Indextabelle Inhalt: welches feature in welchen Quadranten fällt Index Grid INDEXING R-Tree-Indexing Prinzip: kleinstes umschließendes Viereck sinnvoll bei n-dimensionaler Datenindizierung (dynamisch) Bsp.: Ölförderung (zeitabhängig) R-Tree-Indexing a d root b A root c B e A a b B c d e Resumé Was ist anders als bisher? Informationsmenge Genauere Suchergebnisse Schnellere (bzgl. Datenmenge) Suchergebnisse Datenverwaltung auf Hardware abstimmbar Projektbildung (Versionen) ABER: höhere Hardwareanforderungen