Чи хороший дизайн бази даних менш важливий для просторових баз даних?


15

У мене є сильне відчуття, що розробка та нормалізація баз даних часто приходить в другу руку при роботі з просторовими даними.

Оскільки програмне забезпечення коштує цілий стан і бази даних з понад 100 таблицями полів, я повинен запитати:

Чи є вагомі причини брати інші міркування, ніж нормалізація, при розробці просторової бази даних?

Я думаю, що люди попросять приклади, але я тут не можу навести, тому моє питання, можливо, більше спрямоване на тих, хто означає, що 100 полів не є проблемою і простішими в обслуговуванні, ніж належна нормалізована конструкція.

Які аргументи?


Що стосується ArcGIS, нормалізовану базу даних з референтною цілісністю важко здійснити, оскільки ви обмежені лише можливостями бази даних, які піддаються вам та підтримуються ArcGIS. Це дуже засмучує хлопця з реляційних баз даних ... граючи в телефонну гру, з ArcSDE посередині.
nw1

Відповіді:


16

Я вважаю, що просторові бази даних не повинні по-різному ставитися до традиційних баз даних. Вони по суті роблять те саме, зберігаючи велику кількість даних для швидкого пошуку. Наприклад, у PostgreSQL / PostGIS геометрія - це лише інший тип даних. Так само, як текст або ціле число. Те саме в SQL Server 2008. Те саме в Oracle. Якщо "просторова" частина - це лише інший тип поля в базі даних, то чи справді вона відрізняється від вихідної бази даних? Чи означає це, що ми повинні викинути всі правила традиційного дизайну баз даних?

Очевидно, що нормалізація може бути зайнята занадто далеко, як і у традиційних базах даних, тому потрібно знайти кращий дизайн, який відповідає вашим потребам.

Якщо ви плануєте створити сильно денормалізовану структуру з таблицями з 100 стовпців, то вам доведеться запитати себе, що може змінитися в майбутньому? Зі значним збільшенням рядків це також вплине на ефективність запитів? Чи це вплине на ремонтопридатність у майбутньому?

Що не так у створеній нормалізованій структурі та використанні поглядів для викриття всіх даних клієнтом бази даних, будь то ГІС чи будь-який інший клієнт?

Усі ці питання стосуються як традиційних, так і просторових баз даних. Якщо ви пройдете http://en.wikipedia.org/wiki/Database_normalization, ви побачите, що це стосується і просторових баз даних.

Якщо програмне забезпечення, яке ви використовуєте поверх бази даних, змушує вас використовувати сильно денормалізовані структури, то це вже інший аргумент. Вас обмежує програмне забезпечення, а не база даних, тому у вас немає вибору найкращого дизайну бази даних.

Тому я вважаю, що коротка відповідь - це (на мою думку) дизайн баз даних так само важливий як для просторових баз даних, так і для традиційних баз даних.


1
+1 для ключового моменту розмежування програмного забезпечення, що диктує db-структуру, порівняно з "найкращим" дизайном для характеру даних.
matt wilkie

Так, і з цією відповіддю, і з коментарем Метта я згоден. Але я сподіваюся, що хтось може пояснити, чому цього так часто не дотримуються. Я трохи відредагую питання.
Nicklas Avén

Я згоден. Ще одне, що я знайшов - це те, що продуктивність бази даних може вплинути на ваше рішення щодо нормалізації чи ні. У деяких випадках я бачу, що використовуються дві бази даних, одна "головна" база даних, що містить нормалізовані дані, і одна вторинна база даних, яка використовується лише для відображення. Цей містить лише все, що потрібно для відображення (ГІС) даних, як правило, в одній таблиці.
Беренд

Для розширення точки Berends, однією з головних причин такої денормалізації є те, що матеріалізовані представлення часто бувають складно реалізованими та специфічними для БД, тому зазвичай краще просто створити власну таблицю / базу даних для зберігання денормалізованих даних.
Олександр

6

Я це багато бачу. Я відчуваю, що це випливає з того, що традиційно люди, що займаються ГІС, походять із фонового опитування та не мають досвіду / розуміння баз даних. Я бачу цю зміну, хоча все більше організацій переносить інфраструктуру ГІС у склад ІТ.


1
це теж моє почуття, але я певним чином сподіваюся, що пояснення більше нагадує дискусію Паулса, що це певний вибір обдуманий. це дало б більше сенсу для ГІС-комерційності з такою кількістю вигадливих слів, моделює "методи, ніж з'ясовувати, що база даних в нижній частині була неправомірно використана через незнання"
Nicklas Avén

1
вибачте, неправильно використаний - неправильно. якщо вона є прискіпливою з поважної причини, це не зловживання.
Nicklas Avén

5

Спадщина програмного забезпечення GIS

Попередня висока вартість ArcSDE та відсутність просторового типу даних у SQL Server (до 2008 р.) Та Oracle до версії 10 означали, що для зберігання даних у форматі файлів для багатьох організацій залишається невеликий вибір, а також тендери, щоб зменшити вартість ставок) .

Впровадження в SQL Server вітчизняних просторових типів майже миттєво означало, що ArcSDE перейшла від величезних інвестицій, до безкоштовного включення в ArcGIS та "внесення в складку" просторових даних в організаціях.

Організації, які використовують ArcGIS і SQL Server, раніше мали три варіанти:

  1. Сплатіть 20k + плату за придбання ArcSDE та зберігання просторових даних у "належних" базах даних SQL Server.
  2. Зберігати просторові дані у форміфілів / особистих GDB та посилатись на решту організаційних даних у бази даних (або експортувати ці атрибути до DBF)
  3. Перемикайте постачальників ГІС та зберігайте просторові дані в одній базі даних, але у форматі, доступному лише новим програмним забезпеченням ГІС

Після того, як SQL Server мав місцевий просторовий тип, більшість постачальників використовували це замість власних форматів, тобто просторові дані могли раптом отримати доступ до інших програм. ESRI повинен був або зменшити витрати на ArcSDE (що вони зробили, інтегруючи її в ArcGIS), і / або дозволити збереження просторових даних у нативному форматі бази даних.

Окрім того, запити, виконані в ArcIMS, на файлових формах, пов'язаних з DBF, повинні включати всі необхідні поля та дублювання, оскільки не було можливості створювати просторові подання або легко пов'язувати функції із базою даних із заднім кінцем.

Організаційні причини

Я погоджуюся з іншими, що до недавнього часу просторові дані ставали нативним типом бази даних, вони давно ігноруються або зберігаються окремо адміністраторами баз даних в організаціях і стають відповідальністю менеджера ГІС. Концепції проектування баз даних, нормалізація, реплікація, безпека та перегляди SQL вимагають часто дуже різного та спеціалізованого набору навичок, і їх неможливо легко засвоїти в процесі роботи.

Причини витрат

Пояснити в тендері вимогу великої кількості часу та зусиль, які потрібно витратити на модель даних, і очищення / імпорт даних у цю модель часто неможливо. Часто замовники проектів виходять з аналітичного погляду на ГІС і не помічають важливості структурованих даних.


Я розумію і згоден з більшістю того, що ви пишете. Але сказати, що частина SDE надається безкоштовно після перейменування на сервер ArcGIS, це не так, як сказати: Якщо ви придбаєте красивий колір цього автомобіля за 100000 доларів, ви отримаєте решту машини безкоштовно. Я не знаю ArcGIS так добре, але що таке ArcGIS сервер без частини SDE? і я ніколи не чув, щоб хтось говорив, що сервер ArcGIS - це дешево. Я насправді не бачу, як просторові типи SQL Server вплинули на ArcGIS. Але оскільки товари Arc настільки широко поширені, я згоден, що дорога Arc має великий вплив на те, як люди думають про свої просторові дані.
Nicklas Avén

До ArcGIS Server ArcSDE був повністю відокремлений від ArcMap та ArcIMS і його потрібно було купувати та ліцензувати окремо. Оскільки ArcSDE був єдиним способом зберігання просторових даних у SQL Server (або Oracle на той час), це означало, що просторові дані зберігаються в іншому місці.
geographika

Гаразд, ArcIMS в пакеті з SDE - це нова концепція. Arcmap все ще потребує окремих ліцензій на користувача або плаваючого, правда? оффтопік, але мені трохи цікаво.
Nicklas Avén

Нова концепція не мала доступу / зберігання просторових даних у реляційній базі даних без виплати великих грошей. esri.com/software/arcgis/arcsde/index.html
geographika

чи не велика сума грошей на сервері ArcGIS? Наскільки я знаю, ви не можете використовувати sqlserver fomat або postgis формат (без ziggis) в arcmap без sde, вибачте ArcGIS Server між ними.
Nicklas Avén

4

Під 100-стовпчиковими таблицями я припускаю, що ви маєте на увазі види виходів, отриманих від побудови «головного покриття» накладок з декількох входів. Так, це артефакти робочого процесу Arc / INFO. Але, на захист, ви також можете вважати, що вони свідомо денормовані таблиці OLAP . Оскільки вони в основному використовуються для обробки запитів, а не для оновлення даних, денормована форма має певний сенс. Як схема зірки , але без точок, ер. Добре, слабкий чай, але все ж я думаю, що там щось є.


1
так, Пол. Я знав, що там буде якесь пояснення, включаючи слова, які я насправді не розумію :-). Дуже цікаво, що за цим стоїть навмисна історія. Чудово!
Nicklas Avén

3

Так, якщо запуск нового проекту проекту GI важливий і може заощадити час = гроші в майбутньому. http://www.amazon.com/Spatial-Database-Systems-Implementation-Management/dp/1402053916 - це хороший огляд того, чому це важливо.


Mapperz, це питання заперечується, якщо воно менш важливе. Ти маєш на увазі це не менш важливо, правда?
Nicklas Avén
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.