Instagram’a girdiğinde takip ettiğin herkesin paylaşımları saniyeler içinde önüne geliyor. Bankadan para çektiğinde bakiyen anında düşüyor. Bir alışveriş sitesinde “kaşmir kazak” diye aradığında milyonlarca ürün arasından doğru olanlar listeleniyor. Bütün bunların arkasında aynı şey var: veritabanı.
Kısa tanım
Veritabanı, verilerin düzenli bir şekilde saklanmasını, hızlıca bulunmasını ve güvenle güncellenmesini sağlayan sistem. Veritabanını yöneten yazılıma da veritabanı yönetim sistemi deniyor; MySQL, PostgreSQL, SQLite, MongoDB bunların en bilinenleri.
Excel’den farkı ne?
İlk bakışta bir veritabanı tablosu Excel’deki bir sayfaya benziyor: satırlar ve sütunlar. Fark, ölçek ve güvenilirlikte ortaya çıkıyor:
- Boyut: Excel bir milyon satır civarında zorlanır; veritabanları milyarlarca kaydı tutabilir.
- Aynı anda çok kullanıcı: Bir Excel dosyasını aynı anda bin kişi düzenleyemez. Bir banka veritabanına ise saniyede binlerce işlem gelir ve hiçbiri birbirini bozmaz.
- Kurallar: Veritabanına “not sütununa sadece sayı girilebilir” ya da “aynı T.C. kimlik numarası iki kez kaydedilemez” gibi kurallar koyabilirsin. Excel’de bu kuralları korumak çok daha zor.
- Sorgulama: Veritabanına özel bir dille soru sorarsın ve cevabı anında alırsın.
SQL: veritabanına soru sormanın dili
Verileri birbirine bağlı tablolarda tutan veritabanlarına ilişkisel veritabanı deniyor. Bu veritabanlarıyla konuşmak için kullanılan dil SQL (Structured Query Language). SQL’in güzel tarafı, neredeyse İngilizce cümle gibi okunması:
SELECT ad, notu FROM ogrenciler WHERE notu >= 50 ORDER BY notu DESC;
Bu satırı şöyle okuyabilirsin: “Öğrenciler tablosundan, notu 50 ve üstü olanların adını ve notunu getir; nota göre büyükten küçüğe sırala.”
Python ile ilk SQL sorgun
Veritabanı denemek için bir sunucu kurman gerekmiyor. Python’un içinde hazır gelen sqlite3 modülüyle, Colab’da bile bir veritabanı kurup sorgulayabilirsin:
import sqlite3baglanti = sqlite3.connect(":memory:") # bellekte geçici bir veritabanıimlec = baglanti.cursor()imlec.execute("CREATE TABLE ogrenciler (ad TEXT, bolum TEXT, notu INTEGER)")imlec.executemany( "INSERT INTO ogrenciler VALUES (?, ?, ?)", [("Ayşe", "Bilgisayar", 85), ("Mert", "Elektrik", 45), ("Zeynep", "Bilgisayar", 92)],)for satir in imlec.execute("SELECT ad, notu FROM ogrenciler WHERE notu >= 50 ORDER BY notu DESC"): print(satir)# ('Zeynep', 92)# ('Ayşe', 85)for satir in imlec.execute("SELECT bolum, AVG(notu) FROM ogrenciler GROUP BY bolum"): print(satir)# ('Bilgisayar', 88.5)# ('Elektrik', 45.0)
İlk sorgu geçen öğrencileri, ikincisi her bölümün not ortalamasını veriyor. Python derslerinde aynı işleri döngü ve sözlüklerle yapmıştık; SQL’de ise ne istediğini söylüyorsun, nasıl yapılacağına veritabanı karar veriyor.
NoSQL: tablo dışında bir dünya
Her veri tabloya rahat sığmaz. Bir sosyal medya gönderisini düşün: Bazılarında tek fotoğraf var, bazılarında on fotoğraf; bazılarında konum var, bazılarında yok; yorum sayısı sıfırdan binlere kadar değişiyor. NoSQL (“Not only SQL”, yani sadece SQL değil) veritabanları bu tür esnek veriler için geliştirildi.
En yaygın NoSQL türü doküman veritabanı. Burada her kayıt, Python sözlüğüne çok benzeyen bir belge:
{ "kullanici": "ayse", "metin": "Bugün ilk SQL sorgumu yazdım!", "fotograflar": ["kod.png"], "etiketler": ["python", "sql"], "begeni": 42}
Bir sonraki gönderide konum alanı olabilir, fotograflar hiç olmayabilir; veritabanı buna itiraz etmez. MongoDB bu türün en bilinen örneği. Anahtar-değer veritabanları (Redis gibi) ve graf veritabanları da NoSQL ailesinden.
Hangisi ne zaman?
| SQL (ilişkisel) | NoSQL | |
|---|---|---|
| Veri yapısı | Sabit tablolar, belirli sütunlar | Esnek; her kayıt farklı olabilir |
| Güçlü olduğu yer | Tutarlılık, tablolar arası ilişkiler | Hızlı büyüme, değişken yapılar |
| Tipik örnek | Banka hesapları, öğrenci kayıtları, siparişler | Sosyal medya akışı, oyun verileri, sensör kayıtları |
| Bilinen sistemler | PostgreSQL, MySQL, SQLite | MongoDB, Redis |
Yeni başlıyorsan önce SQL öğren. Veri analisti ve veri bilimci iş ilanlarının büyük kısmı SQL istiyor ve bir kez öğrendiğinde hemen her ilişkisel veritabanında kullanabiliyorsun. 3 Kasım’da başlayacak Sınav ve Mülakat serisinin ilk yazısı da tam olarak SQL soru tipleri üzerine.
Bir cümlede
Veritabanı, verini düzenli, güvenli ve hızlı erişilebilir tutan sistemdir; SQL ona tablolarla, NoSQL esnek belgelerle soru sormanın yoludur.

Bir yanıt yazın