Ова страница је машински преведена. Прочитајте енглески оригинал. English

IBSurgeon библиотека

Разлике између Firebird-а и InterBase-а

(c) Dmitry Kuzmenko, Alexey Kovyazin, 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-а (в.1.5). Borland је у то време такође представио нове верзије (7.0 и 7.1). Firebird 1.5 и InterBase 7.0 су били некомпатибилни и по формату базе података (ODS) и по основној функционалности. Миграција са InterBase-а на Firebird и обрнуто помоћу backup/restore је немогућа од Firebird 2.0 и InterBase 7.0.

Од тада, разлика између Firebird-а и InterBase-а је постајала све већа.

Тренутна ситуација (2017)

Једини начин за миграцију између тренутних верзија InterBase-а и Firebird-а је преко SQL скрипте (са ручним исправљањем разлика), а затим пренос података из старе базе у нову. Међутим, миграција са InterBase-а на Firebird је и даље лакша него на други DBMS, јер су принципи управљања трансакцијама исти.

Извршили смо неколико таквих миграција за различите верзије InterBase-а и Firebird-а - погледајте више детаља о нашој услузи миграције овде - и све је прошло добро.

Испод можете пронаћи табелу са списком разлика између најновијих верзија: Firebird 3.0 и InterBase 2017.

Разлике између Firebird-а и InterBase-а
Функције
SQL (DML и DDL)
Стабилност курсора (исправно INSERT FROM SELECT)
Померајући (двосмерни) курсори
Execute Statement
Execute Statement On External (упити ка спољним Firebird базама података)
Аутономне трансакције
Изведене табеле (SELECT из SELECT-а)
Рекурзивни Common Table Expressions (CTE)
Windows и статистичке функције
MERGE
RETURNING клаузула за insert/update/delete
Окидачи на connect/disconnect
Окидачи на почетак/commit/rollback трансакција
Окидачи за DDL
Regexp подршка за SUBSTRING
Boolean тип података
BIGINT тип података
PSQL функције
Спољне процедуре, функције, окидачи ( Java)
Угнежђене процедуре и функције
Детерминистичке функције
Контекстне променљиве у namespace-овима SYSTEM, USER_SESSION и USER_TRANSACTION
Пакети (процедуре и функције)
Изузеци са параметрима
IDENTITY колона
RECREATE (комбинација CREATE или ALTER)
UTF8 подршка
Unicode подршка за претрагу без разликовања великих и малих слова
Дужина идентификатора
COMPUTED BY индекси (на изразу)
Архитектура/Администрација
SMP SuperServer (подршка за више језгара)
Classic (инстанца по конекцији)
SuperClassic
Више инстанци (на различитим портовима)
Алијаси база података
Преусмеравање између серверских инстанци
Write-ahead log (WAL)
Point-in-time-recovery
Паралелно креирање индекса током рестаурације
Инкрементална резервна копија
Табеле за системско праћење
64-битни клијент и сервер
Уграђена верзија
Уграђена за Android (мобилни)
Уграђена за iOS (мобилни)
ChangeViews ( шта је то?)
Wire компресија
Побољшања мрежног протокола за мреже са високим кашњењем (за SQL упите преко интернета)
Репликација на нивоу сервера (нативна)
Trace и audit
Онлајн валидација базе података
Безбедност
База података за безбедност
Корисници у бази података
Енкрипција базе података
Енкрипција колона
Више кључева за енкрипцију
Wire енкрипција
DDL права корисника
Управљање корисницима преко SQL-а
UDF и уграђене функције
User Defined Functions
SDF познате и као Server Defined Functions (брже од UDF)
Подршка за драјвере и клијентске библиотеке
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Лиценцирање/Цене
Цена по серверу (неограничене конекције)
Подршка заједнице
Професионална подршка, по серверу
Алати за опоравак, праћење, trace/audit, оптимизацију, нативну репликацију

Контактирајте нас

Имате питања? Не оклевајте да нас контактирате путем имејла!