Firebird для windows 8
Содержание:
- Разработка кроссплатформенных мобильных приложений в Delphi #2
- Навигатор по конфигурации базы 1С 8.3
- История
- Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)
- Тестирование БД мобильного Delphi-приложения
- Компонент TFDTransaction
- Технология хранения и индексирования
- Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: ADO.NET Entity Framework 6
- Firebird: что это за программа и зачем ее используют?
- 2009
- Appendix H: Document History
- Пакет для работы с СУБД Firebird в Laravel
- Добавление поддержки СУБД Firebird в фреймворк Laravel
- Часть 1. Платформа СППР Универсальные алгоритмы
- Шифрование БД под управлением Firebird 3.0
- About Jaybird 4
Разработка кроссплатформенных мобильных приложений в Delphi #2
Часть #1
В предыдущей части цикла мы сделали обзор основных возможностей новой RAD Studio XE5. Сегодня же перейдем к практике. Прежде всего, давайте определимся с задачей.
Постановка задачи
Не смотря на некоторую академичность задачи, в качестве примера мы выбрали кулинарную книгу. А для придания оригинальности разрабатываемому приложению, попытаемся расширить обычный для подобных программ функционал несколькими дополнительными функциями:
Здесь следует оговориться, что в принципе, поваренные книги, как и книги по программированию, могут быть рассчитаны на разный уровень подготовленности читателей. В нашем случае речь идет о «рецептах для чайников», т. е. тех, в которых указывается точное количество продуктов и точное время того или иного действия.
Данное приложение мы реализуем для Windows и для Android. Затем на основе единой базы исходных кодов мы сможем выполнить портирование приложения на MacOS и iOS.
Навигатор по конфигурации базы 1С 8.3
Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3.
Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д.
Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы.
Отображает структуру хранения объектов базы данных, для регистров доступен сервис «Управление итогами».
Платформа 8.3, управляемые формы. Версия 1.1.0.71 от 01.12.2020
3 стартмани
История
Через неделю после того, как 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С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)
Союз-PLM представляет собой полнофункциональный программный комплекс для решения широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства.
На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.
1 стартмани
Тестирование БД мобильного Delphi-приложения
В предыдущем материале «Выбор СУБД для мобильного Delphi-приложения», как следует из его названия, был показан первый этап в разработке той подсистемы приложения, что отвечает за хранение и бо́льшую часть обработки его данных; уточнение про «бо́льшую часть» сделано неспроста, т. к. в итоге обозначенный выбор пал на СУБД Interbase именно из-за возможности применять хранимые процедуры (ХП), которые и стали сосредоточением основной логики по работе с данными, оставляя за Делфи-кодом несложную задачу по их вызову.
Для лучшего понимания необходимости тестирования в данном конкретном случае, нужно отметить, что в описанном проекте изначально была задана довольно высокая планка качества, поддержание которой в части функционала, реализованного в процедурах, достиглось, в том числе, за счёт автотестов, проверяющих ключевые ХП (они ответственны за критический для приложения функционал – ). Именно один из способов организации такого тестирования – на основе DUnitX и XML – и является предметом статьи.
Компонент 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). В данном примере работа с отчётами не рассматривается. |
Технология хранения и индексирования
Multi-Generational Architecture (MGA)
Firebird унаследовала архитектуру хранения Interbase. Для обеспечения ACID-свойств транзакций, механизм работы базы данных хранит различные версии каждой записи, изменённой активными пользователями в базе данных. После завершения транзакции, последняя версия каждой измененной записи помечается как окончательная. В случае отката транзакции, базы данных оставляет отметку на оригинальной версии записи, оставляя данные нетронутыми. В результате этого, количество записей на диск с использованием Firebird сильно уменьшено по сравнению с базами данных, использующими традиционную архитектуру журнала транзакций. Запись транзакций не препятствует чтению и наоборот, потому что каждый пользователь видит свою собственную версию базы данных. Компромисс заключается в том, время от времени требуется удаление старых версий записей и для освобождения дискового пространства.
Multi-Generational Architecture (архитектура с несколькими поколениями) обеспечивает одновременное выполнение операций OLTP и DSS / OLAP без задержек, которые вызывают механизмы блокировки, используемые в других продуктах.
Индексы
В Firebird все индексы базы данных ведут себя как хорошо настроенные «кластерные индексы», используемые другими архитектурами. Индексы Firebird не являются объектами двухфазной блокировки, в следствие чего логические операции «и» и «или» могут выполняться на промежуточных этапах с незначительной стоимостью, исключая необходимость выбора оптимизатором альтернативных индексов.
Создание приложений для СУБД Firebird с использованием различных компонент и драйверов: ADO.NET Entity Framework 6
Tutorial
В данной статье будет описан процесс создания приложений для СУБД Firebird с использованием компонентов доступа Entity Framework и среды Visual Studio 2015. ADO.NET Entity Framework (EF) — объектно-ориентированная технология доступа к данным, является object-relational mapping (ORM) решением для .NET Framework от Microsoft. Предоставляет возможность взаимодействия с объектами как посредством LINQ в виде LINQ to Entities, так и с использованием Entity SQL.
Entity Framework предполагает три возможных способа взаимодействия с базой данных:
- Database first: Entity Framework создаёт набор классов, которые отражают модель конкретной базы данных.
- Model first: сначала разработчик создаёт модель базы данных, по которой затем Entity Framework создаёт реальную базу данных на сервере.
- Code first: разработчик создаёт класс модели данных, которые будут храниться в БД, а затем Entity Framework по этой модели генерирует базу данных и её таблицы
В своём приложении мы будем использовать подход Code First, однако вы без труда сможете использовать и другие подходы.
Наше приложение будет работать с базой данных, модель которой представлена на рисунке ниже.
Внимание!
Эта модель является просто примером. Ваша предметная область может быть сложнее, или полностью другой
Модель, используемая в этой статье, максимально упрощена для того, чтобы не загромождать описание работы с компонентами описанием создания и модификации модели данных.
Firebird: что это за программа и зачем ее используют?
Firebird – среда для управления и работы с базами данных. Программа кроссплатформенная, подходит для всех настольных ОС. Используется для построения баз данных в промышленных системах. С 2001-го года программа распространяется на бесплатной основе.
Характеристики и возможности
Разберем подробнее, на что способна программа.
Основные особенности:
Открытый код | Программу можно использовать бесплатно как для приложений с открытым кодом, так и для коммерческих целей. |
Малый вес | Firebird не занимает много места на жестком диске. При этом, она работает с базами в сотни раз превышающими ее размер. |
Распространенность | Firebird собрала вокруг себя сообщество энтузиастов. В любой момент пользователи получают актуальную информацию о ее работе. |
Построение баз данных в режиме «только для чтения» | СУБД может распространять данные на съемных носителях. |
Копирование «на лету» | При резервном копировании не нужно останавливать работу сервера. Технология копирования предполагает сохранение базы в момент создания копии. Процесс не мешает работе сервера. |
Преимущества СУБД:
- софт совместим со всеми актуальными ОС;
- не требует настройки и отладки. Запускается непосредственно после установки;
- работает в автоматическом режиме;
- расширение функций за счет внешнего функционала;
- установщик не занимает много места;
- поддерживаются хранимые процедуры и триггеры;
- записи различных версий обрабатываются параллельно с остальными;
- триггеры создаются на SQL;
- нет необходимости в участии системных администраторов;
- поддержка широкого набора языков кодировки.
Не обошлось без минусов. Среди основных такие:
- Отсутствует кэш. Не отслеживается история запросов.
- Замедление работы с увеличением внутренней фрагментации базы.
Установка и работа
Помимо самой СУБД, для полноценной работы потребуется IBExpert:
- Софт скачивается с официального сайта.
- Затем устанавливаем Firebird. После установки, СУБД автоматически запускается при включении компьютера.
Совет! 19 апреля 2016 года стала доступна версия Firebird 3.0. Кратко ознакомится с новыми возможностями можно здесь.
Работа начинается с запуска IBExpert. При первом запуске появится запрос об использовании многотипных элементов интерфейса. Если выбрать многотипный режим, интерфейс копирует инструментарий DELPHI.
Для создания первой базы, выбираем:
- «База данных»;
- затем жмем «Создать»;
- и выбираем «Локальный сервер».
Для работы программа потребует пароль. У Firebird пароль по умолчанию
masterkey
Теперь вы приступите к созданию первого проекта.
Детальная инструкция по работе с базой показана на видео.
Удаление
Первый шаг – остановка программы. Открываем СУБД, запускаем Firebird Server Control, и нажимаем «Stop». После того, как работа остановлена, можно переходить к удалению:
- Через «Панель управления» переходим в меню «Установка и удаление программ».
- В данном окне выделяем СУБД, и в списке действий выбираем «Удалить».
- Подтверждая действие, избавляемся от компонентов программы.
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)
Appendix H: Document History
The exact file history is recorded in our git repository; see https://github.com/FirebirdSQL/firebird-documentation
Revision History | |||
---|---|---|---|
1.3 |
13 Jun 2020 |
MR |
Various minor changes in copy and styling while checking migrating the German version to AsciiDoc |
1.2 |
6 Jun 2020 |
MR |
|
1.1 |
1 Jun 2020 |
MR |
Conversion to AsciiDoc. |
1.001 |
22 Jan 2018 |
H.E.M.B. |
Updated the file history link at the top of this chapter to reflect the migration of the Doc source tree to Github. Typos fixed/updates by M. Rotteveel Dec. 2017/Jan. 2018
|
1.000 |
11 Aug 2017 |
H.E.M.B. |
There have been no further changes to the content during the final review period. |
0.906 |
11 Aug 2016 |
H.E.M.B. |
Several revisions were published during the year, as a Beta 1, with reviews of various sections by Paul Vinkenoog, Aage Johansen and Mark Rotteveel. |
0.900 |
1 Sep 2015 |
H.E.M.B. |
Original was in Russian, translated by Dmitry Borodin (MegaTranslations). This revision distributed as a PDF build only, for review by Dmitry Yemanov, et al. Reviewers, please pay attention to the comments like this: Editor’s note :: The sky is falling, take cover! |
Пакет для работы с СУБД Firebird в Laravel
Привет Хабр! В прошлой статье я рассказывал о том, как можно добавить поддержку Firebird в Laravel. На тот момент я не знал о существовании пакета jacquestvanzuydam/laravel-firebird и добавлял поддержку Firebird с нуля. Сделано это было через модификацию файлов ядра Laravel, за что я был справедливо раскритикован. Посмотрев пакет jacquestvanzuydam/laravel-firebird, я понял, что его возможности меня не устраивают, и решил расширить его.
В этой статье я хочу описать основные функциональные отличия моего пакета sim1984/laravel-firebird от пакета jacquestvanzuydam/laravel-firebird.
Добавление поддержки СУБД 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.
Часть 1. Платформа СППР Универсальные алгоритмы
Приветствую, уважаемое сообщество!
Забегая вперед прошу прощения у тех, кто ожидает новизны или революционных идей. Их тут нет. Но есть вполне хорошая прикладная система.
Системы поддержки принятия решений сейчас набирают обороты. Причем я не буду особо останавливаться на перечислении способов реализации. Оговорюсь только об основных свойствах. Я бы очень упрощенно и обобщенно назвал эти системы вероятностными. То есть они выдают рекомендации с известной долей вероятности используя накопленную и проанализированную статистику. Не скажу что это плохо. Тема BigData и Machine learning нынче в тренде. Так же эти системы работают по принципу черного ящика. Поэтому проверить достоверность работы заложенной модели не всегда можно выявить.
Шифрование БД под управлением Firebird 3.0
Из песочницы
В современном информационном мире, информация играет значительную роль в жизни человека, общества и государства. Рост размера накапливаемых и обрабатываемых данных подымает вопросы об их хранении и обеспечении конфиденциальности. Уже существует немало технических решений и предложений для решения подобных задач. Среди них конечно же есть и системы управления базами данных (СУБД) которые поддерживают шифрование хранимых данных. Вот об одном из таких решений и пойдёт речь.
В апреле 2016 года вышла новая версия СУБД Firebird под номером 3. Из нововведений, среди прочего, появилось и немало механизмов защиты хранимых и передаваемых данных. Там есть и защита канала передачи данных, есть управление пользователями, а также есть шифрование самой БД, которое реализовано как прозрачное шифрование на уровне страниц данных. Реализуется это всё с помощью написания специальных расширений для Firebird. Можно конечно и самому разобраться и написать эти расширения, но почему бы не взять существующие. Тем более, что для написания, как минимум, нужно понимать в криптографии, иметь на вооружении знания какого-нибудь криптографического пакета и разобраться с новым С++ Firebird API.
About Jaybird 4
Jaybird 4 is — compared to Jaybird 3 — an incremental release that builds on the foundations of Jaybird 3. The focus of this release has been on further improving JDBC support and adding support for the new data types and features of Firebird 4.
The main new features are:
Jaybird 3.0
- Release Date: May 22, 2020
- File Name: Jaybird-3.0.9-JDK_1.8.zip
- Description: Jaybird 3.0.9 for Java 8 / JDBC 4.2, zip kit (also suitable for Java 9 and higher)
- Release Date: May 22, 2020
- File Name: Jaybird-3.0.9-JDK_1.7.zip
- Description: Jaybird 3.0.9 for Java 7 / JDBC 4.1, zip kit
Jaybird 3.0.9 released.
The following has been changed or fixed since Jaybird 3.0.8
The release is also available on maven(*):
groupId:
artifactid: *
version:
* The depends on your target Java version: , or
- Jaybird 3.0.x javadoc
- Jaybird JDBC Driver Java Programmer’s Manual