Дмитрий Кузьменко, ООО "Айбэйз", www.ibase.ru, 29.06.2006.
Предисловие
- Насколько оправдано использовать СУБД InterBase или Firebird?
- В каких системах и на каких объемах данных их можно использовать?
Эти и подобные вопросы появляются в различных конференциях и форумах регулярно. Причем, инициаторами вопроса зачастую являются не разработчики приложений, а менеджеры и начальники отдела. Статья, которую вы начали читать, даст ответы на эти и другие вопросы.
История
InterBase – сервер баз данных, имеющий 20-летнюю историюLINK (создан в 1985 году). Инновации, предложенные в этом сервере, не только остаются актуальными до сих пор, но и начинают широко внедряться в альтернативных СУБД. Основной особенностью функциональности InterBase является версионность. Механизм версионности впервые был предложен (в теории) Д. П. Ридом в 1978 году, и далее идеи многоверсионного доступа в СУБД были описаны Ф. Бернштейном и Н. Гудменом в 1981 году. Джим Старки, автор InterBase, разработал модель версионности для своей СУБД самостоятельно в интервале между 1981 и 1984 годом.
Механизм версионности кроме InterBase практически нигде не использовался, и потихоньку начал внедряться в коммерческих серверах не более 10-ти лет назад. На текущий момент в той или иной степени версионный механизм поддерживают кроме InterBase и Firebird: Oracle, PostgreSQL, а также MS SQL 2005. MySQL также планирует использовать версионный "движок", тем более что сейчас Джим Старки работает в MySQL AB.
|
В 2000 году компания Borland в силу специфических причин выпустила InterBase 6.0 в OpenSource. Когда исходные коды InterBase были опубликованы, группа пользователей скопировала исходные тексты и начала новый проект под названием Firebird. Далее, с версии InterBase 6.5 Borland вернулся к схеме платного сервера с закрытыми исходными текстами, а Firebird продолжил существование как бесплатный для частного и коммерческого использования сервер с открытыми исходными текстами.
На картинке вы видите этапы развития InterBase и Firebird с 2000 года по настоящий момент. Специально отмечено появление в 2001 году еще одного клона InterBase – Yaffil, который базируется на исходных текстах Firebird 1.0. Этот сервер был разработан в Санкт-Петербурге, и имел целью реализовать оптимизацию различных аспектов работы СУБД, а также обеспечить более легкий переход с InterBase версий 4.x и 5.x. В 2003 году было объявлено о слиянии Yaffil с Firebird, для исключения конкуренции и объединения функциональности. Тем не менее, Yaffil до сих пор существует как отдельный проект. |
Системы
InterBase начал активно использоваться в России для построения различных систем в 1992-1994 году, когда был выпущен InterBase 4.0 for Windows. До этого здесь были единичные случаи использования InterBase (в основном на HP-UX. За рубежом InterBase 3.3, например, выпускался для 15-ти различных платформ).
С тех пор InterBase и Firebird используются массово для решения задач биллинга, бухгалтерии, складов, ERP, CRM, банковского ПО, и других, используемых как только в конкретной компании, так и тиражируемых (в некторых из них покупатель даже не подозревает, какая именно СУБД используется в качестве сервера). По нашим оценкам примерное число разработчиков, использующих InterBase, Firebird и Yaffil в России и СНГ составляет около 100 тысяч. В качестве подтверждения такой оценки можно привести статистику по www.ibase.ru – ежемесячное число посетителей сайта составляет от 30 до 40 тысяч человек. Ежемесячно с поисковиков на сайт приходят ~450 человек, и с www.interbase.ru – ~300 человек. За год (до июля 2006 года) число посетителей сайта увеличилось на 10 тысяч человек в среднем (Приведенные числа относятся к тем, кто знает о существовании сайта ibase.ru или находит его в поисковых системах. На форумах разработчиков, из тех, кто работает с InterBase и Firebird, примерно 70% не знают о существовании ibase.ru).
Объемы данных
|
По мере увеличения числа систем на InterBase и Firebird растет и объем баз данных. С одной стороны, это увеличение баз данных промышленных систем, которые функционируют несколько лет подряд, а с другой стороны, это новые системы, изначально ориентированные на большой объем данных.
В 2002 году число систем с базами размером от 1 до 8 гигабайт нами оценивалось как 15% от общего числа систем, а с большим объемом – на уровне не более 3-х процентов, причем в диапазоне именно от 8 до 980 гигабайт, то есть, такие системы чаще были эксклюзивными. Сейчас, как видите, ситуация изменилась, и даже количество БД объемом от 10 до 50 гигабайт составляют уже 15 процентов, причем на самом деле диапазон размера таких баз данных от 15 до 100 гигабайт. Рост этот постоянный, в том числе он обусловлен уменьшением затрат на поддержку таких объемов со стороны аппаратного обеспечения. |
В настоящее время средний объем баз данных для систем на InterBase и Firebird составляет от 2 до 20 гигабайт (отсюда можно сделать вывод, что бесплатные варианты коммерческих СУБД Oracle, MS SQL и др. не являются конкурентами InterBase и Firebird в таких системах, т. к.
искусственно ограничивают допустимый "бесплатно" размер базы данных на уровне 4 гигабайт).
Данные взяты из информации службы технического сопровождения iBase.ru и опросов на forum.ibase.ru и других форумах.
Примеры систем
Задача |
Объем БД |
Число пользователей |
Транзакций в день |
Товарный учет |
65 гигабайт |
150 (число активных соединений – до 400) |
500 тысяч |
Недвижимость |
3 гигабайта |
120 |
0.6-1.5 миллионов |
Аналитика |
70 гигабайт |
5 |
200 тысяч |
Биллинг |
9 гигабайт |
15 |
30 тысяч |
|
20 гигабайт |
200 |
500 тысяч |
В таблице приведены данные по трем конкретным системам. Приводить здесь большее числоLINK вряд ли имеет смысл. Cтоит отметить, что сейчас как для InterBase так и для Firebird средними являются
- размер базы данных: от 2 до 20 гигабайт (было указано выше)
- число пользователей: от 20 до 70
- число транзакций в сутки: от 30 тысяч до миллиона
Для всех подобных систем используется вполне среднее оборудование для сервера – процессор на уровне 3 гигагерц, от 1 до 4 гигабайт памяти, SCSI RAID 1 (или 1+0).
Разумеется, производительность конкретной системы зависит от качества приложений. То же самое можно сказать в отношении других промышленных серверов – Oracle, MS SQL и т. п.
Компоненты доступа
Число различных компонент доступа для InterBase и Firebird весьма велико, и превышает число компонент и драйверов для любой другой бесплатной и коммерческой СУБД. Всего насчитывается более 35
различных компонент и драйверов:
- Прямой доступ:
- компоненты: IBX (в поставке Delphi и C++Builder), FIBPlus, DevArt IBDAC, IBObjects, Zeos, SQLRoots, ...
- библиотеки классов: IBPP, IBClasses, FireFoot, ibase++, ...
- драйверы для сред Borland: BDE, dbExpress, UIB dbExpress driver
- ODBC: Gemini, Intersolv, EasySoft, DataDirect, Firebird ODBC, XTG, ...
- OLE DB: IBProvider, IBObjects, ...
- JDBC: InterClient, JayBird
- .Net: Borland Data Provider, Firebird .Net Provider
- Web: PHP, Zope, DBD, Python
- ...
Как видно из списка, можно найти драйвер, набор компонент или библиотеку классов для любой среды разработки (Win32, Java, .Net, Web), вплоть до офисных, отчетных и OLAP приложений (Excel, Crystal Reports, ...).
Инструменты разработчика
В поставку InterBase и Firebird обязательно входит комплект утилит командной строки, которые в основном используются разработчиками и администраторами для автоматизации резервного копирования и других операций. Кроме того, эти утилиты кроссплатформенные. Для создания БД, таблиц, процедур и т. п. в InterBase и Firebird принято использовать сторонние инструменты, которые обладают высокой функциональностью – IBExpert, IBManager, IB/FB Developer Studio, DatabaseWorkbench и др. Большая часть этих инструментов бесплатны для России, а их качество, функциональность и удобство использования зачастую превышают подобные характеристики инструментов других коммерческих СУБД (например, в отношении MS SQL).
Исчерпывающий перечень инструментов для самых разнообразных задач на InterBase и Firebird можно найти по адресу www.ibase.ru/d_tools.htmLINK.
Сообщество
За более чем 11 лет в интернете (как в России, так и за рубежом) сформировалось большое сообщество пользователей InterBase и Firebird. Любой разработчик сможет получить помощь в конкретной проблеме, если обратится на форумы
sql.ru,
forum.ibase.ru,
borland.public.interbase,
firebird-devel (sourceforge.net),
gmane.comp.db.firebird.russian и т. п., вплоть до большого количества технических статей по InterBase и Firebird, накопленных на ibase.ru с 1997 года, и
платного технического сопровождения iBase.ru. Примерно половина разработчиков Firebird говорят по-русски.
Книга "Мир InterBase" Ковязина и Вострикова выдержала уже 4 издания и разошлась тиражом в 13 тысяч экземпляров (оценки количества скачиваний нелегальных электронных копий этой книги не производились). Выпущен перевод книги
Х. Борри "Firebird".
InterBase
Как уже упоминалось ранее, с момента выпуска InterBase 6.5 Borland производит только платную версию сервера с закрытым кодом. Сейчас существует версия InterBase 7.5, которая обладает достаточно высокой функциональностью и производительностью, особенно на многопроцессорных серверах. InterBase выпускается под платформы Windows, Linux и Solaris (Sparc). Лицензии на сервер разбиты на три части:
- Серверная, стоимость $195.
- Пользовательские лицензии: пакеты на 1, 10, 20, 50 и неограниченное число пользователей. От $150 за 1 пользователя, $1100 за 10, до $3950 за неограниченное число пользователей.
- Процессорные: для использования дополнительных процессоров на многопроцессорных системах. $990 за доп. процессор.
Более полный перечень лицензий и цен можно найти здесь – www.ibase.ru/ib7license.htmLINK.
|
В настоящий момент выпущена версия InterBase 2007 с поддержкой журналирования, point in time recovery, online dump и другой функциональностью необходимой для работы с базами данных размером от 5 до 150 и более гигабайт. Также необходимо отметить, что сейчас происходит процесс отделения бизнеса Borland, связанного со средами разработки (Delphi, C++Builder, JBuilder), в новую компанию. Вместе со средами разработки в новую компанию переходит и InterBase (а также JDataStore и NDataStore).
Рост продаж лицензий InterBase – на уровне 15% в год. |
Firebird
|
Развитие проекта в OpenSource зависит от взаимодействия между пользователями и разработчиками. Если разработчики дорабатывают и улучшают проект самостоятельно, то как правило, такой проект обречен на "полумертвое" существование, из-за отсутствия качественной обратной связи с пользователями, и невозможностью качественного развития проекта в "свободное время". Тем более, это имеет важное значение для сервера баз данных, который сам по себе является сложным продуктом.
Для обеспечения стабильного и непрерывного развития Firebird 20 ноября 2002 года была создана некоммерческая организация Firebird Foundation, которая принимает спонсорские и членские взносы, и направляет их на выполнение грантов или заказов (специальных задач по развитию той или иной функциональности Firebird) и обслуживание затрат проекта (тестирование, администрирование, поддержка сайтов и т. п.). Вместе с финансированием существует группа администраторов, или "архитекторов" проекта, которые, обеспечивая тесную связь с пользователями Firebird определяют приоритетные направления развития (например, представляют в FF запрос на грант по определенной функциональности). |
Из финансируемых областей можно упомянуть оптимизатор запросов, инкрементальный бэкап, odbc-драйвер, jdbc-драйвер, тестирование, сборка дистрибутивов и многое другое. Независимо от источника финансирования оплаченная разработка обязательно становится доступной всем пользователям Firebird.
Такая организация, в том числе, обеспечивает уверенность пользователей в стабильности развития проекта.
Компания Evans Data Corporation в 2005 году провела аналитическое исследование по рынку OpenSource RDBMS (1, 2). Результат вы можете видеть на картинке справа. По нашему мнению, одной из причин, почему Firebird существенно опередил PostgreSQL, является наличие готовых дистрибутивов Firebird под большое количество различных операционных систем (Windows, Linux, FreeBSD, MacOS, Solaris, Sinix-z...). С планами развития Firebird на ближайшие 2 года можно ознакомиться здесь. |
|
Встраиваемый сервер
Существует отдельный вариант сервера Firebird, называемый
Embedded (первоначальный аналог был выполнен как Yaffil Personal). Этот вариант сервера представляет собой клиентскую библиотеку со встроенным кодом сервера, которая может как самостоятельно работать с базой данных, так и обращаться к внешнему серверу обычным способом. Такой вариант сервера идеально подходит для однопользовательских приложений, т. к. как минимум в этом случае достаточно разместить такую клиентскую библиотеку рядом с приложением. Приложение в этом случае работает точно таким же образом, что и с обычным сервером InterBase и Firebird, и "не подозревает" о подобной функциональности клиентской библиотеки.
У InterBase существует вариант Desktop Server, однако это аналог полного сервера с отсутствием возможности работы по сети.
Совместимость
На начальном этапе, когда InterBase и Firebird недалеко ушли от функциональности базовой версии InterBase 6.0, оба сервера были максимально совместимы. В настоящий момент они отличаются по функциональности, формату баз данных и особенностям SQL, однако клиентские приложения могут использовать упомянутые компоненты и драйверы для работы с обоими серверами, и по крайней мере команда разработчиков Firebird в этом плане обещает достаточно длительную поддержку совместимости клиентской части с InterBase.
Заключение
Несмотря на расхождения между последними версиями InterBase и Firebird, они оба наследуют все те положительные черты исходной СУБД InterBase, которые обеспечили высокую популярность этого сервера. Более того, здоровая конкуренция между этими серверами по возможностям SQL, производительности и другим параметрам гарантируют пользователям той или иной СУБД интенсивное развитие выбранного ими сервера. Небольшой объем дистрибутива, простой и быстрый процесс установки с моментальной готовностью к работе, минимальные требования к оборудованию, широкий спектр компонент и драйверов для разнообразных сред разработки, возможность обслуживания больших баз данных и большого числа пользователей, а также архитектура многоверсионности, упрощающая логику приложений – все это востребовано как начинающими, так и опытными разработчиками, и позволяет им успешно строить все больше и больше новых систем.