Ի՞նչ է նորմալիզացիան։
sobes.tech AI
Պատասխան AI-ից
Տվյալների նորմալիզացիան տվյալների բազաների կոնտեքստում գործընթաց է տվյալների կազմակերպման համար՝ նվազեցնելու ավելորդությունը և բարելավելու տվյալների ամբողջականությունը։ Դա հասնում է մեծ աղյուսակների բաժանմամբ փոքրիկների և նրանց հարաբերությունների կապով։
Հիմնական նպատակները՝
- Տվյալների կրկնօրինակում վերացնելը։
- Տվյալների ամբողջականությունը բարելավելը (ներմուծման, թարմացման և ջնջման սխալների բացառմամբ)։
- Հիշողության և հարցումների արդյունավետությունը բարձրացնելը (кей դեպքերում)։
Նորմալիզացիայի գործընթացը հիմնված է նորմալ ձևերի (NF) սկզբունքների վրա։ Ամենատարածվածները՝
- Առաջին նորմալ ձևը (1NF): Տվյալների ագրեգատայինությունը բջիջներում, կրկնվող խմբերի բացակայությունը։
- Երկրորդ նորմալ ձևը (2NF): 1NF-ում և յուրաքանչյուր ոչ-կլուչային հատկությունը լիովին ֆունկցիոնալ կախված է ամբողջ առաջինական կլուչից։
- Երրորդ նորմալ ձևը (3NF): 2NF-ում և ոչ-կլուչային հատկությունների միջև տրանսիտիվ ֆունկցիոնալ կախվածությունների բացակայությունը։
Օրինակ՝
Անցյալ աղյուսակը "Պատվերներ_Ապրանքներ":
| Պատվերի ID | Պատվերի ամսաթիվ | Ապրանքի ID | Ապրանքի անուն | Ապրանքի գին | Մասը | Հաճախորդի անուն | Հաճախորդի հասցե |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Տելեֆոն | 500 | 1 | Իվան Պետրով | Պուշկինի փողոց, 10 |
| 1 | 2023-10-27 | 102 | Հաղորդիչներ | 100 | 2 | Իվան Պետրով | Պուշկինի փողոց, 10 |
| 2 | 2023-10-27 | 101 | Տելեֆոն | 500 | 1 | Մարիա Իվանովա | Լերմոնտովի փողոց, 5 |
Նորմալիզացիայից հետո (3NF-ն ընկած է).
"Պատվերներ":
| Պատվերի ID | Պատվերի ամսաթիվ | Հաճախորդ ID |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
"Պատվերի Տեղադրանքներ":
| Տեղադրանքի ID | Պատվերի ID | Ապրանքի ID | Մասը |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
"Ապրանքներ":
| Ապրանքի ID | Ապրանքի անուն | Ապրանքի գին |
|---|---|---|
| 101 | Տելեֆոն | 500 |
| 102 | Հաղորդիչներ | 100 |
"Հաճախորդներ":
| Հաճախորդի ID | Հաճախորդի անուն | Հաճախորդի հասցե |
|---|---|---|
| 1 | Իվան Պետրով | Պուշկինի փողոց, 10 |
| 2 | Մարիա Իվանովա | Լերմոնտովի փողոց, 5 |
Բայց, չափազանց նորմալիզացիան կարող է հանգեցնել մի շարք միացումների (JOIN) ավելացման, ինչը կարող է նվազեցնել կատարողականությունը։ Դրա համար տվյալների բազայի նախագծման ժամանակ հաճախ փորձում են գտնել նորմալիզացիայի աստիճանի և կատարողականության միջև հավասարակշռություն։ Դենորմալիզացիան՝ դա գիտակցված նորմալ ձևերի խախտում է՝ կատարողականությունը բարելավելու համար, սովորաբար ավելացնելով ավելորդ տվյալներ։