Atšķirība starp normalizēšanu un denormalizāciju

Atšķirība starp normalizēšanu un denormalizāciju
Atšķirība starp normalizēšanu un denormalizāciju

Video: Atšķirība starp normalizēšanu un denormalizāciju

Video: Atšķirība starp normalizēšanu un denormalizāciju
Video: Эти вещи говорят о порче в доме 2024, Jūlijs
Anonim

Normalizācija pret denormalizāciju

Relāciju datubāzes veido relācijas (saistītas tabulas). Tabulas sastāv no kolonnām. Ja tabulas ir divas lielas (t.i., pārāk daudz kolonnu vienā tabulā), var rasties datubāzes anomālijas. Ja tabulas ir divas mazas (t.i., datu bāze sastāv no daudzām mazākām tabulām), vaicājumu veikšana būtu neefektīva. Normalizācija un denormalizācija ir divi procesi, kas tiek izmantoti, lai optimizētu datu bāzes veiktspēju. Normalizēšana samazina datu tabulās esošās dublēšanās. Denormalizācija (normalizācijas otrādi) pievieno liekus datus vai grupas datus.

Kas ir normalizācija?

Normalizācija ir process, kas tiek veikts, lai samazinātu relāciju datu bāzu datos esošās dublēšanās. Šajā procesā lielās tabulas galvenokārt tiks sadalītas mazākās tabulās ar mazāku atlaišanu (sauktas par “parastajām formām”). Šīs mazākās tabulas būs saistītas viena ar otru, izmantojot labi definētas attiecības. Labi normalizētā datu bāzē jebkurai datu izmaiņai vai modifikācijai būs jāmaina tikai viena tabula. Pirmo normālo formu (1NF), otro normālo formu (2NF) un trešo normālo formu (3NF) ieviesa Edgars F. Kods. Boisa-Koda normālo formu (BCNF) 1974. gadā ieviesa Kods un Reimonds F. Boisi. Ir noteiktas augstākas parastās formas (4NF, 5NF un 6NF), taču tās tiek izmantotas reti.

Tabula, kas atbilst 1NF, nodrošina, ka tā faktiski attēlo relāciju (t.i., tajā nav ierakstu, kas atkārtojas), un tajā nav nekādu atribūtu, kam ir relāciju vērtība (t.e. visiem atribūtiem jābūt atomu vērtībām). Lai tabula atbilstu 2NF, tai ir jāatbilst 1NF, un jebkuram atribūtam, kas nav nevienas kandidātatslēgas daļa (t.i., atribūtiem, kas nav primārie), ir pilnībā jābūt atkarīgam no jebkuras kandidāta atslēgas tabulā. Saskaņā ar Codd definīciju tabula tiek uzskatīta par 3NF formātā, ja un tikai tad, ja šī tabula ir otrajā parastajā formā (2NF), un katram tabulas atribūtam, kas nepieder kandidāta atslēgai, vajadzētu būt tieši atkarīgam no katra šīs tabulas kandidāta atslēga. BCNF (pazīstams arī kā 3.5NF) fiksē dažas anomālijas, kuras 3NF nerisina.

Kas ir denormalizācija?

Denormalizācija ir normalizēšanas procesa apgrieztais process. Denormalizācija darbojas, pievienojot liekus datus vai grupējot datus, lai optimizētu veiktspēju. Lai gan lieku datu pievienošana izklausās neproduktīvi, dažkārt denormalizācija ir ļoti svarīgs process, lai novērstu dažus relāciju datu bāzes programmatūras trūkumus, kas var radīt nopietnus sodus par veiktspēju ar normalizētām datu bāzēm (pat pielāgotas lielākai veiktspējai). Tas ir tāpēc, ka vairāku relāciju (kas ir normalizēšanas rezultāts) savienošana, lai iegūtu rezultātu vaicājumam, dažkārt var būt lēna atkarībā no datu bāzes sistēmu faktiskās fiziskās ieviešanas.

Kāda ir atšķirība starp normalizāciju un denormalizāciju?

– Normalizācija un denormalizācija ir divi pilnīgi pretēji procesi.

– Normalizācija ir process, kurā lielākas tabulas tiek sadalītas mazākās, samazinot liekos datus, savukārt denormalizācija ir process, kurā tiek pievienoti lieki dati, lai optimizētu veiktspēju.

– Normalizācija tiek veikta, lai novērstu datu bāzu anomālijas.

– Denormalizācija parasti tiek veikta, lai uzlabotu datu bāzes lasīšanas veiktspēju, taču denormalizācijai izmantoto papildu ierobežojumu dēļ rakstīšana (t.i., ievietošanas, atjaunināšanas un dzēšanas darbības) var kļūt lēnāka. Tāpēc denormalizēta datu bāze var piedāvāt sliktāku rakstīšanas veiktspēju nekā normalizēta datu bāze.

– Bieži tiek ieteikts “normalizēt, līdz sāp, denormalizēt, līdz iedarbojas”.

Ieteicams: