Какая база данных имеет лучшую поддержку XML? - PullRequest
5 голосов
/ 13 октября 2008

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

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

Ответы [ 8 ]

6 голосов
/ 13 октября 2008

Microsoft SQL Server поддерживает XML-столбцы. Это больше, чем просто поддержка BLOB / TEXT.

Вы можете использовать неструктурированные столбцы XML, где SQL Server будет просто гарантировать, что они являются правильными XML. Это позволяет хранить произвольные документы XML внутри SQL Server, но при этом гарантирует, что вы имеете дело с XML, а не только с произвольными байтами / символами. SQL Server позволяет выполнять запросы поверх этого с помощью XQuery.

Вы также можете создавать XML-столбцы, соответствующие схеме, используя XSD. Что еще интереснее, SQL Server позволяет индексировать XML, чтобы ваши запросы XPath могли работать хорошо.

См. " Что нового для XML в SQL Server 2008 " для получения дополнительной информации. (Хотя большая часть поддержки XML существует в SQL Server 2005.)

4 голосов
/ 27 октября 2010

Если вы ищете собственный XML db, я определенно рекомендую Sedna. Блестящая поддержка разработчиков.

4 голосов
/ 03 мая 2009

Вы также можете оформить заказ MarkLogic Server или eXist .

Если у вас небольшой объем контента (пара ГБ), тогда подойдет eXist. Помимо этого, вы, вероятно, захотите заглянуть в MarkLogic.

Вы можете скачать и проверить оба из них, поскольку eXist бесплатен и у MarkLogic есть лицензия сообщества, с которой вы можете поиграть.

3 голосов
/ 13 октября 2008

Возможна DB2 9.x с поддержкой PureXML.

3 голосов
/ 13 октября 2008

Я не могу дать вам хорошего кандидата, но если вы хотите избежать выбора плохого, избегайте Oracle XmlDB. Это медленно и глючно, как ад. Один из худших расширений Oracle сделал для своей СУБД.

1 голос
/ 13 декабря 2012

Начиная с DB2 Viper, IBM DB2 начала предоставлять встроенную поддержку для хранения данных XML, а также запрашивать данные XML.

DB2 предназначена для оптимизации доступа к XML и реляционным данным, и эти возможности доступны для C ++, .NET, COBOL, Java и PHP.

xQuery - это новый язык, используемый для запроса данных XML в DB2

демонстрационный запрос:

create table person(name varchar(20), data xml);

insert into person values('bane', XMLPARSE(DOCUMENT '
<person>
<first-name>Tom</first-name>
<last-name>Hardy</last-name>
<mobile>89898989</mobile>

</person>
' STRIP WHITESPACE))


some simple xQueries

SELECT *
FROM googolplex.person
WHERE xmlexists('$s[person/first-name="bane"]' PASSING person AS "s");
1 голос
/ 13 октября 2008

По словам людей, которые над ним работали monetDB вполне способен обрабатывать xml. По сути, когда вы хотите сделать xquery для содержимого, вы хотите иметь что-то, что может сделать это правильно. Структура XML-документа, который очень гибок и имеет неопределенную длину, принципиально отличается от структуры rdbms. Это означает, что вещи должны храниться и индексироваться разумно. Для традиционных систем DBMS это простой способ сохранить XML как BLOB (двоичный объект). Но BLOB обычно не индексируются и живут в основном за пределами основного хранилища данных. Для правильного разбора xml система должна перейти в xml при сохранении. MonetDB, по-видимому, делает это.

0 голосов
/ 13 октября 2008

Обязательно попробуйте MS-SQL, Oracle и другие существующие системы, поддерживающие XQuery.

Но если необходимые вам запросы на основе XML известны заранее, может быть проще просто сохранить XML в BLOB и добавить индексированное поле или два с копией соответствующего элемента (ов) XML. ).

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