330 likes | 454 Views
Projektgruppe Vertiefer Kartographie. Anfragesprachen für Raumbezogene Daten. Sascha Rudolph. Institut Für Kartographie und Geoinformation Bonn . Gliederung des Vortrags. Relationale Datenbank - Management - Systeme (RDBMS) Structured Query Language (SQL)
E N D
Projektgruppe Vertiefer Kartographie Anfragesprachenfür Raumbezogene Daten Sascha Rudolph Institut Für Kartographie und Geoinformation Bonn
Gliederung des Vortrags • Relationale Datenbank - Management - Systeme (RDBMS) • Structured Query Language (SQL) • Unterstützung bei der Formulierung von Anfragen • Räumliche Erweiterung von SQL • Möglichkeiten und Grenzen von ArcInfo
Relationale Datenbanken • Relation ist mathematischer Begriff für Tabelle • Relationale Datenbank-Management-Systeme (RDBMS) • Tabellen als Repräsentation von Eigenschaftsgruppen (Entitäten) • Felder sind atomar • In jedem Attribut befindet sich eine Information • Festlegung von Gültigkeitsregeln für Felder einer Tabelle (zusätzlich zum Datentyp)
Relationale Datenbanken • Eindeutige Attribute werden als „Candidate Key“ bezeichnet • Datensätze werden mit einem eindeutigen Primärschlüssel (Primary Key) versehen (z.B. ID) • Kann auch aus mehreren Feldern bestehen, die zusammen eindeutig sind • Verknüpfungen der Attribute verschiedener Entitäten über Primär- Fremdschlüssel • Liefert eine Verknüpfung von Entitäten, die in einer logischen Beziehung zu einander stehen Beispiel : Kanten - Knoten
Relationale Datenbanken • Referentielle Integrität • Erstellen von Beziehungen zwischen Datensätzen auch bzw. besonders verschiedener Tabellen, deren Einhaltung die RDBMS überprüft • Indizierung von Feldern zur Steigerung der Geschwindigkeit bei der Datensatzsuche (Aufbau einer Baumstruktur) • Erstellung von virtuellen Tabellen „Views“ mit Hilfe der Anfragesprache SQL • Relationale Datenbanken: Oracle 8i, MS SQL Server, DBase, MS Access
Grenzen der RDBMS ? • Relationale Datenbanken enthalten atomare (unteilbare) Felder • Felder haben bestimmten Datentyp und feste Länge • Indizierung von Feldern und keinen Inhalten von Feldern • Operationen beschränken sich auf das Attribut als ganzes • Keine Operationen mit Objekten möglich • Beispiel GIS : (Körper, (Flächen, (Kanten, Knoten)))
S Q L • Was ist SQL ? • Was gibt es für Hilfsmittel bei der Formulierung von Anfragen ? • Grenzen von SQL
Was ist SQL ? • Ursprünglich von IBM entwickelte Datenbankanfragesprache • Standardsprache der RDBMS - Ziel Datenbankunabhängigkeit • Erstellen von Tabellen - Methode „ CREATE TABLE “ • Modifizieren von Tabellen - Methoden „ DELETE FROM “ ; „ INSERT INTO “ • Selektieren von Datensätzen, die bestimmten Kriterien entsprechen - Methode SELECT .. FROM .. WHERE • Indizieren von Feldern - Methode „CREATE INDEX“
S Q L • Verknüpfung von Entitäten - Methode „JOIN“ etc. • Aggregatfunktionen SUM, MIN, MAX, AVG, Count, GROUP Beispiel
Hilfsmittel für SQL • Query by Example (QEB)
Grafische Hilfsmittel für SQL • MS Access Designer ~ MS SQL Server
Grenzen von SQL ? • Keine Rekursiven Anfragen • Keine Anfragen an Unterobjekte • Anfragen werden bei einer Vielzahl von Tabellen mit vielen „Joins“ sehr unübersichtlich Beispiel • Keine SQL Designer, die verschachtelte Anweisungen erzeugen können - Anfragen können sich aber auf Anfragen beziehen • Existenz vieler Dialekte • Datenbankunabhängigkeit bei komplexeren Anfragen nicht mehr gesichert • Programme mit SQL-Code müssen an die verwendete Datenbank angepaßt werden • z.B. MS Access Anfrage SELECT * FROM.. funktioniert mit MS SQL Server nicht
Speicherung in vielen Tabellen einer RDBMS 1 Getrennte Speicherung von Geometrie und Sachdaten Attribute Shapefile 2 Speicherung der Objekte in Binärfeldern einer RDBMS 3 Objektorientierte Datenbank 4 Speicherung von Objektdaten 011010010111000111001 Geometrie + Attribute
Beispiel Flächen Tabelle Flächen Tabelle FlächenKanten Tabelle Kanten (Linien) Tabelle Knoten Speichern der Koordinaten der einzelnen Knoten in den Spalten x,y,z B C D A • Vorteile: Teilobjekte in verschiedenen Tabellen • Mit vorhandenen Standarddatenbanken (RDBMS) realisierbar
Nutzer interessieren keine Kanten oder Knoten, sondern Flächen - umständliche Handhabung z.T. Redundante Speicherung (FlächenKanten) Sehr langsam, da zur Darstellung der Flächen zunächst „FlächenKanten“ und schließlich Anfangs- und Endpunkte gesucht werden Probleme bei der Speicherung von „Arcs“ zusätzliche Spalten in der Kantentabelle oder Approximation durch sehr viele Kanten Keine räumlichen Operationen über Anfragen umständliche und langsame Zusatzprogrammierung • Nachteile: Teilobjekte in verschiedenen Tabellen
Realisierung mit RDBMS möglich Speicherung von Objekten in Shapefiles • Vorteile: • Nachteile: Geometrie und Attribute getrennt • Zusatzprogrammierung für Laden, Ändern und Speichern der Objekte aus den Shapefiles • Programmierung der Verknüpfung von Attributen und Geometrie nötig • Gefahr der Inkonsistenz ! • Keine räumlichen Operationen über Anfragen möglich
Beispiel Flächen Tabelle Flächen Speichern der Koordinaten der einzelnen Punkte der Fläche und zusätzlicher Attribute wie z.B. „Bounding Box“ hintereinander in einem Binärfeld Weitere Attribute der Flächen werden in zusätzlichen Spalten abgelegt B • Vorteile: C D A Objekte in Binärfeldern • Nur eine Tabelle für die Speicherung eines Objekts • Modellierung entspricht Speicherung • Realisierung mit RDBMS möglich
Anfragen über SQL - keine direkten räumlichen Anfragen Sollen Unterobjekte wie Kanten & Knoten zügig bearbeitet werden, ist deren Speicherung (redundant) in zusätzlichen Tabellen erforderlich Gefahr der Inkonsistens ! Laden und speichern der Objekte aus dem Binärfeld über Zusatzprogramme • Nachteile: Objekte in Binärfeldern
Eigenschaften Bereitstellung von z.T. frei definierbaren Objekten zur Speicherung in einem Feld einer DB Möglichkeit der Vererbung von Eigenschaften Erweiterung und Optimierung von SQL mit Räumlichen Anfragen • Vorteile: Objektorientierte Datenbank • Speicherung entspricht Modellierung • schnellere, benutzerfreundliche Anfragen ohne Zusatzprogrammierung über erweiterte Anfragesprache
kaum objektorientierte Datenbanken vorhanden z.B. in Support GIS vorhandene Datenbanken sind meistens nicht 100% objektorientiert bzw. räumlich optimiert kein Standard wie SQL bei den relationalen Datenbanken vorhanden • Nachteile: Objektorientierte Datenbank
Alte GIS - Systeme Speicherung in vielen Tabellen einer RDBMS 1 ArcView, ArcInfo Getrennte Speicherung von Geometrie und Sachdaten 2 ArcInfo, GeoDB Speicherung der Objekte in Binärfeldern einer RDBMS 3 Support GIS Objektorientierte Datenbank 4 Objekte in GIS - Systemen
Ziel ist die zusätzliche Bereitstellung von sinnvollen Funktionen zur Anfrage von Räumlichen Informationen Kein Standard vorhanden Anforderungen an eine räumliche Anfragesprache nach Egenhofer: Datentyp „Objekt“ muß vorhanden sein Grafische Visualisierung von Anfrageergebnissen ( Tabellen sind ungeeignet ) Kombination mehrerer Anfragen muß möglich sein Möglichkeit des Auswählens von Objekten durch anklicken auf dem Bildschirm Erweiterung von SQL
Eine Legende zur Erläuterung der Objektklassen muß vorhanden sein Anfragesprache muß dem Nutzer Möglichkeit zur Beschränkung der Daten geben, auf die sich die Anfrage bezieht Erweiterung von SQL
Kombination aus Erweiterung von SQL & GPL GPL (Graphical Presentation Language) Erweiterungen Festlegung eines Räumlichen Datentyps 4 Typen von Unterobjekten 0, 1, 2, 3 - dimensional Beziehungen zwischen räumlichen Objekten unterscheiden sich von Standardrelationen topologisch oder metrisch Spatial SQL
Methoden INTERSECT - Schnitt von Objekten REMOVE - Löschanfrage OVERLAY - Ergebnisse der Anfrage über Kartenelemente legen HIGHLIGHT - Hervorheben der Ergebnisse in der Graphik Spatial SQL
Beispiel : Wie weit ist die nächste Feuerwehrstation von dem ausgewählten Gebäude entfernt ? SET MODE alpha; SELECT distance (buildings.geometry, firestations.geometry), firestations.adress FROM building, building firestation WHERE building = PICK and firestation.Type = „Fire Station“; Spatial SQL
„Objektorientiert“, es können vom Nutzer Objekte definiert werden (Feature) Bietet grafische Visualisierung der Anfrageergebnisse Additive Anfragen sind möglich Direkte Auswahl durch Anklicken von Objekten ist möglich Beschränkung der Operationen auf Teile der Objekte möglich (z.B. nur Kanten Anfragen) Beschränkung der Anfragen auf ein Teilgebiet nicht möglich Möglichkeiten von ArcInfo
Anfragen in ArcInfo Select by Attribute Select by Location Select by Graphics Location Graphics Attribute Statistics
Buffering in ArcInfo • Auswahl von „Features“, die einen bestimmten Abstand von einem ausgewählten Objekt haben
Bereitstellung der Kanten und Attribute über Anfragen für die Wegsuche Keine Zuordnung von Sehenswürdigkeiten zu Straßen notwendig Bilden von Buffern um die Straßen zur Unterstützung bei der Wegfindung Machbarkeitsstudie Anwendungen der Funktionen