Što je normalizacija? Primjer baze podataka 1NF, 2NF, 3NF, BCNF

Sadržaj:

Anonim

Što je normalizacija?

Normalizacija je tehnika dizajniranja baze podataka koja smanjuje suvišnost podataka i uklanja neželjene karakteristike poput Anomalija umetanja, ažuriranja i brisanja. Pravila normalizacije dijele veće tablice na manje i povezuju ih pomoću odnosa. Svrha normalizacije u SQL-u je eliminiranje suvišnih (ponavljajućih) podataka i osiguravanje logičke pohrane podataka.

Izumitelj relacijskog modela Edgar Codd predložio je teoriju normalizacije podataka uvođenjem prvog normalnog oblika, a nastavio je proširiti teoriju drugim i trećim normalnim oblikom. Kasnije se pridružio Raymondu F. Boyceu da bi razvio teoriju o Boyce-Coddovom normalnom obliku.

Uobičajeni obrasci baze podataka

Evo popisa normalnih obrazaca

  • 1NF (prvi uobičajeni obrazac)
  • 2NF (drugi uobičajeni obrazac)
  • 3NF (treći uobičajeni obrazac)
  • BCNF (Boyce-Coddov uobičajeni oblik)
  • 4NF (četvrti uobičajeni obrazac)
  • 5NF (peti normalni obrazac)
  • 6NF (šesti normalni obrazac)

Teorija normalizacije podataka na SQL poslužitelju i dalje se razvija. Na primjer, tu su rasprave čak i na 6 th normalni oblik. Međutim, u većini praktičnih primjena normalizacija najbolje postiže u 3. normalnom obliku . Evolucija teorija normalizacije SQL prikazana je u nastavku -

Uobičajeni obrasci baze podataka

Normalizacija baze podataka s primjerima

Primjer normalizacije baze podataka može se lako razumjeti uz pomoć studije slučaja. Pretpostavimo, videoteka održava bazu podataka filmova koji se iznajmljuju. Bez ikakve normalizacije u bazi podataka, svi se podaci pohranjuju u jednu tablicu kako je prikazano u nastavku. Razumijemo Normalizaciju u bazi podataka na primjeru tablica:

Ovdje vidite stupac Filmovi iznajmljeni ima više vrijednosti. Sada krenimo u 1. normalne forme:

Pravila 1NF (prvi normalan obrazac)

  • Svaka ćelija tablice trebala bi sadržavati jednu vrijednost.
  • Svaki zapis mora biti jedinstven.

Gornja tablica u 1NF-

Primjer 1NF

Prije nego što nastavimo, shvatimo nekoliko stvari -

Što je KLJUČ?

KLJUČ je vrijednost koja se koristi za jedinstveno prepoznavanje zapisa u tablici. KLJUČ može biti jedan stupac ili kombinacija više stupaca

Napomena: Stupci u tablici koji se NE koriste za jedinstvenu identifikaciju zapisa nazivaju se stupcima koji nisu ključni.

Što je primarni ključ?

Primar je vrijednost jednog stupca koja se koristi za jedinstveno identificiranje zapisa baze podataka.

Ima sljedeće atribute

  • Primarni ključ ne može biti NULL
  • Vrijednost primarnog ključa mora biti jedinstvena
  • Vrijednosti primarnog ključa rijetko treba mijenjati
  • Primarni ključ mora dobiti vrijednost kad je umetnut novi zapis.

Što je kompozitni ključ?

Sastavljeni ključ je primarni ključ sastavljen od više stupaca koji se koristi za jedinstvenu identifikaciju zapisa

U našoj bazi podataka imamo dvoje ljudi s istim imenom Robert Phil, ali oni žive na različitim mjestima.

Stoga nam je potrebno i puno ime i adresa kako bismo jedinstveno identificirali zapis. To je složeni ključ.

Krenimo u drugi normalni oblik 2NF

2NF (Drugi uobičajeni obrazac) pravila

  • Pravilo 1- Budite u 1NF
  • Pravilo 2- Primarni ključ jednog stupca

Jasno je da ne možemo krenuti prema izradi naše jednostavne baze podataka u 2. normalizacijskom obliku ako ne razdijelimo gornju tablicu.

Podijelili smo našu 1NF tablicu u dvije tablice. Tablica 1 i Tablica 2. Tablica 1. sadrži podatke o članovima. Tablica 2. sadrži informacije o iznajmljenim filmovima.

Uveli smo novi stupac pod nazivom Membership_id koji je primarni ključ za tablicu 1. Zapisi se mogu jedinstveno identificirati u tablici 1 pomoću ID-a članstva

Baza podataka - inozemni ključ

U tablici 2, Članstvo_ID je strani ključ

Strani ključ upućuje na primarni ključ druge tablice! Pomaže u povezivanju tablica

  • Strani ključ može se razlikovati od svog primarnog ključa
  • Osigurava da retci u jednoj tablici imaju odgovarajuće retke u drugoj
  • Za razliku od Primarnog ključa, oni ne moraju biti jedinstveni. Najčešće nisu
  • Strani ključevi mogu biti ništavni iako primarni ključevi ne mogu

Zašto vam treba strani ključ?

Pretpostavimo da novak umetne zapis u tablicu B kao što je

U svoj strani ključ moći ćete umetnuti samo vrijednosti koje postoje u jedinstvenom ključu u nadređenoj tablici. To pomaže u referencijalnom integritetu.

Gore navedeni problem može se prevladati deklariranjem ID-a članstva iz Tablice2 kao stranog ključa ID-a članstva iz Tablice1

Sada, ako netko pokuša umetnuti vrijednost u polje id članstva koja ne postoji u nadređenoj tablici, prikazat će se pogreška!

Što su prijelazne funkcionalne ovisnosti?

Tranzitivna funkcionalna ovisnost je kada mijenjanje stupca koji nije ključan, može uzrokovati promjenu bilo kojeg drugog stupca koji nije ključ

Razmotrite tablicu 1. Promjena neključnog stupca Puno ime može promijeniti Pozdrav.

Krenimo u 3NF

3NF (treći uobičajeni obrazac) pravila

  • Pravilo 1- Budite u 2NF
  • Pravilo 2- Nema prijelazne funkcionalne ovisnosti

Da bismo našu tablicu 2NF premjestili u 3NF, opet moramo podijeliti tablicu.

Primjer 3NF

Ispod je primjer 3NF u SQL bazi podataka:

Ponovno smo podijelili naše tablice i stvorili novi stol koji pohranjuje Pozdrave.

Ne postoje prijelazne funkcionalne ovisnosti, pa je stoga naša tablica u 3NF

U tablici 3 ID pozdrava je primarni ključ, a u tablici 1. ID pozdrava je stran primarnom ključu u tablici 3

Sada je naš mali primjer na razini koja se ne može dalje razlagati da bi se postigli viši normalni oblici normalizacije. Zapravo je to već u višim normalizacijskim oblicima. U složenim bazama podataka obično su potrebni zasebni napori za prelazak na sljedeće razine normaliziranja podataka. Međutim, o sljedećim ćemo razinama normalizacije ukratko razgovarati u nastavku.

BCNF (Boyce-Coddov uobičajeni oblik)

Čak i kada je baza podataka u 3. normalnom obliku, ipak bi došlo do anomalija ako ima više od jednog ključa kandidata .

Ponekad se BCNF naziva i 3,5 normalnim oblikom.

4NF (četvrti normalni obrazac) pravila

Ako niti jedna tablica baze podataka instanca sadrži dvije ili više samostalnih i multivalued podatke koji opisuju relevantne entitet, onda je to u 4 -og normalni oblik.

5NF (peti normalni obrazac) pravila

Tablica je u 5 -og normalnom obliku samo ako je u 4 NF i ne može se rastaviti na bilo koji broj manjih stolova bez gubitka podataka.

Predložen 6NF (šesti normalni obrazac)

6 -og normalnom obliku nije standardiziran, ali ipak, to se raspravlja od strane stručnjaka baze podataka za neko vrijeme. Nadamo se da će imati jasan i standardizirani definiciju za 6 -og normalni oblik u bliskoj budućnosti ...

To je sve za SQL normalizaciju !!!

Sažetak

  • Dizajn baze podataka presudan je za uspješnu implementaciju sustava upravljanja bazom podataka koji udovoljava zahtjevima podataka u sustavu poduzeća.
  • Postupak normalizacije u DBMS-u pomaže u stvaranju sustava baza podataka koji su isplativi i imaju bolje sigurnosne modele.
  • Funkcionalne ovisnosti vrlo su važna komponenta procesa normalizacije podataka
  • Većina sustava baza podataka su normalizirane baze podataka do trećeg normalnog oblika.
  • Primarni ključ jedinstveno identificira zapis su u tablici i ne može biti null
  • Strani ključ pomaže u povezivanju tablice i referencama na primarni ključ