Разлике између 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.
Firebird 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, оптимизацију, нативну репликацију |
Контактирајте нас
Имате питања? Не оклевајте да нас контактирате путем имејла!