Qu'est-ce que Oracle Spatial ?
Oracle Spatial est une extension du système de gestion de base de données (SGBD) Oracle qui ajoute à Oracle un type spatial et des fonctions de requête spatiale. Il est proposé par Oracle avec deux options principales.
- Oracle Spatial est un module optionnel du logiciel Oracle Database Enterprise Edition. En plus du type SDO_Geometry, Oracle Spatial offre de nombreuses fonctionnalités géospatiales supplémentaires.
- Oracle Locator offre un sous-ensemble des fonctionnalités d'Oracle Spatial. Il est compris dans les composants standard des éditions Standard et Enterprise de la base de données Oracle Database. Parmi ses fonctionnalités figurent le type de géométrie Oracle Spatial (connu sous le nom de SDO_Geometry) et une interface API SQL pour ce contenu.
Oracle Spatial partage des fonctionnalités communes à de nombreux systèmes d'information géographique, y compris ArcGIS. La plupart des utilisateurs d'ArcGIS appliquent Oracle Spatial principalement comme un mécanisme facultatif de stockage et d'accès de géodatabase dans un SGBD Oracle. En particulier, l'un des choix dont disposent les utilisateurs ArcGIS à chaque création d'une classe d'entités ou d'un jeu de données raster dans une géodatabase dans Oracle concerne le mode de stockage des géométries d'entités ou des rasters. Ils peuvent choisir d'utiliser les options de stockage de données de la géodatabase ou celles d'Oracle Spatial.
ArcSDE prend en charge le modèle relationnel orienté objet d'Oracle Spatial en tant que méthode facultative de stockage de données spatiales. En particulier, la géométrie Oracle Spatial ou Oracle Locator permet le stockage et la gestion des contenus d'entités et de raster des jeux de données dans les géodatabases ArcSDE.
Vue d'ensemble du stockage de données Oracle Spatial
Oracle Spatial offre un type de géométrie spatial (MDSYS.SDO_GEOMETRY), une structure de métadonnées spatiales, des méthodes d'indexation, des fonctions et des règles d'implémentation, dont la description figure ci-dessous.
Oracle Locator est un sous-ensemble d'Oracle Spatial. Oracle Locator comprend le type de données SDO_GEOMETRY ainsi qu'une partie des fonctionnalités offertes par Oracle Spatial. Oracle Locator peut être utilisé avec ArcSDE. Reportez-vous à la documentation d'Oracle pour une explication sur la différence entre Oracle Spatial et Oracle Locator. Dans l'ensemble de cette rubrique, "Oracle Locator" peut être utilisé à la place des références à "Oracle Spatial".
-
SDO_GEOMETRY
Le type de géométrie SDO_GEOMETRY d'Oracle Spatial est mis en œuvre à l'aide du système de type relationnel orienté objet extensible d'Oracle. Le type SDO_GEOMETRY stocke les informations sur la géométrie, y compris son type de géométrie, son identifiant de référence spatiale, son type d'interpolation (droite ou courbe) et ses valeurs de coordonnées. Le type SDO_GEOMETRY, dans les géodatabases ArcSDE, prend en charge les points uniques ou multi-parties, les lignes et les géométries surfaciques. Les géométries peuvent être décrites avec une interpolation linéaire entre les coordonnées, telle que mentionnée par la spécification d'OpenGIS relative aux entités simples. Les géométries peuvent également être construites à partir de courbes circulaires ou d'une combinaison des deux méthodes d'interpolation. Les applications sont chargées de l'insertion, de la mise à jour et de l'extraction correctes des contenus du type SDO_GEOMETRY à l'aide de l'interface SQL relationnelle orientée objet d'Oracle. Les applications sont également chargées d'assurer que le contenu de chaque géométrie respecte les règles définies dans la documentation d'Oracle Spatial. Oracle propose des routines de validation de la géométrie pouvant être exécutées après l'insertion des géométries. De plus, à compter de la version Oracle 11.1.0.7, la géométrie est validée lors des insertions d'index.
Remarque :Les routines de validation de la géométrie d'Oracle n'appliquent pas exactement le même jeu de règles que la validation de la géométrie d'ArcSDE. Toutefois, ArcSDE est conçu pour enregistrer des données SDO_GEOMETRY respectant les règles de validation d'Oracle.
-
Structure de métadonnées
Les informations sur chaque colonne SDO_GEOMETRY doivent être enregistrées dans la structure de métadonnées d'Oracle Spatial, bien qu'Oracle Spatial ne s'en charge pas automatiquement. (La structure de métadonnées d'Oracle Spatial est présentée pour chaque structure comme étant la vue USER_SDO_GEOM_METADATA.) Le logiciel qui crée les colonnes SDO_GEOMETRY doit insérer les métadonnées pour ces colonnes. ArcSDE s'en charge pour toutes les classes d'entités SDO_GEOMETRY qu'il crée. Les métadonnées contiennent le nom de la colonne spatiale, le nom de la table où elle figure et son propriétaire, l'identifiant de référence spatiale (SRID) Oracle, le nombre de dimensions, la plage de chaque dimension et sa tolérance de coordonnées.
-
Index spatiaux
Les index spatiaux fournissent un accès rapide aux entités à partir de la localisation de leur géométrie. Pour SDO_GEOMETRY, les index spatiaux d'arborescence R sont en général les plus efficaces et les plus faciles à créer, et Oracle conseille leur utilisation dans la plupart des situations. Oracle Spatial comprend l'utilitaire Spatial Index Advisor, permettant de déterminer le meilleur type d'index spatial pour une table donnée. Vous pouvez également vous reporter au Guide de l'utilisateur Oracle Spatial pour des informations détaillées sur les types d'index spatiaux pris en charge, sur leur procédure de création et les compromis des différentes méthodes d'indexation spatiale.
-
Fonctions spatiales
Oracle Spatial élargit la portée d'SQL par l'ajout de fonctions de recherche spatiale pour le filtrage primaire et secondaire. L'inclusion de la fonction SDO_FILTER dans une requête SQL lance une recherche spatiale primaire à l'aide de l'index spatial. Les prédicats spatiaux, tels que SDO_RELATE et SDO_CONTAINS, renvoient des relations secondaires entre paires d'objets SDO_GEOMETRY. Oracle Spatial dispose de fonctions de transformation spatiale modifiant la forme d'une valeur SDO_GEOMETRY. Par exemple, la fonction SDO_BUFFER calcule les coordonnées d'un nouvel objet SDO_GEOMETRY formant une zone tampon à une distance donnée autour de la géométrie originale. Les fonctions de transformation spatiale comprennent également SDO_DIFFERENCE et SDO_INTERSECTION.
-
Référentiel de coordonnées et SRID
Oracle Spatial propose de nombreux systèmes de référentiels de coordonnées prédéfinis par l'intermédiaire de valeurs SRID. La valeur d'identifiant SRID, stockée dans l'objet SDO_GEOMETRY, indique le référentiel de coordonnées pour la géométrie stockée dans cet objet. Si elle n'est pas NULL, la valeur d'identifiant SRID dans l'objet SDO_GEOMETRY est une clé étrangère d'une table contenant des détails sur chaque SRID. Cette table est MDSYS.CS_SRS. La fonction SDO_TRANSFORM définit des transformations de référentiel de coordonnées grâce à l'identifiant de référence spatiale. ArcSDE utilise également cette information pour créer des références spatiales ArcSDE.