2009-02-13 4 views
2

Есть ли недостатки в использовании XML вместо RDMS? Причина, по которой я спрашиваю об этом, заключается в том, что мои данные более естественно представлены структурой XML, а не РСУБД. Первоначально я думал о storing the data in relational database, но отсутствие гибкости реляционной базы данных для обработки древовидной структуры данных вызывало меня. Поэтому я думаю о просто хранении данных в XML.Преимущества/Недостатки XML по сравнению с RDMS

Одна вещь, которую я боюсь, - штраф за исполнение. Хотя RDBMS может обрабатывать большие наборы данных, я не уверен, можно ли сказать об XML. Кроме того, запросы к базе данных довольно хорошо установлены и довольно просты в использовании и построении, а что касается XML-запросов? Я не знаю.

Я делаю .Net приложение.

ответ

2

На мой взгляд, эти факторы необходимо учитывать

  1. , который соответствует вашим приложениям более точно нуждается
  2. Как большой набор данных, вам нужно работать?
  3. Вы передаете данные между приложениями или собираетесь ли вы его запросить?


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

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

Все самое лучшее.

0

Две большие преимущества, присущие СУБД являются:

  1. Indexing. Значительно повышает производительность.
  2. Ограничение. Вы можете определить отношения между элементами, которые помогают поддерживать целостность ваших данных.

Помните, что вы можете поместить xml в sql-сервер и запросить его с помощью xpath, поэтому в зависимости от формы ваших данных вы сможете получить лучшее из обоих миров.

4

Вы не должны сравнивать XML с РСУБД, так как это две дополнительные технологии; XML не следует рассматривать или рассматривать как замену RDMBS.

RDMBS предназначен для постоянного хранения больших объемов данных. РСУБД должна заботиться о согласованности данных и т. Д.

XML может использоваться, например, для обмена данными между различными компьютерными системами, но он не должен использоваться для хранения больших объемов данных в течение длительного времени период времени.
Xml не позволяет вам заботиться о консистенции данных, как это делает RDMBS; он не заботится о транзакциях и т. д. Xml на самом деле не более чем текстовый файл, который содержит данные каким-то структурированным способом.

+0

+1 - это больше похоже на сравнение БД с файлами – annakata

+1

-1 Собственная база данных XML прошла очень долгий путь, возможно, вы захотите проверить некоторые из популярных. Они поддерживают все функции, типичные для базы данных RDDMBS, но с возможностью индексирования по требованию, вместо того, чтобы предварительно определять структуры и данные. Они очень далеки от «Ничего больше, чем текстовый файл». –

0

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

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

Когда дело доходит до использования ваших данных, если вы извлекаете его как Xml. Я знаю, если вы используете Sql Server, который работает из коробки, не так уверен в Oracle.

+0

В базы данных SQL есть надстройки, которые заставляют узлы вести себя как база данных Native XML. Таким образом, в этом смысле вы можете получить возможность индексирования XQuery и XML при использовании базы данных SQL. Хотя это кажется мне немного отсталым. –

1

Вещи РСУБД предусматривает, что XML не делает, более или менее в порядке важности:

  • исполнение определенной схемы (хотя это, конечно, доступны для XML)
  • поддержка нескольких авторов
  • атомарные операции
  • ссылочной целостности
  • хорошо определенный язык запросов
  • возможность выбрать Доступ к imize через индексы, составленные запросы и т.д.
  • безопасности на основе роли
  • триггеров, хранимые процедуры, рассчитанные столбцы и т.д.

Плюс вам не нужно загружать всю базу данных в память перед вы можете получить доступ к любому из них.

Формат XML в формате сериализации для объектной модели. Это хорошо для взлома моделей относительно свободной формы, к которым вы также можете обратиться с XPath, особенно если вы собираетесь преобразовать эти данные в XML или HTML через XSLT. И он заслуживает того, чтобы быть стандартным и независимым от платформы.

Но если вы слишком амбициозны, вы быстро попадаете в территорию, в результате которой вы пишете рассказы о том, насколько ужасен XML. (Я говорю с вами, Jeff Atwood.)

+0

Между eXist и MarkLogic они предоставляют все эти функции, и вам не нужно загружать весь XML в память, его эффективность выполняется с помощью индексов. eXist компилирует и кэширует все XQuery, поэтому репрезентативный доступ чрезвычайно быстрый и эффективный. Он также имеет защиту на основе ролей, триггеры и т. Д. –

5

Если вы работаете с данными XML, то почти нет вопросов, что вы должны искать в базе данных из Native XML.

Две из самых популярных национальных баз данных. Сервер MarkLogic и eXist обеспечивают чрезвычайно надежные и эффективные механизмы индексирования, а также многие функции, упомянутые в этом списке.

Фактически сервер MarkLogic для многих поисковых приложений резко работает с базами данных SQL, особенно на больших наборах данных xml. Это связано с тем, что он создан специально для работы с XML и знает лучший способ его индексирования, который без нормализации SQL этого не делает.

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

Дальнейшие детали ----

Большинство, данных, что люди взаимодействуют с неструктурирован и heigharchal. Нормализация и не нормализация этих данных в плоскую реляционную структуру занимает не только много времени с точки зрения информационной архитектуры, но и заставляет нас запрашивать данные неестественно.

Текущие базовые базы данных xml позволяют легко добавлять и эффективно индексировать массовые объемы данных, не прошедших сборку (но с проверкой схемы).

Использование xpath для запроса этих документов является гораздо более естественным способом перемещения и извлечения данных, поскольку запросы являются представлениями структуры.

Он также легко трансформируется с использованием XQuery и XSLT.

Конечным результатом является более высокая рентабельность инвестиций для разработчиков. Вы пишете меньше кода и получаете больше. Раньше я писал в основном в php/sql-приложениях. Когда мы переместили нашу архитектуру на Native XML и XQuery, я смог заменить тысячи строк кода гораздо более простым и сжатым XQuery.

Если у вас есть бюджет (~ 250k), проверьте сервер MarkLogic. Это одна из самых впечатляющих и масштабируемых систем баз данных, когда-либо созданных, и все это Native XML. Насколько я знаю, он поддерживает транзакции, откаты и т. Д. И все другие функции, предоставляемые SQL.

СУЩЕСТВУЕТ (http://exist-db.org) является проектом с открытым кодом, который имеет:

  • поддержки полный XQuery/XPath/XSLT
  • эффективные механизмы индексации
  • Встраиваемая в полном тексте поиск
  • Поддержка REST/WebDAV/SOAP/ATOM/XMLRPC
  • Versioning
Смежные вопросы