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ı
DesktopTek makinede yerel, sınırlı kullanıcılı uygulamalar
ToGoUygulamanın içine gömülen taşınabilir/mobil dağıtım
IBLiteHafif, 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.

sql
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.

sql
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.

bash
# 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.ib

InterBase 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çütInterBaseFirebird
Lisans modeliTicari / tescilliAçık kaynak
Sahiplik / geliştirmeEmbarcaderoFirebird topluluğu / vakfı
Ortak kökenEvet (ortak ata)Evet (2000'de çatallandı)
Tipik konumlanmaTicari destek isteyen ürünlerMaliyetsiz, 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.