Questa pagina è stata tradotta automaticamente. Leggi l'originale in inglese. English

Libreria IBSurgeon

Differenze tra Firebird e InterBase

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

Panoramica storica

InterBase è stato creato nel 1985: è stato il primo database commerciale con multi-versioning. Alla fine del 1999, Borland decise di chiudere lo sviluppo di InterBase e pubblicò i suoi codici sorgente sotto la licenza pubblica InterBase. Questo codice fu copiato (è permesso dalla licenza), e nacque Firebird - dalla versione 1.0 Firebird è un database pronto per la produzione, basato su decenni di sviluppo precedente di InterBase.

Alla fine del 2000, Borland tornò al codice chiuso e alle licenze commerciali (esattamente come prima) con InterBase e iniziò lo sviluppo della versione 6.5.

FirebirdSQLFirebird 1.0 fu rilasciato nel 2002, con molte correzioni di bug ed estensioni di DDL e DML. Lo sviluppo attivo di Firebird continuò dopo la 1.0, e nel 2004 fu rilasciata la seconda versione principale di Firebird (v.1.5). Borland in quel periodo introdusse anche nuove versioni (7.0 e 7.1). Firebird 1.5 e InterBase 7.0 erano incompatibili sia per formato del database (ODS) che per funzionalità di base. La migrazione da InterBase a Firebird e viceversa con backup/restore è impossibile da Firebird 2.0 e InterBase 7.0.

Da allora, la differenza tra Firebird e InterBase è diventata più grande.

Situazione attuale (2017)

L’unico modo per migrare tra le versioni attuali di InterBase e Firebird è tramite script SQL (con la correzione manuale delle differenze) e poi il trasferimento dei dati dal vecchio database al nuovo. Tuttavia, la migrazione da InterBase a Firebird è ancora più facile che verso un altro DBMS, poiché i principi di gestione delle transazioni sono gli stessi.

Abbiamo eseguito diverse migrazioni di questo tipo per varie versioni di InterBase e Firebird - vedi maggiori dettagli sul nostro servizio di migrazione qui - e sono andate bene.

Di seguito puoi trovare la tabella con l’elenco delle differenze tra le ultime versioni: Firebird 3.0 e InterBase 2017.

Differenze tra Firebird e InterBase
Caratteristiche
SQL (DML e DDL)
Stabilità del cursore (INSERT FROM SELECT corretto)
Cursori scorrevoli (bidirezionali)
Execute Statement
Execute Statement On External (query a database Firebird esterni)
Transazioni autonome
Tabelle derivate (SELECT da SELECT)
Common Table Expressions ricorsive (CTE)
Funzioni finestra e statistiche
MERGE
Clausola RETURNING per insert/update/delete
Trigger su connect/disconnect
Trigger su inizio/commit/rollback di transazioni
Trigger per DDL
Supporto Regexp per SUBSTRING
Tipo di dato Boolean
Tipo di dato BIGINT
Funzioni PSQL
Procedure, funzioni, trigger esterni ( Java)
Procedure e funzioni annidate
Funzioni deterministiche
Variabili di contesto nei namespace SYSTEM, USER_SESSION e USER_TRANSACTION
Package (procedure e funzioni)
Eccezioni con parametri
Colonna IDENTITY
RECREATE (combinazione di CREATE o ALTER)
Supporto UTF8
Supporto ricerca Unicode senza distinzione maiuscole/minuscole
Lunghezza identificatori
Indici COMPUTED BY (su espressione)
Architettura/Amministrazione
SMP SuperServer (supporto multi-core)
Classic (istanza per connessione)
SuperClassic
Istanza multiple (su porte diverse)
Alias di database
Re-routing tra istanze server
Write-ahead log (WAL)
Point-in-time-recovery
Creazione parallela di indici durante il restore
Backup incrementale
Tabelle di monitoraggio di sistema
Client e server a 64-bit
Versione embedded
Embedded per Android (mobile)
Embedded per iOS (mobile)
ChangeViews ( cos’è?)
Compressione wire
Miglioramenti del protocollo di rete per reti ad alta latenza (per query SQL via internet)
Replica a livello server (nativa)
Trace e audit
Validazione online del database
Sicurezza
Database di sicurezza
Utenti nel database
Crittografia del database
Crittografia delle colonne
Chiavi di crittografia multiple
Crittografia wire
Diritti utente DDL
Gestione utenti tramite SQL
UDF e funzioni integrate
User Defined Functions
SDF aka Server Defined Functions (più veloci delle UDF)
Supporto driver e librerie client
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Licenze/Prezzi
Prezzo per server (connessioni illimitate)
Supporto comunitario
Supporto professionale, per server
Strumenti di recovery, monitoraggio, trace/audit, ottimizzazione, replica nativa

Contattaci

Hai domande? Non esitare a contattarci via email!