Normalizacija vaše baze podataka: prvi običan obrazac

Ova dva jednostavna pravila pomoći će normalizaciji vaše baze podataka

Prva normalna forma (1NF) postavlja osnovna pravila za organizovane baze podataka:

Šta ova pravila znače kada razmišljate o praktičnom dizajnu baze podataka? U stvari je prilično jednostavno.

1. Eliminisati umnožavanje

Prvo pravilo diktira da ne smemo duplirati podatke unutar istog reda tabele. U okviru zajednice baze podataka, ovaj koncept se naziva atomičnost tabele. Za tablice koje su u skladu sa ovim pravilom se kaže da su atomske. Hajde da istražimo ovaj princip sa klasičnim primjerom: tabela unutar baze podataka ljudskih resursa koja čuva odnos menadžera-podređeni. U svrhu našeg primera, mi ćemo nametnuti pravilo poslovanja da svaki menadžer može imati jedan ili više potčinjenih dok svaki podređeni može imati samo jednog menadžera.

Intuitivno, prilikom kreiranja liste ili tabele za praćenje ovih informacija, možemo napraviti tablicu sa sljedećim poljima:

Međutim, podsjetimo na prvo pravilo nametnuto od strane 1NF: Eliminirati duplikatne stupce iz iste tabele. Jasno je da su podmrepe Subordinate1-Subordinate4 duplicirane. Uzmite trenutak i razmislite o problemima izazvanim ovim scenarijem. Ako menadžer ima samo jednu podređenu, kolone Subordinate2-Subordinate4 jednostavno se troše za skladištenje (dragocena baza podataka). Osim toga, zamislite slučaj kada menadžer već ima 4 podređena - šta će se desiti ako preuzme još jednog zaposlenog? Celokupna struktura stola zahteva modifikaciju.

U ovom trenutku, druga svetla ideja obično se javlja kod novinara baze podataka: ne želimo imati više od jedne kolone i želimo dopustiti fleksibilnu količinu podataka. Pokušajmo nešto ovako:

Polje "Podređeni" bi sadržalo više unosa u obliku "Mary, Bill, Joe".

Ovo rešenje je bliže, ali takođe i nedostaje znak. Kolona podređenih je i dalje duplikativna i neumotična. Šta se događa kada treba dodati ili ukloniti podređeni? Moramo čitati i napisati cijeli sadržaj tabele. U ovoj situaciji to nije velika stvar, ali šta ako je jedan menadžer imao stotinu zaposlenih? Takođe, komplikuje proces izbora podataka iz baze podataka u budućim upite.

Evo tabele koja zadovoljava prvo pravilo 1NF:

U ovom slučaju, svaki podređeni ima jedan unos, ali menadžeri mogu imati više stavki.

2. Identifikujte Primarni ključ

Sada, šta je sa drugom pravilom: identifikujte svaki red sa jedinstvenom kolonom ili skupom kolona ( primarni ključ )? Možete pogledati gornjoj tabeli i predlošiti korištenje podređene stupice kao primarni ključ. Zapravo, podređena kolona je dobar kandidat za primarni ključ zbog činjenice da su naša poslovna pravila precizirala da svaki podređeni može imati samo jednog menadžera. Međutim, podaci koje smo izabrali da čuvamo u našoj tabeli čini to manje od idealno rješenje. Šta se događa ako unajmimo još jednog zaposlenog po imenu Jim? Kako ćemo u bazu podataka čuvati njegov menadžer-podređeni odnos?

Najbolje je koristiti istinski jedinstveni identifikator (kao što je ID zaposlenog) kao primarni ključ . Naš finalni sto bi izgledao ovako:

Sada, naš sto je u prvom normalnom obliku! Ako želite nastaviti saznavanje o normalizaciji, pročitajte ostale članke u ovoj seriji: