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: byla to první komerční databáze s multi-versioning. Na konci roku 1999 se Borland rozhodl ukončit vývoj InterBase a zveřejnil jeho zdrojové kódy pod licencí InterBase Public License. Tento kód byl zkopírován (což licence umožňuje) a vznikla databáze Firebird - od verze 1.0 je Firebird produkčně připravená databáze, založená 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) s 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 Firebirdu pokračoval i po verzi 1.0 a v roce 2004 byla vydána druhá hlavní verze Firebirdu (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 nekompatibilní jak formátem databáze (ODS), tak základní funkčností. Migrace z InterBase na Firebird a zpět pomocí zálohy/obnovy není možná od Firebirdu 2.0 a InterBase 7.0.

Od té doby se rozdíl mezi Firebirdem a InterBase stále zvětšoval.

Současná situace (2017)

Jediný způsob migrace mezi aktuálními verzemi InterBase a Firebirdu je přes SQL skript (s ruční opravou rozdílů) a následným přenosem 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 Firebirdu - viz více podrobností o naší migrační službě zde - a proběhly bez problémů.

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

Rozdíly mezi Firebirdem a InterBase
Funkce
SQL (DML a DDL)
Stabilita kurzoru (správné INSERT FROM SELECT)
Posouvatelné (obousměrné) kurzory
Execute Statement
Execute Statement On External (dotazy do externích databází Firebird)
Autonomní transakce
Odvozené tabulky (SELECT ze SELECT)
Rekurzivní Common Table Expressions (CTE)
Okenní a statistické funkce
MERGE
Klauzule RETURNING pro insert/update/delete
Triggery na připojení/odpojení
Triggery na 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 ohledu na velikost písmen v Unicode
Délka identifikátoru
Indexy COMPUTED BY (na výrazu)
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)
Obnova k určitému časovému okamžiku
Paralelní vytváření indexů během obnovy
Přírůstkové zálohování
Systémové monitorovací tabulky
64bitový klient a server
Vestavěná verze
Vestavěná verze pro Android (mobil)
Vestavěná verze pro iOS (mobil)
ChangeViews ( co to je?)
Komprese přenosu (wire compression)
Vylepšení síťového protokolu pro sítě s vysokou latencí (pro SQL dotazy přes internet)
Replikace na úrovni serveru (nativní)
Sledování a audit
Online validace databáze
Bezpečnost
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 (wire encryption)
Práva uživatelů pro DDL
Správa uživatelů přes SQL
UDF a vestavěné funkce
User Defined Functions
SDF neboli 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
Licence/Ceny
Cena za server (neomezená připojení)
Komunitní podpora
Profesionální podpora, za server
Nástroje pro obnovu, monitorování, sledování/audit, optimalizaci, nativní replikaci

Kontaktujte nás

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