3NF vs BCNF
A normalizálás egy olyan folyamat, amelyet a relációs adatbázisok adataiban előforduló redundanciák minimalizálása érdekében hajtanak végre. Ez a folyamat főként a nagy táblákat kisebb táblákra osztja fel, kevesebb redundanciával. Ezek a kisebb táblák jól meghatározott kapcsolatokon keresztül kapcsolódnak egymáshoz. Egy jól normalizált adatbázisban az adatok bármilyen módosítása vagy módosítása csak egyetlen tábla módosítását teszi szükségessé. A Harmadik Normál Formát (3NF) 1971-ben vezette be Edgar F. Codd, aki egyben a relációs modell és a normalizálás koncepciójának feltalálója is. A Boyce-Codd Normál Formát (BCNF) 1974-ben vezette be Codd és Raymond F. Boyce.
Mi az a 3NF?
A 3NF a relációs adatbázis normalizálásában használt harmadik normálforma. A Codd definíciója szerint egy tábla 3NF-ben van, akkor és csak akkor, ha a tábla a második normál formában (2NF) van, és a táblában lévő minden olyan attribútum, amely nem tartozik egy jelölt kulcshoz, közvetlenül függ a táblázat minden jelölt kulcsát. 1982-ben Carlo Zaniolo másképpen megfogalmazott definíciót készített a 3NF-re. A 3NF-nek megfelelő táblák általában nem tartalmaznak olyan anomáliákat, amelyek rekordok beszúrása, törlése vagy frissítése során jelentkeznek.
Mi az a BCNF?
A BCNF (más néven 3.5NF) egy másik normál forma, amelyet a relációs adatbázisok normalizálására használnak. Azért vezették be, hogy megragadja azokat az anomáliákat, amelyekkel a 3NF nem foglalkozik. Egy táblát akkor és csak akkor nevezünk BCNF-nek, ha az A → B formájú nem triviális függőségek mindegyikéhez A szuperkulcs. A nem normál BCNF-formátumú tábla felbontása nem garantálja a BCNF-formátumú táblák előállítását (az eredeti táblázatban szereplő függőségek megőrzése mellett).
Mi a különbség a 3NF és a BCNF között?
Mind a 3NF, mind a BCNF normál formák, amelyeket a relációs adatbázisokban használnak a táblák redundanciájának minimalizálására. Egy BCNF normál formájú táblában minden A → B formájú nem triviális funkcionális függőség esetén A szuperkulcs, míg a 3NF-nek megfelelő táblázatnak a 2NF-ben kell lennie, és minden nem prímszámnak. attribútumnak közvetlenül függnie kell a tábla minden jelölt kulcsától. A BCNF-et erősebb normál formának tekintik, mint a 3NF-et, és azért fejlesztették ki, hogy elfogjon néhány olyan rendellenességet, amelyeket a 3NF nem tudott elfogni. A BCNF űrlapnak megfelelő tábla beszerzéséhez a 3NF-ben lévő táblázatot le kell bontani. Ez a lebontás további összekapcsolási műveleteket (vagy derékszögű szorzatokat) eredményez a lekérdezések végrehajtásakor. Ez növeli a számítási időt. Másrészt a BCNF-nek megfelelő táblák kevesebb redundanciával rendelkeznének, mint a csak a 3NF-nek megfelelő táblák. Ezen túlmenően az esetek többségében lehetőség van a 3NF-nek megfelelő tábla beszerzésére anélkül, hogy akadályozná a függőségi megőrzést és a veszteségmentes csatlakozást. De ez nem mindig lehetséges a BCNF használatával.