Veritabanınızı Normalleştirme
Bir süredir veri tabanları ile çalışıyorsanız, normalleşme terimini duyma şansınız oldu. Belki birisi size "Bu veritabanı normalleştirilmiş mi?" Diye sordu. veya " BCNF'de mi?" Normalleşme genellikle sadece akademisyenlerin zamanının olduğu bir lüks olarak bir kenara fırlatılır. Bununla birlikte, normalleştirme ilkelerini bilmek ve bunları günlük veritabanı tasarım görevlerine uygulamak gerçekten o kadar da karmaşık değildir ve DBMS'nizin performansını önemli ölçüde artırabilir.
Bu yazıda, normalleşme kavramını tanıtacağız ve en yaygın normal biçimlere kısa bir bakacağız.
Normalizasyon Nedir?
Normalleştirme, bir veritabanında verileri verimli bir şekilde organize etme işlemidir. Normalizasyon sürecinin iki hedefi vardır: yedekli verilerin ortadan kaldırılması (örneğin, aynı verilerin birden fazla tabloda saklanması) ve veri bağımlılıklarının anlamlandırılması (sadece ilgili verileri bir tabloda depolamak). Bunların ikisi de, bir veri tabanının tükettiği alanı azalttıkları ve verilerin mantıksal olarak depolandığından emin oldukları için değerli hedeflerdir.
Normal Formlar
Veritabanı topluluğu, veritabanlarının normalleştirilmesini sağlamak için bir dizi kural geliştirmiştir. Bunlar normal formlar olarak adlandırılır ve beşten (beşinci normal form veya 5NF) birinden (ilk normal form veya 1NF olarak adlandırılan en düşük normalizasyon şekli) numaralandırılır. Pratik uygulamalarda, bazen 4NF ile birlikte 1NF, 2NF ve 3NF görürsünüz. Beşinci normal form çok nadir görülür ve bu makalede tartışılmayacaktır.
Normal formlar konusundaki tartışmalarımıza başlamadan önce, bunların sadece kurallar ve kılavuzlar olduklarını belirtmek önemlidir. Bazen, pratik iş gereksinimlerini karşılamak için onlardan uzaklaşmak gerekir. Ancak, varyasyonlar gerçekleştiğinde, sisteminizde olabilecek olası sonuçları değerlendirmek ve olası tutarsızlıkları hesaba katmak son derece önemlidir. Bu, normal formları inceleyelim dedi.
İlk Normal Form (1NF)
İlk normal form (1NF) organize bir veritabanı için çok 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ütun veya sütun grubuyla ( birincil anahtar ) tanımlayın.
İkinci Normal Form (2NF)
İkinci normal form (2NF) ayrıca yinelenen verilerin çıkarılması kavramını ele almaktadır:
- İlk normal formun tüm gereksinimlerini karşılayın.
- Bir tablonun birden çok satırına uygulanan veri alt kümelerini kaldırın ve bunları ayrı tablolara yerleştirin.
- Yabancı anahtarların kullanımıyla bu yeni tablolar ve öncülleri arasında ilişkiler oluşturun.
Üçüncü Normal Form (3NF)
Üçüncü normal form (3NF) bir adım daha ileri gider:
- İkinci normal formun tüm gereksinimlerini karşılayın.
- Birincil anahtara bağlı olmayan sütunları kaldırın.
Boyce-Codd Normal Formu (BCNF veya 3.5NF)
"Üçüncü ve yarısı (3.5) normal form" olarak da adlandırılan Boyce-Codd Normal Formu, bir ek gereksinim daha ekler:
- Üçüncü normal formun tüm gereksinimlerini karşılayın.
- Her belirleyici bir aday anahtar olmalıdır .
Dördüncü Normal Form (4NF)
Son olarak, dördüncü normal formun (4NF) bir ek zorunluluğu vardır:
- Üçüncü normal formun tüm gereksinimlerini karşılayın.
- Çok değerli bağımlılık yoksa, 4NF'de bir ilişki vardır.
Unutmayın, bu normalleşme yönergeleri kümülatiftir. Bir veritabanının 2NF'de olması için öncelikle bir 1NF veritabanının tüm kriterlerini karşılaması gerekir.
Normalleştirmeli miyim?
Veritabanı normalleştirme genellikle iyi bir fikir olsa da, bu mutlak bir gereklilik değildir. Aslında, normalleşme kurallarını kasten ihlal eden bazı durumlar iyi bir uygulamadır. Bu konu hakkında daha fazla bilgi için Veritabanımı Normalleştirmeli miyim?
Veritabanınızın normalleştirildiğinden emin olmak istiyorsanız , veritabanınızı İlk Normal Form'a nasıl ekleyeceğinizi öğrenin .