İletişim

Veritabanı Nedir?

Kısa tanım

Veritabanı, verilerin düzenli, kalıcı ve sorgulanabilir biçimde saklandığı yapılandırılmış veri topluluğudur. Veriye; kaydetme, sorgulama, eşzamanlı erişim ve yetki yönetimini üstlenen veritabanı yönetim sistemi (VTYS) aracılığıyla erişilir. Veritabanları temel olarak tablolarla çalışan ilişkisel (SQL) sistemler ile doküman, anahtar-değer veya graf gibi farklı modeller kullanan NoSQL sistemler olarak ikiye ayrılır. PostgreSQL ve MySQL yaygın ilişkisel örneklerdir.

Diğer adları: DB, veri tabanı, database, VTYS

Uygulamanın sorgularının veritabanı motorunda işlenip tablolar ve indeksler üzerinden kalıcı diskteki verilere ulaştığı katman diyagramı

Veritabanı ile VTYS aynı şey değil

Gündelik dilde ikisi aynı anlamda kullanılsa da veritabanı verinin kendisidir; veritabanı yönetim sistemi (VTYS, İngilizcesiyle DBMS) ise bu veriyi saklayan, sorgulayan, aynı anda gelen istekleri düzenleyen ve yetkileri yöneten yazılımdır. PostgreSQL, MySQL, SQL Server, MongoDB ve Redis birer VTYS'dir. Uygulamalar veriye dosya okuyarak değil, VTYS'ye sorgu göndererek ulaşır; dışarıya veri sunmaları gerektiğinde de veritabanını doğrudan açmak yerine araya bir API koyarlar.

İlişkisel veritabanları

İlişkisel modelde veri, satır ve sütunlardan oluşan tablolarda tutulur; tablolar birbirine anahtarlarla bağlanır ve SQL ile sorgulanır. Şema önceden tanımlanır: bir sütunun tipi, boş bırakılıp bırakılamayacağı ve hangi tabloya referans verdiği veritabanı tarafından zorunlu kılınır. Açık kaynaklı PostgreSQL bu ailenin olgun örneklerinden biridir; ilişkisel yapının yanında JSON verisi, tam metin arama ve uzantılar aracılığıyla vektör araması gibi yetenekler de sunar.

SELECT c.name, SUM(o.total) AS revenue
FROM customers c
JOIN orders o ON o.customer_id = c.id
WHERE o.created_at >= '2026-01-01'
GROUP BY c.name
ORDER BY revenue DESC
LIMIT 10;

Bu sorgu iki tabloyu müşteri kimliği üzerinden birleştirip yılbaşından bu yana en çok ciro yapan on müşteriyi listeler. Verinin tek yerde tutulması ve ilişkilerin veritabanı tarafından korunması, bu tür soruları güvenilir biçimde cevaplamayı mümkün kılar.

ACID: işlemlerin güvencesi

İlişkisel veritabanlarının en değerli özelliği, birden fazla adımdan oluşan işlemleri (transaction) güvenle yürütmeleridir. Bu güvence ACID kısaltmasıyla özetlenir:

  • Atomicity (bölünmezlik): İşlemin bütün adımları ya birlikte gerçekleşir ya da hiçbiri gerçekleşmez. Para bir hesaptan düşülüp diğerine eklenemezse düşme işlemi de geri alınır.
  • Consistency (tutarlılık): İşlem, veritabanını tanımlı kurallara uyan bir durumdan yine kurallara uyan bir duruma taşır.
  • Isolation (yalıtım): Aynı anda çalışan işlemler birbirinin yarım kalmış sonuçlarını görmez; yalıtımın derecesi seçilen yalıtım seviyesine bağlıdır.
  • Durability (kalıcılık): Onaylanmış bir işlem, hemen ardından sunucu çökse bile kaybolmaz.

PostgreSQL belgelerindeki işlemler bölümü, bu kavramları somut bir banka transferi örneğiyle anlatır.

NoSQL veritabanları

NoSQL, ilişkisel tablo modelini kullanmayan veritabanları için kullanılan geniş bir şemsiye terimdir. Başlıca türleri şunlardır:

  • Doküman veritabanları (ör. MongoDB): Kayıtları JSON benzeri esnek dokümanlar olarak saklar.
  • Anahtar-değer depoları (ör. Redis): Bir anahtara karşılık gelen değeri çok hızlı okuyup yazar; sıklıkla önbellek olarak kullanılır.
  • Geniş sütunlu veritabanları (ör. Cassandra): Çok yüksek yazma hacmini birden fazla sunucuya dağıtmak için tasarlanmıştır.
  • Graf veritabanları (ör. Neo4j): Kayıtlar arasındaki ilişkileri birinci sınıf veri olarak saklar.
  • Vektör veritabanları: Metin veya görsellerin embedding temsillerini saklayıp anlamca birbirine yakın kayıtları bulmak için kullanılır.

“NoSQL daha hızlıdır” ya da “NoSQL'de işlem güvencesi yoktur” gibi genellemeler yanıltıcıdır. Bazı NoSQL sistemleri belirli koşullarda ACID işlemleri destekler; birçok ilişkisel veritabanı da esnek JSON alanlarını rahatça işler. Seçimi etiket değil, verinin şekli ve erişim biçimi belirlemelidir.

Seçim yaparken sorulacak sorular

  • Veriler arasında çok sayıda ilişki var mı, raporlama ve tutarlılık ne kadar kritik? Sipariş, fatura, stok gibi iş verileri için ilişkisel bir veritabanı çoğu zaman en güvenli başlangıçtır.
  • Verinin yapısı sık ve öngörülemez biçimde değişiyor mu?
  • Okuma mı ağır basıyor, yazma mı? Veri tek bir sunucuya sığacak mı?
  • Yedekleme, geri yükleme ve izleme nasıl yapılacak? Hiç geri yüklenip denenmemiş bir yedeğin çalışacağından emin olunamaz.

Bir mikroservis mimarisinde her servisin kendi veritabanına sahip olması yaygın bir ilkedir; bu da aynı projede birden fazla veritabanı türünün yan yana kullanılmasına yol açabilir.

İlgili terimler

← Sözlüğe dön