понедельник, 7 мая 2007 г.

Анализ функциональности Firebird, MySQL, PostgreeSQL

Привожу текст одного из своих писем, которое я отправлял своему руководителю работы на бакалавриат. Заранее предупреждаю, что это мое частное, поверхностное мнение. Никаких тестов производительности, серьезных и глубоких исследований я не проводил. Вся последующая информация передается по принципу "все что было на поверхности моего взора" :)

I. PostgreSQL 8.1.5

Работает на Windows NT и на Win9x через Cygwin, Linux, FreeBSD, Mac OS X, Novell Netware 6, OS/2

BSD лицензия, существует так же коммерческая лицензия (которая предполагает техническую поддержку)

Поддерживает транзакции, подзапросы, триггеры, представления, внешние ключи, пользовательские типы и их наследование

Исталлятор на русском языке.

Поддержка языка запросов PL/pgSQL, который очень похож на PL/SQL Oracle.

Поддержка хранимых процедур, написанных на PL/Java, PL-J, plPHP, plR, pl-ruby. Соответственно, хранимые процеруры можно писать на диалектах Java, PHP, Ruby (и каком-то языке для статистики - R).

В пакете идет консольная и графическая консоль управления

В пакете идет JDBC, Npgsql, ODBC, OLEDB драверы, таким образом обеспечивается функциональность для языков Java (JDBC), .NET (Npgsql), ADO (OleDB) и прочих через драйвер OBDC.

FAQ

На официальном сайте я обнаружил очень подробную техническую документацию, в которой смог легко сориентироваться.


II. Firebird

Firebird - это СУБД InterBase, код которой открыла компания Borland

Работает под Windows, Linux, Mac-OS (Darwin) и некоторых Unix платформах.

Идет под лицензией MPL, с небольшими ограничениями.

Инсталлятор на английском языке.

Поддерживает транзакции, триггеры, хранимые процедуры.

Функциональность СУБД аналогична InterBase.

Официальный сайт мне вообще не понравился, информация слабо структурирована.


III. MySQL

Работает на Windows, Linux, Unix, MacOS

Является наиболее известной открытой СУБД. Существует масса материалов на русском языке в виде печатных изданий и интернет ресурсов.

В пакете идет только консольная утилита для администрирования.

Инсталлятор на английском языке.

Начиная с версии 5.0 начала поддерживать хранимые процедуры.

Существуют провайдеры данных для Java, ADO.NET, ODBC, PHP, Perl и многих других языков.

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

IV. Сравнение существующих СУБД

Программа для тестирования производительности различных СУБД.

Поддерживаются:
  • Postgresql
  • Mysql
  • DB2
  • Oracle
  • Sapdb
  • Firebird
  • Microsoft SQL Server
  • Sybase

Результаты тестирования нескольких открытых СУБД


V. Личное мнение

От себя еще добавлю, то, что я пробовал использовать Oracle, MS SQL Server и MySQL из-под .NET

Лично мне диалект MySQL мне не очень понравился.

Все три вышеперечисленных СУБД совершенно спокойно работают с Unicode, так что проблем с интернационализацией быть просто не может.

Firebird предоставляет выбор запуска СУБД как приложение и как Windows служба. PostgreSQL работает только как сервис.


В общем, думаю что имеет смысл попробовать PostgreSQL. Многие мои знакомые программисты рекомендовали использовать именно.

UPD:
Поступило логичное замечание о том, что функциональность Firebird недостаточно освещена. Я это сделал по причине того, что Firebird вырос из Interbase. Соответственно то, что эта СУБД является форком когда-то коммерческого движка говорит только в ее пользу.

Для доступа к базе конечно же существует ODBC драйвер, .NET Data провайдер и CA-JDBC (Jaybird) драйвер. Кстати, замечу, что OleDb драйвер не упоминался :)

Сегодня обнаружил следующие, достаточно веские аргументы в пользу Firebird против MS SQL Server, PostgreSql.

Из всех аргументов, честно говоря для меня наиболее существенным было наличие хорошего ADO.NET провайдера, который судя по заявлению разработчиков, поддерживает такие сервисные API как резвервное копирование и восстановление, статистика, пакетное выполение SQL скриптов.

Однако, использование подобных вещей из-под .NET приложение мне кажется сомнительной пользой. На мой взгляд, подобные вещи должны выполняться несколько иными механизмами, находящимися за пределами .NET клиента СУБД.

3 комментария:

mormat комментирует...

Интересная инфа про PostgreSQL, спасибо.

Кстати в тестировании, на которое ты ссылаешься, принимал участие допотопный Firebird 1.5. Я точно помню что года 3 назад выходила версия 2.0, а какая сейчас новая - даж не знаю. Для него кстати есть и ODBC драйвера, и .NET провайдеры.

gembel комментирует...
Этот комментарий был удален администратором блога.
stokito комментирует...

firebird: Инсталлятор на английском языке.
Брехня там сто лет как русский язык можно выбрать. В проекте фаербёрд много русских пацанов.
И вообще... какой то дерьмовый обзор.