Ova dva jednostavna pravila pomoći će normalizaciji vaše baze podataka
Prva normalna forma (1NF) postavlja osnovna pravila za organizovane baze podataka:
- Eliminišite duplikate kolone iz iste tabele.
- Napravite odvojene tabele za svaku grupu povezanih podataka i identifikujte svaki red uz jedinstveni stupac (primarni ključ).
Š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:
- Menadžer
- Podređeni1
- Subordinate2
- Subordinate3
- Subordinate4
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:
- Menadžer
- Podređeni
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:
- Menadžer
- Podređeni
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:
- ID menadžera
- Podređeni ID
Sada, naš sto je u prvom normalnom obliku! Ako želite nastaviti saznavanje o normalizaciji, pročitajte ostale članke u ovoj seriji: