Używać czy nie używać klas relacji?

12

Buduję rządową bazę danych z ogromnej ilości danych. Teraz postępuję zgodnie ze standardowym podejściem modelu danych samorządu lokalnego ESRI, ale zmodyfikowałem go, aby pasował do potrzeb i życzeń konkretnego rządu.

Zauważyłem, że w modelu danych samorządu lokalnego ESRI używa wielu klas relacji. W przeszłości korzystałem z klas relacji, ale zwykle unikam ich. Jest tak, ponieważ zazwyczaj nie widzę powodu, dla którego chciałbym mieć atrybuty kształtu w osobnej tabeli od klasy elementów.

W przypadku prawie wszystkich danych, które gromadzę, wciąż nie widzę powodu. W przypadku Parcel Fabric widzę kilka powodów, dla których byłoby to pomocne, ale nadal uważam, że najlepiej byłoby zachować atrybuty bezpośrednio w klasie elementów.

Teraz, aby było jasne, zamierzam używać klas relacji do odwoływania się do klas elementów do klas elementów, to pytanie jest bardziej sprecyzowane, dlaczego miałbym przechowywać dane w nieprzestrzennej tabeli, która równie łatwo mogłaby być przechowywana w klasie elementów.

W każdym razie dzięki za wszelkie informacje wejściowe!

Cody Brown
źródło

Odpowiedzi:

17

Powodem, dla którego ludzie organizują dane w osobnych tabelach, są zasady normalizacji bazy danych (skorzystaj z linku, wszystkie uzasadnienia są dostępne). To powiedziawszy, Klasy relacji ESRI są implementacją tych zasad na poziomie GeoDatabase. Szczerze mówiąc, ja osobiście z nich korzystać tylko w dwóch przypadkach:

Chociaż ludzie mogą twierdzić, że integralność referencyjna jest jedną z korzyści, prawda jest taka, że ​​można ją obejść za pomocą monitu SQL, więc korzyść z tego naprawdę zależy od przepływu pracy, który masz do modyfikacji (tj. Czy ludzie używają tylko ArcMap do edytuj vs czy ludzie również edytują za pomocą zapytań SQL lub narzędzi innych niż ESRI).

Ragi Yaser Burhum
źródło
2
Wow, świetna odpowiedź. Wielki, wielki świat teorii baz danych właśnie wstrząsnął mną. Dzięki ton za wkład!
Cody Brown,
8

Pomyśl o szerszym obrazie - dane GIS są dla większości ludzi środkiem do osiągnięcia celu, zwłaszcza jeśli chodzi o jednostki rządowe. Z mojego doświadczenia wynika, że ​​klasy relacji są przede wszystkim użyteczne (i odpowiednie), gdy trzeba uwzględnić dane nieprzestrzenne za pomocą jednego: wiele relacji z danymi przestrzennymi, szczególnie jeśli pochodzą one z zewnętrznego źródła lub stale się zmieniają . Niektóre rzeczywiste przykłady, które spotkałem z podmiotami rządowymi, mogą pomóc to zilustrować:

  • Przechowywanie wielu nieprzestrzennych zapisów dotyczących obiektu (np. Comiesięczne zapisy z kontroli hydrantu lub zaworu)
  • Odwoływanie się do powiązanych rekordów ze źródła danych, którego nie kontrolujesz (np. Odczytywanie rekordów konserwacji z bazy danych programu zarządzania zasobami innej firmy)
brichiny
źródło