Firebird ve InterBase arasındaki farklar
(c) Dmitry Kuzmenko, Alexey Kovyazin, IBSurgeon, 21.05.2017
Tarihsel Genel Bakış
InterBase 1985 yılında oluşturuldu: çoklu sürümleme yapan ilk ticari veritabanıydı. 1999’un sonunda Borland, InterBase geliştirmeyi kapatmaya karar verdi ve kaynak kodlarını InterBase Public License altında yayınladı. Bu kod kopyalandı (lisans tarafından izin verilmektedir) ve Firebird doğdu - 1.0 sürümünden itibaren Firebird, InterBase’in önceki on yıllık gelişimine dayanan, üretime hazır bir veritabanıdır.
2000 yılının sonunda Borland, InterBase ile kapalı kaynak ve ticari lisanslara (tam olarak daha önce olduğu gibi) geri döndü ve 6.5 sürümünün geliştirilmesine başladı.
Firebird 1.0, 2002 yılında birçok hata düzeltmesi ve DDL ile DML uzantılarıyla yayınlandı. Aktif Firebird geliştirmesi 1.0’dan sonra da devam etti ve 2004 yılında Firebird’in ikinci büyük sürümü (v.1.5) yayınlandı. Borland o sırada yeni sürümler de (7.0 ve 7.1) tanıttı. Firebird 1.5 ve InterBase 7.0, hem veritabanı formatı (ODS) hem de temel işlevsellik açısından uyumsuzdu. Firebird 2.0 ve InterBase 7.0’dan itibaren InterBase’den Firebird’e ve geriye yedekleme/geri yükleme ile geçiş imkansızdır.
O zamandan beri Firebird ve InterBase arasındaki fark daha da büyüdü.
Güncel Durum (2017)
InterBase ve Firebird’ün güncel sürümleri arasında geçiş yapmanın tek yolu SQL betiği (farklılıkların manuel olarak düzeltilmesiyle) ve ardından verilerin eski veritabanından yenisine aktarılmasıdır. Ancak, InterBase’den Firebird’e geçiş, işlem yönetimi ilkeleri aynı olduğundan başka bir DBMS’ye geçişten hâlâ daha kolaydır.
Çeşitli InterBase ve Firebird sürümleri için bu tür birkaç geçiş gerçekleştirdik - geçiş hizmetimiz hakkında daha fazla ayrıntı burada - ve sorunsuz geçtiler.
Aşağıda en son sürümler arasındaki farkların listesini içeren tabloyu bulabilirsiniz: Firebird 3.0 ve InterBase 2017.
| Firebird ve InterBase Arasındaki Farklar |
|---|
| Özellikler |
| — |
| SQL (DML ve DDL) |
| İmleç kararlılığı (doğru INSERT FROM SELECT) |
| Kaydırılabilir (çift yönlü) imleçler |
| Execute Statement |
| Execute Statement On External (harici Firebird veritabanlarına sorgular) |
| Bağımsız işlemler |
| Türetilmiş tablolar (SELECT’ten SELECT) |
| Özyinelemeli Ortak Tablo İfadeleri (CTE) |
| Pencere ve İstatistiksel fonksiyonlar |
| MERGE |
| INSERT/UPDATE/DELETE için RETURNING ifadesi |
| Bağlanma/bağlantı kesme tetikleyicileri |
| İşlem başlatma/onaylama/geri alma tetikleyicileri |
| DDL için tetikleyiciler |
| SUBSTRING için Regexp desteği |
| Boolean veri türü |
| BIGINT veri türü |
| PSQL fonksiyonları |
| Harici prosedürler, fonksiyonlar, tetikleyiciler ( Java) |
| İç içe prosedürler ve fonksiyonlar |
| Deterministik fonksiyonlar |
| SYSTEM, USER_SESSION ve USER_TRANSACTION ad alanlarındaki bağlam değişkenleri |
| Paketler (prosedürler ve fonksiyonlar) |
| Parametreli istisnalar |
| IDENTITY sütunu |
| RECREATE (CREATE veya ALTER kombinasyonu) |
| UTF8 desteği |
| Unicode büyük/küçük harf duyarsız arama desteği |
| Tanımlayıcı uzunluğu |
| COMPUTED BY indeksleri (ifade üzerinde) |
| Mimari/Yönetim |
| SMP SuperServer (çok çekirdekli destek) |
| Classic (bağlantı başına örnek) |
| SuperClassic |
| Birden fazla örnek (farklı portlarda) |
| Veritabanı takma adları |
| Sunucu örnekleri arasında yeniden yönlendirme |
| Write-ahead log (WAL) |
| Zamanda nokta kurtarma |
| Geri yükleme sırasında paralel indeks oluşturma |
| Artımlı yedekleme |
| Sistem izleme tabloları |
| 64-bit istemci ve sunucu |
| Gömülü sürüm |
| Android için gömülü (mobil) |
| iOS için gömülü (mobil) |
| ChangeViews ( nedir?) |
| Kablo sıkıştırma |
| Yüksek gecikmeli ağlar için ağ protokolü iyileştirmeleri (internet üzerinden SQL sorguları için) |
| Sunucu düzeyinde çoğaltma (yerel) |
| İzleme ve denetim |
| Çevrimiçi veritabanı doğrulama |
| Güvenlik |
| Güvenlik veritabanı |
| Veritabanındaki kullanıcılar |
| Veritabanı şifreleme |
| Sütun şifreleme |
| Birden fazla şifreleme anahtarı |
| Kablo şifreleme |
| DDL kullanıcı hakları |
| SQL ile kullanıcı yönetimi |
| UDF ve yerleşik fonksiyonlar |
| Kullanıcı Tanımlı Fonksiyonlar |
| SDF olarak da bilinen Sunucu Tanımlı Fonksiyonlar (UDF’den daha hızlı) |
| Sürücü ve istemci kütüphanesi desteği |
| Java |
| .NET |
| PHP |
| Python |
| ODBC |
| Node.JS/TypeScript |
| Golang |
| Yii2 |
| Ruby |
| Perl |
| Erlang |
| QT |
| Lisanslama/Fiyatlar |
| Sunucu başına fiyat (sınırsız bağlantı) |
| Topluluk desteği |
| Profesyonel destek, sunucu başına |
| Kurtarma, izleme, iz/denetim, optimizasyon, yerel çoğaltma araçları |
Bize Ulaşın
Sorularınız mı var? E-posta ile bizimle iletişime geçmekten çekinmeyin!