Jūsu datubāzes normalizēšana: pāreja uz otro parasto formu (2NF)

Datu bāzes ievietošana otrajā parastā veidlapā

Pēdējā mēneša laikā mēs esam izskatījuši vairākus datubāzes tabulas normalizēšanas aspektus. Pirmkārt, mēs apsprieda datubāzes normalizācijas pamatprincipus. Pēdējo reizi mēs pētījām pamatprasības, kas noteiktas pirmajā normālajā formā (1NF). Tagad turpināsim ceļojumu un aptverim otrās normālās formas (2NF) principus.

Atsaucieties uz 2NF vispārējām prasībām:

Šos noteikumus var apkopot vienkāršā izteiksmē: 2NF mēģina samazināt dublēto datu apjomu tabulā, to izvilkot, ievietojot to jaunā tabulā (-ās) un izveidojot attiecības starp šīm tabulām.

Apskatīsim piemēru. Iedomājieties tiešsaistes veikalu, kas saglabā klientu informāciju datu bāzē. Viņiem var būt viena tabula ar nosaukumu "Klienti" ar šādiem elementiem:

Īss pārskats par šo tabulu parāda nelielu skaitu lieku datu. Mēs glabājam ierakstus "Sea Cliff, NY 11579" un "Miami, FL 33157" divas reizes. Tagad tas, iespējams, nešķiet pārāk daudz pievienotās atmiņas mūsu vienkāršajā piemērā, bet iztēlojies par iztērēto vietu, ja mūsu galdiņā būtu tūkstošiem rindu. Turklāt, ja Sea Cliff pasta indeksam vajadzētu mainīties, mums vajadzētu veikt šīs izmaiņas daudzās vietās visā datubāzē.

2NF atbilstošā datu bāzes struktūrā šī liekā informācija tiek iegūta un saglabāta atsevišķā tabulā. Mūsu jaunajā tabulā (to varēsim nosaukt par "ZIP"), var būt šādi lauki:

Ja mēs vēlamies būt ļoti efektīvi, mēs varam pat aizpildīt šo tabulu iepriekš - pasta nodaļa nodrošina visu spēkā esošo pasta indeksu sarakstu un to attiecības starp pilsētu un valsti. Protams, jūs esat saskāries ar situāciju, kad šāda veida datu bāze tika izmantota. Kāds, kas veic pasūtījumu, iespējams, vispirms ir lūguši tev norādīt savu pasta indeksu un pēc tam zināja pilsētu un valsti, kurā zvanījāt. Šāda veida vienošanās samazina operatora kļūdu un palielina efektivitāti.

Tagad, kad esam noņēmuši dublējošos datus no tabulas "Klienti", esam izpildījuši otro parasto veidlapu pirmo kārtulu. Lai kopā abas tabulas savienotu, mums joprojām ir jāizmanto ārējā atslēga . Lai izveidotu šīs attiecības, mēs izmantosim ZIP kodu (primāro atslēgu no tabulas ZIP ). Lūk, mūsu jaunā klientu tabula:

Mēs esam samazinājuši datu bāzē saglabātās lietiskās informācijas apjomu, un mūsu struktūra ir otrajā parastā formā!

Ja vēlaties nodrošināt, lai jūsu datu bāze tiktu normalizēta, izpētiet citus šīs sērijas rakstus: