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 ● disy Informationssysteme GmbH - Von der Karte zur Geo-Datenbank - www.disy.net F&E Projekte 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 ANSISQL 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 strasseabs laenge shape typname column_size column_scale is_nullable numeric 9 0 YES numeric 22 0 YES 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 ▢ ▢ Messwert wird über den GeometryType konfiguriert ▢ ▢ ▢ ▢ GEOMETRY_COLUMNS ist auf 4 Dimensionen beschränkt 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 ▢ ▢ ▢ Das Minimal Boundig Rectangle über alle Geometrien eines Layer ▢ ▢ ▢ weder in Oracle noch in den PostGIS Metadaten Es ist nur Raten anhand der Spalten Constraints Primary Key ober Unique möglich. 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: [email protected]