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

15

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

С ценным программным обеспечением и базами данных с более чем 100 полями таблиц я должен спросить:

Есть ли веские причины для принятия других соображений, кроме нормализации, при проектировании пространственной базы данных?

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

Каковы аргументы?

Никлас Авен
источник
В случае ArcGIS нормализованную базу данных со ссылочной целостностью трудно выполнить, поскольку вы ограничены только теми функциями базы данных, которые вам доступны и поддерживаются ArcGIS. Это очень расстраивает, как парень по реляционной базе данных ... играет в телефонную игру с ArcSDE в середине.
nw1

Ответы:

16

Я чувствую, что пространственные базы данных должны рассматриваться не иначе, как традиционные базы данных. По сути, они делают то же самое, сохраняя большие объемы данных для быстрого поиска. Например, в PostgreSQL / PostGIS геометрия - это просто еще один тип данных. Так же, как текст или целое число. То же самое в SQL Server 2008. То же самое в Oracle. Если «пространственная» часть - это просто другой тип поля в базе данных, то действительно ли она отличается от исходной базы данных? Значит ли это, что мы должны выбросить все правила традиционного проектирования баз данных?

Очевидно, что нормализацию можно зайти слишком далеко, как и в случае с традиционными базами данных, поэтому стоит найти оптимальный дизайн, соответствующий вашим потребностям.

Если вы планируете создать сильно ненормализованную структуру с таблицами из 100 столбцов, то вам следует спросить себя, что может измениться в будущем? При значительном увеличении количества строк это также повлияет на производительность запросов? Это повлияет на ремонтопригодность в будущем?

Что не так с созданием нормализованной структуры и использованием представлений для предоставления всех данных клиенту базы данных, будь то ГИС или любой другой клиент?

Все эти вопросы относятся как к традиционным базам данных, так и к пространственным базам данных. Если вы пройдете через http://en.wikipedia.org/wiki/Database_normalization, то обнаружите, что она также применима к пространственным базам данных.

Если программное обеспечение, которое вы используете поверх базы данных, заставляет вас использовать сильно ненормализованные структуры, то это другой аргумент. Вы ограничены программным обеспечением, а не базой данных, поэтому у вас нет выбора в лучшем дизайне базы данных.

Поэтому я думаю, что короткий ответ (на мой взгляд) дизайн базы данных так же важен для пространственных баз данных, как и для традиционных баз данных.

Келсо
источник
1
+1 за ключевую точку разграничения между программным обеспечением, определяющим структуру БД, и «лучшим» дизайном для характера данных.
Мэтт Вилки
Да, и этот ответ и комментарий Мэтта я согласен. Но я надеюсь, что кто-то может объяснить, почему так часто не соблюдается. Я немного отредактирую вопрос.
Никлас Авен
Я согласен. Еще одна вещь, которую я обнаружил, заключается в том, что производительность базы данных может повлиять на ваше решение о нормализации или нет. В некоторых случаях я вижу, что используются две базы данных: одна «основная» база данных, содержащая нормализованные данные, и одна вторичная база данных, которая используется только для целей отображения. Этот файл содержит только то, что необходимо для отображения данных (ГИС), обычно в одной таблице.
Беренд
Если говорить более подробно о точке Berends, то одной из причин этой денормализации является то, что материализованные представления часто немного сложны и специфичны для DB, поэтому обычно лучше просто создать собственную таблицу / базу данных для хранения денормализованных данных.
Александр
6

Я вижу это много. Я чувствую, что это связано с тем фактом, что люди, занимающиеся ГИС, традиционно имеют опыт работы в сфере съемок и не имеют опыта работы с базами данных. Однако я вижу это изменение, так как все больше и больше организаций перемещают ГИС-инфраструктуру в область ИТ.

BlinkyBill
источник
1
это тоже мое чувство, но я надеюсь, что это объяснение больше похоже на дискуссию Пола, что это в некотором смысле осознанный выбор. это придаст больше смысла бизнесу ГИС с таким количеством причудливых слов, моделирует «методы, чем обнаружение того, что база данных внизу использовалась неправильно из-за невежества».
Никлас Авен,
1
извините, неправильно используется неправильно. если это умышленно по уважительной причине, это не злоупотребление.
Никлас Авен
5

ГИС Software Legacy

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

Внедрение собственных пространственных типов в SQL Server почти мгновенно означало, что ArcSDE превратился из огромных инвестиций в бесплатное включение в ArcGIS и «привнесение в сгиб» пространственных данных в организациях.

Организации, использующие ArcGIS и SQL Server, ранее имели три варианта:

  1. Заплатите 20 000+ за покупку ArcSDE и хранение пространственных данных в «правильных» базах данных SQL Server.
  2. Сохраняйте пространственные данные в шейп-файлах / личных GDB и связывайте их с остальными организационными данными в базах данных (или экспортируйте эти атрибуты в DBF)
  3. Переключение поставщиков ГИС и хранение пространственных данных в одной базе данных, но в формате, доступном только для нового программного обеспечения ГИС

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

Кроме того, запросы, выполняемые в ArcIMS для шейп-файлов, означающие, что они связаны с DBF, должны включать все обязательные поля и дублирование, поскольку не было возможности создавать пространственные представления или легко связывать объекты с внутренней базой данных.

Организационные Причины

Я согласен с другими в том, что до недавнего времени пространственные данные становились родным типом базы данных, они долгое время игнорировались или держались отдельно администраторами баз данных в организациях и становились ответственными за ГИС-менеджера. Концепции проектирования базы данных, нормализации, репликации, безопасности и представлений SQL требуют зачастую очень разных и специализированных навыков и не могут быть легко изучены в процессе работы.

Стоимость Причины

Объяснение в тендере требует большого количества времени и усилий, затрачиваемых на модель данных, и очистка / импорт данных в эту модель часто невозможны. Часто покупатели проекта исходят из аналитической точки зрения ГИС и упускают из виду важность структурированных данных.

geographika
источник
Я понимаю и согласен с большинством того, что вы пишете. Но сказать, что часть SDE предоставляется бесплатно после переименования на сервер ArcGIS, это не то же самое, что сказать: если вы купите красивый цвет этого автомобиля за 100000 долларов, вы получите оставшуюся часть автомобиля бесплатно. Я не очень хорошо знаю ArcGIS, но что такое сервер ArcGIS без SDE? и я никогда не слышал, чтобы кто-то говорил, что сервер ArcGIS дешевый. Я действительно не вижу, как пространственные типы SQL Server повлияли на ArcGIS. Но так как продукты Arc широко распространены, я согласен, что дорога Arc имеет большое влияние на то, как люди думают о своих пространственных данных.
Никлас Авен
До ArcGIS Server ArcSDE раньше был полностью отделен от ArcMap и ArcIMS и должен был приобретаться и лицензироваться отдельно. Поскольку ArcSDE был единственным способом хранения пространственных данных в SQL Server (или Oracle в то время), это означало, что пространственные данные хранятся в другом месте.
география
Хорошо, ArcIMS в пакете с SDE - новая концепция. Arcmap все еще нуждается в отдельных лицензиях на пользователя или плавающих, верно? Оффтоп, но мне немного любопытно.
Никлас Авен
Новая концепция не обеспечивала доступа к пространственным данным в реляционной базе данных и их хранения без дополнительной оплаты. esri.com/software/arcgis/arcsde/index.html
география
не является ли ArcGIS server большим количеством денег? Насколько я знаю, вы не можете использовать формат sqlserver fomat или postgis (без ziggis) в arcmap без sde, извините ArcGIS Server между ними.
Никлас Авен
4

Под таблицами в 100 столбцов я предполагаю, что вы имеете в виду виды выходных данных, которые вы получаете при построении оверлеев «основного покрытия» нескольких входов. Да, это артефакты рабочего процесса Arc / INFO. Но, в защиту, вы также можете думать о них как о намеренно ненормализованных таблицах для OLAP . Так как они используются в основном для обработки запросов, а не для обновления данных, ненормализованная форма имеет некоторый смысл. Как схема звезды , но без точек. Хорошо, слабый чай, но все же я думаю, что-то есть.

Пол Рэмси
источник
1
да Пол Я знал, что будет какое-то объяснение, включая слова, которые я не совсем понимаю :-). Очень интересно, что за этим стоит целенаправленная история. Большой!
Никлас Авен
3

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

Mapperz
источник
Mapperz, вопрос отменяется, если он менее важен. Вы имеете в виду, что это не менее важно, верно?
Никлас Авен