Normalizacija Osnovni cilj relacionog modela podataka je da

  • Slides: 28
Download presentation
Normalizacija Osnovni cilj relacionog modela podataka je da odgovarajuća baza podataka: 1. 2. Ne

Normalizacija Osnovni cilj relacionog modela podataka je da odgovarajuća baza podataka: 1. 2. Ne sadrži redundansu, Da se može jednostavno koristiti i menjati. Normalne forme daju formalne kriterije prema kojima se utvrđuje da li model podataka ispunjava prethodne zahteve. Normalizacija je proces provere uslova normalnih formi i po potrebi svođenje šeme relacije na oblik koji zadovoljava iste. � Procesom normalizacije želi se razviti dobar model podataka tako da se iz nekog početno zadatog modela otklone slabosti (redundansa i problemi u održavanju). 1

Normalizacija � Pod redundansom podrazumevamo višestruko memorisanje iste informacije u bazi podataka. � Cilj

Normalizacija � Pod redundansom podrazumevamo višestruko memorisanje iste informacije u bazi podataka. � Cilj koji se teži dostići projektovanju baze podataka je eliminisanje redundanse zbog niza negativnih posledica koje ona donosi. � Višestruko memorisanje istog podatka dovodi do povećanog korišćenja memorijskog prostora i otežanog održavanja podataka. � Memorisanjem više kopija istih podataka možemo u nekim slučajevima smanjiti vreme obrade podataka. � Potpuno eliminisanje redundanse podataka u bazi podataka je skoro nemoguće ostvariti. � Realni cilj pri projektovanju baze podataka je kontrolisana redundansa podataka. 2

� Jednostavno korišćenje i menjanje podataka podrazumeva pre svega sprečavanje anomalija održavanja podataka. �

� Jednostavno korišćenje i menjanje podataka podrazumeva pre svega sprečavanje anomalija održavanja podataka. � Pod 1. 2. 3. anomalijama održavanja podataka podrazumevamo: anomaliju dodavanja, anomaliju brisanja, anomaliju promene. � Anomalija dodavanja (unošenja) javlja se u onim slučajevima kada su informacije o svojstvima jednog objekta memorisane u bazi podataka kao deo opisa nekog drugog objekta. ◦ Na primer, u okviru opisa nastavnika memorisane su informacije o predmetu koji predaje ili katedre na kojoj radi. Informacije o predmetu, odnosno katedri, nije moguće uneti u bazu podataka sve dok ne postoji bar jedan nastavnik koji taj predmet predaje, odnosno, dok ne postoji najmanje jedan nastavnik koji na toj katedri radi. 3

� � Anomalija brisanja je inverzija anomalije dodavanja. ◦ Neka su u okviru opisa

� � Anomalija brisanja je inverzija anomalije dodavanja. ◦ Neka su u okviru opisa svojstava nastavnika memorisane informacije o predmetu koji predaje. Svakim brisanjem opisa nastavnika briše se i jedna kopija podataka o predmetu koji predaje. Kada se obrišu podaci o poslednjem nastavniku koji predaje neki predmet, biće obrisana i poslednja kopija podataka o predmetu. S obzirom na to da pri brisanju podataka o nastavniku ne mislimo na druge posledice, na ovaj način moguće je uništiti podatke o predmetu, koji su potrebni i važni. Anomalija promene (ažuriranja) javlja se u slučaju kada promenu podataka o jednom objektu treba izvršiti na više od jedne kopije podataka. ◦ Razmotrimo ponovo prethodni primer gde su podaci o predmetu i katedri memorisani u okviru opisa nastavnika. U bazi podataka u jednom trenutku postoji toliko opisa katedre koliko nastavnika radi na toj katedri. ◦ Ako treba promeniti podatke o opisu katedre (na primer, naziv katedre), tada tu promenu treba izvršiti na onoliko mesta koliko nastavnika radi na toj katedri. ◦ Ako se promena ne izvrši na svim kopijama nastaje situacija u kojoj o istom svojstvu jednog objekta imamo više različitih tvrdnji od kojih bar jedna nije istinita. Ovakvo stanje smatramo nekonzistentnom bazom podataka. 4

METODE NORMALIZACIJE �U najopštijem smislu, normlizacija je postupak kojim se proizvoljna, nenormalizovanja relacija transformiše

METODE NORMALIZACIJE �U najopštijem smislu, normlizacija je postupak kojim se proizvoljna, nenormalizovanja relacija transformiše u skup manjih normalizovanih relacija. � Normalizacija se izvodi na osnovu zavisnosti koje iskazuju zakonitosti koje vrede u svetu čiji model podataka gradimo. � Bitna osobina koja se očekuje od normalizacije je reverzibilnost tj. da ne sme doći do gubitka informacija sadržanih u polaznoj relaciji. � Polazeći od skupa normalizovanih relacija, mora biti moguća rekonstrukcija polazne nenormalizovane relacije. � Postoje 1. 2. sledeće dve tehnike normalizacije: Vertikalna normalizacija, Horizontalna normalizacija. 5

Vertikalna normalizacija � Vertikalna normalizacija je postupak kojim se proizvoljna nenormalizovana šema relacije transformiše

Vertikalna normalizacija � Vertikalna normalizacija je postupak kojim se proizvoljna nenormalizovana šema relacije transformiše u skup manjih i normalizovanih šema relacija. � Vertikalna normalizacija zasniva se na operacijama projekcije i prirodnog spajanja. ◦ Pomoću operacije projekcije relaciju vertikalno razbijamo na dve ili više manjih relacija. Pri tome, dolazi do cepanja svake pojedine n-torke u relaciji. ◦ Operaciju prirodnog spajanja koristimo da bi dokazali reverzibilnost, tj. da bi rekonstruisali polaznu, nenormalizovanu relaciju. 6

Horizontalna i vertikalna normalizacija � Horizontalnom normalizacijom relacija se rastavlja na podskupove n-torki –

Horizontalna i vertikalna normalizacija � Horizontalnom normalizacijom relacija se rastavlja na podskupove n-torki – fragmente relacije koji zadovoljavaju određene uslove. � Horizontalna normlizacija zasniva se na operacijama selekcije i unije. Sama tehnika se koristi kod distribuiranih baza podataka. ◦ Kod distribuiranih baza podataka relacija ne mora u potpunosti biti memorisana na jednoj lokaciji. Fragmenti relacije memorišu se na pojedinim lokacijama, što bi se moglo koristiti za samu normalizaciju. 7

Vertikalna normalizacija je ono što ćemo mi koristiti u postupku normalizacije. � Postoje 1.

Vertikalna normalizacija je ono što ćemo mi koristiti u postupku normalizacije. � Postoje 1. 2. sledeće dve varijante vertikalne normalizacije: normalizacija dekompozicijom, normalizacija sintezom. � Normalizacija dekompozicijom započinje od proizvolje nenormalizoovane relacione šeme i izvodi se u koracima. ◦ Svakim korakom normalizacije relaciona šema prevodi se u višu normalnu formu, tako da se polazni skup obeležja deli u dva skupa i od svakog formira posebna relaciona šema. ◦ Svaki korak normalizacije mora biti reverzibilan. � Normalizacija sintezom polazi od skupa obeležja i od skupa zavisnosti zadatih na tom skupu obeležja. Postupak se ne izvodi u koracima već se direktno formiraju relacione šeme koje ispunjavaju uslove zahtevane normalne forme. 8

VERTIKALNA NORMALIZACIJA DEKOMPOZICIJOM �U kontekstu vertikalne normalizacije definisano je šest normalnih formi (NF) šema

VERTIKALNA NORMALIZACIJA DEKOMPOZICIJOM �U kontekstu vertikalne normalizacije definisano je šest normalnih formi (NF) šema relacija: ◦ prva normalna forma (1 NF), ◦ druga normalna forma (2 NF), ◦ treća normalna forma (3 NF), ◦ Boyce/Coddova normalna forma (BCNF), ◦ četvrta normalna forma (4 NF), ◦ peta normalna forma (5 NF). 9

� Zadatak postupka normalizacije je da relacionu šemu prvo transformiše u 1 NF, zatim

� Zadatak postupka normalizacije je da relacionu šemu prvo transformiše u 1 NF, zatim u 2 NF, 3 NF i tako redom. Što je redni broj normalne forme veći, to su i uslovi koji se postavljaju strožiji. � Polazeći od pojmova funkcionalne zavisnosti i dekompozicije bez gubitka informacija, definisane su 1 NF, 2 NF, 3 NF i 4 NF (Boyce/Coddova normalna forma) i postupak normalizacije kojim se te forme postižu. � Za razmatranja 5 NF i 6 NF potrebno je uvođenje pojma višeznačne funkcionalne zavisnosti i kompjuterski zasnovanih algoritama za modelovanje. 10

1. Normalna Forma � Definicija: Š. R. je u 1 NF, ako je svaki

1. Normalna Forma � Definicija: Š. R. je u 1 NF, ako je svaki njen atribut skalarnog tipa – vrednost svakog atributa je jednostruka i nedeljiva � Normalizacija se formalno prikazuje: R(X, (Y)) R 1(X, Y) � Primer: Posmatra se š. r. JE_AUTOR(SIFN, (SIFA, IZDANJE)), nad kojim važi: F={SIFN (SIFA, IZDANJE), SIFN, SIFA IZDANJE} � Normalizacijom se dobija JE_AUTOR 1(SIFN, SIFA, IZDANJE), pri čemu je: � F 1={SIFN, SIFA IZDANJE} 11

1. normalna forma � Primer: je_autor ( SIFN RBP 0 RK 00 PP 00

1. normalna forma � Primer: je_autor ( SIFN RBP 0 RK 00 PP 00 PJC 0 SIFA AP 0 JN 0 DM 0 ZP 0 DM 0 IT 0 AP 1 ZP 0 IZDANJE) 1 2 1 1 2 3 1 2 12

1. normalna forma � Uobičajeno je da se zapis vrši na sledeći način: JE_AUTOR(SIFN,

1. normalna forma � Uobičajeno je da se zapis vrši na sledeći način: JE_AUTOR(SIFN, (SIFA, IZDANJE)) � U klasičnim informacionim sistemima rešenja su bila sledeća: JE_AUTOR(SIFN, SIFA 1, IZDANJE 1, SIFA 2, IZDANJE 2, . . . ) ◦ Ovakvo rešenje podrazumeva promenljivu dužinu sloga, pa se onemogućava rad sa direktnim pristupom ◦ Ako se unapred fiksira dužina sloga, ograničavamo maksimalni broj autora ◦ Postavljanje upita sa ovakvom strukturom je izuzetno teško 13

je_autor ( SIFN RBP 0 RK 00 PP 00 PJC 0 je_autor 1 (

je_autor ( SIFN RBP 0 RK 00 PP 00 PJC 0 je_autor 1 ( SIFN RBP 0 RK 00 PP 00 PJC 0 SIFA AP 0 JN 0 DM 0 ZP 0 DM 0 IT 0 AP 1 ZP 0 IZDANJE) 1 2 1 1 2 3 1 2 1 NF 14

1. normalna forma 1 NF Indeks Ime i prezime Sekcija 152/2002 193/2003 98/2002 Marković

1. normalna forma 1 NF Indeks Ime i prezime Sekcija 152/2002 193/2003 98/2002 Marković Petar Petrović Jelena Janković Fudbal Košarka, Fudbal, Plivanje Tenis 1 NF Indeks Ime Prezime 152/2002 193/2003 98/2002 Marko Petar Jelena Marković Petrović Janković Sekcija Fudbal Košarka Fudbal Plivanje Tenis 15

1. normalna forma 1 NF Indeks Ime Prezime Indeks 152/2002 193/2003 98/2002 Marko Petar

1. normalna forma 1 NF Indeks Ime Prezime Indeks 152/2002 193/2003 98/2002 Marko Petar Jelena Marković Petrović Janković 152/2002 193/2003 98/2002 Sekcija Fudbal Košarka Fudbal Plivanje Košarka 16

1. normalna forma � Primer: ◦ RADPROJ(JMBG, Ime, Sif. P, Sati) F={JMBG, Sif. P

1. normalna forma � Primer: ◦ RADPROJ(JMBG, Ime, Sif. P, Sati) F={JMBG, Sif. P (Ime, Sati), JMBG, Sif. P Sati, JMBG Ime} RADPROJ(JMBG, Ime, Sif. P, Sati) JMBG Ime Šif. P Sati 123 Marko P 1 3 123 Marko P 3 2 123 Marko P 5 2 222 Petar P 3 4 222 Petar P 4 2 333 Janko P 1 5 17

1. normalna forma � Primer: ◦ RADPROJ(JMBG, Ime, Sif. P, Sati) RADNIK(JMBG, Ime) JMBG

1. normalna forma � Primer: ◦ RADPROJ(JMBG, Ime, Sif. P, Sati) RADNIK(JMBG, Ime) JMBG Ime PROJEKAT(JMBG, Šif. P, Sati) JMBG Šif. P Sati M 1 I 1 123 P 1 3 123 P 3 2 123 P 5 2 222 P 3 4 222 P 4 2 333 P 1 5 M 2 I 2 M 3 I 3 18

2. normalna forma � Definicija: Š. r. R je u 2 NF ako nad

2. normalna forma � Definicija: Š. r. R je u 2 NF ako nad njom ne postoji ni jedna funkcijska zavisnost, po kojoj neki ne-ključni atribut parcijalno zavisi od bilo kog kandidat-ključa Ili, drugim rečima � Š. r. je u II normalnoj formi ako svi atributi entiteta, koji nisu primarni ključevi, zavise od totalno (od celog) primarnog ključa 19

2. normalna forma � Primer: Posmatra se loša struktura relacije AUTOR(SIFA, SIFN, IME, IZDANJE)

2. normalna forma � Primer: Posmatra se loša struktura relacije AUTOR(SIFA, SIFN, IME, IZDANJE) kao i skup funkcijskih zavisnosti F={SIFA, SIFN IME, IZDANJE; SIFA IME} parcijalna zavisnost �U postupku normalizacije treba SIFA IME izdvojiti u posebnu šemu relacije, a iz polazne šeme relacije ukloniti desnu stranu te zavisnosti, tj. IME. 20

2. normalna forma � Vrši se sledeća dekompozicija: AUTOR(SIFA, SIFN, IME, IZDANJE) {SIFA, SIFN

2. normalna forma � Vrši se sledeća dekompozicija: AUTOR(SIFA, SIFN, IME, IZDANJE) {SIFA, SIFN IME, IZDANJE SIFA IME} AUTOR 1 (SIFA, SIFN, IZDANJE) {SIFA, SIFN IZDANJE} AUTOR 2 (SIFA, IME) {SIFA IME} � Dekompozicijom polazne relacije uklonjena je neželjena parcijalna funkcijska zavisnost 21

3. normalna forma � Definicija: Š. r. R je u 3 NF ako nad

3. normalna forma � Definicija: Š. r. R je u 3 NF ako nad njom ne postoji ni jedna funkcijska zavisnost, po kojoj neki ne-ključni atribut tranzitivno zavisi od bilo kog kandidat-ključa � Uslovi za III normalnu formu (dozvoljene funkcijske zavisnosti): ◦ zavisnost X Y je trivijalna tj. Y X ◦ zavisnost je superključna, tj. X R ◦ Y je deo kandidat ključa, tj. Z(Y Z Z R) � Svaka šema relacije koja je u III normalnoj formi istovremeno je i u II normalnoj formi 22

3. normalna forma � Primer: Posmatra se relacija o naslovima koja sadrži sve podatke

3. normalna forma � Primer: Posmatra se relacija o naslovima koja sadrži sve podatke o naslovima, oblastima i autorima: NASLOV(SIFN, SIFA, IZDANJE, NAZIVN, IME, SIFO, NAZIVO) kao i odgovarajući skup funkcijskih zavisnosti: F={ SIFN, SIFA IZDANJE, NAZIVN, IME, SIFO, NAZIVO SIFN NAZIVN, SIFO SIFA IME SIFO NAZIVO} 23

F={ SIFN, SIFA IZDANJE, NAZIVN, IME, SIFO, NAZIVO SIFN NAZIVN, SIFO SIFA IME SIFO

F={ SIFN, SIFA IZDANJE, NAZIVN, IME, SIFO, NAZIVO SIFN NAZIVN, SIFO SIFA IME SIFO NAZIVO} 3. normalna forma � Normalizacija primenom kriterijuma za III nor. formu: NASLOV(SIFN, SIFA, IZDANJE, NAZIVN, IME, SIFO, NAZIVO) Uklanjamo zavisnost SIFO NAZIVO NASLOV 1(SIFO, NAZIVO) {SIFO NAZIVO} NASLOV(SIFN, SIFA, IZDANJE, NAZIVN, IME, SIFO) Uklanjamo zavisnost SIFN NAZIVN, SIFO NASLOV 2(SIFN, NAZIVN, SIFO) {SIFN NAZIVN, SIFO} NASLOV(SIFN, SIFA, IZDANJE, IME) Uklanjamo zavisnost SIFA IME NASLOV 3(SIFA, IME) NASLOV 4(SIFN, SIFA, IZDANJE) {SIFA IME} {SIFN, SIFA IZDANJE} 24

� Definicija: Bojs-Kodova normalna forma Š. r. R je u Bojs-Kodovoj normalnoj formi ako

� Definicija: Bojs-Kodova normalna forma Š. r. R je u Bojs-Kodovoj normalnoj formi ako svaka funkcijska zavisnost X Y koja važi nad njom zadovoljava jedan od uslova: ◦ zavisnost je trivijalna tj. Y X ◦ zavisnost je superključna, tj. X R �U odnosu na III normalnu formu, strožija definicija ◦ Eliminišu se dodatne tranzitivne zavisnosti � Šema relacije u Bojs-Kodovoj normalnoj formi je istovremeno i u III normalnoj formi 25

Bojs-Kodova normalna forma � Primer: Posmatra se šema relacije o pozajmicama, koja sadrži podatke

Bojs-Kodova normalna forma � Primer: Posmatra se šema relacije o pozajmicama, koja sadrži podatke o naslovima, članovima i knjigama: POZAJMICA(SIFN, SIFC, DANA, NAZIVN, SIFK) kao i odgovarajući skup funkcijskih zavisnosti: F={ SIFN, SIFC, DANA NAZIVN, SIFK SIFN NAZIVN} 26

POZAJMICA(SIFN, SIFC, DANA, NAZIVN, SIFK) F={SIFN, SIFC, DANA NAZIVN, SIFK SIFN NAZIVN} � Normalizacijom

POZAJMICA(SIFN, SIFC, DANA, NAZIVN, SIFK) F={SIFN, SIFC, DANA NAZIVN, SIFK SIFN NAZIVN} � Normalizacijom Bojs-Kodova normalna forma se dobija sledeća dekompozicija: POZAJMICA(SIFN, SIFC, DANA, NAZIVN, SIFK) Uklanjamo zavisnost SIFN NAZIVN POZAJMICA 1(SIFN, NAZIVN) POZAJMICA(SIFN, SIFC, DANA, SIFK) Uklanjamo zavisnost SIFK SIFN POZAJMICA 2(SIFK, SIFN) POZAJMICA 3(SIFK, SIFC, DATUM) 27

1 NF Atributi skalarnog tipa 2 NF Nema parcijalne zavisnosti ne-ključnog atributa od kandidat

1 NF Atributi skalarnog tipa 2 NF Nema parcijalne zavisnosti ne-ključnog atributa od kandidat ključa Nema tranzitivne zavisnosti ne-ključnog atributa od kandidat ključa Nema dodatnih tranzitivnih zavisnosti 3 NF BC NF slabo 5 NF: Peta normalna forma (tzv. izolacija semantički povezanih relacija) DKNF: Domen/Ključ normalna forma (tzv. savršen model) 6 NF: Šesta normalna forma (tzv. “bez ne-trivijalnih” join zavisnosti) - razbija relacije na najmenju moguću jedinicu, upotrbljivo isključivo kod temporalnih vrednosti gde se vremenski intervali razbijaju na pojedinačne vrednosti ) strogo 28