Normaliziranje baze podataka
Ako neko vrijeme radite s bazama podataka, vjerojatno ste čuli pojam normalizacije. Možda vas je netko pitao: Je li ta baza podataka normalizirana? ili "Je li to u BCNF-u ?" Normalizacija se često brushed kao luksuz da samo akademici imaju vremena. Ipak, poznavanje načela normalizacije i primjena na svakodnevne zadaće dizajna baze podataka zapravo nije sve što je komplicirano i moglo bi drastično poboljšati izvedbu vašeg DBMS-a.
U ovom ćemo članku predstaviti koncept normalizacije i kratko razgledati najčešće uobičajene oblike.
Što je normalizacija?
Normalizacija je proces učinkovitijeg organiziranja podataka u bazi podataka. Postoje dva cilja procesa normalizacije: uklanjanje suvišnih podataka (na primjer, pohranjivanje istih podataka u više od jedne tablice) i osiguravanje pouzdanosti podataka (samo pohranjivanje povezanih podataka u tablici). Obje su dostojni ciljevi jer smanjuju količinu prostora koju potroši baza podataka i osigurava logički pohranjivanje podataka.
Uobičajeni obrasci
Zajednica baze podataka razvila je niz smjernica za osiguranje normalizacije baze podataka. To se naziva normalnim oblicima i broje se iz jednog (najniži oblik normalizacije, koji se naziva prvim normalnim oblikom ili 1NF) kroz pet (peti normalni oblik ili 5NF). U praktičnim aplikacijama često ćete vidjeti 1NF, 2NF i 3NF zajedno s povremenim 4NF. Peti normalni oblik vrlo je rijetko viđen i neće se raspravljati u ovom članku.
Prije nego započnemo raspravu o uobičajenim oblicima, važno je istaknuti da su to samo smjernice i smjernice. Povremeno, postaje nužno odvojiti od njih da zadovolje praktične poslovne zahtjeve. Međutim, kada se odigravaju varijacije, izuzetno je važno procijeniti sve moguće posljedice koje mogu imati na vašem sustavu i uzeti u obzir eventualne nedosljednosti. To je rekao, istražimo uobičajene oblike.
Prvi normalni obrazac (1NF)
Prvi normalan oblik (1NF) postavlja vrlo osnovna pravila za organiziranu bazu podataka:
- Uklonite duplicirane stupce iz iste tablice.
- Stvorite odvojene tablice za svaku grupu povezanih podataka i identificirajte svaki redak s jedinstvenim stupcem ili skupom stupaca ( primarnom ključu ).
Drugi normalan obrazac (2NF)
Drugi normalan obrazac (2NF) dodatno se odnosi na koncept uklanjanja dvostrukih podataka :
- Ispunite sve zahtjeve prvog normalnog obrasca.
- Uklonite podskupove podataka koji se primjenjuju na više redaka tablice i smjestite ih u odvojene tablice.
- Stvorite veze između ovih novih tablica i njihovih prethodnika upotrebom stranih ključeva .
Treći normalan obrazac (3NF)
Treći normalni oblik (3NF) ide jedan korak dalje:
- Ispunite sve zahtjeve drugog normalnog obrasca.
- Uklonite stupce koji ne ovise o primarnom ključu.
Boyce-Codd normalan obrazac (BCNF ili 3.5NF)
Normalan oblik Boyce-Codd, koji se također naziva i "treći i pol (3.5) normalni oblik", dodaje još jedan zahtjev:
- Ispunite sve zahtjeve trećeg normalnog obrasca.
- Svaka odrednica mora biti ključni kandidat.
Četvrti normalan obrazac (4NF)
Konačno, četvrti normalni oblik (4NF) ima još jedan uvjet:
- Ispunite sve zahtjeve trećeg normalnog obrasca.
- Odnos je u 4NF ako nema višecijenjenih ovisnosti .
Imajte na umu da su ove smjernice za normalizaciju kumulativne. Da bi baza bila u 2NF, mora prvo ispuniti sve kriterije baze 1NF.
Trebam li normalizirati?
Iako je normalizacija baze podataka dobra ideja, to nije apsolutni zahtjev. U stvari, postoje neki slučajevi u kojima je namjerno kršenje pravila normalizacije dobra praksa. Za više informacija o ovoj temi pročitajte " Je li normaliziranje moje baze podataka?"
Ako želite osigurati normalizaciju baze podataka, počnite s učenjem kako staviti svoju bazu podataka u Prvi redovni obrazac .