3NF және BCNF
Нормалдау – реляциялық дерекқорлардағы деректерде бар артықшылықтарды азайту үшін жүзеге асырылатын процесс. Бұл процесс негізінен үлкен кестелерді артық саны азырақ кішірек кестелерге бөледі. Бұл кішірек кестелер жақсы анықталған қатынастар арқылы бір-бірімен байланысты болады. Жақсы нормаланған дерекқорда деректердегі кез келген өзгерту немесе өзгерту тек бір кестені өзгертуді талап етеді. Үшінші қалыпты пішінді (3NF) 1971 жылы Эдгар Ф. Кодд енгізді, ол сонымен бірге реляциялық модель мен нормалау тұжырымдамасының өнертапқышы болып табылады. Бойс-Кодд қалыпты формасын (BCNF) 1974 жылы Кодд және Раймонд Ф. Бойс.
3NF дегеніміз не?
3NF – реляциялық дерекқорды қалыпқа келтіруде қолданылатын Үшінші қалыпты пішін. Кодд анықтамасы бойынша кесте 3NF деп аталады, егер бұл кесте екінші қалыпты формада (2NF) болса және кестедегі үміткер кілтке жатпайтын әрбір атрибут тікелей тәуелді болуы керек сол кестенің әрбір үміткер кілті. 1982 жылы Карло Заниоло 3NF үшін басқаша берілген анықтаманы шығарды. 3NF стандартына сәйкес келетін кестелерде әдетте кестеге жазбаларды енгізу, жою немесе жаңарту кезінде болатын ауытқулар болмайды.
BCNF дегеніміз не?
BCNF (сонымен қатар 3.5NF ретінде белгілі) реляциялық дерекқорды қалыпқа келтіруде қолданылатын басқа қалыпты пішін болып табылады. Ол 3NF қарастырмаған кейбір ауытқуларды түсіру үшін енгізілген. Кесте BCNF-де деп аталады, егер А → В түріндегі тривиальды емес тәуелділіктердің әрқайсысы үшін А суперкілт болса ғана. BCNF қалыпты пішімінде жоқ кестені бөлшектеу BCNF пішінінде кестелерді шығаруға кепілдік бермейді (бастапқы кестеде болған тәуелділіктерді сақтай отырып).
3NF және BCNF арасындағы айырмашылық неде?
3NF және BCNF екеуі де кестелердегі артықшылықтарды азайту үшін реляциялық дерекқорларда қолданылатын қалыпты пішіндер. BCNF қалыпты пішіміндегі кестеде A → B пішінінің әрбір тривиальды емес функционалдық тәуелділігі үшін A суперкілт болып табылады, ал 3NF сәйкес кесте 2NF және әрбір жай емес кестеде болуы керек. атрибут сол кестенің әрбір үміткер кілтіне тікелей тәуелді болуы керек. BCNF 3NF-ге қарағанда күшті қалыпты форма ретінде қарастырылады және ол 3NF түсіре алмайтын кейбір ауытқуларды түсіру үшін әзірленген. BCNF пішіміне сәйкес келетін кестені алу үшін 3NF ішіндегі кестені бөлшектеу қажет болады. Бұл ыдырау сұрауларды орындау кезінде қосымша біріктіру операцияларына (немесе декарттық өнімдерге) әкеледі. Бұл есептеу уақытын арттырады. Екінші жағынан, BCNF сәйкес келетін кестелерде тек 3NF сәйкес келетін кестелерге қарағанда артықшылықтар азырақ болады. Сонымен қатар, көп жағдайда тәуелділікті сақтауға және жоғалтпай қосылуға кедергі келтірместен 3NF сәйкес келетін кестені алуға болады. Бірақ бұл BCNF арқылы әрқашан мүмкін емес.