Classes d'entités d'une géodatabase dans Oracle
Une classe d'entités est une collection d'entités géographiques du même type géométrique (points, lignes, polygones, multi-points, annotations, cotes ou multipatch). Vous pouvez par exemple stocker des points dans une classe d'entités pour tous les dépôts ferroviaires situés le long d'une ligne de chemin de fer. Dans une autre classe d'entités, vous pouvez stocker des lignes qui représentent l'ensemble des voies ferrées.
Cette rubrique présente la façon dont une classe d'entités apparaît dans le fenêtre Catalogue, dans le système de gestion de bases de données (SGBD) et dans un document XML.
Classes d'entités dans ArcGIS Desktop
Il existe sept types de classes d'entités que vous pouvez créer dans ArcGIS Desktop : point, multi-points, ligne, polyligne, annotation, cote et multipatch.
Vous pouvez identifier le type de classe d'entités grâce à l'icône qui apparaît dans l'arborescence du catalogue. Le tableau répertorie les icônes de chaque type de classe d'entités.
Icône de classe d'entités |
Type de classe d'entités |
---|---|
Point ou multi-points |
|
Ligne |
|
Polygone |
|
Annotations |
|
Cote |
|
Multipatch |
Dans Oracle, le nom d'une classe d'entités, tel qu'il apparaît dans l'arborescence du catalogue, se compose du nom de l'utilisateur propriétaire de la classe d'entités et du nom de la classe d'entités.
Par exemple, la classe d'entités, parcelles, appartenant à l'utilisateur Perrita, apparaîtra sous la forme PERRITA.Parcelles dans l'arborescence du catalogue.
Pour obtenir une description des différents types de classes d'entités, reportez-vous à la rubrique Principes de base des classes d'entités.
Tables de classes d'entités d'une géodatabase Oracle
Les classes d'entités des bases de données Oracle font appel à l'un de trois types de stockage de géométries : ST_Geometry (valeur par défaut), binaire ou SDO_Geometry.
Toutes les classes d'entités sont associées à une table de base (également appelée "table métier"), qui stocke des informations attributaires, un identifiant d'objet et un champ Shape. L'identifiant d'objet et les champs Shape peuvent avoir des noms différents, mais ils doivent figurer dans la table de base d'une classe d'entités.
Les classes d'entités de type annotation ou cotation présentent des champs obligatoires supplémentaires dans leurs tables de base. Pour obtenir une liste de ces champs, consultez les rubriques Gestion des propriétés des classes d'entités annotations et Propriétés d'entité cotation.
Tables de classes d'entités d'une base de données Oracle, utilisant le type ST_Geometry
Les classes d'entités stockées à l'aide du type ST_Geometry défini par l'utilisateur se composent d'une table de base et d'un index spatial. Pour les classes d'entités ST_Geometry, la colonne spatiale ST_Geometry stocke la géométrie de la classe d'entités en sous-classes, telles que ST_LineString, ST_MultiPoint ou ST_Polygon. Les valeurs de géométrie sont stockées directement dans cette colonne spatiale.
Les classes d'entités ST_Geometry disposent également d'une table d'index spatial (S) affiliée. La convention d'appellation des tables d'index spatial est liée à l'identifiant généré dans la table ST_GEOMETRY_INDEX lors de la création de l'index spatial pour la classe d'entités. Par exemple, un index spatial avec une valeur INDEX_ID de 16 dans la table ST_GEOMETRY_INDEX serait nommé S16_IDX$.
La création de l'index spatial d'une table génère une entrée pour celle-ci dans les tables système ST_GEOMETRY_COLUMNS et ST_GEOMETRY_INDEX. La table de structure d'information ST_GEOMETRY_COLUMNS permet d'exécuter des sélections et des opérations sur les métadonnées en langage DML. Les procédures mémorisées permettent d'insérer et de supprimer des entrées de la table ST_GEOMETRY_COLUMNS.
Lors de la création d'une classe d'entités à l'aide d'ArcGIS avec le stockage ST_Geometry, une table métier avec une colonne ST_Geometry est créée dans la structure du propriétaire. Par ailleurs, des enregistrements sont ajoutés aux tables LAYERS, TABLE_REGISTRY, GEOMETRY_COLUMNS, COLUMN_REGISTRY, sde_spatial_references (si une référence spatiale a été définie) et aux tables GDB_ITEMS dans la structure de l'utilisateur sde pour assurer le suivi des données concernant la classe d'entités. La table GDB_ITEMTYPES de la structure de l'utilisateur sde définit le type de données, dans ce cas, une classe d'entités.
La création d'une table avec une colonne ST_Geometry n'insère pas de métadonnées ST_Geometry. C'est à vous (ou à l'application) d'enregistrer ces métadonnées.
Esri ne prend pas en charge la manipulation manuelle des tables système. Les métadonnées des tables ayant une colonne spatiale ST_Geometry, enregistrées ou créées par ArcSDE, ne doivent en aucun cas être modifiées manuellement.
View a diagram of a feature class using ST_Geometry storage in Oracle.
Pour ouvrir le fichier, vous devez disposer de Adobe Acrobat Reader.
Les lignes pointillées indiquent des relations implicites entre les colonnes ; les traits pleins indiquent des relations explicites entre les colonnes.
Tables de classes d'entités d'une base de données Oracle, utilisant le type de géométrie binaire
Les classes d'entités stockées au format binaire (binaire compressé ArcSDE ou représentation binaire connue OGC de la géométrie) d'une géodatabase dans Oracle se composent d'une table de base et de tables d'entités et d'index spatiaux associées, comme décrit ci-dessous.
-
Table de base
Dans le cadre de la structure binaire, la colonne spatiale de la table de base comprend un identifiant d'entité qui identifie les données spatiales de manière unique. L'identifiant de l'entité relie la table de base à deux autres tables : les tables des entités et des index spatiaux. Un déclencheur de base de données est défini pour la table de base spatialisée non versionnée, afin de conserver la relation entre les enregistrements de la table de base et ceux de la table des entités. Toutes les tables de base non versionnées de classes d'entités ont un déclencheur DELETE en cascade qui répercute la suppression de la colonne spatiale dans la table des entités si vous la supprimez dans la table de base. Vous pouvez afficher ces déclencheurs dans le gestionnaire Oracle Enterprise Manager. Ces déclencheurs sont automatiquement supprimés dès lors qu'une classe d'entités, autonome ou partie d'un jeu de classes d'entités, est enregistrée comme versionnée. Ils sont recréés quand une classe d'entités n'est plus enregistrée comme versionnée. Si vous modifiez l'un de ces déclencheurs, puis enregistrez la classe d'entités comme versionnée, le déclencheur est supprimé.
-
Table des entités (F<ID_couche>)
La table des entités stocke les formes géométriques de chaque entité. Cette table est identifiée par le nombre figurant dans la colonne LAYER_ID de la table LAYERS. La relation entre la table de base et la table des entités est gérée par le biais de l'identifiant d'entité, ou FID. Cette clé conservée par ArcSDE est unique pour la colonne spatiale.
Définition de la table des entitésNom du champ
Type de champ
Description
Nul ?
FID
NUMBER(38)
Clé primaire ; l'identifiant unique qui relie la table des entités à la table de base
non NULL
NUMOFPTS
NUMBER(38)
Nombre de points qui définissent l'entité
non NULL
ENTITY
NUMBER(38)
Le type de géométrie stocké dans la colonne spatiale (par exemple, point, ligne ou chaîne)
non NULL
EMINX
FLOAT(64)
Valeur x minimale d'une entité ; définit l'enveloppe d'une entité avec eminy, emaxx et emaxy
non NULL
EMINY
FLOAT(64)
Valeur y minimale d'une entité ; définit l'enveloppe d'une entité avec eminx, emaxx et emaxy
non NULL
EMAXX
FLOAT(64)
Valeur x maximale d'une entité ; définit l'enveloppe d'une entité avec eminx, eminy et emaxy
non NULL
EMAXY
FLOAT(64)
Valeur y maximale d'une entité ; définit l'enveloppe d'une entité avec eminx, eminy et emaxx
non NULL
EMINZ
FLOAT(64)
Valeur z minimale d'une entité tridimensionnelle
EMAXZ
FLOAT(64)
Valeur z maximale d'une entité tridimensionnelle
MIN_MEASURE
FLOAT(64)
Valeur de mesure minimale d'une entité
MAX_MEASURE
FLOAT(64)
Valeur de mesure maximale dans une entité, les valeurs NULL sont autorisées
AREA
FLOAT(64)
Surface de la géométrie
LEN
FLOAT(64)
Périmètre de la géométrie.
POINTS
LONG RAW
Contient le flux d'octets des coordonnées ponctuelles qui définissent la géométrie
En cours d'insertion ou de mise à jour d'entités, les valeurs de colonnes telles que extents (étendues) et numofpts (nombre de points) sont recalculées automatiquement.
La relation entre la table de base et la table des entités est gérée par la colonne spatiale et la colonne FID. Cette clé conservée par ArcSDE est unique. Il est important de conserver l'intégrité référentielle entre la table de base et la table des entités. Il est déconseillé de modifier les enregistrements de la table d'entités et de la table d'index spatial. Afin de garantir la conservation de l'intégrité référentielle, plusieurs index et contraintes ont été ajoutés à la table de base, à la table des entités et à la table d'index spatiaux. Néanmoins, ces index et contraintes sont supprimés dès lors que la classe d'entités est convertie en mode E/S de chargement seul, état qui permet l'insertion rapide de données dans la classe d'entités.
Lorsque la classe d'entités repasse en mode E/S normal (état qui permet aux utilisateurs d'interroger la classe d'entités via un client ArcSDE), les index sont créés et les contraintes sont activées. La conversion en mode E/S normal échoue si les index uniques ne peuvent pas être créés à partir de la colonne spatiale de la table de base ou de la colonne FID de la table des entités. Elle échouera également si une valeur de la colonne spatiale de la table de base est absente de la colonne FID de la table des entités. Dans ce cas, une référence à l'enregistrement concerné de la table de base est chargée dans la table SDE_EXCEPTIONS.
La table des entités stocke les éléments de géométrie, d'annotation et de dessin assisté par ordinateur (DAO) dans la colonne POINTS. La colonne POINTS peut être définie au format objet BLOB ou au format LONG RAW selon la valeur du paramètre de stockage GEOMETRY_STORAGE de la table DBTUNE. Attribuez au paramètre de stockage GEOMETRY_STORAGE de la table DBTUNE la valeur SDEBINARY pour stocker les données spatiales en binaire compressé dans une colonne au format LONG RAW ; attribuez-lui la valeur SDELOB pour stocker les données spatiales en binaire compressé dans une colonne au format objet BLOB.
-
Table d'index spatial (S<id_couche>)
L'index spatial de l'implémentation binaire est la table d'index spatial. Elle stocke des références aux formes à partir d'une grille simple et régulière. Cette table est identifiée par le nombre figurant dans la colonne LAYER_ID de la table LAYERS.
Afin de permettre les requêtes spatiales, l'index spatial contient une entrée pour chaque forme et combinaison de cellules de grille. Une entité qui recoupe trois cellules de grille a trois entrées dans la table. Lors de l'exécution d'une requête spatiale, les cellules de grille de la zone de recherche sont identifiées et renvoyées sous forme de liste de géométries candidates.
Définition de la table d'index spatial
Table d'index spatialNom du champ
Type de champ
Description
Nul ?
SP_FID
NUMBER(38)
Clé primaire ; l'identifiant unique qui relie la table d'index spatiaux à la table de base
non NULL
GX
NUMBER(38)
Valeur x de la grille d'index spatial
non NULL
GY
NUMBER(38)
Valeur y de la grille d'index spatial
non NULL
EMINX
NUMBER(38)
Valeur x minimale d'une entité ; définit l'enveloppe d'une entité avec eminy, emaxx et emaxy
non NULL
EMINY
NUMBER(38)
Valeur y minimale d'une entité ; définit l'enveloppe d'une entité avec eminx, emaxx et emaxy
non NULL
EMAXX
NUMBER(38)
Valeur x maximale d'une entité ; définit l'enveloppe d'une entité avec eminx, eminy et emaxy
non NULL
EMAXY
NUMBER(38)
Valeur y maximale d'une entité ; définit l'enveloppe d'une entité avec eminx, eminy et emaxx
non NULL
La table d'index spatial définit la plage de grille et l'étendue de toute la géométrie d'une classe d'entités ArcSDE.
- sp_fid — Contient l'identifiant unique qui relie la table des entités à la table de base
- gx/gy — Définit l'étendue de l'entité en cellules de grille
- eminx/eminy/emaxx/emaxy — Définit l'étendue de l'entité en unités système
Dans cet exemple, la colonne FEATURE-ID de la table de base WELLS référence des entités de la table des entités et de la table d'index spatiaux :
WELL_ID DEPTH ACTIVE FEATURE-ID 1 30029 Yes 101 2 13939 No 102 3 92891 No 103 … … … FID AREA LEN EMINX,EMINY,… POINTS 101 <compressed feature> 102 <compressed feature> 103 <compressed feature> … … SP_FID GX GY {EMINX,EMINY,EMAXX,EMAXY} 101 70 100 102 70 100 103 71 100 … A business/feature/spatial index key reference
La table d'index spatial pour les classes d'entités binaires est liée à la valeur LAYER_ID de la table LAYERS, alors que la table d'index spatial pour les classes d'entités ST_Geometry est liée à la valeur INDEX_ID générée dans la table ST_GEOMETRY_INDEX.
View a diagram of a feature class using binary storage in Oracle.
Pour ouvrir le fichier, vous devez disposer de Adobe Acrobat Reader.
Les lignes pointillées indiquent des relations implicites entre les colonnes ; les traits pleins indiquent des relations explicites entre les colonnes.
Tables de classes d'entités d'une base de données Oracle, utilisant le type de géométrie Oracle Spatial
Oracle Spatial utilise un type de géométrie spatiale, MDSYS.SDO_GEOMETRY. Ces classes d'entités sont également associées à une table de base, mais cette table est dotée d'une colonne spatiale SDO_Geometry qui stocke la géométrie de la classe d'entités. Les valeurs de géométrie sont stockées directement dans cette colonne spatiale.
View a diagram of a feature class using SDO_Geometry storage in Oracle..
Pour ouvrir le fichier, vous devez disposer de Adobe Acrobat Reader.
Les lignes pointillées indiquent des relations implicites entre les colonnes ; les traits pleins indiquent des relations explicites entre les colonnes.
Classes d'entités dans un document XML
Les classes d'entités sont définies au sein des éléments DataElement. Les balises DataElement d'une classe d'entités sont définies sur le type esri:DEFeatureClass. Dans la classe d'entités DataElement, d'autres éléments définissent la classe d'entités, notamment les éléments Field, Domain, ConfigurationKeyword et SpatialReference.
Voici un extrait du contenu d'un document XML pour la classe d'entités Parcels :
<DataElement xsi:type="esri:DEFeatureClass"> <CatalogPath>/V=SDE.DEFAULT/FC=PERRITA.PARCELS</CatalogPath> <Name>PERRITA.PARCELS</Name> <DatasetType>esriDTFeatureClass</DatasetType> <DSID>21</DSID> <Versioned>false</Versioned> <CanVersion>true</CanVersion> <HasOID>true</HasOID> <OIDFieldName>OID</OIDFieldName> <Fields xsi:type="esri:Fields"> <FieldArray xsi:type="esri:ArrayOfField"> <Field xsi:type="esri:Field"> <Name>OID</Name> <Type>esriFieldTypeInteger</Type> <IsNullable>false</IsNullable> <Length>4</Length> <Precision>10</Precision> <Scale>0</Scale> <Required>true</Required> <Editable>false</Editable> <AliasName>OBJECTID</AliasName> <ModelName>OBJECTID</ModelName> </Field>
Tous les autres éléments qui définissent la classe d'entités
</DataElement>