Veritabanı: Basit kelimelerle ne olduğu ve nasıl çalıştığı

Kerem Aydın·8 Temmuz 2026·⏱5 dk

Veritabanı (VT), programların verileri hızla kaydetmesine, bulmasına ve değiştirmesine olanak tanıyan organize bir bilgi deposudur. Onu akıllı bir elektronik kartoteks olarak düşünün: basit dosyaların aksine, bilgilerin bir arıza durumunda kaybolmamasını, tekrarlanmamasını ve aynı anda binlerce kullanıcı tarafından erişilebilir kalmasını garanti eder. Bankalar, sosyal ağlar, çevrimiçi mağazalar ve tüm modern uygulamaların çalışmasının temelinde veritabanları yatar.

Temel öz: Veritabanı sadece depolama için değil, devasa yükler altında bile bütünlük, güvenlik ve verilere anında erişim sağlamak için gereklidir.

Neden veritabanlarına ihtiyaç vardır?

Modern dünyada bilgi hacimleri muazzamdır. Milyonlarca kayıt söz konusu olduğunda, verileri düz metin dosyalarında veya elektronik tablolarda saklamak imkansız hale gelir. Veritabanları şu temel sorunları çözer:

  • Merkezileştirme: Tüm veriler tek bir korunmuş yerde ("tek gerçek kaynak") bulunur, bu da farklı dosya kopyaları arasındaki karışıklığı ortadan kaldırır.
  • Erişim hızı: İndeksler (özel işaretçiler) sayesinde, veritabanında milyarlarca satır olsa bile gerekli kaydın bulunması saniyenin kesirlerini alır.
  • Bütünlük: Sistem kuralları otomatik olarak izler. Örneğin, aktif siparişleri olan bir müşteriyi silmenize veya telefon numarasını yanlış formatta kaydetmenize izin vermez.
  • Paralel çalışma: Binlerce kullanıcı, çakışma ve kilitleme olmadan aynı anda verileri okuyabilir ve değiştirebilir.
  • Güvenlik: Esnek erişim hakları sistemi, gizli bilgileri yetkisiz gözlerden gizlemeye ve verileri şifrelemeye olanak tanır.

Temel veri modelleri

Tüm veritabanları aynı şekilde yapılandırılmamıştır. Yapı seçimi, çözülmesi gereken görevlere bağlıdır. Bilgisayar bilimlerinde beş ana tür öne çıkar:

1. İlişkisel veritabanları (SQL)

En yaygın türdür. Veriler, birbirleriyle anahtarlar aracılığıyla bağlantılı satır ve sütunlardan oluşan tablolar halinde saklanır.

  • Kullanım alanları: Bankacılık sistemleri, muhasebe, CRM, çevrimiçi mağazalar.
  • Örnekler: PostgreSQL, MySQL, Oracle, Microsoft SQL Server.
  • Özellik: Katı şema yapısı ve işlem hassasiyeti garantisi (ACID ilkesi).

2. Belge odaklı veritabanları (NoSQL)

Veriler, koddaki nesnelere benzeyen belgeler (genellikle JSON formatında) halinde saklanır. Her kayıt için yapı farklılık gösterebilir.

  • Kullanım alanları: Ürün katalogları, kullanıcı profilleri, içerik yönetimi, hızlı prototipler.
  • Örnekler: MongoDB, Couchbase.
  • Özellik: Şema esnekliği — tüm veritabanını yeniden yapılandırmadan "anında" yeni alanlar eklenebilir.

3. "Anahtar-Değer" veritabanları

Her öğenin benzersiz bir anahtara ve buna karşılık gelen bir değere sahip olduğu en basit modeldir.

  • Kullanım alanları: Önbellekleme, kullanıcı oturumlarının saklanması, alışveriş sepetleri, sayaçlar.
  • Örnekler: Redis, DynamoDB, Memcached.
  • Özellik: Son derece yüksek okuma ve yazma hızı.

4. Grafik veritabanları

Nesneler arasındaki ilişkileri saklamak için özelleştirilmiştir. Veriler düğümler ve kenarlar olarak temsil edilir.

  • Kullanım alanları: Sosyal ağlar (arkadaş arama), öneri sistemleri, dolandırıcılık şemalarının tespiti, lojistik.
  • Örnekler: Neo4j, ArangoDB.
  • Özellik: Karmaşık ilişki zincirlerinin anında aranması ("aynı ürünü satın alan arkadaşların arkadaşları").

5. Sütun bazlı veritabanları

Veriler satırlara göre değil, sütunlara göre saklanır. Bu, okuma yaklaşımını kökten değiştirir.

  • Kullanım alanları: Büyük veri analitiği (Big Data), raporlar, iş analizi.
  • Örnekler: ClickHouse, Apache Cassandra.
  • Özellik: Veri toplama işlemleri için idealdir (yıl boyunca tüm bölgelerdeki satış toplamı), ancak tek tek satırların sık yazılması durumunda daha yavaştır.

Nasıl seçilir? Finansal işlemlerin katı doğruluğu sizin için önemliyse SQL seçin. Şema esnekliği ve hızlı geliştirme gerekiyorsa Belge Deposu. Terabaytlarca günlük analitiği için Sütun deposu.

Mimari ve çalışma prensibi

Veritabanının iç yapısının anlaşılması, daha etkili kod yazmaya yardımcı olur. Tipik bir mimari şunları içerir:

  1. VTYS Çekirdeği: Diskteki dosya depolamayı yöneten sunucu programı.
  2. Sorgu Yöneticisi: Uygulamadan gelen komutları (örneğin SQL dilinde) alır, erişim haklarını kontrol eder ve yürütme planını optimize eder.
  3. İşlem Yöneticisi: Bir dizi işlemin ya tamamen gerçekleşmesini ya da hiç gerçekleşmemesini garanti eder. Bu, paranın tahsil edildiği ancak ürünün rezerve edilmediği durumları önler.
  4. Depolama Mekanizması: Baytların diske yazılması, RAM kullanımı (tampon havuzu) ve değişiklik günlüklerinin (WAL) tutulmasından sorumludur.
  5. İndeksler: Aramayı hızlandıran, kitaptaki içindekiler gibi çalışan özel veri yapıları (genellikle B-ağaçları).

İşlemler: Güvenilirlik mi hız mı?

Verilerle çalışırken güvenilirlik ve performans arasındaki ödünleşmeyi anlamak önemlidir. Burada iki temel kavram mevcuttur:

  • ACID (Atomicity, Consistency, Isolation, Durability): İlişkisel veritabanları için standarttır. Verilerin her zaman tutarlı bir durumda olmasını garanti eder. Elektrik kesintisi durumunda bile kaydedilen işlemler kaybolmaz. Finans için kritiktir.
  • BASE (Basically Available, Soft state, Eventual consistency): Birçok NoSQL sisteminin yaklaşımıdır. Anlık tutarlılığı, erişilebilirlik ve hız lehine feda eder. Veriler tüm sunucularda hemen değil, "nihai olarak" aynı hale gelebilir. Sosyal ağlardaki beğeniler veya yorumlar için kabul edilebilir.

VT ile çalışırken yapılan yaygın hatalar

Deneyimli geliştiriciler bile sistemi yavaşlatan tipik hatalar yapar:

  • İndekslerin olmaması: Milyonlarca satır arasında indeks olmadan kayıt aramaya çalışmak, veritabanının her şeyi tek tek taramasına ("tam tablo taraması") neden olur, bu da performansı bitirir.
  • Aşırı normalizasyon: Verilerin çok sayıda küçük tabloya bölünmesi sorguları karmaşıklaştırır ve çalışmayı yavaşlatır. Bazen küçük bir tekrarlamaya izin vermek daha mantıklıdır.
  • "Moda göre" teknoloji seçimi: Basit bir kişi listesi için karmaşık bir grafik veritabanı veya küçük bir blog için güçlü bir analitik VTYS kullanmak.
  • Migrasyonların ihmal edilmesi: Versiyonlama betikleri kullanmak yerine üretim ortamında veritabanı yapısını manuel olarak değiştirmek. Bu, geliştirme ve üretim ortamlarının senkronizasyonunun bozulmasına yol açar.
  • N+1 problemi: Verileri birleştiren (JOIN) tek bir genel sorgu yerine, döngü içinde veritabanına yüzlerce küçük sorgu göndermek.

SSS: Popüler sorular

SQL ile NoSQL arasındaki temel fark nedir? SQL, katı tablo yapısına sahip ilişkisel veritabanları için bir sorgu dilidir. NoSQL ise esnek yapıya sahip (belgeler, grafikler) ve genellikle klasik SQL kullanmayan, yatay olarak daha iyi ölçeklenen veritabanları için genel bir terimdir.

Birincil anahtar ve yabancı anahtar nedir? Birincil Anahtar (Primary Key), bir tablodaki kaydın benzersiz tanımlayıcısıdır (örneğin, Kullanıcı ID'si). Yabancı Anahtar (Foreign Key), başka bir tablodaki birincil anahtara yapılan referanstır ve veriler arasında bir bağ oluşturur.

Dosyaları (resimleri) doğrudan veritabanında saklayabilir miyim? Teknik olarak mümkündür, ancak önerilmez. Bu, veritabanı boyutunu şişirir ve yedeklemeyi yavaşlatır. En iyi uygulama: VT'de yalnızca dosya yolunu saklamak, dosyaların kendilerini ise dosya deposunda veya bulutta (S3) tutmaktır.

Replikasyon nedir? Bu, verilerin ana sunucudan (master) ek sunuculara (replica) kopyalanması sürecidir. Güvenilirliği artırmak (master çökerse replica yükü devralır) ve okumayı hızlandırmak (okuma replicalar arasında dağıtılır) için kullanılır.