Veritabanınızı Normalleştirme: İlk Normal Form

Bu iki basit kural, veritabanınızı normalleştirmeye yardımcı olur

İlk Normal Form (1NF), organize bir veritabanı için temel kuralları belirler:

Bir veritabanının pratik tasarımını düşünürken bu kurallar ne anlama geliyor? Aslında oldukça basit.

1. Çoğaltma ortadan kaldırmak

İlk kural, bir tablonun aynı satırındaki verileri çoğaltmamamız gerektiğini belirtir. Veri tabanı topluluğunda, bu kavram bir tablonun atomikliği olarak adlandırılır. Bu kurala uygun tabloların atomik olduğu söylenir. Bu prensibi klasik bir örnekle inceleyelim: yönetici-bağımlı ilişkisini saklayan bir insan kaynakları veritabanındaki bir tablo. Örneğimizin amaçları doğrultusunda, her bir yöneticinin yalnızca bir yöneticisi olabilirken, her yöneticinin bir veya daha fazla astıya sahip olabileceği iş kuralını empoze edeceğiz.

Sezgisel olarak, bu bilgileri izlemek için bir liste veya elektronik tablo oluştururken, aşağıdaki alanları içeren bir tablo oluşturabiliriz:

Ancak, 1NF'nin uyguladığı ilk kuralı hatırlayın: Aynı tablodaki yinelenen sütunları kaldırın. Açıkçası, Subordinate1-Subordinate4 sütunları çoğaltılır. Bir an alın ve bu senaryo tarafından ortaya atılan sorunları düşünün. Bir yöneticinin yalnızca bir alt sınırı varsa, Subordinate2-Subordinate4 sütunları boşa harcanan depolama alanıdır (değerli bir veritabanı emtia). Dahası, bir yöneticinin halihazırda 4 astının bulunduğu durumu hayal edin - başka bir çalışanı alırsa ne olur? Bütün tablo yapısı değişiklik gerektirecektir.

Bu noktada, veritabanı acemileri için genellikle ikinci bir parlak fikir ortaya çıkıyor: Birden fazla sütuna sahip olmak istemiyoruz ve esnek bir miktarda veri depolama alanına izin vermek istiyoruz. Hadi böyle bir şey deneyelim:

Ve Subordinates alanı "Mary, Bill, Joe" formunda birden çok giriş içerecektir.

Bu çözüm daha yakın, ama aynı zamanda işaretin kısa düşüyor. Alt sütunlar hala yinelenen ve atomik değildir. Bir bağımlıyı eklemek veya kaldırmak gerektiğinde ne olur? Tablonun tüm içeriğini okuyup yazmamız gerekiyor. Bu durum büyük bir sorun değil, ama bir yöneticinin yüz çalışanı varsa ne olurdu? Ayrıca, gelecekteki sorgularda veri tabanından veri seçme işlemini zorlaştırır.

İşte 1NF'nin ilk kuralını sağlayan bir tablo:

Bu durumda, her bir bağımlı tek bir girişe sahiptir, ancak yöneticilerin birden çok kaydı olabilir.

2. Birincil Anahtarı Tanımlayın

Şimdi, ikinci kural hakkında: her satırı benzersiz bir sütun veya sütun grubuyla ( birincil anahtar ) tanımlayın? Yukarıdaki tabloya bir göz atabilir ve alt sütunun birincil anahtar olarak kullanılmasını önerebilirsiniz. Aslında, iş kollarımızın, her bir astığın yalnızca bir yöneticisi olabileceğini belirlemesi nedeniyle, alt sütun birincil anahtar için iyi bir adaydır. Ancak, masamızda saklamak için seçtiğimiz veriler bunu ideal çözümden daha az yapar. Jim adında başka bir çalışanı işe alırsak ne olur? Yönetici-astsal ilişkisini veritabanında nasıl saklarız?

Birincil anahtar olarak gerçekten benzersiz bir tanımlayıcı (çalışan kimliği gibi) kullanmak en iyisidir. Son masamız şöyle görünecekti:

Şimdi masamız ilk normal formda! Normalleştirmeyi öğrenmeye devam etmek istiyorsanız, bu sitedeki diğer makaleleri okuyun: