Tato stránka byla strojově přeložena. Přečtěte si anglický originál. English

Knihovna IBSurgeon

Rozdíly mezi Firebird a InterBase

(c) Dmitry Kuzmenko, Alexey Kovyazin, IBSurgeon, 21.05.2017

Historický přehled

InterBase byl vytvořen v roce 1985: jednalo se o první komerční databázi s víceverzovým řízením. Na konci roku 1999 se Borland rozhodl ukončit vývoj InterBase a publikoval jeho zdrojové kódy pod licencí InterBase Public License. Tento kód byl zkopírován (což licence umožňuje) a zrodil se Firebird – od verze 1.0 je Firebird databází připravenou pro produkční nasazení, založenou na předchozích desetiletích vývoje InterBase.

Na konci roku 2000 se Borland vrátil k uzavřenému zdrojovému kódu a komerčním licencím (přesně jako dříve) u InterBase a zahájil vývoj verze 6.5.

FirebirdSQLFirebird 1.0 byl vydán v roce 2002 s mnoha opravami chyb a rozšířeními DDL a DML. Aktivní vývoj Firebird pokračoval i po verzi 1.0 a v roce 2004 byla vydána druhá hlavní verze Firebird (v.1.5). Borland v té době také představil nové verze (7.0 a 7.1). Firebird 1.5 a InterBase 7.0 byly vzájemně nekompatibilní jak formátem databáze (ODS), tak základní funkčností. Migrace z InterBase na Firebird a zpět pomocí zálohování/obnovy je od Firebird 2.0 a InterBase 7.0 nemožná.

Od té doby se rozdíl mezi Firebird a InterBase zvětšoval.

Současná situace (2017)

Jediným způsobem migrace mezi současnými verzemi InterBase a Firebird je prostřednictvím SQL skriptu (s ručním opravením rozdílů) a následným přenesením dat ze staré databáze do nové. Migrace z InterBase na Firebird je však stále snazší než na jiný DBMS, protože principy správy transakcí jsou stejné.

Provedli jsme několik takových migrací pro různé verze InterBase a Firebird – viz podrobnosti o naší migrační službě zde – a proběhly dobře.

Níže naleznete tabulku se seznamem rozdílů mezi nejnovějšími verzemi: Firebird 3.0 a InterBase 2017.

Rozdíly mezi Firebird a InterBase
Funkce
—
SQL (DML a DDL)
Stabilita kurzoru (správné INSERT FROM SELECT)
Posuvné (obousměrné) kurzory
Execute Statement
Execute Statement On External (dotazy na externí databáze Firebird)
Autonomní transakce
Odvozené tabulky (SELECT z SELECT)
Rekurzivní Common Table Expressions (CTE)
Okenní a statistické funkce
MERGE
Klauzule RETURNING pro insert/update/delete
Triggery při connect/disconnect
Triggery při start/commit/rollback transakcí
Triggery pro DDL
Podpora Regexp pro SUBSTRING
Datový typ Boolean
Datový typ BIGINT
PSQL funkce
Externí procedury, funkce, triggery ( Java)
Vnořené procedury a funkce
Deterministické funkce
Kontextové proměnné v jmenných prostorech SYSTEM, USER_SESSION a USER_TRANSACTION
Balíčky (procedury a funkce)
Výjimky s parametry
Sloupec IDENTITY
RECREATE (kombinace CREATE nebo ALTER)
Podpora UTF8
Podpora vyhledávání bez rozlišení velikosti písmen v Unicode
Délka identifikátoru
COMPUTED BY indexy (na výraz)
Architektura/Administrace
SMP SuperServer (podpora více jader)
Classic (instance na připojení)
SuperClassic
Více instancí (na různých portech)
Aliasy databází
Přesměrování mezi instancemi serveru
Write-ahead log (WAL)
Point-in-time-recovery
Paralelní vytváření indexů během obnovy
Inkrementální zálohování
Systémové monitorovací tabulky
64bitový klient a server
Embedded verze
Embedded pro Android (mobilní)
Embedded pro iOS (mobilní)
ChangeViews ( co to je?)
Komprese přenosu
Vylepšení síťového protokolu pro sítě s vysokou latencí (pro SQL dotazy přes internet)
Replikace na úrovni serveru (nativní)
Trace a audit
Online validace databáze
Zabezpečení
Bezpečnostní databáze
Uživatelé v databázi
Šifrování databáze
Šifrování sloupců
Více šifrovacích klíčů
Šifrování přenosu
Uživatelská práva k DDL
Správa uživatelů přes SQL
UDF a vestavěné funkce
User Defined Functions
SDF aka Server Defined Functions (rychlejší než UDF)
Podpora ovladačů a klientských knihoven
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Licencování/Ceny
Cena za server (neomezené připojení)
Komunitní podpora
Profesionální podpora, za server
Nástroje pro obnovu, monitorování, trace/audit, optimalizaci, nativní replikaci

Kontaktujte nás

Máte nějaké otázky? Neváhejte nás kontaktovat e-mailem!