Моделирование: Xml по сравнению с реляционной базой данных

Я не знаю, является ли это в целом правдой, но я могу привести пример приложения, для которого принятый ответ по sakra не работает должным образом. Если вы измените каталог установки, изменив DESTDIR при установке ITK, он просто добавит DESTDIR к уже сформированному пути установки:

make install DESTDIR=/opt/local

[...]

-- Installing: /opt/local/usr/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]

С другой стороны, после этот ответ по Fraser приведет к правильным путям установки без перекомпиляции:

cmake -DCMAKE_INSTALL_PREFIX=/opt/local /path/to/ITK_source
make install

[...]

-- Installing: /opt/local/lib/cmake/ITK-4.4/WrapITK/Configuration/Typedefs/itkRenyiEntropy[...]

10
задан Daniel 8 June 2009 в 22:55
поделиться

5 ответов

Ваш пример упражнения можно смоделировать разными способами. Чтобы получить некоторый опыт и мудрость по вопросу о том, когда иерархическая модель xml показывает преимущество, прочтите Рона Берретта:

http://www.rpbourret.com/xml/XMLAndDatabases.htm

Бывают случаи, когда собственные базы данных xml показывают огромные преимущества RDB, когда контент для хранения частично структурирован. @Smout, проще и безопаснее хранить данные клиент-контракт-клиент в RDB, но что происходит, когда вам также нужно хранить контракт?

RDF контрастирует как с реляционными моделями, так и с моделями xml. RDF разработан для представления данных в «открытом мире», в котором вы никогда не можете быть уверены, что знаете все на тот момент, когда вам нужно вычислить. То, что RDF может быть выражено в xml, удобно, но случайно.

4
ответ дан 3 December 2019 в 18:35
поделиться

В 1960-х годах были изобретены / задуманы / разработаны системы управления данными, которые все основывались на идее эти данные могут быть организованы иерархически. IMS является одним из них. Ошибки / недостатки / недостатки этих систем сразу стали понятны любому, кто интенсивно их использует (например, они имеют тенденцию приводить к «предвзятости запросов»: в иерархических системах часто легко запросить, какие контракты существуют для данного клиента, и в то же время почти невозможно узнать, какие клиенты участвуют в данном контракте).

Все эти недостатки в конечном итоге привели к изобретению реляционной модели.

Итак, если вы хотите знать, подходит ли XML в качестве решение ЛЮБОЙ ПРОБЛЕМЫ УПРАВЛЕНИЯ ДАННЫМИ, ЧТО ТАКОЕ, спросите себя: "

12
ответ дан 3 December 2019 в 18:35
поделиться

В общем, XML - это просто временный формат файла для отправки данных из одной системы в другую. Или хранить небольшой набор данных, например параметры конфигурации и немного больше данных. Если ваши потребности в данных невелики и вы имеете дело с однопользовательской ситуацией, XML подойдет.

Если вам приходится иметь дело с многопользовательской средой, вы все равно можете использовать XML, но вам нужно будет создать вокруг него сложный бизнес-уровень, отслеживающий модификации всех пользователей и добавляющий множество многопользовательских функций, которые стандартная СУБД предлагает. Если у вас много данных, есть риск, что ваш XML-файл станет слишком большим. Стандарт XML немного раздут, и если вам приходится работать с XML-файлами размером 500 МБ каждый, я надеюсь, что у вас будет много-много терпения.

Конечно, есть и другие альтернативы. Однажды я создал простой веб-сканер, который загружал веб-страницу, извлекал из нее все URL-адреса и затем повторял это действие для каждого URL-адреса. Он использовал около 20 потоков, которые все загружали страницы, и количество URL-адресов вырастет до миллионов. Я хотел избежать загрузки одного URL дважды, поэтому мне пришлось отфильтровать дубликаты. Использование XML было бы кошмаром, учитывая объем данных. Использование базы данных было излишним, поскольку все, что мне было нужно, это одна таблица с одним полем: URL. Поэтому я написал специальный алгоритм хеширования и создал собственное решение для хеш-таблицы на основе файлов. Это было очень быстро, проверка нескольких тысяч URL-адресов в секунду, если бы не нужно было загружать эти страницы ...

В ситуациях, подобных этому упражнению, я бы начал с создания простой схемы XML с помощью некоторого инструмента моделирования для XML. (XMLSpy компании Altova в этом хорош.) Когда я думаю, что мои данные хорошо вписываются в этот XSD, я начинаю создавать базу данных, в которой каждый элемент будет преобразован в таблицу. В результате я получил бы хорошую реляционную базу данных плюс некоторое определение формата XML, который можно было бы использовать для импорта / экспорта тех же данных в / из базы данных.

Когда я думаю, что мои данные хорошо впишутся в этот XSD, я начинаю создавать базу данных, где каждый элемент будет преобразован в таблицу. В результате я получил бы хорошую реляционную базу данных плюс некоторое определение формата XML, который можно было бы использовать для импорта / экспорта тех же данных в / из базы данных.

Когда я думаю, что мои данные хорошо впишутся в этот XSD, я начинаю создавать базу данных, где каждый элемент будет преобразован в таблицу. В результате я получил бы хорошую реляционную базу данных плюс некоторое определение формата XML, который можно было бы использовать для импорта / экспорта тех же данных в / из базы данных.

2
ответ дан 3 December 2019 в 18:35
поделиться

Как насчет «ничего из вышеперечисленного»?

Сначала я бы смоделировал Домен, используя инструмент концептуального моделирования, такой как NORMA . Это позволит вам сосредоточиться на модели, пока вы не закончите. На этом этапе NORMA может сгенерировать DDL для нескольких популярных баз данных, а также схему XML.

1
ответ дан 3 December 2019 в 18:35
поделиться

Ваш пример с упражнениями хорош, но я думаю, что вы пришли к неверному выводу.

Я думаю, что из-за сложность (и возможная сложность что я еще не придумал) что это лучше всего было бы смоделировать с использованием xml.

Я думаю, что этот вывод основан на ошибочном предположении, что XML обеспечивает большую гибкость моделирования, чем реляционная модель. Фактически (как умело описывает Эрвин Смаут) реляционная модель по своей сути более гибкая, чем XML, потому что XML является строго иерархическим, тогда как реляционная модель допускает отношения «многие ко многим» произвольной сложности.

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

2
ответ дан 3 December 2019 в 18:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: