6.1 | Firebase ve SQL: Veri Kaydetme Sanatı

Yayınlanma Tarihi: 2026-05-13

Uygulamanız kapandığında uçup gitmesini istemediğiniz her bilgi (kullanıcı adı, son çözülen alıştırma, kazanılan puanlar) bir veri tabanına ihtiyaç duyar. Ancak her veri aynı yöntemle saklanmaz. Yanlış veri yapısı seçmek, ileride projenizin yavaşlamasına veya ajanın karmaşık sorgular içinde kaybolmasına neden olur.

1. SQL: Düzenin ve İlişkilerin Gücü

SQL (Structured Query Language), verileri birbirine bağlı tablolar halinde saklar.

  • Ne Zaman Kullanılır? Verileriniz arasında sıkı bağlar varsa. Örneğin: "Bir öğrenci birden fazla kursa kayıtlıdır ve her kursun birden fazla öğretmeni vardır."
  • Ajan Denetimi: Ajan bazen bu tablolar arasındaki bağlantıları (Relations) kurarken hata yapabilir. Kod okuryazarlığınızla tabloların birbirini "tekrar etmediğinden" emin olmalısınız.

[Image of a relational database schema showing tables and relationships]

2. Firebase (NoSQL): Hız ve Esneklik

Firebase, verileri tablolar yerine daha çok bir "klasör-dosya" yapısı (JSON) gibi saklar. Flutter ile dünyanın en popüler ikilisidir.

  • Gerçek Zamanlı Veri: Bir kullanıcı puan kazandığında, veri tabanı güncellenir ve uygulama bunu saniyeler içinde ekrana yansıtır.
  • Neden Firebase? Kurulumu çok hızlıdır ve sunucu yönetimiyle uğraşmanıza gerek kalmaz; her şeyi Google halleder.

3. Ajanın "Veri Mimarlığı" Sınırları

Ajan bir veri tabanı şeması çizebilir maar şu iki noktada sizin rehberliğinize muhtaçtır:

  1. Güvenlik Kuralları: Ajan veriyi kaydeder maar o veriye kimlerin erişebileceğini (Security Rules) belirlemek sizin sorumluluğunuzdadır. Ajanın yazdığı açık bir kural, tüm verilerinizin çalınmasına neden olabilir.
  2. Sorgu Verimliliği: Ajan bazen veritabanından veri çekerken çok maliyetli yollar önerebilir. "Bu veriyi çekmek için tüm tabloyu okumana gerek var mı?" diye sormak, sizin profesyonel farkınızdır.

[Image of Firebase Firestore document structure vs SQL table structure]

4. Kod Okuryazarlığı ile Veri Takibi

Veri tabanındaki bir hata genellikle "boş ekran" olarak döner. Ajan koda bakıp "hata yok" derken, siz veri tabanı panelinde (Firebase Console) verinin gerçekten orada olup olmadığını denetlemelisiniz. Paneldeki veriyi okuyabilmek, kodun neden çalışmadığını anlamanın %50'sidir.


Sözlük (Glossary)

  • SQL (Relational Database): Verilerin satır ve sütunlardan oluşan tablolar halinde saklandığı sistem.
  • NoSQL (Document-based): Verilerin daha esnek, belge bazlı yapılarda saklandığı sistem (örn: Firestore).
  • Schema (Şema): Veri tabanındaki tabloların ve bu tabloların birbirleriyle olan ilişkilerinin genel planı.
  • Security Rules: Veri tabanındaki verilere kimin okuma veya yazma izni olduğunu belirleyen güvenlik protokolleri.

Sonraki Adım: 6.2 | Cloud Functions: Bulutta Kod Koşturmak.