Cette page a été traduite automatiquement. Lisez l'original en anglais. English

Bibliothèque IBSurgeon

Différences entre Firebird et InterBase

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

Aperçu historique

InterBase a été créé en 1985 : c’était la première base de données commerciale multi-versionnée. À la fin de 1999, Borland a décidé de fermer le développement d’InterBase et a publié ses codes sources sous la licence publique InterBase. Ce code a été copié (c’est permis par la licence), et Firebird est né - depuis la version 1.0, Firebird est une base de données prête pour la production, basée sur des décennies de développement d’InterBase.

À la fin de 2000, Borland est revenu aux licences fermées et commerciales (exactement comme auparavant) avec InterBase et a commencé le développement de la version 6.5.

FirebirdSQLFirebird 1.0 a été publié en 2002, avec de nombreuses corrections de bogues et des extensions de DDL et DML. Le développement actif de Firebird a continué après la version 1.0, et en 2004, la deuxième version majeure de Firebird (v.1.5) a été publiée. Borland a également introduit de nouvelles versions à cette époque (7.0 et 7.1). Firebird 1.5 et InterBase 7.0 étaient incompatibles tant au niveau du format de base de données (ODS) que des fonctionnalités de base. La migration d’InterBase vers Firebird et inversement avec sauvegarde/restauration est impossible depuis Firebird 2.0 et InterBase 7.0.

Depuis lors, la différence entre Firebird et InterBase est devenue plus grande.

Situation actuelle (2017)

La seule façon de migrer entre les versions actuelles d’InterBase et de Firebird est via un script SQL (avec correction manuelle des différences) puis le transfert des données de l’ancienne base vers la nouvelle. Cependant, la migration d’InterBase vers Firebird reste plus facile que vers un autre SGBD, car les principes de gestion des transactions sont les mêmes.

Nous avons effectué plusieurs de ces migrations pour diverses versions d’InterBase et de Firebird - voir plus de détails sur notre service de migration ici - et elles se sont bien déroulées.

Vous trouverez ci-dessous le tableau avec la liste des différences entre les dernières versions : Firebird 3.0 et InterBase 2017.

Différences entre Firebird et InterBase
Fonctionnalités
SQL (DML et DDL)
Stabilité du curseur (INSERT FROM SELECT correct)
Curseurs défilants (bidirectionnels)
Execute Statement
Execute Statement On External (requêtes vers des bases Firebird externes)
Transactions autonomes
Tables dérivées (SELECT depuis SELECT)
Expressions de table communes récursives (CTE)
Fonctions de fenêtrage et statistiques
MERGE
Clause RETURNING pour insert/update/delete
Déclencheurs sur connexion/déconnexion
Déclencheurs sur début/validation/annulation de transactions
Déclencheurs pour DDL
Prise en charge Regexp pour SUBSTRING
Type de données Boolean
Type de données BIGINT
Fonctions PSQL
Procédures, fonctions, déclencheurs externes ( Java)
Procédures et fonctions imbriquées
Fonctions déterministes
Variables de contexte dans les espaces de noms SYSTEM, USER_SESSION et USER_TRANSACTION
Packages (procédures et fonctions)
Exceptions avec paramètres
Colonne IDENTITY
RECREATE (combinaison de CREATE ou ALTER)
Prise en charge UTF8
Prise en charge de recherche insensible à la casse Unicode
Longueur des identifiants
Index COMPUTED BY (sur expression)
Architecture/Administration
SMP SuperServer (prise en charge multi-cœurs)
Classic (instance par connexion)
SuperClassic
Instances multiples (sur différents ports)
Alias de bases de données
Réacheminement entre instances de serveur
Journal d’écriture anticipée (WAL)
Récupération à un instant précis (point-in-time)
Création parallèle d’index lors de la restauration
Sauvegarde incrémentale
Tables de surveillance système
Client et serveur 64 bits
Version embarquée
Embarqué pour Android (mobile)
Embarqué pour iOS (mobile)
ChangeViews ( qu’est-ce que c’est ?)
Compression du fil (wire)
Améliorations du protocole réseau pour les réseaux à haute latence (pour les requêtes SQL via Internet)
Réplication au niveau serveur (native)
Trace et audit
Validation de base de données en ligne
Sécurité
Base de données de sécurité
Utilisateurs dans la base de données
Chiffrement de base de données
Chiffrement de colonnes
Clés de chiffrement multiples
Chiffrement du fil (wire)
Droits utilisateurs DDL
Gestion des utilisateurs via SQL
Fonctions UDF et intégrées
Fonctions définies par l’utilisateur
SDF aka fonctions définies par le serveur (plus rapides que UDF)
Prise en charge des pilotes et bibliothèques clientes
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Licences/Prix
Prix par serveur (connexions illimitées)
Support communautaire
Support professionnel, par serveur
Outils de récupération, surveillance, trace/audit, optimisation, réplication native

Contactez-nous

Avez-vous des questions ? N’hésitez pas à nous contacter par email !