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) Unterstützung bei der Formulierung von Anfragen Räumliche Erweiterung von SQL Möglichkeiten und Grenzen von ArcInfo zurück weiter 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) zurück weiter 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 zurück weiter 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 zurück weiter 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))) zurück weiter SQL Was ist SQL ? Was gibt es für Hilfsmittel bei der Formulierung von Anfragen ? Grenzen von SQL zurück weiter 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“ zurück weiter SQL – Verknüpfung von Entitäten - Methode „JOIN“ etc. – Aggregatfunktionen SUM, MIN, MAX, AVG, Count, GROUP Beispiel zurück weiter Hilfsmittel für SQL Query by Example (QEB) zurück weiter Grafische Hilfsmittel für SQL MS Access Designer ~ MS SQL Server zurück weiter 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 zurück weiter Speicherung von Objektdaten 1 Speicherung in vielen Tabellen einer RDBMS 2 Getrennte Speicherung von Geometrie und Sachdaten Attribute 3 Speicherung der Objekte in Binärfeldern einer RDBMS 011010010111000111001 4 Objektorientierte Datenbank zurück weiter Shapefile Geometrie + Attribute Teilobjekte in verschiedenen Tabellen Beispiel Flächen – – – – – B C Tabelle Flächen D Tabelle FlächenKanten A Tabelle Kanten (Linien) Tabelle Knoten Speichern der Koordinaten der einzelnen Knoten in den Spalten x,y,z Vorteile: – Mit vorhandenen Standarddatenbanken (RDBMS) realisierbar zurück weiter Teilobjekte in verschiedenen Tabellen Nachteile: – 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 Anfangsund 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 zurück weiter Geometrie und Attribute getrennt Vorteile: – Realisierung mit RDBMS möglich – Speicherung von Objekten in Shapefiles Nachteile: – 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 zurück weiter Objekte in Binärfeldern B Beispiel Flächen C D – Tabelle Flächen – Speichern der Koordinaten A 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 Vorteile: – Nur eine Tabelle für die Speicherung eines Objekts – Modellierung entspricht Speicherung – Realisierung mit RDBMS möglich zurück weiter Objekte in Binärfeldern Nachteile: – 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 zurück weiter Objektorientierte Datenbank 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: – Speicherung entspricht Modellierung – schnellere, benutzerfreundliche Anfragen ohne Zusatzprogrammierung über erweiterte Anfragesprache zurück weiter Objektorientierte Datenbank Nachteile: – 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 zurück weiter Objekte in GIS - Systemen 1 Speicherung in vielen Tabellen einer RDBMS 2 Getrennte Speicherung von Geometrie und Sachdaten ArcView, ArcInfo 3 Speicherung der Objekte in Binärfeldern einer RDBMS ArcInfo, GeoDB 4 Objektorientierte Datenbank Support GIS zurück weiter Alte GIS - Systeme Erweiterung von SQL 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 zurück weiter 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 zurück weiter Spatial 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 zurück weiter Spatial SQL Methoden – INTERSECT - Schnitt von Objekten – REMOVE - Löschanfrage – OVERLAY - Ergebnisse der Anfrage über Kartenelemente legen – HIGHLIGHT - Hervorheben der Ergebnisse in der Graphik zurück weiter 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“; zurück weiter Möglichkeiten von ArcInfo „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 zurück weiter Anfragen in ArcInfo Select by Attribute Select by Location Location Attribute Statistics zurück weiter Select by Graphics Graphics Buffering in ArcInfo Auswahl von „Features“, die einen bestimmten Abstand von einem ausgewählten Objekt haben zurück weiter Anwendungen der Funktionen 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 zurück weiter Selection Statistics ArcInfo << zurück weiter Selection By Attribute ArcInfo << zurück weiter Selection By Location << zurück weiter