Normalizasyon, veri tekrarını azaltmak ve bütünlüğü iyileştirmek için verileri düzenler. Amaç, her veriyi yalnızca bir kez saklamaktır. Bir müşterinin adresi her sipariş kaydında görünüyorsa, adres değişikliği yüzlerce yerde güncellenmelidir. Bir tanesini bile atlarsanız, veriler tutarsız olur. Normalizasyon, adresi bir müşteri tablosuna taşır. Siparişler, müşteriyi kimlik numarasıyla referans alır. Adres yalnızca bir kez saklanır. Orada değiştirirseniz, her sipariş yeni değeri yansıtır.
Bu süreç normal formları takip eder. Birinci normal form tekrarlayan grupları ortadan kaldırır. İkinci normal form kısmi bağımlılıkları kaldırır. Üçüncü normal form geçişli bağımlılıkları kaldırır. Her form, fazlalığı daha da azaltan kısıtlamalar ekler. Daha yüksek formlar mevcuttur ancak pratikte nadiren kullanılır. Çoğu işlem veritabanı üçüncü normal formu hedefler. Normalleştirmenin dezavantajları vardır. Daha fazla tablo, daha fazla birleştirme anlamına gelir ve bu da sorguları yavaşlatabilir. İşlemsel sistemler için, bütünlük faydaları performans maliyetinden daha ağır basar. Analitik sistemler için bunun tersi genellikle doğrudur. Geniş tablolar ve gereksiz sütunlara sahip normalleştirilmemiş şemalar, birleştirmelerden kaçındıkları için daha hızlı sorgulanır. Bu nedenle veri ambarları, kasıtlı olarak normalleştirmeyi ortadan kaldıran yıldız ve kar tanesi şemaları kullanır. Doğru normalleştirme seviyesi iş yüküne bağlıdır. İşlemsel sistemler normalleştirir. Analitik sistemler normalleştirmeyi ortadan kaldırır. Her ikisi de kendi amaçları için doğrudur.
Normal formlar
- Birinci normal form — tekrarlayan grup yok
- İkinci normal form — kısmi bağımlılık yok
- Üçüncü normal form — geçişli bağımlılık yok
- Boyce-Codd normal formu — üçüncü formun daha katı bir versiyonu
Normalizasyon bütünlükle ilgilidir. Her veriyi yalnızca bir kez saklarsanız, veriler tutarlı kalır. Birçok kez saklarsanız, tutarsızlık kaçınılmaz olur.
Comments
No comments yet. Be the first to share a thought.
Leave a comment