Bir veritabani, verinin duzenli bicimde saklandigi, guncellendigi ve sorgulandigi sistemdir. Ama tek bir veritabani turu yoktur: iliskisel sistemler, NoSQL aileleri, bellek ici motorlar ve analitik depolar farkli ihtiyaclara gore tasarlanmistir. Bu rehber, veritabani turlerini sinilandirir, her ailenin nerede parladigini anlatir ve populer urunleri kisaca tanitip ayrintili yazilara yonlendirir.

Veritabani Nedir?

Veritabani, birbiriyle iliskili verileri disk ya da bellek uzerinde yapisal bir bicimde tutan bir koleksiyondur. Bu veriyi yoneten yazilima ise veritabani yonetim sistemi (DBMS) denir. DBMS; veriyi yazma, okuma, guncelleme ve silme islemlerini, ayni anda birden fazla kullanicinin erisimini, yetkilendirmeyi ve dayanikliligi ustlenir.

Cogu ciddi is uygulamasi verinin butunlugunu ACID ozellikleriyle (Atomiklik, Tutarlilik, Izolasyon, Dayaniklilik) garanti etmek ister. Bazi dagitik sistemler ise olceklenebilirlik ugruna daha gevsek tutarlilik modelleri (nihai tutarlilik) tercih eder. Bir veritabani turu secerken bu dengeyi anlamak belirleyicidir.

Veritabani ile duz dosya (orn. bir metin ya da tablo dosyasi) arasindaki temel fark, DBMS'in sagladigi guvencelerdir: eszamanli erisimde kilitleme, kismi guncellemede geri alma, yetkilendirme ve sorgulama icin optimize edilmis indeksler. Kucuk bir veri seti icin dosya yeterli olabilir; veri buyudukce ve birden fazla kullanici eristikce bir DBMS neredeyse zorunlu hale gelir.

Veritabani Turleri Nasil Siniflandirilir?

Veritabanlari birden fazla eksende siniflandirilabilir: veri modeline gore (iliskisel, dokuman, anahtar-deger, grafik, kolon), verinin nerede tutuldugu (disk tabanli, bellek ici), is yukune gore (islemsel/OLTP, analitik/OLAP) ve mimariye gore (tek dugum, dagitik). Asagidaki tablo temel aileleri ozetler.

AileVeri modeliTipik kullanimOrnekler
Iliskisel (RDBMS)Tablolar, satir ve sutunlar; SQLIslemsel is uygulamalari, finans, ERPPostgreSQL, MySQL, Oracle
NoSQL - DokumanJSON benzeri belgelerIcerik, kataloglar, esnek semali veriMongoDB, Couchbase
NoSQL - Anahtar-DegerAnahtar -> deger ciftleriOnbellek, oturum, sayaclarRedis, DynamoDB
NoSQL - Kolon AilesiGenis kolon yapilariCok yuksek yazma hacmi, zaman serisiCassandra, HBase
NoSQL - GrafikDugum ve kenarlarIliski agirlikli veri, oneri, dolandiricilikNeo4j
Bellek iciCogunlukla RAM'deDusuk gecikme, gercek zamanliRedis, Oracle TimesTen
Analitik (OLAP)Cogunlukla kolon tabanli depolamaRaporlama, veri ambari, BIVertica, DuckDB, SAP HANA

Iliskisel Veritabanlari (RDBMS)

Iliskisel veritabanlari veriyi tablolar halinde tutar; her tablo satirlardan (kayit) ve sutunlardan (alan) olusur. Tablolar arasindaki baglar birincil ve yabanci anahtarlarla kurulur. Sorgu dili olarak standartlasmis SQL kullanilir ve cogu sistem ACID islemlerini destekler. Iyi tanimli bir sema, veri butunlugunu ve tutarli iliskileri saglar.

sql
-- Basit bir iliskisel sorgu: musterileri siparisleriyle birlestirme
SELECT m.ad, COUNT(s.id) AS siparis_sayisi
FROM musteriler m
LEFT JOIN siparisler s ON s.musteri_id = m.id
GROUP BY m.ad
ORDER BY siparis_sayisi DESC;

Iliskisel model; muhasebe, e-ticaret, ERP ve genel is uygulamalari gibi tutarliligin kritik oldugu alanlarda uzun suredir standarttir. Guclu tarafi netlik ve butunluk; olceklenirken (ozellikle yatay olcekte) ise ek tasarim caba gerektirebilir. Normalizasyon ile veri tekrari azaltilir; indeksler ile sorgular hizlandirilir; islemler (transaction) ile birden cok degisiklik tek bir butun olarak uygulanir ya da tumuyle geri alinir.

Iliskisel sistemlerin buyuk avantaji olgunluklaridir: on yillara dayanan bir ekosistem, genis arac desteji, yerlesik yedekleme ve kurtarma pratikleri ile buyuk bir uzman toplulugu mevcuttur. Bu nedenle cogu proje icin makul bir baslangic noktasi olusturur.

NoSQL Veritabanlari

NoSQL, katı iliskisel semaya baglı kalmayan cesitli veritabani ailelerinin ortak adidir. Amac cogu zaman esneklik ve yatay olceklenebilirliktir. Dort ana alt aile vardir:

  • Dokuman veritabanlari: Veriyi JSON benzeri belgelerde tutar; sema esnektir. Icerik yonetimi ve kataloglar icin yaygindir (orn. MongoDB).
  • Anahtar-deger depolari: En basit model; bir anahtara karsilik bir deger. Onbellek ve oturum verisi icin cok hizlidir (orn. Redis).
  • Kolon ailesi (wide-column): Cok buyuk yazma hacimleri ve zaman serisi verisi icin olceklenir (orn. Apache Cassandra).
  • Grafik veritabanlari: Dugum ve kenarlarla iliskileri modeller; sosyal ag, oneri ve dolandiricilik analizi icin uygundur (orn. Neo4j).

NoSQL sistemleri genellikle olceklenebilirlik icin bazi durumlarda daha gevsek tutarlilik (nihai tutarlilik) sunar. Bu, dogru kullanim senaryosunda avantaj, yanlis senaryoda ise risk olabilir; secim is gereksinimlerine baglidir.

NoSQL, iliskisel veritabanlarinin yerini alan degil, onlari tamamlayan bir yaklasim olarak dusunulmelidir. Cok sayida modern sistem, ayni uygulamada birden fazla veritabanini bir arada kullanir (polyglot persistence): islemsel cekirdek iliskisel bir sistemde, onbellek bir anahtar-deger deposunda, arama ise ayri bir motorda tutulabilir.

SQL mi NoSQL mi?

Bu ikisi arasindaki secim cogu zaman 'hangisi daha iyi' degil, 'hangisi bu ise uygun' sorusudur. Iliskisel sistemler guclu tutarlilik ve karmasik iliskiler icin, NoSQL sistemleri esnek sema ve belirli olcekleme desenleri icin one cikar.

KriterIliskisel (SQL)NoSQL
SemaOnceden tanimli, katıEsnek, degisken
Sorgu diliStandart SQLUrune ozgu API/sorgu
TutarlilikGenelde guclu (ACID)Cogu zaman ayarlanabilir / nihai
Olcekleme egilimiDikey; yatay icin ek tasarimYatay olcek icin tasarlanmis
Uygun senaryoFinans, ERP, iliskisel veriBuyuk hacim, esnek/degisken veri

Bellek Ici Veritabanlari

Bellek ici (in-memory) veritabanlari birincil veriyi diskten cok RAM uzerinde tutar. Boylece disk gecikmesi ortadan kalkar ve okuma-yazma islemleri cok dusuk gecikmeyle tamamlanabilir. Bedeli, RAM'in disk'e gore pahali ve kalici olmamasidir; bu nedenle bu sistemler genellikle dayaniklilik icin diske gunluk (log) ya da anlik goruntu (snapshot) yazar.

Bu aile; onbellekleme, oturum yonetimi, gercek zamanli skor tablolari, oneri motorlari ve dusuk gecikme gerektiren islemsel yukler icin tercih edilir. Iliskisel bir arayuz sunan bellek ici sistemler de vardir; ornegin ilgili urunler icin Oracle TimesTen Nedir? ve VoltDB Nedir? yazilarina goz atabilirsiniz.

Analitik Veritabanlari (OLAP)

Analitik veritabanlari cok sayida satir uzerinde toplama, gruplama ve raporlama sorgularini hizli calistirmak icin tasarlanir. Bunlarin cogu kolon tabanli (columnar) depolama kullanir: veriyi satir satir degil sutun sutun sakladiklari icin, yalnizca gereken sutunlari okuyup buyuk taramalari verimli yaparlar. Islemsel (OLTP) sistemlerden farkli olarak amac, tekil kayit guncellemeleri degil buyuk olcekli analizdir.

OzellikOLTP (islemsel)OLAP (analitik)
AmacGunluk islemler, kayit guncellemeRaporlama, toplu analiz
Tipik sorguAz satir, sik yazmaCok satir, agirlikli okuma
Depolama egilimiCogunlukla satir tabanliCogunlukla kolon tabanli
OrnekSiparis almaAylik satis trendi raporu

Bu alanda MPP (massively parallel processing) mimarili Vertica, tek surecte calisan gomulu analitik motor DuckDB ve hem bellek ici hem kolon tabanli calisan SAP HANA one cikan orneklerdir. DuckDB icin siklikla kullanilan benzetme, analitik is yukleri icin bir tur gomulu motor olmasidir.

Populer Iliskisel Veritabani Urunleri

Iliskisel dunyada acik kaynaktan kurumsal ticari sistemlere kadar genis bir yelpaze vardir. En yaygin kullanilan urunlerin her biri icin ayrintili tanitim yazilarina asagidan ulasabilirsiniz:

NewSQL ve Dagitik SQL

NewSQL, iliskisel modelin ve SQL'in taniditigi tutarlilik ile NoSQL sistemlerinin yatay olceklenebilirligini birlestirmeyi hedefleyen bir yaklasimdir. Bu sistemler genellikle birden fazla dugume dagilir, ancak ACID islemleri ve SQL arayuzu sunmayi surdururler.

  • Google Cloud Spanner Nedir? - kuresel olcekte dagitik, guclu tutarlilik hedefleyen yonetilen iliskisel servis.
  • OceanBase Nedir? - yuksek olcek icin tasarlanmis dagitik iliskisel veritabani.
  • VoltDB Nedir? - dusuk gecikmeli islemler icin bellek ici, olceklenebilir bir SQL sistemi.

Masaustu ve Gomulu Veritabanlari

Her veritabani ayri bir sunucu gerektirmez. Gomulu (embedded) ve masaustu veritabanlari uygulamanin icine ya da tek bir kullanicinin makinesine yerlesir; kurulum ve yonetim yuku dusuktur. Kucuk uygulamalar, mobil yazilimlar, prototipler ve tek kullanicili senaryolar icin idealdir.

Bulut Veritabani Servisleri

Bulut saglayicilari, veritabanlarini yonetilen servis olarak sunar: yedekleme, yama, olceklendirme ve yuksek erisilebilirlik gibi isletim yuklerini saglayici ustlenir. Boylece ekipler altyapi yerine uygulamaya odaklanabilir. Kurulum bicimleri, tercihen kendi sunucunuzda calistirmaya gore farkli avantaj ve odunler tasir.

Google Cloud SQL, Azure SQL ve Amazon RDS gibi secenekleri; ne zaman yonetilen servis, ne zaman kendi sunucunuzu tercih etmeniz gerektigiyle birlikte Bulut Veritabani Servisleri: Cloud SQL, Azure SQL, Amazon RDS yazisinda inceliyoruz.

Dogru Veritabanini Nasil Secersiniz?

Tek bir 'en iyi' veritabani yoktur; dogru secim is yukune baglidir. Karar verirken su sorulari sormak faydalidir:

  • Veri modeliniz ne? Guclu iliskiler ve tutarlilik mi, yoksa esnek sema mi one cikiyor?
  • Is yukunuz islemsel (OLTP) mi, analitik (OLAP) mi, yoksa ikisi karisik mi?
  • Gecikme hedefiniz nedir? Bellek ici bir katman gerekli mi?
  • Olcekleme ihtiyaciniz dikey mi (daha guclu tek makine) yoksa yatay mi (cok dugum)?
  • Isletim modeli: kendi sunucunuzda mi, yoksa yonetilen bulut servisinde mi calisacak?
  • Lisans ve maliyet: acik kaynak mi, ticari lisans mi? Ekip deneyimi ve ekosistem destegi ne durumda?