Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Firebird - это система управления реляционными базами данных SQL с открытым исходным кодом, которая «работает на Linux , Microsoft Windows , macOS и нескольких платформах Unix ». [3] База данных является ответвлением от редакции Borland с открытым исходным кодом InterBase в 2000 году, но начиная с Firebird 1.5 код был в значительной степени переписан. [4]

История [ править ]

Через неделю после того, как Borland выпустила исходный код InterBase 6.0 25 июля 2000 г. [5] [6], на SourceForge был создан проект Firebird . [7] [8] Firebird 1.0 был выпущен для Linux, Microsoft Windows и Mac OS X 11 марта 2002 г. [9] с портами на Solaris , FreeBSD 4 , HP-UX в течение следующих двух месяцев. [10]

Работа по переносу кодовой базы с C на C ++ началась в 2000 году. 23 февраля 2004 года была выпущена Firebird 1.5 [11], которая была первым стабильным выпуском новой кодовой базы. Версия 1.5 включает улучшенный оптимизатор запросов , условные выражения SQL-92 , точки сохранения SQL: 1999 и поддержку явной блокировки . [12] Firebird 2.0 был выпущен 12 ноября 2006 года, [13] добавление поддержки 64-битных архитектур, таблиц , вложенных в ОТ положений и программируемых замков времени ожидания в блокировке транзакций . [14]

Предыдущим стабильным выпуском была версия 2.1.6, в которой были добавлены новые функции, включая процедурные триггеры , рекурсивные запросы и поддержку операторов MERGE SQL: 2003 . [15]

Firebird 2.5 представил новые функции, такие как улучшенная многопоточность , синтаксис регулярных выражений и возможность запрашивать удаленные базы данных. [16]

Самая последняя стабильная версия - Firebird 3.0, выпущенная 19 апреля 2016 года, с упором на производительность и безопасность. Существенная реорганизация кода позволила полностью поддерживать SMP- машины при использовании версии SuperServer. [17]

В рамках Google Summer of Code 2013 началась работа по интеграции Firebird в качестве замены HSQLDB в LibreOffice . [18] [19]

Конфликт имен в Mozilla Firefox [ править ]

В апреле 2003 г. организация Mozilla объявила о переименовании своего веб-браузера с Phoenix в Firebird после спора о товарных знаках с Phoenix Technologies . [20]

Это решение вызвало озабоченность в проекте базы данных Firebird из-за предположения, что пользователи и поисковые системы в Интернете будут сбиты с толку базой данных и веб-браузером, использующим имя Firebird. [21] [22] Разработчики Mozilla опубликовали заявление, [23] разъясняющее, что их программный пакет называется «Mozilla Firebird», а не «Firebird». [24] [25] В заявлении также говорилось, что имя Mozilla Firebird было кодовым названием проекта .

Спор был разрешен 9 февраля 2004 года, когда Mozilla изменила название своего браузера на Mozilla Firefox , что положило конец конфликту. [26] [27] [28]

Основные особенности [ править ]

  • Полная поддержка хранимых процедур и триггеров [29]
  • Полное ACID совместимых транзакций
  • Ссылочная целостность
  • Многопоколенная архитектура (иногда называемая MVCC) [30]
  • Поддержка внешних функций ( UDF )
  • Активность SQL может отправлять клиентам асинхронные события уведомления.
  • Сторонние инструменты, включая инструменты администрирования с графическим интерфейсом пользователя и инструменты репликации.
  • Тщательная запись - быстрое восстановление, нет необходимости в журналах транзакций
  • Многие методы доступа: native / API, драйверы dbExpress / FireDAC [31] , ODBC, OLE DB, поставщик .NET, собственный драйвер JDBC типа 4, модуль Python, [32] PHP, Perl
  • Инкрементальные резервные копии
  • Полная реализация курсора на PSQL

Технология хранения и индексации [ править ]

Архитектура нескольких поколений (MGA) [ править ]

Firebird унаследовал архитектуру хранилища Interbase. Чтобы гарантировать свойства ACID транзакций, ядро ​​базы данных хранит разные версии каждой записи, измененные активными пользователями в базе данных. Когда транзакции фиксируются, последняя версия каждой измененной записи помечается как окончательная. Если транзакции откатываются, ядро ​​базы данных сохраняет отметку на исходных версиях записей, оставляя их нетронутыми. [33] В результате количество операций записи на диск Firebird значительно сокращается по сравнению с базами данных, использующими традиционную архитектуру журнала транзакций. [34] Запись транзакций не препятствует чтению, и наоборот, потому что каждая видит свою версию базы данных. [35] компромиссзаключается в том, что время от времени требуется некоторое обслуживание («очистка»), чтобы очистить старые версии записей и освободить место на диске. [36]

Архитектура с несколькими поколениями гарантирует, что операции OLTP и DSS / OLAP могут выполняться одновременно без задержек, вызванных механизмами блокировки, присутствующими в других продуктах. [37]

Индексы [ править ]

Firebird заставляет все индексы базы данных вести себя как хорошо настроенные «кластерные индексы», используемые другими архитектурами. Сегменты индекса Firebird не подлежат двухфазной блокировке, а логические операции «and» и «или» могут выполняться с промежуточными растровыми изображениями с незначительными затратами, избавляя оптимизатора от необходимости выбирать между альтернативными индексами. [38]

Варианты [ править ]

  • Firebird SuperServer имеет один демон / сервер для всех клиентских подключений, многопоточный с общим кешем
  • Firebird SuperClassic также имеет один демон / сервер для всех клиентских подключений, многопоточный с отдельными кешами.
  • Firebird Classic использует inetd для запуска одной копии сервера на каждое клиентское соединение, рекомендуется для систем SMP, но может иметь проблемы с уведомлением о событиях, если доступ осуществляется через брандмауэр.
  • Firebird Embedded для создания каталогов на компакт-дисках, однопользовательских или ознакомительных версий приложений.

Лицензирование [ править ]

Ядро базы данных Firebird и его модули выпускаются под лицензией с открытым исходным кодом , Первоначальной общественной лицензией разработчика (IDPL), вариантом общественной лицензии Mozilla (MPL) версии 1.1. Он не требует, чтобы разработчик открывал продукты с помощью Firebird или даже пользовательских производных, созданных на основе его исходного кода, но если разработчик решит это сделать, то следует соблюдать некоторые положения и условия. IDPL позволяет разработчику создавать проприетарные приложения с закрытым исходным кодом, использующие Firebird или основанные на нем. [39]

API подключения [ править ]

Низкоуровневый собственный API Firebird, API служб и встроенный SQL [ править ]

Собственный API Firebird используется прямо или косвенно приложениями или промежуточным программным обеспечением, которые подключаются к базе данных Firebird. Он реализован в клиентской библиотеке fbclient.dll в системах Windows и в libfbclient.so в системах Unix. [40]

API служб - это специальный набор функций для доступа и управления задачами администрирования служб, такими как управление пользователями, резервное копирование / восстановление и сбор статистики.

Встроенный SQL - это метод, упрощающий разработку приложений Firebird на C / C ++ и COBOL за счет использования препроцессора gpre, который позволяет встраивать операторы SQL непосредственно в исходный код основного языка. [41]

Награды [ править ]

  • 2007. Премия «Выбор сообщества SourceForge»: лучший проект для предприятий, лучшая поддержка пользователей. [42]
  • 2009. Премия SourceForge Community Choice: лучший проект для предприятий. Финалист «Лучший проект» и «Лучший проект для правительства». [43]

См. Также [ править ]

  • Фонд Жар-Птица
  • Сравнение систем управления реляционными базами данных
  • Список систем управления реляционными базами данных
  • Многоверсионный контроль параллелизма
  • Соответствие SQL

Ссылки [ править ]

  1. ^ "Выпуск 3.0.7" . 20 октября 2020 . Дата обращения 10 ноября 2020 .
  2. ^ "Версия Firebird 4.0 Beta 2 доступна для тестирования" . 14 мая 2020 . Проверено 23 декабря 2020 года .
  3. ^ «Firebird: мощная кроссплатформенная система баз данных SQL» . SourceForge . SourceForge Media, LLC. 25 апреля 2018 . Проверено 2 мая 2018 .
  4. ^ «Примечания к выпуску Firebird 1.5.5» . Проверено 29 сентября 2009 года . Firebird 1.5.5 Общие замечания по его переписыванию с языка C на язык C ++
  5. ^ «Inprise / Borland представляет InterBase 6.0 теперь бесплатно и с открытым исходным кодом для Linux, Windows и Solaris» . 16 июля 2000 года Архивировано из оригинала 6 декабря 2004 года . Проверено 29 января 2009 года .
  6. ^ «Borland.com: Inprise / Borland представляет Interbase 6.0 теперь бесплатно и с открытым исходным кодом для Linux» . Linux сегодня . Проверено 29 января 2009 года .
  7. ^ "История Жар-птицы" . Проверено 14 марта 2014 года .
  8. ^ Пол Ривз. «Что происходит с InterBase» . Группа пользователей Borland. п. 2 . Проверено 14 марта 2014 года .
  9. ^ "Архив новостей сообщества IBPhoenix" . 11 марта 2000 . Проверено 29 января 2009 года .[ постоянная мертвая ссылка ]
  10. ^ "Архив новостей сообщества IBPhoenix" . 11 апреля 2000 . Проверено 29 января 2009 года .[ постоянная мертвая ссылка ]
  11. ^ "Firebird Relational Database 1.5 Final Out" . Slashdot. 23 февраля 2004 . Проверено 31 января 2009 года .
  12. ^ Helen Борри (5 октября 2009). «Примечания к выпуску Firebird 1.5.6» . Проект Firebird . Проверено 10 июня 2012 года .
  13. ^ Дмитрий Еманов. «В Праге запускается финальная версия Firebird 2.0» . Проверено 5 февраля 2009 года .
  14. ^ Helen Борри (5 апреля 2012). «Примечания к выпуску Firebird 2.0.7» . Проверено 10 июня 2012 года .
  15. ^ Helen Борри (20 июля 2014). «Примечания к выпуску Firebird 2.1» . Проверено 20 июля 2014 года .
  16. ^ Helen Борри (19 ноября 2015). «Примечания к выпуску Firebird 2.5.5» . Проверено 19 ноября 2015 года .
  17. ^ Грей, Джеймс (29 июля 2016 г.). "Реляционная база данных Firebird проекта Firebird | Linux Journal" . www.linuxjournal.com . Linux Journal . Архивировано 1 марта 2020 года . Дата обращения 1 марта 2020 .
  18. ^ Мариуз (14 февраля 2012 г.). «Firebird Embedded и LibreOffice - потрясающая комбинация для масштабирования от одного файлового приложения до подхода клиент / сервер» . Firebirdnews.org . Проверено 8 июля 2013 года .
  19. ^ ahunt (28 мая 2013 г.). «GSOC 2013: Коннектор LibreOffice Firebird SQL» . Проверено 8 июля 2013 года .
  20. ^ Dotzler Аса (14 апреля 2003). «Феникс и Минотавр будут переименованы в Жар-птица и Громовая птица» . MozillaZine . MozillaZine . Проверено 29 января +2016 .
  21. ^ Браузер Mozilla становится Firebird , IBPhoenix, заархивировано из оригинала 23 апреля 2003 г. , получено 29 января 2016 г.
  22. Епископ, Алекс (21 апреля 2003 г.). "Интервью с администратором проекта базы данных Firebird Энн Харрисон" . MozillaZine . MozillaZine . Проверено 29 января +2016 .
  23. ^ "Mozilla branding" . Организация Mozilla. 25 апреля 2003 года Архивировано из оригинала 26 апреля 2003 года . Проверено 31 января 2016 года .
  24. Festa, Paul (7 мая 2003 г.). «Жар-птица Mozilla подрезает крылья» . CNET . CBS Interactive . Проверено 29 января +2016 .
  25. Епископ, Алекс (14 мая 2003 г.). «Кристофер Близзард из mozilla.org говорит о конфликте имен Firebird» . MozillaZine . MozillaZine . Проверено 29 января +2016 .
  26. Пол Феста (9 февраля 2004 г.). «Mozilla сдерживает бой в именовании» . CNET . CBS Interactive . Проверено 29 января +2016 .
  27. ^ «Mozilla Firebird переименовал Firefox, выпущена версия 0.8» . MozillaZine . MozillaZine. 9 февраля 2004 . Проверено 29 января +2016 .
  28. ^ «Mozilla Firefox - часто задаваемые вопросы о торговой марке» . mozilla.org . Mozilla Foundation . Проверено 29 января +2016 .
  29. ^ «Познакомьтесь с Firebird за 2 минуты» .
  30. ^ Роман Rokytskyy. «Не очень техническое обсуждение мультиверсионного управления параллелизмом» . Проверено 21 ноября 2011 года .
  31. ^ "Подключиться к Firebird (FireDAC)" .FireDAC
  32. ^ https://pypi.python.org/pypi/fdb/
  33. ^ "Архитектура нескольких поколений (MGA) и управление версиями записей" . HK-Software . Архивировано из оригинала на 1 октября 2011 года . Проверено 14 июля 2011 года .
  34. ^ «Интервью с Джимом Старки из InterBase World» . Марина Новикова, InterBase World . Проверено 14 июля 2011 года .
  35. ^ "Что такое архитектура нескольких поколений (MGA)?" . FAQ по Firebird . Проверено 14 июля 2011 года .
  36. ^ «Ведение базы данных и сборка мусора» . Проект Жар-птица . Проверено 14 июля 2011 года .
  37. ^ "Что такое архитектура нескольких поколений (MGA)?" . FAQ по Firebird . Проверено 14 июля 2011 года .
  38. ^ «Интервью с Джимом Старки из InterBase World» . Марина Новикова, InterBase World . Проверено 14 июля 2011 года .
  39. ^ «Firebird: Первоначальная общественная лицензия разработчика версии 1.0» . Проект Firebird . Проверено 13 июля 2011 года .
  40. ^ "Клиентская библиотека Firebird" . Проект Жар-птица . Проверено 14 июля 2011 года .
  41. ^ «Разработка приложений» . Проект Жар-птица . Проверено 14 июля 2011 года .
  42. ^ "Победители конкурса" Выбор сообщества SourceForge.net 2007 " . SourceForge.net . Проверено 13 июля 2011 года .
  43. ^ "SourceForge.net: 2009 CCA: Победители" . SourceForge.net . Проверено 13 июля 2011 года .

Внешние ссылки [ править ]

  • Firebird - Сайт проекта
  • Firebird - портал для разработчиков
  • Сопоставления Firebird , диаграммы.
  • Документация Firebird от IBProvider
  • FirebirdFAQ
  • FirebirdNews - Новости о Firebird и связанных с ним проектах
  • Руководство по переходу на Firebird 3 - электронная книга
  • Драйвер Firebird Ole Db (альтернатива ODBC)
  • JayBird - драйвер JDBC для Firebird