Firebird (database server)

Продукт
Разработчики: Сообщество Firebird
Дата последнего релиза: 2015/04/01
Технологии: СУБД

Содержание

Firebird (FirebirdSQL) — компактная, кроссплатформенная, свободная система управления базами данных (СУБД), работающая на Linux, Microsoft Windows и разнообразных Unix платформах.

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

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

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

История

Firebird основан на исходном коде InterBase 6.0 который был выпущен как Open Source компанией 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 <function>)
  • команда RECREATE PROCEDURE
  • команда RECREATE TABLE
  • опции SELECT FIRST (<int>) SKIP (int) ...
  • функция SUBSTRING(<str> FROM <pos> [FOR <length>])
  • команда 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[1].

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 полностью бесплатен для использования и распространения (в том числе и коммерческого). Раскрытие исходного кода вашего продукта не требуется, вне зависимости от используемой модели лицензирования. Однако, в случае, если вы модифицировали исходный код сервера, то необходимо сделать доступным исходный код ваших модификаций.

Примечания



ПРОЕКТЫ НА БАЗЕ (8) РЕШЕНИЕ НА БАЗЕ (1) СМ. ТАКЖЕ (33)


Подрядчики-лидеры по количеству проектов

За всю историю
2021 год
2022 год
2023 год
Текущий год

  SAP CIS (САП СНГ) (38)
  Softline (Софтлайн) (35)
  РДТЕХ (33)
  BeringPro (БерингПойнт) ранее BearingPoint Russia (28)
  ФОРС - Центр разработки (25)
  Другие (746)

  Сапиенс солюшнс (Sapiens solutions) (7)
  BeringPro (БерингПойнт) ранее BearingPoint Russia (3)
  Navicon (Навикон) (3)
  GlowByte, ГлоуБайт (ранее Glowbyte Consulting, ГлоуБайт Консалтинг) (2)
  IFellow (АйФэлл) (2)
  Другие (35)

  Монитор Электрик (1)
  Efsol. Системная интеграция. Консалтинг (1)
  РДТЕХ (1)
  IBS (1)
  Ред Софт (Red Soft) (1)
  Другие (20)

  Arenadata (Аренадата Софтвер) (5)
  Тантор Лабс (Tantor Labs) (3)
  ФОРС - Центр разработки (2)
  Неофлекс (Neoflex) (1)
  Axenix (ранее Аксенчер Россия) Аксеникс (1)
  Другие (18)

  Arenadata (Аренадата Софтвер) (5)
  TData (ТДата) (4)
  Сбербанк-Технологии (СберТех) (2)
  GlowByte, ГлоуБайт (ранее Glowbyte Consulting, ГлоуБайт Консалтинг) (2)
  Диасофт (Diasoft) (2)
  Другие (18)

Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Oracle (44, 179)
  SAP SE (6, 178)
  Microsoft (23, 142)
  PostgreSQL Global Development Group (14, 130)
  Постгрес профессиональный (ППГ, Postgres Professional) (6, 41)
  Другие (266, 260)

  SAP SE (3, 11)
  Microsoft (3, 11)
  PostgreSQL Global Development Group (3, 10)
  Oracle (2, 4)
  Постгрес профессиональный (ППГ, Postgres Professional) (2, 3)
  Другие (10, 13)

  PostgreSQL Global Development Group (4, 9)
  Постгрес профессиональный (ППГ, Postgres Professional) (2, 6)
  VK Tech (ранее VK Цифровые технологии, ВК Цифровые технологии и Mail.ru Цифровые технологии) (2, 3)
  Arenadata (Аренадата Софтвер) (3, 2)
  Oracle (2, 2)
  Другие (9, 9)

  PostgreSQL Global Development Group (3, 13)
  Постгрес профессиональный (ППГ, Postgres Professional) (1, 6)
  Arenadata (Аренадата Софтвер) (3, 5)
  Apache Software Foundation (ASF) (3, 4)
  Тантор Лабс (Tantor Labs) (2, 3)
  Другие (8, 10)

  PostgreSQL Global Development Group (4, 12)
  Arenadata (Аренадата Софтвер) (3, 7)
  VMware (2, 7)
  Постгрес профессиональный (ППГ, Postgres Professional) (2, 6)
  TData (ТДата) (2, 4)
  Другие (7, 12)

Распределение систем по количеству проектов, не включая партнерские решения

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Oracle Database - 106
  Microsoft SQL Server - 104
  SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 103
  PostgreSQL СУБД - 81
  SAP HANA (High Performance Analytic Appliance) - 72
  Другие 389

  Microsoft SQL Server - 9
  SAP NetWeaver Business Warehouse (SAP BW/4HANA) - 8
  PostgreSQL СУБД - 7
  Oracle Database - 3
  SAP HANA (High Performance Analytic Appliance) - 3
  Другие 21

  Postgres Pro СУБД - 5
  ADB - Arenadata DB - 2
  PostgreSQL СУБД - 2
  Tarantool Платформа in‑memory вычислений - 2
  Oracle Database - 2
  Другие 13

  Postgres Pro СУБД - 6
  PostgreSQL СУБД - 4
  Tantor СУБД - 3
  ADB - Arenadata DB - 3
  ClickHouse - система управления базами данных (СУБД) - 2
  Другие 10

  ADB - Arenadata DB - 6
  PostgreSQL СУБД - 5
  Postgres Pro СУБД - 4
  RT.WideStore СУБД - 3
  Diasoft Digital Q.Database - 3
  Другие 14