Deze pagina is automatisch vertaald. Lees het Engelse origineel. English

IBSurgeon-bibliotheek

Verschillen tussen Firebird en InterBase

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

Historisch overzicht

InterBase werd gecreëerd in 1985: het was de eerste commerciële database met multi-versiebeheer. Eind 1999 besloot Borland de ontwikkeling van InterBase te stoppen en publiceerde de broncode onder de InterBase Public License. Deze code werd gekopieerd (dit is toegestaan door de licentie), en Firebird was geboren - vanaf versie 1.0 is Firebird een productieklare database, gebaseerd op tientallen jaren van InterBase-ontwikkeling.

Eind 2000 keerde Borland terug naar closed source en commerciële licenties (precies zoals eerder) met InterBase en startte de ontwikkeling van 6.5.

FirebirdSQLFirebird 1.0 werd uitgebracht in 2002, met veel bugfixes en uitbreidingen van DDL en DML. De actieve Firebird-ontwikkeling ging door na 1.0, en in 2004 werd de tweede grote versie van Firebird (v.1.5) uitgebracht. Borland introduceerde destijds ook nieuwe versies (7.0 en 7.1). Firebird 1.5 en InterBase 7.0 waren incompatibel, zowel qua databaseformaat (ODS) als qua kernfunctionaliteit. Migratie van InterBase naar Firebird en terug met backup/restore is onmogelijk sinds Firebird 2.0 en InterBase 7.0.

Sindsdien is het verschil tussen Firebird en InterBase groter geworden.

Huidige situatie (2017)

De enige manier voor migratie tussen huidige versies van InterBase en Firebird is via SQL-script (met handmatige correctie van verschillen) en vervolgens het overzetten van gegevens van de oude database naar de nieuwe. De migratie van InterBase naar Firebird is echter nog steeds eenvoudiger dan naar een ander DBMS, omdat de principes van transactiebeheer hetzelfde zijn.

We hebben verschillende van dergelijke migraties uitgevoerd voor diverse versies van InterBase en Firebird - zie meer details over onze migratieservice hier - en ze zijn goed verlopen.

Hieronder vindt u de tabel met de lijst van verschillen tussen de nieuwste versies: Firebird 3.0 en InterBase 2017.

Verschillen tussen Firebird en InterBase
Functies
SQL (DML en DDL)
Cursorstabiliteit (correcte INSERT FROM SELECT)
Scrollbare (bidirectionele) cursors
Execute Statement
Execute Statement On External (query’s naar externe Firebird-databases)
Autonome transacties
Afgeleide tabellen (SELECT van SELECT)
Recursieve Common Table Expressions (CTE)
Venster- en statistische functies
MERGE
RETURNING-clausule voor insert/update/delete
Triggers bij connect/disconnect
Triggers bij transactiestart/commit/rollback
Triggers voor DDL
Regexp-ondersteuning voor SUBSTRING
Boolean-datatype
BIGINT-datatype
PSQL-functies
Externe procedures, functies, triggers ( Java)
Geneste procedures en functies
Deterministische functies
Contextvariabelen in namespaces SYSTEM, USER_SESSION en USER_TRANSACTION
Packages (procedures en functies)
Uitzonderingen met parameters
IDENTITY-kolom
RECREATE (combinatie van CREATE of ALTER)
UTF8-ondersteuning
Unicode-hoofdletterongevoelige zoekondersteuning
Identifierlengte
COMPUTED BY-indexen (op expressie)
Architectuur/Beheer
SMP SuperServer (multi-core-ondersteuning)
Classic (instantie per verbinding)
SuperClassic
Meerdere instanties (op verschillende poorten)
Database-aliassen
Herroutering tussen serverinstanties
Write-ahead log (WAL)
Point-in-time-herstel
Parallelle indexcreatie tijdens restore
Incrementele backup
Systeembewakingstabellen
64-bit client en server
Embedded versie
Embedded voor Android (mobiel)
Embedded voor iOS (mobiel)
ChangeViews ( wat is het?)
Draadcompressie
Netwerkprotocolverbeteringen voor netwerken met hoge latentie (voor SQL-query’s via internet)
Replicatie op serverniveau (native)
Trace en audit
Online databasevalidatie
Beveiliging
Beveiligingsdatabase
Gebruikers in de database
Database-encryptie
Kolom-encryptie
Meerdere encryptiesleutels
Draad-encryptie
DDL-gebruikersrechten
Gebruikers beheren via SQL
UDF en ingebouwde functies
User Defined Functions
SDF aka Server Defined Functions (sneller dan UDF)
Stuurprogramma- en clientbibliotheekondersteuning
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Licenties/Prijzen
Prijs per server (onbeperkte verbindingen)
Community-ondersteuning
Professionele ondersteuning, per server
Herstel, monitoring, trace/audit, optimalisatie, native replicatietools

Neem contact met ons op

Heeft u vragen? Aarzel niet om contact met ons op te nemen via e-mail!