SQL DATA Anormallikleri ve Normalizasyon (Anomalies ve Normalization)

SQL DATA Anormallikleri

Insertion Anomaly (Ekleme Anormalliği)

4 sütunlu bir tablomuz olduğunu varsayalım. Bu sütunlar OgrenciID, OgrenciAdi, OgrenciAdres, OgrenciNo olsun. Şimdi yeni bir öğrenci okula kaydolduğunda, ilk üç sütunu doldurabilirsiniz. Fakat yeni öğrencin henüz geçerli bir notu olmayacağından dolayı 4. sütunu NULL değerini atama zorunda kalacaksınız. İşte bu tablonuzda tutarsızlığa yol açacaktır.

Update Anomaly (Güncelleme Anormalliği)

İçerisinde CalisanAdi ve CalisanAdresi sütunları dahil toplam on sütunluk bir tablomuz olduğunu varsayalım. Şimdi bir çalışanımızın adresinin değiştiğinden tablomuzda güncelleme yapacağımız senaryosunu düşünelim. Ancak sorun şu ki, tablo normalleştirilmemişse, Tablo içerisinde bir çalışanın birden fazla girişi olabilir. Yani veri tekrarı
gerçekleşmiş olabilir. O nedenle böyle bir senaryoda veri güncellemesi yapılırken girişlerden bazıları gözden kaçabilir. Bu da tablomuzda tutarsızlığa yol açacaktır.

Deletion Anomaly (Silme Anormalliği)

Bu anormallik, önemli bilgilerin tablodan gereksiz yere silindiğini gösterir. Diyelim ki elimizde öğrencilerin bilgilerini ve aldıkları derslerini içeren bir tablomuz var (OgrenciID, OgrenciName, DersAdı, DesrSaati). Herhangi bir öğrenci okuldan ayrıldığında, o öğrencinin bilgileri silinir fakat öğrenci bilgisiyle birlikte ders bilgileri de silinir. Bu da tablomuzda önemli bilgilerin silinmesine yol açar.

SQL Normalizasyon (Normalization) Nedir?

İlişkisel Veri tabanların da veri tekrarını engellemek, ekleme, güncelleme, silme anormalliklerini ortadan kaldırmak için kullanılan kavramsal bir yaklaşımdır.

Veri normalleştirme, genellikle net ve doğru verilerin geliştirilmesi olarak kabul edilir. Ancak daha derine inersek, veri normalleştirmenin anlamı veya amacı iki yönlüdür:

  • Veri normalleştirme, verilerin tüm kayıtlarda ve alanlarda benzer görünecek şekilde düzenlenmesidir.
  • Veri normalleştirme, giriş türlerinin uyumunu arttırır ve yüksek kaliteli veriler sağlar.

FIRST NORMAL FORM (1.NF)

Veri normalleştirmenin en temel biçimi, bir grupta tekrar eden veriş girişlerin olmamasını sağlayan 1NF modelidir.

  • Tekrar eden sütun yapıları olmamalı.
  • Satırlarda veri tekrarı olmamalı.
  • Veriler özel karakterler ile ayrılmamalı.
  • Her tabloda Primary key (Birincil anahtar) tanımlanmalı.

SECOND NORMAL FORM (2.NF)

  • 1. NF uygulanmalı.
  • Anahtar olmayan bütün sütunlar Primary key’ tam (Fonksiyonel) bağımlı olmalı.
  • Kısmi bağımlılık ortadan kaldırılmalı.

Örneğin, bir kişinin adını, adresini, cinsiyetini, ürün satın alıp almadığını ve ayrıca ürün türlerini kaydediyorsunuz. Ürün türleri, her kişinin adına karşılık gelen bir foreign key ile farklı bir tabloda tutulmalıdır.

THIRD NORMAL FORM (3.NF)

  • 2. NF uygulanmalı.
  • Geçişken bağımlılık kaldırılmalı.

Örneğin, bir kişinin adını, adresini ve cinsiyetini kaydediyorsunuz ancak geri dönüp bir kişinin adını değiştiriyorsunuz. Bunu yaptığınızda, cinsiyet de değişebilir. Bunu önlemek için, 3NF’de cinsiyete bir foreign key ve cinsiyeti depolamak için yeni bir tablo ataması yapılır.

SQL Normalizasyon (Normalization) Avantajları Nedir?

Normalleştirme formlarını daha iyi anlamaya başladığınızda, verilerinizi tablolara ve seviyelere ayırırken kurallar daha net hale gelecektir. Bu tablolar daha sonra bir kuruluştaki herkesin bilgi toplamasını ve kopyalanmayan doğru verileri toplamasını kolaylaştıracaktır.

Veri Normalleştirmenin Faydaları

  • Daha çok alan
  • Daha hızlı soru cevaplama
  • Daha iyi segmentasyon


Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir