Цю сторінку перекладено машинним перекладом. Читайте англійський оригінал. English

Бібліотека IBSurgeon

Відмінності між Firebird та InterBase

(c) Дмитро Кузьменко, Олексій Ковязін, IBSurgeon, 21.05.2017

Історичний огляд

InterBase була створена в 1985 році: це була перша комерційна база даних із багатоверсійністю. Наприкінці 1999 року Borland вирішила закрити розробку InterBase і опублікувала її вихідні коди під ліцензією InterBase Public License. Цей код було скопійовано (це дозволено ліцензією), і народився Firebird - починаючи з версії 1.0 Firebird є готовою до виробничого використання базою даних, заснованою на десятиліттях розробки InterBase.

Наприкінці 2000 року Borland повернулася до закритого коду та комерційних ліцензій (так само, як і раніше) з InterBase і розпочала розробку версії 6.5.

FirebirdSQLFirebird 1.0 було випущено в 2002 році з численними виправленнями помилок та розширеннями DDL і DML. Активна розробка Firebird продовжувалася після 1.0, і в 2004 році було випущено другу основну версію Firebird (v.1.5). Borland у той час також представила нові версії (7.0 і 7.1). Firebird 1.5 та InterBase 7.0 були несумісними як за форматом бази даних (ODS), так і за основною функціональністю. Міграція з InterBase на Firebird і назад за допомогою резервного копіювання/відновлення неможлива, починаючи з Firebird 2.0 та InterBase 7.0.

Відтоді різниця між Firebird та InterBase стала ще більшою.

Поточна ситуація (2017)

Єдиний спосіб міграції між поточними версіями InterBase та Firebird - через SQL-скрипт (з ручним виправленням відмінностей), а потім перенесення даних зі старої бази даних до нової. Однак міграція з InterBase на Firebird все ще легша, ніж на іншу СУБД, оскільки принципи керування транзакціями однакові.

Ми виконали кілька таких міграцій для різних версій InterBase та Firebird - дивіться докладніше про нашу послугу міграції тут - і вони пройшли успішно.

Нижче ви можете знайти таблицю з переліком відмінностей між останніми версіями: Firebird 3.0 та InterBase 2017.

Відмінності між Firebird та InterBase
Функції
SQL (DML і DDL)
Стабільність курсору (коректний INSERT FROM SELECT)
Прокручувані (двонаправлені) курсори
Execute Statement
Execute Statement On External (запити до зовнішніх баз даних Firebird)
Автономні транзакції
Похідні таблиці (SELECT із SELECT)
Рекурсивні загальні табличні вирази (CTE)
Віконні та статистичні функції
MERGE
Пункт RETURNING для insert/update/delete
Тригери на connect/disconnect
Тригери на початок/фіксацію/відкат транзакцій
Тригери для DDL
Підтримка Regexp для SUBSTRING
Тип даних Boolean
Тип даних BIGINT
PSQL-функції
Зовнішні процедури, функції, тригери ( Java)
Вкладені процедури та функції
Детерміновані функції
Контекстні змінні в просторах імен SYSTEM, USER_SESSION та USER_TRANSACTION
Пакети (процедури та функції)
Винятки з параметрами
Стовпець IDENTITY
RECREATE (комбінація CREATE або ALTER)
Підтримка UTF8
Підтримка пошуку без урахування регістру в Unicode
Довжина ідентифікатора
Індекси COMPUTED BY (за виразом)
Архітектура/Адміністрування
SMP SuperServer (підтримка багатоядерності)
Classic (екземпляр на підключення)
SuperClassic
Кілька екземплярів (на різних портах)
Псевдоніми баз даних
Перенаправлення між серверними екземплярами
Журнал попереднього запису (WAL)
Відновлення на момент часу
Паралельне створення індексів під час відновлення
Інкрементальне резервне копіювання
Системні таблиці моніторингу
64-бітний клієнт і сервер
Вбудована версія
Вбудована версія для Android (мобільний)
Вбудована версія для iOS (мобільний)
ChangeViews ( що це?)
Стиснення провідного з’єднання
Покращення мережевого протоколу для мереж із високою затримкою (для SQL-запитів через інтернет)
Реплікація на рівні сервера (власна)
Трасування та аудит
Онлайн-перевірка бази даних
Безпека
База даних безпеки
Користувачі в базі даних
Шифрування бази даних
Шифрування стовпців
Кілька ключів шифрування
Шифрування провідного з’єднання
Права користувачів на DDL
Керування користувачами через SQL
UDF та вбудовані функції
Функції, визначені користувачем
SDF, також відомі як функції, визначені сервером (швидші за UDF)
Підтримка драйверів і клієнтських бібліотек
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Ліцензування/Ціни
Ціна за сервер (необмежені підключення)
Підтримка спільноти
Професійна підтримка, за сервер
Інструменти відновлення, моніторингу, трасування/аудиту, оптимізації, власної реплікації

Зв’яжіться з нами

Маєте запитання? Не соромтеся зв’язатися з нами електронною поштою!