Порекомендуйте БД для следующих требований ->
Стою на пороге выбора СУБД. Не знаю, к чему склониться.
Значит так, какая стоит задача.
В БД будут храниться документы, представляющие собой как XML-данные, так и обычные данные (как в обычных таблицах) одновременно. Т.е. документ может содержать следующие параметры:
- ID (int) идентификатор документа
- Category - категория документа. Числовое значение. Может быть как тип SET в MySQL - т.е. список категорий, если документ принадлежит нескольким категориям.
- Doc - сам документ в формате XML, т.к. в зависимости от типа документа, оно может состоять из различного числа параметров, таких как номер документа, код документа, язык, сам текст документа, кто утвердил, дата утверждения и т.д. Т.е. это я так понимаю проще и лучше сделать в XML.
Так вот какая СУБД (из по возможности как можно бесплатней) подойдет для этой задачи? MySQL совсем не катит, т.к. там совсем уж куцие средства для работы с XML.
Так же просьба высказаться в адрес FireBird и MS SQL Server Express.
Спасибо.
А что насчет FireBird и MSSQL ?
Не слышал про поддержку XML в Firebird.
Знаком с понятием XML-схема (XML Schema)? Её поддержка реализована в СУБД у микрочленов и Oracle. Не знаю, как у первых, но в Oracle - правильно. Возможно, нечто аналогичное есть в PostgreSQL.
Насчет Postgres - почитал в сети, написано, что там только надстройка для работы с XML, причем вроде третьего производителя.
Насчет Postgres - почитал в сети, написано, что там только надстройка для работы с XML, причем вроде третьего производителя.
Если размер БД не превысит 1 Gb, то Oracle 10g XE однозначно. Прост в установке, куча документации, работает с XML, имеются всякие библиотеки "прямого доступа" третьих фирм, куча средств разработки и отладки (PL/SQL Developer, TOAD и др.), развитый язык хранимых процедур PL/SQL, возможность использовать автономные транзакции в триггерах, доступ к объектам БД из хранимой процедуры (ХП) как с правами владельца ХП, так и с правами вызвавшего ХП, и многое другое вкусное.
Если размер БД может быть больше 1 Gb, придётся раскошеливаться на Oracle 10g Standard Edition One (5 килобаксов на один процессор с неограниченным количеством клиентов).
А что значит "не потянем"? В изучении Oracle на самом деле достаточно прост, по крайней мере, проще, чем IBM DB2, ресурсов требует не так уж много (например, у меня Oracle 10g XE работает на виртуальной машине с 640 Mb RAM без pagefile).
А что насчет MS SQL Server Express Edition ? Бесплатный и XML понимает. Какие минусы?
А что насчет MS SQL Server Express Edition ? Бесплатный и XML понимает. Какие минусы?
Стоимость ОС.
MS SQL Server штука конечно хорошая, но стоит много. Вы же не собираетесь ставить пиратскую Win2003 Server? ;)
Только MS SQL Server Express Edition - бесплатная. С полной поддержкой функций XML.
Т.е. кроме стоимости недостатков нет?
По сути итоговая стоимость будет ненамного меньше покупки лицензии Оракла.
В любом случае если как вы говорите объемы будут большие - ни один из бесплатных вариантов не подойдет тк ограничения там очень существенные.
Подскажите, какие у них различия в:
1. Обработке XML-данных.
2. Скорости выборки при больших объемах информации, если выборка будет производиться как по обычным полям, так и по параметрам в XML-полях.
3. Можно ли как-то синхронизировать данные между БД, находящимися на разных компьютерах? С как можно меньшим потреблением трафика. Суть в том, что может стоять 80 разных компов, работающих с интернет по GPRS и нужно держать актуальную одинаковую информацию на каждом из этих компов, при этом синхронизироваться раз в сутки. Или два. Как вариант, конечно, понимаю, что можно работать с единой базой, но это будет медленно. И еще неизвестно, где больше трафика будет потребляться.
Спасибо.
Подскажите, какие у них различия в:
1. Обработке XML-данных.
Различий не знаю, т.к. под MS SQL Server никогда не программировал. А про XML в Oracle можно немножко почитать на CITForum'е или на сайте Oracle, но там надо зарегистриться. Есть небольшой примерчик работы с XML
Бенчмарки не проводил, но, судя по тестам TPS-S (кажись, он так зовётся), Oracle находится в Top10 в диапазоне размеров БД 3-5 Тб. На меньших объёмах данных конкурируют Oracle и MS SQL Server, на больших -- IBM DB2 и Oracle.
Насчёт Express-версии не скажу, а полноценные имеют, конечно же, механизмы репликации (как полной, так и только изменившихся строк таблиц). И, естественно, Oracle умеет работать с распределёнными, в том числе и с гетерогенными, БД (по крайней мере, полноценный, Express не проверял, но, по идее, должен).
Ээээ... RDBMS Teradata? Кстати, насколько мне известно, она бесплатная!
Смотря сколько данных будешь на клиент гнать. У меня по модему 56k оракловый клиент довольно шустро бегал.