Sobes.tech
Middle

Ինչ եք գիտակցում տվյալների բազաների նորմալ ձևերի մասին?

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

Նորմալիզացիան կարևոր փուլ է նախագծման, բայց չափազանց նորմալիզացիան կարող է հանգեցնել հարցումների ժամանակ միացումների ավելացման, ինչը կարող է բացասաբար ազդել արտադրողականության վրա: Օպտիմալ մակարդակի ընտրությունը կախված է կոնկրետ պահանջներից և բալանսներից: Երբեմն օգտագործվում է դենորմալիզացիա՝ որոշ դեպքերում արտադրողականությունը բարելավելու համար, գիտակցաբար խախտելով նորմալ ձևերի կանոնները։