Anasayfaya Dön

SQLite ve Veritabanı Temelleri

SQLite, verilerin cihazda kalıcı olarak saklanmasını sağlayan en temel ve basit yerel veritabanıdır. 

SQLite ve Veritabanı Temelleri

Uygulamalarda kullanıcı ayarlarını, oyun skorlarını veya bir mesajlaşma geçmişini uygulama kapansa bile saklamamız gerekir. İşte bu noktada yerel veritabanları devreye girer.

1. Veritabanı Nedir?

En basit tanımıyla veritabanı, bilgilerin organize edilmiş bir koleksiyonudur. Veriler rastgele değil, belirli bir düzen içinde saklanır ki ihtiyaç duyduğumuzda onlara hızlıca ulaşabilelim.

  • Tablo: Verilerin satır ve sütunlar halinde tutulduğu yapıdır (Excel sayfası gibi düşünebilirsiniz).
  • Satır (Row/Record): Tek bir nesneye ait bilgileri tutar (Örn: Bir öğrencinin tüm bilgileri).
  • Sütun (Column/Field): Verinin türünü belirler (Örn: İsim, Yaş, Okul No).

2. SQLite Nedir?

SQLite, dünyada en çok kullanılan veritabanı motorlarından biridir. Onu "özel" yapan ve mobil cihazların vazgeçilmezi kılan özellikleri şunlardır:

  • Sunucusuzdur (Serverless): MySQL veya PostgreSQL gibi bir sunucu kurulumu gerektirmez. Veritabanı sadece cihazda duran bir dosyadan ibarettir.
  • Hafiftir: Çok az kaynak tüketir, bu da pil ve işlemci dostu olması demektir.
  • Sıfır Yapılandırma: Kurulum veya yönetici şifresi gerektirmez. Uygulama çalışınca veritabanı da çalışır.

SQLite dünyasında tablo ve sütunları oluştururken "Constraints" (Kısıtlamalar) ve "Data Types" (Veri Tipleri) olarak adlandırılır kavramları inceleyelim. 

3. SQLite Veri Tipleri ve Kısıtlamalar

1. Veri Tipleri (Data Types)

SQLite, diğer veritabanlarına göre daha esnektir ama temelde şu tipleri kullanır:

  • INTEGER: Tam sayılar için kullanılır (Örn: 1, 500, -12). numara sütununda olduğu gibi.
  • REAL: Ondalıklı sayılar için kullanılır (Örn: 3.14, 99.9).
  • Numeric: Girilen sayısal değeri Integer veya Real olarak ayırır. 
  • TEXT: Metinsel veriler, harfler ve karakterler için kullanılır (Örn: "Ahmet", "Bilgisayar").
  • BLOB: "Binary Large Object". Resim, ses veya dosya gibi ham verileri saklamak için kullanılır.
  • NULL: Değerin boş olduğu anlamına gelir.

2. Sütun Özellikleri ve Kısıtlamalar (Constraints)

PRIMARY KEY (Birincil Anahtar)

Bir tablodaki her satırı benzersiz (unique) kılan sütundur.

  • Örnek: T.C. Kimlik numaranız veya öğrenci numaranız gibidir.
  • Bir tabloda sadece bir tane Primary Key olabilir.
  • Bu sayede veritabanı, milyonlarca satır arasından aradığınız veriyi saniyeler içinde bulabilir.

AUTOINCREMENT (Otomatik Artırma)

Sadece INTEGER PRIMARY KEY ile kullanılır.

  • Siz yeni bir veri eklediğinizde (ID belirtmeseniz bile), SQLite bu değeri otomatik olarak 1, 2, 3... şeklinde artırır.
  • Bu, ID çakışmalarını önler ve işinizi kolaylaştırır.

NOT NULL (Boş Olamaz)

Bir sütunun mutlaka doldurulması gerektiğini belirtir.

  • isim TEXT NOT NULL dediğimizde, ismi yazılmayan bir öğrenciyi sisteme kaydedemezsiniz; hata verir.

3. Bilmen Gereken Diğer Önemli Özellikler

Ders anlatırken öğrencilere "Bunlar da var," diyebileceğin diğer kısıtlamalar şunlardır:

  • UNIQUE (Benzersiz): Bir değerin o sütunda sadece bir kez geçmesini sağlar.
    • Farkı: Primary Key değildir ama yine de tekrara izin vermez (Örn: E-posta adresi sütunu).
  • DEFAULT (Varsayılan Değer): Eğer kullanıcı bir değer girmezse, otomatik olarak atanacak değeri belirler.
    • Örnek: kayit_tarihi TEXT DEFAULT '2024-01-01'
  • CHECK (Kontrol): Verinin belirli bir kurala uymasını zorunlu kılar.
    • Örnek: yas INTEGER CHECK(yas > 18) (18 yaşından küçükleri kaydetmez).
  • FOREIGN KEY (Yabancı Anahtar): İki tabloyu birbirine bağlamak için kullanılır.
    • Örnek: Notlar tablosundaki bir ogrenci_id sütunu, Ogrenciler tablosundaki id'ye bağlıdır. Bir öğrenci silinirse notlarının da ne olacağını belirleyebilirsiniz.

Özet (Tablo Yapısı)

Bu komutları çalıştırdığında hafızada şöyle bir yapı oluşur:

id (PK, AI) isim (NOT NULL) numara (INT) bolum (TEXT)
1 Ali Can 101 Yazılım
2 Ayşe Yılmaz 102 Tasarım
Otomatik Zorunlu Sayı Metin

4. SQL Komutları (Temel CRUD İşlemleri)

SQLite ile konuşmak için SQL (Structured Query Language) dilini kullanırız. En temel dört işlemimize CRUD diyoruz:

İşlem SQL Komutu Açıklama
Create INSERT Yeni veri ekler.
Read SELECT Mevcut verileri okur/getirir.
Update UPDATE Verileri günceller.
Delete DELETE Verileri siler.

5. Örnek Bir Senaryo: Öğrenci Kayıt Sistemi

Diyelim ki bir sınıftaki öğrencileri kaydeden bir mobil uygulama yapıyoruz.

Adım 1: Tablo Oluşturma

Önce verilerimizi koyacağımız bir "kutu" (tablo) oluşturmalıyız.

CREATE TABLE Ogrenciler (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    isim TEXT NOT NULL,
    numara INTEGER,
    bolum TEXT
);
  • PRIMARY KEY AUTOINCREMENT: Her öğrenciye otomatik olarak benzersiz bir kimlik (ID) verir.