3NF vs BCNF
Normalleştirme, ilişkisel veritabanlarındaki verilerde mevcut olan fazlalıkları en aza indirmek için gerçekleştirilen bir işlemdir. Bu süreç esas olarak büyük tabloları daha az yedekli daha küçük tablolara bölecektir. Bu daha küçük tablolar, iyi tanımlanmış ilişkiler yoluyla birbirleriyle ilişkilendirilecektir. İyi normalleştirilmiş bir veritabanında, verilerdeki herhangi bir değişiklik veya değişiklik yalnızca tek bir tablonun değiştirilmesini gerektirecektir. Üçüncü Normal Form (3NF), 1971 yılında ilişkisel modelin ve normalizasyon kavramının mucidi olan Edgar F. Codd tarafından tanıtıldı. Boyce-Codd Normal Form (BCNF), 1974 yılında Codd ve Raymond F. Boyce.
3NF nedir?
3NF, ilişkisel veritabanı normalleştirmesinde kullanılan Üçüncü normal biçimdir. Codd'un tanımına göre, bir tablonun 3NF'de olduğu söylenir, ancak ve ancak bu tablo ikinci normal formda (2NF) ise ve tablodaki bir aday anahtara ait olmayan her öznitelik doğrudan bağlı olmalıdır. o tablonun her aday anahtarı. 1982'de Carlo Zaniolo, 3NF için farklı şekilde ifade edilen bir tanım üretti. 3NF ile uyumlu tablolar genellikle tabloya kayıt eklerken, silerken veya güncellerken oluşan anormallikleri içermez.
BCNF nedir?
BCNF (3.5NF olarak da bilinir), ilişkisel veritabanı normalleştirmesinde kullanılan başka bir normal formdur. 3NF tarafından ele alınmayan bazı anormallikleri yakalamak için tanıtıldı. Bir tablonun BCNF'de olduğu söylenir, ancak ve ancak, A → B formunun önemsiz olmayan bağımlılıklarının her biri için A bir süper anahtar ise. BCNF normal biçiminde olmayan bir tablonun ayrıştırılması, BCNF biçiminde tabloların üretilmesini garanti etmez (orijinal tabloda bulunan bağımlılıkları korurken).
3NF ve BCNF arasındaki fark nedir?
Hem 3NF hem de BCNF, tablolardaki fazlalıkları en aza indirmek için ilişkisel veritabanlarında kullanılan normal formlardır. BCNF normal biçimindeki bir tabloda, A → B biçiminin önemsiz olmayan her işlevsel bağımlılığı için A bir süper anahtardır, oysa 3NF ile uyumlu bir tablo 2NF'de olmalıdır ve her asal olmayan nitelik doğrudan o tablonun her aday anahtarına bağlı olmalıdır. BCNF, 3NF'den daha güçlü bir normal form olarak kabul edilir ve 3NF tarafından yakalanamayan bazı anomalileri yakalamak için geliştirilmiştir. BCNF formuna uygun bir tablo elde etmek, 3NF'de bulunan bir tablonun ayrıştırılmasını gerektirecektir. Bu ayrıştırma, sorgular yürütülürken ek birleştirme işlemlerine (veya Kartezyen ürünlere) neden olur. Bu, hesaplama süresini artıracaktır. Öte yandan, BCNF ile uyumlu olan tablolar, yalnızca 3NF ile uyumlu olan tablolara göre daha az fazlalığa sahip olacaktır. Ayrıca çoğu zaman bağımlılık korumasını ve kayıpsız birleştirmeyi engellemeden 3NF'ye uygun bir tablo elde etmek mümkündür. Ancak bu, BCNF ile her zaman mümkün değildir.