Kas ir normalizācija?
Normalizācija ir datu bāzes projektēšanas tehnika, kas samazina datu dublēšanu un novērš nevēlamās īpašības, piemēram, ievietošanas, atjaunināšanas un dzēšanas anomālijas. Normalizēšanas kārtulas lielākas tabulas sadala mazākās tabulās un sasaista, izmantojot attiecības. SQL normalizācijas mērķis ir novērst liekos (atkārtotos) datus un nodrošināt datu loģisku glabāšanu.
Relāciju modeļa izgudrotājs Edgars Kods ierosināja datu normalizācijas teoriju, ieviešot pirmo normālo formu, un viņš turpināja paplašināt teoriju ar otro un trešo normālo formu. Vēlāk viņš pievienojās Raymond F. Boyce, lai izstrādātu Boyce-Codd Normal Form teoriju.
Datu bāzes parastās formas
Šeit ir saraksts ar parastajām veidlapām
- 1NF (pirmā normālā forma)
- 2NF (otrā normālā forma)
- 3NF (trešā parastā forma)
- BCNF (Boyce-Codd normālā forma)
- 4NF (ceturtā normālā forma)
- 5NF (piektā normālā forma)
- 6NF (sestā parastā forma)
Datu normalizācijas teorija SQL serverī joprojām tiek pilnveidota. Piemēram, ir diskusijas pat par 6 th parasts. Tomēr lielākajā daļā praktisko lietojumu normalizācija vislabāk sasniedz trešajā parastajā formā . SQL normalizācijas teoriju attīstība ir ilustrēta zemāk-

Datu bāzes normalizēšana ar piemēriem
Datu bāzes normalizācijas piemēru var viegli saprast, izmantojot gadījuma izpēti. Pieņemsim, ka video bibliotēka uztur iznomāto filmu datu bāzi. Bez datu bāzes normalizēšanas visa informācija tiek glabāta vienā tabulā, kā parādīts zemāk. Sapratīsim Normalizācija datu bāzē ar tabulu piemēru:
Šeit redzat, ka slejai Filmas nomā ir vairākas vērtības. Tagad pārejam uz 1. normālajām formām:
1NF (pirmās normālās formas) noteikumi
- Katrā tabulas šūnā jābūt vienai vērtībai.
- Katram ierakstam jābūt unikālam.
Iepriekš tabula 1NF-
1NF piemērs
Pirms turpināsim, sapratīsim dažas lietas -
Kas ir atslēga?
ATSLĒGA ir vērtība, ko izmanto, lai unikāli identificētu ierakstu tabulā. ATSLĒGA var būt viena kolonna vai vairāku kolonnu kombinācija
Piezīme: Tabulas kolonnas, kuras NAV izmantotas, lai unikāli identificētu ierakstu, sauc par kolonnām, kas nav atslēgas.
Kas ir primārā atslēga?

Primārā ir vienas kolonnas vērtība, ko izmanto, lai unikāli identificētu datu bāzes ierakstu.
Tam ir šādi atribūti
- Primārā atslēga nevar būt NULL
- Primārās atslēgas vērtībai jābūt unikālai
- Primārās atslēgas vērtības reti jāmaina
- Ievietojot jaunu ierakstu, galvenajai atslēgai ir jāpiešķir vērtība.
Kas ir saliktā atslēga?
Saliktā atslēga ir primārā atslēga, kas sastāv no vairākām kolonnām, ko izmanto, lai unikāli identificētu ierakstu
Mūsu datu bāzē mums ir divi cilvēki ar tādu pašu vārdu Roberts Fils, bet viņi dzīvo dažādās vietās.
Tādēļ mums ir nepieciešams gan pilns vārds, gan adrese, lai unikāli identificētu ierakstu. Tā ir salikta atslēga.
Pārejam uz otro normālo formu 2NF
2NF (otrās normālās formas) noteikumi
- 1. noteikums - esi 1NF
- 2. noteikums. Vienas kolonnas galvenā atslēga
Ir skaidrs, ka mēs nevaram virzīties uz priekšu, lai izveidotu mūsu vienkāršo datu bāzi otrajā normalizācijas formā, ja vien mēs nesadala iepriekšējo tabulu.
Mēs esam sadalījuši mūsu 1NF tabulu divās tabulās, ti. 1. un 2. tabula. 1. tabula satur informāciju par dalībniekiem. 2. tabulā ir informācija par nomātajām filmām.
Mēs esam ieviesuši jaunu sleju ar nosaukumu Dalība_id, kas ir galvenā tabulas 1. atslēga. Ierakstus var unikāli identificēt 1. tabulā, izmantojot dalības ID
Datu bāze - ārējā atslēga
2. tabulā Dalības_ID ir ārējā atslēga
Ārējā atslēga norāda citas tabulas primāro atslēgu! Tas palīdz savienot jūsu tabulas
- Ārvalstu atslēgai var būt atšķirīgs nosaukums no tās galvenās atslēgas
- Tas nodrošina, ka vienas tabulas rindām ir atbilstošas rindas citā
- Atšķirībā no Primārās atslēgas tiem nav jābūt unikāliem. Visbiežāk tie nav
- Ārzemju atslēgas var būt nulle, pat ja primārās atslēgas nevar
Kāpēc jums nepieciešama ārzemju atslēga?
Pieņemsim, iesācējs ievieto ierakstu B tabulā, piemēram,
Ārējā atslēgā var ievietot tikai tādas vērtības, kas pastāv vecāku tabulas unikālajā atslēgā. Tas palīdz atsauces integritātei.
Iepriekš minēto problēmu var pārvarēt, deklarējot dalības ID no 2. tabulas kā dalības ID ārējo atslēgu no 1. tabulas
Tagad, ja kāds mēģina laukā Dalības ID ievietot vērtību, kuras nav vecāku tabulā, tiks parādīta kļūda!
Kas ir transitīvās funkcionālās atkarības?
Transitīvā funkcionālā atkarība ir, mainot kolonnu, kas nav atslēga, var izraisīt jebkuras citas kolonnas, kas nav atslēgas, maiņu
Apsveriet 1. tabulu. Mainot kolonnu, kas nav atslēga, pilns nosaukums, var mainīties sveiciens.
Pārejam uz 3NF
3NF (trešā normālā forma) noteikumi
- 1. noteikums - esi 2NF
- 2. noteikums. Tam nav tranzītfunkcionālu atkarību
Lai pārvietotu mūsu 2NF tabulu uz 3NF, mums atkal ir jāsadala tabula.
3NF piemērs
Zemāk ir 3NF piemērs SQL datu bāzē:
Mēs atkal esam sadalījuši galdus un izveidojuši jaunu galdu, kurā tiek glabāti sveicieni.
Nav transitīvu funkcionālo atkarību, un tāpēc mūsu tabula ir 3NF
3. tabulā sveiciena ID ir primārā atslēga, un 1. tabulā sveicināšanas ID ir sveša primārajai atslēgai 3. tabulā
Tagad mūsu mazais piemērs ir līmenī, kuru nevar tālāk sadalīt, lai sasniegtu augstākas normālas normalizācijas formas. Faktiski tas jau ir augstākas normalizācijas formās. Sarežģītās datu bāzēs parasti ir nepieciešami atsevišķi centieni, lai pārietu uz nākamajiem datu normalizācijas līmeņiem. Tomēr mēs turpmāk īsumā apspriedīsim nākamos normalizācijas līmeņus.
BCNF (Boyce-Codd normālā forma)
Pat ja datu bāze ir trešajā parastajā formā, joprojām pastāv novirzes, ja tai ir vairākas kandidāta atslēgas.
Dažreiz BCNF tiek saukta arī par 3,5 normālu formu.
4NF (ceturtā normālā forma) noteikumi
Ja nav datu bāzes tabulas piemēram satur divus vai vairāk, neatkarīgus un multivalued dati, kas raksturo attiecīgo iestādi, tad tas ir 4 th parasts.
5NF (piektā normālā forma) noteikumi
Tabula ir 5 th Normāls veidlapu tikai tad, ja tā ir 4NF, un to nevar sadalīt jebkādu skaitu mazāku tabulu, nezaudējot datus.
Ierosināts 6NF (sestā parastā forma)
6 th Normal Form nav noteikts, bet tomēr, tas tiek apspriests ar datu bāzes ekspertu kādu laiku. Cerams, ka mums būtu skaidra un standartizētu definīciju 6 th parasts tuvākajā nākotnē ...
Tas viss SQL normalizēšanai !!!
Kopsavilkums
- Datu bāzes projektēšana ir izšķiroša, lai veiksmīgi ieviestu datu bāzes pārvaldības sistēmu, kas atbilst uzņēmuma sistēmas datu prasībām.
- DBVS normalizācijas process palīdz izveidot datu bāzes sistēmas, kas ir rentablas un kurām ir labāki drošības modeļi.
- Funkcionālās atkarības ir ļoti svarīga datu normalizācijas procesa sastāvdaļa
- Lielākā daļa datu bāzu sistēmu ir normalizētas datu bāzes līdz trešajai parastajai formai.
- Primārā atslēga, ko unikāli identificē, ir ieraksts tabulā, un tā nevar būt nulle
- Ārvalstu atslēga palīdz savienot tabulu un atsauces uz primāro atslēgu