Raunarstvo i informatika IV godina Drutvenojeziki i prirodnomatematiki

  • Slides: 22
Download presentation
Računarstvo i informatika IV godina Društveno-jezički i prirodno-matematički smer

Računarstvo i informatika IV godina Društveno-jezički i prirodno-matematički smer

Pojam normalizacije baze podataka �Normalizacija baze podataka je proces svođenja baze podataka na najoptimalniju

Pojam normalizacije baze podataka �Normalizacija baze podataka je proces svođenja baze podataka na najoptimalniju moguću formu radi otklanjanja redundantnosti. �Redundantnost znači suvišnost, prekomernost, ponavljanje, odnosno opterećenost istim podacima, ako je reč o bazama podataka. �Drugim rečima, sve entitete, atribute i relacije (tabele) je potrebno uprostiti do te mere da se podaci ne ponavljaju. �Dakle, cilj normalizacije je otklanjanje redundantnosti.

Pojam normalizacije baze podataka �Na primer, ukoliko pravimo bazu BIBLIOTEKA u tabeli KNJIGE bi

Pojam normalizacije baze podataka �Na primer, ukoliko pravimo bazu BIBLIOTEKA u tabeli KNJIGE bi se više puta pojavljivalo ime određenog pisca. �S toga, optimalno je napraviti posebnu tabelu (relaciju) PISCI koja bi na neki način bila vezana za relaciju KNJIGE. Šifra knjige Naziv knjige Ime pisca 123 Na Drini ćuprija Ivo Andrić 156 Prokleta avlija Ivo Andrić 276 Romeo i Julija Vilijem Šekspir 762 Hamlet Vilijem Šekspir 398 Na Drini ćuprija Ivo Andrić Šifra knjige Naziv knjige Šifra pisca 123 Na Drini ćuprija 1 156 Prokleta avlija 1 276 Romeo i Julija 2 762 Hamlet 2 398 Na Drini ćuprija 1 Šifra pisca Ime pisca 1 Ivo Andrić 2 Vilijem Šekspir

Pojam normalizacije baze podataka �Ili, u tabeli pisci bi u polju naziv knjige bile

Pojam normalizacije baze podataka �Ili, u tabeli pisci bi u polju naziv knjige bile navedene sve knjige koje je napisao. �Kada uprostimo atribut knjige dobijamo ponavljanje koje je potrebno otkloniti, kao što je to bio slučaj u prethodnom primeru. Šifra pisca Ime pisca Naziv knjige 1 Ivo Andrić Na Drini ćuprija; Prokleta avlija; Znakovi pored puta; Jelena, žena koje nema 1 Ivo Andrić Prokleta avlija 1 Ivo Andrić Znakovi pored puta 2 Vilijem Šekspir Romeo i Julija; Hamlet; Otelo; Mletački trgovac 2 Vilijem Šekspir Hamlet 2 Vilijem Šekspir Otelo 2 Vilijem Šekspir Mletački trgovac 2 Vilijem Šekspir

Prva normalna forma (1 NF) �Relacija se nalazi u prvoj normalnoj formi (1 NF)

Prva normalna forma (1 NF) �Relacija se nalazi u prvoj normalnoj formi (1 NF) ako ne sadrži grupe podataka koje se ponavljaju. �Na primer, posmatrajmo tabelu sa narudžbinama u nekoj prodavnici: Br. Šifra Naziv Datum Narudž. kupca Šifra robe Naziv robe Naruč. Isporuč. Kol. Cena 123 18/10/17 567 Pera Perić 111 Grafička 1 1 6000 123 18/10/17 567 Pera Perić 222 Procesor 1 1 8000 123 18/10/17 567 Pera Perić 333 Matična 1 0 6000 123 18/10/17 567 Pera Perić 444 HDD 3 3 5000 56 16/10/17 432 Mika Mikić 555 Tastatura 10 8 700 56 16/10/17 432 Mika Mikić 444 HDD 5 5000 137 19/10/17 567 Pera Perić 555 Tastatura 1 0 700 10

Prva normalna forma (1 NF) �Ono što se ponavlja u više redova tabele, a

Prva normalna forma (1 NF) �Ono što se ponavlja u više redova tabele, a ima isti sadržaj, potrebno je izdvojiti u posebnu tabelu. Br. Šifra Naziv Datum Narudž. kupca Šifra robe Naziv robe Naruč. Isporuč. Kol. Cena 123 18/10/17 567 Pera Perić 111 Grafička 1 1 6000 123 18/10/17 567 Pera Perić 222 Procesor 1 1 8000 123 18/10/17 567 Pera Perić 333 Matična 1 0 6000 123 18/10/17 567 Pera Perić 444 HDD 3 3 5000 56 16/10/17 432 Mika Mikić 555 Tastatura 10 8 700 56 16/10/17 432 Mika Mikić 444 HDD 5 5000 137 19/10/17 567 Pera Perić 555 Tastatura 1 0 700 10

Prva normalna forma (1 NF) �Tako dobijamo dve tabele, kojima moramo dodeliti primarne ključeve

Prva normalna forma (1 NF) �Tako dobijamo dve tabele, kojima moramo dodeliti primarne ključeve da bismo ih na neki način povezali: Br. K Šifra Naziv Datum Narudž. kupca 123 18/10/17 567 Pera Perić 56 16/10/17 432 Mika Mikić 19/10/17 567 Pera Perić K Br. Šifra Naziv Narudž. robe 137 Naruč. Isporuč. Kol. 123 111 Grafička 1 1 6000 123 222 Procesor 1 1 8000 123 333 Matična 1 0 6000 123 444 HDD 3 3 5000 56 555 Tastatura 10 8 700 56 444 HDD 5 5000 137 555 Tastatura 1 0 700 K 10 Cena

Druga normalna forma (2 NF) �Tabela se nalazi u drugoj normalnoj formi (2 NF)

Druga normalna forma (2 NF) �Tabela se nalazi u drugoj normalnoj formi (2 NF) ako svi njeni atributi, koji nisu ključ, potpuno zavise od primarnog ključa. �Ako postoje dva (ili više) reda (entiteta) koja imaju istu vrednost primarnog ključa X onda u njima i atribut Y, koji nije ključ, mora imati istu vrednost. Br. K Šifra. K Naziv Narudž. robe Naruč. Isporuč. Kol. Cena 123 111 Grafička 1 1 6000 123 222 Procesor 1 1 8000 123 333 Matična 1 0 6000 123 444 HDD 3 3 5000 56 555 Tastatura 10 8 700 56 444 HDD 5 5000 137 555 Tastatura 1 0 700 10

Druga normalna forma (2 NF) �Naziv robe i cena potpuno zavise od šifre robe,

Druga normalna forma (2 NF) �Naziv robe i cena potpuno zavise od šifre robe, ali ne i od broja narudžbenice. K K Br. Šifra Naziv Narudž. robe Naruč. Isporuč. Kol. Cena 123 111 Grafička 1 1 6000 123 222 Procesor 1 1 8000 123 333 Matična 1 0 6000 123 444 HDD 3 3 5000 56 555 Tastatura 10 8 700 56 444 HDD 5 5000 137 555 Tastatura 1 0 700 10

Druga normalna forma (2 NF) �Pošto nisu potpuno funkcionalno zavisni od složenog ključa tabele

Druga normalna forma (2 NF) �Pošto nisu potpuno funkcionalno zavisni od složenog ključa tabele (već od samo jednog primarnog ključa), te atribute treba izdvojiti u posebnu relaciju (tabelu). �U novoj tabeli je potrebno odrediti primarni ključ. �To je sada prost primarni ključ koji se vezuje na složeni ključ polazne tabele. Br. K Šifra. K Naruč. Isporuč. Narudž. robe Kol. 123 111 1 1 Šifra robe 123 222 1 1 123 333 1 123 444 56 K Naziv robe Cena 111 Grafička 6000 0 222 Procesor 8000 3 3 333 Matična 6000 555 10 8 444 HDD 5000 56 444 10 5 555 Tastatura 700 137 555 1 0

Treća normalna forma (3 NF) �Relacija se nalazi u trećoj normalnoj formi (3 NF)

Treća normalna forma (3 NF) �Relacija se nalazi u trećoj normalnoj formi (3 NF) ako je već u drugoj normalnoj formi i ni jedan od atributa koji nisu kandidati za ključ nije prenosno zavisan od primarnog ključa. �Naime, potrebno je izdvojiti podatke koji na prvi pogled zavise samo od primarnog ključa, ali u stvari zavise i od nekog drugog podatka u relaciji (koji nije ključ). �Podatak naziv kupca treba izdvojiti u posebnu tabelu jer imamo posrednu zavisnost. K Br. Šifra Naziv Datum Narudž. kupca 123 18/10/17 567 Pera Perić 56 16/10/17 432 Mika Mikić 137 19/10/17 567 Pera Perić

Treća normalna forma (3 NF) �Dakle, naziv kupca se izdvaja u posebnu tabelu jer

Treća normalna forma (3 NF) �Dakle, naziv kupca se izdvaja u posebnu tabelu jer imamo posrednu zavisnost: �Broj narudžbenice zavisi od šifre kupca. �Šifra kupca zavisi od naziva kupca. �Sledi da broj narudžbenice zavisi od naziva kupca. �U novoj tabeli moramo odrediti primarni ključ. �Kako se povezuju ove dve tabele? �Polje šifra kupca je u novoj tabeli primarni ključ, dok je isto polje u polaznoj tabeli spoljni ključ. Br. K Šifra Datum Narudž. kupca Šifra. K Naziv kupca 123 18/10/17 567 Pera Perić 56 16/10/17 432 Mika Mikić 137 19/10/17 567 Pera Perić

Konačni izgled baze �Konačno, baza porudžbine će imati najminimalniju formu ako je izdeljena na

Konačni izgled baze �Konačno, baza porudžbine će imati najminimalniju formu ako je izdeljena na sledeće tabele: K Br. Šifra Naruč. Isporuč. Narudž. robe Kol. K 123 111 1 1 123 222 1 1 123 333 1 0 123 444 3 3 56 555 10 8 56 444 10 5 137 555 1 0 Br. K Šifra Datum Narudž. kupca 123 18/10/17 56 16/10/17 432 137 19/10/17 567 Šifra robe K Naziv robe Cena 111 Grafička 6000 222 Procesor 8000 333 Matična 6000 444 HDD 5000 555 Tastatura 700 Šifra. K Naziv kupca 567 Pera Perić 432 Mika Mikić 567 Pera Perić

Zaključak!!! �Baza nije normalizovana ako se podaci ponavljaju. Prvo moramo da uprostimo atribute. �U

Zaključak!!! �Baza nije normalizovana ako se podaci ponavljaju. Prvo moramo da uprostimo atribute. �U 1 NF otklanjamo ponavljanja. Tako u polaznoj tabeli dobijamo 2 primarna ključa, od kojih se na 1 vezuje druga tabela preko svog primarnog ključa. (otklanjamo ponavljanja) �U 2 NF odvajamo tabelu u kojoj svi njeni atributi, koji nisu ključevi, zavise od njega. Dobijamo tabelu koja se, svojim primarnim ključem, vezuje na jedan od 2 primarna ključa polazne tabele. (kad atribut zavisi direktno od primarnog ključa) �U 3 NF izdvajamo tabelu u kojoj su atributi koji nisu primarni ključ i zavise od atributa koji takođe nije primarni ključ. Tako dobijamo tabelu koja ima primarni ključ koji se vezuje na polje spoljašnjeg ključa u polaznoj tabeli. (kad atribut zavisi od spoljašnjeg ključa)

Novi primer �Napravimo bazu članova foruma koji imaju nekakvo znanje o raznim oblastima: linux,

Novi primer �Napravimo bazu članova foruma koji imaju nekakvo znanje o raznim oblastima: linux, muzika, hardver, . . . Ova relacija neka se zove FORUM. ID Korisnik Zemlja Znanje 1 Lazar Ilić Srbija Audio; Windows 2 Aca Tošić Srbi Video; Windows 3 Marko Kocić Srbija Audio; Video; Hardware; Windows 4 Voja Ilić Crna Gora Audio; Video; Baze; Hardware; Windows; Linux; Programiranje 5 Mario Kojić Bosna i Windows; Baze Hercegovina 6 Jelena Pavlović Crna Gora Audio; Video; Baze; Hardware; Windows; Programiranje; Grafika Relacija FORUM

Novi primer �Polazna relacija može izgledati ovako: ID Korisnik Zemlja Znanje 1 Lazar Ilić

Novi primer �Polazna relacija može izgledati ovako: ID Korisnik Zemlja Znanje 1 Lazar Ilić Srbija Audio 1 Lazar Ilić Srbija Windows 2 Aca Tošić Srbi Video 2 Aca Tošić Srbi Windows 3 Marko Kocić Srbija Audio 3 Marko Kocić Srbija Video 3 Marko Kocić Srbija Hardware 3 Marko Kocić Srbija Windows 4 Voja Ilić Crna Gora Audio 4 Voja Ilić Crna Gora Video 4 Voja Ilić Crna Gora Baze 4 Voja Ilić Crna Gora Hardware; 4 Voja Ilić Crna Gora Windows Priprema za 1 NF: Zbog ponavljanja izdvojiti u 2 tabele.

Novi primer 1 NF � 1 NF zadovoljavaju sledeće relacije (tabele): K ID Korisnika

Novi primer 1 NF � 1 NF zadovoljavaju sledeće relacije (tabele): K ID Korisnika Zemlja K K ID Korisnika ID Znanja Korisnik Znanje 1 Lazar Ilić Srbija 1 1 Audio 2 Aca Tošić Srbi 1 2 Windows 3 Marko Kocić Srbija 2 3 Video 4 Voja Ilić 2 2 Windows 3 1 Audio 3 3 Video 3 4 Hardware 3 2 Windows 4 1 Audio 4 3 Video 4 5 Baze Crna Gora Relacija KORISNIK Priprema za 2 NF: Znanje ne zavisi od ID Korisnik. Znanje zavisi od ID Znanje. Relacija ZNANJE

Novi primer 2 NF �U 2 NF izdvajamo tabelu znanje: K ID Znanja Znanje

Novi primer 2 NF �U 2 NF izdvajamo tabelu znanje: K ID Znanja Znanje K K ID Korisnika ID Znanja 1 Audio 1 1 2 Windows 1 2 3 Video 2 3 4 Hardware 2 2 3 1 3 3 3 4 3 2 4 1 4 3 4 5 Relacija ZNANJE Priprema za 3 NF: U relaciji KORISNIK atribut ZEMLJA ne zavisi od primarnog ključa ID Korisnika. Atribut ZEMLJA zavisi od atributa KORISNIK. Relacija KORISNIK-ZNANJE

Novi primer 3 NF �U 3 NF izdvajamo relaciju DRŽAVA: K ID Korisnika ID

Novi primer 3 NF �U 3 NF izdvajamo relaciju DRŽAVA: K ID Korisnika ID Zemlja Korisnik Zemlja 1 Lazar Ilić 1 1 Srbija 2 Aca Tošić 1 2 Crna Gora 3 Marko Kocić 1 4 Voja Ilić 2 Relacija KORISNIK Tako smo dobili minimalnu formu baze FORUM. Relacija DRŽAVA

Novi primer MINIMALNA FORMA �Minimalni izgled baze FORUM: K ID Korisnika Korisnik ID Zemlja

Novi primer MINIMALNA FORMA �Minimalni izgled baze FORUM: K ID Korisnika Korisnik ID Zemlja 1 Lazar Ilić 1 2 Aca Tošić 1 3 Marko Kocić 1 4 Voja Ilić K K ID Korisnika ID Znanja 2 Relacija KORISNIK 1 1 1 2 2 3 1 3 3 Znanje K ID Zemlja 3 4 1 Audio 1 Srbija 3 2 2 Windows 2 Crna Gora 4 1 3 Video 4 3 4 Hardware 4 5 K ID Znanja Relacija ZNANJE Relacija DRŽAVA Relacija KORISNIK-ZNANJE

Novi primer MINIMALNA FORMA �Minimalni izgled baze FORUM: K ID Korisnika Korisnik ID Zemlja

Novi primer MINIMALNA FORMA �Minimalni izgled baze FORUM: K ID Korisnika Korisnik ID Zemlja 1 Lazar Ilić 1 2 Aca Tošić 1 3 Marko Kocić 1 4 Voja Ilić K K ID Korisnika ID Znanja 2 Relacija KORISNIK 1 1 1 2 2 3 1 3 3 Znanje K ID Zemlja 3 4 1 Audio 1 Srbija 3 2 2 Windows 2 Crna Gora 4 1 3 Video 4 3 4 Hardware 4 5 K ID Znanja Relacija ZNANJE Relacija DRŽAVA Relacija KORISNIK-ZNANJE

Primer 3 vežba �Uraditi minimizaciju relacije FAKULTET: Broj indeksa Ime studenta Semestar ID smera

Primer 3 vežba �Uraditi minimizaciju relacije FAKULTET: Broj indeksa Ime studenta Semestar ID smera Ime rukovodioca smera Šifra predmeta Ime predmeta 10 Ana 5 01 Miloš 111 Menadžment 8 222 Informatika 9 333 Baze podataka 10 222 Informatika 10 333 Baze podataka 9 111 Menadžment 8 444 Matematika 20 30 Pera Mika 7 4 01 02 Miloš Maja Ocena 6