Firebird для windows 7
Содержание:
- 2011
- Компонент TFDConnection
- Шифрование БД под управлением Firebird 3.0
- Часть 1. Платформа СППР Универсальные алгоритмы
- 2009
- Технология хранения и индексирования
- Установка Firebird — выбор типа сервера
- Установка и работа программы
- История
- Набор подсистем «Умные таблицы»
- Можно ли установить 2 разных сервера на один компьютер
- Как сделать разный часовой пояс в разных базах данных на одном сервере
- Создание web приложения на PHP с иcпользованием Firebird и Laravel
- Обзор драйверов для работы с Firebird
- Компонент TFDTransaction
- Добавление поддержки СУБД Firebird в фреймворк Laravel
- Зачем нужен Firebird
- Заключение
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.
Компонент TFDConnection
Путь к клиентской библиотеке
Важно!
Если вы компилируете 32 разрядное приложение, то вы должны использовать 32 разрядную библиотеку fbclient.dll. Для 64 разрядного – 64 разрядную
Помимо файла fbclient.dll в ту же папку желательно поместить библиотеки msvcp80.dll и msvcr80.dll (для Firebird 2.5), и msvcp100.dll и msvcr100.dll (для Firebird 3.0). Эти библиотеки можно найти либо в подпапке bin (Firebird 2.5), либо в корневой папке сервера (Firebird 3.0).
Для того чтобы приложение правильно отображало собственные ошибки firebird, необходимо также скопировать файл firebird.msg. Для Firebird 2.5 и в более ранних версиях он должен находиться на один уровень выше каталога клиентской библиотеки, т.е. в нашем случае в каталоге приложения. Для Firebird 3 он должен находиться в каталоге клиентской библиотеки, т.е. в каталоге fbclient.
Совет Даже если ваше приложение будет работать с Firebird в режиме Embedded, разработку удобнее вести под полноценным сервером. Дело в том, что в режиме Embedded Firebird работает в одном адресном пространстве с вашим приложением, что может привести к нежелательным последствиям при возникновении ошибок в вашем приложении. Кроме того, в момент разработки среда Delphi и ваше приложение являются отдельными приложениями, использующими Embedded. До версии 2.5 они не могут работать с одной базой одновременно. |
Параметры подключения
Параметр | Назначение |
---|---|
Pooled | Используется ли пул соединений. |
Database | Путь к базе данных или её псевдоним, определённый в файле конфигурации aliases.conf (или databases.conf) сервера Firebird. |
User_Name | Имя пользователя. |
Password | Пароль. |
OSAuthent | Используется ли аутентификация средствами операционной системы. |
Protocol | Протокол соединения. Допускаются следующие значения:
|
Server | Имя сервера или его IP адрес. Если сервер работает на нестандартном порту, то необходимо также указать порт через слэш, например localhost/3051. |
SQLDialect | Диалект. Должен совпадать с диалектом базы данных. |
RoleName | Имя роли. |
CharacterSet | Имя набора символов соединения. |
ConnectedLoginPromptTransactionUpdateTransaction
Замечание На самом деле общие настройки обычно находятся в %AppData%\Manufacture\AppName и сохраняются туда инсталятором приложения. Однако при разработке удобно чтобы файл настроек лежал где-нибудь поближе, например, в папке с приложением. Учтите, что если ваше приложение будет устанавливаться в папку Program Files и файл настройки будет лежать там же, то либо этот файл будет виртуализироваться в Program Data, либо будут проблемы с его модификацией и последующим чтением новых настроек. |
Шифрование БД под управлением Firebird 3.0
Из песочницы
В современном информационном мире, информация играет значительную роль в жизни человека, общества и государства. Рост размера накапливаемых и обрабатываемых данных подымает вопросы об их хранении и обеспечении конфиденциальности. Уже существует немало технических решений и предложений для решения подобных задач. Среди них конечно же есть и системы управления базами данных (СУБД) которые поддерживают шифрование хранимых данных. Вот об одном из таких решений и пойдёт речь.
В апреле 2016 года вышла новая версия СУБД Firebird под номером 3. Из нововведений, среди прочего, появилось и немало механизмов защиты хранимых и передаваемых данных. Там есть и защита канала передачи данных, есть управление пользователями, а также есть шифрование самой БД, которое реализовано как прозрачное шифрование на уровне страниц данных. Реализуется это всё с помощью написания специальных расширений для Firebird. Можно конечно и самому разобраться и написать эти расширения, но почему бы не взять существующие. Тем более, что для написания, как минимум, нужно понимать в криптографии, иметь на вооружении знания какого-нибудь криптографического пакета и разобраться с новым С++ Firebird API.
Часть 1. Платформа СППР Универсальные алгоритмы
Приветствую, уважаемое сообщество!
Забегая вперед прошу прощения у тех, кто ожидает новизны или революционных идей. Их тут нет. Но есть вполне хорошая прикладная система.
Системы поддержки принятия решений сейчас набирают обороты. Причем я не буду особо останавливаться на перечислении способов реализации. Оговорюсь только об основных свойствах. Я бы очень упрощенно и обобщенно назвал эти системы вероятностными. То есть они выдают рекомендации с известной долей вероятности используя накопленную и проанализированную статистику. Не скажу что это плохо. Тема BigData и Machine learning нынче в тренде. Так же эти системы работают по принципу черного ящика. Поэтому проверить достоверность работы заложенной модели не всегда можно выявить.
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)
Технология хранения и индексирования
Multi-Generational Architecture (MGA)
Firebird унаследовала архитектуру хранения Interbase. Для обеспечения ACID-свойств транзакций, механизм работы базы данных хранит различные версии каждой записи, изменённой активными пользователями в базе данных. После завершения транзакции, последняя версия каждой измененной записи помечается как окончательная. В случае отката транзакции, базы данных оставляет отметку на оригинальной версии записи, оставляя данные нетронутыми. В результате этого, количество записей на диск с использованием Firebird сильно уменьшено по сравнению с базами данных, использующими традиционную архитектуру журнала транзакций. Запись транзакций не препятствует чтению и наоборот, потому что каждый пользователь видит свою собственную версию базы данных. Компромисс заключается в том, время от времени требуется удаление старых версий записей и для освобождения дискового пространства.
Multi-Generational Architecture (архитектура с несколькими поколениями) обеспечивает одновременное выполнение операций OLTP и DSS / OLAP без задержек, которые вызывают механизмы блокировки, используемые в других продуктах.
Индексы
В Firebird все индексы базы данных ведут себя как хорошо настроенные «кластерные индексы», используемые другими архитектурами. Индексы Firebird не являются объектами двухфазной блокировки, в следствие чего логические операции «и» и «или» могут выполняться на промежуточных этапах с незначительной стоимостью, исключая необходимость выбора оптимизатором альтернативных индексов.
Установка Firebird — выбор типа сервера
Сервер Firebird SQL доступен в 3-х вариантах:
- Firebird Super Server
- Firebird Classic Server
- Firebird Embedded
Firebird Super Server
Firebird Super Server — все клиентские подключения обслуживаются одним серверным процессом, имеется общий клиентский кеш. За счет этого достигается меньший расход ресурсов на обслуживание клиентов. Недостатком Firebird Super Server является отсутствие возможности задействовать несколько процессоров для работы Firebird сервера.
Firebird Classic Server
Firebird Classic Server — на каждое клиентское подключение создает отдельный серверный процесс. Архитектура Firebird Classic Server более надежна, т.к. сбой одного серверного процесса не вызывает отказ в обслуживании всех клиентов. Кроме того, Firebird Classic позволяет задействовать многопроцессорную архитектуру. При установке Firebird вы можете выбрать между версиями Firebird Super Server или Firebird Classic Server.
Firebird Embedded
Firebird Embedded Server — предназначен для встраиваемых баз данных. Состоит из одной dll — fbembed.dll, которая включает в себя клиент и сервер Firebird Super Server. Firebird Embedded не требует установки на клиентской рабочей станции. Достаточно просто скопировать fbembed.dll и еще несколько файлов клиенту на компьютер.
Недостаток Firebird Embedded — это невозможность одновременного подключения к одной БД нескольких клиентов. После успешного подключения Firebird Embedded блокирует файл базы данных для монопольного доступа.
Firebird Embedded Server распространяется отдельным дистрибутивом.
Скачать архив с Firebird Embedded.
Если затрудняетесь с выбором
Если вы не уверены в выборе типа установки Firebird, то используйте Firebird Super Server. В дальнейшем вы без труда сможете изменить архитектуру сервера.
Установка и работа программы
Несмотря на то, что Firebird является мощной СУБД и может работать с достаточно большими базами данных и с сотнями пользователей, её инсталлятор весит обычно не более 7 Мб (в зависимости от версии операционной системы), программа не займёт много места на жёстком диске. Процесс инсталляции выполняется в автоматическом режиме, так что с этим трудностей не возникает. Софт не требует настройки, запускается сразу после установки и работает в автоматическом режиме без участия в процессе системных администраторов.
Как запустить приложение Firebird
Когда Firebird выполняется как приложение, в системном трее будет видна его иконка, вид которой зависит от того, запущен только сервер или он контролируется Guardian. Управление посредством службы Guardian рекомендовано при выполнении Суперсервера, в случае с Классическим сервером Guardian не требуется, её можно не ставить при инсталляции.
Запускает Firebird инсталлятор, но если сервер не был запущен или инициализирован, до установки автоматического старта запускать или инициализировать его придётся вручную. Это можно сделать через Пуск – Все программы – Firebird или с командной строки. Команда для старта Guardian fbguard.exe -a или ibguard.exe -а (для версии 1.0.x), для запуска Суперсервера напрямую следует набрать fbserver.exe -a или ibserver.exe -а (для версии 1.0.x). Для Классического сервера также можно вызвать окно командной строки, перейти в каталог in и ввести fb_inet_server.exe -a. Если при установке софта выбран режим «Use Guardian», запустить службу можно из того же каталога командой fbguard.exe -с -a.
Как пользоваться Firebird
Кроме СУБД для полноценного функционирования нужна также IBExpert, оболочка, требуемая для разработки и администрирования. Она, как и Firebird Server, идёт в связке с программой. После того, как скачали инсталлятор с официального ресурса, начинаем установку. От пользователя требуется минимальное участие, инсталляция выполнится автоматически. По умолчанию настроен автоматический запуск, который будет осуществляться при каждом старте компьютера.
Чтобы начать работу, нужно запустить IBExpert, при первом старте оболочки потребуется ответить на запрос об использовании многотипных элементов интерфейса. В случае согласия интерфейс скопирует набор инструментов DELPHI.
Выполняем следующие действия, чтобы создать первую базу:
- В главном меню выбираем «База данных».
- Жмём «Создать».
- В новом окне в пункте «Сервер» выбираем «Локальный».
После этого потребуется выбрать место хранения базы данных, прочие параметры будут заполнены автоматически. Для пользователя с логином SYSDBA применяется пароль по умолчанию masterkey. Чтобы сохранить настройки, жмём «Ок».
В Firebird поддерживаются типы данных SQL, кроме того введены динамически изменяемые большие двоичные данные и многомерные однородные массивы. Доступные типы данных зависят от версии СУБД. Значения определяются для каждого столбца в таблице Firebird, они указывают на характеристики данных и определяют, какие операции могут выполняться с ними, а также какое дисковое пространство занимают элементы.
Откуда Firebird попал к вам на компьютер
Если вы не качали конкретно Firebird, софт мог установиться вместе с другой программой, использующей его для корректного функционирования. В таком случае удалять Firebird не следует, поскольку такие действия приведут к неприятным последствиям в виде отказа работы программного обеспечения, которое обращается к СУБД.
История
Через неделю после того, как Borland выпустила СУБД InterBase 6.0 25 июля 2000 года, из её исходников на SourceForge появился проект Firebird. СУБД Firebird 1.0 была выпущена для Linux, Microsoft Windows и Mac OS X 11 марта 2002 года, а позже, в течение следующих двух месяцев, появились порты на Solaris, FreeBSD 4 и HP-UX.
В 2000 году началась работа по портированию кодовой базы с C на C ++.
23 февраля 2004 года была выпущена Firebird 1.5, она стала первой стабильной версией, сделанной на новой кодовой базе. Версия 1.5 отличалась улучшенным оптимизатором запросов, условными выражениями SQL-92, точками сохранения SQL: 1999 и поддержкой явной блокировки.
12 ноября 2006 года была выпущена Firebird 2.0, в новой версии появилась поддержка 64-разрядных архитектур, таблиц, вложенных в предложения FROM, и программируемых тайм-аутов блокировки при блокировании транзакций.
В Firebird 2.5 были представлены новые функции, такие как улучшенная многопоточность, синтаксис регулярных выражений и возможность запроса удаленных баз данных.
Крайняя стабильная версия — Firebird 3.0, выпущенная 19 апреля 2016 года, была сделана с упором на производительность и безопасность. Основная реорганизация кода позволила полностью поддерживать SMP-машины при использовании версии SuperServer.
На Google Summer of Code 2013 началась работа по интеграции Firebird, как замены HSQLDB в LibreOffice.
Конфликт имён с Mozilla Firefox
В апреле 2003 года организация Mozilla объявила о переименовании своего веб-браузера из Phoenix в Firebird после спора с торговой маркой Phoenix Technologies.
Это решение вызвало беспокойство в рамках проекта базы данных Firebird из-за предположения, что у пользователей и поисковых систем может возникнуть путаница между базой данных и веб-браузером, называющимися Firebird. Разработчики Mozilla ответили заявлением, в котором ясно сказано, что их программный пакет назывался «Mozilla Firebird», а не «Firebird». В заявлении также говорится, что имя Mozilla Firebird было кодовым именем проекта. Спор был решен 9 февраля 2004 года, когда Mozilla изменила имя своего браузера на Mozilla Firefox, тем самым прекратив конфликт.
Набор подсистем «Умные таблицы»
Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.
1 стартмани
Можно ли установить 2 разных сервера на один компьютер
Если речь идет об одновременной работе этих серверов, то теоретически — да. Практически это зависит от версий, которые вы собираетесь использовать. Например, одновременно запустить два сервера IB 6.0 на одном компьютере нельзя.
Каждая версия сервера использует свои собственные:
- настройки и пути в registry
- системные объекты (mutex, семафоры и т.п.)
- конфигурационный файл
Например, Firebird 1.5, Yaffil и InterBase 7.x сейчас имеют свои собственные вышеперечисленные характеристики. Единственный конфликтный параметр — это номер порта, используемый клиентом и сервером для работы по TCP. Соответственно, при одновременном запуске этих серверов нужно знать, что только клиентские части FB и Yaffil могут принимать альтернативный номер порта в строке коннекта (например, srv/3070:c:\dir\data.gdb). А на сервере номер порта, используемого конкретным сервером, устанавливается: Firebird 1.5 — в firebird.conf, Firebird 1.0 — services, InterBase — services, Yaffil — ключи командной строки ibserver.exe (это на Windows. На Linux разводка по портам осуществляется конфигурированием inetd/xinetd).
Будьте осторожны при запуске двух серверов одновременно — если вы перепутаете и откроете базу не тем сервером (если базы имеют одинаковый ods), то возможны проблемы при дальнейшей работе правильной комбинации сервер+база данных (несовместимый код BLR процедур или триггеров и т.п.).
Как сделать разный часовой пояс в разных базах данных на одном сервере
Уважаемые Хабравчане, решил поделиться с Вами техническим решением некоторых интересных и на первый взгляд не очевидных проблем. Всю жизнь я в основном только черпал информацию, читал замечательные статьи (в том числе на Хабре) очень помогавшие мне в решении тех или иных технических проблем. Но в последние 2 года, занявшись разработкой своей облачной платформы для автоматизации предприятий, мне пришлось решать довольно много задач “впервые”, т.е. которые если кто-то и решал, то описания (даже близко) я не находил. В связи с этим я решил написать 3 цикла статей: цикл по базам данных, цикл по безопасности и цикл по системам автоматизации. Эта статья — первая статья первого цикла.Краткая формулировка задачи: каким-то образом current_date, current_time и current_timestamp должны выдавать дату-время в зависимости от настроек в аккаунте пользователя и при этом на самом сервере будет стоять московское время.
Система задумывалась неограниченно масштабируемая, с огромным числом потенциальных пользователей в любом регионе нашей необъятной страны, в какой-то момент встал вопрос, а удобно ли будет пользователям, например во Владивостоке, работать в системе с московским временем
Сервера то находятся в Москве, на них стоит московское время, при этом каждому пользователю (не важно, из какого он региона) выделяется несколько своих (индивидуальных) баз данных и все они находятся, грубо говоря, на одном сервере. Делать под каждый часовой пояс свой сервер глупо, да и не возможно с точки зрения концепции системы, ибо любой пользователь в любой момент может часовой пояс поменять.
Создание web приложения на PHP с иcпользованием Firebird и Laravel
Tutorial
Привет Хабр!
В прошлой статье я рассказывал о пакете для поддержки СУБД Firebird в фреймворке Laravel. На этот раз мы рассмотрим процесс создания web приложения с использованием СУБД Firebird на языке PHP с использованием Laravel.
Обзор драйверов для работы с Firebird
В PHP есть два драйвера для работы с СУБД Firebird:
- Расширение Firebird/Interbase (ibase_ функции);
- PDO драйвер для Firebird.
Обзор расширения Firebird/Interbase
Расширение Firebird/Interbase появилось раньше и является наиболее проверенным. Для установки расширения Firebird/Interbase в конфигурационном файле php.ini необходимо раскомментировать строку
или для UNIX подобных систем строку
Это расширение требует, чтобы у вас была установлена клиентская библиотека fbclient.dll/gds32.dll (для UNIX подобных систем fbclient.so) соответствующей разрядности.
Замечание для пользователей Win32/Win64 Для работы этого расширения системной переменной Windows PATH должны быть доступны DLL-файлы fbclient.dll или gds32.dll. Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: fbclient.dll или gds32.dll. |
Компонент TFDTransaction
Параметр
Назначение
Connection
Связь с компонентом FDConnection.
Options.AutoCommit
Управляет автоматическим стартом и завершением транзакции. Значение по умолчанию True.
Если значение этого свойства установлено в True, то FireDAC делает следующее:Запускается транзакция (если требуется) перед выполнением каждой SQL команды, и завершает транзакцию после выполнения SQL команды. Если команда выполнится успешно, то транзакция будет завершена как COMMIT, иначе — ROLLBACK.
Если приложение вызывает метод StartTransaction, то автоматическое управление транзакциями будет отключено, до тех пор, пока транзакция не завершится как Commit или Rollback.
В Firebird автоматическое управление транзакциями эмулируется самими компонентами FireDAC.
Options.AutoStart
Управляет автоматическим запуском транзакции. По умолчанию True.
Options.AutoStop
Управляет автоматическим завершением транзакции. По умолчанию True.
Options.DisconnectAction
Действие, которое будет выполнено при закрытии соединения, если транзакция активна. Значение по умолчанию xdCommit. Возможны следующие варианты:xdNone – ничего не будет сделано. Действие будет отдано на откуп СУБД;
xdCommit – подтверждение транзакции;
xdRollback – откат транзакции.
В других компонентах доступа значение по умолчанию для подобного свойства xdRollback. Поэтому необходимо выставлять это свойство вручную в то значение которое действительно требуется.
Options.EnableNested
Управляет вложенными транзакциями. Значение по умолчанию True.
Когда транзакция активна, то следующий вызов StartTransaction создаст вложенную транзакцию. FireDAC эмулирует вложенные транзакции, используя точки сохранения, если СУБД не поддерживает вложенные транзакции в явном виде. Чтобы отключить вложенные транзакции, установите EnableNested в False и следующий вызов StartTransaction вызовет исключение.
Firebird не поддерживает вложенные транзакции в явном виде.
Options.Isolation
Определяет уровень изолированности транзакции
Это самое важное свойство транзакции. Значение по умолчанию xiReadCommited
Возможны следующие варианты:xiUnspecified – используется уровень изоляции по умолчанию для вашей СУБД (в Firebird это SNAPSHOT, т.е. с параметрами read write concurrency wait);
xiDirtyRead – этого уровня изолированности в Firebird не существует поэтому вместо него будет использован READ COMMITED;
xiReadCommited – уровень изолированности READ COMMITED. В Firebird такая транзакция стартует с параметрами read write read_committed rec_version nowait;
xiRepeatableRead – этого уровня изолированности в Firebird не существует поэтому вместо него будет использован SNAPSHOT;
xiSnapshot – уровень изолированности SNAPSHOT. В Firebird такая транзакция стартует с параметрами read write concurrency wait;
xiSerializable – уровень изолированности SERIALIZABLE. На самом деле в Firebird не существует транзакции с данным уровнем изолированности, но он эмулируется запуском транзакции с параметрами read write consistency wait.
Options.Params
Специфичные для СУБД параметры транзакции. В настоящее время используется только для Firebird и Interbase. Возможные значения:read
write
read_committed
concurrency
consistency
wait
nowait
rec_version
no rec_version
Options.ReadOnly
Указывает является ли транзакция только для чтения. По умолчанию False. Если установлено в True, то любые изменения в рамках текущей транзакции невозможны, в Firebird в этом случае отсутствует значение read в параметрах транзакции.
Установка этого свойства в True позволяет СУБД оптимизировать использование ресурсов.
Замечание Такую транзакцию нельзя использовать для отчётов (особенно если они используют несколько последовательных запросов), потому что транзакция с режимом изолированности READ COMMITED во время перечитывания данных будет видеть все новые committed-изменения. Для отчётов рекомендуется использовать короткую транзакцию только для чтения с режимом изолированности SNAPSHOT (Options.Isolation = xiSnapshot и Options.ReadOnly= True). В данном примере работа с отчётами не рассматривается. |
Добавление поддержки СУБД Firebird в фреймворк Laravel
Во время написания примера (позже будет ссылка) веб-приложения на PHP с использованием СУБД Firebird возник вопрос выбора фреймворка для разработки с использованием архитектурной модели MVC. Выбор фреймворков под PHP очень большой, но наиболее удобным, простым и легко расширяемым показался Laravel. Однако этот фреймворк не поддерживал из коробки СУБД Firebird. Laravel использует для работы с базой данных драйвера PDO. Поскольку для Firebird существует драйвер PDO, то это натолкнуло меня на мысль, что можно с некоторыми усилиями заставить работать Laravel c Firebird.Laravel — бесплатный веб-фреймворк с открытым кодом, предназначенный для разработки с использованием архитектурной модели MVC (англ. Model View Controller — модель-представление-контроллер). Laravel – это удобный и легко расширяемый фреймворк для построения ваших веб-приложений. Из коробки фреймворк Laravel поддерживает 4 СУБД: MySQL, Postgres, SQLite и MS SQL Server. В этой статье я расскажу как добавить ещё одну СУБД Firebird.
Зачем нужен Firebird
Рассмотрим, что это за программа, какие функциональные возможности предлагает Firebird, а также что особенного в данном ПО.
Firebird – это бесплатная система управления базами данных (СУБД) с открытым исходным кодом. Это означает, что получить доступ к исполняемому коду ПО и внести свои коррективы сможет каждый, кто захочет самостоятельно адаптировать программу под определённые задачи. Софт распространяется бесплатно, кроме того он совместим со всеми актуальными на сегодня платформами, такими как Windows, Linux, MacOS, Unix-системами и прочими.
ПО может охватывать разные сферы деятельности и применяться как в государственных, так и частных организациях. Благодаря открытому исходному коду СУБД используется разработчиками многих коммерческих и бесплатных продуктов. Так, например, Firebird может быть задействована программами бухгалтерского и управленческого учётов, организационной, экономической деятельности предприятий и т. д. При удалении Firebird, использующая её программа не сможет функционировать, выдавая ошибку доступа к базе данных.
Выполняемые запросы разного характера в Firebird не блокируют друг друга, что позволяет им выполняться одновременно, а резервное копирование баз не требует остановки сервера, не мешает работе и совершается незаметно для пользователя.
Заключение
В ходе данной работы были рассмотрены основные особенности базы данных Firebird, а также была произведена ее установка на ОС Ubuntu 17. Был продемонстрирован процесс создания простой базы данных с помощью isql.
На основе проделанной работы можно сделать вывод о том, что Firebird является довольно простой базой данных, работа с которой происходит через SQL, что добавляет удобства при переходе с любой другой базы данных, которая работает с языком SQL. В сравнении с MySQL, как с другой SQL базой данных с открытым исходным кодом, Firebird является менее удобной при работе и доставляет гораздо больше проблем при установке. Если для установки MySQL достаточно одного apt-get, до у Firebird пришлось потратить некоторое время для того, чтобы разобраться, почему база данных не хочет устанавливаться, либо не хочет работать после установки. Однако у Firebird есть некоторые плюсы, которые связаны с потребностью тех, кто им пользуется, например, эта база данных занимает меньше места в сравнении с MySQL и поддерживает большее количество платформ, что может оказаться для кого-то более нужным, чем некоторые функции, которые есть в MySQL, но отсутствуют в Firebird.