Normalleştirme nedir? 1NF, 2NF, 3NF, BCNF Veritabanı Örneği

İçindekiler:

Anonim

Normalleştirme nedir?

Normalleştirme , veri fazlalığını azaltan ve Ekleme, Güncelleme ve Silme Anormallikleri gibi istenmeyen özellikleri ortadan kaldıran bir veritabanı tasarım tekniğidir. Normalleştirme kuralları, daha büyük tabloları daha küçük tablolara böler ve ilişkileri kullanarak bunları birbirine bağlar. SQL'de Normalizasyonun amacı gereksiz (tekrarlayan) verileri ortadan kaldırmak ve verilerin mantıksal olarak depolanmasını sağlamaktır.

İlişkisel modelin mucidi Edgar Codd, Birinci Normal Formun tanıtılmasıyla verilerin normalleştirme teorisini önerdi ve teoriyi İkinci ve Üçüncü Normal Form ile genişletmeye devam etti. Daha sonra Boyce-Codd Normal Form teorisini geliştirmek için Raymond F. Boyce'ye katıldı.

Veritabanı Normal Formları

İşte Normal Formların bir listesi

  • 1NF (Birinci Normal Form)
  • 2NF (İkinci Normal Form)
  • 3NF (Üçüncü Normal Form)
  • BCNF (Boyce-Codd Normal Formu)
  • 4NF (Dördüncü Normal Form)
  • 5NF (Beşinci Normal Biçim)
  • 6NF (Altıncı Normal Form)

SQL sunucusunda Veri Normalleştirme Teorisi hala geliştirilmektedir. Örneğin, hatta 6 tartışmaları vardır inci Normal Form. Bununla birlikte, çoğu pratik uygulamada, normalleştirme en iyisini 3. Normal Formda elde eder . SQL Normalleştirme teorilerinin evrimi aşağıda gösterilmektedir.

Veritabanı Normal Formları

Örneklerle Veritabanı Normalleştirme

Veritabanı Normalleştirme Örneği , bir vaka çalışması yardımıyla kolayca anlaşılabilir. Bir video kitaplığının, kiralanan filmlerin bir veritabanını tuttuğunu varsayalım. Veritabanında herhangi bir normalleştirme olmadan, tüm bilgiler aşağıda gösterildiği gibi tek bir tabloda saklanır. Veritabanındaki Normalizasyonu tablo örneği ile anlayalım:

Burada Kiralanan Filmler sütununun birden çok değeri olduğunu görüyorsunuz . Şimdi 1. Normal Formlara geçelim:

1NF (Birinci Normal Form) Kuralları

  • Her tablo hücresi tek bir değer içermelidir.
  • Her kaydın benzersiz olması gerekir.

Yukarıdaki tablo 1NF-

1NF Örneği

Devam etmeden önce birkaç şeyi anlayalım -

ANAHTAR nedir?

ANAHTAR, bir tablodaki bir kaydı benzersiz olarak tanımlamak için kullanılan bir değerdir. Bir ANAHTAR, tek bir sütun veya birden çok sütunun kombinasyonu olabilir

Not: Bir kaydı benzersiz olarak tanımlamak için KULLANILMAYAN bir tablodaki sütunlara anahtar olmayan sütunlar denir.

Birincil Anahtar nedir?

Birincil, bir veritabanı kaydını benzersiz bir şekilde tanımlamak için kullanılan tek bir sütun değeridir.

Aşağıdaki özelliklere sahiptir

  • Birincil anahtar NULL olamaz
  • Birincil anahtar değeri benzersiz olmalıdır
  • Birincil anahtar değerleri nadiren değiştirilmelidir
  • Yeni bir kayıt eklendiğinde birincil anahtara bir değer verilmelidir.

Bileşik Anahtar nedir?

Bileşik anahtar, bir kaydı benzersiz şekilde tanımlamak için kullanılan birden çok sütundan oluşan birincil anahtardır

Veritabanımızda Robert Phil adında iki kişi var ama onlar farklı yerlerde yaşıyorlar.

Bu nedenle, bir kaydı benzersiz şekilde tanımlamak için hem Tam Ad hem de Adres gerekir. Bu bileşik bir anahtardır.

İkinci normal form 2NF'ye geçelim

2NF (İkinci Normal Form) Kuralları

  • Kural 1- 1NF'de olun
  • Kural 2- Tek Sütunlu Birincil Anahtar

Yukarıdaki tabloyu bölümlere ayırmadıkça basit veri tabanımızı 2. Normalleştirme formunda yapmak için ilerleyemeyeceğimiz açıktır .

1NF tablomuzu iki tabloya böldük. Tablo 1 ve Tablo2. Tablo 1 üye bilgilerini içermektedir. Tablo 2, kiralanan filmlerle ilgili bilgileri içermektedir.

Tablo 1 için birincil anahtar olan Membership_id adında yeni bir sütun ekledik. Kayıtlar, üyelik kimliği kullanılarak Tablo 1'de benzersiz şekilde tanımlanabilir.

Veritabanı - Yabancı Anahtar

Tablo 2'de, Membership_ID Yabancı Anahtardır

Yabancı Anahtar, başka bir Tablonun birincil anahtarına başvurur! Tablolarınızı birbirine bağlamanıza yardımcı olur

  • Yabancı anahtar, birincil anahtarından farklı bir ada sahip olabilir
  • Bir tablodaki satırların diğerinde karşılık gelen satırlara sahip olmasını sağlar
  • Birincil anahtarın aksine, benzersiz olmaları gerekmez. Çoğu zaman değiller
  • Birincil anahtarlar kullanılamasa bile yabancı anahtarlar boş olabilir

Neden bir yabancı anahtara ihtiyacınız var?

Bir aceminin Tablo B'ye aşağıdaki gibi bir kayıt eklediğini varsayalım:

Yabancı anahtarınıza yalnızca üst tablodaki benzersiz anahtarda bulunan değerleri girebileceksiniz. Bu, bilgi tutarlılığına yardımcı olur.

Yukarıdaki sorun, Table2'den üyelik kimliğini, Table1'den üyelik kimliğinin yabancı anahtarı olarak ilan ederek aşılabilir.

Şimdi, birisi üyelik kimliği alanına üst tabloda olmayan bir değer girmeye çalışırsa, bir hata gösterilecektir!

Geçişli işlevsel bağımlılıklar nelerdir?

Geçişli bir işlevsel bağımlılık, anahtarsız bir sütunun değiştirilmesidir, anahtar olmayan diğer sütunlardan herhangi birinin değişmesine neden olabilir

1. tabloyu göz önünde bulundurun. Anahtar olmayan sütun Tam Adının değiştirilmesi, Selamlamayı değiştirebilir.

3NF'ye geçelim

3NF (Üçüncü Normal Biçim) Kuralları

  • Kural 1- 2NF'de olun
  • Kural 2- Geçişli işlevsel bağımlılıkları yoktur

2NF masamızı 3NF'ye taşımak için masamızı tekrar bölmemiz gerekiyor.

3NF Örneği

Aşağıda SQL veritabanında bir 3NF örneği verilmiştir:

Yine sofralarımızı böldük ve Selamlamaları saklayan yeni bir masa oluşturduk.

Geçişli işlevsel bağımlılıklar yoktur ve bu nedenle tablomuz 3NF'de

Tablo 3'te Karşılama Kimliği birincil anahtardır ve Tablo 1'de Karşılama Kimliği, Tablo 3'teki birincil anahtara yabancıdır.

Şimdi bizim küçük örneğimiz, normalizasyonun daha yüksek normal formlarına ulaşmak için daha fazla ayrıştırılamayacak bir seviyededir. Aslında, zaten daha yüksek normalleşme formlarında. Normalde karmaşık veri tabanlarında, verileri normalleştirmenin sonraki düzeylerine geçmek için ayrı çabalara ihtiyaç vardır. Bununla birlikte, aşağıda kısaca normalleştirme seviyelerini tartışacağız.

BCNF (Boyce-Codd Normal Formu)

Bir veritabanı 3. Normal Formda olsa bile, birden fazla Aday Anahtarına sahip olması halinde yine de anormallikler meydana gelebilir .

Bazen BCNF, 3.5 Normal Form olarak da anılır .

4NF (Dördüncü Normal Form) Kuralları

Hiçbir veritabanı tablosu örneği ilgili varlık açıklayan iki veya daha fazla bağımsız ve çok değerli veriler içeriyorsa, o zaman 4'te olduğu inci Normal Form.

5NF (Beşinci Normal Biçim) Kuralları

Bir tablo yalnızca 4NF'de ise 5. Normal Formdadır ve veri kaybı olmadan herhangi bir sayıda küçük tabloya ayrıştırılamaz.

6NF (Altıncı Normal Form) Önerilen

6 th Normal Formu standart değil, henüz ancak, bir süre veritabanı uzmanları tarafından tartışılıyor. Umarım, biz 6 için açık ve standardize tanımını olurdu inci yakın gelecekte Normal Form ...

Hepsi SQL Normalleştirme için !!!

Özet

  • Veritabanı tasarımı, bir kurumsal sistemin veri gereksinimlerini karşılayan bir veritabanı yönetim sisteminin başarılı bir şekilde uygulanması için kritik öneme sahiptir.
  • DBMS'deki Normalleştirme Süreci, uygun maliyetli ve daha iyi güvenlik modellerine sahip veritabanı sistemleri üretmeye yardımcı olur.
  • İşlevsel bağımlılıklar, veri normalleştirme işleminin çok önemli bir bileşenidir
  • Çoğu veritabanı sistemi, üçüncü normal formlara kadar normalleştirilmiş veritabanıdır.
  • Benzersiz olarak tanımlayan birincil anahtar bir Tablodaki kayıttır ve boş olamaz
  • Yabancı anahtar, tablonun bağlanmasına yardımcı olur ve birincil anahtara başvurur