Ի՞նչ է նորմալիզացիան տվյալների բազայում։
sobes.tech AI
Պատասխան AI-ից
Տվյալների բազայի նորմալիզացիան տվյալների կազմակերպման գործընթաց է ռելացիոն տվյալների բազայում՝ նպատակ ունենալով նվազեցնել ավելցուկը (տվյալների կրկնօրինակում) և բարելավել տվյալների ամբողջականությունը։ Դա հասնում է մեծ աղյուսակների բաժանմամբ փոքրիկների՝ նրանց միջև կապեր սահմանելով։
Նորմալիզացիայի հիմնական նպատակները՝
- Տվյալների ավելցուկի նվազեցում: Միևնույն տեղեկության կրկնության խուսափում տարբեր վայրերում։
- Տվյալների ամբողջականության բարելավում: Տվյալների ճշգրտության և համահունչության ապահովում։
- Ենթակա ապահովում: Բազայի կառուցվածքի փոփոխություններն ու ընդլայնումները հեշտացնել։
Նորմալիզացիան սահմանվում է կանոնների հավաքով, որոնք կոչվում են նորմալ ձևեր։ Ամենատարածվածներն են առաջին երեք նորմալ ձևերը՝
-
Առաջին նորմալ ձև (1NF):
- Ամեն մի սյունակ պետք է պարունակի աբստրակտ (անբաժանելի) արժեքներ։
- Չպետք է լինեն կրկնվող սյունակային խմբեր։
- Ամեն մի տող պետք է լինի յուրահատուկ (առանց կրկնության՝ հիմնական բանալիով):
-
Երկրորդ նորմալ ձև (2NF):
- Տվյալ աղյուսակը գտնվում է 1NF-ում։
- Բոլոր ոչ-կլուչային հատկությունները (սյունակները, որոնք չեն հիմնական բանալին) ամբողջությամբ կախված են հիմնական բանալու ամբողջ արժեքից (եթե այն համակցված է)։ Չեն լինում մասնակի կախվածություններ։
-
Երրորդ նորմալ ձև (3NF):
- Տվյալ աղյուսակը գտնվում է 2NF-ում։
- Չեն լինում տրանսիտիվ կախվածություններ։ Նորակլուչային հատկությունները կախված չեն այլ ոչ-կլուչային հատկություններից։
Կան նաև ավելի բարձր նորմալ ձևեր (BCNF, 4NF, 5NF, 6NF), բայց 3NF-ը սովորաբար համարվում է բավարար՝ մեծ մասի գործնական նպատակների համար։
Օրինակ (պարզեցված):
Աննորմալացված սկզբնական աղյուսակը (հաճախորդի պատվերը):
| Պատվերի ID | Հաճախորդի անունը | Հաճախորդի հասցեն | Ապրանքներ | Մակերես | Միավորի գին |
|---|---|---|---|---|---|
| 101 | Իվան | Մոսկվա | Նոթբուք | 1 | 50000 |
| 101 | Իվան | Մոսկվա | Մկնիկ | 2 | 1000 |
| 102 | Մարիա | Սանկտ Պետերբուրգ | Կլավիատուրա | 1 | 3000 |
Նորմալիզացիայից հետո (օրինակ՝ մինչև 3NF):
Պատվերների աղյուսակ:
| Պատվերի ID | Հաճախորդի ID | Պատվերի ամսաթիվ |
|---|---|---|
| 101 | 1 | 2023-10-26 |
| 102 | 2 | 2023-10-26 |
Հաճախորդների աղյուսակ:
| Հաճախորդի ID | Հաճախորդի անունը | Հաճախորդի հասցե |
|---|---|---|
| 1 | Իվան | Մոսկվա |
| 2 | Մարիա | Սանկտ Պետերբուրգ |
Պատվերի մանրամասների աղյուսակ:
| Մանրամասնության ID | Պատվերի ID | Ապրանքի ID | Մակերես | Միավորի գին |
|---|---|---|---|---|
| 1 | 101 | 10 | 1 | 50000 |
| 2 | 101 | 20 | 2 | 1000 |
| 3 | 102 | 30 | 1 | 3000 |
Ապրանքների աղյուսակ:
| Ապրանքի ID | Ապրանքի անունը |
|---|---|
| 10 | Նոթբուք |
| 20 | Մկնիկ |
| 30 | Կլավիատուրա |
Դենորմալիզացիան հակառակ գործընթաց է նորմալիզացիայի, որը երբեմն օգտագործվում է տվյալների ընթերցման կատարողականությունը բարելավելու համար՝ ավելացնելով ավելցուկը։