Журнал «Компьютерра» N 35 от 26 сентября 2006 года
Шрифт:
ОТ РЕДАКЦИИ: При всей привлекательности самой идеи трудоемкость ее исполнения на бумаге такова, что можно с уверенностью сказать: это первый и последний нелинейный текст, который вы увидели в «КТ». В противном случае, мы рискуем потерять всю нашу арт-команду во главе с Олегом Дмитриевым, который уже готов отмстить неразумным хазарам за все хорошее и нелинейное.
Софтерра:
Из жизни жар-птиц…: Мифы и реальность СУБД Firebird
Автор: Алексей Ковязин
Вокруг
В связи с тем, что наиболее «раскрученный» MySQL недавно значительно ужесточил лицензию для тиражируемых приложений, оставив возможность бесплатного использования только в GPL-приложениях и для сугубо внутреннего применения, на первый план среди Open Source СУБД выходят Firebird и PostgreSQL, которые не имеют подобных ограничений.
В России Firebird традиционно более популярен, чем PostgreSQL, для разработки корпоративных приложений, прежде всего из-за своей хорошей поддержки Windows (которую PostgreSQL в удобном виде получил только в 8-й версии), множества компонент для Delphi и совместимости с ранними версиями InterBase.
Казалось бы, все для Firebird складывается замечательно: Delphi является одной из самых любимых сред разработки в России [Точнее, внутри МКАД ситуация складывается в пользу Java, PHP и .NET в связи с огромным количеством «сайтостроителей». За пределами Москвы большинство корпоративных приложений пишется на Delphi- достаточно посмотреть на тиражи и количество Delphi-книг на полках книжных магазинов], а InterBase был широко распространен благодаря тому, что он включен в поставку Delphi, но вся эта популярность и совместимость вылилась в упорно повторяемый неграмотными разработчиками миф о том, что…
Действительно, корни 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), системы охраны и контроля доступа. За рубежом ее тоже давно освоили крупнейшие банки, отели, сотовые операторы, эту СУБД можно встретить даже в зоопарках и тюрьмах!
К сожалению, и тут существует странный миф о том, что…
Да, программисты не привыкли пить из мелкой посуды… Oracle, только Oracle! Налейте бокалы полнее, купите серверы помощнее, памяти побольше и вперед. Firebird по сравнению с монстровидными коммерческими СУБД действительно выглядит крошкой- ее дистрибутив в
Однако это тот самый случай, когда «мал, да удал». Есть масса примеров, где многогигабайтные базы работают сразу с сотнями клиентов. А на выставке «Софтул’2006» (26-28 сентября) компания «Ансофт» представит стенд из «живых» рабочих станций и сервера, имитирующий одновременную работу сотни пользователей со 120-гигабайтной базой Firebird, которая моделирует функционирование крупного торгового холдинга в режиме «уплотненного» времени под управлением ERP.
У нас многие разработчики, особенно те, что сидят за забором режимного предприятия, слишком свободно относятся к лицензированию… Не надо быть семи пядей во лбу, чтобы догадаться, что подобная «малина» кончится со вступлением в ВТО и что по мере накопления опыта правоохранительными органами антипиратская активность будет только нарастать. Но одно дело, когда ты пользуешься ворованным софтом за сто долларов у себя дома, и совсем другое, когда предлагаешь солидному заказчику «спереть» СУБД… Ну или доплатить полсотни тысяч евро.
Кстати, «новые бесплатные» СУБД от Oracle, MS SQL и другие не позволяют добиться того же- смехотворные ограничения (прежде всего на размер базы в 4Гбайт) не смогут удовлетворить мало-мальски серьезную организацию и пригодны только в качестве сыра [См. «Виды бесплатного сыра», «КТ» #640 от 01.06.06.] в мышеловке… Но и «мыши» нынче пошли не глупые.
Однако есть мнение, что…
Надо признать, что этот миф очень распространен. Причина его возникновения, наверное, в том, что Firebird практически не требует администрирования и постоянной настройки, достаточно осуществлять регулярный (чаще всего автоматический) бэкап, и если приложение правильно спроектировано, оно работает годами «без рук». Многие администраторы [Уточним- люди, выполняющие их обязанности, чтобы не обижать грамотных сисадминов сравнениями с такими «специалистами»] злоупотребляют неприхотливостью Firebird и ставят ее на компьютеры без UPS, позволяют себе жать на Reset по поводу и без повода и бить ногой по серверу в случае неполадок. Особо экономные администраторы ставят Firebird на компьютер к какому-нибудь несчастному пользователю- вот, дескать, это и будет наш сервер.
Из-за большого количества установок в экстремальных условиях на бытовых компьютерах и несоблюдения элементарных «правил гигиены» для серверного продукта (бэкапы, бэкапы!!!) можно видеть множество поврежденных баз, красные глаза горе-администраторов и не менее красные (но по другой причине) глаза владельцев бизнеса… Что ж поделать, кроме как вспоминать анекдот про дровосеков, новую японскую пилу и стальные рельсы? ["Дзынь!"- сказала пила. «Не смогла!»- удовлетворенно хмыкнули дровосеки]
Вспомнив про новую пилу, вспомним и то, что…
И вот это уже не миф, а чистейшая правда, которая по неизвестной причине подается как нечто плохое и постыдное. И действительно, СУБД Firebird основана на многоверсионной архитектуре записей, впервые примененной еще в InterBase в далеком 1984-м. Подобная архитектура применялась и в Microsoft Exchange и PostgreSQL, тогда как остальные СУБД исповедовали «блокировочный» подход. Но совсем недавно идея версионности записей вдруг опять получила большую популярность и была (частично) реализована в MSSQL 2005! При этом версионность подается как новейшее изобретение, позволяющее «читателям» не блокировать «писателей»…. Ну а то, что «изобретению» уже 20 лет, только подтверждает правило, что все новое - это хорошо забытое старое.