Data Dictionaries Vergleich von Oracle Spatial 11g und PostGIS entlang der OGC Simple Feature Spezifikation dialog DOAG SIG Oracle Spatial / Locator Frankfurt a. M., 09.09.2008 daten Andreas Bartels disy Informationssysteme GmbH dimensionen disy Informationssysteme GmbH, www.disy.net
Agenda disy Informationssysteme GmbH Motivation PostgreSQL / PostGIS Data Dictionary Spatial Metadaten Schema Resümee
Kurz etwas über disy disy Informationssysteme: Software und Beratung GmbH, private Gesellschafter Standort: Karlsruhe Gründung: 1997 Mitarbeiter: 50 Informatiker und Mathematiker mit Branchenerfahrung Innovative Entwicklungsmethoden Environment Reporting GIS Umwelt- und Fachinformationssysteme Spatial Reporting Berichte, Auswertungen und GIS GIS, Geodateninfrastrukturen, Metadatenkataloge Communications Telefon- und Webkonferenzen Virtuelle Call Center CTI und Sprachlösungen 3 3
Produkte und Themen von disy disy Preludio disy GISterm disy Cadenza Metadaten & GDI Desktop & Web GIS Spatial Reporting Forst Lärm Wasser Landwirtschaft Planung Naturschutz 4
Verbreitung unserer Produkte Ca. 4000 Arbeitsplätze Baden-Württemberg Div. Umweltthemen Forst, Flurneuordnung, Landschaftspflege 7 Bundesländer Bund BfS BAW Österreich Seit Ende 2006 Weiterentwicklung F&E Projekte disy Informationssysteme GmbH - Von der Karte zur Geo-Datenbank - www.disy.net 5
Motivation
Motivation Entwicklung von Intelligenten Datenbank-Adaptern für Geodatenbanken
Motivation Welche Layer sind in der Datenbank?
Motivation Wie sieht die Struktur des Features aus?
Motivation Welchen Type haben die Geometrien?
Motivation Welche Eigenschaften haben die Koordinaten?
Motivation Welche Layer sind in der Datenbank? Wie sieht die Struktur des Features aus? Welchen Type haben die Geometrien? Welche Eigenschaften haben die Koordinaten?
PostgreSQL Erste Version ist 1989 als Postgres 1996 als PostgreSQL V6.0 heraus gekommen aktuelle Version 8.3.3 weitgehend konform mit dem SQL-Standard ANSI- SQL 92 Unterstützt alle gängigen Betriebssysteme PostgreSQL is released under the BSD license. Entstand aus einer Datenbankentwicklung der University of California in Berkeley wird durch dieopen-source-community weiterentwickelt hat eine reichhaltige Auswahl an Erweiterungen
PostGIS Die erste Version wurde im Mai 2001 veröffentlicht aktuelle Version 1.3.3 läuft GNU General Public License ist OGC OpenGIS Simple Feature Access komform verwendet GEOS, GDAL und Proj4 wird unter der Leitung von Refractions Research entwickelt (UDIG, Geotools u. Geoserver)
Data Dictionary Laut des IBM Dictionary of Computing ist das Data Dictionary ein "centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format". Der Metadaten-Katalog über das was die Datenbank enthält und wie es Strukturiert ist
Data Dictionary - Oracle User SYS ist Owner der Datenbank Metadaten
Data Dictionary - Oracle User MDSYS ist Owner der Spatial Metadaten
Data Dictionary - PostgreSQL pg_catalog Metadaten-Katalog von PostgreSQL
Data Dictionary - PostgreSQL information_schema Metadaten Abbildung in durch den Anwender verständliche VIEWS
Data Dictionary PostGIS für die Spatial Metadaten gibt es keine definierte Ablage. Normaler weise befinden sie sich im Schema public einer Datenbank
Spatial Metadata Schema - OGC
Spatial Metadata Schema - PostGIS
Spatial Metadata Schema - SDO
Spatial Metadata Schema Zur Erinnerung Welche Layer sind in der Datenbank? Wie sieht die Struktur des Features aus? Welchen Type haben die Geometrien? Welche Eigenschaften haben die Koordinaten?
Layer Ein Layer lässt sich definieren als eine Geometriespalte mit den dazugehörigen Sachdaten spalten. Die wird durch die Angaben OWNER, TABLE_NAME, COLUMN_NAME in der Tabelle ALL_SDO_GEOM_METADATA Oracle seitig referenziert F_CATALOG_NAME, F_SCHEMA_NAME, F_TABLE_NAME, F_GEOMETRY_COLUMN in der Tabelle GEOMETRY_COLUMNS machen dieses in PostGIS
Feature Ein Feature lässt sich durch die Beschreibungen der Attribute der als Layer referenzierten Tabelle definieren In beiden Datenbanken liefern dieses die das Data Dictionary der Datenbank In Oracle der View SYS.ALL_TAB_COLUMNS In PostgreSQL der VIEW information_schema.columns Der VIEW reicht nicht um von Anwender definiert Typen aufzulösen
Feature - PostgreSQL select c.column_name, y.typname, COALESCE(c.character_maximum_length, numeric_precision, datetime_precision, -1) as column_size, COALESCE(c.numeric_scale, -1) as column_scale, c.is_nullable from pg_namespace s, pg_class t, pg_attribute a, pg_type y, information_schema.columns c where s.nspname =? and s.oid = t.relnamespace and t.relname =? and t.oid = a.attrelid and a.atttypid = y.oid and c.table_schema = s.nspname and c.table_name = t.relname and c.column_name = a.attname order by a.attnum column_name typname column_size column_scale is_nullable strasseabs numeric 9 0 YES laenge numeric 22 0 YES shape geometry -1-1 YES
Geometrie Hier wird der GeometryType benötigt Und die Information ob die Geometrie-Spalte indiziert ist.
Geometrie - Oracle GeometryType Indirect über den VIEW ALL_SDO_INDEX_METADATA Ärgerlich ist das der Geometrie-Spaltenname durch Anführungszeichen eingeklammert ist Oder über die Funktion SDO_TUNE.MIX_INFO Nicht Schema übergreifend nutzbar Löst nur zu Single Type auf Indiziert Über den VIEW ALL_SDO_INDEX_INFO
Geometrie - Oracle
Geometrie - PostGIS Der GeometryType wird in der Tabelle GEOMETRY_COLUMNS angegeben Ob ein Index definiert ist muss über das Data Dictionary der PostgreSQL Datenbank erfragt werden Tabelle pg_cataglog.pg_index
Koordinate Dimension Messwert vorhanden Wertebereich Referenzsystem
Koordinate - Oracle Dimension über DIMINFO in VIEW ALL_SDO_GEOM_METADATA Messwert kann in speziellen VIEW dokumentiert werden ALL_LRS_METADATA Wertebereich, auch über DIMINFO Referenz System über die Spalte SRID und dem generierten VIEW CS_SRS Hat zusätzlich ein Feld für den Gültigkeitsbereich des Systems
Koordinate - Oracle
Koordinate - PostGIS Dimension wird in DIMENSION in Tabelle GEOMETRY_COLUMNS ist auf 4 Dimensionen beschränkt Messwert wird über den GeometryType konfiguriert M als Suffix wenn Messwert vorhanden und Dimension 3 Bei Dimension 4 wird kein Suffix angegeben und die 4 Dimension ist dann grundsätzlich ein Messwert Wertebereich kann in PostGIS nicht angegeben werden Referenz System über die Spalte SRID und die Tabelle SPATIAL_REFERENCE_SYSTEM
Sonstig wichtige Information Geometrie Id Spalte weder in Oracle noch in den PostGIS Metadaten Es ist nur Raten anhand der Spalten Constraints Primary Key ober Unique möglich. Das Minimal Boundig Rectangle über alle Geometrien eines Layer Oracle, über Funktion SDO_TUNE.EXTENT_OF PostGIS, optimiert über Funktion estimated_extent Zugriffsrecht Oracle, Layer tauchen nur in VIEWS auf wenn der Anwender über SELECT zugreifen darf PostGIS, muss über das Data Dictionary ermittelt werden
Weitere Spatial Metadaten - Oracle Thematisierung eines Layer ALL_SDO_THEMES durch Name Beschreibung Regeln für grafische Darstellung (xml) Bündelung von Themen zu einer Karte ALL_SDO_MAPS Name Beschreibung Definition (xml)
Resümee Die Metadaten Schema beider Datenbanken können noch verbessert werden. Das Schema der Oracle Datenbank schneidet deutlich besser ab. Weicht aber auch am stärksten von der Definition des OGC ab.
Wünsche - Oracle Geometry Id in Sdo Metadaten Geometry Type in den Metadaten Alle SDO_TUNE Funktionen sollten Schema übergreifend sein Dokumentation aller Spatial Metadaten
Quellen Oracle Forum Spatial http://forums.oracle.com/forums/forum.jspa?forumid=76 Oracle Spatial Developer's Guide 11g Release 1 (11.1) http://download.oracle.com/docs/cd/b28359_01/appdev.111/b28400/toc.htm Oracle Data Dictionary Pocket Reference; David C. Kreines; O'REILLY Open GIS Consortium (OGC), Inc. OpenGIS Simple Features Specification For SQL http://portal.opengeospatial.org/files/?artifact_id=829 PostgreSQL http://www.postgresql.org/ PostGis http://www.refractions.net/products/postgis disy Informationssysteme GmbH - Von der Karte zur Geo-Datenbank - www.disy.net 40
Vielen Dank Vielen Dank! Haben Sie weitere Fragen? dialog daten dimensionen disy Informationssysteme GmbH, Erbprinzenstr. 4-12, 76133 Karlsruhe Tel.: +49 721 16006-000, Fax: +49 721 16006-05, E-Mail: sales@disy.net