Нормализация және денормальизация
Реляциялық дерекқорлар қатынастардан (байланысты кестелерден) тұрады. Кестелер бағандардан тұрады. Егер кестелер екі үлкен болса (яғни бір кестеде тым көп бағандар), онда дерекқор ауытқулары орын алуы мүмкін. Егер кестелер екі кішкентай болса (яғни, деректер базасы көптеген кішірек кестелерден тұратын болса), ол сұрау үшін тиімсіз болады. Нормализация және денормальизация дерекқор өнімділігін оңтайландыру үшін пайдаланылатын екі процесс. Нормалау деректер кестелерінде бар артықшылықтарды азайтады. Нормасыздандыру (қалпқа келтіруге кері) артық деректерді немесе топтық деректерді қосады.
Нормалдау дегеніміз не?
Нормалдау – реляциялық дерекқорлардағы деректерде бар артықшылықтарды азайту үшін жүзеге асырылатын процесс. Бұл процесс негізінен үлкен кестелерді артық саны азырақ кестелерге бөледі («Қалыпты пішіндер» деп аталады). Бұл кішірек кестелер жақсы анықталған қатынастар арқылы бір-бірімен байланысты болады. Жақсы нормаланған дерекқорда деректердегі кез келген өзгерту немесе өзгерту тек бір кестені өзгертуді талап етеді. Бірінші қалыпты пішінді (1NF), екінші қалыпты пішінді (2NF) және үшінші қалыпты пішінді (3NF) Эдгар Ф. Кодд енгізді. Бойс-Кодд қалыпты формасын (BCNF) 1974 жылы Кодд және Раймонд Ф. Бойс енгізген. Жоғары қалыпты пішіндер (4NF, 5NF және 6NF) анықталған, бірақ олар сирек пайдаланылады.
1NF-ге сәйкес келетін кесте оның шын мәнінде қатынасты көрсететініне (яғни, онда қайталанатын жазбалар жоқ) және қатынастық мәні бар ешқандай атрибуттардың жоқтығына (яғни.e. барлық атрибуттарда атомдық мәндер болуы керек). Кесте 2NF сәйкес келуі үшін ол 1NF сәйкес болуы керек және кез келген үміткер кілттің бөлігі болып табылмайтын кез келген атрибут (яғни негізгі емес төлсипаттар) кестедегі үміткер кілттердің кез келгеніне толығымен тәуелді болуы керек. Кодд анықтамасы бойынша кесте 3NF деп аталады, егер бұл кесте екінші қалыпты пішінде (2NF) болса және кестедегі үміткер кілтке жатпайтын әрбір атрибут тікелей әрбір параметрге тәуелді болуы керек. сол кестенің кандидат кілті. BCNF (3.5NF деп те аталады) 3NF реттемейтін кейбір ауытқуларды жазады.
Денормализация дегеніміз не?
Денормальизация - қалыпқа келтіру процесінің кері процесі. Нормасыздандыру артық деректерді қосу немесе өнімділікті оңтайландыру үшін деректерді топтау арқылы жұмыс істейді. Артық деректерді қосу кері нәтиже беретін болып көрінсе де, кейде нормадан айыру реляциялық дерекқор бағдарламалық жасақтамасындағы кейбір кемшіліктерді жою үшін өте маңызды процесс болып табылады, ол қалыпқа келтірілген дерекқорлармен (тіпті жоғары өнімділік үшін реттелген) өнімділік үшін ауыр жазаларды тудыруы мүмкін. Себебі сұрауға нәтиже шығару үшін бірнеше қатынасқа қосылу (бұл қалыпқа келтіру нәтижелері) дерекқор жүйелерінің нақты физикалық орындалуына байланысты кейде баяу болуы мүмкін.
Нормализация мен денормализацияның айырмашылығы неде?
– Нормализация және денормальизация бір-біріне мүлдем қарама-қарсы екі процесс.
– Қалыпқа келтіру – артық деректерді азайту үшін үлкенірек кестелерді кішіректерге бөлу процесі, ал нормадан шығару өнімділікті оңтайландыру үшін артық деректерді қосу процесі.
– Нормалау дерекқордағы ауытқуларды болдырмау үшін жүзеге асырылады.
– Денормальизация әдетте дерекқордың оқу өнімділігін жақсарту үшін жүзеге асырылады, бірақ нормадан шығару үшін қолданылатын қосымша шектеулерге байланысты жазу (яғни кірістіру, жаңарту және жою әрекеттері) баяулауы мүмкін. Демек, қалыпсыздандырылған дерекқор қалыпқа келтірілген дерекқорға қарағанда нашар жазу өнімділігін ұсына алады.
– Көбінесе «ауырғанша қалыпқа келтіру, жұмыс істегенше қалыптыдан шығару» ұсынылады.