Ko jūs zināt par normālajām formām datu bāzēs?
sobes.tech AI
Atbilde no AI
Normālas formas (NF) ir noteikumu un ieteikumu kopums relāciju datu bāzes struktūras projektēšanai, kas vērsts uz datu pārpalikuma samazināšanu un anomāliju novēršanu ievietošanas, atjaunināšanas un dzēšanas laikā.
Galvenās normālās formas:
-
Pirmā normālā forma (1NF):
- Katram atribūtam (kolonnai) jābūt atomārām (nesadalāmām) vērtībām.
- Jāizvairās no atkārtotām atribūtu grupām.
- Katram ierakstam jābūt unikālam (ar primāro atslēgu).
-
Otrā normālā forma (2NF):
- Atrodas 1NF.
- Katrs ne-atslēgas atribūts ir pilnībā atkarīgs no visa primārā atslēgas (ja tā ir sastāvdaļa).
-
Trešā normālā forma (3NF):
- Atrodas 2NF.
- Nav tranzitīvu atkarību starp ne-atslēgas atribūtiem (ne-atslēgas atribūts nedrīkst būt atkarīgs no cita ne-atslēgas atribūta).
-
Boyce-Codd forma (BCNF):
- Stingrāka 3NF versija.
- Katra netriviāla atkarība $X \to Y$ ir ar $X$ kā superatslēgu.
-
Ceturtā normālā forma (4NF):
- Atrodas BCNF.
- Nav daudznozīmīgu atkarību.
-
Piektā normālā forma (5NF):
- Atrodas 4NF.
- Nav savienošanas atkarību.
Normālizācijas mērķi:
- Datu pārpalikuma samazināšana.
- Anomāliju novēršana (ievietošana, atjaunināšana, dzēšana).
- Datu integritātes nodrošināšana.
- Bāzes struktūras vienkāršošana.
Piemērs:
Datu pārpalikuma tabula (nav 1NF):
| ЗаказID | Товар | Цена |
|---|---|---|
| 1 | Ноутбук, Mышь | 1000, 20 |
| 2 | Kлавиатура | 50 |
Normalizēta tabula (1NF un augstāk):
"Заказы" tabula:
| ЗаказID |
|---|
| 1 |
| 2 |
"Позиции заказа" tabula:
| ПозицияID | ЗаказID | Товар | Цена |
|---|---|---|---|
| 1 | 1 | Ноутбук | 1000 |
| 2 | 1 | Mышь | 20 |
| 3 | 2 | Kлавиатура | 50 |
Normalizācija ir svarīgs projektēšanas posms, bet pārmērīga normalizācija var novest pie palielināta savienojumu skaita vaicājumos, kas var negatīvi ietekmēt veiktspēju. Optimālais līmenis ir atkarīgs no konkrētajām prasībām un kompromisiem. Dažreiz tiek izmantota denormalizācija, lai uzlabotu veiktspēju noteiktos scenārijos, apzināti pārkāpjot normālo formu noteikumus.