Почему люди используют базы данных чистого XML поверх простых RDBM? - PullRequest
7 голосов
/ 10 мая 2009

Сколько из вас на самом деле используют базы данных чистого XML поверх RDBM? Первые, кажется, набирают обороты, но я не понимаю преимущества. Кто-нибудь хочет объяснить?

Ответы [ 5 ]

16 голосов
/ 10 мая 2009

Условия, которые предполагают, что XML не безумная идея

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

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

  • Если у вас достаточно маленький объем данных.

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

Пример - DasBlog, который использует обычный XML-файл в качестве хранилища данных.

Условия, которые предполагают, что реляционная модель лучше

  • Большинство ваших данных хорошо вписывается в таблицы и столбцы, довольно небольшое количество полей, большинство полей обязательны для заполнения.

  • Существует много данных. Реляционный мир оптимизировал производительность гораздо дольше, чем мир баз данных XML.

Вы можете иметь оба варианта

  • Большинство современных реляционных баз данных поддерживают XML как тип данных первого класса.
5 голосов
/ 10 мая 2009

Одно преимущество, которое не было упомянуто, состоит в том, что намного легче, если данные должны быть доступны для общественности (через RSS или что-то еще). Если основное использование данных предназначено для какого-либо общедоступного API или если оно все равно будет отформатировано позже как XML, то почему бы и нет? Скажем, вы хотите сохранить некоторые шаблоны HTML. Разве не было бы проще хранить это как HTML? Вы также сэкономите накладные расходы на СУБД и обработаете данные в XML.

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

В любом другом случае, особенно если требуется много манипуляций с данными, реальные базы данных (будь то реляционные, объектно-ориентированные, ориентированные на документы и т. Д.) Будут гораздо более эффективными, потому что они созданы для этого. XML не предназначен для 100 000 000 строк данных.

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

2 голосов
/ 10 мая 2009

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

XML позволяет мне моделировать сложную структуру в коде, а затем сериализовать ее непосредственно в XML для чтения в другом месте или позже, или, в частности, в моем случае экспортировать сложную структуру в XML, а затем манипулировать и запрашивать ее в объем памяти. Существуют и другие варианты, такие как ODBMS и ORM , которые предлагают многие из тех же преимуществ (а затем и некоторые другие), но сопровождаются повышенными знаниями или производительностью.

1 голос
/ 10 мая 2009

Я не вижу реальных преимуществ использования XML по сравнению с реляционными базами данных без контекста.

Реляционные базы данных часто неуклюжи в работе, хотя вы можете легко запрашивать любые требования к ним. Если вам не нужно выполнять запросы к вашим данным, то вы не имеете никакого реального использования от RDBM. Сколько фотографий вы видели в реляционной базе данных? Разве не удобнее хранить фотографии в формате JPEG или PNG? С другой стороны, вам нравится хранить пиксели изображения в XML?

1 голос
/ 10 мая 2009

Взгляните на эту статью Я думаю, она может вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...