Otrā normālā forma (2NF): definīcija un datubāzu normalizācija

Otrā normālā forma (2NF): skaidra definīcija, piemēri un praktiskas vadlīnijas datubāzu normalizācijai — optimizējiet struktūru, novērsiet redundanci un uzlabojiet veiktspēju.

Autors: Leandro Alegsa

Otrā normālā forma (2NF) ir relāciju modeļa, konkrēti tabulu, īpašība, kas ir datubāzes normalizācijas kritērijs.

Pirmais otrās normālformas kritērijs ir tāds, ka tabulai jābūt pirmajai normālajai formai. Tas nozīmē, ka dati ir organizēti tā, lai katra šūna satur vienu vērtību, rindas ir unikālas, un nav atkārtotu grupu vai daudzvērtību slejās.

Otrā normālā forma papildus prasa, lai katra tabulas sleja (kolonna), kas nav daļa no primārās atslēgas, būtu pilnībā atkarīga no visas primārās atslēgas, nevis tikai no kādas tās daļas. Ja primārā atslēga sastāv no vairākām kolonnām (kompozīta atslēga), tad nav pieļaujamas daļējas atkarības — t.i., neviena neatslēgvērtība nedrīkst atkaroties tikai no atsevišķas kompozītās atslēgas daļas.

Kas ir "daļēja atkarība" un piemērs

Daļēja atkarība rodas, ja kolonna, kas nav daļa no atslēgas, ir atkarīga no tikai daļas no kompozītas primārās atslēgas. Tas izraisa datu dublēšanos un atjaunināšanas anomālijas.

Piemērs (pirms normalizācijas):

  • Pasūtījuma_preces(OrderID, ProductID kā primārā atslēga, Quantity, ProductName, ProductPrice)
  • Šeit ProductName un ProductPrice faktiski ir saistītas tikai ar ProductID, nevis ar visu primāro atslēgu (OrderID, ProductID). Tādējādi rodas daļēja atkarība — tabulā tiek dublētas preces informācijas rindas katram pasūtījumam, kurā parādās tā pati prece.

Pēc pārejās uz 2NF, tabulas tiek sadalītas, lai noņemtu daļējās atkarības:

  • Pasūtījumi_prekes(OrderID, ProductID, Quantity) — saglabā attiecības starp pasūtījumu un preču daudzumu;
  • Preces(ProductID kā primārā atslēga, ProductName, ProductPrice) — satur katras preces aprakstu un cenu tikai vienreiz.

Kā pārvērst tabulu 2NF

  • 1) Pārliecinieties, ka tabula ir 1NF (nav atkārtotu grupu, katra šūna satur vienu vērtību, rindas unikālas).
  • 2) Identificējiet primāro atslēgu; ja tā ir kompozīta, nosakiet, vai kādas neatslēgas kolonnas ir atkarīgas tikai no daļas no tās.
  • 3) Noņemiet kolonnas, kuras rada daļējas atkarības, izveidojot jaunas tabulas, kur šīs kolonnas būs pilnībā atkarīgas no jaunas primārās atslēgas.
  • 4) Saglabājiet attiecības, pievienojot ārējās atslēgas (foreign keys) starp jaunajām tabulām.

Svarīgi papildus

  • Ja primārā atslēga ir viena kolonna (vienkārša atslēga), tad, ja tabula ir 1NF, tā automātiski atbilst arī 2NF, jo nav iespējamas daļējas atkarības.
  • Otrā normālā forma novērš dublēšanos, ievieš labāku datu integritāti un samazina atjaunināšanas anomāliju risku, bet tā neizslēdz transitīvas atkarības. Lai no tām atbrīvotos, nepieciešama trešā normālā forma (3NF).
  • Normalizācijas procesā jābalansē datu integritāte un veiktspēja — pārlieku stingra normalizācija var pieprasīt vairāk apvienošanas (JOIN) vaicājumos, kas ietekmē izpildlaiku.

Secinājums: Otrā normālā forma (2NF) prasa, lai tabula būtu 1NF un lai visas neatslēgas kolonnas būtu pilnīgi atkarīgas no visas primārās atslēgas. Praktiskā darbā tas parasti nozīmē dalīt tabulas, ja primārā atslēga ir kompozīta un dažas kolonnas ir atkarīgas tikai no atsevišķas atslēgas daļas.



Meklēt
AlegsaOnline.com - 2020 / 2025 - License CC3