InterBase, düşük bakım gereksinimi ve çok sürümlü eşzamanlılık mimarisiyle tanınan, gömülebilir bir ilişkisel veritabanı yönetim sistemidir (RDBMS). Küçük ayak izi ve neredeyse yönetici gerektirmeyen yapısı sayesinde masaüstü uygulamalardan mobil cihazlara, saha cihazlarından bağımsız yazılım ürünlerine kadar geniş bir alanda kullanılır.
Bu yazı bir alt konudur; veritabanı dünyasının bütününü Veritabanı Türleri Rehberi ile birlikte okumanız önerilir. InterBase'in soyundan gelen açık kaynak çatal için Firebird Nedir? yazısına da göz atabilirsiniz.
InterBase Nedir?
InterBase, SQL standardını temel alan, işlem güvenliği (ACID) sağlayan ve istemci-sunucu ile gömülü (embedded) senaryoların ikisini de destekleyen bir ilişkisel veritabanıdır. En belirgin özelliği çok sürümlü (multi-generational) mimarisidir: okuyucular yazarları, yazarlar okuyucuları engellemez. Bu tasarım, yoğun eşzamanlı erişimde kilit çatışmalarını azaltır.
InterBase, kurulum ve işletim maliyetini düşük tutmak üzere tasarlanmıştır. Tek bir veritabanı dosyası üzerinden çalışabilmesi, otomatik alan yönetimi ve sade yapılandırması sayesinde ürünün içine gömülerek dağıtılan uygulamalarda sık tercih edilir. Böylece son kullanıcının ayrı bir veritabanı yöneticisi (DBA) tutmasına gerek kalmaz.
Kısaca InterBase'i "görünmez" bir veritabanı olarak düşünebilirsiniz: uygulamanın bir parçası gibi dağıtılır, kendi kendini yönetir ve son kullanıcı çoğu zaman altta bir veritabanı çalıştığının farkında bile olmaz. Bu profil, onu geleneksel büyük sunucu veritabanlarından ayıran temel felsefedir. Ölçek büyüdükçe daha ağır sistemlere ihtiyaç duyulabilir; ama küçük ve orta ölçekli, dağıtımı basit tutulması gereken senaryolarda bu sadelik güçlü bir avantajdır.
Kısa Tarihçe
InterBase'in kökleri 1980'lerin ortasına, Jim Starkey'nin kurduğu Groton Database Systems'a dayanır. Starkey, veritabanı dünyasında çok sürümlü eşzamanlılık kontrolünün (MVCC) erken öncülerinden biri kabul edilir ve bu yaklaşım InterBase'in temel taşı olmuştur.
Ürün zaman içinde Borland çatısı altına girdi ve uzun yıllar Borland tarafından geliştirildi. 2000 yılında Borland, InterBase'in o dönemki sürümünün kaynak kodunu açık kaynak olarak yayımladı; bu kod tabanından topluluk tarafından Firebird projesi çatallandı (fork). Ticari InterBase ise geliştirilmeye devam etti ve bugün Embarcadero Technologies tarafından sahiplenilip sürdürülmektedir.
InterBase, Embarcadero'nun Delphi ve C++Builder gibi geliştirme araçlarıyla tarihsel olarak yakın bir ekosistem içinde konumlanmıştır. Bu yakınlık, özellikle masaüstü ve mobil iş uygulamaları geliştiren ekipler için InterBase'i doğal bir veri katmanı adayı yapar. Ancak InterBase, standart SQL ve yaygın sürücüler aracılığıyla farklı dillerden de kullanılabilir; tek bir platforma kilitli değildir.
Çok Sürümlü Mimari (MVCC)
InterBase'in ayırt edici yönü, satırların birden fazla sürümünü tutan çok kuşaklı (multi-generational) depolama modelidir. Bir işlem bir satırı güncellediğinde eski sürüm hemen silinmez; başka işlemler kendi görüntüledikleri tutarlı sürümü okumaya devam eder. Bu sayede uzun süren bir rapor sorgusu, aynı anda yürüyen yazma işlemlerini bloke etmeden çalışabilir.
Bu modelin doğal bir sonucu, artık ihtiyaç duyulmayan eski satır sürümlerinin zamanla temizlenmesi gerekliliğidir. InterBase bu temizliği arka planda (garbage collection) yürütür. Aynı MVCC felsefesini PostgreSQL gibi başka güçlü veritabanlarında da görebilirsiniz.
- Okuma-yazma çatışmalarının azalması: raporlar ile canlı işlemler yan yana yürür.
- Tutarlı anlık görüntü (snapshot) izolasyonu ile öngörülebilir okuma.
- Uzun süren analitik sorguların yazma yükünü kilitlememesi.
- Eski sürümlerin arka planda toplanmasıyla dosya boyutunun dengelenmesi.
Temel Özellikler
- ACID uyumlu işlemler ve güvenilir kurtarma.
- Saklı yordamlar (stored procedure), tetikleyiciler (trigger) ve üreteçler/diziler (generator/sequence).
- Küçük ayak izi ve düşük yönetim maliyeti; gömülü dağıtıma uygunluk.
- Çapraz platform desteği (Windows, Linux, macOS ve mobil/gömülü ortamlar).
- Veritabanı düzeyinde şifreleme ve ağ üzerinde şifreli iletişim seçenekleri.
- Değişiklik takibi için Change Views mekanizması.
- isql, gbak gibi komut satırı araçlarıyla yönetim ve yedekleme.
Sürümler ve Dağıtım Modelleri
InterBase farklı kullanım senaryolarına göre birden çok baskı (edition) ile sunulur. Genel olarak sunucu tabanlı çok kullanıcılı dağıtımdan, tek cihaza gömülü küçük dağıtımlara kadar bir yelpaze kapsanır. Aşağıdaki tablo tipik konumlandırmayı özetler.
| Baskı (Edition) | Tipik Kullanım |
|---|---|
| Server | Çok kullanıcılı, istemci-sunucu ağ dağıtımları |
| Desktop | Tek makinede yerel, sınırlı kullanıcılı uygulamalar |
| ToGo | Uygulamanın içine gömülen taşınabilir/mobil dağıtım |
| IBLite | Hafif, gömülü senaryolar için sadeleştirilmiş sürüm |
SQL ve Programlama
InterBase, tabloların yanı sıra saklı yordamlar ve tetikleyicilerle sunucu tarafı iş mantığı yazmanıza olanak tanır. Aşağıda bir tablo, üreteç ve otomatik anahtar atayan bir tetikleyici örneği yer alıyor.
CREATE TABLE musteri (
id INTEGER NOT NULL PRIMARY KEY,
ad VARCHAR(100) NOT NULL,
eposta VARCHAR(160),
olusturma TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE GENERATOR gen_musteri_id;
SET TERM ^ ;
CREATE TRIGGER musteri_bi FOR musteri
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.id IS NULL) THEN
NEW.id = GEN_ID(gen_musteri_id, 1);
END^
SET TERM ; ^Saklı yordamlar, çok adımlı işlemleri sunucuda toplayarak ağ gidiş-gelişini azaltır. Aşağıdaki örnek, seçilebilir (selectable) bir saklı yordamla parametreye göre kayıt döndürür.
SET TERM ^ ;
CREATE PROCEDURE musteri_ara (p_ad VARCHAR(100))
RETURNS (id INTEGER, ad VARCHAR(100), eposta VARCHAR(160))
AS
BEGIN
FOR SELECT id, ad, eposta FROM musteri
WHERE ad LIKE :p_ad
INTO :id, :ad, :eposta
DO
SUSPEND;
END^
SET TERM ; ^
SELECT * FROM musteri_ara('A%');Change Views ve Veri Senkronizasyonu
InterBase'in dikkat çeken özelliklerinden biri Change Views mekanizmasıdır. Bu yaklaşım, bir istemcinin son sorgusundan bu yana hangi verilerin değiştiğini takip etmesine olanak tanır. Özellikle çevrimdışı çalışabilen ve arada sunucuyla eşitlenen mobil/saha uygulamalarında, yalnızca değişen satırları çekmek ağ ve pil maliyetini düşürür.
Bu tür bir değişiklik takibi, uygulama katmanında zaman damgası veya sürüm sütunlarıyla elle çözülebilecek bir işi veritabanı düzeyine taşır ve tutarlılığı kolaylaştırır.
Güvenlik ve Şifreleme
Gömülü ve saha dağıtımlarında veritabanı dosyası fiziksel olarak son kullanıcının cihazında bulunabilir. Bu nedenle InterBase, veritabanı düzeyinde şifreleme ve ağ üzerinde şifreli iletişim gibi seçenekler sunar. Kullanıcı ve rol tabanlı yetkilendirme ile hangi hesabın hangi nesnelere erişeceği denetlenebilir.
Yönetim ve Yedekleme Araçları
InterBase, komut satırı araçlarıyla yönetim ve yedeklemeyi standartlaştırır. isql etkileşimli SQL kabuğudur; gbak ise mantıksal yedek alma ve geri yükleme için kullanılır. Mantıksal yedek-geri yükle döngüsü, aynı zamanda veritabanı dosyasını düzenleyip (housekeeping) eski satır sürümlerinden arındırmaya da yardımcı olur.
# Yedek alma (backup)
gbak -b -user SYSDBA -password <parola> \
C:\veri\uygulama.ib C:\yedek\uygulama.ibk
# Geri yukleme (restore)
gbak -c -user SYSDBA -password <parola> \
C:\yedek\uygulama.ibk C:\veri\uygulama_yeni.ibInterBase ile Firebird Karşılaştırması
İki ürün aynı kökten geldiği için kavramsal olarak çok benzerler (üreteçler, tetikleyiciler, çok sürümlü mimari). Ancak lisanslama ve gelişim yolları ayrıdır. Aşağıdaki tablo yüksek seviyede bir kıyas sunar.
| Ölçüt | InterBase | Firebird |
|---|---|---|
| Lisans modeli | Ticari / tescilli | Açık kaynak |
| Sahiplik / geliştirme | Embarcadero | Firebird topluluğu / vakfı |
| Ortak köken | Evet (ortak ata) | Evet (2000'de çatallandı) |
| Tipik konumlanma | Ticari destek isteyen ürünler | Maliyetsiz, topluluk destekli dağıtım |
Açık kaynak tarafını daha ayrıntılı değerlendirmek için Firebird Nedir? yazısına, gömülü ve tek dosyalı yaklaşımların bir başka örneği için SQLite Nedir? yazısına bakabilirsiniz.
Tipik Kullanım Senaryoları
- Bağımsız yazılım üreticilerinin (ISV) ürünlerine gömülü veritabanı olarak dağıtılması.
- DBA olmadan çalışması gereken saha cihazları, kiosklar ve endüstriyel sistemler.
- Çevrimdışı çalışıp sunucuyla eşitlenen mobil uygulamalar (Change Views ile).
- Küçük ve orta ölçekli masaüstü/istemci-sunucu iş uygulamaları.
Avantajlar ve Sınırlamalar
InterBase'in güçlü yanı, düşük yönetim maliyeti ile güvenilir işlem yönetimini bir arada sunmasıdır. Öte yandan, çok büyük ölçekli dağıtık iş yükleri veya çok geniş bir açık kaynak ekosistemi arayan ekipler için başka veritabanları daha uygun olabilir.
- Artı: Küçük ayak izi, gömülü dağıtıma uygunluk, az bakım.
- Artı: Çok sürümlü mimari ile okuma-yazma çatışmalarının azalması.
- Artı: Şifreleme ve değişiklik takibi gibi saha odaklı özellikler.
- Eksi: Ticari lisans maliyeti (açık kaynak alternatiflere göre).
- Eksi: Büyük ölçekli veritabanları için ekosistem, PostgreSQL/Oracle kadar geniş değildir.
Bağlantı ve Sürücüler
InterBase'e uygulamalar birden çok yoldan bağlanabilir. Embarcadero ekosisteminde FireDAC gibi veri erişim katmanları InterBase'i doğrudan destekler; daha genel senaryolarda ise ODBC ve JDBC gibi standart sürücüler devreye girer. Bu esneklik, InterBase'i yalnızca tek bir dilin veya çatının veritabanı olmaktan çıkarır.
Bağlantı dizesinde tipik olarak sunucu adı, veritabanı dosyasının yolu ve kimlik bilgileri yer alır. Gömülü senaryolarda sunucu ve uygulama aynı cihazda çalıştığından, ağ katmanı devreden çıkar ve erişim yerel dosya üzerinden gerçekleşir. Bu, hem gecikmeyi düşürür hem de dağıtımı kolaylaştırır.
- Native/Embarcadero veri erişimi (ör. FireDAC) ile sıkı entegrasyon.
- ODBC üzerinden geniş bir masaüstü/raporlama aracı yelpazesi.
- JDBC üzerinden Java tabanlı uygulamalardan erişim.
- Gömülü modda ağsız, doğrudan dosya tabanlı erişim.
Performans ve İyi Uygulamalar
InterBase'de performansın büyük bölümü, diğer ilişkisel veritabanlarında olduğu gibi doğru indeksleme ve iyi yazılmış sorgulara bağlıdır. Sık filtrelenen sütunlarda indeks kullanmak, gereksiz tam tablo taramalarını önler. Saklı yordamları ağ gidiş-gelişini azaltmak için kullanmak da tipik bir kazanç kaynağıdır.
Çok sürümlü mimarinin doğası gereği, eski satır sürümlerinin birikmesi zamanla dosyayı şişirebilir. Düzenli bakım (arka plan temizliği ve gerektiğinde yedek-geri yükle döngüsüyle sıkıştırma) veritabanını sağlıklı tutar. Uzun süre açık kalan işlemler eski sürümlerin toplanmasını geciktirebileceği için, işlemleri gereğinden uzun tutmamak önemlidir.
Sık Sorulan Sorular
InterBase ücretsiz mi?
InterBase ticari bir üründür ve üretim kullanımı genellikle lisans gerektirir. Hafif/gömülü senaryolar için sadeleştirilmiş bir dağıtım (IBLite) bulunmakla birlikte, lisans koşulları ve sınırlar sürüme göre değişir. Ücretsiz ve açık kaynak bir alternatif arıyorsanız Firebird doğal ilk duraktır.
InterBase ile Firebird veri dosyaları uyumlu mu?
İki ürün ortak bir kökten gelse de zamanla ayrıştıkları için dosya biçimleri ve özellikleri birebir uyumlu varsayılmamalıdır. Bir üründen diğerine geçişte, veriyi taşınabilir bir biçimde (ör. SQL betikleri veya dışa aktarım) aktarmayı planlamak daha güvenlidir.
Hangi durumlarda InterBase mantıklıdır?
Ürününüzü son kullanıcıya gömülü bir veritabanıyla dağıtacaksanız, sahada DBA bulunmayacaksa ve ticari destek ile hazır özellikler (şifreleme, değişiklik takibi) sizin için değerliyse InterBase güçlü bir adaydır. Çok büyük, dağıtık ve maliyetsiz bir yığın hedefliyorsanız başka seçenekleri de değerlendirin.
Diğer ilişkisel seçenekleri kıyaslamak isterseniz PostgreSQL Nedir? ve Firebird Nedir? yazıları iyi bir başlangıç noktasıdır. Bütünsel bakış için Veritabanı Türleri Rehberi'ne dönebilirsiniz.