Firebird SQL. Введение
Firebird SQL — это реляционная система управления базами данных с открытым исходным кодом. Она возникла как форк InterBase компании Borland и со временем превратилась в самостоятельный, активно развиваемый проект. Firebird SQL применяется в корпоративных приложениях, встраиваемых системах и бизнес-решениях благодаря своей лёгкости, надёжности и бесплатной лицензии.
История
- 1980-е — развитие InterBase компанией Borland.
- 2000 — исходный код InterBase открыт, создаётся форк Firebird SQL.
- 2002 — выход Firebird 1.0, совместимость с InterBase.
- 2010-е — добавление современных функций: улучшенная поддержка SQL, хранимые процедуры, триггеры.
- 2020-е — Firebird 4.x с поддержкой мультипоточности и новых типов данных.
Особенности
- Поддержка ACID-транзакций.
- Малый размер дистрибутива.
- Работа как встраиваемая СУБД или в режиме клиент-сервер.
- Многоуровневая безопасность.
- Кроссплатформенность: Windows, Linux, macOS.
Установка
# Linux (Ubuntu)
sudo apt update
sudo apt install firebird3.0-server
# Windows
# Скачать установщик с сайта firebirdsql.org и запустить установкуПодключение
isql -u sysdba -p masterkey localhost:/var/lib/firebird/data/company.fdbСоздание базы и таблицы
CREATE DATABASE 'company.fdb' USER 'sysdba' PASSWORD 'masterkey';
CREATE TABLE employees (
id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR(100) NOT NULL,
position VARCHAR(100),
salary DECIMAL(10,2),
hire_date DATE
);CRUD в Firebird SQL
INSERT INTO employees (name, position, salary, hire_date)
VALUES ('Иван Иванов', 'Менеджер', 60000, '2022-05-01');
SELECT name, position, salary FROM employees WHERE salary > 50000;
UPDATE employees SET salary = salary * 1.1 WHERE position = 'Менеджер';
DELETE FROM employees WHERE id = 3;Индексы
CREATE INDEX idx_salary ON employees(salary);Транзакции
SET TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;Хранимые процедуры и функции
SET TERM !! ;
CREATE PROCEDURE GetEmployees
RETURNS (emp_name VARCHAR(100), emp_salary DECIMAL(10,2))
AS
BEGIN
FOR SELECT name, salary FROM employees INTO :emp_name, :emp_salary DO
SUSPEND;
END !!
SET TERM ; !!Триггеры
SET TERM !! ;
CREATE TRIGGER trg_set_hire_date FOR employees
BEFORE INSERT
AS
BEGIN
NEW.hire_date = CURRENT_DATE;
END !!
SET TERM ; !!Работа с представлениями
CREATE VIEW high_salary AS
SELECT name, salary FROM employees WHERE salary > 70000;Бэкапы
# Создание бэкапа
gbak -b -user sysdba -password masterkey company.fdb company_backup.fbk
# Восстановление из бэкапа
gbak -c -user sysdba -password masterkey company_backup.fbk company_restored.fdbБезопасность
- Использовать надёжные пароли для SYSDBA.
- Ограничить доступ к файлам БД.
- Применять роли для разграничения доступа.
Заключение
Firebird SQL — лёгкая и надёжная СУБД, которая подходит для встраиваемых систем и корпоративных приложений. Она поддерживает транзакции, хранимые процедуры, триггеры, индексы и репликацию. Благодаря открытой лицензии и активному сообществу Firebird SQL продолжает активно развиваться.
🔗 Официальная документация Firebird SQL