Docsity
Docsity

Pripremite ispite
Pripremite ispite

Studirajte zahvaljujući brojnim resursima koji su dostupni na Docsity-u


Nabavite poene za preuzimanje
Nabavite poene za preuzimanje

Zaradite bodove pomažući drugim studentima ili ih kupite uz Premium plan


Školska orijentacija
Školska orijentacija


Baze podataka normalizacija, Skripte od Baze podataka

Normalizacija baze podataka kljucevi zavisnost

Tipologija: Skripte

2020/2021

Učitan datuma 21.03.2021.

andela-bogicevic
andela-bogicevic 🇸🇷

1 dokument

1 / 32

Toggle sidebar

Ova stranica nije vidljiva u pregledu

Ne propustite važne delove!

bg1
Baze podataka
Normalizacija
2020/2021
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20

Delimični pregled teksta

Preuzmite Baze podataka normalizacija i više Skripte u PDF od Baze podataka samo na Docsity!

Baze podataka

Normalizacija

Sadržaj

  • Ključevi
  • Funkcijska zavisnosti
  • Prva normalna forma
  • Druga normalna forma
  • Treća normalna forma
  • Bojs-Kodova normalna forma

Ključevi

Primer 1:

Klijent( JMBG, Ime, MobilniTel, FiksniTel)

  • Super ključevi:
    • JMBG
    • MobilniTel
    • JMBG, Ime
    • JMBG, MobiniTel
    • JMBG, FiksniTel
    • MobilniTel, Ime
    • MobilniTel, FiksniTel
    • JMBG, Ime, MobiniTel
    • JMBG, Ime, FiksniTel
    • JMBG, MobiniTel , FiksniTel
    • Ime, MobiniTel , FiksniTel
    • JMBG, Ime , MobiniTel , FiksniTel
      • Kandidat ključevi:
        • JMBG
          • MobilniTel
  • Primarni ključ:
  • JMBG - Alternativni ključ: - MobilniTel - Ključni atributi: - JMBG - MobilniTel - Neključni atributi: - Ime - FiksniTel

Ključevi

  • IdA
  • IdA, Boja
  • IdA, RegGrad
  • IdA, RegBroj
  • IdA, IdM
  • RegGrad, RegBroj
  • RegGrad, RegBroj, IdA
  • RegGrad, RegBroj, Boja
  • ….

Primer 2:

Automobil( IdA, Boja, RegGrad, RegBroj, IdM)

  • Super ključevi:
    • Kandidat ključevi:
      • IdA
      • RegGrad, RegBroj
    • Primarni ključ:
      • IdA
    • Alternativni ključ:
      • RegGrad, RegBroj
    • Ključni atributi:
      • IdA, RegGrad, RegBroj
    • Neključni atributi:
      • Boja, IdM

Problemi redundanse (višestrukost)

  • Primer 4: PREDAVAC( IdP, Ime, Prezime, SifraPredmeta )
  • Problem je redundantnost podataka, koja izaziva:
    • višestruko unošenje (za svaku šifru predmeta, unosili bi ponovo već postojeće ime i prezime predavača)
    • višestruko menjanje (u slučaju menjanja imena ili prezimena, na više mesta se vršili promenu)
    • višestruko uklanjanje (u slučaju brisanja predmeta, na više mesta bi uklanjali ime i prezime predavača)
  • Neljkučni atribut zavisi samo od jednog ključnog atributa. IdP Ime Prezime SifraPredmeta 1 Stefan Tubić 13S112BP 1 Stefan Tubić 13E113BP 2 Filip Hadžić 13S112BP 2 Filip Hadžić 13E113BP 3 Tamara Šekularac 13E113BP

Problemi redundanse (anomalije)

  • Primer 4: PREDAVAC( IdP, Ime, Prezime, SifraPredmeta )
  • Problem je redundantnost podataka, koja izaziva:
    • anomaliju unošenja (ne možemo da unesemo novog predavača ako nema predmet koji drži)
      • Npr. ako imamo predavača Peru Perića koji ne predaje ništa, onda ne možemo da ga unesemo u bazu
    • anomaliju uklanjanja (može se desiti da uklanjanjem jednog podatka, uklonimo i drugi nezavisan podatak)
      • Npr. ako se ukine (obriše) predmet 13E113BP1, onda bi i Tamara Šekularac bila uklonjena iz baze IdP Ime Prezime SifraPredmeta 1 Stefan Tubić 13S112BP 1 Stefan Tubić 13E113BP 2 Filip Hadžić 13S112BP 2 Filip Hadžić 13E113BP 3 Tamara Šekularac 13E113BP

Primeri loše baze

  • Primer 6:

POZAJMICA( IdN, IdC, Datum, Dana, IdK )

IdN – Identifikacija naslova knjige IdC – Identifikacija člana biblioteke Datum – Datum preuzimanja knjige Dana – Broj dana pozajmice knjige IdK – Identifikacija knjige “Ako znamo knjigu (IdK), onda znamo i koji je naslov knjige (IdN)” ili “IdN zavisi od IdK ( IdKIdN )”

  • Problem što ključni atributi zavise od neključnih atributa

Funkcijska zavisnost

  • Šema relacije R je konačan skup atributa 𝐴𝑖 i konačan skup O ograničenja nad vrednostima tih atributa.
  • Relacija r nad šemom relacije R je konačan skup torki vrednosti atributa.
  • X, Y i Z su podskupovi atributa šeme relacije R.
  • Nad šemom relacije R postoji funkcijska zavisnost X→Y ako u relaciji r nad tom šemom za bilo koje dve torke 𝑡 1 i 𝑡 2 za koje je 𝑡 1 𝑋 = 𝑡 2 𝑋 uvek važi da je i 𝑡 1 𝑌 = 𝑡 2 𝑌 , tj. : ∀𝑡 1 ∀𝑡 2 𝑡 1 ∈ 𝑟 ∧ 𝑡 2 ∈ 𝑟 ∧ 𝑡 1 𝑋 = 𝑡 2 𝑋 ⇒ 𝑡 1 𝑌 = 𝑡 2 𝑌
  • Primer 5: IdAIdM : DRZI( IdM, IdK, Datum, IdA) “Ako znamo automobil ( IdA ) onda znamo i njegov model ( IdM )” IdM, IdKDatum, IdA : “Ako^ znamo^ model^ ( IdM ) i znamo^ klijenta ( IdK )^ onda znamo^ i datum od kada je iznajmljen – drži i automobile ( IdA ) ”

Funkcijska zavisnost

  • Armstrongova pravila:
    1. Unija: 𝑋 → 𝑌 ∧ 𝑋 → 𝑍 ⟹ 𝑋 → 𝑌𝑍 IdA, IdK → DatumIdA, IdK → IdMIdA, IdK → IdM, Datum
    2. Kompozicija: 𝑋 → 𝑌 ∧ 𝑍 → 𝑊 ⟹ 𝑋𝑍 → 𝑌𝑊 IdM, IdK → DatumIdA → IdMIdM, IdK, IdA → Datum, IdM
    3. Dekompozicija: 𝑋 → 𝑌𝑍 ⟹ 𝑋 → 𝑌 ∧ 𝑋 → 𝑍 IdA, IdK → IdM, DatumIdA, IdK → DatumIdA, IdK → IdM
    4. Pseudotranzitivnost: 𝑋 → 𝑌 ∧ 𝑊𝑌 → 𝑍 ⟹ 𝑋𝑊 → 𝑍 IdA → IdMIdM, IdK → DatumIdA, IdK → Datum

Funkcijska zavisnost

  • Funkcijska zavisnost je:
    • Superključna akko za 𝑋 → 𝑌 važi da je 𝑋 → 𝑅 IdM, IdKDatum IdM, IdKIdM, IdK, Datum, IdA
    • Trivijalna akko za 𝑋 → 𝑌 važi da je Y podskup od 𝑋 IdM, IdK → IdK
    • Totalna akko za 𝑋 → 𝑌 ne postoji ni jedan pravi podskup 𝑍 od 𝑋, za koje važi Z → 𝑌 IdM, IdKDatum ( IdM → Datum , IdK → Datum )
    • Parcijalna akko za 𝑋 → 𝑌 postoji pravi podskup 𝑍 od 𝑋, za koje važi Z → 𝑌 IdA, IdM, IdKDatum ( IdM, IdKDatum )
    • Tranzitivna akko za 𝑋 → 𝑌 postoji 𝑍 različito od 𝑋 i Y i važi 𝑋 → 𝑍 iZ → 𝑌 IdA, IdK → Datum ( IdA, IdK → IdM, IdKIdM, IdK → Datum )

Zatvarač skupa atributa

  • Primer 7:

DRZI( IdM, IdK, Datum, IdA)

IdA → IdM; IdM, IdK → Datum, IdA

IdM+^ = IdM IdA+^ = IdA, IdM ( IdM, IdK )

= IdM, IdK, Datum, IdA ( IdA, IdK )+^ = IdM, IdK, Datum, IdA

  • Primena:
    • Izračunavanje zatvarača F +
    • Nalaženje skupa atributa koji su kandidat ključevi
    • Nalaženje skupa atributa koji su super ključevi Rezultat = X; While ( postoje promene u Rezultat ) { For Each (Y → Z in F) { If ( Y ⊆ Rezultat) Rezultat = Rezultat ∪ Z } }

Pronalaženje kandidat ključa

Data je relacija R i skup funkcijskih zavisnosti F. Potrebno je naći kandidat

ključeve (KK).

Opšti postupak:

I. Ukloniti trivijalne funkcijske zavisnosti iz F II. Analizirati svaki atribut iz R i rasporediti atribute u četiri grupe: i. Elementi koji se ne nalaze ni u jednoj funkcijskoj zavisnosti u F ii. Elementi koji se nalaze isključivo sa leve strane funkcijskih zavisnosti u F iii. Elementi koji se nalaze isključivo sa desne strane funkcijskih zavisnosti u F iv. Elementi koji se nalaze sa obe strane funkcijskih zavisnosti u F III. Izvršiti uniju grupa i i ii i odrediti zatvarač skupa atributa (grupa i i ii je sigurno deo KK) IV. A) Ako se u koraku III dobio KK to je jedini KK. B) Ako se u koraku III nije dobio KK, onda se kombinuje unija grupa i i ii sa atributima grupe iv. Kombinacije se vrše iterativno po broju atributa.

Pronalaženje kandidat ključa

III. Izvršiti uniju grupa i i ii i odrediti zatvarač skupa atributa ( F, D )+→ F, D Nismo dobili sve atribute iz R (FD nije KK) ( F, D, A )

→ F, D, A ( F, D, B )+→ F, D, B, A, E, C ( F, D, C )+→ F, D, C, B, A, E (nema svih atributa iz R ⟹ FDA nije KK) (svi atributi iz R ⟹ FDB je KK) (svi atributi iz R ⟹ FDC je KK) Nema potrebe da analiziramo kombinacije sa četiri (i više) atributa, jer bi ostale kombinacije formirale super ključ koji nije kandidat ključ. i. F ii. D iii. E iv. A, B,C F= {AB→C, C→B, CD→AD, BD→AE} IV. B) Kombinovanje unije grupa i i ii sa atributima grupe iv Analiziramo kombinacije sa tri atributa:

Dekompozicija

  • Polazna relacija se dekomponuje (podeli) na više relacija.

Svi atributi iz početne relacije se moraju pojaviti i u novim relacijama,

dok se novi atributi ne uvode.

  • Cilj je ukidanje viška podataka bez gubitaka informacija.
  • Dekompozicija je dobra u slučaju da su očuvane sve funkcijske zavisnosti.
  • Primer 4: PREDAVAC( IdP, Ime, Prezime, SifraPredmeta ) →

PREDAVAC( IdP, Ime, Prezime ), PREDAJE ( IdP, SifraPredmeta )

  • Primer 5: DRZI( IdM, IdK, Datum, IdA) →

AUTOMOBIL ( IdA, IdM ), DRZI ( IdA, IdK, Datum )