Автор: Алексей Ковязин

Вокруг СУБД Firebird ходит множество мифов, но на самом деле она, наряду с PostgreSQL и MySQL, представляет собой обширный «OpenSource-фронт» в борьбе не только за «жадного» пользователя, но и серьезно угрожает коммерческим монстрам вроде MS SQL и Oracle, последовательно вытесняя их как из области малых и средних проектов, так и конкурируя с ними в традиционно больших корпоративных областях.

В связи с тем, что наиболее «раскрученный» MySQL недавно значительно ужесточил лицензию для тиражируемых приложений, оставив возможность бесплатного использования только в GPL-приложениях и для сугубо , на первый план среди Open Source СУБД выходят Firebird и PostgreSQL, которые не имеют подобных ограничений.

В России Firebird традиционно более популярен, чем PostgreSQL, для разработки корпоративных приложений, прежде всего из-за своей хорошей поддержки Windows (которую PostgreSQL в удобном виде получил только в 8-й версии), множества компонент для Delphi и совместимости с ранними версиями InterBase.

Казалось бы, все для Firebird складывается замечательно: Delphi является одной из самых любимых сред разработки в России [Точнее, внутри МКАД ситуация складывается в пользу Java, PHP и .NET в связи с огромным количеством «сайтостроителей». За пределами Москвы большинство корпоративных приложений пишется на Delphi— достаточно посмотреть на тиражи и количество Delphi-книг на полках книжных магазинов], а InterBase был широко распространен благодаря тому, что он включен в поставку Delphi, но вся эта популярность и совместимость вылилась в упорно повторяемый неграмотными разработчиками миф о том, что…

Firebird — это бесплатный InterBase

Действительно, корни Firebird лежат в выпущенной в 2000 году версии InterBase 6 Open Source Edition, но затем радикально расходятся. Современные версии Firebird 2 и InterBase 7.5 несовместимы по новым форматам базы данных и имеют немало отличий в самом SQL. Среди современных баз данных немало близких родственников— например, MSSQL 6.0 был создан на основе Sybase SQL Server, — но никто их не путает. Справедливости ради заметим, что все меньше и меньше людей смешивают понятия InterBase и Firebird.

Чаще всего на базе Firebird создают корпоративные информационные системы [ММВБ, Сиа Интернешнл, ECCO, FinnFlare, ТД «Бурый медведь», SAS, Военно-морской флот США, Британские железные дороги… см. www.ibase.ru/cat] (наиболее известна Avarda от компании Ansoft), биллинговые приложения, CRM-системы (например, SalesExpert), системы охраны и контроля доступа. За рубежом ее тоже давно освоили крупнейшие банки, отели, сотовые операторы, эту СУБД можно встретить даже в зоопарках и тюрьмах!

К сожалению, и тут существует странный миф о том, что…

Firebird— это слабая СУБД для маленьких проектов

Да, программисты не привыкли пить из мелкой посуды… Oracle, только Oracle! Налейте бокалы полнее, купите серверы помощнее, памяти побольше и вперед. Firebird по сравнению с монстровидными коммерческими СУБД действительно выглядит крошкой— ее дистрибутив в постыдные в наши дни 3,5 Мбайта разочаровывает, ну что там может быть внутри?!

Однако это тот самый случай, когда «мал, да удал». Есть масса примеров, где многогигабайтные базы работают сразу с сотнями клиентов. А на выставке «Софтул’2006» (26—28 сентября) компания «Ансофт» представит стенд из «живых» рабочих станций и сервера, имитирующий одновременную работу сотни пользователей со 120-гигабайтной базой Firebird, которая моделирует функционирование крупного торгового холдинга в режиме «уплотненного» времени под управлением ERP.

У нас многие разработчики, особенно те, что сидят за забором режимного предприятия, слишком свободно относятся к лицензированию… Не надо быть семи пядей во лбу, чтобы догадаться, что подобная «малина» кончится со вступлением в ВТО и что по мере накопления опыта правоохранительными органами антипиратская активность будет только нарастать. Но одно дело, когда ты пользуешься ворованным софтом за сто долларов у себя дома, и совсем другое, когда предлагаешь солидному заказчику «спереть» СУБД… Ну или доплатить полсотни тысяч евро.

Кстати, «новые бесплатные» СУБД от Oracle, MS SQL и другие не позволяют добиться того же— смехотворные ограничения (прежде всего на размер базы в 4Гбайт) не смогут удовлетворить мало-мальски серьезную организацию и пригодны только в качестве сыра [См. «Виды бесплатного сыра», «КТ» #640 от 01.06.06.] в мышеловке… Но и «мыши» нынче пошли не глупые.

Однако есть мнение, что…

Firebird— это ненадежная СУБД

Надо признать, что этот миф очень распространен. Причина его возникновения, наверное, в том, что Firebird практически не требует администрирования и постоянной настройки, достаточно осуществлять регулярный (чаще всего автоматический) бэкап, и если приложение правильно спроектировано, оно работает годами «без рук». Многие администраторы [Уточним— люди, выполняющие их обязанности, чтобы не обижать грамотных сисадминов сравнениями с такими «специалистами»] злоупотребляют неприхотливостью Firebird и ставят ее на компьютеры без UPS, позволяют себе жать на Reset по поводу и без повода и бить ногой по серверу в случае неполадок. Особо экономные администраторы ставят Firebird на компьютер к какому-нибудь несчастному пользователю— вот, дескать, это и будет наш сервер.

Из-за большого количества установок в экстремальных условиях на бытовых компьютерах и несоблюдения элементарных «правил гигиены» для серверного продукта (бэкапы, бэкапы!!!) можно видеть множество поврежденных баз, красные глаза горе-администраторов и не менее красные (но по другой причине) глаза владельцев бизнеса… Что ж поделать, кроме как вспоминать анекдот про дровосеков, новую японскую пилу и стальные рельсы? ["Дзынь!"— сказала пила. «Не смогла!»— удовлетворенно хмыкнули дровосеки]

Вспомнив про новую пилу, вспомним и то, что…

Firebird основана на старых технологиях

И вот это уже не миф, а чистейшая правда, которая по неизвестной причине подается как нечто плохое и постыдное. И действительно, СУБД Firebird основана на многоверсионной архитектуре записей, впервые примененной еще в InterBase в далеком 1984-м. Подобная архитектура применялась и в Microsoft Exchange и PostgreSQL, тогда как остальные СУБД исповедовали «блокировочный» подход. Но совсем недавно идея версионности записей вдруг опять получила большую популярность и была (частично) реализована в MSSQL 2005! При этом версионность подается как новейшее изобретение, позволяющее «читателям» не блокировать «писателей».... Ну а то, что «изобретению» уже 20 лет, только подтверждает правило, что все новое — это хорошо забытое старое.

И еще к вопросу о «свежих» технологиях: недавно MySQL AB «купила» отца-основателя InterBase (и участника проекта Firebird) Джима Старки, заказав ему разработку версионного «движка» Falcon для применения в MySQL. Теперь есть риск, что туда просочатся и…

Недостатки Firebird

Конечно, утверждать, что Firebird— идеальна, было бы глупо (нет в мире совершенства, увы). К наибольшим недостаткам этой системы относятся трудности масштабирования на несколько процессоров (поддерживается лишь архитектурой Classic, обладающей повышенными требованиями к объему оперативной памяти) и неоптимальной реализацией сетевого протокола, что очень заметно на медленных линиях связи. Но в версии 2.1, чей выпуск запланирован на конец текущего года, уже исправлены и злополучный протокол, и вылечены многие другие «мозоли», преследующие в том числе и…

Firebird в России

У нас живут и творят главные архитекторы и разработчики Firebird: Дмитрий Еманов, Влад Хорсун и Алекс Пешков. Firebird— проект интернациональный, его участники работают в Германии, Австралии, Бразилии, США. Однако наши разработчики сумели занять ведущее место среди более чем пятидесяти контрибуторов проекта. Ну а поддержкой Firebird в мире занимается некоммерческая организация Firebird Foundation, с благословения которой пройдет…

Конференция Firebird в России

Конференция, намеченная на 14 октября, состоится в Москве. На ней будут присутствовать все ведущие разработчики Firebird, создатели инструментов, библиотек и компонентов для этой СУБД. Производители интересных решений на базе Firebird с удовольствием поделятся своим опытом не только с трибуны, но и в кулуарах. Ну а чтобы зарегистрироваться, загляните на сайт компании-организатора конференции.

Особое мнение

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

Конечно, стенд с ERP Avarda вызывает интерес, было бы очень любопытно на него взглянуть, но решения такого объема (десятки гигабайт) для Firebird скорее редкость.

Также можно отметить, что в крупных компаниях Firebird в основном используется как «вспомогательная» база данных— когда нецелесообразно ставить большую БД (с неизбежным администратором) в небольшой филиал или удаленное подразделение, в этом случае в качестве «заменителя» часто выбирают именно Firebird.

В одной очень крупной российской страховой компании (входящей в тройку лидеров) основную базу данных держат на Oracle, тем не менее Firebird стоит в каждом офисе, а данные из нее заливаются в центральное хранилище для последующей обработки. Собственно, из-за такой второстепенной роли в больших компаниях никто особо и не говорит о Firebird, она просто «не попадается на глаза» ИТ-менеджменту: бюджета для покупки она не требует, шумихи в Интернете про нее тоже нет. Этакая рабочая лошадка, вроде «Газели», ездит и ездит.

Помимо относительно узкой ниши на корпоративном рынке, у Firebird есть несколько особенностей, переходящих в недостатки: во-первых, очень маленький аскетичный дистрибутив, не включающий развитых средств администрирования, которые потом приходится устанавливать отдельно; и во-вторых, ограничения SQL, которые делают разработку хранимых процедур непохожей на MS SQL или Oracle: отсутствие временных таблиц и внешних хранимых процедур.

Разработчики, конечно, работают в этом направлении, но пока Firebird не в состоянии конкурировать с признанными лидерами вроде MS SQL или Oracle на действительно больших проектах.

Сергей Шевелев, специалист одной из компаний-интеграторов