IBM Db2, IBM'in onlarca yıldır geliştirdiği kurumsal düzeyde bir ilişkisel veritabanı yönetim sistemi (RDBMS) ailesidir. Ana bilgisayarlardan (mainframe) Linux sunuculara ve bulut ortamlarına kadar geniş bir yelpazede çalışır; özellikle bankacılık, sigorta ve kamu gibi yüksek işlem hacimli alanlarda uzun yıllardır kritik sistemlerin merkezinde yer alır.
Db2 Nedir?
Db2, verileri satır ve sütunlardan oluşan tablolarda tutan, bu verilere SQL (Structured Query Language) ile erişilmesini sağlayan bir veritabanı yazılımıdır. İşlem bütünlüğünü koruyan ACID özelliklerini destekler; yani birden fazla adımdan oluşan işlemler ya tamamen tamamlanır ya da hiç uygulanmaz, böylece veri tutarlı kalır.
Adı bir dönem büyük harflerle DB2 olarak yazılırken, IBM daha yakın zamanda markayı Db2 yazımıyla sadeleştirdi. Bugün Db2 tek bir ürün değil, aynı SQL temeline dayanan ancak farklı platformlar ve iş yükleri için uyarlanmış bir ürünler ailesidir.
Db2'yi öne çıkaran temel özellik, olgunluğu ve kararlılığıdır. Onlarca yıldır üretim ortamlarında çalışan bir motor olması, özellikle hata toleransı ve veri bütünlüğünün asla taviz veremeyeceği sistemlerde ona güven kazandırır. Aynı zamanda tek bir kod tabanına bağlı kalmadan mainframe'den bulut sunuculara kadar çok geniş bir yelpazede konumlanabilmesi, kurumsal mimarilerde ona esneklik sağlar.
Db2'nin Kısa Tarihi
Db2'nin kökleri, ilişkisel veritabanı fikrinin doğduğu yıllara uzanır. 1970'te IBM araştırmacısı Edgar F. Codd, "A Relational Model of Data for Large Shared Data Banks" adlı makalesiyle ilişkisel modeli tanımladı. Bu modeli pratiğe dökmek için IBM'in San Jose araştırma laboratuvarında yürütülen System R projesi, ilk SQL uygulamalarından birini ortaya çıkardı; dilin ilk adı SEQUEL idi ve Donald Chamberlin ile Raymond Boyce tarafından geliştirildi.
IBM, bu araştırmaları ticari bir ürüne dönüştürdü ve 1983'te ana bilgisayar işletim sistemi MVS için DB2'yi piyasaya sürdü. İlerleyen yıllarda ürün; UNIX, Linux ve Windows platformlarına, AS/400 (bugünkü IBM i) ortamına ve nihayet bulut servislerine taşındı. Bu uzun geçmiş, Db2'nin özellikle mainframe dünyasında neden hâlâ yaygın olduğunu büyük ölçüde açıklar.
Bu tarihsel arka plan yalnızca Db2 için değil, tüm ilişkisel veritabanı ekosistemi için belirleyici oldu. Bugün kullanılan SQL'in temelleri System R döneminde atıldı; aynı dönemin fikirleri, sonraki yıllarda Oracle Database gibi rakip ürünleri de şekillendirdi. Dolayısıyla Db2'nin geçmişini bilmek, aslında ilişkisel veritabanlarının genel tarihini anlamanın bir yoludur.
Db2 Ürün Ailesi

Db2 markası altında, aynı SQL uyumluluğunu paylaşan ancak farklı işletim ortamlarına göre ayrışan sürümler bulunur. Bunların en çok bilinenleri aşağıdaki gibidir:
| Ürün | Platform | Tipik Kullanım |
|---|---|---|
| Db2 for z/OS | IBM z/OS mainframe | Çok yüksek hacimli, kritik çevrimiçi işlem (OLTP) sistemleri |
| Db2 (LUW) | Linux, UNIX ve Windows | Sunucu ve bulut üzerinde genel amaçlı ilişkisel veritabanı |
| Db2 for i | IBM i (AS/400 mirası) | IBM i platformuna gömülü iş uygulamaları |
| Db2 Warehouse | Sunucu / bulut | Analitik ve veri ambarı iş yükleri |
| Db2 on Cloud | Yönetilen bulut servisi | IBM tarafından işletilen, bakım yükü düşük kurulum |
Temel Mimari Kavramlar
Db2'yi anlamak için birkaç temel kavramı bilmek yeterlidir:
- Instance (örnek): Veritabanlarını yöneten çalışan motor süreci; bir sunucuda birden fazla instance bulunabilir.
- Veritabanı ve şema: Tablolar, görünümler ve diğer nesneler bir veritabanı içinde, mantıksal gruplar hâlinde şemalar altında toplanır.
- Tablespace ve bufferpool: Veriler disk üzerinde tablespace'lerde saklanır; sık erişilen sayfalar bellekteki bufferpool'da tutularak disk erişimi azaltılır.
- Maliyet tabanlı optimize edici: Db2, bir sorguyu çalıştırmadan önce istatistiklere dayanarak en düşük maliyetli erişim planını seçer.
- Günlük (log) tabanlı kurtarma: Yapılan değişiklikler işlem günlüklerine yazılır; bir arızadan sonra veritabanı bu günlüklerden tutarlı hâle getirilir.
SQL Desteği ve Örnek Sorgular
Db2, standart SQL'in geniş bir bölümünü destekler. Aşağıda tablo oluşturma, veri ekleme ve gruplama içeren temel bir örnek yer alıyor:
CREATE TABLE calisan (
id INTEGER NOT NULL PRIMARY KEY,
ad VARCHAR(50) NOT NULL,
departman VARCHAR(50),
maas DECIMAL(10,2)
);
INSERT INTO calisan (id, ad, departman, maas)
VALUES (1, 'Ayse Yilmaz', 'Muhendislik', 45000.00);
SELECT departman, AVG(maas) AS ortalama_maas
FROM calisan
GROUP BY departman;Db2, sonuç kümesini sınırlamak için SQL standardındaki FETCH FIRST n ROWS ONLY yapısını kullanır; bu, diğer sistemlerdeki LIMIT ifadesinin işlevini görür:
SELECT ad, maas
FROM calisan
ORDER BY maas DESC
FETCH FIRST 5 ROWS ONLY;Db2, saklı yordamlar ve tetikleyiciler için SQL PL adlı yordamsal bir dile sahiptir. Ayrıca LUW sürümü, Oracle'dan geçişi kolaylaştırmak amacıyla PL/SQL benzeri sözdizimini de belirli ölçüde destekleyen bir uyumluluk katmanı sunar. Bu, mevcut uygulamaları taşırken kod değişikliğini azaltmayı hedefleyen pratik bir özelliktir.
İndeksleme ve Performans
Büyük tablolarda sorgu hızını belirleyen en önemli etkenlerden biri indekslerdir. Db2, sık filtrelenen veya sıralanan sütunlar için indeks oluşturmanıza olanak tanır; maliyet tabanlı optimize edici de bir sorguyu çalıştırırken indeks kullanıp kullanmayacağına istatistiklere bakarak karar verir.
CREATE INDEX idx_calisan_departman
ON calisan (departman);
-- Optimize edicinin dogru karar vermesi icin
-- istatistiklerin guncel olmasi gerekir:
RUNSTATS ON TABLE calisan AND INDEXES ALL;RUNSTATS komutu, tablo ve indeksler hakkındaki istatistikleri toplayarak optimize edicinin daha isabetli planlar üretmesini sağlar. Güncel olmayan istatistikler, optimize edicinin yanlış erişim yolu seçmesine ve sorguların beklenenden yavaş çalışmasına yol açabilir.
Araçlar ve Ekosistem

Db2 ile çalışırken tek seçenek grafik arayüz değildir. Komut satırı işlemcisi (CLP) üzerinden doğrudan SQL çalıştırabilir, betikler yazabilir ve yönetim görevlerini otomatikleştirebilirsiniz. Bunun yanında uygulama geliştirme için JDBC, ODBC ve çeşitli diller (Java, Python, .NET, C) için sürücüler sunulur.
- Komut satırı (CLP): SQL ve yönetim komutlarını çalıştırmak için temel araç.
- Sürücüler: JDBC/ODBC ve popüler programlama dilleri için bağlantı kütüphaneleri.
- Yönetim arayüzleri: Yedekleme, izleme ve performans analizi için grafik ve web tabanlı araçlar.
- Konteyner desteği: Db2, konteyner imajları üzerinden hızlıca ayağa kaldırılabilir; bu, geliştirme ve test ortamlarını basitleştirir.
Yüksek Erişilebilirlik ve Ölçeklenme
Kritik sistemlerde veritabanının kesintisiz çalışması beklenir. Db2 bu ihtiyacı birkaç farklı yaklaşımla karşılar:
- HADR (High Availability Disaster Recovery): İşlem günlüklerini bir veya daha fazla yedek sunucuya aktararak, birincil sunucu arızalandığında hızlı devralma sağlar.
- pureScale: Db2 LUW için, birden fazla sunucunun aynı veritabanına paylaşımlı disk üzerinden erişerek süreklilik ve ölçeklenme sunduğu bir kümeleme (cluster) teknolojisidir.
- z/OS üzerinde data sharing: Mainframe ortamında birden fazla Db2 alt sisteminin aynı veriye paylaşımlı erişimini sağlayan olgun bir mimaridir.
Analitik için Sütun Tabanlı Depolama (BLU Acceleration)
Klasik ilişkisel veritabanları verileri satır tabanlı saklar; bu, tekil kayıtların okunup güncellendiği işlem sistemleri için uygundur. Ancak büyük veri kümeleri üzerinde toplama ve raporlama yapan analitik iş yükleri, sütun tabanlı depolamadan daha çok yararlanır.
Db2 LUW, bu ihtiyaç için BLU Acceleration adlı, bellek içi ve sütun tabanlı çalışan bir teknoloji sunar. Verileri sütun bazında sıkıştırıp yalnızca sorgunun ihtiyaç duyduğu sütunları okuyarak, analitik sorguların performansını artırmayı hedefler. Böylece aynı motor, hem işlem hem de analitik senaryolarını destekleyebilir.
XML, JSON ve Farklı Veri Tipleri
Db2 yalnızca sayılar ve metinlerle sınırlı değildir. pureXML özelliği, XML belgelerinin metne çevrilmeden doğal bir biçimde saklanmasına ve XQuery/XPath ile sorgulanmasına olanak tanır. Ayrıca JSON verisiyle çalışmak için de fonksiyonlar sunulur; böylece yarı yapısal veriler ilişkisel veriyle aynı veritabanında tutulabilir.
Bunun yanında Db2, büyük ikili nesneler (BLOB/CLOB), tarih-saat tipleri, ondalık sayılar ve kullanıcı tanımlı tipler gibi zengin bir veri tipi yelpazesi destekler. Bu esneklik, farklı uygulama ihtiyaçlarının tek bir veritabanı altında toplanmasını kolaylaştırır.
İlklerden biri olarak XML'i doğal saklama yaklaşımı, Db2'nin yalnızca klasik ilişkisel veriyle sınırlı kalmadığını gösterir. İlişkisel modelin sağlamlığını korurken, yarı yapısal verilerle de çalışabilmesi, özellikle farklı kaynaklardan gelen verinin bir arada yönetildiği kurumsal senaryolarda işlevseldir. Aynı veritabanı içinde hem katı şemalı tablolar hem de esnek belge yapıları bir arada tutulabilir.
Sürümler ve Lisanslama
Db2 ticari, tescilli bir yazılımdır. IBM, değerlendirme ve küçük ölçekli kullanım için ücretsiz bir Db2 Community Edition sunar; üretim ve büyük ölçekli kullanım içinse çekirdek/kapasite bazında lisanslanan ticari sürümler mevcuttur.
Db2'yi Diğer Veritabanlarıyla Karşılaştırmak

Db2, ilişkisel veritabanı pazarındaki tek seçenek değildir. Kurumsal alanda Oracle Database ve Microsoft SQL Server ile; açık kaynak tarafında ise PostgreSQL ile aynı ihtiyaçlara yönelir. IBM'in ayrıca Informix adlı farklı bir veritabanı ürünü de bulunur.
| Özellik | Db2'nin Yaklaşımı |
|---|---|
| Lisans modeli | Ticari/tescilli; ücretsiz Community Edition seçeneğiyle |
| Güçlü olduğu alan | Mainframe ve yüksek hacimli kurumsal işlem sistemleri |
| Analitik | Sütun tabanlı BLU Acceleration ile aynı motorda analitik destek |
| SQL uyumluluğu | Standart SQL'e yakın; SQL PL ve Oracle uyumluluk katmanı |
| Platform genişliği | z/OS, Linux, UNIX, Windows, IBM i ve bulut |
Doğru seçim; mevcut altyapınıza, ekibin deneyimine ve iş yükünün tipine bağlıdır. Farklı sistemleri karşılaştırmak için veritabanı türleri rehberimize göz atabilirsiniz.
Tipik Kullanım Alanları
Db2'nin en çok tercih edildiği yerler, kesintinin ve veri kaybının maliyetinin çok yüksek olduğu ortamlardır. Aşağıdaki senaryolar, ürünün güçlü yanlarının öne çıktığı tipik kullanımlardır:
- Bankacılık, sigorta ve finansta yüksek işlem hacimli çekirdek sistemler.
- Mainframe üzerinde onlarca yıldır çalışan, sürekliliği kritik kurumsal uygulamalar.
- Hem işlem hem raporlamanın aynı ortamda çalıştığı karma iş yükleri.
- IBM i platformuna gömülü, sektöre özel iş uygulamaları.
- Bulut üzerinde yönetilen veritabanı ihtiyacı duyan modern uygulamalar.
Db2'ye Nasıl Başlanır?
Db2'yi denemenin en pratik yolu, ücretsiz Community Edition'ı kendi makinenize ya da bir konteynere kurmaktır. Temel SQL bilgisiyle tablo oluşturup sorgu yazarak başlayabilir, ardından yedekleme, performans ayarı ve yüksek erişilebilirlik gibi konulara geçebilirsiniz.