Utiliser ou ne pas utiliser les classes de relations?

12

Je construis une base de données gouvernementale à partir d'une énorme quantité de données. Maintenant, je suis l'approche standard du modèle de données du gouvernement local d'ESRI, mais modifiée pour s'adapter aux besoins et aux désirs d'un gouvernement spécifique.

J'ai remarqué que dans le modèle de données du gouvernement local, ESRI utilise beaucoup de classes de relations. J'ai utilisé des classes de relations dans le passé, mais j'ai tendance à les éviter. En effet, je ne vois généralement pas de raison pour laquelle je souhaiterais des attributs sur une forme dans une table distincte de la classe d'entités.

Pour presque toutes les données que j'assemble, je ne vois toujours pas de raison à cela. Pour Parcel Fabric, je peux voir quelques raisons pour lesquelles cela serait utile, mais je pense néanmoins qu'il serait préférable de conserver les attributs directement dans la classe d'entités.

Maintenant, pour être clair, je vais utiliser des classes de relations pour référencer des classes d'entités à des classes d'entités, cette question est plus spécifiée pour expliquer pourquoi je voudrais stocker des données dans une table non spatiale qui pourrait tout aussi bien être stockée dans une classe d'entités.

Quoi qu'il en soit merci pour tous les gens d'entrée!

Cody Brown
la source

Réponses:

17

La raison pour laquelle les gens organisent les données dans des tableaux séparés est due aux principes de normalisation de la base de données (suivez le lien, toutes les raisons sont là). Cela étant dit, les classes de relations ESRI sont une implémentation au niveau de la géodatabase de ces principes. Honnêtement, je ne les utiliserais personnellement que dans deux cas:

  • lorsque vous avez des données normalisées dans la base de données et que vous souhaitez tirer parti des outils de modification d'ArcMap. ArcMap vous permet (sans doute) de parcourir facilement les relations dans leurs outils .

  • lorsque vous utilisez une abstraction de géodatabase qui a besoin de la messagerie de géodatabase (par exemple , annotation liée à une entité , classes d' entités personnalisées, etc.).

Bien que les gens puissent prétendre que l'intégrité référentielle est l'un des avantages, la vérité est qu'elle peut être contournée avec une invite SQL, donc l'avantage de cela dépend vraiment du flux de travail que vous avez pour le modifier (c'est-à-dire que les gens utilisent uniquement ArcMap pour edit vs do people éditent également avec des requêtes SQL ou des outils non-ESRI).

Ragi Yaser Burhum
la source
2
Wow, excellente réponse. Le grand monde de la théorie des bases de données vient de m'époustoufler. Merci beaucoup pour la contribution!
Cody Brown
8

Pensez à la situation dans son ensemble - les données SIG ne sont qu'un moyen de parvenir à une fin pour la plupart des gens, en particulier en ce qui concerne les entités gouvernementales. D'après mon expérience, les classes de relations sont principalement utiles (et appropriées) lorsque vous devez incorporer des données non spatiales avec une: de nombreuses relations avec vos données spatiales, surtout si elles proviennent d'une source externe ou changent constamment . Quelques exemples concrets que j'ai rencontrés avec des entités gouvernementales peuvent aider à illustrer ceci:

  • Stockage de plusieurs enregistrements non spatiaux sur une entité (par exemple, des enregistrements d'inspection mensuels pour une borne ou une vanne)
  • Référencement des enregistrements associés à partir d'une source de données que vous ne contrôlez pas (par exemple, lecture des enregistrements de maintenance dans la base de données d'un programme de gestion d'actifs tiers)
brichins
la source