Para usar ou não usar classes de relacionamento?

12

Estou construindo um banco de dados do governo a partir de uma enorme quantidade de dados. Agora, estou seguindo a abordagem padrão do Modelo de Dados do Governo Local da ESRI, mas modificado para atender às necessidades e desejos de um governo específico.

Percebi que no Modelo de Dados do Governo Local, a ESRI usa muitas classes de relacionamento. Eu usei classes de relacionamento no passado, mas tendem a evitá-las. Isso ocorre porque geralmente não vejo um motivo para querer atributos sobre uma forma em uma tabela separada da classe feature.

Para quase todos os dados que estou reunindo, ainda não consigo ver uma razão para isso. Para o Parcel Fabric, posso ver alguns motivos pelos quais isso seria útil, mas ainda acredito que seria melhor manter os atributos diretamente na classe de recurso.

Agora, para deixar claro que vou usar classes de relacionamento para referenciar classes de recursos para classes de recursos, essa pergunta é mais especificada sobre por que eu armazenaria dados em uma tabela não espacial que poderia facilmente ser armazenada em uma classe de recursos.

De qualquer forma obrigado por qualquer pessoal de entrada!

Cody Brown
fonte

Respostas:

17

A razão pela qual as pessoas organizam dados em tabelas separadas é devido aos princípios de Normalização do Banco de Dados (siga o link, todo o raciocínio está lá). Dito isto, as ESRI Relationship Classes são uma implementação no nível GeoDatabase desses princípios. Honestamente, eu pessoalmente os usaria apenas em dois casos:

Embora as pessoas possam alegar que a integridade referencial é um dos benefícios, a verdade é que ela pode ser contornada com um prompt SQL; portanto, o benefício disso realmente depende do fluxo de trabalho que você possui para modificar isso (ou seja, as pessoas usam apenas o ArcMap para edit vs do people também editam com consultas SQL ou ferramentas não ESRI).

Ragi Yaser Burhum
fonte
2
Uau, ótima resposta. O grande mundo da teoria dos bancos de dados me surpreendeu. Muito obrigado pela contribuição!
Cody Brown
8

Pense no panorama geral - os dados de GIS são apenas um meio para atingir um fim para a maioria das pessoas, especialmente quando se trata de entidades governamentais. Minha experiência foi que as classes de relacionamento são principalmente úteis (e apropriadas) quando você precisa incorporar dados não espaciais com um: muitos relacionamentos com seus dados espaciais, especialmente se for de uma fonte externa ou mudar constantemente . Alguns exemplos do mundo real que encontrei com entidades governamentais podem ajudar a ilustrar isso:

  • Armazenamento de vários registros não espaciais sobre um recurso (por exemplo, registros mensais de inspeção para um hidrante ou válvula)
  • Referenciando registros relacionados de uma fonte de dados que você não controla (por exemplo, lendo registros de manutenção do banco de dados de um programa de gerenciamento de ativos de terceiros)
brichins
fonte