Журнал «Компьютерра» № 20 от 30 мая 2006 года
Шрифт:
В супермаркетах, к сожалению, о таком рае для потребителей приходится только мечтать, но вот в мире баз данных сложилась ситуация, весьма сходная с описанной: за последние годы среди производителей стало принято раздавать свои продукты бесплатно, причем это касается не только открытых СУБД вроде Firebird и PostgreSQL, но и коммерческих монстров вроде IBM DB2 и Oracle. Что же стоит за этими внезапными приступами благотворительности?
Для тех, кто ничего не знает о бесплатных базах данных[Кстати, не бросайтесь сразу набивать карманы. Во-первых, эти продукты никуда не денутся, а во-вторых, некоторые дистрибутивы (например, DB2-C
PostgreSQL
Эта СУБД, поддерживающаяся сообществом энтузиастов, особенно популярна в университетской и научной среде. Она также предлагается многими провайдерами в качестве back-end для веб-разработки. Однако в сфере бизнес-приложений PostgreSQL так и осталась «гадким утенком», поскольку для ее установки (до версии 8) под Windows требовались достаточно сложные телодвижения с установкой cygwin и другим наследием Linux.
По моему мнению, PostgreSQL представляет собой мощный и перспективный «конструктор» для продвинутых разработчиков, которые ценят возможность расширения и доработки движка под свои нужды. Хорошей иллюстрацией «духа» этой СУБД может служить то, что список рассылки ее разработчиков называется «pgsql-hackers». Если уж они сами называют себя хакерами…
Никаких ограничений на использование PostgreSQL нет – это действительно бесплатная СУБД, без всяких подводных камней (в том числе технических и юридических).
Firebird
Побочный результат эксперимента компании Borland c ее СУБД InterBase в 2000 году, когда она была опубликована под лицензией InterBase Public License. Группа бывших разработчиков InterBase и просто энтузиастов скопировала исходные коды и затеяла проект под названием Firebird (любопытно, что проектом никто не владеет – существует только некоммерческая организация Firebird Foundation для поддержки процесса разработки Firebird).
Благодаря почти полной совместимости с InterBase и наличию готовых дистрибутивов для Windows и различных вариантов Linux/Unix, новая СУБД быстро завоевала популярность. Долгое время ее называли «бесплатный InterBase». В настоящий момент готовится к выходу версия Firebird 2.0, которая хоть и сохраняет совместимость с предыдущими версиями InterBase, но сильно отличается от своего предка.
Надо отметить, что коммерческий InterBase (ныне версии 7.5) поныне живет и здравствует, причем наличие InterBase 6 Open Edition и Firebird сыграло ему только на руку в плане увеличения популярности среди начинающих разработчиков, ведь Firebird очень удобна для разработки в качестве «встраиваемого» приложения – то есть «молчаливого» сервера базы данных, который устанавливается в тиражируемых приложениях (например, Firebird используется в качестве движка для компакт-диска журнала «Upgrade»). Конечно, это не означает, что сервер годится только для маленьких приложений, он прекрасно обслуживает системы с числом пользователей 100–150 человек и размером баз данных до 60 Гбайт.
Firebird не имеет никаких юридических или искусственных технических ограничений по использованию.
MySQL
MySQL – первая база данных с открытым кодом, на которой ее создателю, компании MySQL AB, удалось-таки заработать деньги (любой OpenSource-проект финансируется либо спонсорами, как Firebird и PostgreSQL, либо живет за счет продажи услуг и платных лицензий, как MySQL). Это, по утверждению ее PR-службы, самая быстрая в мире СУБД (при определенных условиях, естественно), ее использует NASA (вернее, на ней построены несколько сайтов агентства) и большинство динамических сайтов (а вот это сущая правда).
У MySQL существует два вида лицензий – Commercial и GPL (community edition). По лицензии GPL пользоваться MySQL можно бесплатно, если обладатель СУБД а) разрабатывает и выпускает OpenSource-продукты, б) использует MySQL только для своих внутренних разработок не-OpenSource-проектов (включая веб-сайты). Как только вы начинаете распространять приложение с закрытым кодом на базе бесплатной MySQL, вы обязаны купить коммерческую лицензию или опубликовать исходный код своего приложения.
Бесплатных СУБД с открытым кодом достаточно много – интересующиеся могут посетить, например, сайт www.faqs.org/faqs/databases/free-databases или набрать в Google «free DBMS» [То есть бесплатные СУБД].
BerkleyDB, SQLite, GnuSQL – вот всего лишь несколько СУБД, про которые можно узнать из обзоров, новостей и рейтингов, но которые большинство разработчиков в глаза не видели, а если и пытались попробовать, то почти всегда сталкивались с одной и той же проблемой – нужно быть крупным специалистом (или нанять такового), чтобы заставить их работать на реальных промышленных данных, а тем паче построить на их базе тиражируемое приложение, которое не страшно отдать в руки чужого администратора с тремя неполными курсами политехнического образования.
Очевидно, что для бизнес-приложений, где важны сроки и финансовые затраты, никто не будет тратиться на изучение новой базы данных или нанимать редкого специалиста.
Исключение составляют только узкие задачи, для решения которых и были разработаны многие бесплатные СУБД, причем обычно корни лежат все в тех же университетских проектах.
Хорошим примером является российская XML СУБД Sedna, предназначенная для хранения коллекций XML-документов, поиска в них, изменения и вставки. Несмотря на то что интерес к XML пошел на убыль и его уже не считают технологией-затычкой, которая должна быть в каждой дырке, есть еще много актуальных и нерешенных задач, где XML-базы данных могут сильно облегчить жизнь разработчикам.
Вообще говоря, если задача, возлагаемая на СУБД, нестандартная, поройтесь в Интернете, – возможно, для вашей задачи существует отдельная СУБД.
Кое-кто из посетителей бакунианских сайтов бурно приветствовал появление бесплатных версий больших промышленных СУБД возгласами вроде «Одумались!»[Вообще-то, кричали больше «Халява!», «Ура!», «Что это?», но «Одумались» лучше отражает глубину переживаний борцов за свободную информацию…]. Однако стоит разочаровать их, так как даже бесплатные СУБД используются исключительно как средство развития бизнеса. Дело в том, что в мире растущей конкуренции труднее всего найти и удержать покупателя своего продукта. Маркетологи говорят, что удержать существующего клиента в пять раз дешевле, чем найти нового. Особенно это заметно на примере баз данных.
СУБД – вещь сложная, и за пятнадцать минут ее не освоишь, как новый мобильник. И даже за две недели к ней не привыкнешь, как к новому автомобилю. Чтобы стать специалистом по той или иной СУБД, нужно проработать с ней несколько лет. И если разработчик освоил определенную СУБД – зачем ему другая?
Также понятно, что для компании, которая основывает свою информационную инфраструктуру на некой СУБД, переход на другую базу данных будет сопряжен с большими затратами.
Поэтому у производителей коммерческих баз данных две основные задачи: а) «подсадить» на свои продукты как можно больше начинающих разработчиков, б) завлечь молодые или реорганизующиеся компании с неустоявшейся информационной инфраструктурой.