Альтернативы MySQL
SQLite, PostgreSQL, FirebirdSQL — возможности для разработчика
Сложно представить себе серьезное приложение (а тем более веб-приложение — сайт или сервис), которое бы не использовало базу данных. И если у разработчиков приложений для персонального компьютера сложно определить какую-либо лидирующую, самую популярную базу данных, то среди веб-разработчиков лидер по популярности ясен — у MySQL буквально нет конкурентов.
Да, MySQL — это хорошая, стабильная, широко известная и распространенная база данных. Но всегда ли разумно и оправданно использовать только ее? Нет ли более подходящего — в каком-нибудь конкретном случае — средства? А что делать, если MySQL из-за каких-либо технических обстоятельств недоступна?
Рассмотрим некоторые из самых популярных систем баз данных, которые могут при необходимости послужить заменой MySQL.
SQLite
SQLite — встраиваемый движок баз данных. И в этом его отличие от других, более известных и традиционных решений. Встраиваемый означает, что работа с базой данных осуществляется не через соединение с сервером, а с помощью специальной библиотеки, которая встраивается в интерпретатор языка разработки и становится его частью. Такого рода библиотеки, встраивающие SQLite, существуют для всех популярных языков веб-разработки: PHP, Perl, Ruby, Python, С/С++ и т. д. База данных практически полностью реализует стандарт языка запросов к базам данных SQL 92.
Для PHP версии 4, при необходимости использования SQLite, соответствующую библиотеку нужно подключать дополнительно. Для PHP версии 5 дополнительные библиотеки не нужны — возможность работы с этой базой данных встроена по умолчанию в стандартный дистрибутив. SQLite обладает некоторыми интересными особенностями, которые нужно учитывать при использовании этого движка баз данных. Вся база (таблицы, индексы и т. д ) хранится в одном файле — это позволяет легко переносить базы с одного компьютера на другой, даже если они работают под управлением разных операционных систем, никаких процедур по конвертации производить не нужно.
Несколько процессов могут одновременно читать из базы данные без каких-либо проблем, однако записывать данные в базу может одновременно только один процесс — при записи база блокируется. Попытка одновременной записи несколькими процессами может привести к ошибкам. Нужно отметить, что при использовании SQLite на виртуальном хостинге единственным ограничением для размера базы данных является выделенная квота дискового пространства данного тарифного плана, ведь, как было указанно выше, база SQLite — это обыкновенный стандартный файл.
SQLite распространяется под свободной лицензией, не ограничивающей любое ее коммерческое или некоммерческое использование.
Рекомендации по применению. Особенности SQLite дают веб-разработчикам интересные возможности для применения этого движка баз данных. Во-первых, SQLite является идеальным решением для применения в случаях, когда тарифный план виртуального хостинга не предусматривает наличие сервера базы данных, но для работы сайта база данных необходима. В этом случае либо использование PHP 5, либо сборка PHP 4 c соответствующим модулем SQLite (что позволяют сделать самостоятельно некоторые хостеры, такие как компания «Мастерхост») позволяют решить проблему наличия базы данных.
Кроме того, использование SQLite может быть удачным решением для сайтов информационного характера, которые рассчитаны больше на выдачу неких постоянных, редко изменяемых данных.
PostgreSQL
PostgreSQL — объектно-реляционная система управления базами данных с солидной историей, она появилась еще в 1982 году. Постоянно развиваясь и совершенствуясь (последняя версия 8.3.3 вышла в июне 2008 года), PostgreSQL по праву считается сейчас одной из самых надежных и производительных систем и является серьезным конкурентом не только свободно распространяемой MySQL, но и таким признанным коммерческим системам, как Oracle и DB2 (компании IBM).
Эта база данных имеет реализации для всех основных платформ и драйверы для использования совместно с большинством языков программирования.
PostgreSQL — это классическая клиент-серверная база данных. К основным особенностям PostgreSQL относятся: мощные и надежные механизмы транзакций и репликации, триггеры, хранимые процедуры, встроенная поддержка защищенного (SSL) соединения между клиентом и сервером. Полностью поддерживается Юникод. Очень интересной возможностью PostgreSQL является встроенная поддержка языков Perl, PHP, Python и C для написания триггеров и хранимых процедур. Также нужно упомянуть великолепную подробную документацию, в том числе и на русском языке. База данных частично реализует стандарт языка запросов к базам данных SQL 2003.
Для администрирования баз данных PostgreSQL существует большой набор инструментов, в частности, нужно отметить phpPgAdmin — веб-приложение, представляющее собой веб-интерфейс для управления базой данных, аналог широко известного и популярного решения phpMyAdmin (для MySQL). Интересно отметить, что размер базы данных PostgreSQL практически не ограничен. Так, по сообщениям прессы, самая большая база данных в мире – размером 2 петабайта — принадлежит компании Yahoo! и работает под управлением именно PostgreSQL.
Система распространяется под свободной лицензией BSD, с исходными кодами.
Рекомендации по применению. Нужно отметить — включение в план виртуального хостинга PostgreSQL не является редкостью ни для российских, ни для зарубежных хостеров. Однако, несмотря на все ее достоинства, веб-разработчики России используют эту базу данных весьма редко.
Нужно отметить один очень важный плюс PostgreSQL: кроме того что использование этой базы данных позволяет полностью отказаться от MySQL, работа с ней дает разработчику неоценимый опыт использования и администрирования настоящей системы управления базами данных промышленного уровня, что, без сомнений, полезно для любого специалиста.
FirebirdSQL
FirebirdSQL – кросс-платформенная, реляционная, свободно распространяемая система управления базами данных, построенная по технологии "клиент — сервер". Свою историю эта система ведет с 2000 года, когда корпорация Borland выпустила под свободной лицензией исходные коды своей знаменитой базы данных Interbase версии 6.0. Именно эти исходные коды и легли в основу FirebirdSQL.
В настоящее время существуют драйверы и компоненты для работы с этой базой данных для всех популярных языков программирования и веб-разработки.
FirebirdSQL не требовательна к аппаратному обеспечению и ресурсам, достаточно легко администрируема, и вследствие этого все больше хостеров начинают включать поддержку FirebirdSQL в тарифные планы виртуального хостинга.
Нужно отметить, что FirebirdSQL имеет все основные характеристики, присущие большим, коммерческим базам данных (в том числе те, которых нет у самой популярной базы данных MySQL), — транзакции, генераторы, триггеры, хранимые процедуры, внешние функции, управление доступом и правами пользователей и т. д. Нужно отметить, что эта база данных полностью поддерживает стандарт языка запросов к базам данных SQL 92. FirebirdSQL позволяет работать с данными во всех распространенных кодировках — как национальных, так и Юникод.
Интересной и, несомненно, очень полезной особенностью FirebirdSQL является возможность осуществлять резервное копирование данных на лету, то есть не останавливая сервер. Система распространяется под собственной лицензией, позволяющей ее свободное и бесплатное использование и распространение.
Рекомендации по применению. FirebirdSQL является достойной заменой популярным системам управления базами данных и предоставляет все необходимые средства для разработки веб-приложений любой степени сложности.
Кроме того, веб-мастера, знакомые со средой разработки Delphi (весьма популярной в странах бывшего СССР), достаточно быстро смогут начать работать с FirebirdSQL — ведь ее прародитель Interbase также широко известен и часто используется программистами на Delphi.
Мы коротко рассмотрели несколько альтернативных систем баз данных — как небольших, простых, начального уровня (SQLite), так и серьезных, промышленного уровня (PostgreSQL). Конечно, рассмотренными в статье системами список альтернатив MySQL далеко не исчерпывается. Но главное, необходимо знать — альтернативы есть, они доступны и могут быть применены в работе.
Широкий выбор средств разработки дает разработчику гибкость в решении стоящих перед ним задач, а этого очень часть недостает. Универсальные средства хороши, но специализированные, лучше подходящие для конкретной ситуации средства могут дать намного более хороший результат. И любая из рассмотренных в данной статье баз данных — SQLite, PostgreSQL, FirebirdSQL — может и должна занять достойное место в арсенале веб-разработчика.