Unterschiede zwischen Firebird und InterBase
(c) Dmitry Kuzmenko, Alexey Kovyazin, IBSurgeon, 21.05.2017
Historischer Überblick
InterBase wurde 1985 entwickelt: Es war die erste kommerzielle Datenbank mit Multi-Versioning. Ende 1999 entschied sich Borland, die Entwicklung von InterBase einzustellen, und veröffentlichte den Quellcode unter der InterBase Public License. Dieser Code wurde kopiert (was die Lizenz erlaubt), und Firebird war geboren - ab Version 1.0 ist Firebird eine produktionsreife Datenbank, die auf jahrzehntelanger InterBase-Entwicklung basiert.
Ende 2000 kehrte Borland mit InterBase zu Closed Source und kommerziellen Lizenzen zurück (genau wie zuvor) und begann mit der Entwicklung von Version 6.5.
Firebird 1.0 wurde 2002 veröffentlicht, mit vielen Fehlerbehebungen und Erweiterungen von DDL und DML. Die aktive Firebird-Entwicklung wurde nach 1.0 fortgesetzt, und 2004 wurde die zweite Hauptversion von Firebird (v.1.5) veröffentlicht. Borland brachte zu dieser Zeit ebenfalls neue Versionen heraus (7.0 und 7.1). Firebird 1.5 und InterBase 7.0 waren sowohl im Datenbankformat (ODS) als auch in der Kernfunktionalität inkompatibel. Die Migration von InterBase zu Firebird und zurück mit Backup/Restore ist seit Firebird 2.0 und InterBase 7.0 nicht mehr möglich.
Seitdem ist der Unterschied zwischen Firebird und InterBase noch größer geworden.
Aktuelle Situation (2017)
Der einzige Weg für die Migration zwischen aktuellen Versionen von InterBase und Firebird führt über SQL-Skripte (mit manueller Korrektur der Unterschiede) und anschließendem Übertragen der Daten von der alten Datenbank in die neue. Die Migration von InterBase zu Firebird ist jedoch immer noch einfacher als zu einem anderen DBMS, da die Prinzipien der Transaktionsverwaltung dieselben sind.
Wir haben mehrere solcher Migrationen für verschiedene Versionen von InterBase und Firebird durchgeführt - siehe weitere Details zu unserem Migrationsservice hier - und sie verliefen reibungslos.
Unten finden Sie die Tabelle mit der Liste der Unterschiede zwischen den neuesten Versionen: Firebird 3.0 und InterBase 2017.
| Unterschiede zwischen Firebird und InterBase |
|---|
| Funktionen |
| — |
| SQL (DML und DDL) |
| Cursor-Stabilität (korrektes INSERT FROM SELECT) |
| Scrollbare (bidirektionale) Cursor |
| Execute Statement |
| Execute Statement On External (Abfragen an externe Firebird-Datenbanken) |
| Autonome Transaktionen |
| Abgeleitete Tabellen (SELECT aus SELECT) |
| Rekursive Common Table Expressions (CTE) |
| Fenster- und statistische Funktionen |
| MERGE |
| RETURNING-Klausel für INSERT/UPDATE/DELETE |
| Trigger bei Verbindung/Trennung |
| Trigger bei Transaktionsstart/-commit/-rollback |
| Trigger für DDL |
| Regexp-Unterstützung für SUBSTRING |
| Boolean-Datentyp |
| BIGINT-Datentyp |
| PSQL-Funktionen |
| Externe Prozeduren, Funktionen, Trigger ( Java) |
| Verschachtelte Prozeduren und Funktionen |
| Deterministische Funktionen |
| Kontextvariablen in den Namespaces SYSTEM, USER_SESSION und USER_TRANSACTION |
| Pakete (Prozeduren und Funktionen) |
| Ausnahmen mit Parametern |
| IDENTITY-Spalte |
| RECREATE (Kombination aus CREATE oder ALTER) |
| UTF8-Unterstützung |
| Unicode-Unterstützung für case-insensitive Suche |
| Bezeichnerlänge |
| COMPUTED BY-Indizes (auf Ausdrücken) |
| Architektur/Administration |
| SMP SuperServer (Mehrkernunterstützung) |
| Classic (Instanz pro Verbindung) |
| SuperClassic |
| Mehrere Instanzen (auf verschiedenen Ports) |
| Datenbank-Aliase |
| Umleitung zwischen Serverinstanzen |
| Write-Ahead-Log (WAL) |
| Point-in-Time-Recovery |
| Parallele Indexerstellung während des Restores |
| Inkrementelles Backup |
| Systemüberwachungstabellen |
| 64-Bit-Client und -Server |
| Eingebettete Version |
| Eingebettet für Android (mobil) |
| Eingebettet für iOS (mobil) |
| ChangeViews ( Was ist das?) |
| Wire-Kompression |
| Netzwerkprotokoll-Verbesserungen für Netzwerke mit hoher Latenz (für SQL-Abfragen über das Internet) |
| Replikation auf Serverebene (nativ) |
| Trace und Audit |
| Online-Datenbankvalidierung |
| Sicherheit |
| Sicherheitsdatenbank |
| Benutzer in der Datenbank |
| Datenbankverschlüsselung |
| Spaltenverschlüsselung |
| Mehrere Verschlüsselungsschlüssel |
| Wire-Verschlüsselung |
| DDL-Benutzerrechte |
| Benutzerverwaltung über SQL |
| UDF und eingebaute Funktionen |
| User Defined Functions |
| SDF auch bekannt als Server Defined Functions (schneller als UDF) |
| Treiber- und Client-Bibliotheksunterstützung |
| Java |
| .NET |
| PHP |
| Python |
| ODBC |
| Node.JS/TypeScript |
| Golang |
| Yii2 |
| Ruby |
| Perl |
| Erlang |
| QT |
| Lizenzierung/Preise |
| Preis pro Server (unbegrenzte Verbindungen) |
| Community-Support |
| Professioneller Support, pro Server |
| Recovery-, Monitoring-, Trace/Audit-, Optimierungs- und native Replikationswerkzeuge |
Kontaktieren Sie uns
Haben Sie Fragen? Zögern Sie nicht, uns per E-Mail zu kontaktieren!