PlanCours SIG 2003• Module Oracle Spatial• Géométrie dans spatialOracle spatial• Indexation de données• Requête avec des données spatiales• Liens et documentationJOLLY Arnaud 2003 1 JOLLY Arnaud 2003 2A quoi sert-il?Stockage des donnéesModule Oracle Spatial• Stockage – Données géométriques vectoriellesGénéralités– Modèle Relationnel Objet • Stockage sous forme de champs– Champs géométriques– Champs classiques pour les attributsJOLLY Arnaud 2003 3 JOLLY Arnaud 2003 41A quoi sert-il?Objet / RelationnelIndexation des données• Indexation spatiale • 2 Versions de Oracledes données– Objet relationnel– Récupération de (Open GIS Part I "Object-Relational Model")données par zone– Relationnel pur– Topologie(Open GIS Part II ""Relational Model")– RequêteJOLLY Arnaud 2003 5 JOLLY Arnaud 2003 6Spatial c’est quoi Spatial contient• Schéma SQL permettant de faire: • Un schéma (dans MDSYS)– Stockage• Un Mécanisme d’indexation– Mise à jour• Une suite d’opérateurs et de fonctionsD’objets géométriques– Récupération– Zone d’intérêt – Mise à jour– Jointure spatiale• Suite d’utilitaires d’administrationJOLLY Arnaud 2003 7 JOLLY Arnaud 2003 82Avantage du modèle Objet Avantage du modèle relationnel• Plus de types géometriques • Possibilité de réplication de bases de données– Arcs, cercles, Polygones composés, Polylignes composées, Rectangles optimisés• Possibilité de bases de données • Utilisation plus simple des indexsrépliquées• ...
Plan • Module Oracle Spatial • Géométrie dans spatial • Indexation de données • Requête avec des données spatiales • Liens et documentation
JOLLY Arnaud 2003
A quoi sert-il? Stockage des données • Stockage Données géométriques vectorielles Modèle Relationnel Objet • Stockage sous forme de champs Champs géométriques Champs classiques pour les attributs
JOLLY Arnaud 2003
2
4
1
A quoi sert-il? Indexation des données • Indexation spatiale des données Récupération de données par zone Topologie Requête
JOLLY Arnaud 2003
Spatial c’est quoi • Schéma SQL permettant de faire: Stockage Mise à jour D’objets géométriques Récupération Mise à jour
JOLLY Arnaud 2003
5
7
Objet / Relationnel • 2 Versions de Oracle Objet relationnel (Open GIS Part I "Object-Relational Model") Relationnel pur (Open GIS Part II ""Relational Model")
JOLLY Arnaud 2003
Spatial contient • Un schéma (dans MDSYS) • Un Mécanisme d’indexation • Une suite d’opérateurs et de fonctions Zone d’intérêt Jointure spatiale • Suite d’utilitaires d’administration
JOLLY Arnaud 2003
6
8
2
Avantage du modèle Objet • Plus de types géometriques Arcs, cercles, Polygones composés, Polylignes composées, Rectangles optimisés • Utilisation plus simple des indexs • Maintien de l’index par Oracle • Amélioration des performances
JOLLY Arnaud 2003 9
Choix pour ce cours • Modèle Objet Accès plus facile Modèle relationnel condamné à disparaître
JOLLY Arnaud 2003
11
Avantage du modèle relationnel • Possibilité de réplication de bases de données • Possibilité de bases de données répliquées • Partitionnement des tables et chargement parallèle de l’index
JOLLY Arnaud 2003
Présentation du module spatial Oracle Spatial dans Oracle Les champs géométriques
JOLLY Arnaud 2003
10
12
3
Présentation Oracle Spatial Oracle7 Oracle8 Oracle8 i Intermedia Image Image Cartridge Audio Video Context Context Text Option Cartridge Locator Multidimension Spatial Data Spatial Spatial Option Cartridge Time Series Time Series Cartridge Visual Image Visual Image Retrieval Retrieval Cartridge JOLLY Arnaud 2003 13
Création d’une table spatiale • Le type de géométrie est _ MDSYS.SDO GEOMETRY • Exemple CREATE TABLE Parcelle ( id NUMBER PRIMARY KEY , Geometry MDSYS.SDO GEOMETRY _ ); JOLLY Arnaud 2003 15
Présentation Oracle Spatial • Notion de champs géométrique
Id Géométrie Propriétaire Adresse 1 Dupont Rue du quai 2 Dupuis Rue du pont 3 Dumoustier Rue d’auxonne JOLLY Arnaud 2003 14
Le type géométrie de Oracle • Relationnel objet : Géométrie dans un objet géométrique • Champs SDO_GTYPE Type de géométrie mps SD _ • Cha O SRID non utilisé • Champs SDO_POINTpoint pour les objet ponctuels • Champs SDO_ELEM_INFO information dur l’objet • Champs SDO_ORDINATES géométrie des champs JOLLY Arnaud 2003 16
4
Les formes géométriques i on PointCLhiagînneesdeComd’paorcsistionCodmepliogsnetisliCghnaeîsneavdeecintersection
Valide
Polygone Polygone Polygone Polygones Pol y gone avec troué composé optimisés intersection
JOLLY Arnaud 2003 Non valid 17 e
Exemple La requête correspondante • INSERT INTO Ma Table VALUES _ ( 125, MDSYS.SDO_GEOMETRY( 2 003, NULL, NULL, MDSYS.SDO_EL _ _ARRAY (1,1003,3), EM INFO MDSYS.SD _ _ (1 ,15,15,24)) O ORDINATE ARRAY 2 ‘Mon Rectangle à moi’ );
JOLLY Arnaud 2003 19
Exemple Le carré • Un rectangle en géométrie Oracle
JOLLY Arnaud 2003
Différents types de géométrie Géométrie simple • SDO GTYPE: _ d 000 : géométrie inconnue d 001 : Point d 002 : Polyligne d 003 : Polygone
JOLLY Arnaud 2003
18
20
5
Différents types de géométrie Géométrie composée _ • SDO GTYPE: d 004 : Collection d 005 : Liste de points d 006 : Liste de polylignes d 007 : Liste de polygones
JOLLY Arnaud 2003
21
A propos de SDO_ELEM_INFO • Tableau dynamique Contient des triplets de nombres _ _ • SDO STARTING OFFSET Indice de début de l’objet • SDO ETYPE _ Type de l’objet • SDO INTERPRETATION _ Si type d’objet composé Î nombre de sous objet consécutif après
JOLLY Arnaud 2003 23
• SDO SRID : Nom utilisé _ _ X, et Z. • SDO POINT : Point en Y Utilisé dans le type POINT • SDO ELEM INFO : Definition du _ _ _ contenu de SDO ORDINATES • SDO ORDINATES : Contient une liste _ de point : En 2D : X1,Y1, X2,Y2, X3, Y3, En 3D : X1,Y1,Z1 X2,Y2,Z2 X3,Y3,Z3JOLLY Arnaud 2003
_ _ SDO ELEM INFO (Point unique) _ SDO GTYPE : d 001 _ SDO INTERPRETATION : 1
JOLLY Arnaud 2003
22
24
6
_ _ SDO ELEM INFO Liste de point _ SDO GTYPE : 1 SDO INTERPRETATION : Nombre de points _
_ _ SDO ELEM INFO Polygone _ • SDO ETYPE : t 003 • SDO INTERPRETATION : 1 _ t= 1 si on fait une figure pleine (tracer dans le sens trigonométrique) t= 2 si c’est un trou (tracer dans le sens horaire)
JOLLY Arnaud 2003
26
28
7
Polygone lié par des arcs • SDO ETYPE : t 003 _ • SDO INTERPRETATION : 2 _ t= 1 si on fait une figure pleine (tracer dans le sens trigonométrique) t= 2 si c’est un trou (tracer dans le sens horaire)
JOLLY Arnaud 2003
_ _ SDO ELEM INF Cercle _ • SDO ETYPE : t 003 _ • SDO INTERPRETATION : 4 t= 1 si on fait une figure pleine t= 2 si c’est un trou
JOLLY Arnaud 2003
29
31
SDO ELEM INFO _ _ Rectangle • SDO ETYPE : t 003 _ • SDO INTERPRETATION : 3 _ t= 1 si on fait une figure pleine t= 2 si c’est un trou
JOLLY Arnaud 2003
SDO ELEM INFO _ _ Composition de polylignes • SDO ETYPE : 4 _ • SDO_INTERPRETATION : Nombre de polylignes
JOLLY Arnaud 2003
30
32
8
SDO ELEM INFO _ _ Composition de polygones _ • SDO ETYPE : 5 _ ERPRETAT N : Nombre de p lygone • SDO INT IO o s
JOLLY Arnaud 2003
Indexation et métadonnées • Indexation Î Indiquer à ORACLE les données à indexer. Remplir les table de métadonnées spatial _ _ _ • USER SDO GEOM METADATA • ALL SDO GEOM METADATA _ _ _ _ _ _ • DBA SDO GEOM METADATA
33
JOLLY Arnaud 2003 35
Exemple de géométrie complexe INSERT INTO PARKS VALUES (’OBJ_1 , ’ MDSYS.SDO_GEOMETRY( 2003, NULL, NULL, MDSYS.SDO ELEM INFO ARRAY _ _ _ (1,1003,1, 19,2003,3), _ _ MDSYS.SDO ORDINATE ARRAY (6,15, 10,10, 20,10, 25,15, 25,35, 19,40, 11,40, 6,25, 6,15, 12,15, 15,24) ) ); JOLLY Arnaud 2003 34
Indexation des données Métadonnées Index
JOLLY Arnaud 2003
36
9
Indexation et métadonnées • Ces tables contiennent : TABLE NAME VARCHAR2(32), _ COLUMN NAME VARCHAR2(32), _ DIMINFO MDSYS.SDO DIM ARRAY, _ _ SRID NUMBER
JOLLY Arnaud 2003
L’indexation des données
Indexation par RTREE
37
Indexation et métadonnées INSERT INTO USER SDO GEOM METADATA _ _ _ VALUES ( ’nom table’, _ ’nom colonne’, _ MDSYS.SDO DIM ARRAY ( _ _ MDSYS.SDO_DIM_ELEMENT(’X’, 0, 20, 0.005), _ _ LEMENT( Y’, 0, 20, 0.005) MDSYS.SDO DIM E ’ ), NULL );
JOLLY Arnaud 2003
Fonctionnement de l’index • ./RTree/R-tree Demo.htm
JOLLY Arnaud 2003
38
40
10
Requête d’indexation CREATE INDEX nom_spatial idx _ ON nom_table(nom_colonne) INDEXTYPE IS MDSYS.SPATIAL INDEX _ PARAMETERS(’ SDO_ 8’); LEVEL =
JOLLY Arnaud 2003
Requête spatiale Modèle d’interrogation Opérateur
JOLLY Arnaud 2003
41
43
_ Estimation de SDO LEVEL _ p ’arbre d’index SDO LEVEL rofondeur de l _ _ _ • SDO TUNE.ESTIMATE TILING LEVEL Nom table Nom colonne Nombre maximum de zones
JOLLY Arnaud 2003
Avant toute requête • Remplir les métadonnées • Créer les indexs