Firebird что это за программа

Содержание:

История

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

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

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

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

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

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

Конфликт имен Mozilla Firefox

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

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

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

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.

Интеграция 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 стартмани

Установка Firebird

1.   Диски куда будет устанавливаться FirebirdSQL cервер Firebird и любые базы данных которые вы создаете или к которым подключаетесь должны распологаться на жестком диске, который физически подключен к хост-компьютеру. Вы не можете расположить файлы сервера или любой другой базы данных на mapped drive, filesystem share или сетевой файловой системе.
Вы можете подключиться к базе данных расположенной на CD-ROM (в режиме чтения), но вы не можете запустить с него SQL сервер Firebird и не сможете обновить данные в базе.

2. Установочный скрипт или программа
Несмотря на то, что есть возможность установить Firebird простым копированием файлов, такая как «untarring» файла билда или распаковка .zip-файла, но при первой установке очень рекомендуется использование распространяемого комплекта ПО. Исполняемый файл установки под Windows, RPM-пакет (RedHat Package Manager) под Linux и официальный файл tar.gz для других POSIX-платформ.

2.1.  Платформа Windows
На серверных версиях Windows — Windows NT, 2000, ХР и Vista сервис Firebird запустится после завершения установки. После перезагрузки вашего компьютера он запустится автоматически.

Несерверные версии Windows — Windows 95, 98 и ME, не поддерживают сервисы. SQL cервер Firebird будет работать как приложение, защищенное другим приложением известное как Guardian. Если серверное приложение по какой-то причине завершилось неправильно, то Guardian попробует перезапустить его.
Копия клиентской библиотеки — fbclient.dll или gds32.dll будет установлена в системную директорию Windows.
2.2.  POSIX-платформы
В любом случае прочитайте release notes относящиеся к той версии Firebird которую вы собираетесь устанавливать. В них могут быть значительные отличия от релиза к релизу любой POSIX-совместимой операционной системы, в особенности относящиеся к категории open source. Где возможно, инженеры создающие билды для каждой версии Firebird, документируют любую известную проблему.
Если в вашем комплекте ПО нет копии release notes, то сходите на download-страницу веб-сайта Firebirdи скачайте копию оттуда.
Проще всего осуществить установку с использованием портов. Если порт под Firebird (InterBase) отсутствует его достаточно просто скачать в Интернете и установить в систему. На примере Freebsd. Заходим в /usr/ports/databases/firebird-server-xx (где хх — версия Firebird (InterBase)) и набираем make install. Все должно установиться. После чего аналогично поступаем с /usr/ports/databases/firebird-clientr-xx. В других Unix-овых системах установка через порты примерно такая же.
Если у вас есть дистрибутив Linux поддерживающий установку из RPM-пакетов, то, если необходимо, прочитайте соответствующую документацию для инструкций по использованию RedHat Package Manager’a. В большинстве дистрибутов у вас есть выбор производить ли установку из командной строки или посредством GUI интерфейса.
Для дистрибутивов не умеющих работать с RPM-пакетами и для ряда UNIX систем, используйте комплект „tar.gz». В release notes вы найдете подробные инструкции по установке.
В комплект включены shell-скрипты. В некоторых случаях, в release notes может быть написано чтобы вы изменили эти скрипты и произвели некоторые корректировки.
Для установки из rpm пакета необходимо выполнить следующую команду:
$rpm -Uvh Firebird.x.x.x.rpm
где Firebird.x.x.x.rpm является именем скачанного инсталляционного пакета.
Для установки с использованием пакета в формате tar.gz необходимо выполнить следующее: $tar -xzf Firebird.x.x.x.tar.gz 
$cd install 
$./install.sh

Выполнение этих команд приводит к одному и тому же результату — на Linux-машине будет установлен Firebird (InterBase). Вариант с архитектурой SuperServer будет функционировать в виде демона, a Classic — в виде сервиса.
Надо заметить, что приведенный порядок установки годится практически для любой версии Firebird (InterBase). Правда, для различных дистрибутивов Linux могут существовать свои особенности и хитрости при установке, так что лучше посмотреть рекомендации по установке для вашей версии ОС Linux/Unix.

Добавление поддержки СУБД 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 и Linux для БД размером 691 Гб с 1000+ пользователей

Firebird является очень популярной открытой СУБД в России, и, несмотря на отсутствие шумных маркетинговых акций, используется в большом количестве ответственных систем, особенно в медицинских и государственных системах автоматизации.
Размер БД и количество активных пользователей в таких системах обычно достаточно большие, поэтому в этой статье я расскажу об опыте оптимизации настроек Firebird и Linux, основываясь на конкретных примерах больших БД Firebird в компаниях БудьЗдоров (Ингосстрах), АльфаЗдрав, и затрону опыт других компаний по оптимизации Firebird+Linux.
Давайте подробнее познакомимся с предметом оптимизации — СУБД Firebird 3.0.5 (с расширениями HQbird), обслуживает БД размером 691Гб (на текущий момент) с ежедневными 1000-1100 пользователями, работает на Linux CentOS 7, сервер — железный HP DL380. Для БД настроена репликация на резервный сервер (вопрос о репликации вне рамок этой статьи).

Удаление Firebird

Если вы решили, что программное обеспечение бесполезно для вас, его несложно удалить. Процесс выполняется в два шага:

  • Остановка работы софта. Переходим к СУБД, запускаем Firebird Server Control и жмём «Stop», подтверждаем действие.
  • Удаление софта. Процедура выполняется стандартным образом, как и в случае с любыми программами. Сделать это можно через Панель управления, где в разделе «Программы и компоненты» нужно найти в списке софта Firebird, выбрать его и нажать «Удалить», после чего подтвердить действие. Для Windows 10 есть альтернативный вариант удаления программ – Параметры (Win+I) – Система – Приложения и возможности. Здесь также ищем в списке софт и удаляем его с компьютера.

Firebird – одна из самых популярных и удобных систем управления базами данных. Софт будет превосходным вариантом решения для эффективной работы, являясь инструментом упорядочивания, обработки и хранения сведений. К тому же Firebird занимает совсем мало места на диске и не нагружает ресурсы.

Создание 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.

Выбор СУБД для мобильного Delphi-приложения

Из песочницы

Данная статья написана по мотивам – мотивам разработки мобильного приложения, недавно вышедшего на платформах iOS и Android. Это событие можно было бы назвать заурядным и мало кому интересным, если бы не одно большое и несколько незначительных «но»: вся разработка (включая сервер) велась на Delphi, а в качестве СУБД, как ни странно, задействована совсем не SQLite. Автор, безусловно, понимает, что на текущий момент уже существуют мобильные Delphi-приложения, включая доступные в официальных магазинах, однако не наблюдает обилия русскоязычных публикаций, призванных, как минимум, предостеречь читателей от ошибок, сделанных разработчиком таких проектов. Написанное же здесь преследует цель помочь тем, кто сейчас выбирает СУБД для своего творения, либо уже остановился на каком-то варианте, но желает убедиться в правильности своего решения.
Прежде чем начать, необходимо дать краткое представление о разработанном приложении – это список покупок, имеющий в своём запасе некоторый уникальный функционал. Если кто-то сам уже пользуется (или пользовался) одним из многочисленных аналогов, то сейчас мог скептически хмыкнуть – мол зачем ещё один, и так есть из чего выбрать, на что можно лишь посоветовать продолжить чтение, чтобы ознакомиться с его принципиальной особенностью.

Installation

Specific installation instructions for the following operating
systems are provided separately:

  • CentOS/Redhat etc.
  • Debian/Ubuntu etc.
  • OS X

Source installation

Prerequisites:

  • Firebird client library and API header file ()

  • , a -like API wrapper for the Firebird C API; see:

    NOTE the latest version should be used with the current
    version, as the two are usually developed in tandem.

is installed as a PostgreSQL extension; it requires the
binary for the target installation to be in the shell path.

should take care of the actual compilation and
installation.

IMPORTANT: you must build against the PostgreSQL version
it will be installed on.

Подсистема «Показатели объектов»

Если вашим пользователям нужно вывести в динамический список разные показатели, которые нельзя напрямую получить из таблиц ссылочных объектов, и вы не хотите изменять структуру справочников или документов — тогда эта подсистема для вас. С помощью нее вы сможете в пользовательском режиме создать свой показатель, который будет рассчитываться по формуле или с помощью запроса. Этот показатель вы сможете вывести в динамический список, как любую другую характеристику объекта. Также можно будет настроить отбор или условное оформление с использованием созданного показателя.

2 стартмани

Компонент 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 является мощной СУБД и может работать с достаточно большими базами данных и с сотнями пользователей, её инсталлятор весит обычно не более 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 не следует, поскольку такие действия приведут к неприятным последствиям в виде отказа работы программного обеспечения, которое обращается к СУБД.

Как сделать разный часовой пояс в разных базах данных на одном сервере

Уважаемые Хабравчане, решил поделиться с Вами техническим решением некоторых интересных и на первый взгляд не очевидных проблем. Всю жизнь я в основном только черпал информацию, читал замечательные статьи (в том числе на Хабре) очень помогавшие мне в решении тех или иных технических проблем. Но в последние 2 года, занявшись разработкой своей облачной платформы для автоматизации предприятий, мне пришлось решать довольно много задач “впервые”, т.е. которые если кто-то и решал, то описания (даже близко) я не находил. В связи с этим я решил написать 3 цикла статей: цикл по базам данных, цикл по безопасности и цикл по системам автоматизации. Эта статья — первая статья первого цикла.Краткая формулировка задачи: каким-то образом current_date, current_time и current_timestamp должны выдавать дату-время в зависимости от настроек в аккаунте пользователя и при этом на самом сервере будет стоять московское время.
Система задумывалась неограниченно масштабируемая, с огромным числом потенциальных пользователей в любом регионе нашей необъятной страны, в какой-то момент встал вопрос, а удобно ли будет пользователям, например во Владивостоке, работать в системе с московским временем

Сервера то находятся в Москве, на них стоит московское время, при этом каждому пользователю (не важно, из какого он региона) выделяется несколько своих (индивидуальных) баз данных и все они находятся, грубо говоря, на одном сервере. Делать под каждый часовой пояс свой сервер глупо, да и не возможно с точки зрения концепции системы, ибо любой пользователь в любой момент может часовой пояс поменять.

Книга про разработку приложений для Firebird

Читатели Хабра знают, что я (Денис Симонов) уже некоторое время работаю над серией статей и примеров, которые подробно раскрывают особенности разработки приложений для СУБД Firebird для популярных языков и фреймворков: уже написаны 3 статьи по ADO.NET desktop, ASP.NET MVC и Delphi, в работе для PHP, Java, Android. Также, c 2014 года я являюсь редактором русской документации языку Firebird и членом международной группы документации Firebird.
В процессе работы над примерами я пришел к выводу, что нужно объединять эти статьи и логически дополнять до полноценной книги, посвященной разработке именно под Firebird. Хотя по разработке есть много материалов, и есть русская документация по языку SQL, книга, с последовательным изложением процесса создания приложений и описанием основных ошибок новичков, будет полезна.
Вы спросите – собственно, причем здесь Хабр?

Основные возможности СУБД

Firebird полностью поддерживает стандартны ANSI в синтаксисе языка SQL и может работать под управлением многих операционных систем — Windows, Linux, MacOS, Solaris и различных Unix-платформах. Среди достоинств этой системы использование очень развитого языка для хранимых процедур и триггеров. Предшественник Firebird, СУБД Interbase использовалась в информационных системах начиная с 1981 года.

Firebird это свободный проект, поддерживаемый многими программистами и специалистами из других областей по всему миру. Его начало было положено 25 июля 2000 года, когда корпорация Inprise Corp (ныне известная как Borland Software Corp) открыла исходные коды своей СУБД Interbase, которая использовалась в различных информационных системах начиная с 1981 года.

Firebird полностью бесплатна, она не требует ни регистрации, ни оплаты за поддержку. Исходный код этой системы открыт и любой желающий может разрабатывать на его базе собственные некоммерческие проекты, при условии соблюдения требований лицензии IDPL, по которой распространяется Firebird.

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

Firebird основан на исходном коде InterBase 6.0 который был выпущен как Open Source компанией Borland в августе 2000 года. История Interbase начинается в 1984 году, таким образом, продукт является наследником более чем 20-летнего опыта работы с реляционными базами данных

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

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

Firebird является сервером баз данных. Один сервер Firebird может обрабатывать несколько сотен независимых баз данных, каждую с множеством пользовательских соединений. Он является полностью свободным от лицензионных отчислений даже для коммерческого использования.

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

Как вести логи изменений данных пользователями в базе данных, сохраняя их в другой базе данных

Уважаемые читатели. Это вторая статья из цикла по базам данных. Решил сделать некоторое оглавление по планируемым статьям этого цикла:

  1. Как сделать разный часовой пояс в разных базах данных на одном сервере.
  2. Как вести логи изменений данных пользователями в базе данных, сохраняя их в другой базе данных, для того чтобы основная база данных не забивалась мусором и не росла.
  3. Как создать свою файловую систему на основе blob полей в базе данных. Почему это удобно. Вопросы эффективности хранения файлов: как получить максимальное быстродействие и при этом минимальное занимаемое место.

Я был удивлен количеством комментариев к первой статье, поэтому сразу хочу заметить, что не претендую на единственно правильный способ реализации. Я уверен, что творческие люди найдут еще немало других способов реализовать данную задачу. Но реализуя ее в свое время, я не нашел ни одной статьи с описанием такого функционала и делать данную задачу пришлось с нуля, хотя она на мой взгляд актуальна. Реализация, которую я буду описывать, полностью рабочая и используется мной на практике.
Так же я приветствую конструктивную критику. Бывает люди пишут интересные вещи и ты можешь взглянуть на проблему под углом, о котором не предполагал и как-то улучшить свои механизмы.
Итак начнем.
База данных firebird 3.
Формулировка задачи следующая: необходимо писать подробные логи изменений данных пользователями в базе данных (insert, update, delete), но при этом писать их в другой базе данных на другом сервере. Необходимо это для того чтобы размер основной базы данных не рос как на дрожжах, ее удобно было бекапить, ресторить, чтобы она работала быстро, не накапливала мусора, не содержала лишней и редконужной информации.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector