Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

BP drugi kolokvijum

Šest osnovnih operatora relacione algebre:

 Selekcija

 (r) = {t | t  r and p(t)}


p
p - predikat ili uslov selekcije
Npr.:  (predmet)
ECTS=6

 Projekcija

π (r)
< lista atributa >
Npr.:  (predmet)
NazivPredmeta, ECTS

 Unija

r  s = {t | t  r or t  s}
Npr.:  (nastavnik)   (student)
JMB JMB

 Razlika

r – s = {t | t  r and t  s}
 Kartezijev proizvod

r x s = {t q | t  r and q  s}
Npr.:  (r x s)
A=C

 Preimenovanje

 x (E) - Vraća izraz E pod imenom X.

Dodatne operacije relacione algebre (mogu se izraziti preko osnovnih operatora):


 Presjek (set intersection)

r  s ={ t | t  r and t  s }
Primjetimo da je: r  s = r - (r - s)

 Prirodno spajanje (natural join) [1]


 Dijeljenje (division) [2]
 Pridjeljivanje (assignment)
Operacija pridjeljivanja () obezbjeđuje pogodan način da se izraze kompleksni upiti. Rezultat
izraza sa desne strane operatora pridjeljivanja  se pridjeljuje relacionoj promjenljivoj na
lijevoj strani operatora . Privremene relacione promjenljive, kojima su pridijeljene
vrijednosti, mogu se koristiti u narednim izrazima.
temp1  R-S (r)
temp2  R-S ((temp1 x s) – R-S,S (r))
result  temp1 – temp2
Za korištene relacije: filijala (naziv-filijale, grad-filijale, vrijednost-imovine)
klijent (ime-klijenta, ulica-klijenta, grad-klijenta)
stedni-racun (broj_racuna, naziv-filijale, stanje)
kredit (broj-kredita, naziv-filijale, iznos)
klijent-racun (ime-klijenta, broj_racuna)
klijent-kredit (ime-klijenta, broj-kredita)

1. Opišite operaciju prirodnog spajanja. Ilustrujte primjenu operacije prirodnog


spajanja za kreiranje upita kojim se iz baze podataka (specifikovane u dijelu
korištene relacije) dobija lista klijenata koji imaju štedni račun u nekoj filijali
lociranoj u Banjoj Luci.
Operacija spajanja se koristi da se pripadajuće informacije iz više relacija predstave u jednoj
tabeli. Ove operacije spajanja se često nazivaju i operacije unutrašnjeg spajanja (INNER
JOINS). Operacija prirodnog spajanja (Natural-Join) sa notacijom r⋈s , ako su r i s relacije na
šemama R i S respektivno, tada je r⋈s relacija na šemi RS koja se dobije na slijedeći način:
Svaki par n-torki tr iz r i ts iz s, ako tr i ts imaju iste vrijednosti na svakom od atributa iz RS,
rezultatu se dodaje n-torka t, gdje t ima iste vrijednosti kao tr na r i t ima iste vrijednosti kao ts
na s.
Primjer:
R = (A, B, C, D); S = (E, B, D)
Rezultantna šema = (A, B, C, D, E)
r⋈s:
r.A, r.B, r.C, r.D, s.E (r.B = s.B  r.D = s.D (r x s))

Upit kojim se iz baze podataka dobija lista klijenata koji imaju štedni račun u nekoj filijali
lociranoj u Banjoj Luci:
 ime-klijenta ( grad-filijale =‘Banja Luka’ (klijent-racun ⋈ stedni-racun ⋈ filijala))

2. Dajte definiciju i opis operacije dijeljenja relacione algebre. Ilustrujte primjenu


agregatne operacije za kreiranje upita kojim se iz baze podataka (specifikovane u
dijelu korištene relacije) dobija lista imena klijenata koji imaju odobrene kredite
u svim filijalama banke koje su locirane u Banjoj Luci.

Operacija Dijeljenja (Division Operation), sa notacijom r ÷ s , pogodna


je za upite koji uključuju frazu “za sve”. Neka su r i s relacije na šemama
R i S respektivno, gdje je: R = (A1, …, Am, B1, …, Bn); S = (B1, …, Bn).
Rezultat operacije r  s je relacija na šemi R – S = (A1, …, Am),
takva da je: r  s = { t | t   R-S(r)   u  s ( tu  r ) }.

DX: Element iz kolone A (Tabela R), npr. α, će se naci u r  s ako kao par
ima sve elemente koje se nalaze u tabeli S. Znači u R ∃ (α,1) i (α,2).
Ovaj upit, primjenom agregatne operacije: Ne zna ni prof. (Nije dobro
definisano) ☹
3. Navesti definiciju i dati opis operacije generalizovane projekcije. Kreirajte upit
kojim se iz baze podataka (specifikovane u dijelu: Korištene relacije) dobija lista
naziva filijala i ukupnog iznosa (stanja) računa za odnosnu filijalu izraženu u
EUR-ima. Napomena: Stanja računa u filijalima se vode u KM. Uzeti da je kurs
KM prema EUR-u 1.95 KM za 1 EUR-o.
Generalizovana projekcija proširuje operaciju projekcije na način da se dozvoljava korištenje
aritmetičkih funkcija u projekcionoj listi.
 F1, F2, …, Fn(E)
E je bilo koji izraz relacione algebre, svaki od F1, F2, …, Fn su aritmetički izrazi koji uključuju
konstante i atribute iz šema referenciranih u E. Tako npr. neka je data relacija credit-
info(customer-name, limit, credit-balance). Koliko još svaka osoba može da potroši se dobija:
naziv-filijale, limit – credit-balance (credit-info)

Upit kojim se iz baze podataka dobija lista naziva filijala i ukupnog iznosa (stanja) računa za
odnosnu filijalu izraženu u EUR-ima (ako se misli na štedne račune):
 naziv-filijale, ukupan-iznos_KM/1,95 as ukupan-iznos_EUR ( naziv-filijale gsum(stanje) as ukupan-iznos_KM (stedni-racun))

4. Kreirajte upit u relacionoj algebri kojim se iz baze podataka (specifikovane u


dijelu: Korištene relacije) dobija lista koja sadrži brojeve štednih računa sa
maksimalnom vrijednošću stanja u relaciji stedni-racun. Napomena: Jedan ili više
računa može imati maksimalnu vrijednost na atributu stanje.

tmp  g max(stanje) as stanje (stedni-racun)


 broj_racuna, stanje ( stanje = tmp.stanje (stedni-racun)× tmp)
Za korištene relacije:
zaposleni (Ime, Ulica, Grad)
zaposlenje (Ime, NazivFirme, Plata)
firma (NazivFirme, Grad)
rukovodi (Ime, ImeRukovodioca)

5. Opišite operacije spajanja (Dekartov proizvod, theta join, equi-join, natural join) u
relacionoj algebri. Koja je razlika equi-join i natural join spajanja? Ilustrujte
primjenu operacije spajanja (koju smatrate pogodnom) za kreiranje upita kojim
se iz baze podataka specifikovane (u dijelu Korištene relacije) dobija:
Ime, Grad, Plata
radnika koji imaju rukovodioca sa imenom 'Petar'.

Ovako, theta join omogućuje proizvoljno poređenje odnosa ( kao što je ≥ ), equi-join je theta
join sa operatorom jednakosti, natural join je e equi-join na atribute koje imaju isto ime u svakoj
vezi. Pored toga, natural join uklanja duple kolone koje su uključene u odnosu jednakosti, tako
da ostaje samo jedna od poređenih kolona.
Upit:
 Ime, Grad, Plata (( ImeRukovodioca = ‘Petar’ (rukovodi)) ⋈ zaposleni ⋈ zaposlenje))

6. Dajte definiciju i opis agregatne operacije relacione algebre. Ilustrujte primjenu


agregatne operacije za kreiranje upita kojim se iz baze podataka (specifikovane u
dijelu: Korištene relacije) dobija prosječna plata radnika kompanije po gradovima
u kojima žive.
Agregatna operacija u relacionoj algebri je oblika:
G1, G2, …, Gn g F1( A1), F2( A2),…, Fm( Am) (E)
E je bilo koji izraz relacione algebre. G1, G2 …, Gn je lista atributa po kojima se vrši grupisanje
n-torki rezultata izraza (može biti prazna). Svaka Fi je agregaciona funkcija, a svaki Ai je ime
atributa. Agregatna funkcija uzima (kao ulaz) kolekciju vrijednosti i vraća jednu vrijednost kao
rezultat. Agregatne funkcije su:
 avg: prosječna vrijednost
 min: minimalna vrijednost
 max: maksimalna vrijednost
 sum: suma vrijednosti
 count: broj vrijednosti

Slično kao kod generalizovane projekcije, rezultati agregatnih funkcija nemaju ime, mora se
koristiti preimenovanje (renaming) .

Upit kojim se iz baze podataka dobija prosječna plata radnika kompanije po gradovima u kojima
žive:
Grad g avg(Plata) as Prosječna plata (zaposleni ⋈ zaposlenje )
7. Null vrijednosti: šta se reprezentuje null vrijednošću i u kojem domenu? Kako
operacije relacione algebre rade sa null vrijednostima? Napomena: Pretpostaviti
da operacije relacione algebre koriste istu konvenciju kao SQL.
Moguće je da n-torke imaju null vrijednost za neke od atributa, null označava nepoznatu
vrijednost ili vrijednost koja ne postoji. Rezultat nekog aritmetičkog izraza koji sadrži null
vrijednost je null vrijednost. Za eliminisanje duplih vrijednosti i grupisanje, null se tretira kao
bilo koja druga vrijednost, i uzma se da su dvije null vrijednosti iste vrijednosti (jedan upit traži
polje sa null, dobija dva rezultata, vraca samo jedan – uzima da su iste vrijednosti).
Konvenciju koja je usvojena u SQL standardu: Komparacija sa null vrijednostima kao rezultat
vraća specijalnu logičku vrijednost unknown. Ukoliko bi false bilo korišteno umjesto unknown,
tada not (A < 5) ne bi bilo ekvivalentno sa A >= 5 (A - null, ≡ - ekvivalencija):
A<5 ≡ not(A>5)
false ≡ not(false)
Koristi se logika sa tri vrijednosti: true, false, i unknown: Logičke operacije koje uključuju
unknown logičku vrijednost:
 OR:
o (unknown or true) = true
o (unknown or false) = unknown
o (unknown or unknown) = unknown
 AND:
o (true and unknown) = unknown
o (false and unknown) = false
o (unknown and unknown) = unknown
 NOT:
o (not unknown) = unknown
 U SQL-u “P is unknown” rezultuje logičkom vrijednošću true ako se za vrijednost
predikata P dobije unknown.

Rezultat predikata selekcije se tretira kao false, ako se kao vrijednost predikata dobije unknown.

8. Osnovne karakteristike i komparacija relacione algebre i relacionog računa torki.


Relacioni račun torki Pored relacione algebre, za specifikaciju upita u relacionom modelu
koristi se i alternativni jezik relacioni račun, i to dvije varijante: relacioni račun torki i relacioni
račun domena. Za razliku od relacione algebre, gdjc se upitom specifikuje koje operacije
(Dekartov proizvod, selekcija, ...) treba izvesti i kojim redoslijedorm, tj. procedura kako se
dolazi do rezultata, upit u relacionom računu predstavija deklaraciju šta se želi dobiti, bez
specifikacije načina na koji će se doći do rezultata. Zbog toga je relaciona algebra proceduralni,
a relacioni račun neproceduralni, odnosno deklarativni jezik za specifikaciju upita. Za svaki
relacioni jezik, po mogućnostima ekvivalentan osnovnoj relacionoj algebri, kaže se da je
relaciono kompletan (eng. relational complete). Relacioni. račtin (torki i domena) je relaciono
kompletan, što znači da za svaki upit osnovne relacione algebre postoji ekvivalentan upit u
relacionom račlinu, koji može da produkuje isti rezultat. Relacioni račun torki je bio osnova za
realizaciju relacionog jezika Quel za Ingress DBMS.
9. Opšta forma upita u relacionom računu torki. Šta su sigurni izrazi, i šta treba da
bude zadovoljeno da bi izraz (upit) u relacionom računu torki bio siguran?
Navedite primjer upita koji nije siguran, i objasnite zašto.
Opšta forma upita u relacionom računu torki je oblika:
{ t | P(t) },

gdje je t torka promiertijiva (tuple variable), a vrijednost torke t na atributu A se označava t[A].
P je formula slična formulama u predikatskom računu (moze biti true ili false). Rezultat upita
je skup svih n-torki t za koje je predikat P istinit za t. Primjer upita:
{ t | t  predmet  t[ECTS] = 6 }.

Moguće je specifikovati izraze u relacionom računu n-torki, takve da se kao rezultat generišu
beskonačne relacije. Takvi izrazi su nesigurni. Na primjer, {t |  (t  r)} rezultuje beskonačnom
relacijom. Da bi se izbjegle ovakve situacije, skup dozvoljenih izraza se ograničava na sigurne
izraze. Izraz {t | P(t)} u relacionom računu n-torki je siguran ukoliko je svaka komponenta
rezultata iz domena formule P (dom(P)). Domen formule P je skup svih vrijednosti koje se
referenciraju u P, kao i moguće vrijednosti tuple promjenljivih koje se pojavljuju u P. (tuple (n-
torka) promjenljive mogu imati vrijednosti bilo koje n-torke korespondentnih relacija baze
podataka). Npr. izraz { t | t[A]=5  true } nije siguran, definiše beskonačan skup čije se
vrijednosti atributa ne pojavljuju ni u jednoj relaciji, n-torci niti konstanti u P.

10. Formalna definicija relacionog računa domena. Specifikujte upit u relacionom


računu domena, kojim se iz baze podataka (specifikovane u dijelu korištene relacije)
dobija lista imena klijenata koji imaju štedni račun i kojima je dat kredit (u nekim
filijalama banke).
Relacionog računa domena je neproceduralni upitni jezik je po snazi ekvivalentan relacionom
računu n-torki. Svaki upit je izraz oblika:
{  x1, x2, …, xn  | P(x1, x2, …, xn)},

gdje x1, x2, …, xn predstavljaju domenske varijable, a P predstavlja formulu sličnu formuli u
predikatskom računu. Formula se izgrađuje od atoma. Atomi:
 <x1, ..., xn >  r, gdje je r relacija na n atributa a xi, i = 1, … , n su domenske varijable ili
domenske konstante,
 x  y, gdje su x, y domenske varijable a  operator poređenja (, , =, , , ) i
 x  c, gdje je c konstanta u domenu atributa x, a x domenska varijabla.
Primjer upita:
{ <c,n,e> | <c,n,e>  predmet  e = 6 }.
Upit kojim se iz baze podataka dobija lista imena klijenata koji imaju štedni račun i kojima je
dat kredit (u nekim filijalama banke):
{ <i> | ∃ r (<i,r>  klijent-racun)  ∃ k (<i,k>  klijent-kradit) }
11. SQL Assertions (potvrde).
Potvrda (eng. assertion) је generalni tip ogrаnicenja kojirn se moze specifikovati predikat/uslov
na nivou baze роdаtаkа, koji mora da bude zadovoljen za svaku instancu baze. Predikat tiрično
ukljucuje atribute iz različitih relacija baze роdаtаkа (ako uključuju atribute samo jedne relacije,
onda se potvrda svodi na ograničenje provjere uslova na nivou rеlacije, а ako uključuju samo
jedan atribut, onda je ekvivalentna check ograničenju nа nivou atributa) . Specifikaciјa роtvrdе
imа formu:
create assertion naziv_potvrde check (Р);
Na primjer, zahtjev da: 'za sve studijske programe, broj obaveznih predmeta ne moze da bude
manji od broja izbornih ргеdmеtа' sadrzi frazu 'za sve', koja nema direkini ekvivalent u SQL-u.
Umjesta toga se može specifikovati uslov 'da ne postoji nijedan studijski program za koji je broj
izbornih рrеdmеtа veći od broja obaveznih ргеdmеtа'. Specifikacijа navedenog ograničenjа tipa
potvrda bila bi:
create assertion broj_obav_predrneta
check (not exists
(select * from stud_program Ѕ
where ((select count ( IdPredmeta ) from sadrzi T
where T. IdSР = S.IdSP аnd ТiрPrеdmеtа='I')
>
(select count ( IdPredmeta ) from sadrzi T
where T. IdSР = S.IdSP аnd ТiрPrеdmеtа='O'))));

Ako uslov nije narušen, DBMS dopušta modifikaciju, u suprotnom se odbija akcija
modifikacije baze. Ovo testiranje utiče na performanse sistema tako da ga treba primjenjivati
samo kada je neophodno.

12. Opišite vrste autorizacije koje se mogu dobiti za različite aktivnosti nad bazom
podataka.
Korisnik može dobiti autorizaciju za sledeće aktivnosti:
 Aktivnosti koje se odnose na rad sa podacima u bazi:
o autorizacija za čitanje podataka iz baze
o autorizacija za umetanje podataka u bazu
o autorizacija za ažuriranje podataka
o autorizacija za brisanje podataka iz baze
 Aktivnosti koje se odnose na definisanje i menjanje strukture baze:
o autorizacija za kreiranje objekata baze podataka
o autorizacija za promenu objekata baze podataka
o autorizacija za brisanje objekata baze podataka
13. Generalna forma davanja/povlačenja privilegija u SQL.
Iskaz namenjen za dodelu prava na objektima šeme baze podataka korisnicima je grant iskaz:
GRANT <lista_privilegija> ON <naziv_objekta> TO <lista_korisnika/lista_uloga>;
Iskaz namenjen za povlačenje prava na objektima šeme baze podataka korisnicima je revode
iskaz:
REVOKE <lista_privilegija> ON <naziv_objekta> FROM <lista_korisnika/lista_uloga>;

14. Specifikujte SQL iskaz, kojim se ulozi licni_bankar dodjeljuje privilegija čitanja,
umetanja, ažuriranja i brisanja podataka (torki) na relaciji stedni-racun.
Napomena: prethodno SQL iskazom kreirati navedenu ulogu.
CREATE ROLE licni_bankar;
GRANT SELECT, INSERT, UPDATE, DELETE ON stedni_racun TO licni_bankar;
FLUSH PRIVILEGES;

/* Za korisnika:
CREATE USER 'licni_bankar'@'localhost' IDENTIFIED BY 'lozinka123' ;
GRANT SELECT, INSERT, UPDATE, DELETE ON db.stedni_racun
TO 'licni_bankar'@'localhost';
FLUSH PRIVILEGES;
*/
15. Specifikujte SQL iskaz, kojim se korisniku U1 oduzima privilegija brisanja
podataka (torki) na relaciji kredit. Napomena: povlačenje privilegije korisniku U1
treba da bude onemogućeno/blokirano ukoliko je korisnik U1 tu privilegiju
proslijedio drugim korisnicima.
REVOKE DELETE ON kredit FROM U1 RESTRICT;
FLUSH PRIVILEGES;
Povlačenje privilegije korisniku U1 je onemogućeno/blokirano/baca error ukoliko je korisnik
U1 tu privilegiju proslijedio drugim korisnicima pomoću RESTRICT, alternativa je CASCADE
gdje se povlače i privilegije drugim korisnicima ukoliko je korisnik U1 tu privilegiju njima
proslijedio.

16. Suvišni atributi. Navedite uslove kada je u funkcionalnoj zavisnosti a → b iz


skupa funkcionalnih zavisnosti F neki atribut suvišan na lijevoj/desnoj strani te
funkcionalne zavisnosti.
Za dati skup funkcionalnih zavisnosti F i funkcionalnu zavisnost (a→b)  F, atribut Aa je
suvišan u a ako funkcionalna zavisnost c→b implicira iz F, gdje je c = a – {A}.

17. Zašto vršimo dekompoziciju relacionih šema? Kakve uslove treba da zadovolji
dekompozicija? Navedite formalnu specifikaciju tih uslova.
Radi podoljšanja organizacije, smanjenja redundantnosti i eliminisanja anomalija. Višeznačne
zavisnosti daju potreban i dovoljan uslov da se relacija može dekomponovati u par svojih
projekcija bez gubitka informacije, tj. da bude rezultat prirodnog spajanja svojih projekcija.
18. Suvišni atributi u funkcionalnim zavisnostima. Eliminišite suvišne atribute u
funkcionalnim zavisnostima iz skupa F = {A→BCD, BC→DE, B→D, D→A} koje
vrijede na šemi R = (A,B,C,D, E, F).
Primjena algoritma na F (Knjiga strana 302: S.5.3):
1. K0: Inicijalizacija. Fm = {A→BCD, BC→DE, B→D, D→A}

2. K1: Primjena dekompozicije na A→BCD tako da A→B, A→C, A→D i na BC→DE tako
da BC→D, BC→E, pa imamo: Fm = {A→B, A→C, A→D, BC→D, BC→E, B→D, D→A}

3. K2: Eliminacija redundantnih funkcionalnih zavisnosti.


 Za A→B sračunamo (A)+ pod {Fm – { A→B }}, odnosno {A→C, A→D, BC→D, BC→E,
B→D, D→A}:(A)+ = {ACD} ne sadrži B. A→B nije redundantna ostaje u Fm.
 Za A→C sračunamo (A)+ pod {Fm – { A→C }}, odnosno {A→B, A→D, BC→D, BC→E,
B→D, D→A}:(A)+ = {ABD} ne sadrži C. A→C nije redundantna ostaje u Fm.
 Za A→D sračunamo (A)+ pod {Fm – { A→D }}, odnosno {A→B, A→C, BC→D, BC→E,
B→D, D→A}:(A)+ = {ABCDE} sadrži D. A→D je redundantna i uklanja se iz Fm.
 Za BC→D sračunamo (BC)+ pod {Fm – { BC→D }}, odnosno {A→B, A→C, A→D,
BC→E, B→D, D→A}:(BC)+ = {ABCDE} sadrži D. BC→D je redundantna i uklanja se iz
Fm.
 Za BC→E sračunamo (BC)+ pod {Fm – { BC→E }}, odnosno {A→B, A→C, A→D,
BC→D, B→D, D→A}:(BC)+ = {ABCD} ne sadrži E. BC→E nije redundantna ostaje u Fm.
 Za B→D sračunamo (B)+ pod {Fm – { B→D }}, odnosno { A→B, A→C, A→D, BC→D,
BC→E, D→A }:(B)+ = {B} ne sadrži D. B→D nije redundantna ostaje u Fm.
 Za D→A sračunamo (D)+ pod {Fm – { D→A }}, odnosno { A→B, A→C, A→D, BC→D,
BC→E, B→D}:(D)+ = {D} ne sadrži A. D→A nije redundantna ostaje u Fm.
Sada je Fm = {A→B, A→C, BC→E, B→D, D→A}.

4. K3: Eliminacija suvišnih atributa.


Lijeva strana od BC→E ima više od jednog atributa, pa se provjerava ima li suvišnijh. Računaju
se (B)+ i (C)+ pod Fm = {A→B, A→C, BC→E, B→D, D→A}.
 Za (B)+ pod Fm dobijamo: (B)+ = {ABCDE} sadrži E, što znači da B→E.
 Za (C)+ pod Fm dobijamo: (C)+ = {C}ne sadrži E.
Kako B→E znaci da je C suvišan atribut u BC→E i uklanja se sa lijeve strane i dobijamo
Fm = {A→B, A→C, B→E, B→D, D→A}.

19. Ekvivalentni skupovi funkcionalnih zavisnosti. Da li su skupovi funkcionalnih


zavisnosti
F1 = { A → C, AC → D, E → AD, E → F } i
F2 = { A → CD, E → ADF } ekvivalentni?
Uputstvo: Nije neophodno sračunavanje F1+ i F2+ . Za ekvivalenciju, dovoljno je
verifikovati da je svaka funkcionalna zavisnost u F2 implicirana skupom funkcionalnih
zavisnosti u F1 i obrnuto.
20. --------------5--------------
21. Neka je data relaciona šema:
R = (IdKnjige, NazivKnjige, Autor_Ime, Autor_Rbr, Žanr_ID, Žanr_Naziv, CIjena).
Napomena: Autor_Rbr označava da li se radi o prvom autoru, drugom autoru itd.
Identifikujte i napišite skup funkcionalnih zavisnosti F koji vrijedi na šemi R. U kojoj
je normalnoj formi šema R? Da li se može poboljšati organizacija podataka
predstavljena datom šemom nekom drugom organizacijom i kojom? Ako smatrate da
se nova organizacija postiže dekompozicijom, opišite karakteristike dekompozicije (da
li se čuvaju funkcionalne zavisnosti, da li je dekompozicija bez gubitka informacija) i
šema dobijenih dekompozicijom (koje su normalne forme šema dobijenih
dekompozicijom).
22. Neka je data relaciona šema:
STUDENT = (JMB, ImeStudenta, Telefon, pSP, pId, pNaziv)
Koja reprezentuje organizaciju podataka o studentima i predmetima (kursevima) koje
je student upisao na studijskom programu. Pretpostavljamo da JMB jedinstveno
identifikuje studenta i da student ima jedno ime, ali da može da ima više brojeva
telefona. Brojevi telefona mogu biti dijeljeni između studenata. Pretpostavljamo da u
različitim studijskim programima mogu postojati isti identifikatori kurseva (predmeta)
i isti nazivi predmeta, pri čemu se isti identifikatori (u različitim studijskim programima)
ne moraju odnositi na isti predmet. U okviru jednog studijskog programa, ili
identifikator kursa ili naziv jedinstveno identifikuju kurs.
Identifikujte i napišite skup funkcionalnih zavisnosti F koji vrijedi na šemi STUDENT.
Šta je(su) kandidatski/ključ(evi) šeme STUDENT? U kojoj je normalnoj formi šema
STUDENT ?
Da li se može poboljšati organizacija podataka, predstavljena šemom STUDENT,
nekom drugom organizacijom i kojom? Ako smatrate da se nova, bolja
organizacija postiže dekompozicijom, opišite karakteristike dekompozicije (da li se
čuvaju funkcionalne zavisnosti, da li je dekompozicija bez gubitka informacija) i šema
dobijenih dekompozicijom (koje su normalne forme šema dobijenih dekompozicijom).
23. Neka je data relaciona šema:
R = (ABCDEF) i skup funkcionalnih zavisnosti: F = {A → BF, C → DE, DE → A }.
a) šta je kandidatski/primarni ključ relacije R? U kojoj je normalnoj formi šema R?
b) da li se može poboljšati organizacija podataka predstavljena datom šemom nekom
drugom organizacijom i kojom? Ako smatrate da se nova, bolja organizacija postiže
dekompozicijom, opišite karakteristike dekompozicije (da li se čuvaju funkcionalne
zavisnosti, da li je dekompozicija bez gubitka informacija) i šema dobijenih
dekompozicijom (koje su normalne forme šema dobijenih dekompozicijom).
24. Neka je data relaciona šema:
R = (ABCDEF) i skup funkcionalnih zavisnosti:
F = {A → C, AC → D, E → AD, E → F }.
a) šta je kandidatski/primarni ključ relacije R? U kojoj je normalnoj formi šema R?
b) da li se može poboljšati organizacija podataka predstavljena datom šemom nekom
drugom organizacijom i kojom? Ako smatrate da se nova, bolja organizacija postiže
dekompozicijom, opišite karakteristike dekompozicije (da li se čuvaju funkcionalne
zavisnosti, da li je dekompozicija bez gubitka informacija) i šema dobijenih
dekompozicijom (koje su normalne forme šema dobijenih dekompozicijom).

You might also like