Նորմալացում ընդդեմ ապանորմալացման
Հարաբերական տվյալների բազաները կազմված են հարաբերություններից (կապված աղյուսակներ): Աղյուսակները կազմված են սյուներից: Եթե աղյուսակները երկու մեծ են (այսինքն՝ մեկ աղյուսակում չափազանց շատ սյունակներ), ապա տվյալների բազայի անոմալիաները կարող են առաջանալ: Եթե աղյուսակները երկու փոքր են (այսինքն՝ տվյալների բազան կազմված է շատ ավելի փոքր աղյուսակներից), ապա դա անարդյունավետ կլինի հարցումների համար: Նորմալացումը և Denormalization-ը երկու գործընթաց են, որոնք օգտագործվում են տվյալների բազայի աշխատանքը օպտիմալացնելու համար: Նորմալացումը նվազագույնի է հասցնում ավելորդությունները, որոնք առկա են տվյալների աղյուսակներում: Ապանորմալացումը (նորմալացման հակառակը) ավելացնում է ավելորդ տվյալներ կամ խմբային տվյալներ:
Ի՞նչ է նորմալացումը:
Նորմալացումը գործընթաց է, որն իրականացվում է հարաբերական տվյալների բազաներում առկա ավելորդությունները նվազագույնի հասցնելու համար: Այս գործընթացը հիմնականում մեծ աղյուսակները կբաժանի ավելի փոքր աղյուսակների՝ ավելի քիչ ավելորդություններով (կոչվում են «Նորմալ ձևեր»): Այս փոքր աղյուսակները կապված կլինեն միմյանց հետ լավ սահմանված հարաբերությունների միջոցով: Լավ նորմալացված տվյալների բազայում տվյալների ցանկացած փոփոխություն կամ փոփոխություն կպահանջի միայն մեկ աղյուսակի փոփոխություն: Առաջին նորմալ ձևը (1NF), Երկրորդ նորմալ ձևը (2NF) և երրորդ նորմալ ձևը (3NF) ներկայացվել են Էդգար Ֆ. Քոդդի կողմից: Բոյս-Կոդի նորմալ ձևը (BCNF) ներդրվել է 1974 թվականին Քոդի և Ռայմոնդ Ֆ. Բոյսի կողմից։ Ավելի բարձր նորմալ ձևեր (4NF, 5NF և 6NF) սահմանվել են, բայց դրանք հազվադեպ են օգտագործվում:
Աղյուսակը, որը համապատասխանում է 1NF-ին, հավաստիացնում է, որ այն իրականում ներկայացնում է հարաբերություն (այսինքն՝ այն չի պարունակում կրկնվող գրառումներ) և չի պարունակում հարաբերական արժեք ունեցող որևէ հատկանիշ (այսինքն.ե. բոլոր ատրիբուտները պետք է ունենան ատոմային արժեքներ): Որպեսզի աղյուսակը համապատասխանի 2NF-ին, այն պետք է համապատասխանի 1NF-ին, և ցանկացած հատկանիշ, որը որևէ թեկնածու բանալու մաս չէ (այսինքն՝ ոչ հիմնական ատրիբուտները) պետք է լիովին կախված լինի աղյուսակի թեկնածուներից որևէ մեկից: Ըստ Codd-ի սահմանման, աղյուսակը կոչվում է 3NF, եթե և միայն այն դեպքում, եթե այդ աղյուսակը գտնվում է երկրորդ նորմալ ձևի մեջ (2NF), և աղյուսակի յուրաքանչյուր հատկանիշ, որը չի պատկանում թեկնածուի բանալու, պետք է ուղղակիորեն կախված լինի յուրաքանչյուրից: այդ աղյուսակի թեկնածու բանալին: BCNF (նաև հայտնի է որպես 3.5NF) ֆիքսում է որոշ անոմալիաներ, որոնք չեն լուծվում 3NF-ի կողմից:
Ի՞նչ է ապանորմալացումը:
Denormalization-ը նորմալացման գործընթացի հակառակ գործընթացն է: Ապանորմալացումն աշխատում է ավելորդ տվյալների ավելացման կամ տվյալների խմբավորման միջոցով՝ կատարողականությունը օպտիմալացնելու համար: Թեև ավելորդ տվյալների ավելացումը հակաարդյունավետ է թվում, երբեմն ապանորմալացումը շատ կարևոր գործընթաց է հարաբերական տվյալների բազայի ծրագրային ապահովման որոշ թերությունների հաղթահարման համար, որոնք կարող են հանգեցնել աշխատանքի մեծ տույժերի նորմալացված տվյալների բազաներով (նույնիսկ ավելի բարձր կատարողականության համար նախատեսված):Դա պայմանավորված է նրանով, որ մի քանի հարաբերություններ (որոնք նորմալացման արդյունք են) հարցմանը արդյունք ստանալու համար երբեմն կարող է դանդաղ լինել՝ կախված տվյալների բազայի համակարգերի իրական ֆիզիկական իրականացումից:
Ո՞րն է տարբերությունը նորմալացման և ապանորմալացման միջև:
– Նորմալացումը և ապանորմալացումը երկու գործընթացներ են, որոնք լիովին հակադիր են:
– Նորմալացումը ավելի մեծ աղյուսակները փոքրերին բաժանելու գործընթաց է՝ նվազեցնելով ավելորդ տվյալները, մինչդեռ ապանորմալացումը ավելորդ տվյալների ավելացման գործընթաց է՝ կատարողականությունը օպտիմալացնելու համար:
– Նորմալացումն իրականացվում է տվյալների շտեմարանների անոմալիաները կանխելու համար:
– Դենորմալացումը սովորաբար իրականացվում է տվյալների բազայի ընթերցման արդյունավետությունը բարելավելու համար, սակայն ապանորմալացման համար օգտագործվող լրացուցիչ սահմանափակումների պատճառով գրությունները (այսինքն՝ զետեղել, թարմացնել և ջնջել գործողությունները) կարող են ավելի դանդաղ դառնալ: Հետևաբար, ապանորմալացված տվյալների բազան կարող է ավելի վատ գրելու արդյունավետություն առաջարկել, քան նորմալացված տվյալների բազան:
– Հաճախ խորհուրդ է տրվում, որ դուք պետք է «նորմալացնեք այնքան ժամանակ, քանի դեռ ցավում է, ապա նորմալացնել մինչև այն աշխատի»: