Veritabanı Tasarımı ve Normalizasyon
Varlık ilişki modeli, normal formlar, indeksleme stratejisi ve bilinçli denormalizasyon.
İyi bir veritabanı şeması, uygulamanın on yıl taşıyabileceği bir omurgadır. Kötü bir şema ise her yeni özellikte yamalarla büyüyen bir borçtur.
Varlık ilişki modeli
Önce iş dünyasındaki nesneler (müşteri, sipariş, ürün, lisans) ve aralarındaki ilişkiler (bir müşterinin çok siparişi, bir siparişin çok kalemi) çıkarılır. Tablolar bu modelden türer, tersinden değil.
Normal formlar
- Birinci normal form: her hücrede tek değer, tekrar eden grup yok
- İkinci normal form: her sütun tüm birincil anahtara bağlı, parçasına değil
- Üçüncü normal form: anahtar dışı sütunlar birbirine değil yalnızca anahtara bağlı
Normalizasyon veri tekrarını ve güncelleme anomalilerini önler: bir bilgi tek yerde tutulur, tek yerden değişir.
İndeksleme stratejisi
- Sık filtrelenen ve birleştirilen sütunlarda indeks
- Birleşik indekslerde sütun sırası sorgu kalıbına göre
- Aşırı indeks yazma maliyetini artırır: her ekleme indeksleri de günceller
- Yavaş sorgu günlüğü ile gerçek ihtiyaç ölçülür, tahminle indeks eklenmez
Bilinçli denormalizasyon
Raporlama ve okuma yoğun ekranlarda, hesaplanmış bir değeri (örneğin sipariş toplamı) saklamak sorguyu hızlandırır. Bu bir kural ihlali değil, ölçülmüş bir ödünleşmedir; tutarlılık uygulama katmanında güvence altına alınır.
Türkçe ve karakter kümesi
Veritabanı, tablolar ve sütunlar tam Unicode (utf8mb4) ve Türkçe sıralamaya uygun karşılaştırma ile kurulur. Ş, İ, Ğ karakterleri arama ve sıralamada doğru davranmalıdır.