Firebird
Firebird | |
---|---|
Тип | реляционная СУБД и свободное и открытое программное обеспечение |
Разработчик | Firebird Foundation[вд] |
Написана на | C++, C |
Операционные системы | Linux, Mac OS, Windows, Unix |
Первый выпуск | 22 ноября 2000 |
Аппаратные платформы | IA-32, x86-64, ARM |
Последняя версия | 5.0 (10 января 2024) |
Альфа-версия | 6.0 (Q1 2025) |
Репозиторий | github.com/FirebirdSQL/f… |
Состояние | активное |
Лицензия | Interbase Public License[вд][1][2][…] и Initial Developer's Public License[вд][1][2][…] |
Сайт | firebirdsql.org |
![]() |
Firebird (FirebirdSQL) — свободная кроссплатформенная реляционная система управления базами данных, работающая на macOS, Linux, Microsoft Windows и некоторых Unix-платформах.
Создан в 2001 году как ответвление Interbase 6.0, развивается сообществом разработчиков без явной поддержки какой-либо крупной корпорации.
Как и Interbase, использует MVCC, поддерживает хранимые процедуры на языке PSQL, триггеры, транзакционно-независимые 64-битные генераторы последовательностей. Имеется возможность работать с базами данных только для чтения (что позволяет использовать базы данных, например, на CD-ROM и удобно в комбинации со встраиваемой версией сервера Firebird Embedded). Реализовано несколько уровней изолированности транзакций, обеспечивается резервное копирование без остановки сервера. Реализована поддержка Юникода.
Внешние функции (UDF) могут быть написаны на любом языке и легко подключены к серверу в виде разделяемых библиотек, позволяя расширять возможности сервера «изнутри». Поддерживается SQL-92 Entry Level 1, реализована большая часть стандарта SQL-99, существует ряд дополнений стандартного синтаксиса.
Работает на аппаратных платформах x86, x64 и PowerPC, SPARC, выпускались версии для Windows, Linux, macOS, HP-UX, FreeBSD, Solaris и ряда других операционных систем, впоследствии сборка стала вестись только для 32- и 64-разрядных версий Windows, Linux и macOS.
Для доступа к серверу сторонними разработчиками выпускаются собственные наборы компонент для Си и C++, Delphi, классы для ADO, драйверы ODBC и JDBC. Имеются драйверы для Python, PHP, драйвер OLE DB, dbExpress, провайдер данных .NET и прямой доступ с использованием клиентской библиотеки сервера (fbclient.dll или GDS32.dll).
Базы данных могут быть расположены в нескольких файлах, предельный размер которых зависит от операционной системы, теоретический предел — 64 TБ для одного файла базы данных.
Существует четыре архитектуры сервера:
- ClassicServer — один процесс на одно соединение, поддержка многопроцессорных машин;
- SuperServer — все соединения используют один процесс, меньшие требования к памяти при большем быстродействии (до 3.0 — только для однопроцессорных);
- SuperClassic Server — один процесс, но свой поток на каждое соединение, начиная с версии 2.5;
- Embedded — система содержится в одной библиотеке с именем клиентской библиотеки сервера, подходит для однопользовательских систем и не требует инсталляции в Windows.
Все архитектуры используют одинаковый формат файла базы данных, таким образом, в любой момент можно переключиться на другую архитектуру.
Выпускается под условиями IPL (InterBase Public License) и IDPL (Initial Developer’s Public License), которые совпадают с условиями Mozilla Public License 1.1. Firebird бесплатен для использования и распространения, в случае модификации исходного кода сервера требуется публикация изменений.
История версий Firebird
[править | править код]1.0 (последний релиз 1.0.3 от 4 июня 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
1.5 (последний релиз 1.5.6 от 8 октября 2009)
[править | править код]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.7 от 12 апреля 2012)
[править | править код]- Ускорена передача данных по сети
- Локальный протокол заменен на XNET
- Убрана трансляция прав доступа через NetBEUI
- Новая политика сборки мусора (см. firebird.conf, GCPolicy)
- Classic поддерживает все функции Services API, идентично SuperServer
- Параметр лимита ожидания по блокировкам WAIT
- Ускоренный поиск в строках и blob
- Исправления обновляемых view
- Новые режимы shutdown БД
- Новый формат БД - теперь одна таблица может иметь размер больше 36 гигабайт
- Новый формат БД - индексируемая строка может быть 1/4 размера страницы (до 4к при размере страницы 16к)
- Значительные улучшения оптимизатора
- Расширения клиентского API
- Новые встроенные строковые функции (lower, trim)
- Инкрементальный бэкап (nbackup)
2.1 (последний релиз 2.1.7 от 5 декабря 2014)
[править | править код]- Глобальные триггеры базы данных
- Общие табличные выражения (CTE)
- Временные таблицы
- Возможность мониторинга базы данных через SQL
- Отмена зависших запросов
- Новые SQL инструкции
2.5 (последний релиз 2.5.9 от 24 июня 2019)
[править | править код]Основной целью Firebird 2.5 было заложить основу для многопоточной архитектуры будущих версий. В данной версии в основе двух моделей Firebird Super Server и Firebird Classic лежит общий код, осуществляющий низкоуровневую синхронизацию и потокобезопасность.
3.0 (последний релиз 3.0.11 от 4 августа 2023)[3]
[править | править код]В этой версии Firebird подвергся наиболее серьёзной переработке за 14 лет своего существования. Новая многопоточная архитектура и улучшенный общий кэш страниц намного эффективнее используют многоядерные процессоры и большие объемы оперативной памяти.
Благодаря этим изменениям версия Firebird 3.0 демонстрирует значительное увеличение производительности, в то же время сохраняя обратную совместимость со старыми клиентскими библиотеками.
Помимо этого Firebird 3.0 представляет большой список новых возможностей языка SQL (включая оконные и статистические функции) и добавляет расширенные возможности безопасности, такие как шифрование базы данных и сетевого трафика – всего более 100 существенных нововведений. Несмотря на новые возможности, ориентированные на предприятия и большие базы данных, Firebird 3.0 сохраняет свою компактность, возможность простого встраивания и управления, которые сделали его правильным выбором для многих приложений ��о всему миру.
4.0 (последний релиз 4.0.4 от 8 ноября 2023)[4]
[править | править код]Firebird 4.0 вводит новые типы данных и множество улучшений без радикальных изменений в архитектуре или работе, наиболее важными из которых являются: логическая репликация, более длинные идентификаторы метаданных, поддержка международных часовых поясов, тайм-ауты для подключений и инструкций.
5.0 (последний релиз 5.0 от 10 января 2024)[5]
[править | править код]Firebird 5.0 вносит множество улучшений без каких-либо изменений в архитектуре или работе, наиболее важными из которых являются:
- Параллельная (многопоточная) работа для резервного копирования/восстановления, развертки и создания индекса
- Частичные индексы
- SKIP LOCKED для инструкций SELECT WITH LOCK, UPDATE и DELETE
- Встроенное незначительное обновление ODS
- Скомпилированный кэш инструкций
- Профайлер для PLSQL и SQL
- WHEN NOT MATCHED BY SOURCE для инструкции MERGE
- Поддержка нескольких строк для DML RETURNING
- Новые встроенные функции и пакеты
- Более плотное сжатие на уровне записи
- Сетевая поддержка прокручиваемых курсоров
6.0 (релиз запланирован на 1 квартал 2026)[6]
[править | править код]В следующем выпуске Firebird обещано множество улучшений, включая поддержку схем, табличных пространств, возможности работы с JSON, набор расширенных функций SQL, значительные обновления системы кэширования, улучшения оптимизатора и многие другие функции.
Примечания
[править | править код]- ↑ 1 2 Open Hub — 2006.
- ↑ 1 2 https://github.com/FirebirdSQL/firebird/blob/master/doc/license/README.license.usage.txt
- ↑ Firebird: The true open source database for Windows, Linux, Mac OS X and more (англ.). Firebird 3.0.11. Архивировано 16 ноября 2023 года.
- ↑ Firebird 4.0.4 Release Notes (англ.). Firebird 4.0.4. Дата обращения: 26 августа 2023. Архивировано 28 августа 2023 года.
- ↑ Firebird 5.0 Release notes (англ.). Firebird 5.0.
- ↑ Firebird 6.0 Roadmap (англ.). Firebird 6.0.
Литература
[править | править код]- Борри Хелен. Firebird. Руководство разработчика баз данных = The Firebird Book: A Reference for Database Developers. — СПб.: «БХВ-Петербург», 2007. — С. 1104. — ISBN 978-5-94157-757-6.
- Helen Borrie. The Firebird Book Second Edition // Volume 2: Developing with Firebird Data. — CreateSpace Independent Publishing Platform, 2013. — С. 532. — ISBN 978-1482767308.
- Helen Borrie. The Firebird Book Second Edition // Volume 3: Administering Firebird Servers and Database. — CreateSpace Independent Publishing Platform, 2013. — С. 444. — ISBN 978-1482768480.
Ссылки
[править | править код]- Firebirdsql — Официальный сайт
Для улучшения этой статьи по информационным технологиям желательно:
|