`

СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Как изменилось финансирование ИТ-направления в вашей организации?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Открытые СУБД: мощь, доступная всем

0 
 

Несколько лет в среде "серьезных" разработчиков прикладных корпоративных решений бытовало мнение, которое активно культивировали и поддерживали многие софтверные компании, о том, что бесплатное -- значит нестабильно работающее. Время, как беспристрастный судья, доказывает обратное -- системы управления базами данных на основе свободного программного обеспечения (СПО) показали свою живучесть и состоятельность.
Традиционно СУБД занимают особое место в IT-индустрии. Причина этого настолько очевидна, что подчас мы о ней даже не задумываемся: информацию необходимо хранить и иметь к ней доступ. Хранить надежно, получать доступ максимально быстро. Это одни из основных требований, которые рассматриваются системным администратором при выборе СУБД. Затем оцениваются такие параметры, как максимальный объем баз данных и хранящихся в них таблиц, а также дополнительные возможности системы -- кластеризация и репликация данных, наличие поддержки хранимых процедур, триггеров и т. п. Иногда приоритеты меняются, и на первый план выходят совершенно иные критерии, но надежность и скорость обработки запросов остаются всегда актуальными.

Кроме технической стороны вопроса, существует еще одна, не менее важная, -- экономическая. Использование той или иной СУБД должно быть обоснованно. При этом в расчете экономической эффективности учитываются стоимость не только владения программным обеспечением, но и оборудования, на котором СУБД работает. В конце концов все это определяется соотношением цена/качество. Его численное значение для open source СУБД намного ниже, чем у коммерческих продуктов такого же класса. Это одна из причин того, почему бизнес в последнее время заинтересовался именно данным сектором рынка.

Есть еще особенность, рассматриваемая и как достоинство, и как недостаток СПО. Если компанию не устраивает уровень поддержки, она может обратиться за помощью к другой фирме, специализирующейся на оказании услуг по данному продукту. "Открытые" лицензии не запрещают этого, а наоборот, -- поощряют. Скептики вправе возразить: "Если существует другая фирма". Да, несомненно. Но спрос рождает предложение, и это основное правило рынка никто не отменял, а сегмент продуктов open source на сегодняшний день является одним из самых динамично развивающихся и быстро реагирующих на запросы покупателей. Именно поэтому компании-потребители все чаще переходят на использование СПО, а компании-производители программного обеспечения открывают исходные коды своих продуктов.


MySQL

Версия -- MySQL 5.0.1.
Тип лицензии -- двойная, GPL и коммерческая.
Поддерживаемые операционные системы -- Unix, MS Windows.
Адрес проекта -- www.mysql.com

Описанным выше двум основным критериям выбора СУБД в полной мере отвечает СУБД MySQL (www.mysql.com). Создателем MySQL является Майкл "Монти" Видениус (Michael "Monty" Widenius). 10 лет назад, в 1994 г., шведская компания TcX, где трудился Майкл, стала разрабатывать Web-приложения, которые использовали средство управления базами данных под названием UNIREG. Опыт оказался неудачным, так как UNIREG требовала значительных аппаратных ресурсов, что негативно отражалось на возможности динамической генерации Web-страниц. Видениус связался с автором mSQL Дэвидом Хьюзом (David Hughes) и предложил подключить mSQL к обработчику B+ ISAM в UNIREG. Однако дальнейшие тесты mSQL показали, что она не обладала в то время достаточной скоростью и гибкостью, поэтому было решено выпустить свою версию системы управления базами данных. За основу взяли UNIREG, добавив к нему утилиты сторонних разработчиков для mSQL. В результате был создан API, который поначалу во многом совпадал с API mSQL, что позволяло любому пользователю mSQL, желающему перейти на сервер баз данных TcX, сделать это практически безболезненно. В мае 1995 г. свет увидела версия MySQL 1.0.

Открытые СУБД мощь, доступная всем Что касается названия, то здесь нет однозначного ответа на вопрос "почему my?" По этому поводу "Монти" говорит следующее: "До конца неясно, откуда идет название MySQL. В ТсХ базовый каталог, а также большинство библиотек и утилит в течение десятка лет имели префикс "my". Вместе с тем мою дочь тоже зовут My. Поэтому остается тайной, что именно дало название серверу".

В настоящий момент разработчиком MySQL является компания MySQL AB. При этом сервер имеет двойное лицензирование, так что пользователи могут выбрать либо версию, распространяемую по лицензии GPL, либо приобрести одну из стандартных коммерческих лицензий. На территории Украины, в частности, официальным партнером компании выступает Ensita.NET-- ее стратегическое партнерское соглашение с MySQL AB было подписано в конце 2001 г.

Что собой представляет MySQL? Это очень быстрый многопоточный многопользовательский SQL-сервер баз данных. Он предназначен как для работы в связке с Web-приложениями, так и для использования в производственных системах с большой нагрузкой (возможно, поэтому на сленге DBA сервер уважительно называют muscle -- мускул).

Несколько слов о характеристиках сервера. Если в версии 3.22 существовало ограничение на размер таблиц в 4 GB, то начиная с 3.23 используется новый тип таблиц, а их максимальный объем доведен до 8 млн ТВ (263 байт). Почему именно таблиц, а не баз данных? Дело в том, что MySQL использует нетипичную схему хранения -- для каждой БД создается подкаталог, где размещаются файлы, содержащие данные, индексы и другую информацию. Однако следует учитывать тот факт, что особенности реализации операционной системы, под управлением которой работает сервер, а также тип файловой системы, где располагается база данных, также накладывают свои ограничения на максимальный размер таблиц. В ОС Linux, использующей ядро версии 2.4 и выше, ограничение в 4 ТВ снято (к примеру, файловая система ReiserFS 3.6 позволяет создавать файлы размером до 16 ТВ).

Рассматривайте эти данные, исходя из того, что эта СУБД может, но не предназначена для работы с очень большими объемами. Почему? Дело в том, что такие цифры для MySQL -- скорее абстрактный предел, чем реальная возможность. Для эффективной обработки подобных массивов информации требуются совершенно другие подходы к реализации механизмов управления данными и их хранения.

Количество операционных систем, под управлением которых она может функционировать, насчитывает около двух десятков: AIX, Amiga, BSDI, DEC Unix, FreeBSD, HPUX, Linux, Mac OS X, Linux, NetBSD, OpenBSD, OS/2 Warp, SGI Irix, Solaris, SunOS, Caldera (SCO) OpenServer, Tru64 Unix, MS Windows. Но не на всех из них MySQL работает одинаково хорошо. Это зависит от нескольких факторов. К ним следует отнести способность ОС максимально эффективно использовать возможности аппаратного обеспечения (в частности, симметричной многопроцессорной обработки), а также обеспечивать стабильность потоковой библиотеки. Кроме этого, имеет значение и общее количество клиентов, применяющих MySQL на данной платформе. Если оно достаточно велико, то вероятность своевременного обнаружения ошибок еще на этапе тестирования выше, что увеличивает надежность кода.

Если перейти к вопросам безопасности, то в MySQL применяется система, основанная на привилегиях и паролях, что позволяет гибко настраивать доступ к базе данных не только по имени пользователя, но и по названию узла. Сами пароли хранятся в зашифрованном виде, а для большей степени безопасности MySQL иногда запускается в chrootокружении, что снижает возможность взлома всей системы. Код MySQL протестирован с использованием Purify (коммерческий детектор утечки памяти), а также Valgrind -- одного из GPL-инструментов подобного класса, что тоже положительно сказывается на стабильности.

Сервер MySQL в состоянии управлять большими базами данных. По утверждению MySQL AB, "...компания использует MySQL для работы с несколькими базами данных, которые содержат 50 млн записей. Кроме того, нам известны пользователи, применяющие MySQL для работы с 60 тыс. таблиц, включающих около 5 млрд строк". Что ж, это впечатляет, но хотелось бы знать, под управлением какой операционной системы и на какой файловой системе были достигнуты эти значения? Возможно, на кластере.

Кстати, о кластерах. Начиная с версии 4.1 в состав MySQL включен сервис NDB Cluster, который позволяет объединять несколько действующих серверов. Правда, в таком режиме работы имеются свои ограничения. К ним относятся, например, небольшое количество поддерживаемых кодировок, всего одиннадцать (главное, что там есть поддержка utf-8), и ограниченное использование индексов.

MySQL позиционируется как сервер, обладающий высоким быстродействием, идеально подходящий для работы с Web-приложениями и в производственной сфере, где обработка информации часто должна вестись в реальном режиме времени. Подобное быстродействие достигается за счет множества факторов: здесь и использование библиотеки потоков, и упрощенная структура данных, и возможность применения бинарных деревьев для хранения индексов и бестранзакционных таблиц.

Кроме всего этого, популярность данной СУБД определяется наличием API для наиболее известных языков программирования. Добавьте сюда нетребовательность по сравнению с другими СУБД такого же класса к аппаратному обеспечению, и мы получим кандидата в чемпионы -- систему, способную функционировать практически на любом аппаратном и программном обеспечении. Если говорить о планах ее создателей, то одним из главных направлений называют продолжение работы в области соответствия стандартам ANSI SQL 99, однако не за счет ущерба для скорости или надежности.

С самого начала сервер MySQL был спроектирован под БД среднего размера (10--100 млн строк или около 100 МВ на таблицу) на малых вычислительных системах. MySQL AB планирует продолжать расширять набор функций сервера для работы с базами данных размерами больше 1 ТВ и вместе с этим предоставлять возможность компиляции упрощенной версии MySQL, которая больше подходит для портативных и встроенных устройств. Благодаря модульной структуре сервера оба эти направления не требуют особых затрат на модификацию кода. Сравнение функциональности MySQL с другими СУБД приведено на сайте dev.mysql.com/techresources/crashme.php.

Следует отметить еще один немаловажный факт признания MySQL в мире корпоративного ПО: в 2003 г. компании MySQL AB и SAP решили объединить свои усилия по созданию промышленной СУБД. Так появилась MaxDB, основанная на исходном коде SAP DB и ориентированная на применение в крупных средах SAP R/3. Она, как и MySQL, имеет два варианта лицензий: GPL и коммерческую, которая обойдется заказчикам всего в $49 на пользователя.


PostgreSQL

Версия -- PostgreSQL 7.4.6.
Тип лицензии -- BSD.
Операционные системы -- Unix, MS Windows (в среде Cygwin).
Адрес проекта -- www.postgresql.org

Объектно-реляционная СУБД, известная как PostgreSQL, ведет свою историю от проекта Postgres. Код Postgres, из которого и появилась PostgreSQL, -- итог усилий многих студентов и программистов, работавших под руководством профессора Майкла Стоунбрейкера (Michael Stonebraker) в Калифорнийском университете в Беркли. Когда в 1995 г. к Postgres была добавлена функциональность SQL, проект получил название Postgres95. Однако уже через год, в конце 1996 го, его изменили на текущее -- PostgreSQL.

Открытые СУБД мощь, доступная всем Если основным критерием, лежащим в основе архитектуры MySQL, является скорость работы СУБД, то в случае с PostgreSQL на первый план выходит функциональность. Объектно-реляционная модель вводит абстрактные типы данных для определения данных произвольной структуры и поведения. Функции, связанные с типами, определяются как функции SQL либо функции произвольных языков программирования. Все это позволяет пользователям легко расширять систему на базе PostgreSQL.

Возможностей у PostgreSQL так много, что только их описание составляет толстенную книгу. Чего только стоит наличие таких типов данных, как circle (круг в плоскости) или point (геометрическая точка в плоскости). Но основной конек этой СУБД, несомненно, наследование. Именно благодаря ему пользователь может проектировать собственные типы данных с присущей только им функциональностью, что позволяет переложить часть работы со стороны клиента на сервер. Добавьте сюда агрегатные функции и операторы, создаваемые пользователем, встроенные языки программирования (SQL, PL/pgSQL, PL/Tcl, PL/Perl), наличие триггеров, правил и хранимых процедур, и вы получите уже не сверхлегкую и сверхбыструю СУБД, подобную MySQL, а солидную систему, которая в состоянии решать обширный круг задач. Попробуем сравнить эти СУБД.


MySQL vs. PostgreSQL

Общее у этих систем, наверное, то, что создатели обеих СУБД стремятся довести их до полной совместимости со стандартом ANSI SQL. На этом, пожалуй, схожесть заканчивается.

Как уже отмечалось, создатели MySQL считают, что главное свойство их системы -- скорость. Именно над обеспечением максимально возможной производительности и трудится MySQL Team, тщательно следуя принятым принципам, т. е. разработкой MySQL занимается непосредственно MySQL AB, что позволяет сосредоточить управление проектом в одних руках. Исключение составляют разве что системы транзакций и библиотека регулярных выражений regexp. MySQL AB считает, что такой подход обеспечивает общую логичность кода и меньшее количество ошибок.

В отличие от MySQL система PostgreSQL основана на ядре, созданном множеством не связанных друг с другом разработчиков. В таких случаях, как правило, скорее добавляются новые возможности, чем происходит оптимизация существующего кода.

Так что, если сравнивать исключительно скоростные характеристики этих СУБД, то MySQL выигрывает. Но это не единственное ее преимущество. Специалистам хорошо знаком эффект "замусоривания" базы данных при длительном и активном использовании операций UPDATE и DELETE. В этом отношении MySQL практически не требует чистки БД, в то время как подобная операция у PostgreSQL (VACUUM) приводит к приостановке работы пользователей -- именно по-этому затруднено применение PostgreSQL в системах, функционирующих по схеме 24/7.

Следующий параметр, по которому MySQL превосходит своего конкурента, -- система привилегий. Нельзя сказать, что у PostgreSQL она отсутствует напрочь, просто в MySQL реализован более продуманный подход. Еще одна важная отличительная особенность: MySQL изначально была рассчитана на многопоточность, в то время как PostgreSQL использует процессы, а время переключения между ними намного больше, чем между потоками.

Что же касается преимуществ PostgreSQL, то значительная часть из них вытекает из ее функциональных возможностей -- это расширяемая система типов, наследование таблиц, использование хранимых процедур и т. д. К преимуществам этой СУБД можно отнести и тот факт, что блокировка таблиц, применяющаяся в нетранзакционных таблицах MyISAM, делает невозможным длительные запросы.

В заключение несколько слов о бизнес-модели, принятой MySQL AB. С момента своего возникновения компания остается прибыльной, и это очень серьезный аргумент в пользу open source. В октябре 2001 г. ряд ведущих скандинавских инвесторов и небольшая группа меценатов предоставили им венчурный кредит, а сегодня основными источниками ее доходов являются обучение и сертификация специалистов по MySQL и смежным продуктам, а также консультации по всему миру для клиентов MySQL и разработчиков, встраивающих MySQL в свое программное обеспечение.

Кроме этого, компания занимается продажей коммерческих лицензий на ПО сторонних разработчиков, предоставляемое с открытым исходным кодом на условиях GPL. Такое ПО существенно расширяет возможности MySQL. Один из примеров -- транзакционный обработчик таблиц InnoDB, обеспечивающий поддержку технологии ACID, внешних ключей, строковую блокировку, восстановление системы после аварии, управление версиями и многое другое. MySQL AB также разрабатывает специализированное заказное ПО, используя преимущества модульной архитектуры своей СУБД.

Как можно заметить, ничего экстраординарного в предоставляемых услугах нет. Конечно, пункт о двойном лицензировании применим только в том случае, если компания является обладателем авторских прав. Но в этом случае она способна сосредоточить свои усилия на готовых решениях на базе СПО. Главное только -- верно оценить конъюнктуру рынка.


CA Ingres

Версия -- Ingres Version II 3.0.1.
Тип лицензии -- CA Trusted Open Source License.
Операционные системы -- Unix, MS Windows.
Адрес проекта -- opensource.ca.com/projects/ingres/

В конце 70 х годов экспериментальный вариант СУБД Ingres был разработан в университете Беркли под руководством уже упоминавшегося Майкла Стоунбрейкера. С самого начала СУБД Ingres создавалась как мобильная система, функционирующая в среде Unix. Когда в начале 80 х была образована компания RTI (Relational Technology Inc.) для доведения ее прототипов до уровня коммерческих продуктов, стали различать университетскую и коммерческую версии СУБД Ingres. В настоящее время последняя поддерживается, развивается и продается фирмой Computer Associates (СА).

Летом текущего года CA открыла СУБД Ingres r3, приурочив это событие к конференции LinuxWorld. Кроме лицензии типа open source компания использует и собственную лицензию (CA Trusted Open Source License), которая позволяет изучать исходный код базы данных, бесплатно загружать ПО и встраивать его в другие программы, распространяемые по open source СА.

Вместе с Ingres r3 CA предложила четыре платных варианта поддержки этой СУБД со страховкой от судебных исков, при которых вместо лицензии на коммерческое ПО заказчики должны будут оплачивать только предоставляемые услуги.

Решение СА спонсировать проект open source, связанный с Ingres, является попыткой оживить интерес к этому продукту, имеющему на сегодня очень небольшую долю в соответствующем сегменте рынка, и развивать сервисные службы для других проектов open source. К началу будущего года СА намерена выпустить также 32 и 64 битные версии Ingres r3 для Solaris, AIX, HPUX, HP Tru64 и OpenVMS.


Derby (IBM Cloudscape)

Версия -- Derby.
Тип лицензии -- Apache Software License.
Операционные системы -- поддерживающие Java.
Адрес проекта -- incubator.apache.org/derby/

Компания IBM также продолжает активно делиться своими разработками с мировым сообществом open source. Она объявила о передаче Derby, версии реляционной СУБД Cloudscape, фонду Apache Software Foundation (ASF), чтобы стимулировать развитие новых технологий на базе Java. В настоящее время исходный код Derby доступен на Web-сайте проекта Apache Incubator по адресу: incubator.apache.org/derby.html.

В силу особенностей своей архитектуры -- малого объема, полной реализации на Java и возможности встраивания -- Cloudscape представляет собой образцовую СУБД для создания Java-приложений, содержащих в себе базу данных. Указанная СУБД интегрируется в приложение, и пользователю не приходится заниматься ее установкой или администрированием. Такой малый объем и простота в администрировании делают данную СУБД также идеальным кандидатом для применения в PDA, смартфонах и других подобных клиентах. Одна из интересных особенностей -- защищенный путем шифрования репозиторий данных, синхронизируемый с сервером. Использование данной СУБД, в частности, предполагается на мобильных рабочих местах страховых агентов. Несомненно, что с такими скромными аппаратными требованиями СУБД является самым подходящим вариантом для встраиваемых систем. Однако ей придется выдержать немалую конкуренцию -- с объявленной 10 августа DB Star от ITTIA, а также с развиваемой с 1996 г. Sleepycat BerkeleyDB, которую выбрали AOL, Amazon.com, Sun и НР.

Сегодня IBM предлагает свободный доступ к статьям по Cloudscape, техническим советам, примерам и самому продукту. За первые три недели пользователями было загружено более 5 тыс. копий этой СУБД, но каковы шансы на успех у данного проекта, покажет время.


Sleepycat BerkeleyDB

Версия -- Sleepycat BerkeleyDB 4.3.
Тип лицензии -- комбинация UC Berkeley и GPL.
Операционные системы -- Unix, MS Windows.
Адрес проекта -- www.sleepycat.com

Berkeley Database (BerkeleyDB) -- встраиваемая СУБД, которую можно использовать в приложениях, нуждающихся в высокопроизводительном механизме хранения и извлечения пар ключ--значение, поддерживающем одновременный доступ пользователей.

Открытые СУБД мощь, доступная всем BerkeleyDB зародилась как новая реализация метода доступа hash, предложенного взамен hsearch и различных вариантов dbm (а именно, dbm корпорации AT&T, ndbm от Berkeley и gdbm, разрабатывавшегося в рамках проекта GNU), а сам продукт создали и выпустили под названием Hash в 1990 г. программисты Зельцер и Йигит.

Максимальный размер базы данных, поддерживаемый BerkeleyDB, составляет на сегодня 248 байт, или 256 ТВ. Поскольку BerkeleyDB использует в качестве основного хранилища БД файловую систему ОС, она должна поддерживать работу с файлами больших размеров. BerkeleyDB -- компактная СУБД: двоичные файлы полного комплекта, в том числе всех методов доступа, механизмов восстановления и транзакций, занимают в стандартных архитектурах всего около 200 КВ. Одной из ее особенностей является то, что для завершения и отката транзакций используется система протоколирования с упреждением. Она же предоставляет системе восстановления информацию, необходимую для защиты от потери или повреждения данных в случае сбоя. Поэтому BerkeleyDB способна восстановить данные после сбоев в работе приложения, системы и даже после отказа жесткого диска. СУБД имеет свою собственную лицензию, которая позаимствована из условий GPL, делающих невозможным превращение открытого кода в коммерческий.


FireBird

Версия -- FireBird 1.5.
Лицензия -- InterBase Public License V.1.0.
Операционные системы -- Unix, Windows.
Адрес проекта -- ibphoenix.com

СУБД FireBird 1.0 является фактически исправленным вариантом InterBase 6.0 Open Edition, и первой полноценной, "чистой" версией FireBird можно считать только версию 1.5. FireBird имеет две непривычные особенности. Первая -- СУБД представлена в двух архитектурах, Сlassic и Super Server; вторая -- использование нескольких диалектов SQL, каждый из которых вносит свои нюансы в ее работу.

Открытые СУБД мощь, доступная всем Вариант Classic Server предполагает выделение каждому клиенту собственного сервера. Это означает, что в классической архитектуре для каждого из клиентских подключений создается уникальный серверный процесс, обслуживающий только одного клиента. В то же время Super Server обрабатывает все клиентские запросы в нескольких потоках одновременно и в одном серверном процессе, что повышает скорость и снижает требования к объему оперативной памяти при создании новых подключений.

Одним из отличий данной СУБД является то, что почти все клиентское программное обеспечение написано под MS Windows. Это стало возможно благодаря высокой популярности продуктов компании Borland: языков программирования C++ Builder и Delphi, в состав которых входят и компоненты для работы с СУБД InterBase и FireBird.


Заключение

В чем же привлекательность модели open source для коммерческих компаний? Что заставляет их открывать код своих продуктов? Что ждет их в данном случае? Попробуем ответить на эти вопросы.

Ресурсы любой фирмы небесконечны. Делая доступным код своих продуктов, они рассчитывают на привлечение к тестированию и созданию кода сторонних разработчиков. Если ПО действительно востребовано на рынке, то можно ожидать помощи от армии пользователей и создателей СПО. Иногда компания идет на подобный шаг и в надежде отвоевать долю рынка у соперников. Следующее, на фоне острой конкуренции необходимо разрабатывать новые подходы к ведению бизнеса. Уже несколько лет IT-сообщество придерживается мнения о том, что модель бизнеса "софт в обмен на деньги" исчерпала себя. В настоящий момент большую популярность набирает новая концепция -- "услуги в обмен на деньги". Именно ее приняли компании, предлагающие своим клиентам продукты на базе СПО. Продажа СУБД в чистом виде не всегда рентабельна (хотя утверждать, что она полностью убыточна, -- тоже неверно), интерес для потребителей представляют готовые решения. И здесь особенно значительный потенциал именно у промышленных и встраиваемых СУБД.
0 
 

Напечатать Отправить другу

Читайте также

 
 
IDC
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT