Интернет Windows Android

Firebird серый кардинал на рынке субд. Firebird серый кардинал на рынке субд В помощь разработчику

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

Основные характеристики Firebird:

Полная поодержка хранимых процедур и триггеров.
Транзакции, полностью совместимые с концепцией ACID.
Ссылочная целостность.
Версионная архитектура.
Очень небольшой размер.
Мощный внутренний язык для написания хранимых процедур и триггеров (PSQL).
Поддержка внешних пользовательских функций (UDF).
Firebird практически не требует работы системного администратора или позволяет свести ее к минимуму.
Почти не требует настройки - использовать СУБД можно сразу же после ее установки!
Огромное интернет-сообщество пользователей и разработчиков, множество мест, где вы можете получить быструю и бесплатную помощь.
Возможность распространения встроенной в приложение (embedded) версии - замечательно подходит для создания каталогов на CD-ROM, однопользовательских и пробных версий программ.
Десятки специализированных приложений от сторонних разработчиков, включая средства администрирования, репликации, и так далее.
Безопасная запись данных (careful write) - быстрое восстановление после сбоев, отсутствие необходимости в журналировании транзакций!
Большое количество средств доступа к базе данных: native/API, драйверы dbExpress, ODBC, OLEDB, .Net provider, JDBC-драйвер, модули для Python, PHP, Perl, и так далее.
Поддержка большинства распространенных операционных систем, включая Windows, Linux, Solaris, MacOS.
Инкрементные бэкапы
Билды для 32- и 64-разрядных ОС
Полная реализация курсоров в PSQL
Таблицы мониторинга
Триггеры на коннект и транзакции
Временные таблицы
TraceAPI - узнайте, что делается на сервере
Инструменты и компоненты

Графические программы для администрирования баз данных

IBExpert (есть бесплатная версия)
DB Workbench
FlameRobin (open source, версии под Windows и Linux)
EMS SQL Management Studio
Firebird Development Studio
Драйверы и компоненты доступа

Компоненты Delphi

IB Objects
FIBPlus
UIB (Unified InterBase Components)
AnyDAC
IBDAC, UNIDAC
Zeos
MDO
ODBC

Firebird ODBC Driver
EasySoft
OLEDB

IBProvider
Java

JayBird
C++

IBPP
.Net Provider

Firebird .Net Provider
Другие языки программирования

PHP
Python
Perl
Программы для репликации баз данных

IBReplicator
FBReplicator
DBRE

Это очень просто. Размер инсталлятора обычно не превышает 7 MB (зависит от вашей операционной системы), а процесс установки полностью автоматизирован. Вы можете скачать инсталлятор с сайта Firebird.

Обратите внимание, что существует 4 варианта сервера: SuperServer, Classic, SuperClassic и Embedded. Для первого знакомства лучше подходит SuperServer. Classic рекомендуется для многопроцессорных машин, а также в некоторых других специфических случаев. SuperServer имеет разделяемый между всеми соединениями к базе данных кэш и использует потоки для обслуживания каждого соединения, а Classic запускает отдельный процесс с собственным кэшем для независимой работы с каждым отдельным соединением к базе данных.

Embedded - это еще одна, удивительная версия сервера. Она состоит из всего одной библиотеки (DLL) размером около полутора мегабайт, содержащей полностью весь сервер Firebird. Это делает версию Embedded чрезвычайно удобной для распространения, так как в этом случае отсутствует необходимость установки сервера. Она идеальна для создания CDROM-каталогов, демонстрационных версий программ и приложений для однопользовательской работы.

Firebird включает в себя набор консольных программ, позволяющих создавать базы данных, исследовать их характеристки, выполнять операторы SQL и скрипты, производить резервное копирование данных, их восстановление из резервной копии и так далее. Если же более привычными для Вас являются средства, оснащенные графическим интерфейсом (GUI), то в этом случае также имеется множество вариантов для выбора нужной программы на ваш вкус.

Windows-версия сервера может быть запущена как в виде сервиса, так и в виде обычного приложения. Для управления сервером инсталлятор создает специальную иконку в "Панели Управления" операционной системы.

28.08.2008

Почему FireBird?

Помимо явных лидеров на рынке СУБД есть и менее приметные, но не менее востребованные решения, например PostgreSQL или Sybase ASA. Но настоящим «серым кардиналом» можно назвать, пожалуй, лишь одну - FireBird (в переводе с англ. «жар-птица»).

Многим программистам знакома аббревиатура IB/FB. Так четырьмя буквами обозначаются целых две системы управления базами данных - InterBase и FireBird. Обе системы нетребовательны к ресурсам, платформонезависимы, просты в использовании и относительно легки в освоении. Очень часто клиентские программные утилиты поддерживают эти две СУБД одновременно.

В действительности FireBird бесплатна и распространяется вместе с исходными текстами (), но не лишним будет вспомнить, что же на самом деле означает эта «бесплатность». Основная идея лицензии FireBird состоит в том, что при использовании ее в своих проектах разработчик волен с ней поступать по собственному усмотрению - дарить, продавать, перекомпилировать, менять название и т.д. Согласно общепринятой практике, программы с подобными лицензиями можно пересобирать в Linux (и других Unix-системах) с использованием компилятора GCC, а для Windows делать сборки непосредственно из среды MS Visual Studio. Вообще, перекомпиляция какого-либо ПО для Linux-систем всегда считалась хорошим тоном - установка новых пакетов пройдет без проблем, если программа собрана из исходных текстов.

Еще недавно такая возможность существовала и для пользователей СУБД MySQL, но начиная с шестой версии новый владелец этого продукта компания Sun Microsystems закрывает доступ к исходным текстам отдельных модулей корпоративной версии СУБД. Плохо это или хорошо - каждый должен решить для себя сам, но факт, что на данное время есть только две бесплатные продвинутые реляционные СУБД, распространяемые с исходными текстами: PostgreSQL и FireBird.

Кстати, существует и коммерческий вариант FireBird - «Ред База Данных» 2.0, продукт корпорации «Ред Софт». Эту неожиданно родившуюся СУБД, полностью совместимую с FireBird, можно приобрести за деньги! Разработчики этого чуда емко охарактеризовали его как «FireBird для госструктур». В апреле 2008 г. эта СУБД получила от одного российского журнала звание «Продукт года». Хотя есть и другой не менее полезный вариант расставания с деньгами - их можно перечислить в сообщество FireBird (FireBirdSQL Foundation Inc.), некоммерческий фонд, целью которого является не только проведение в самых уютных уголках мира веселых пивных конференций, но и собственно улучшение программного пакета FireBird.

История FireBird. Жар-птица, дятел и другие

Изучая историю «жар-птицы», легко понять, что ее успех в России был предопределен. Давным-давно, когда многие Delphi-программисты (основная часть которых хорошо помнит, что такое Turbo Pascal или Borland Pascal for Windows) писали программы для BDE, признаком профессионализма считалось использование в проекте СУБД InterBase. А наличие в Delphi отдельной страницы готовых к использованию компонентов для InterBase подхлестывало всеобщий интерес следующих поколений разработчиков к этой СУБД. По традиции при знакомстве с InterBase было принято узнавать о героическом пути этой программы в армии США - о том, как ее ставили на танках «Абрамс». А когда Borland (в то время носившая загадочное название Inprise) выпустила свободно распространяемый SQL-сервер InterBase 6.0 (а точнее 6.0.0.627), да еще фактически подарила всем желающим исходные тексты этой версии, у сообщества Open Source появился отличный повод для создания нового проекта. К тому же и сами разработчики InterBase приняли в нем участие.

Уже первая версия FireBird позволила многим пишущим для InterBase 5.x высоко поднять голову, гордясь легальностью распространяемого ПО. Более того, компоненты среды Delphi, предназначенные для InterBase, оставались полностью совместимы с новой СУБД. Да что тут скромничать, и сейчас пакет борландовских компонентов IBX отлично справляется с типовыми задачами, решаемыми под FireBird, хоть и нет уже в этом особой надобности.

Менее известные клоны InterBase - это заглохший в 2003 г. российский Yaffil (в переводе с англ. «зеленый дятел»), ориентированный на архитектуру Windows, но просуществовавший фактически только два года, и загадочный всемогущий Fyracle (http://www.janus-software.com/fb_fyracle.html), который позиционируется разработчиками как Oracle-mode FireBird, т.е. СУБД FireBird, дополненная возможностями PL/SQL. Поводом для разработки Fyracle послужила идея обеспечения минимальной необходимой совместимости при распространении бесплатной CRM, которая могла бы работать как с Oracle, так и с FireBird. Но сама эта идея привлекла внимание многих разработчиков по другой причине. Дело в том, что возможности PL/SQL в сравнении с незатейливым процедурным языком FireBird выглядят до сих пор очень заманчиво. Но абсолютно бесплатно можно загрузить только Fyracle Run-time Kit, к тому же на их сайте давно не появлялись новые сборки, соответствующие основным версиям FireBird, что говорит о полной непредсказуемости этого амбициозного проекта. К тому же при детальном рассмотрении сразу выясняется, что в Fyracle реализована лишь минимальная концептуальная часть от всего имеющегося современного синтаксиса PL/SQL.

СовременнАЯ FireBird

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

Atomicity - атомарность транзакций;

Consistency - целостность данных;

Isolation - изолированность
(контроль доступа пользователей);

Durability - долговременность хранения данных.

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

Уже в версии 1.5 все модули были аккуратно переписаны с учетом современных стандартов языка C++. Версия 2.1 имеет футурологическую направленность: в нее успели заложить некоторые элементы, запланированные для архитектуры 3.0. В этой версии были добавлены триггеры для общих событий базы данных, глобальные временные таблицы, выражение «UPDATE OR INSERT», использование доменов для аргументов и переменных процедурного языка.

А вот «рабочей лошадкой» на апрель 2008 г. можно считать версию 2.0.x.

Конечно, применение СУБД FireBird очень часто сопровождается использованием среды разработки Delphi, но она подойдет и не только для Delphi-разработчиков. Существуют бесплатно распространяемые драйверы для ODBC, Java, .NET (1.1, 2.0, 3.5), а также библиотеки для низкоуровневого доступа через C++.

FireBird предоставляет возможности, стандартные для современных промышленных СУБД: триггеры, просмотры, хранимые процедуры, анонимные блоки, функции, заданные пользователем, домены, события, исключения, инкрементное резервное копирование данных. И при этом у «жар-птицы» остается отличительная черта - невысокие требования к аппаратным ресурсам и относительно простой процесс установки. Более того, в FireBird есть отдельный вариант сборки для встроенных однопользовательских решений (Embedded FireBird), работающий на одной-единственной библиотеке. Но при этом обеспечивается полная совместимость структуры базы для основного варианта использования этой СУБД.

Чего сейчас нет в FireBird

Data Partitioning и табличные пространства

Отсутствие возможностей логического и физического разделения данных сейчас уже как-то странно смотрится на фоне других СУБД. С другой стороны, современные аппаратные возможности и опыт в проектировании баз данных способны творить чудеса. В некоторых СУБД разделение данных (партицирование таблиц) реализовано сейчас так, как будто бы его вовсе нет. Иными словами, используя средства процедурного языка в FireBird, можно самостоятельно реализовать нечто похожее на разделение данных.

Схемы пользователей

Эта возможность позволяет хорошо структурировать базу данных и удобно разграничивать права доступа для пользователей. Нехватка схем - большой минус FireBird по сравнению с другими современными развитыми реляционными СУБД. И похоже, изменений в этом направлении пока не предвидится.

Работа с XML

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

Написание пользовательских функций под Java и.NET

Наверное, ни одна современная РСУБД не может обойти стороной этот функционал.

Java - мощный язык программирования, предоставляющий разработчику широкие возможности. Как бы ни выглядела непосредственная реализация, позволяющая использовать Java, она обязательно будет иметь успех, так как отлично ляжет в общую концепцию решения OpenSource: Linux, FireBird… Java!

Судя по планам разработчиков, создавать функции под Java и.NET можно будет уже в версии 3.0.

Операторы быстрого экспорта/импорта для внешнего файла

Имеющаяся сейчас в FireBird возможность называется «внешними таблицами» и напоминает специальное пыточное устройство для программиста любой квалификации. Она не заслуживает особого внимания при проектировании баз данных, если, конечно, разработчик хранилища данных не ставит себе целью тренировку собственного терпения и усердия независимо от результата. Тем не менее, если понаблюдать за диалогами на форумах, некоторые разработчики по отношению к внешним таблицам питают чувства, напоминающие стокгольмский синдром. В настоящий момент существует множество готовых платных и бесплатных решений (для «автоматики» и разовых операций) для репликации, экспорта/импорта данных, сохранения в файле выходной информации, но в сравнении, например, с возможностями MySQL заметен явный недостаток в этом вопросе.

Работа с объектами. Наследование

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

В FireBird любой внешний объект всегда можно бросить в поле типа BLOB, а остальное уже, как обычно, зависит от программиста... Кроме того, в Интернете легко найти статьи о методах правильного хранения объектов в реляционных базах.

Гетерогенные запросы

Если сравнивать бесплатную FireBird c платной СУБД Sybase ASA, то в пользу последней может свидетельствовать возможность использования веб-сервисов и «чужих» таблиц из других СУБД. Похожими способностями обладают, кроме того, MS SQL Server и Oracle, а также серверное ПО Adobe ColdFusion, имеющее собственный механизм кросс-платформенных запросов. Ряд задач, требующих работы с данными разных источников, решаются на уровне клиентских программ, однако тема реализации гетерогенных запросов для FireBird обсуждается в Рунете уже давно. Хорошие механизмы интеграции нужны как воздух именно потому, что эту СУБД используют для задач, связанных со средним уровнем (MiddleWare, промежуточный программно-технический уровень предназначенный для преобразования данных, их первичной обработки и т.д.). Идя навстречу пожеланиям трудящихся, разработчики по крайней мере запланировали этот функционал на версию 3.0.

Встроенные возможности для работы с древовидными структурами

С обработкой и хранением древовидных данных на уровне пользовательских таблиц связана огромная часть задач. Тема отражения таких данных на табличное пространство уже давно тривиальна, но программисты, использующие FireBird, не раз высказывали участникам сообщества просьбы об оснащении сервера специализированными средствами для хранения и обработки деревьев.

В помощь разработчику

Сейчас к вашим услугам широкий диапазон драйверов, пакетов, компонентов, обеспечивающих возможность использования FireBird при работе в любой современной среде программирования и с любым развитым языком. Постоянно обновляются бесплатные драйверы для доступа к базе через ODBC, пакеты для работы из Java, .NET/MONO-провайдеры, объектные библиотеки С++ (как обертка для API), драйверы для работы на PHP. И все это богатство имеет соответствующую документацию, примеры использования и перспективы развития. Но, как прежде, особую любовь к FireBird питают Delphi-программисты, для которых можно назвать как минимум три пакета FireBird-компонентов, готовых к коммерческому использованию.

И разнообразных Unix платформах.

В качестве преимуществ Firebird можно отметить многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов (это возможно потому, что читающие пользователи не блокируют пишущих), компактность (дистрибутив 5Mb), высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров.

Firebird используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора) с 2001 г. Это коммерчески независимый проект C и C++ программистов, технических советников и разработчиков мультиплатформенных систем управления базами данных, основанный на исходном коде, выпущенном корпорацией Borland 25 июля 2000 года в виде свободной версии Interbase 6.0.

Среди недостатков: отсутствие кеша результатов запросов, полнотекстовых индексов.

История

Firebird основан на исходном коде InterBase 6.0 который был выпущен как компанией Borland в августе 2000 года. История Interbase начинается в 1984 году, таким образом, продукт является наследником более чем 20‑летнего опыта работы с реляционными базами данных.

Версии сервера

2003

Не поддерживаемые версии

1.0 (последний релиз 1.0.3 от апреля 2003)

Релиз Firebird 1.0 - это первая версия (ноябрь 2001 года), базирующаяся на открытых исходных текстах InterBase 6.0. Поэтому в основном релиз содержит большое число исправлений ошибок IB 6.0.

  • Расширенные проверки зависимостей (udf и генераторы)
  • Убраны проблемы с размером файла БД более 4 гигабайт (кроме FAT16 и FAT32, где файл не может быть больше 2-4 гигабайт)
  • Поддержка размера страницы БД 16 килобайт
  • ForcedWrites теперь ON по умолчанию при создании БД
  • Параметр конфигурации для задания расположения внешних файлов
  • Увеличено количество внешних файлов, открываемых одновременно
  • Внешний файл закрывается, если внешняя таблица удаляется
  • Добавлен параметр CPU_Affinity (Superserver)
  • Возможность указания номера порта в строке коннекта
  • параметр NONAGLE для Linux
  • расширения isc_info_database
  • счетчик записей для gbak (при указании опции -v)
  • переменные CURRENT_USER и CURRENT_ROLE
  • команда DROP GENERATOR
  • возможность группировки по UDF (group by )
  • команда RECREATE PROCEDURE
  • команда RECREATE TABLE
  • опции SELECT FIRST () SKIP (int) ...
  • функция SUBSTRING( FROM )
  • команда PLANONLY для ISQL
  • новый маркер комментариев --
  • расширения ib_udf (SUBSTR, SUBSTRLEN, ASCII_CHAR)
  • новый набор функций FBUDF.DLL
  • by descriptor в параметрах UDF

2009

1.5 (1.5.6 от октября 2009, последний релиз ветки 1.5 (End of series))

Firebird 1.5 выпущен на базе Firebird 1.0, с переводом кода с C на C++

  • Восстановлена архитектура Classic для Windows
  • создан вариант embedded
  • расширен SQL - CASE, COALESCE, NULLIF
  • изменено имя базы безопасности (security.fdb) и других модулей - клиента, файла сообщений
  • новый файл конфигурации firebird.conf, с новыми параметрами
  • передача varchar по сети в "сжатом" виде
  • триггеры мульти-действий (insert or update or delete)
  • индексы по constraint PK, FK, Unique автоматически принимают имя constraint (если задано)

индексов у таблицы может быть до 256 (раньше было не более 64)

  • улучшенная обработка ошибок. Расширенная обработка ошибок в процедурах и триггерах
  • разрешается пустой блок BEGIN/END
  • новые таблицы символов
  • расширения в ISQL
  • новые функции в ib_udf и fbudf
  • улучшения оптимизатора

Поддерживаемые версии

2.0 (последний релиз 2.0.6)

  • ускорена передача данных по сети
  • локальный протокол заменен на XNET
  • убрана трансляция прав доступа через NetBEUI
  • новая политика сборки мусора (см. firebird.conf, GCPolicy)
  • Classic поддерживает все функции Services API, идентично SuperServer
  • параметр лимита ожидания по блокировкам WAIT
  • ускоренный поиск в строках и blob
  • исправления обновляемых view
  • новые режимы shutdown БД
  • новый формат БД - теперь одна таблица может иметь размер больше 36 гигабайт
  • новый формат БД - индексируемая строка может быть 1/4 размера страницы (до 4к при размере страницы 16к)
  • значительные улучшения оптимизатора
  • расширения клиентского API
  • новые встроенные строковые функции (lower, trim)
  • инкрементальный бэкап (nbackup)

2011

2.1 (последний релиз 2.1.4 от 15.03.2011)

Среди нововведений необходимо выделить глобальные триггеры базы данных, общие табличные выражения (CTE), временные таблицы, возможность мониторинга базы данных через SQL, отмена зависших запросов, а так же новые SQL инструкции.

2.5

Основной целью Firebird 2.5 было заложить основу для многопоточной архитектуры будущих версий. В данной версии в основе двух моделей Firebird Super Server и Firebird Classic лежит общий код, осуществляющий низкоуровневую синхронизацию и потокобезопасность.

Новые возможности SQL в Firebird 2.5

  • Управление пользователями через SQL (CREATE USER/ALTER USER/DROP USER).
  • Модификация представлений через инструкции ALTER VIEW и CREATE OR ALTER VIEW.
  • Возможность изменять вычисляемые поля ALTER COLUMN.
  • Оператор SIMILAR TO позволяет проверять регулярные выражения в условии WHERE, CHECK и в операторе * IF расширения PSQL.

Прочие изменения в Firebird 2.5

  • Поддержка автономных транзакций в PSQL (хранимые процедуры, триггеры, оператор EXECUTE BLOCK.
  • Выполнение гетерогенных запросов через EXECUTE STATEMENT
  • VIEW на основе хранимых процедур
  • Таймауты запросов
  • Улучшенный мониторинг. MON$MEMORY_USAGE и др.
  • Принудительное отключение клиента через MON$STATEMENTS.
  • Новая системная роль RDB$ADMIN позволяет передавать SYSDBA свои привилегии другому юзеру в пределах базы данных.

2.5.1 (последний релиз от 4.10.2011)

Спустя год после выхода СУБД Firebird 2.5 представлен корректирующий релиз Firebird 2.5.1 . Кроме исправления ошибок, в новой версии представлено несколько улучшений:

  • Заметно увеличена производительность восстановления БД (gbak restore) на стадии добавления данных;
  • Добавлена поддержка записи в глобальные временные таблицы для баз, находящихся в режиме только для чтения. Увеличена производительность глобальных временных таблиц и эффективность работы сборщика мусора;
  • В PSQL добавлена поддержка контекстной переменной SQLSTATE, которая может использоваться в блоках WHEN наряду с переменными GDSCODE и SQLCODE для диагностики ошибок;
  • В API добавлены функции предобразования между BLOB.

2015

Вышла корректирующая версия СУБД Firebird 2.5.4

1 апреля 2015 года стало известно о выходе в открытый доступ корректирующего релиза реляционной СУБД Firebird 2.5.4 .

Firebird распространяется под свободной лицензией MPL и поддерживает стандарты ANSI SQL, в том числе триггеры и хранимые процедуры.

Помимо исправления ошибок в новой версии добавлена низкоуровневая проверка целостности дисковых структур таблиц и индексов с сохранением доступности БД для выполнения других операций (в онлайн-режиме). Реализован механизм раннего освобождения внутренних временных блобов (blob), что помогло высвободить дополнительную память и дисковое пространство.

3.0 (в разработке)

Архитектуры сервера

  • Классик сервер (англ. ClassicServer) - один процесс на одно соединение; поддержка многопроцессорных машин.
  • Суперсервер (англ. SuperServer) - все соединения используют один процесс, меньшие требования к памяти при большем быстродействии; для однопроцессорных машин.
  • СуперКлассик (англ. SuperClassic Server) - один процесс, но свой поток на каждое соединение. Данная архитектура введена в версии 2.5.
  • Встраиваемая (англ. Embedded) версия - весь движок содержится в одной библиотеке с именем клиентской библиотеки сервера, идеально подходит для однопользовательских систем, не требует инсталляции.

Все архитектуры используют одинаковый формат файла базы данных, таким образом в любой момент можно переключиться на другую архитектуру.

Лицензирование

Firebird выпускается под условиями IPL (InterBase Public License) и IDPL (Initial Developer’s Public License), которые совпадают с условиями Mozilla Public License 1.1. Firebird полностью бесплатен для использования и распространения (в том числе и коммерческого). Раскрытие исходного кода вашего продукта не требуется, вне зависимости от используемой модели лицензирования. Однако, в случае, если вы модифицировали исходный код сервера, то необходимо сделать доступным исходный код ваших модификаций.