130-143 Flashcards
Šta je logički model baze podataka?
Logički model se spušta bliže izabranom implementacionom modelu. Uzima u obzir model
podataka koji će se upotrebljavati u implementaciji. Preduslov za započinjanje logičkog modeliranja
je odabiranje vrste baze podataka tj. modela podataka. Ulaz za postupak logičkog modeliranja je
konceptualni model, a izlaz je detaljan logički model.
U čemu je osnovna razlika između konceptualnog i logičkog
modela (i modeliranja)?
Konceptualan model je fokusiran na semantiku i odnose (uglavnom ne zavisi od vrste baza
podataka koja će biti upotrebljavana u implementaciji).
Logički model se spušta bliže izabranom implementacionom modelu (uzima u obzir model
podataka koji će se upotrebljavati u implementaciji).
Šta je očekivani rezultat logičkog modeliranja?
Izlaz je detaljan logički model – logička shema svih trajnih objekata (relacija), specifikacija svih
uslova i ograničenja, poznati su sci ključevi i odgovarajući surogat-atributi, kao i način
implementacije svih odnosa.
Zašto nije dobro preskočiti logički model i praviti fizički model na
osnovu konceptualnog?
Takav pristup nosi rizik da se izgube neke od poželjnih karakteristika baze podataka – kompletnost,
integritet, fleksibilnost, efikasnost, upotrebljivost.
Kako teče postupak pravljenja logičkog modela?
Logički model se pravi iterativno. Prva iteracija se pravi na osnovu konceptualnog modela. Svaka
naredna se pravi menjanjem prethodne (flexing)
Na osnovu kojih kriterijuma se pristupa menjanju logičkog
modela?
Kriterijumi za menjanje su željene karakteristike:
* Da li model ispunjava funkcionalne zahteve?
* Da li model ispunjava nefunkcionalne zahteve?
* Da li je model kompletan?
* Da li model garantuje integritet podataka?
* Da li model pruža potrebnu fleksibilnost?
* Da li model omogućava efikasan rad?
* Da li je model upotrebljiv?
Kako se konceptualni model „prevodi“ u logički?
Prvi korak pri pravljenju logičkog modela je prevođenje konceptualnog modela u logički model.
Ako se oba modela izražavaju na ER-u ili UML-u, onda je prevođenje često transformisanje ili
dopunjavanje i nadograđivanje.
Logički model predstavljamo jezikom relacionog modela – entiteti se predstavljaju kao relacije;
složeni odnosi se predstavljaju kao relacije; jednostavni odnosi se predstavljaju stranim ključevima.
Postupak prevođenja počinje prevođenjem entiteta u relacije (usput mogu da se prevedu i neki
odnosi, 1-) - prepoznaje se primarni ključ i prevode se svi neključni atributi.
Zatim se nastavlja prevođenjem odnosa (najpre se prevode odnosi koji proizvode relacije, pa
preostali odnosi, i na kraju se doteruje prevod odnosa) – mora da se uzme u obzir priroda relacionog
modela. Različite vrste odnosa – binarni 1-, binarni -, složeni odnosi, generalizacija
Kako se u logičkom (relacionom) modelu modeliraju odnosi 0..1-
0..N, 1-0..N, 0..1-1, 0..1-0..1?
0..1 – 0..N. Uobičajeno za odnose: roditelj – potomak, celina – deo, ako celina može da bude bez
delova, ako deo može da bude bez celine. Čest slučaj kod agregacije. Relacija koja je deo – dodaje
se strani ključ u odnosu na celinu. Strani ključ može da bude nedefinisan.
1 – 0..N. Uobičajeno za odnose: roditelj – potomak, celina – deo, ako celina može da bude bez
delova, ako deo ne može da bude bez celine. Čest slučaj kod kompozicije. Relacija koja je deo -
dodaje se strani ključ u odnosu na celinu. Strani ključ ne sme da bude nedefinisan.
0..1 – 1. Uobičajeno za odnose: nadodređeni – podređeni, celina – opcioni deo. Relacija koja je
opcioni deo – dodaje se strani ključ u odnosu na celinu. Strani ključ ne sme da bude nedefinisan i
vrednost ključa mora da bude jedinstvena.
0..1 – 0..1. Uobičajeno za dvosmerne opcione odnose. Jednoj od relacija se dodaje strani ključ u
odnosu na drugu. Strani ključ može da bude nedefinisan i vrednost ključa mora da bude jedinstvena.
Alternativa, pravi se nova vezna relacija koja sadrži samo strane ključeve u odnosu na obe vezane
relacije; ključevi ne smeju da budu nedefinisani, svi atributi čine primarni ključ i vrednost svakog
od stranih ključeva mora da bude jedinstvena.
Kako se u logičkom (relacionom) modelu modeliraju odnosi 0..1-
1..N, 1-1..N, 1-1?
0..1 – 1..N. Uobičajeno za odnose agregacije sa obaveznim delovima. Relacija koja je deo – dodaje
se strani ključ u odnosu na celinu. Strani ključ može da bude nedefinisan. Dodaje se uslov baze
podataka – za svaki entitet A mora da postoji bar jedan odgovarajući entitet B. Alternativa, među
svim delovima jedne celine se prepoznaje jedan izabran; u relaciju A se dodaje strani ključ u odnosu
na B i time se celina povezuje sa izabranim delom; olakšano je proveravanje postojanja „bar
jednog“, ali je uvedena redundantnost.
1 – 1..N. Uobičajeno za odnose kompozicije sa obaveznim delovima. Relacija koja je deo – dodaje
se strani ključ u odnosu na celinu. Strani ključ ne sme da bude nedefinisan. Dodaje se uslov baze
podataka – za svaki entitet A mora da postoji bar jedan odgovarajući entitet B.
1-1. Uobičajeno za odnose obostranog ekskluzivnog pridruživanja. Jednoj od relacija se dodaje
strani ključ u odnosu na drugu. Strani ključ ne sme da bude nedefinisan. Vrednost ključa mora da
bude jedinstvena. Dodaje se uslov baze podataka – za svaki entitet B mora da postoji bar jedan
odgovarajući entitet A. Alternativa, u svakoj od relacija se dodaje strani ključ u odnosu na drugu;
atributi ključeva ne smeju da budu nedefinisani i dodaje se uslov kojim se proverava uzajamnost
veze.
Kako se u logičkom (relacionom) modelu modeliraju odnosi 0..N-
0..N, 0..N-1..N, 1..N-1..N?
0..N – 0..N. Uobičajeno za odnose asocijacije bez posebnih ograničenja. Pravi se nova vezna
relacija – sadrži samo strane ključeve u odnosu na obe vezane relacije; ključevi ne smeju da budu
nedefinisani; svi atributi čine primarni ključ.
0..N – 1..N. Uobičajeno za odnose: asocijacije slabih i jakih entiteta, agregacije kod kojih deo može
da čini više celina, ali ne može da postoji samostalno. Pravi se nova vezna relacija – sadrži samo
strane ključeve u odnosu na obe vezane relacije; ključevi ne smeju da budu nedefinisani; svi atributi
čine primarni ključ; dodaje se uslov baze podataka – za svaki entitet A mora da postoji bar jedan
odgovarajući entitet B. Alternativa, u A se dodaje strani ključ prema izabranom B.
1..N – 1..N. Uobičajeno za odnose agregacije kod kojih deo može da čini više celina, ali ne može da
postoji samostalno; celina ne može da postoji bez delova. Pravi se nova vezna relacija – sadrži samo
strane ključeve u odnosu na obe vezane relacije; ključevi ne smeju da budu nedefinisani; svi atributi
čine primarni ključ; dodaje se uslov baze podataka – za svaki entitet A mora da postoji bar jedan
odgovarajući entitet B, i obrnuto. Alternativa, i u A i u B se dodaju strani ključevi prema izabranim
delovima/celinama.
Kako se u logičkom (relacionom) modelu modeliraju binarni
ciklični odnosi?
1-1. Bilo da su opcioni ili ne, predstavljaju se dodatnim atributima stranog ključa. Ako je opcioni,
sme da bude NULL.
1-*. Kod ovog odnosa strani ključ se uvodi na strani N.
-. Predstavlja se novom relacijom, kao i obični binarni odnosi -
Kako se u logičkom (relacionom) modelu modeliraju odnosi sa
više učesnika?
1-1-1. Nova relacija sa stranim ključevima. Zavisnosti se uređuju dopuštanjem NULL i
jedinstvenim ključevima.
1-1-. Nova relacija sa stranim ključevima. Zavisnosti se uređuju dopuštanjem NULL i
jedinstvenim ključevima.
1--. Nova relacija sa stranim ključevima. Zavisnosti se uređuju izborom primarnog ključa.
--. Nova relacija sa stranim ključevima.
Na koje se sve načine u logičkom (relacionom) modelu može
predstaviti hijerarhijski odnos (generalizacija, specijalizacija…)?
Generalizacija – cela hijerarhija u jednu relaciju; svaki entitet u posebnu relaciju; svaki entitet-list u
posebnu relaciju, ali tako da uključi sve nasleđene atribute.
Agregacija – svodi se na obične odnose, obično 1-*.
Odnosi sa više od 3 učesnika – slično kao odnosi sa 3 učesnika; mora više da se vodi računa o
funkcionalnim zavisnostima.
Slabi entiteti – obično ne zahteva dodatno postupanje; prevođenje odnosa sa jakim entitetima rešava
problem.