Ta strona została przetłumaczona maszynowo. Przeczytaj oryginał angielski. English

Biblioteka IBSurgeon

Różnice między Firebird a InterBase

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

Przegląd historyczny

InterBase został stworzony w 1985 roku: był to pierwszy komercyjny system baz danych z wielowersyjnością. Pod koniec 1999 roku Borland zdecydował się zamknąć rozwój InterBase i opublikował jego kody źródłowe na licencji InterBase Public License. Ten kod został skopiowany (co jest dozwolone przez licencję) i narodził się Firebird - od wersji 1.0 Firebird jest bazą danych gotową do produkcji, opartą na dziesięcioleciach rozwoju InterBase.

Na koniec 2000 roku Borland powrócił do zamkniętego źródła i licencji komercyjnych (dokładnie tak jak wcześniej) z InterBase i rozpoczął rozwój wersji 6.5.

FirebirdSQLFirebird 1.0 został wydany w 2002 roku, z wieloma poprawkami błędów i rozszerzeniami DDL i DML. Aktywny rozwój Firebirda kontynuowano po wersji 1.0, a w 2004 roku wydano drugą główną wersję Firebirda (v.1.5). Borland w tym czasie również wprowadził nowe wersje (7.0 i 7.1). Firebird 1.5 i InterBase 7.0 były niekompatybilne zarówno pod względem formatu bazy danych (ODS), jak i podstawowej funkcjonalności. Migracja z InterBase do Firebirda i z powrotem za pomocą kopii zapasowej/przywrócenia jest niemożliwa od Firebirda 2.0 i InterBase 7.0.

Od tego czasu różnica między Firebirdem a InterBase stała się większa.

Obecna sytuacja (2017)

Jedynym sposobem migracji między obecnymi wersjami InterBase i Firebirda jest skrypt SQL (z ręcznym poprawianiem różnic), a następnie przepompowanie danych ze starej bazy do nowej. Jednak migracja z InterBase do Firebirda jest nadal łatwiejsza niż do innego systemu DBMS, ponieważ zasady zarządzania transakcjami są takie same.

Wykonaliśmy kilka takich migracji dla różnych wersji InterBase i Firebirda - zobacz więcej szczegółów o naszej usłudze migracji tutaj - i przebiegły pomyślnie.

Poniżej znajduje się tabela z listą różnic między najnowszymi wersjami: Firebird 3.0 i InterBase 2017.

Różnice między Firebirdem a InterBase
Funkcje
SQL (DML i DDL)
Stabilność kursora (poprawne INSERT FROM SELECT)
Przewijalne (dwukierunkowe) kursory
Execute Statement
Execute Statement On External (zapytania do zewnętrznych baz Firebird)
Transakcje autonomiczne
Tabele pochodne (SELECT z SELECT)
Rekurencyjne wyrażenia tabelaryczne (CTE)
Funkcje okienkowe i statystyczne
MERGE
Klauzula RETURNING dla insert/update/delete
Wyzwalacze przy połączeniu/rozłączeniu
Wyzwalacze przy rozpoczęciu/zatwierdzeniu/wycofaniu transakcji
Wyzwalacze dla DDL
Wsparcie Regexp dla SUBSTRING
Typ danych Boolean
Typ danych BIGINT
Funkcje PSQL
Procedury zewnętrzne, funkcje, wyzwalacze ( Java)
Zagnieżdżone procedury i funkcje
Funkcje deterministyczne
Zmienne kontekstowe w przestrzeniach nazw SYSTEM, USER_SESSION i USER_TRANSACTION
Pakiety (procedury i funkcje)
Wyjątki z parametrami
Kolumna IDENTITY
RECREATE (połączenie CREATE lub ALTER)
Wsparcie UTF8
Wsparcie wyszukiwania bez rozróżniania wielkości liter Unicode
Długość identyfikatora
Indeksy COMPUTED BY (na wyrażeniach)
Architektura/Administracja
SMP SuperServer (wsparcie wielordzeniowe)
Classic (instancja na połączenie)
SuperClassic
Wiele instancji (na różnych portach)
Aliasy baz danych
Przekierowanie między instancjami serwera
Dziennik zapisu z wyprzedzeniem (WAL)
Odzyskiwanie do punktu w czasie
Równoległe tworzenie indeksów podczas przywracania
Przyrostowa kopia zapasowa
Systemowe tabele monitorowania
Klient i serwer 64-bitowy
Wersja osadzona
Osadzona dla Androida (mobile)
Osadzona dla iOS (mobile)
ChangeViews ( co to jest?)
Kompresja transmisji
Ulepszenia protokołu sieciowego dla sieci o wysokim opóźnieniu (dla zapytań SQL przez internet)
Replikacja na poziomie serwera (natywna)
Śledzenie i audyt
Walidacja bazy danych online
Bezpieczeństwo
Baza danych zabezpieczeń
Użytkownicy w bazie danych
Szyfrowanie bazy danych
Szyfrowanie kolumn
Wiele kluczy szyfrowania
Szyfrowanie transmisji
Prawa użytkowników DDL
Zarządzanie użytkownikami przez SQL
UDF i wbudowane funkcje
Funkcje zdefiniowane przez użytkownika
SDF aka funkcje zdefiniowane przez serwer (szybsze niż UDF)
Sterowniki i biblioteki klienckie
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Licencjonowanie/Ceny
Cena za serwer (nieograniczone połączenia)
Wsparcie społeczności
Profesjonalne wsparcie, za serwer
Narzędzia do odzyskiwania, monitorowania, śledzenia/audytu, optymalizacji, natywnej replikacji

Skontaktuj się z nami

Masz pytania? Nie wahaj się skontaktować z nami przez e-mail!