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

Icône de classe d'entités points ou multi-points

Point ou multi-points

Icône de classe d'entités lignes

Ligne

Icône de classe d'entités surfaciques

Polygone

Icône de classe d'entités annotations

Annotations

Icône de classe d'entités de cotation

Cote

Icône de classe d'entités multipatchs

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.

AstuceAstuce :

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.

RemarqueRemarque :

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.

RemarqueRemarque :

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és

    Nom 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

    Nom 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

    Table d'index spatial

    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

RemarqueRemarque :

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.

RemarqueRemarque :

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..

RemarqueRemarque :

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>

Rubriques connexes


7/10/2012