Skip to main content

İlk Normal Formda Veri Tabanı Oluşturmak

Veri Tabanı Normalizasyon (Nomal Form'lar) Ek Video (Mayıs Ayı 2024)

Veri Tabanı Normalizasyon (Nomal Form'lar) Ek Video (Mayıs Ayı 2024)
Anonim

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

  • Aynı tablodaki yinelenen sütunları ortadan kaldırın.
  • Her bir ilgili veri grubu için ayrı tablolar oluşturun ve her satırı benzersiz bir sütunla (birincil anahtar) tanımlayın.

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

Ç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:

  • yönetici
  • Subordinate1
  • Subordinate2
  • Subordinate3
  • Subordinate4

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:

  • yönetici
  • Astlar

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:

  • yönetici
  • ast

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

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:

  • Yönetici Kimliği
  • Alt Kimlik

Şimdi masamız ilk normal formda! Bunun ötesinde, daha fazla organizasyonla ilgili heyecan duyuyorsanız, veritabanınızı İkinci Normal Form'da ve Üçüncü Normal Form'da koymak için seçenekler vardır.