Usare o non usare le classi di relazione?


12

Sto costruendo un database governativo da una grande mole di dati. Ora sto seguendo l'approccio standard del modello di dati del governo locale dell'ESRI, ma modificato per soddisfare le esigenze e le esigenze di un governo specifico.

Ho notato che nel modello di dati del governo locale ESRI utilizza molte classi di relazione. Ho usato classi di relazione in passato, ma tendo a evitarlo. Questo perché di solito non vedo un motivo per cui vorrei attributi su una forma in una tabella separata dalla classe caratteristica.

Per quasi tutti i dati che sto raccogliendo non riesco ancora a vedere un motivo per questo. Per Parcel Fabric posso vedere alcuni motivi per cui sarebbe utile, ma credo comunque che sarebbe meglio mantenere gli attributi direttamente nella classe di caratteristiche.

Ora, per essere chiari, userò le classi di relazione per fare riferimento alle classi di caratteristiche per le classi di caratteristiche, questa domanda è più specificata sul perché dovrei archiviare i dati in una tabella non spaziale che potrebbe essere facilmente memorizzata in una classe di caratteristiche.

Comunque grazie per eventuali input!

Risposte:


17

Il motivo per cui le persone organizzano i dati in tabelle separate è a causa dei principi di normalizzazione del database (segui il link, c'è tutta la logica). Detto questo, le classi di relazioni ESRI sono un'implementazione a livello di GeoDatabase di tali principi. Onestamente, li userei personalmente solo in due casi:

  • quando si dispone di alcuni dati normalizzati nel DB e si desidera sfruttare gli strumenti di modifica di ArcMap. ArcMap ti consente (probabilmente) di attraversare facilmente le relazioni nei loro strumenti .

  • quando si utilizza un'astrazione di GeoDatabase che necessita della messaggistica di GeoDatabase (ad es. annotazione collegata a funzionalità, classi di funzionalità personalizzate, ecc.).

Sebbene le persone possano affermare che l'integrità referenziale è uno dei vantaggi, la verità è che può essere aggirata con un prompt SQL, quindi il vantaggio di ciò dipende davvero dal flusso di lavoro che hai per modificarlo (cioè le persone usano solo ArcMap per modifica vs le persone modificano anche con query SQL o strumenti non ESRI).


2
Caspita, ottima risposta. Il grande mondo della teoria dei database mi ha appena colpito. Grazie mille per l'input!
Cody Brown,

8

Pensa al quadro più ampio: i dati GIS sono solo un mezzo per raggiungere un obiettivo per la maggior parte delle persone, soprattutto quando si tratta di entità governative. La mia esperienza è stata che le classi di relazione sono principalmente utili (e appropriate) quando è necessario incorporare dati non spaziali con uno: molte relazioni con i dati spaziali, specialmente se provengono da una fonte esterna o cambiano costantemente . Alcuni esempi del mondo reale che ho incontrato con entità governative possono aiutare a illustrare questo:

  • Memorizzazione di più record non spaziali su una funzione (ad es. Record di ispezione mensili per un idrante o una valvola)
  • Riferimenti a record correlati da un'origine dati che non si controlla (ad es. Lettura dei record di manutenzione dal database di un programma di gestione patrimoniale di terze parti)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.