Ինչ եք գիտակցում տվյալների բազաների նորմալ ձևերի մասին?
sobes.tech AI
Պատասխան AI-ից
Նորմալ ձևեր (ՆՖ) — դա կանոնների և առաջարկությունների հավաքածու է ռելացիոնալ տվյալների բազայի կառուցվածքը նախագծելու համար, ուղղված տվյալների ավելորդության նվազեցմանը և անոմալիաների կանխմանը մուտքագրման, թարմացման և հեռացման ժամանակ:
Հիմնական նորմալ ձևերը:
-
Առաջին նորմալ ձև (1ՆՖ):
- Ամենատարբեր (ատոմային) արժեքներ պետք է ունենա յուրաքանչյուր հատկություն (սյունակ):
- Չլինեն կրկնվող խմբեր հատկությունների մեջ:
- Յուրաքանչյուր տող պետք է լինի յուրահատուկ (առկա լինի հիմնական բանալին):
-
Երկրորդ նորմալ ձև (2ՆՖ):
- Տեղակայված է 1ՆՖ-ում:
- Ամեն ոչ-կլյուչային հատկությունը պետք է ամբողջությամբ կախված լինի ամբողջական հիմնական բանալուց (եթե հիմնական բանալին կոմպոզիտային):
-
Երրորդ նորմալ ձև (3ՆՖ):
- Տեղակայված է 2ՆՖ-ում:
- Չլինեն տրանսիտիվ կախվածություններ ոչ-կլյուչային հատկությունների միջև հիմնական բանալուց (ոչ-կլյուչային հատկությունը չպետք է կախված լինի այլ ոչ-կլյուչային հատկությունից):
-
Բոյս-Կոդդ ֆորմա (BCNF):
- Ավելի խիստ տարբերակ 3ՆՖ-ի:
- Ամեն անտրիվիալ կախվածություն $X \to Y$ պետք է ունենա $X$ որպես սուպերակլյուչ:
-
Չորրորդ նորմալ ձև (4ՆՖ):
- Տեղակայված է BCNF-ում:
- Չլինեն բազմանշան կախվածություններ:
-
Հինգերորդ նորմալ ձև (5ՆՖ):
- Տեղակայված է 4ՆՖ-ում:
- Չլինեն միացնող կախվածություններ:
Նորմալացման նպատակները:
- Տվյալների ավելորդության նվազեցում:
- Անոմալիաների կանխում (ներմուծում, թարմացում, հեռացում):
- Տվյալների ամբողջականության ապահովում:
- Բազայի կառուցվածքի պարզեցում:
Օրինակ:
Անբավարար տվյալներով աղյուսակ (չի համապատասխանում 1ՆՖ-ին):
| ЗаказID | Товар | Цена |
|---|---|---|
| 1 | Ноутбук, Мышь | 1000, 20 |
| 2 | Клавиатура | 50 |
Նորմալացված աղյուսակ (1ՆՖ-ում և բարձրում):
"Заказы" աղյուսակ:
| ЗаказID |
|---|
| 1 |
| 2 |
"Позиции заказа" աղյուսակ:
| ПозицияID | ЗаказID | Товар | Цена |
|---|---|---|---|
| 1 | 1 | Ноутбук | 1000 |
| 2 | 1 | Мышь | 20 |
| 3 | 2 | Клавиатура | 50 |
Նորմալիզացիան կարևոր փուլ է նախագծման, բայց չափազանց նորմալիզացիան կարող է հանգեցնել հարցումների ժամանակ միացումների ավելացման, ինչը կարող է բացասաբար ազդել արտադրողականության վրա: Օպտիմալ մակարդակի ընտրությունը կախված է կոնկրետ պահանջներից և բալանսներից: Երբեմն օգտագործվում է դենորմալիզացիա՝ որոշ դեպքերում արտադրողականությունը բարելավելու համար, գիտակցաբար խախտելով նորմալ ձևերի կանոնները։