178
Osnove Podatkovnih Baz --skripta-- 2010/2011 Pripravila: Iztok Savnik Matjaž Kljun Kazalo Uvod 3 Realcijsko Podatkovni Model 9 Relacijski podatkovni model 9 Vaje 14 Relacijska algebra 16 Vaje 22 SQL: Poizvedbe, integritetne omejitve, sprožilci 24 Vaje 33 Relacijski račun 38 Vaje 41 QBE 43 Vaje 49 Arhitektura Relacijskih Sistemov 53 Diski in datoteke 53 Indeksi 62 Datoteke in indeksi 72 Vaje 80 Pregled evaluacije poizvedb 82 Evaluacija relacijskih operacij 89 Vaje 98 Optimizacija poizvedb 100 Vaje 117 Pregled upravljanja transakcij 119 Vaje 124 Kontrola vzporednosti 126 Vaje 139 Obnavljanje podatkovnih baz 141 Vaje 148 Aplikacije Podatkovnih Baz 151 SQL v aplikacijski kodi 151 Vaje 161 Semantične tehnologije in spletne aplikacije 163

Osnove Podatkovnih Baz --skripta-- 2010/2011

  • Upload
    ngodat

  • View
    237

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Osnove Podatkovnih Baz --skripta-- 2010/2011

Osnove Podatkovnih Baz

--skripta--

2010/2011

Pripravila:Iztok SavnikMatjaž Kljun

KazaloUvod 3Realcijsko Podatkovni Model 9 Relacijski podatkovni model 9 Vaje 14 Relacijska algebra 16 Vaje 22 SQL: Poizvedbe, integritetne omejitve, sprožilci 24 Vaje 33 Relacijski račun 38 Vaje 41 QBE 43 Vaje 49Arhitektura Relacijskih Sistemov 53 Diski in datoteke 53 Indeksi 62 Datoteke in indeksi 72 Vaje 80 Pregled evaluacije poizvedb 82 Evaluacija relacijskih operacij 89 Vaje 98 Optimizacija poizvedb 100 Vaje 117 Pregled upravljanja transakcij 119 Vaje 124 Kontrola vzporednosti 126 Vaje 139 Obnavljanje podatkovnih baz 141 Vaje 148Aplikacije Podatkovnih Baz 151 SQL v aplikacijski kodi 151 Vaje 161 Semantične tehnologije in spletne aplikacije 163

Page 2: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 3: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

!*+!,-%"!./01!,+23%#/4

25678%*9:;<8$%=/>+20

!"#$%&'(')((

!?;7:;<%@7A968<

B !"#$%&%'#()*++++++25678%*9:;<8B ,-.-'#/'C%%%%%%%%%%%>96D9E%1FDG;B 0%)#C%%%%%%%%%%%%%%%%%/:A<67H;I%<;%F9J7H967H<D?8IB 12&2".(/#%3"#C%%"7%@HIA9:9;DGB 456.'C%%%%%%%%%%%%%%%%%@<?;<%K%A7L9MI%;9F7NI%K%G?6;<

!"#$%&'(')((

O<6IH96GH9B 7/).8%

P Q9NRG%Q9L98H<?R;9;$%S7R9;;I?%TIRH8I$%9%'%:%-#+;%/%8#<#/'+=>-'#<-?+;@1"%ABC.((?+D"$+#$E?+FGGHE

B !"2-2)/.@#*P !"2-2)/.@#+-2+6".6"%&()#/#+/%+2-/2&.+6"2-2)/.@+./+

2-'%(#8%+<%'#".%(%+IJ2A+K22LM*++NEN%<%L".-O/%/?+O''6*PP6%8#[email protected]@E#$3PQ$::22LP

B 92$%'/%+(.'#"%'3"%P /JH9R9L%*<FJIH?UR965$%3I;HV%=W%17H6R$%*W%%

*GA9H?R9;$%9%'%:%-#+=>-'#<+J2/@#6'-?+XHA%%IAW$%>UTH9YZ3<FF$%([[\W

!"#$%&'(')((

!UI;DI:9;DI

B 92<%R#+/%(28#+S+TGU+B !.-/.+.56.'+S+TGU

P 72(2L&.)%P !.-/.+.56.'P V+WGU+X

B Y-'/.+.56.'+S+FGUP !"#8(#$+-/2&.P !"#8(#$+$#(2&+2@#/#%

Page 4: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

19D%DI%*]"#^

B *<?6IL%59%]@H9:FD9;DI%?%"7A9687:;<L<%#959L<B ,IF<89$%@7:I59;9%5J<H89%@7A9687:WB >7AIF<H9%787FDI%:%HI9F;IL%?:I6GW

! %-;6<6I6I%_IWNW$%7?IJI$?6GAI;6<$@HIALI6<WWW`! %Q95LIHD9%_IWNW$%07;I%DI%:@<?9;%;9%"#`

B *]"#%DI%@H7NH9L?8<%?<?6IL%59%?RH9;DI:9;DI%@7A9687:%<;%G@H9:FD9;DI%?%@7A9687:;<L<%J959L<W

!"#$%&'(')((

.9676I8I%:?W%*]"#

B /@F<89U<DI%@HI;9a9D7%:IF<8I%87F<M<;I%@7A9687:%LIA%A<;9L<M;<L%?@7L<;7L%<;%A<?87L%_IWNW$%JGbbIH<;N$%A7?67@%;9%7?;7:<%@7A9687:;<R%?6H9;<$%X&ZJ<6%;9?F9:FD;DI$%<6AW`W

B "7?IJ;9%87A9%59%@7?9LI5;I%@7<5:IAJIWB 49aM<69%@7A9687:%@HIA%;I87;?<?6I;U7$%8<%DI%

F9R87%@7?FIA<U9%:IM<R%R8H96;<R%G@7H9J;<87:WB 49aM<69%@HIA%<5@9A7L%?<?6IL9WB ,9H;7?6%<;%87;6H7F9%A7?67@9W

!"#$%&'(')((

4989D%G@7H9JFD96<%*]"#^

B "7A9687:;9%;I7A:<?;7?6%<;%GM<;87:<6%A7?67@%A7%@7A9687:W

B 4L9;Da9;%M9?%H95:7D9%9@F<89U<DIWB "7A9687:;9%<;6INH<6I69%<;%:9H;7?6WB ];<b7HL;7%9AL<;<?6H<H9;DI%@7A9687:WB 38H96I;%A7?67@$%59aM<69%@HIA%?<?6IL?8<L<%

;9@989L<W

!"#$%&'(')((

4989D%a6GA<D%*]"#^^B "HIR7A%<5%H9MG;9;D9%;9%<;b7HL9U<DI

! c?@7A;D9%LID9dC%@HI<?87:9;DI%A9676IM;IN9%HI@75<67H<D9$%<;6IH;I6%JHI5%?IL9;6<M;IN9%?@FI69%_897?e`

! c5N7H;D9%LID9dC%<?89;DI%;9%7?;7:<%87;UI@6G9F;I%LHIEI$%5;9;?6:I;I%9@F<89U<DI$%WWW

B "7A9687:;I%5J<H8IC%;9H9aM9%H95;7F<87?6%<;%87F<M<;9W%%! .<N<69F;I%8;D<E;<UI$%<;6IH986<:;<%:<AI7$%TI;7LI%

@H7DI86$%WWW%%! WWW%%@76HIJ9%@7%*]"#%5IF7%;9H9aM9W

B *]"#%@78H<:9D7%:IM<;7%H9MG;9F;<a6:9! !*$%A<?8<$%DI5<8<$%6I7H<D9$%/2$%%LGF6<LIA<9$%F7N<89

!

Page 5: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

"7A9687:;<%L7AIF<

B "7A9687:;<%L7AIF%DI%5J<H89%87;UI@6G9F;<R%NH9A;<87:%59%7@<?%@7A9687:W

B *RIL9%DI%7@<?%87;8HI6;I%5J<H8I%@7A9687:%5%G@7H9J7%A9;IN9%@7A9687:;IN9%L7AIF9W

B QIF9U<D?8<%@7A9687:;<%L7AIF%DI%;9DJ7FD%@7N7?67%G@7H9JFD9;%L7AIF%A9;I?W! !?;7:;<%87;UI@6<C%HIF9U<D9$%8<%DI%:%7?;7:<%69JIF9%?%

?67F@U<%<;%%:H?6<U9L<W! ,?989%HIF9U<D9%<L9%?RIL7$%8<%7@<?GDI%?67F@UI%<;%

:H?6<UIW

!"#$%&'(')((

+<:7D<%9J?6H98U<DI

B ,IM%@7NFIA7:$%I;9%87;UI@6G9F;9%?RIL9%<;%b<5<M;9%?RIL9W! "7NFIA<%7@<?GDID7%8987%

G@7H9J;<8%:<A<%@7A968IW%%! 17;UI@6G9F;9%?RIL9%

AIb<;<H9%F7N<M;7%?6HG86GH7W%! =<5<M;9%?RIL9%7@<?GDI%

G@7H9JFDI;I%A9676I8I%<;%<;AI8?IW

" !"#$%&!'$!($)*+*,&+&!-!./0,&10!2234" !50(&67*!8$!8/,$%*+'&'09/0*-:$(.'$'0!-!2;3#

$%&%'()*+,-.)

/0(1-234)5()*+,-.)

6075-8*9 6075-8*: 6075-8*;

!"#$%&'(')((

"H<LIHC%"#%G;<:IH5I

B 17;UI@6G9F;9%?RIL9C%%%%%%%%%%%%%%%%%%! %Z'3$#/'._-.$*+-'"./8?+.<#*+-'"./8?+(28./*+-'"./8?+

++-'%"2-'*+./'#8#"?+62&6"#R)#*"#%([! +!"#$<#'.\6.$*+-'"./8?+6.<#*-'"./8?+'2RL#*./'#8#"[+! +06.-\-.$*-'"./8?+6.$*-'"./8?+2@#/%*-'"./8[

B =<5<M;9%?RIL9C! QIF9U<DI%?RH9;DI;I%:%;IGHIDI;<R%A9676I89RW%! 2;AI8?%DI%AIb<;<H9;%;9%@H:IL%?67F@UG%HIF9U<DI%f6GAI;6<W%

B 4;9;D9%?RIL9%_"7NFIA`C%! !"#$<#']4/^2\6.$*-'"./8?&6.-%/.*./'#8#"[

!"#$%&'(')((

"7A9687:;9%;I7A:<?;7?6%g

B /@F<89U<DI%?I%;I%G8:9HD9D7%?%6IL%8987%?7%@7A968<%?6HG86GH<H9;<%<;%?RH9;DI;<W

B _28.R/%+62$%'L2&/%+/#2$&.-/2-'C%%49aM<69%@HIA%?@HILILJ9L<%:%F7N<M;<%?6HG86GH<%@7A9687:W%

B `.5.R/%+62$%'L2&/%+/#2$&.-/2-'C%%%49aM<69%@HIA%?@HILILJ9L<%b<5<M;I%@7A9687:;I%?6G86GHI%@7A9687:W%

" !<+&!0(!+&'10='!/0%$%1+*#!/,$(+086*!./0,&1$!">5?!@

Page 6: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

17;6H7F9%?7M9?;IN9%A7?67@9B *7M9?;7%<5:9D9;DI%G@7H9J;<a8<R%@H7NH9L7:%DI%

J<?6:I;7%59%A7JHI%@IHb7HL9;?I%*]"#W%! .7?67@%A7%A<?89%DI%@7N7?6%<;%HIF96<:;7%@7M9?I;$%5967%DI%

@7LILJ;7%A9%DI%@H7UI?7H%:I?%M9?%59@7?FI;%;9%:IM<R%?7M9?;<R%@H7NH9L<R%G@7H9J;<87:W%

B "HI8H<:9D7MI%?I%98U<DI%H95F<M;<R%G@7H9J;<a8<R%@H7NH9L7:%F9R87%:7A<D7%:%;I87;?<?6I;6;7?6%@7A9687:W%+9%@H<LIH$%MI8%?I%DI%:@<?9F$%;<%@9%?I%aI%<5H9MG;9F7%?69;DI%H9MG;9W%

B *]"#%59N769:FD9$%A9%A7%@7A7J;<R%@H7JFIL7:%;I%J7%@H<aF7C%G@7H9J;<8<%F9R87%L<?F<D7$%A9%AIF9D7%;9%I;7ZG@7H9J;<a8IL%?<?6ILGW%

!"#$%&'(')((

0H9;?98U<D9C%"H<LIH%@H7NH9L9%*]"#

B !?;7:;<%87;UI@6%DI%'"%/-%L@.)%$%8<%DI%%'2<%"/%%?I8:I;U9%98U<D%*]"#%_JH9;DI)@<?9;DI`W

B ,?989%6H9;?98U<D9$%8<%?I%<5:Ha<%UIF76;9%L7H9%@G?6<6<%"#%:%87;?<?6I;6;IL%?69;DG%MI%DI%"#%87;?<?6I;6;9%87%?I%DI%6H9;?98U<D9%59MIF9%<5:9D96<W%! ]@7H9J;<8<%F9R87%?@IU<b<U<H9D7%I;7?69:;I%./'#8".'#'/#+2<#).'&#+;9A%

@7A968<%<;%@7A9687:;9%J959%J7%59N767:<F9%:IFD9:;7?6%7LID<6I:W%! *]"#%59HI?%;I%H95GLI%@7LI;9%@7A9687:%_;@HW$%;I%H95GLI%8987%?I%

H9MG;9D7%7JHI?6<%;9%J9;M;IL%H9MG;G`W! 07HID$%59N769:FD9;DI$%A9%6H9;?98U<D9%7RH9;D9%87;?<?6I;6;7?6%"#%DI%

7AN7:7H;7?6%G@7H9J;<89%e

!"#$%&'(')((

Q95:HaM9;DI%?7M9?;<R%6H9;?98U<DB *]"#%59N769:FD9$%A9%DI%<5:9D9;DI%L;7E<UI%6H9;?W%%h0

($%WWW%$%0

;i%

I8:<:9FI;6;7%;I8IL%5%62"#$/#<%<5:9D9;DG%0(j%WWW%0

;jW

! "HIA%@<?9;DIL)JH9;DIL%6H9;?98U<D9C%(`%59R6I:9%598FI@9;DI%:?IR%7JDI867:$%8<%?I%D<R%A76<89%<;%&`%@7M989$%A9%*]"#%7L7N7M<%598FI@9;DI%%6IR%7JDI867:W%,?<%598FI;DI;<%7JDI86<%?I%?@H7?6<D7%;9%87;UG%<5:D9;D9%6H9;?98U<DIW%%_*6H<86I;%&Zb95;<%@H76787F%598FI@9;D9W`

# 49@7HIA;7%<5:9D9;DIC! 2AID9C%kI%98U<D9%0

<%_@<?9;DI%l`%:@F<:9%;9%0

D%_;@HW%JIHI%l`$%J7%I;9%<5LIA%

6H9;?98U<D%@H:9%_;@HW%0<`%A7J<F9%<;%AHGN9%_0

D`%J7%L7H9F9%@7M9896<%A78FIH%

@H:9%;I%87;M9m%?%6IL%DI%AIb<;<H9;9%GHIDI;7?6%6H9;?98U<DW

# *LH6;<%7JDILC! 19D%MI%0

D%EI%<L9%598FI;DI;%n%9;A%0

<%89?;IDI%59R6I:9%598FI@9;DI%n^%

_*LH6;<%7JDIL%Z%AI9AF7U8e`%0<%9F<%0

D%?I%G?69:<%<;%@76IL%@7;7:;7%?69H69e%

!"#$%&'(')((

49N769:FD9;DI%967L<M;7?6<

B *]"#%59N769:FD9%%'2<.R/2-'+_:?IZ9F<Z;<M`%MI6GA<%?I%5N7A<%?<?6IL?89%;9@989%9F<%b<5<MI;%<5@9A%?<?6IL9%?HIA<%6H9;?98U<DIW

B 2AID9C%3H9;DI;DI%A;I:;<89%_(28[%_5N7A7:<;9`%:?IR%98U<D$%8<%D<R%<5:9D9%*]"#%LIA6IL$%87%<5:9D9%L;7E<U7%6H9;?98U<DC! "HIA%:?987%%?@HILILJ7%:%"#%?I%:@<aI%G?6HI5I;%F7N%59@<?%:%F7N%

A9676I87$%@H<%6IL%@9%59N767:<L7$%A9%?I%DI%59@<?%HI?%b<5<M;7%59@<?9F%;9%A<?8W%%_a,_+6"2'2L2(m%!*%@7A@7H9%MI?67%;<%59A7?6<%A7JH9`

! "7%?<?6IL?8<%;9@98<%?I%:@F<:%AIF;7%<5:HaI;<R%6H9;?98U<D%<5;<M<%6987$%A9%?I%<5;<M<D7%:?I%<5:HaI;I%98U<DI%6H9;?98U<DW%_o/O%@H76787F%59N769:FD9$%A9%;<%59@<?9%:%A;I:;<8G$%MI%;<%?@HILILJ9%EI%<5:HaI;9%:%"#e`

Page 7: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

.;I:;<8%_O7N`B +9?FIA;DI%98U<DI%?I%59@<?GDID7%:%A;I:;<8C

! b.+626"%&.+2:)#L'C%%*69H9%<;%;7:9%:HIA;7?6%7JDI869W

< 49@<?%A;I:;<89%L7H9%J<6<%?RH9;DI;%;9%A<?8G%@HIA%@7A9687:;7%?6H9;D7$%8<%:?IJGDI%@7A968I%7JDI869e

! b.+5%L()3R.P6"#L./#C%%49@<?%A;I:;<89%?RH9;<%98U<D7W

B 49@<?<%A;I:;<89%?7%@7:I59;<%LIA%?9J7%5%G@7H9J7%l9U6%2.m%I;7?69:;7%DI%:5@7?69:<6<%?69;DI%@HIA%l9U6%_;@HW$%A9%?I%HIa<%?LH6;IN9%7JDIL9`W

B .;I:;<8%?I%@7N7?67%@7A:7D<%59H9A<%:9H;7?6<%<;%?I%@H9:<F7L9%9HR<:<H9%;9%@IH?<?6I;6;IL%LIA<DGW

B ,?I%986<:;7?6<%F7N<H9;D9%_986<:;7?6<%59%87;6H7F7%?7M9?;IN9%A7?67@9$%598FI@9;DI)7A8FI@9;DI$%?LH6;<%7JDIL<$WWW`%<5:9D9%*]"#%6H9;?@9HI;6;7W%

!"#$%&'(')((

#95I%7?HIMGDID7%?FIAIMI%FDGA<%WWWB "H7A9D9FU<%*]"#WB Q95:<D9FU<W

P +9MH67:9FU<%<;b7HL9U<D?8<R%?<?6IL7:WP "H7NH9LIHD<WP oIJL9?6IHW

B 17;M;<%G@7H9J;<8<WP ]@7H9J;<8<%<;bW%*<?6IL7:$%:;9a9FU<WWW

B /AL<;?6H967H%*]"#%_.#/`! +9MH67:9;DI%F7N<MI)b<5<M;I%?RILIW! ,9H;7?6%<;%9G67H<59U<D9W! .7?67@;7?6%@7A9687:$%:5@7?69:<6I:%?<?6IL9%@7%?<?6IL?8<%

;9@98<W! ]LIHD9;DI%*]"#%@7%@76HIJ<%G@7H9J;<87:W

!"#$%&'(')((

*6HG86GH9%*]"#

B 0<@<M;<%*]"#%<L9%;<:7D?87%9HR<6I86GH7W

B *F<89%;I%@H<895GDI%87L@7;I;6%59%87;6H7F7%R8H96;IN9%A7?67@9%<;%HIU7:IHVW%

B 07%DI%?9L7%I;9%<5LIA%J7FD%@7N7?6<R%9HR<6I86GHm%:?98%?<?6IL%<L9%?:7DI%:9H<9U<DIW

!"#$%$&'#()*"($&+,-.

/&+'0'1,2*"($&+,-.

3,1'2$045,*(",)'2$0,

6'#(#,5,*$7*%,#(-,*-(4#("'

8%,47$*"(%7$17$5

6$45(+7$*")(4#()

9:

!"#$%"&'$()%$&

$'$*$+),"&

-$.,($/$&0-(),.1*)&

2$3,$4)&".&

(151#).%1

!"#$%&'(')((

"7:5I6I8

B *]"#%?I%G@7H9JFD9%59%H787:9;DI%_?@HIL<;D9;DI$%@7<5:IA7:9;DI`%:IF<8<R%5J<H8%@7A9687:W

B "HIA;7?6<%?7%7RH9;<6I:%87;?<?6I;6;IN9%?69;D9%"#%@7%?<?6IL?8<L%;9@989L$%R8H96I;%A7?67@%A7%*]"#$%R<6IH%H95:7D%9@F<89U<D$%@7A9687:;9%<;6INH<6I69%<;%59aM<69W

B +<:7D<%9J?6H98U<DI%;GA<D7%@7A96W%;I7A:<?;7?6WB *]"#%6<@<M;7%<L9%;<:7D?87%9HR<6I86GH7W%B /AL<;?6H967H%"#%<L9%7AN7:7H;7%?FGEJ7%<;%DI%A7JH7%@F9M9;%e%

$

B *]"#%DI%I;7%7A%a<Ha<R$%J7FD%59;<L<:<R%@7AH7M<D%p*

Page 8: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 9: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+,-./012/%345-62478/%945+,

:;642%<-78/2$%=>?@:A

!"#$%&'(')((

B-2-0%C6D5/0%E+,-./012+F-%945+,-G%

H @-0C/EC+%D34E-I,0-8%945+,JK "E45-0-,./L%:#?$%:8M4E9/N$%?/.E414M6$%!E-.,+$%

<OI-1+$%/65J

H PQ+F-.O%1O16+91R%7%16-E/S%945+,/SJK @3EJ$%:#?%:?<

H !I0+2684T4E/+86/E-8%945+,%K !I0+.6<64E+$%U+E1-86$%!8641

K B5EDV+7-80+L%!"#$%&'!()$*+,-#.%-/0!1$*

H :8M4E9/N%W8/7+E1-,%<+E7+E$%W8/<XQ$%!&$%!E-.,+$%Y#&

!"#$%&'(')((

*+,-./012-%345-62478-%I-;-

H 2$*+,-#.%+/345/0'!6-,+/)$*+,-#7

H 2$*+,-#+5%57-%5+,-LK 8'.&+',+%L%&+"$*+$%2/%/9-%7E16/.+%/8%164,3.+J%%

Z7E16/.%[%%+)1-'+*'!.&$%Z164,3.+7%[%.&!9'#+7K :;$0+/L/54,4\-%/9+%E+,-./0+%6+E%/9+8-%/8%6/3+%71+S%

164,3.+7J%H <6D5+86/].-1L%16E/8F$%/9+L%16E/8F$%*!<-'L%16E/8F$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%16-E416L%/86+F+E$%34L%E+-,^J

H *+,-./04%1/%,-S24%3E+516-7,0-94%246%984V/.4%8T6+E/.%-,/%7E16/.J%

!"#$%&'(')((

"E/9+E%E+,-./0+%=&>1$'&

!"# "$% &'(") !*+,- .'

/0111 2'3+4 )'3+45.%6 78 9-:

/0188 ;,+)<= 4,+)<=5$+ 78 1-8

/01/> ;,+)<= 4,+)<=56" 7? ?-0

!@;+,#")+&)'!*@A@0B@!*'.)<+@A@/B@3!%@3,!*"=%@@@@@@@,+C&"D)%

!@E&"@$',+<'@F"*"@3!%@3,!*"=%@3@*+F%&"@,+C&"D)%G

Page 10: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+,-./012/%34536-7+5-,8/%0+9/2/

: ;-05+<0-%=4<%6+,-./012+>-%=4?+,-@%

34?3/6-%+841A-5+8%34536-7+5-,8/%0+9/2%9%5+,/24%/96-984%

=4<04B

: C36-7-80-%1+%,-D24%3/7+04%/8AE/A/584$%FG"#%0+%

4?>45468-%9-%E</8245/A4%+5-,E-./04B

H *-9,4>@%8-A-8<8-%1+=-8A/2-%6+,-./012/D%34/95+?IB%

H !3A/=/9-A46%4I/<-084%A+=+,0/A4%36+E6+?/%34/95+?I4%/8%

9->4A-5,0-$%?-%1+%4?>4546%8+%136+=8/B%

!"#$%&'(')((

"4536-7+5-,8/%0+9/2%FJK

: *-95/A%8-%L#M%N1O1A+=%*P%,+A-%(QR'

: "4A6+I-%34%1A-8?-6?E$%2+6%>-%E346-I,0-%5+,/24%

7A+5/,4%364/95-0-,.+5B%

: FA-8?-6?/@%

H FJKSTU

H FJKSTQ%N=-0D8+%136+=+=I+P

H FJKSQ&%N5+<0+%136+=+=I+P

H FJKSQQ%N5+<0+%136+=+=I+P

H FJKS'R%

!"#$%&'(')((

"4536-7+5-,8/%0+9/2%FJK

: C36-7-80+!"#$%&'%"()*"&+,-*.+*/"0%")$")+12%"34"5*+6

!"#"$%&&'()*+&&!,-./0,1&!23")"&&!45,6785,9:;

<&=>76?60@/A&!"#$%#&#'()*&#)&+",#)&$-./()-"04

!"#"$%&&!41B/C&!4D8E10()*+&!,-./0,1&!

51. 1B/ D8E10 5,67 >8

FGHHHI8J6K 08J6KL>/M :; G4N

FGH;; O760@P K760@PLB6 :; G4Q

!"#$%&'(')((

%"4536-7+5-80+%8-?%5+</=/%6+,-./0-=/

: V-0%/96-<E8-%

%%%%%8-1,+?80+%

%%%%%536-7-80+W

!"#"$%&&!41B/C&=4>1.()*+&&&&!,-./0,1&!C&=>15&=23")"&&!451.9=451.&RIS&=48P/069T:UV

!"#$% &"'#(

)*+,-. /%0$%1*#-+

2#( '#( 0.%,+

34546 7+8% 3

34546 9+1%$+1#:+ ;

34<3= /%0$%1*#-+ 6=

34<<< >?0(0@#,+ ;

)/D6P1@1&!,-./0,1&10&=>15A

S8W1B8A

51. 06B/ D8E10 !,67 >8

FGHHH I8J6K 08J6KL>/M :; X4Q

FGH;; O760@P K760@PLB6 :; H4;

FGHFU O760@P K760@PLM1 :Y Y4G

Page 11: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+,-+./0,%+,1.2-0%3%456

7 *+,-+./0,%+,1.2-0,%!"#$%&"'8

%%%%9-:%;,%;:,2-<-2-+.%=.%3;.>?%

%%%%:?10,8%"+-%3:-;@%:?A.B>?3

%%%%3%C.=?$%4"D#%=.EB,3.%

%%%%A,<-/-+./%B-:%:?A.B>.8

7 9.C,1.%()'*%3;,C@0,

%%%%:?A.B>,%?%:+,AF,B-E$%>-%

%%%%;?%0-E%3:-;.1-%GB@A,/B-8

!"#$%#&%$'(#&)*+,-.*/

01/,2&!3$"04567&&/8-2&!3$"04567&&9:;/.2&!3$"0<567&1*=>2&?@%#A#"7&B:2&"#$(6&&

!"#$%#&%$'(#&CB/1

01/,2&!3$"04567&&B/,2&!3$"04567&&:D-.=2&!3$"0466&&

!"#$%&'(')((

#+-;./0,%-/%;:+,F-/0./0,%+,1.2-0

7 HI?+/0-%@>.=%-=C+-G,%+,1.2-0?%4B@A,/B-%JJ%;E,F?%-/%=.:-;,8%%

E"FG&%$'(#&&)*+,-.*/&

! )H-8:&I*+,-.*/&1B>-8-./8:&*=J:7&,=&,:,=8:&.:K&=*>/L+*&!"#$&1&J=*->/8&:B/I-8:&J>=M&1*=.:K=.M=&I*+,-.*=N

$(%#"&%$'(#&&)*+,-.*/

$EE&!F(OP@&J>=M2&K=>DH=>04Q6

!"#$%&'(')((

K?A.0./0,%-/%C+-;./0,%=.:-;?3

7 L;B.310./0,%,/,I.%=.:-;.M

?@)#"%&?@%F&)*+,-.*/01/,7&/8-7&9:;/.7&1*=>7&B:6C$(O#)&&0QRSTT7&U@:K=JV7&U.:K=JWB-XV7&<T7&RN46

! '>/I-8:&K1-&Y=B/1-7&J/&Y=,:IZ=M:&,:9:Z-.-8&B:;:M+7&.B>N7&/8-[\@:K=J]2

E#(#%#&&^"FP&)*+,-.*/&)_3#"#&)N/8-&[&U@:K=JV

" %&'()*%+'%,#"-#).*%/!#0',%0%,*1$'%-0"#0)'%2'1$'3%,*1%!#+)*$*4!"#$%&'(')((

N/B,I+-B,B/,%?F,0-B3,%%ONPQ

7 NPM%:?I?0$%>-%F?+.%C-B-%-=:?1/0,/%=.%3;.>?%

%%%%%/JB,+-2?%+,1.2-0,8%%R NP%;?%A?1?S,/,%:+-%A,<-/-2-0-%;E,F,8R NP%;,%:+,3,+0.0?%?C%;:+,F-/0./0@%+,1.2-08%

7 6,I.1/.%-/;B./2.%+,1.2-0,%0,%B.>G/.$%>-%=.A?3?10@0,%3;,%;:,2-<-2-+./,%NP8R 4"D#%/,%C-%;F,1%A?:@GS.B-%/,1,I.1/-E%-/;B./28

7 T,%4"D#%:+,3,+0.%NP$%:?B,F%;?%;E+./0,/-%:?A.B>-%C1-U0,%:?F,/@%3%+,.1/,F%;3,B@8%R N=?I-C./0,%/.:.>.F%:+-%3/?;@V

Page 12: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

"*+,-*.+%/0123

4 5.67+8-%-9*+:296;%1<%/0123%*<0-8+1<%3<=(>%?<%6:@9-1-9-%A;-%<.-/-%B-C+@-%B%+@96%;*<A.6@916%/0123->%

&>%D6%.<%;<01-%B-%.6:<.6%C6A,.67+86%/0123->%E F<%6:@9-1-%C69<,%9<,2%C*-;+,6%@2C<*/0123G%E F<%6:@9-1-%;<3%/69%<.%/0123%B-%*<0-8+16%C69<,%+B:<*<,6%

<.<H-$%/+%H-%!"#$%&#"'%C*+,-*.+%/0123>%

4 ?C*>%%(!)*&#*/0123%B-%*<0-8+16*+,%)#$,!-*I!"#GJ%%%5.67+8-%%K(!).*/'L%1<%@2C<*/0123>

!"#$%&'(')((

"*+,-*.+%+.%/-.A+A-9.+%/0123%;%MNO

4 !:+3-1.6%1<%.-%;6016%;<3%/-.A+A-9.+P%/0123<;%IA<Q+.+*-,6%/69%R?SNRTJ%+B,<A%/-9<*+P%+B:<*<,6%<.%C*+,-*.+%/0123>%

!"#$%#&%$'(#&)*+,&&&-,+.&!/$"-012&&&&&*+.&&!/$"-0123&&&&&45678&!/$"-023&&&&&9":;$"<&=#<&&-,+.3*+.2&2

! "*-;+0.6=%UV-%A-.<H-%W92A<.9-%+.%C*<A,<9%+,-,6%<.6%@-,6%68<.6>X

! ?<C*-;+0.6=%UY92A<.9+%@<%0-P/6%;C+W<16%.-%@-,6%<.%C*<A,<9%+.%A6:+16%<.6%@-,6%68<.6%B-%9-%C*<A,<9Z%.<%@,<9-%6:@9-1-9+%A;-%W92A<.9-$%/+%+,-9-%+@96%68<.6>X

! F<%2C6*-:+,6%S[%.<C*-;+0.6%0-P/6%6.<,6H63+,6%;.6@%A<1-.@/+P%C6A-9/6;%+B%*<-0.<H-%@;<9-\

!"#$%#&%$'(#&)*+,&&&-,+.&!/$"-012&&&&&*+.&&!/$"-0123&&&&&45678&!/$"-023&&&&&9":;$"<&=#<&&-,+.23&&&&&>?:@>#&-*+.3&456782&2

!"#$%&'(')((

D21+%/0123+%+.%*<Q<*<.3.-%+.9<H*+9<9-

4 0%&*12&%3%=%5.67+8-%-9*+:296;%.</<%*<0-8+1<$%/+%*<Q<*<.8+*-%B-C+@<%A*2H<%*<0-8+1<>%SB:*-.-%,.67+8-%-9*+:296;%,6*-%2@9*<B-9+%C*+,-*.<,%/01232%A*2H<%*<0-8+1<>%?</<%;*@9<%U06H+3.+%/-B-0<8X>%

4 "*+,<*=%(!)%1<%921%/0123%IM92A<.9+J=E ]C+@I(!)=%@9*+.H$%/!)=%@9*+.H$%'4#$5=%@9*+.HJE F<%1<%+.9<H*+9<9.-%6,<1+9;%921+P%/0123<;%2C6W9<;-.-%;%"#%C69<,%

C*-;+,6$%A-%A6@<7<,6%*<Q<*<.3.6%+.9<H*+9<96Z%.+%U;+@<3+P%*<Q<*<.8X>%E ?-W9<1%+,<.-%C6A-9/6;.+P%,6A<06;%B%)%:*<B%*<Q<*<.3.<%+.9<H*+9<9<G%

4 O+./%^%_D5O\

!"#$%&'(')((

D21+%/0123+%;%MNO%

4 M-,6%W92A<.9+$%/+%@6%;%9-:<0+%+,%)#$,!%0-P/6%.-@96C-16%;%*<0-8+1+%6/!(>%

!"#$%#&%$'(#&)*+,&&&-,+.&!/$"-0123&&*+.&!/$"-0123&&45678&!/$"-023&&&&&9":;$"<&=#<&&-,+.3*+.23&&&&&AB"#:C?&=#<&-,+.2&"#A#"#?!#D&DEF.67E+&2

,+. +G6 H4I+7 DE8J *4

KLMMM ?4N8O 74N8OP5, QR ST0

KLMRR =J87U5 OJ87U5PG8 QR MTR

KLMK1 =J87U5 OJ87U5PV+ QW WTL

!"# $"# %&'#(

)*+++ ,'-( )

)*+++ .'/(0'/"1' 2

)*+)3 4(50(/&"6' 73

)*+++ 8%5#59":' 2

)*+,DEF.67E+

Page 13: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+,-.+/01+213%435343263%72.3,47.3.3

8 "-,0319-%:7%.+;307%<.=>32.7%72%?@7:A%%!"#%/%.+;307%?@7:%13%.=1%B01=6$%B7%4353432C74+%.+;30-%<.=>32.7D%

8 E+1%2+1%:3%F,->7$%63%@-:B=G+9-%>->+.7%F+@7:$%B7%/:3;=13%23-;:.-136%:7>%/%.+;30-%?@7:H%$%&'(")*&+,%-"!%.

8 E+1%2+1%:3%F,->7$%63%7F;47G39-%F+@7:%.+;303%<.=>32.7H%I "-;47G31-%:3%.=>7%@47@+>+1-67%F+@7:7%/%?@7:D%I J3%>-/-07%:3%;47:+213%F+@7:+%<.=>32.7%2+%B+.343,+%:3%4353432C74+1-%

F+@7:7%7F%.+;303%?@7:D%I ?43>2-:.7%F;47:+27K%!"#%:3%/%.+;307%?@7:%@-:.+/7%2+%@47/F3.-%

/43>2-:.D%I <LMN%"-:.+/7%/43>2-:.7%7F;47:+27K%!"#%/%?@7:%2+%2=00%/43>2-:.$%B7%

@-9327%(*,(%(/%+07%(*(%&*#*(/D

8 "->-;2-%/%@47934=$%>+%:3%B01=6%:7>%/%.+;307%<.=>32.7%:@439327D%

!"#$%&'(')((

O35343262+%72.3,47.3.+%/%<LM%

8 <LM)P&%72%%<LMN(PPP%@->@74+%/:3%Q%9-R2-:.7%@47%;47:+21=%72%@-@4+/01+21=D%I "47/F3.-%13%J!%STUV!J%%%

W#*0*)*12-#%)*+3*+,%&'(3*(XI TS<TSYZ%%WF;47G7%/:3%

F+@7:3$%B7%:3%:B07C=131-%2+%F;47:+27%F+@7:X

I <ZU%J[MM%)%<ZU%YZ\S[MU%%W@-:.+/7%.=1%B01=6%/%F+@7:7K$%B7%:3%4353432C74+1-%2+%7F;47:+27%F+@7:X

!"#$%#&%$'(#&)*+,&&&-,+.&!/$"-0123&&&&*+.&!/$"-0123&&&&45678&!/$"-023&&&&9":;$"<&=#<&&-,+.3*+.23&&&&>?"#:@A&=#<&-,+.2&&&&&&"#>#"#A!#B&BCD.67C+

?A&E#(#%#&!$B!$E#

?A&F9E$%#&B#%&E#>$F(%&2

!"#$%&'(')((

!>%B13%:-%@47G03%VT%-9317./3H

8 VT%:-%-:2-/+23%2+%@-932=%-B-01+$%B7%,+%9->3074+9-%F%430+C71:B79%9->30-9D

8 M+KB-%@43/3479-%@->+.B-/2-%;+F-%+07%13%/%:B0+>=%F%72.3,47.3.2797%-9317./+97%D%J3%9-439-%@+%JVE!MV%:B03@+.7$%>+%13%-9317.3/%@4+/702+%F%-@+F-/+2139%9->30+%W72:.+2C3XD%I VT%13%7F1+/+%-%/:3K%9-R27K%72:.+2C+K]I VF%@47934+%/7>79-$%>+%793%27%B01=6D%Y-0-67.3/$%>+%:7>%

13%B01=6%13%@43@=G632-%2+9D%

8 E01=6%72%.=1%B01=6%2+1;-01%@-,-:.3%VTA%;-01%%:@0-G23%VT%.=>7%-;:.+1+1-D%

!"#$%&'(')((

O30+C71:B7%9->30N%@43,03>

8 U+;=0+42+%@43>:.+/7.3/%@->+.B-/D8 Z2-:.+/2-%72%72.=7.7/2-$%.432=.2-%2+1;-01%@-,-:.-%

=@-4+;01+2%9->30D%8 V2.3,47.3.23%-9317./3%0+KB-%/23:39-%/%@->+.B-/2-%

;+F-%2+%-:2-/7%0+:.2-:.7%9->3074+23,+%@->+.B-/23,+%-B-01+D%<["#%@43/347%/301+/2-:.%-9317.3/D%%I "-939;27%-9317./7N%@479+427%72%.=1%B01=6DI ?3>2-%:-%>357274+23%>-9323%F+%+.47;=.3D%

8 J+%/-01-%13%9-6+2%72%>-B+1%2+4+/32%@-/@4+G3/+027%13F7BD%

8 "4+/70+%F+%@43/+1+213%ZO%/%430+C71:B7%9->30D%

Page 14: Osnove Podatkovnih Baz --skripta-- 2010/2011

1. Naloga

Narišite relacijski podatkovni model baze podatkov, ki obsega podatke o poslovanju naftnedružbe na ravni poslovanja njenih bencinskih servisov (črpalk). Pri tem poznamo naslednja dejstva:

• naftna družba ima v lasti številne bencinske servise, ki so razporejeni po celi državi, • vsak bencinski servis ponuja prevzem različnih vrst goriva (po domače tankanje) na več točilnih mestih, • vsako točilno mesto ponuja natanko eno vrsto goriva, • naftna družba spremlja zaloge posameznih vrst goriva za posamezne bencinske črpalke, • vsaka bencinska črpalka preko naročil, v katerih opredeli številko naročila, datum, vrsto goriva in zahtevano količino, posreduje svoje zahteve naftni družbi, • naftna družba naročila posameznih becinskih črpalk izpolni z dobavo goriva preko cistern, ki jih ima v lasti, • enkratna dobavo goriva na bencinski servis ni nujno, da v celoti izpolnjuje neko naročilo, • zaposleni v naftni družbi se (za naš primer) delijo le na šoferje cistern in zaposlene na bencinskih črpalkah, • vsaka bencinska črpalka ima tudi svojega vodjo.

Za izdelani model sestavite seznam SQL stavkov.

2. Naloga

Narišite relacijski podatkovni model baze podatkov, ki obsega podatke o letalskem potniškem prometu. Pri tem poznamo naslednja dejstva:

• v letalskem potniškem prometu sodeluje več letalskih družb s svojimi letali, • vsako letalo pripada neki letaski družbi,• piloti in drugo osebje (stevardese), ki sodelujejo pri posameznih poletih, so prav tako zaposleni pri letalski družbi,• vsak polet uporablja letalo neke letalske družbe, • potniki preko rezervacij lahko rezervirajo sedeže na posameznem poletu, • za vsako rezervacijo poznamo tudi številko sedeža in potniški razred na letalu, • za vsak polet spremljamo tako podatke o vzletu (letališče, datum in čas) ter podatke o pristanku (letališče, datum in čas),• vsako letališče ima natančno opredeljene omejitve glede pristankov posameznih vrst (oz. tipov) letal.

Za izdelani model sestavite seznam SQL stavkov.

3. Naloga

Narišite relacijski podatkovni model baze podatkov, ki obsega podatke o poslovanju isposojevalnic motornih vozil. Pri tem poznamo naslednja dejstva:

• podjetje ima več poslovalnic po različnih državah • vsaka poslovalnica ima več zaposlenih, od katerih vsak dela na točno eni poslovalnici• zaposleni so razdeljeni v več kategorij (npr. mehanik)• rezervacija vozila vsebuje podatke o vozilu, datumu prejema, datumu vrnitve, poslovalnicah prejema in vrnitve in osebi, ki je rezervirala vozilo • vsak posameznik lahko rezervira več vozil,• vozila so različnih tipov (eno vozilo je tipa tovornjak, eno avtomobil, …)• vsako vozilo po končani rezervaciji pripada poslovalnici, kamor se je vrnilo, kar pomeni, da vsako vozilo pripada le eni poslovalnici • o vozilu hranimo poleg modela, tipa in št. karoserije tudi št. prevoženih kilometrov, datum naslednjega tehničnega pregleda, datum naslednjega servisa in št. zavarovalne police

Za izdelani model sestavite seznam SQL stavkov.

4. Naloga

Opiši podatkovno okolje študentskega informacijskega sistema z relacijskim podatkovnim modelom. Predstavi naslednja dejstva:

• predmeti, ki jih študenti poslušajo so lahko bodisi obvezni ali izbirni.• študenti so lahko vpisani na dodiplomski ali podiplomski stopnji• za vsakega študenta vemo katero smer študija in kateri letnik posluša• pri vsakem predmetu vemo, v katerem letniku, na kateri stopnji in na kateri smeri se izvaja, v katerem kvartalu se izvaja, kolikšno je število ur predavanj in vaj, kateri izvajalci ga izvajajo (predmet ima več izvajalcev in vsak izvajalec je lahko pri več predmetih)• za vsakega zaposlenega vemo ali je pri predmetu predavatelj ali asistent• študenti imajo v svojem indeksu predmete in za vsakega zapis ocene

Page 15: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 16: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Relacijska algebra

Iztok Savnik, FAMNIT

OPB, 2009/10

Relacijski povpraševalni jeziki

• Povpravševalni jezik: Omogoča urejanje podatkov

in poizvedovanje po podatkih v podatkovni bazi.

• Relacijski model podpira enostavne PJ z veliko

izrazno močjo:

– Formalne osnove v logiki.

– Omogoča optimizacijo poizvedb.

• Povpraševalni jezik != Programski jezik !

– PJ ni “Računsko kompleten”.

– PJ ni namenjen za kompleksne izračune.

– PJ podpira enostaven in učinkovit dostop do velikih zbirk

podatkov.

OPB, 2009/10

Formalni relacijski povpraševalni

jeziki

• Dva formalna (matematična) jezika tvorita

osnovo za “realne” povpraševalne jezke (npr.

SQL) in njihovo implementacijo:

– Relacijska algebra: Bolj proceduralen jezik,

uporaben za predstavitev plana izvajanja

poizvedb.

– Relacijski račun: Omogoča uporabnikom opisati

kaj želijo in ne toliko kako to izračunati –

deklarativni jezik.

OPB, 2009/10

Osnove

• Poizvedba je izvršena nad instancami relacij in

rezultat poizvedbe je instanca neke relacije.

– Sheme vhodnih relacij so fiksne.

– Shema rezultata je tudi fiksna -- določi se s pravili

gradnikov povpraševalnega jezika.

• Notacija osnovana na poziciji oz. imenih

atributov:

– Notacija osnovana na poziciji primernejša za

programe; notacija osnovana na imenih je bolj

berljiva.

– Obe se uporabljata v SQL.

Page 17: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Primeri relacij

mid mime ocena star

22 novak 7 45.0

31 kranjc 8 55.5

58 petelin 10 35.0

mid mime ocena star

28 volk 9 35.0

31 kranjc 8 55.5

44 jauk 5 35.0

58 petelin 10 35.0

mid lid dan

22 101 10/10/96

58 103 11/12/96

!"

#"

#$

• Relaciji “Mornarji” in

“Rezervacije” za naše

primere.

• Uporabljali bomo notaciji

osnovani na poziciji in

imenih.

• Imena atributov v

vmesnih in končnem

rezutatu poizvedb se

podedujejo od vhodnih

relacij.OPB, 2009/10

Relacijska algebra• Osnovne operacije

– Selekcija ( ) Izbere podmnožico n-teric iz relacije.

– Projekcija ( ) Izbere določene stolpce relacije.

– Produkt ( ) Omogoča kombiniranje dveh relacij.

– Razlika ( ) N-terice iz prve in ne iz druge relacije.

– Unija ( ) N-terice iz obeh relacij.

• Dodatne operacije

– Presek, Stik, Deljenje, Preimenvanje.

– Niso nujne, so pa ZELO (!) koristne.

• Vsaka operacija vrne relacijo kot rezultat.

– Operacije se lahko sestavljajo – funkcionalni jezik.

!"

#$

%

OPB, 2009/10

Projekcija!"!#$ %&#'($

)%*+$ ,$

+-('.&$$ /$.(0+$ 1$2#3#*"'$ 45$

$

)2(,

Socenamime"

63(-$

7185$1181$

$

)2(Sstar"

• Izbere atribute, ki so v listi projekcije

iz relacije.

• Shema rezultata vsebuje samo

atribute, ki so v listi projekcije z

istimi imeni kot v vhodni relaciji.

• Projekcija mora odstraniti duplikate !

(Zakaj??)

– Opomba: relani sistemi tipično ne

odstranijo duplikate, če uporabnik

tega ne zahteva. (Zakaj ne?)

OPB, 2009/10

Selekcija

)2(8

Socena>!

!"9$!"!#$ %&#'($ 63(-$

:/$ )%*+$ ,$ 7185$1/$ 2#3#*"'$ 45$ 7185$

$

!"!#$ %&#'($

)%*+$ ,$

2#3#*"'$ 45$$

))2(8

(,

Socenaocenamime >!"

• Izbere vrstice, ki

zadoščajo pogoju selekcije.

• Ni duplikatov v rezulatu.

(Zakaj?)

• Shema rezulata je

identična shemi vhodnih

relacij.

• Relacija, ki je rezultat je

lahko vhodna relacija

drugi relacijski operaciji!

(Kompozicija operacij.)

Page 18: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Unija, Presek, Razlika

• Vse operacije so binarne in vhodni relaciji morata biti unija-kompatibilni:– Enako število atributov. – `Pripadajoča’ polja imajo

enake tipe.• Kaj je shema rezultata?

!"#$!"!%$ &'%()$ *+),$

--$ (&.)/$ 0$ 1234$56$ /,)(7'$ 8$ 2232$28$ 9%+%:"($ 64$ 5234$11$ 7);/$ 2$ 5234$-8$ .&:/$ <$ 5234$

$

!"#$!"!%$ &'%()$ *+),$

56$ /,)(7'$ 8$ 2232$28$ 9%+%:"($ 64$ 5234$

$

S S1 2!

S S1 2"

!"#$!"!%$ &'%()$ *+),$

--$ (&.)/$ 0$ 1234$$

S S1 2#OPB, 2009/10

Produkt• Kartezijski produkt: vsaka vrstica S1 se poveže z

vsako vrstico R1.

• Shema rezultata ima po en atribut za vsak atribut

relacij S1 in R1; imena od operandov.

– Konflikt: S1 in R1 h imata atribut mid.

)11),25,11(( RSmidmidC $%%&

=!"#>$ !"!%$ &'%()$ *+),$ =!"#>$ :"#$ #)?$

--$ (&.)/$ 0$ 1234$ --$ 646$ 64@ 64@ <A$

--$ (&.)/$ 0$ 1234$ 28$ 645$ 66@ 6-@ <A$

56$ /,)(7'$ 8$ 2232$ --$ 646$ 64@ 64@ <A$

56$ /,)(7'$ 8$ 2232$ 28$ 645$ 66@ 6-@ <A$

28$ 9%+%:"($ 64$ 5234$ --$ 646$ 64@ 64@ <A$

28$ 9%+%:"($ 64$ 5234$ 28$ 645$ 66@ 6-@ <A$$

!$B,%"!%(&.)(7%C$

OPB, 2009/10

Stik (Join)• Stik s pogojem:

• Shema rezultata: enako kot kartezijski

produkt.

• Manj n-teric kot produkt; da se izračunati

hitreje.

• Včasih ga imenujejo theta-stik.

R c S c R S"# = $' ( )=!"#>$ !"!%$ &'%()$ *+),$ =!"#>$ :"#$ #)($

--$ (&.)/$ 0$ 1234$ 28$ 645$ 66@ 6-@ <A$56$ /,)(7'$ 8$ 2232$ 28$ 645$ 66@ 6-@ <A$

$

11 .1.1 RS midRmidS <#"

OPB, 2009/10

Stiki

• Equi-Stik: Poseben primer stika, kjer je pogoj

stika uporablja samo pogoj enačaj.

• Shema rezultata: podobno kot kartezijski produkt;

samo ena vrednost enačenih atributov je v

rezultatu.

• Naravni Stik: Equi-Stik po vseh skupnih atributih.

!"#$ !"!%$ &'%()$ *+),$ :"#$ #)($

--$ (&.)/$ 0$ 1234$ 646$ 64@ 64@ <A$28$ 9%+%:"($ 64$ 5234$ 645$ 66@ 6-@ <A$

$

11 RS idm#"

Page 19: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Deljenje

• Ni osnovna operacija; uporabna za izražanje

vprašanj kot na primer:

– Poišči vse mornarje, ki so rezervirali vse ladje. • Naj ima A dva atributa x in y; B pa samo en atribut y:

– A/B =

– A/B vsebuje vse n-terice x (mornarji) tako da za vsako n-terico y (ladja) v B, obstaja n-terica xy v A.

– Ali: Če množica vrednosti y (ladje) povezana z vrednostjo x (mornarji) v A vsebuje vse vrednosti y v B, potem je

vrednost x v A/B.

• V splošnem sta x in y lahko poljubna seznama

atributov; y je seznam atrributov v B, in x y je

seznam atributov v A.

{ }x x y A y B| ,! " # "

$OPB, 2009/10

Primer deljenja A/B

!"#$ %"#$

!&$ %&$!&$ %'$!&$ %($!&$ %)$!'$ %&$!'$ %'$!($ %'$

!)$ %'$

!)$ %)$$

%"#%'

%"#%'%)

%"#%&%'%)

!"#!&!'!(!)

!"#!&!)

!"#!&

*

+&+'

+(

*,+& *,+' *,+(

OPB, 2009/10

Izražanje A/B z osnovnimi

operacijami

• Deljenje ni nujno potrebna operacija; uporabna

bljižnica.

– To je načeloma res tudi za stike, čeprav omogočajo stiki

učinkovito implementacijo poizvedb.

• Ideja: A/B = izračunaj vse vrednosti x, ki niso

izločeni z vrednostjo y v B.

– x je izločena z y v primeru, da z dodajanjem vrednosti y iz

B dobimo n-terico xy, ki ni v A.

-./#01"1$2314"#!56$78

$*,+8

% %x x A B A(( ( ) ) )& '

% x A( ) ' -./#01"1$2314"#!56OPB, 2009/10

Poišči imena mornarjev, ki so rezervirali

ladjo #103

• Rešitev 1: ))(( Re103 Mornarjimime zervacijelid !"=

(%

#$91:6512$'8 ),!( Re! " #

zervacijelidTemp=

()

) ( , )Temp Temp Sailors$ ! "!

)$(Tempmime%

#$91:6512$(8 )Re(103( Mornarjizervacijelidmime !"

=(%

Page 20: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Poišči imena vseh mornarjev, ki so

rezervirali rdečo ladjo.

• Informacije o barvah ladij so dostopne v

relaciji Ladje; potrebujemo še en stik:

)Re)(( MornarjizervacijeLadjerdecabarvamime !"!"=

!"

#!Bolj učinkovita rešitev:

))Re)((( MornarjizLadjerdecabarvalidmidmime !"!"=

!"""

"#$%&%'($)*!#)%'+,-.!.%!/(0,1!$)!*,0%$,+!).!-(/%!#*+%!#)%'+,-.%2OPB, 2009/10

Poišči vse mornarje, ki so rezervirali

rdečo ali zeleno ladjo.

• Identificiramo vse rdeče in zelene ladje in

potem poiščemo mornarje, ki so rezervirali

eno izmed izbranih ladij:

))(,( Ladjezelenabarvardecabarva

Temp=#=

!$

)Re( MornarjizervacijeTempmime !"!""

#!3,&#!4,!-(!-,5%/%*($%!'!6/%7)2!!89(:);<

#!9(7!4,!'=)-%>!?,!7,!!!!!!'(&,/7(/!'!!!!!;# %

OPB, 2009/10

Poišči mornarje, ki so rezervirali rdečo in

zeleno ladjo.

• Prejšnji način ne deluje.

• Poiščemo mornarje, ki so rezervirali rdeče ladje,

mornarje, ki so rezervirali zelene ladje in potem

naredimo presek.

))Re)((,1( zervacijeLadjerdecabarvamid

Temp !"=

!"$

!

))21(( MornarjiTempTempmime !"&" !

))Re)((,2( zervacijeLadjezelenabarvasid

Temp !"=

!"$

OPB, 2009/10

Poišči imena mornarjev, ki so rezervirali

vse ladje

• Uporaba deljenja; sheme vhodnih relacij

morajo biti pazljivo izbrane:

))(/)Re,(,( Ladjelid

zervacijelidmid

Temp ""$

)( MornarjiTempmime !""

# @@@!&)*/(*7,>!:%!4)!*,',*+%*(1%!+4,!1(-7,!AB,15%/CD

)lim(/ Ladjedelfinelid =

!"@@@@@

Page 21: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Ponovitev

• Relacijski model ima formalne povpraševalne

jezike, ki so enostavni in imajo veliko izrazno

moč.

• Relacijska algebra je proceduralen jezik;

uporabna je interno predstavitev vprašanj.

• Veliko načinov za izražanje enega samega

stavka; optimizator izbere tistega, ki poišče

rezultat najhitreje.

Page 22: Osnove Podatkovnih Baz --skripta-- 2010/2011

1. Relacijska algebra - LETALSKI POTNIŠKI PROMETVzemimo naslednjo shemo:

LETALISCA _IdLE: integer, ime: varchar(30), kraj: varchar(50), drzava: varchar(50) LETALO _IdTL: integer, tip: varchar(20), opis: varchar(250), OznakaProizv: varchar(20)PRISTANE _IdLE: integer, _IdTL: integer, DatumOd: date

Atributi, ki predstavljajo ključ so podčrtani. Relacija PRISTANE vsebuje podatke o tem, kateri tipi letal lahko pristanejo na posameznih letališčih in od kdaj.

Zapišite naslednje poizvedbe v relacijski algebri.

a) Poišči vsa imena letališč, na katerih lahko pristane letalo tipa B747.b) Poišči vse IdLE letališč, na katerih lahko pristane letalo tipa B747 ali B748. c) Poišči vse IdLE letališč, ki so ali v Avstriji ali pa na njih lahko pristane letalo tipa B747. d) Poišči vse IdLE letališč, na katerih lahko pristane letalo tipa B747 in tipa B748.e) Poišči vse IdLE letališč, na katerih lahko pristanejo vsi tipi letal.

2. Relacijska algebra – NAFTNA DRUŽBAVzemimo naslednjo shemo:

CISTERNE _IdC: integer, SerijskaSt: integer, kapaciteta: integer, DtServisa: dateNAROCILA _IdN: integer, St:integer, Datum: date, Kolicina: integerDOBAVA _IdN: integer, _IdC: integer, Datum: date, Kolicina: integer Atributi, ki predstavljajo ključ so podčrtani. Relacija DOBAVA vsebuje podatke o opravljenih dobavah oz. prevozih cistern za izpolnitev posameznih naročil. Za izpolnitev enega naročila je lahko potrebno tudi več dobav oz. prevozov.

Zapišite naslednje poizvedbe v relacijski algebri.

a) Poišči vse številke naročil, za katere je pri dobavi goriva sodelovala cisterna s serijsko številko 123456. b) Poišči vse IdN naročil, ki jih je izpolnila cisterna s serijsko številko 123456 ali 123457. c) Poišči vse IdN naročil, ki ali zahtevajo količino 10.000 enot ali pa jih je

izpolnila cisterna s serijsko številko 123456. d) Poišči vse IdN naročil, ki jih je izpolnila cisterna s serijsko številko 123456 in cisterna s serijsko številko 123457. 3. Imamo naslednji shemo

Avto idA Model Barva StVratPregled idO idAOperater idO Ime DelDoba

a) Poišči imena vseh operaterjev ki so pregledali rdeče avteb) Poišči imena mornarjv, ki so pregledali idA 2c) Poišči imena vseh operaterjev ki so pregledali rdeče ALI zelene avte pri čemer uporabimo preimenovanjed) Poišči imena vseh operaterjev ki so pregledali rdeče IN zelene avte pri čemer uporabimo preimenovanjee) Poišči imena operaterjev ki so pregledali vse avtomobilef) Poišči imena operaterjev ki so pregledali vse avtomobile modela Golf

Page 23: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 24: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

SQL: Poizvedbe, Integritetne omejitve, Prožilci

Iztok Savnik, FAMNIT

OPB, 2009/10

Primeri relacij

• Instance ta bel Rezervacije in Mornarji bodo uporabljane v primerih.

• Če bi ključ tabele Rezervacije vseboval samo mid in lid, kakšen pomen bi imela relacija?

mid mime ocena star 22 novak 7 45.0 31 kranjc 8 55.5 58 petelin 10 35.0

mid lid dan 22 101 10/10/96 58 103 11/12/96

!"

#"

#$mid mime ocena star !" volk # .$% & $' kranjc " .%% % (( jauk % .$% & %" petelin ' & .$% &

OPB, 2009/10

Osnovna SQL poizvedba

• seznam-relacij Seznam relacij (lahko z uporabo spremenljivk).

• seznam-izbire Seznam atributov, ki so rezultat poizvedbe ali shema tabele

-rezulata.

• pogoj-izbire Logični pogoj (Atr op const, Atr1 op Atr2, kjer je op eno izmed

) ; primerjave so povezane z logičnimi operacijami

AND, OR in NOT.

• DISTINCT je opcijska ključna beseda, ki pove da naj se iz rezulatata

odstranijo duplikati. Privzeto duplikati niso odstranjeni!

!"#"$%&&&&&&&&'()!%)*$%+&,-./0123.435-6789&&&&&&&&&,-./0125-:0;3<=>"7"&&&&&&&&?@A@<23.435-

< > = ! " #, , , , ,

OPB, 2009/10

“Konceptualna” evaluacijska strategija

• Pomen SQL poizvedbe se lahko izrazi z naslednjo

strategijo evaluacije:

– Izračunaj Kartezijski produkt seznama-relacij.– Izloči tiste n-terice, ki ne izpolnjujejo pogoja-izbire.

– Izloči atribute, ki niso v seznama-izbire.

– Če je specificiran DISTINCT potem se izločijo duplikati.

• Opisana strategija je zelo verjetno najmanj učinkovit način

evaluacije poizvedbe!

• Optimizator bo poiskal najbolj učinkovito strategijo, ki

izračuna isti odgovor.

Page 25: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Primer konceptualne evaluacije

!"#"$%&&!'()(*+,-.&&&&&./01203)&.4&,*5*0627)3*&,89","&&.'():;,'():&<=>&,'?):;@AB

C():D&()(*& /7*12& EF20& C():D& ?):& :21&

GG& 1/62H& I& JK'A& GG& @A@& @AL @AL MN&

GG& 1/62H& I& JK'A& KO& @AB& @@L @GL MN&

B@& H02137& O& KK'K& GG& @A@& @AL @AL MN&

B@& H02137& O& KK'K& KO& @AB& @@L @GL MN&

KO& P*F*?)1& @A& BK'A& GG& @A@& @AL @AL MN&

KO& P*F*?)1& @A& BK'A& KO& @AB& @@L @GL MN&&

OPB, 2009/10

Spremenljivke

• Potrebne so samo v primeru, da ista relacija

uporablja dvakrat. Prejšnje vprašanje se lahko napiše

tudi na sledeč način:

!"#"$%&&.'()(*+,-.&&&&&./01203)&.4&,*5*0627)3*&,89","&&.'():;,'():&<=>&?):;@AB

!"#"$%&&()(*+,-.&&&&&./01203)4&,*5*0627)3*89","&&./01203)'():;,*5*0627)3*'():&&&&&&&&&&&&<=>&?):;@AB

>/Q*0&EF)?R&S*:1/&TP/02Q?323&EP0*(*1?3)6H*&U<#V

OPB, 2009/10

Poišči mornarje, ki so rezervirali vsaj eno ladjo

• Kaj se zgodi, če dodamo DISTINCT ?

• Kako vpliva zamenjava M.mid z M.mime na izvajanje

SELECT stavka? Kaj če dodamo DISTINCT ?

!"#"$%&&.'():+,-.&&./01203)&.4&,*5*0627)3*&,89","&&.'():;,'():

OPB, 2009/10

Izrazi in nizi

• Ilustracija uporabe aritmetičnih izrazov in ujemanja vzorcev

pri nizih: poišči trojice (starost mornarjev in dva polja opisana z izrazi) za vse mornarje katerih ime se začne z B, konča z N in vsebuje vsaj tri znake.

• AS in = sta dva načina poimenovanja polj v rezultatu.

• LIKE se uporablja za primerjanje nizov. `_’ pomeni katerikoli

znak in `%’ pomeni 0 ali več poljubnih znakov.

!"#"$%&&.'EF204&EF20@;.'EF20WK4&GX.'EF20&<!&EF20G+,-.&&./01203)&.89","&&.'()(*&#VY"&Z[\]=^

Page 26: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Poišči id-je mornarjev, ki so rezervirali rdečo ali zeleno ladjo

• UNION: Uporablja se za

izračun unije dve unija-kompatibilnih množic

n-teric (ki so rezultat SQL

poizvedbe).

• Kaj dobimo, če zamenjamo

OR z AND v prvi verziji

poizvedbe?

• Uporaba EXCEPT (Kaj

dobimo, če UNION

zamenjamo z EXCEPT?)

!"#"$%&&'()*+,-.'&&'/01203*&'4&#2+35&#4&-5650728*35&-9:"-"&&'()*+;-()*+&<=>&-(?*+;#(?*+<=>&@#(A2072;B0+582C&.-&#(A2072;B65?512CD

!"#"$%&&'()*+,-.'&&'/01203*&'4&#2+35&#4&-5650728*35&-9:"-"&&'()*+;-()*+&<=>&&#(?*+;-(?*+&&&&&&&&&&&&&&&&<=>&#(A2072;B0+582CE=F.=!"#"$%&&'()*+,-.'&&'/01203*&'4&#2+35&#4&-5650728*35&-9:"-"&&'()*+;-()*+&<=>&#(?*+;-(?*+&&&&&&&&&&&&&&&&<=>&#(A2072;B65?512C

OPB, 2009/10

Poišči id-je mornarjev, ki so rezervirali rdečo in zeleno ladjo

• INTERSECT: lahko

uporabljamo nad unija-kompatibilnimi množicami n-

teric.

• Vključena je v SQL/92

standard; nekateri sistemi

operacije ne podpirajo.

!"#"$%&&'()*+,-.'&&'/01203*&'4&#2+35&#G4&-5650728*35&-G4&&&&&&&&&&&&&#2+35&#H4&-5650728*35&-H9:"-"&&'()*+;-G()*+&<=>&-G(?*+;#G(?*+&&<=>&&'()*+;-H()*+&<=>&-H(?*+;#H(?*+&&<=>&@#G(A2072;B0+582C&&&<=>&#H(A2072;B65?512CD

!"#"$%&&'()*+,-.'&&'/01203*&'4&#2+35&#4&-5650728*35&-9:"-"&&'()*+;-()*+&<=>&#(?*+;-(A*+&&&&&&&&&&&&&&&&<=>&#(A2072;B0+582CF=%"-!"$%!"#"$%&&'()*+,-.'&&'/01203*&'4&#2+35&#4&-5650728*35&-9:"-"&&'()*+;-()*+&<=>&#(?*+;-(?*+&&&&&&&&&&&&&&&&<=>&#(A2072;B65?512C

I?3JKL

OPB, 2009/10

Vgnezdena vprašanja

• Zelo izrazna lastnost SQL: stavek WHERE lahko vsebuje SQL poizvedbo ! – Kot tudi stavka FROM an HAVING.

• Mornarji, ki niso rezervirali ladje #103: NOT IN.• Semantika vgnezdenih poizvedb:

– Vgnezdene zanke: Za vsakega mornarja, preveri pogoj poizvedbe, ki vsebuje vgnezdeno poizvedbo.

!"#"$%&&'()*)5,-.'&&'/01203*&'9:"-"&&'()*+&F=&&@!"#"$%&&-()*+&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,-.'&&-5650728*35&-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&9:"-"&&-(?*+;GMND

O/*PK*&*)512&)/01203574&Q*&R/&056507*02?*&?2+3/&SGMNT

OPB, 2009/10

Vgnezdena vprašanja (2)

• EXISTS: primerjava množice s prazno množico. • Vgnezdeno vprašanje se izvede za vsakega mornarja.• Če je uporabljen UNIQUE in je * zamenjana z R.lid, potem

iščemo mornarje, ki imajo največ eno rezervacijo ladje #103. (UNIQUE preveri obstoj duplikatov; * pomeni vse atribute. Zakaj moramo zamenjati * z R.lid?)

!"#"$%&&'()*)5,-.'&&'/01203*&'9:"-"&&&"UF!%!&&@!"#"$%&&V&&&&&&&&&&&&&&&&&&&&&&&&&&&&&,-.'&&-5650728*35&-&&&&&&&&&&&&&&&&&&&&&&&&&&&&&9:"-"&&-(?*+;GMN&<=>&'()*+;-()*+D

O/*PK*&*)512&)/01203574&R/&056507*02?*&?2+3/&SGMNT

Page 27: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Operacije za primerjanje množic

• Spoznali smo že IN, EXISTS in UNIQUE. Obstajajo še NOT

IN, NOT EXISTS in NOT UNIQUE.

• Na voljo so še: op ANY, op ALL, op IN

• Poišči mornarje kateri imajo oceno večjo od vseh mornarjev z

imenom “miha”:

!"#=<> ,,,,,

!"#"$%&&'()*+&&+,-./-01&+23")"&&+4,56./&7&89:&&;!"#"$%&&+<4,56./&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&()*+&&+,-./-01&+<&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23")"&+<4=1=6>?=1@/AB

OPB, 2009/10

Poizvedbe z INTERSECT : uporaba IN

• Podobno, EXCEPT poizvedbe lahko prepišemo z uporabo

NOT IN.

• Iskanje imen (ne mid) Mornarjev, ki so rezervirali rdečo in

zeleno ladjo samo zamenjaj M.mid z M.mime v stavku

SELECT. (Kaj je z INTERSECT poizvedbo?)

C,1DE1&1FG06&=,-./-06HI&J1&K,&-6L6-H1-/M1&-F6E,&1.&L6M6.,&M/F0,N

!"#"$%&&+4=1F()*+&&+,-./-01&+I&#/F06&#I&)6L6-H/5106&)23")"&&+4=1F>)4=1F&89O&)4M1F>#4M1F&89O&#4P/-H/>?-F65/A&&&&&89O&+4=1F&Q9&&;!"#"$%&&+<4=1F&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&()*+&&+,-./-01&+<I&#/F06&#<I&)6L6-H/5106&)<&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23")"&&+<4=1F>)<4=1F&89O&)<4M1F>R<4M1F&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&89O&&#<4P/-H/>?L6M6./AB

OPB, 2009/10

Deljenje v SQL

• Težja pot; brez EXCEPT:

!"#"$%&&+4=1=6()*+&&+,-./-01&+23")"&&9*%&"SQ!%!&&&&&&&&&&&&&&;;!"#"$%&&#4M1F&&&&&&&&&&&&&&&&()*+&&#/F06&#B&&&&&&&&&&&&&&&"S$"C%&&&&&&&&&&&&&&&&;!"#"$%&&#4M1F&&&&&&&&&&&&&&&&&()*+&&)6L6-H/5106&)&&&&&&&&&&&&&&&&&23")"&)4=1F>+4=1F&&&&&&&&&&&&&&&&&&&&&&89O&)4M1F>#4M1FBB

!"#"$%&&+4=1=6()*+&&+,-./-01&+23")"&&9*%&"SQ!%!&&;!"#"$%&&#4M1F&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&()*+&&#/F06&#&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23")"&&9*%&"SQ!%!&&;!"#"$%&&)4M1F&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&()*+&&)6L6-H/5106&)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23")"&&)4M1F>#4M1F&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&89O&)4=1F>+4=1FBB

+,-./-01&T/J,I&F/&444

.6&,PKT/0/&M/F0/&P-6L&F/&.6P1&444

,PKT/0/M/&-6L6-H/510/&+&M/F06&#

C,1DE1&=,-./-06I&J1&K,&-6L6-H1-/M1&HK6&M/F064

;UB

;<B

OPB, 2009/10

Agregacijske operacije

• Pomembna razširitev relacijske algebre.

$*V9%&;'B$*V9%&;&WOQ!%Q9$%X&8B!V+&;&WOQ!%Q9$%X&8B8YZ&;&WOQ!%Q9$%X&8B+8S&;8B+Q9&;8B

!"#"$%&&8YZ&;+4KT/-B()*+&&+,-./-01&+23")"&&+4,56./>U[

!"#"$%&&$*V9%&;'B()*+&&+,-./-01&+

!"#"$%&&8YZ&;&OQ!%Q9$%&+4KT/-B()*+&&+,-./-01&+23")"&&+4,56./>U[

!"#"$%&&+4=1=6()*+&&+,-./-01&+23")"&&+4,56./>&;!"#"$%&&+8S;+<4,56./B&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&()*+&&+,-./-01&+<B

K1.\M6&5,M]=.

!"#"$%&&$*V9%&;OQ!%Q9$%&+4,56./B()*+&&+,-./-01&+23")"&+4=1=6>?=1@/A

Page 28: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Poišči imena in starost najstarejšega mornarja (-ev)

• Prva poizvedba ni legalna!

(Razlog malce kasneje, ko si

bomo ogledali GROUP BY.)

• Tretja poizvedba je

ekvivalentna drugi in je legalna

v okviru SQL/92 standarda; ni

podprta v nekaterih sistemih.

!"#"$%&&'()*)+,&'-.&/'(01234567'&&'83923:*&'

!"#"$%&&'()*)+,&'(0123567'&&'83923:*&';<"6"&&'(0123&=&&&&&&&&&&&&&&/!"#"$%&&'-.&/'>(01234&&&&&&&&&&&&&&&567'&&'83923:*&'>4

!"#"$%&&'()*)+,&'(0123567'&&'83923:*&';<"6"&&/!"#"$%&&'-.&/'>(01234&&&&&&&&&&&&&&&567'&&'83923:*&'>4&&&&&&&&&&&&&&&=&'(0123

OPB, 2009/10

Motivacija za grupiranje

• V prejšnjih primerih so se agregacijske operacije izvajale nad celotnimi tabelami. Včasih potrebujemo kaj izračunati nad skupinami n-teric.

• Primer: Poišči starost najmlajših mornarjev za vsako oceno.– V splošnem ne vemo koliko ocen obstaja in kakšne so vrednosti

ocene. – Recimo, da vemo da so vrednosti ocene od 1 do 10; lahko

napišemo 10 vprašanj kot je naslednje: !

!"#"$%&&'?@&/'(01234567'&&'83923:*&';<"6"&&'(8A+92&=&*

583&*&=&B,&>,&(((&,&BCD

OPB, 2009/10

Poizvedbe z GROUP BY in HAVING

• seznam-izbire vsebuje: (i) imena atributov (ii) izraze z agregacijskimi operacijami (npr., MIN (M.star)).– seznam-izbire (i): mora biti podmnožica seznama-skupine.

Intuitivno, predstavlja vsaka n-terica rezultata skupino n-teric.

– Skupina je množica n-teric, ki ima isto vrednost vseh atributov iz seznama-skupine.

!"#"$%&&&&&&&&EF?!%?@$%G&&0+H92)I*HJ*3+567'&&&&&&&&&0+H92)I3+K2A*:;<"6"&&&&&&&&L8M8:I*HJ*3+N67OP&QR&&0+H92)I0STL*9+<-U?@N&&&&&&L8M8:I0STL*9+

OPB, 2009/10

“Konceptualna” evaluacija

" Najprej izračunamo kartezijski produkt relacij iz seznam-relacij.

" Izločimo n-terice, ki ne izpolnjijejo pogoja pogoj-izbire." Izločimo nepotrebne atribute. " Preostale n-terice se razvrstijo v skupine glede na vrednost

atributov iz seznama-skupine. " Iz množice n-teric, ki predstavljajo skupine se izločijo tiste, ki

ne zadoščajo pogoju-skupine. Izrazi v pogoju-skupine morajo imeti eno vrednost za celotno skupino!

• Atributi v pogoju-skupine so bodisi argumenti v agregacijskih funkcijah ali pa se pojavijo v seznamu-skupine.

• Ena n-terica se generira za eno od izbranih skupin.

Page 29: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Poišči starost najmlajšega mornarja, ki je star več kot 18, v

skupinah, ki pripadajo ocenenam in vsebujejo vsaj dva takšna

mornarja.

!"#"$%&&'()*+,-.&&'/0&1'(23-45&6!&78,23-4

9:;'&&')4,-4<8&'=>":"&&'(23-4&?@&ABC:;DE&FG&&'()*+,->6H/0C&&$;D0%&1I5&?&A

mid mime ocena star 22 novak 7 45.0 29 pevec 1 33.0 31 kranjc 8 55.5 32 andrej 8 25.5 58 petelin 10 35.0 64 tom 7 35.0 71 kos 10 16.0 74 tom 9 35.0 85 miha 3 25.5 95 janez 3 63.5 96 egon 3 25.5

;JK)L)4M

!-8N)42&8,23-,*+M

ocena minstar 3 25.5 7 35.0 8 25.5

OPB, 2009/10

Poišči starost najmlajšega mornarja, ki je star več kot 18, v

skupinah, ki pripadajo ocenam in vsebujejo vsaj dva takšna

mornarja.

ocena star 7 45.0 1 33.0 8 55.5 8 25.5 10 35.0 7 35.0 10 16.0 9 35.0 3 25.5 3 63.5 3 25.5

ocena minstar 3 25.5 7 35.0 8 25.5

ocena star 1 33.0 3 25.5 3 63.5 3 25.5 7 45.0 7 35.0 8 55.5 8 25.5 9 35.0 10 35.0

OPB, 2009/10

Poišči starost najmlajšega mornarja, ki je star več kot 18, v skupinah, ki

pripadajo ocenenam, vsebujejo vsaj dva takšna mornarja in so vsi pod 60.

ocena star ! ."# $ % .&& $ ' .## # ' .(# # % $ .&# $ ! .&# $ % $ .% ) $ * .&# $ & .(# # & .)& # & .(# #

ocena star % &&.$ & .(# # & .)& # & .(# # ! "#.$ ! .&# $ ' .## # ' .(# # * .&# $ % $ .&# $

ocena minstar ! .&# $ ' .(# #

HAVING COUNT (*) > 1 AND EVERY (M.star <=60)

Kaj je rezultat spremembe EVERY vANY?

OPB, 2009/10

Poišči starost najmlajšega mornarja, ki je star več kot 18, v skupinah, ki

pripadajo ocenenam in vsebujejo vsaj dva mornarja stara od 18 do 60.

ocena minstar 3 25.5 7 35.0 8 25.5

!"#"$%&&'()*+,-.&&'/0&1'(23-45&6!&78,23-4

9:;'&&')4,-4<8&'=>":"&&'(23-4&?@&AB&&&&&60O&'(23-4&P@&QRC:;DE&FG&&'()*+,->6H/0C&&$;D0%&1I5&?&A

;JK)L)4

')4,-4<8

mid mime ocena star 22 novak 7 45.0 29 pevec 1 33.0 31 kranjc 8 55.5 32 andrej 8 25.5 58 petelin 10 35.0 64 tom 7 35.0 71 kos 10 16.0 74 tom 9 35.0 85 miha 3 25.5 95 janez 3 63.5 96 egon 3 25.5

Page 30: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Za vsako rdečo ladjo poišči število rezervacij.

• Grupiranje po stiku treh relacij.• Kaj dobimo, če umaknemo L.barva=‘rdeca’ ? • Kaj dobimo, če damo ta pogoj v stavek

HAVING ?• Kaj se zgodi, če umaknemo relacijo Mornarji

in stik z mid ?

!"#"$%&&#'()*+&&$,-.%&/01&2!&345678,9&&9:;5<;=)&9+&#<*=<&#+&8>?>;@<4)=>&8AB"8"&&9'3)*C8'3)*&2.D&8'()*C#'()*&2.D&#'E<;@<CF;*>4<GH8,-I&JK&&#'()*

OPB, 2009/10

Poišči vse ocene za katere je povprečna starost minimalna po vseh ocenah

! Agregacijske operacije se ne morejo gnezditi!

!"#"$%&&9':4>5<78,9&&9:;5<;=)&9AB"8"&&9'L6<;&C&&&&&&&&&&&&&&&&/!"#"$%&&9M.&/2NH&/9O'L6<;11&&78,9&9:;5<;=)&9O1

!"#"$%&&%>3P':4>5<+&%>3P'P:@P;>4=>78,9&&/!"#"$%&&9':4>5<+&2NH&/9'L6<;1&2!&P:@P;>4=>&&&&&&&&&&&&&78,9&&9:;5<;=)&9&&&&&&&&&&&&&H8,-I&JK&&9':4>5<1&2!&%>3PAB"8"&&%>3P'P:@P;>4=>&C&/!"#"$%&&9M.&/%>3P'P:@P;>4=>1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&78,9&&%>3P1

!Q:;>R65<&;>S)6>@&?&!T#UVO1W

OPB, 2009/10

Null vrednosti

• Vrednosti polj so včasih neznane (npr., ocena ni bila vnešena).– SQL nudi posebno vrednost null za takšne situacije.

• Prisotnost vrednosti null vnaša v jezik več posledic: – Posebne operacije so potrebne za preverjanje če je dana vrednost

enaka null. – Je ocena>8 true ali false, ko je ocena enaka NULL? Kaj se zgodi z AND, OR in NOT operacijami?– Logika s tremi vrednostmi (true, false in unknown).– Pomen gradnikov mora biti definiran zelo pazljivo. (npr., WHERE ne

izloči n-terice za katere je pogoj true.)– Nove operacije (zunanji stiki) mogoče/potrebne.

OPB, 2009/10

Integritetne omejitve (Pregled)

• IC opisuje pogoje, ki jih mora izpolniti vsaka legalna instanca relacije. – insert/delete/update, ki kršijo IC niso dovoljeni. – Lahko se uporabljajo zato, da zagotavljajo pravilen pomen podatov

(npr., mid je ključ), ali onemogočijo nekonsistentnost (npr., mime

mora biti niz in mora biti < 200)

• Tipi IC: Omejitve domen, primarni ključ, tuj ključ, splošne omejitve. – Omejitve domen: Vrednosti polj morajo biti pravilnega tipa.

Page 31: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Splošne omejitve

• Uporabne, ko so

potrebne bolj

splošne omejitve

kot ključi.

• Poizvedbe

uporabimo za

izražanje

omejitev.

• Omejitve lahko

imenujemo.

!"#$%#&%$'(#&&&)*+,-+./0&1/2&&34%#5#"61/17&&!8$"09:;6*<7,-&&34%#5#"6=>-+&&"#$(6?"3)$"@&A#@&&01/2;6!8#!A&&0&*<7,-&BC&9&

$4D&*<7,-&EC&9:&;&&&

!"#$%#&%$'(#&&"7F7+G-</.70&1/2&&34%#5#"6H/2&&34%#5#"62-I&&D$%#6?"3)$"@&A#@&&01/26J/262-I;6!K4L%"$34%&&'+7FM7F7+!8#!A&&0NM7F7+*O&EB

0&L#(#!%&&(PH/17Q"K)&&(-2.7&(R8#"#&&(PH/2CH/2;;;

OPB, 2009/10

Omejitve preko večih relacij!"#$%#&%$'(#&&)*+,-+./&)

0&1/2&&34%#5#"61/17&&!8$"09:;6*<7,-&&34%#5#"6=>-+&&"#$(6?"3)$"@&A#@&&01/2;6!8#!A&&0&0L#(#!%&!KS4%&0)P1/2;&Q"K)&)*+,-+./&);T&0L#(#!%&!KS4%&0(PH/2;&Q"K)&(-2.7&(;&E&9::&;&&&

• Če je relacija

Mornarji prazna

potem je lahko v

relaciji Ladje

karkoli.

• ASSERTION je

prava rešitev; ni

povezana z

nobeno tabelo.

!"#$%#&$LL#"%3K4&&)-H/AHUJ!8#!A&&0&0L#(#!%&!KS4%&0)P1/2;&Q"K)&)*+,-+./&);T&0L#(#!%&!KS4%&0(PH/2;&Q"K)&(-2.7&(;&E&9::&;

V>7G/H*&H-2/.&=WUX-.&=&Y>7G/H*11*+,-+.7G&.7&E&9::&

OPB, 2009/10

Prožilci

• Prožilec (trigger): procedura, ki se štarta v primeru, da se zgodi specifična sprememba v podatkovni bazi.

• Trije deli:– Dogodek - ki aktivira prožilec.– Pogoj - pove ali naj se procedura sproži.– Akcija - pove kaj naj naredi prožilec.

OPB, 2009/10

Prožilec: Primer (SQL:1999)

CREATE TRIGGER ShraniMladeMornarjeAFTER INSERT ON MORNARJI

REFERENCING NEW TABLE NoviMornarjiFOR EACH STATEMENT

INSERTINTO MladiMornarji(mid, mime, star, ocena)SELECT mid, mime, star, ocenaFROM NoviMornarji NWHERE N.star <= 18

Page 32: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Pregled

• SQL je bil pomemben pri sprejetju relacijskega

podatkovnega modela kot osnovo večine realnih

sistemov; jezik je bolj naraven kot starejši

proceduralni jeziki.

• Veliko načinov za zapis istega vprašanja;

optimizator bi moral poiskati najbolj učinkovit plan

evaluacije.

– V realnosti morajo uporabniki zadosti dobro poznati sistem

in podatke, da v robnih primerih zagotovijo optimalno

evaluacijo.

OPB, 2009/10

Pregled (2)

• SQL je relacijsko kompleten; precej močnejši

jezik kot so relacijska algebra.

• NULL se uporablja za neznane vrednosti polj;

komplikacije z NULL vrednostmi.

• SQL omogoča specifikacijo bogate množice

integritetnih omejitev.

• Prožilci se odzivajo na spremembe v bazi.

Page 33: Osnove Podatkovnih Baz --skripta-- 2010/2011

1. SQL - LETALSKI POTNIŠKI PROMET

Vzemimo naslednjo shemo:

LETALISCA _IdLE: integer, ime: varchar(30), kraj: varchar(50), drzava: varchar(50)LETALA _IdTL: integer, tip: varchar(20), opis: varchar(250), LetoProizv: integer, kapaciteta: integerPRISTANE _IdLE: integer, _IdTL: integer, DatumOd: dateLET: _IdLet: integer, IdTL: integer, IdLE_vzleta: integer, IdLE_pristanka: integer, cas_vzleta: date, cas_pristanka: date, id_pilotREZERVACIJE _IdR: integer, IdLet: integer, Cena: Double, Razred: integer, Ime: varchar(50), Priimek: varchar(50)PILOT _id_pilot: integer, Ime: varchar(50), Priimek: varchar(50), DelovnaDoba: integer, StLetov: integer

Atributi, ki predstavljajo ključ so podčrtani. Relacija PRISTANE vsebuje podatke o tem, kateri tipi letal lahko pristanejo na posameznih letališčih in od kdaj. Relacija LET vsebuje podatke o letih posameznih letal. Relacija REZERVACIJE vsebuje podatke o rezervacijah za posamezne lete.

Zapišite naslednje poizvedbe v SQL poizvedovalnem jeziku.

a) Izpiši imena vseh letališč v ZDA.b) Izpiši opis in IdTL vseh letal, ki so starejša od leta 2000.c) Poišči vsa imena letališč, na katerih lahko pristane letalo tipa B747. d) Poišči vse IdLE letališč, na katerih lahko pristane letalo tipa B747 ali B748. e) Imena vseh letališč, na katerih je pristalo letalo tipa B747 ali B748. f) Poišči vse IdLE letališč, ki so ali v Avstriji ali pa na njih lahko pristane letalo tipa B747. g) Poišči vse IdLE letališč, na katerih lahko pristane letalo tipa B747 in tipa B748. h) Zapišite SQL stavek za brisanje vseh zapisov v tabeli LETALA, za katere velja, da je kapaciteta letala manjša od 80. i) Zapišite SQL stavek za spreminjanje podatka o ceni rezervacije v tabeli REZERVACIJE z novo vrednostjo, ki je za 30% višja od stare. Pri tem upoštevajte, da se spremenijo le cene tistih rezervacij, kjer je razred rezervacije 1.j) Izpis Imena in Priimka pilotov v enem stolpcu.k) Izpis začetnic vseh pilotov (predpostavljamo, da ime vsak le en priimek in le eno ime).l) Izpis deleža števila letov pilota glede na 1 leta delovne dobe za vse pilote.

m) Poišči vse IdLE letališč, na katerih lahko pristanejo vsi tipi letal.

2. SQL – NAFTNA DRUŽBA

Vzemimo naslednjo shemo:

SERVIS _IdS: integer, Ime: varchar(50), Kraj: varchar(50)ZALOGA _IdTG: integer, _IdS: integer, kolicina: integer TIP_GORIVA _IdTG: integer, ime: varchar(50) CISTERNE _IdC: integer, SerijskaSt: integer, kapaciteta: integer, LetoIzd: integer, DtServisa: dateNAROCILA _IdN: integer, IdS: integer, St:integer, Datum: date, Kolicina: integerDOBAVA _IdN: integer, _IdC: integer, Datum: date, Kolicina: integer IdV: integerVOZNIK _IdV: integer, Ime: varchar(50), Priimek: varchar(50) Atributi, ki predstavljajo ključ so podčrtani. Relacija DOBAVA vsebuje podatke o opravljenih dobavah oz. prevozih cistern za izpolnitev posameznih naročil. Za izpolnitev enega naročila je lahko potrebno tudi več dobav oz. prevozov. Dobavo izvede cisterna z voznikom. Servis hrani zalogo posameznega tipa goriv v tabeli ZALOGA.

Zapišite naslednje poizvedbe v SQL poizvedovalnem jeziku.

a) Imena vseh bencinskih servisov v Kopru.b) IdC vseh cistern, ki so starejše od leta 2000.c) Poišči vse številke naročil, za katere je pri dobavi goriva sodelovala cisterna s serijsko številko 123456. d) Poišči vse IdN naročil, ki jih je izpolnila cisterna s serijsko številko 123456 ali 123457. e) Poišči vse IdN naročil, ki ali zahtevajo količino 10.000 enot ali pa jih je izpolnila cisterna s serijsko številko 123456. f) Poišči vse IdN naročil, ki jih je izpolnila cisterna s serijsko številko 123456 in cisterna s serijsko številko 123457.g) Izbriši vse zapise v tabeli CISTERNE, za katere velja, da je kapaciteta cisterne manjša od 5000.h) Zapišite SQL stavek za spreminjanje podatka o datumu zadnjega servisa cisterne v tabeli CISTERNE z novo vrednostjo 1.1.2005, za vse tiste cisterne, kjer je datum starejši od 1.1.2000.

Page 34: Osnove Podatkovnih Baz --skripta-- 2010/2011

i) Zapišite SQL stavke za vnos zapisa v eno izmed tabel v podatkovni bazi naftne družbe. j) Izpis Imena in Priimka šoferjev v enem stolpcu.k) Izpis začetnic vseh šoferjev (predpostavljamo, da ime vsak le en priimek in le eno ime).l) Izpis zaloge po posameznih črpalkah tako, da je količina izražena v 1000 litrih (npr. v tabeli podatek 500 l, izpišemo 0,5 l).m) Številke vseh naročil, katera so bila izpolnjena z dobavo cisterne s kapaciteto 16.000 ali 24.000.

Page 35: Osnove Podatkovnih Baz --skripta-- 2010/2011

1. LETALSKI PROMET

LETALISCA _IdLE: integer, ime: varchar(30), kraj: varchar(50), drzava: varchar(50)LETALA _IdTL: integer, tip: varchar(20), opis: varchar(250), LetoProizv: integer, kapaciteta: integer IdLD: integerPRISTANE _IdLE: integer, _IdTL: integer, DatumOd: dateLET: _IdLet: integer, IdTL: integer, IdLE_vzleta: integer, IdLE_pristanka: integer, cas_vzleta: date, cas_pristanka: date, id_pilot: integerREZERVACIJE _IdR: integer, IdLet: integer, Cena: Double, Razred: integer, Ime: varchar(50), Priimek: varchar(50)PILOT _id_pilot: integer, IdLD: integer, Ime: varchar(50), Priimek: varchar(50), DelovnaDoba: integer, StLetov: integerSTEVARDESA _IdS: integer, IdLD: integer ime: varchar(50), Priimek: varchar(50), StLetov: integerLETALSKA_DRUZBA _IdLD:integer

ime naslov Navedena poizvedbena vprašanja predstavite z ustreznim SQL stavkom in pri tem uporabite zahtevane SQL ukaze: a) SQL ukaz: DISTINCT Poizvdbe: - Vsi priimki pilotov b) SQL ukaz: Uporabite MAX kjer je to potrebo Poizvedbe: - Imena in priimki vseh pilotov, ki so že pristali na enem izmed letališč v ZDA (USA). - Številke letal, ki imajo najvišjo kapaciteto.

- Številke letal, ki imajo drugo najvišjo kapaciteto. c) SQL ukaz: UNION ali INTERSECT ali EXCEPT Poizvedbe: - Imena vseh letališč, ki so v ZDA ali pa je na njih pristalo letalo tipa B747. - Imena vseh letališč, ki so v ZDA in je na njih pristalo letalo tipa B747. - IdP vseh pilotov, ki so pilotirali natanko 3 lete. d) SQL ukaz: IN ali NOT IN Poizvedbe: - Imena letalskih družb, ki imajo v lasti letala s kapaciteto večjo od 300. - Imena vseh letališč, na katerih so pristala letala s kapaciteto večjo od 300.

e) SQL ukaz: EXISTS ali ALL Poizvedbe: - Imena vseh letališč, na katerih so pristala letala s kapaciteto večjo od 300. - Imena in priimki pilotov, ki so že pilotirali letala s kapaciteto večjo od 300. - Imena in priimki pilotov, pri katerih je število ur letenja višje od števila ur letenja vsakega pilota z imenom William.

f) SQL ukaz: COUNT ali AVG ali SUM ali MAX ali MIN in druge agregacijske funkcije Poizvedbe: - Število opravljenih letov za posamezne stevardese letalske družbe Adria Airways. - Imena in priimki stevardes, ki so opravile več kot 60 letov pri letalski družbi Adria Airways. - Imena in priimki pilotov, ki so pilotirali samo letala s kapaciteto večjo od 300.

g) SQL ukaz: LEFT JOIN Poizvedbe: - Za letalsko družbo Adria Airways poiščite seznam vseh tipov letal, ki poleg tipa letala vsebuje še število tovrstnih letal (rezultat naj obsega vse tipe letal, tudi če takih letalska družba nima v lasti).

2. NAFTNA DRUŽBA Navedena poizvedbena vprašanja predstavite z ustreznim SQL stavkom in pri tem uporabite zahtevane SQL ukaze:

SERVIS _IdS: integer, Ime: varchar(50), Kraj: varchar(50)ZALOGA _IdTG: integer, _IdS: integer, kolicina: integer TIP_GORIVA _IdTG: integer, ime: varchar(50) TOCILNO_MESTO _IdTM: integer, IdTG: integer, IdS: integer CISTERNE _IdC: integer, SerijskaSt: integer, kapaciteta: integer, LetoIzd: integer, DtServisa: dateNAROCILA _IdN: integer, IdS: integer, St:integer, Datum: date,

Page 36: Osnove Podatkovnih Baz --skripta-- 2010/2011

Kolicina: integerDOBAVA _IdD: integer, IdN: integer, IdC: integer, Datum: date, Kolicina: integer IdV: integerVOZNIK _IdV: integer, Ime: varchar(50), Priimek: varchar(50), StKazni: integerZAPOSLENIBC _IdZ: integer Ime: varchar(50), Priimek: varchar(50) IdS: integer

a) SQL ukaz: DISTINCT Poizvdbe: - Vsi priimki šoferjev. - Datumi vseh dobav (brez ponavljanj).

b) SQL ukaz: Uporabite MAX kjer je to potrebo Poizvedbe: - Imena in priimki vseh zaposlenih na kateremkoli bencinskem servisu v Kopru. - Imena in priimki šoferjev, ki imajo najvišje število kazni. - Imena in priimka šoferjev, ki imajo drugo najvišje število kazni.

c) SQL ukaz: UNION ali INTERSECT ali EXCEPT Poizvedbe: - Številke vseh naročil, ki zahtevajo količino višjo od 10.000 l ali pa so bila izpolnjena z dobavo cisterne, katere leto izdelave je enako 2000. - Številke vseh naročil, ki zahtevajo količino višjo od 10.000 l in so bila izpolnjena z dobavo cisterne, katere leto izdelave je enako 2000. - Imena in priimki vseh šoferjev, ki so sodelovali natanko v 3 dobavah.

d) SQL ukaz: IN ali NOT IN Poizvedbe: - Imena bencinskih servisov, ki imajo več kot 10.000 l zaloge dizelskega goriva. - Številke vseh naročil, za katere je bila opravljena dobava s cisterno, katere kapaciteta je bila večjo od 20.000.

e) SQL ukaz: EXISTS ali ALL Poizvedbe: - Številke vseh naročil, za katere je bila opravljena dobava s cisterno, katere kapaciteta je bila večjo od 20.000. - Imena in priimki šoferjev, ki so že vozili cisterne s kapaciteto večjo od 20.000. - Imena in priimki šoferjev, pri katerih je število kazni višje od števila kazni vsakega šoferja z imenom Kevin.

f) SQL ukaz: COUNT ali AVG ali SUM ali MAX ali MIN in druge agregacijske funkcije Poizvedbe: - Število točilnih mest po posameznih bencinskih servisih. - Imena in priimki šoferjev, ki so opravili več kot 500 dobav. - Imena in priimki soferjev, ki so sodelovali samo pri tistih dobavah, kjer so bile uporabljene cisterne s kapaciteto večjo od 20000.

Page 37: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 38: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Relacijski račun

Iztok Savnik, FAMNIT

OPB, 2009/10

Relacijski račun

• Dva jezika: N-terični relacijski račun (TRC) in Domenski relacijski račun (DRC).

• Izrazi vsebujejo spremenljivke, konstante, primerjalne operacije, logične operacije in kvantifikatorje. – TRC: Spremenljivke so omejene na n-terice.

– DRC: Spremenljivke so omejene na domene atributov.

– TRC in DRC so podmnožice predikatnega računa.

• Izraze teh jezikov imenujemo formule. N-terico, ki je odgovor

na vprašanje dobimo tako, da prostim spremenljivkam

priredimo konstante tako, da je vrednost formule enaka true.

OPB, 2009/10

Domenski relacijski račun

• Vprašanje ima obliko:

x x xn p x x xn1 2 1 2, ,..., | , ,...,!

"

###

$

%

&&&

'

()

*)

+

,)

-)

!!Odgovor vsebuje n-terice

za katere vrne izraz vrednost true.

x x xn1 2, ,...,p x x xn1 2, ,...,!

"

###

$

%

&&&

!!Izraz je rekurzivno definiran na osnovi

enostavnih atomičnih izrazov (referenciranje

n-teric v relacijah; primerjanje atributov),

ki se lahko gradijo v bolj kompleksne izraze z

logičnimi operacijami.OPB, 2009/10

DRC Formule

• Atomična formula:– , ali X op Y, ali X op const

– op je lahko

• Formula:– atomična formula, ali

– , kjer so p in q formule, ali

– , kjer je sprem. X prosta v p(X), ali

– , kjer je sprem. X prosta v p(X)

• Uporaba kvantifikatorjev in poveže sprem. X.

– Spremenljivka, ki ni povezana je prosta.

x x xn Rname1 2, ,..., .< > = / 0 1, , , , ,

¬ 2 3p p q p q, ,4X p X( ( ))5X p X( ( ))

4 X 5 X

Page 39: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Proste in vezane spremenljivke

• Uporaba kvantifikatorjev in v formuli

izvrši povezovanje X.

– Spremenljivka, ki ni vezana je prosta.

• Poglejmo spet definicijo izraza (vprašanja):

! X " X

x x xn p x x xn1 2 1 2, ,..., | , ,...,#

$

%%%

&

'

(((

)

*+

,+

-

.+

/+

!!"#$#%&'("#$)*+$,-((./0$#$&1)*,2$(345(6665(3&(2*(.$(&'7')')"(&'(1$,"("8(9:;(."($8*&$(./0$#$&1)*,2$5(2*(."(1'72"(/0".+$(,(<"0#=1*(/>666?6

OPB, 2009/10

Poišči vse mornarje, ki imajo oceno

več kot 7

• Pogoj zagotavlja da so

domenske spremenljivke I, N, T in A povezane z

domenami atributov n-teric relacije Mornarji. • Izraz na levi strani `|’ (beremo: “tako

da”) pravi, da je vsaka n-terica , ki

zadošča T>7 v odgovoru.

• Spremeni izraz za odgovor na:

– Poišči vse mornarje, ki so starejši od 18, imajo oceno

pod 9, in jim je ime ‘Janez’.

+/

+.-

+,

+*) >01><>< 7,,,|,,, TMornarjiATNIATNI

MornarjiATNI >1< ,,,

I N T A, , ,I N T A, , ,

OPB, 2009/10

Poišči mornarje z oceno > 7, ki so

rezervirali ladjo #103

• Uporabili smo kot okrajšavo

za

• Kvantifikator je bil uporabljen za povezovanje

(Stik) n-teric iz relacije Rezervacije z n-tericami iz

relacije Mornarji.

+,

+*) 0>01><>< 7,,,|,,, TMornarjiATNIATNI

+/

+.-

(((

'

&

%%%

$

# =0=01><! 103Re,,,, BrIIrzervacijeDBrIrDBrIr

( )! Ir Br D, , . . .( )( )( )! ! !Ir Br D . . .

!

OPB, 2009/10

Poišči vse mornarje z oceno > 7, ki so

rezervirali rdečo ladjo.

• Oklepaji kontrolirajo področje povezovanja

kvantifikatorja .

• Izrazi delujejo kompleksno vendar uporabniški

vmesnik (MS Access, QBE) na osnovi DRC je

intuitiven.

+,

+*) 0>01><>< 7,,,|,,, TMornarjiATNIATNI

%%

$

# 0=01><! IIrzervacijeDBrIrDBrIr Re,,,,

+/

+.

-

(((

'

&

(((

'

&

%%%

$

# =0=01><! rdecaCBrBLadjeCBNBCBNB ,,,,

Page 40: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Poišči mornarje, ki so rezervirali vse

ladje.

• Poišči vse mornarje I tako, da za vsako 3-terico

velja, da bodisi ni v relaciji Ladje ali pa

obstaja n-terica v relaciji Rezervacije, ki pokaže, da

je dani mornar I rezerviral to ladjo.

!"

!#$ %&><>< MornarjiATNIATNI ,,,|,,,

'&><¬()))

*

+

,,,

-

.

)))

*

+ LadjeCBNBCBNB ,,,,

!/

!0

1

,,,

-

.

,,,

-

.

,,

-

.

))

*

+

))

*

+ =%=%>&<2 BBrIrIzervacijeDBrIrDBrIr Re,,,,

B BN C, ,

OPB, 2009/10

Poišči mornarje, ki so rezervirali vse

ladje (spet!)

• Enostavna notacija, isto vprašanje. (Bolj čisto!)

• ... mornarje, ki so rezervirali vse rdeče ladje:

!"

!#$ %&><>< MornarjiATNIATNI ,,,|,,,

LadjeCBNB &><( ,,

!/

!0

1

,,,

-

.

)))

*

+

,,

-

.

))

*

+ =%=&><2 BBrIrIzervacijeDBrIr Re,,

!/

!0

1

,,,

-

.

)))

*

+

,,

-

.

))

*

+ =%=&><2'3 BBrIrIzervacijeDBrIrrdecaC Re,,!!!!!

OPB, 2009/10

Varni izrazi & Izrazna moč

• Mogoče je zapisati korekten izraz relacijskega

računa, ki ima neskončno število odgovorov.

Pravimo, da takšni izrazi niso varni.

– Primer:

• Znano je, da lahko vsak izraz relacijske algebre

prevedemo v varen izraz relacijskega računa

(DRC/TRC); obratno je tudi res.

• Relacijska kompletnost: Povpraševalni jezik (npr.

SQL) lahko izrazi vsako vprašanje,ki ga lahko

izrazimo z relacijsko algebro ali računom.

!/

!0

1

!"

!#

$

,,,

-

.

)))

*

+ &¬ MornarjiSS|

OPB, 2009/10

Povzetek

• Relacijski račun je deklarativen (ne-

proceduralen); uporabniki definirajo vprašanja

tako, da zapišejo kaj želijo in kako naj sistem

poišče rezultat.

• Algebra in varni izrazi relacijskega računa

imajo enako izrazno moč; dobimo razred

jezikov “relacijska kompletnost”.

Page 41: Osnove Podatkovnih Baz --skripta-- 2010/2011

Relacijski račun

1. Relacijski račun - LETALSKI POTNIŠKI PROMETVzemimo naslednjo shemo:

LETALISCA _IdLE: integer, ime: varchar(30), kraj: varchar(50), drzava: varchar(50)TIP_LETALA _IdTL: integer, tip: varchar(20), opis: varchar(250), OznakaProizv: varchar(20)PRISTANE _IdLE: integer, _IdTL: integer, DatumOd: date

Atributi, ki predstavljajo ključ so podčrtani. Relacija PRISTANE vsebuje podatke o tem, kateri tipi letal lahko pristanejo na posameznih letališčih in od kdaj.

Zapišite naslednje poizvedbe v relacijskem računu (DRC).

a) Poišči vsa imena letališč, na katerih lahko pristane letalo tipa B747. b) Poišči vse IdLE letališč, na katerih lahko pristane letalo tipa B747 ali B748. c) Poišči vse IdLE letališč, ki so ali v Avstriji ali pa na njih lahko pristane letalo tipa B747. d) Poišči vse IdLE letališč, na katerih lahko pristane letalo tipa B747 in tipa B748. e) Poišči vse IdLE letališč, na katerih lahko pristanejo vsi tipi letal.f) Poišči vse IdLE letališč v Avstriji, ki na njih lahko pristane letalo tipa B747.

2. Relacijski račun – NAFTNA DRUŽBAVzemimo naslednjo shemo:

CISTERNE _IdC: integer, SerijskaSt: integer, kapaciteta: integer, DtServisa: dateNAROCILA _IdN: integer, St:integer, Datum: date, Kolicina: integerDOBAVA _IdN: integer, _IdC: integer, Datum: date, Kolicina: integer Atributi, ki predstavljajo ključ so podčrtani. Relacija DOBAVA vsebuje podatke o opravljenih dobavah oz. prevozih cistern za izpolnitev posameznih naročil. Za izpolnitev enega naročila je lahko potrebno tudi več dobav oz. prevozov.

Zapišite naslednje poizvedbe v relacijskem računu (DRC).

a) Poišči vse številke naročil, za katere je pri dobavi goriva sodelovala cisterna s serijsko številko 123456.

b) Poišči vse IdN naročil, ki jih je izpolnila cisterna s serijsko številko 123456 ali 123457. c) Poišči vse IdN naročil, ki ali zahtevajo količino 10.000 enot ali pa jih je izpolnila cisterna s serijsko številko 123456. d) Poišči vse IdN naročil, ki jih je izpolnila cisterna s serijsko številko 123456 in cisterna s serijsko številko 123457.

3. Relacijski račun – SPLETNI FORUMVzemimo naslednjo shemo:

UPORABNIK _idu uporabniško_ime geslo enaslov vlogaUPORABNIK_VLOGA _idu _idvVLOGA _idv naziv (vzdrževalec,navaden uporabnik, ….)FORUM _idf ime_forum idu (vzdrževalec foruma)OBJAVA _ido idf (h kateremu forumu spada objava) idu (uporabnik objave) datum naslov vsebina ido_o (parent objava) Atributi, ki predstavljajo ključ so podčrtani.

Zapišite naslednje poizvedbe v relacijskem računu (DRC).

a) Najdi vse uporabnike, ki niso administratorji b) Poišči vse uporabnike, ki vnesli objavo v forum s številko 1 c) Izpiši vsa imena forumov pri katerih je vzdrževalec oseba z imenom Janezd) Izpiši objave iz foruma z imenom "Splošno", ki so bile objavljene pred 1. 12. 2010

Page 42: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 43: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Query-by-Example (QBE)

Iztok Savnik, FAMNIT

OPB, 2009/10

QBE: Uvod

• “GUI” za poizvedovanje

– Osnovan na domenskem relacijskem računu!

– Narejen pred GUI.

– Zelo primeren za enostavna vprašanja

– Neroden za kompleksna vprašanja

• QBE - IBM trademark.

– Vplival na veliko projektov

– PC DB: Paradox, Access, …

OPB, 2009/10

Primeri tabel za QBE

Boats bid bname color

Sailors sid sname rating age

Reserves sid bid day• Uporabniki definirajo

vprašanja s primeri tabel, ali skeleti.

OPB, 2009/10

Osnove

Sailors sid sname rating age

P._N P._A

• Izpiši vsa imena mornarjev

! !"#$%$&'()&*+,-.,/)&"&,.0$-1&2&3&'&-.,.%4./+4)*&',(0-)*&,)56&#+&&7,.0$-18&.1)9:

Sailors sid sname rating age

P. AO(1). >8 AO(2).

!;<=&'(0.'$&6-$>.0-)&-+')&(#,)*)-?/$'>)&'&#,."-)&(0+?#@)A&&!(0$&(0.')>&'&BCC&7D,)"&6,)/)-+(0$9:{ }I N T A I N T A Sailors T, , , | , , , ! " > 8

Page 44: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

And/Or vprašanja

Sailors sid sname rating ageP. < 30P. > 20

• Imena mornarjev, ki so mlajši od 30 ali starejši od 20:

! Imena mornarjev, ki so mlajši od 30 in starejši od 20:

Sailors sid sname rating age_Id P. < 30_Id P. > 20

! Imena mornarjev, ki so mlajši od 30 in imajo rating > 4:

Sailors sid sname rating age_Id P. > 4 < 30

OPB, 2009/10

Duplikati

Sailors sid sname rating ageUNQ. P. < 30

• Ena vrstica vsebuje P: duplikati niso izločeni

privzeto; izločenje dosežemo z UNQ.

Sailors sid sname rating ageALL. _Id P. < !"

_Id P. > #"

!!"#$$%&'()*$+$,-$$./01)23()$'4$)+14#"5)$0&)%+"(46$13724$0&"0&"#)84$)+14#"59"$./01)23(4%$+$:;;<

OPB, 2009/10

Vprašanja s stikom

Sailors sid sname rating age_Id P._S > #$

Reserves sid bid day_Id ‘ / / ’% #& '(

• Imena mornarjev, ki so rezervirali ladjo za dan

8/24/96 in so starejši od 25 (datumi in nizi imajo

narekovaje):

!=()2$9"$.">)5)&35$+$/9"8394#)83$'0&"8"19)%2383<

OPB, 2009/10

Stiki

• Barve ladij z imenom “Interlake”, ki so jih

rezervirali mornarji za dan 8/24/96 in so starejši od

25 :

Sailors sid sname rating age _Id > 25

Reserves sid bid day _Id _B ‘8/24/96’

Boats bid bname color _B ‘Interlake’ P.

Page 45: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Stik

Sailors sid sname rating age

_Id P. P.

Reserves sid bid day

22 _B

_Id _B

• Imena in starost mornarjev, ki so rezervirali ladjo, ki

jo je rezerviral mornar z sid = 22:

OPB, 2009/10

Neimenovani stolpci

Sailors sid sname rating age

_Id P. _R _A P._D P.(_R/_A)

Reserves sid bid day

_Id _D

• Uporabno, če želimo izpisati rezultate nekega izraza

ali natiskati polja iz dveh relacij.

– Nekateri QBE dovoljujejo P. v samo eni tabeli !

OPB, 2009/10

“Negativne tabele”

• Negacijo damo pod imenom relacije:

Sailors sid sname rating age

_Id P._S

Reserves sid bid day

_Id _B¬

OPB, 2009/10

Agregacija

Sailors sid sname rating age

G. G.P.AO _A P.AVG._A

• QBE podpira AVG, COUNT, MIN, MAX, SUM

– Nobena operacija ne eliminira duplikatov, razen COUNT

– Imamo tudi AVG.UNQ. ...

!!"#$%&'()(*+(,#(-.#/%012(%#$345(6,7(80"7.'&7(')(,9/%'87(':43#(',"#(6.7;8#,"(')1.48'<(4".'1/"#6+

=>%&'3,94(/%#.414(+?>(/.7;'(#;-#6#.7+

=@,49(,"#$%7&()(A+(:#.4(':7"'(*+(4$'(4-.7-4&'3,9#(#%7.4&'3#+(

Page 46: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Ločeni pogoji

Sailors sid sname rating age

G.P. _A

CONDITIONS

AVG._A > !"

• Ločene pogoje uporabimo za izražanje zvez med več relacijami oz. stolpci različnih relacij.

• Lahko izražamo pogoje za skupino n-teric podobno stavku HAVING v SQL:

!!"#$%$&'()*+,+'(-)")./0)1&)234

Sailors sid sname rating age

P. _A

CONDITIONS

20 < _A AND _A < 30

OPB, 2009/10

Poišči mornarje, ki so rezervirali vse ladje

Sailors sid sname rating age

P.G._Id

CONDITIONS

COUNT._B1= COUNT._B2

• Vprašanje z deljenjem• Potrebovali bomo agregacijske operacije (in update).

Reserves sid bid day

_Id _B1

!5$6+)7$86+)9*#(:(&1:+)-*#$;$&'(<)=$)1"*1;()1:(&$):+#&$#'(-<)61)9+)#("(#-1#$71)-9()7$='(>

Boats bid bname color

_B2

OPB, 2009/10

Vstavljanje zapisov

Sailors sid sname rating age

I. _Id _N _A

CONDITIONS

_A > 18 OR

_N LIKE ‘C%’

• Vstavljanje enega zapisa:

Students sid name login age

_Id _N _A

!?9@$-7'$&'()-(A)"$*19+-)B#$@1&,)'()&C77)-)9*+=&'18)"$*1918D4

Sailors sid sname rating age

I. 74 Janice 7 14

OPB, 2009/10

Brisanje in update

Sailors sid sname rating age

_Id < 4

• Pobriši vse rezervacije za mornarje, ki imajo rating < 4

Reserves sid bid day

D. _Id

!E+-(A$')"$)(&+)9@$#+9@):+#&$#'$<)61)1:$)91=)F)GH Sailors sid sname rating age

74 U._A+1

Page 47: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Omejitve pri popravljanju zapisov

• Ne moremo mešati I., D. in U. v enem primerku tabele

• I., D. in U. ne moremo kombinirati z P. in G.• Ne moremo vstavljati, popravljati ali spreminjati n-

teric z vrednostmi iz stolpcev iz ostalih n-teric iste tabele.

Sailors sid sname rating agejohn _Ajoe U._A+1

!"#$%&%'"()*&$+,"'&+,)$(+-.$/&-01,"'&+,$2",-'-3"$/&.4"$4"#$5%&'"6)*&0 OPB, 2009/10

Poišči mornarje, ki so rezervirali vse ladje (Spet!)

Sailors sid sname rating age_Id P._S

Reserves sid bid day_Id _B

• Hočemo poiskati mornarje _Id tako, da ne obstaja ladja _B, ki je nebi rezerviral _Id:

Boats bid bname color_B ¬¬

!!-7-3"74&$(%'"8"4#-9$$1%'-*-47#)(2"$:;$+-$4-$%&#"()$($%&<),)(4)$('+,)=)>$

!?$2"284-*$('+,4-*$'-@5$4"#$+-$&6'"(4"("#&$4-3",)(4-$('+,)=-0

OPB, 2009/10

Uporaba pogledov

Sailors sid sname rating age_Id P._S

Reserves sid bid day_Id _B

• Poišči mornarje, ki niso rezervirali neko ladjo _B:

Boats bid bname color_B ¬

BadSids sidI. _Id

!A&)8B)$*&'4"'#-C$2)$4)+&$($4-2)$*4&D)=)E

Sailors sid sname rating age_Id P._S

BadSids sid_Id¬

OPB, 2009/10

MS Access

Page 48: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Povzetek

• QBE je eleganten, prijazen do uporabnika

• Jezik osnovan na relacijskem računu

• Jezik je izrazen in relacijsko kompleten

• Enostavna vprašanja in enostavna sintaksa

• Vpliv na različna grafična orodja

– Borland’s Paradox

– Microsoft’s Access.

Page 49: Osnove Podatkovnih Baz --skripta-- 2010/2011

1. SQL in QBE na tablo in phpmyadmin

POGLEJ SLIKO ZA RELACIJSKI MODEL PODATKOVNE BAZE

2. Z uporabo QBEja na tabli in znotraj phpMyAdmin vmesnika, izvedi naslednje poizvedbe:

a) Izpiši vse vrstice pilotov, ki se jim priimek začne na B b) Izpiši vse vrstice letališč, ki imajo predzadnjo črko imena (naziva) r in niso iz države Slovenija c) Izpiši vsa letala (oznaka), ki imajo kapaciteto manjšo od 170 d) Izpiši imena in priimke vseh pilotov, ki so pristali v državi Italija e) Najdi pilote ki so pilotirali vsa letala f) Za vsakega pilota, izpiši ime, priimek in naziv letalske družne pri kateri je zaposlen g) Izpiši letalske družbe, ki nimajo v lasti DC9

3. Zapiši naslednje poizvedbe v SQLu z uporabo ORDER BY, GROUP BY, HAVING, COUNT, JOIN, kjer je potrebno.

a) Izpiši imena in priimke ter število letov pilotov. Izpis naj bo urejen naraščajoče po priimkih b) Za vsakega pilota (ime, priimek) izpiši vsa letala (opis) s katerimi so leteli, pri čemer za vsakega pilota izpiši vsak tip samo enkrat c) Izpiši imena držav in števila letališč po državah padajoče (od Z proti A) brez duplikatov d) Preštej število letal, ki imajo kapaciteto med 200 in 300 e) Izpiši ime države z največ letališč f) Izpiši pilote (ime, priimek) in število letal, za vse pilote, ki so pilotirali več kot dva leta g) Izpiši letala, ki so jih pilotirala dva pilota. h) Za vsak let (idle vzleta, idle pristanka) izpiši stevardeso. Izpis leta naj se izpiše tudi če na njem ni bilo stevardese - uporabi LEFT JOIN

Page 50: Osnove Podatkovnih Baz --skripta-- 2010/2011

-- phpMyAdmin SQL Dump-- version 3.2.2.1deb1-- http://www.phpmyadmin.net---- Host: localhost-- Generation Time: Jan 28, 2010 at 02:19 PM-- Server version: 5.1.37-- PHP Version: 5.2.10-2ubuntu6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;

---- Database: `baze_podatkov`--

-- --------------------------------------------------------

---- Table structure for table `is_drzava`--

DROP TABLE IF EXISTS `is_drzava`;CREATE TABLE IF NOT EXISTS `is_drzava` ( `iddrzava` int(11) NOT NULL AUTO_INCREMENT, `naziv` varchar(50) NOT NULL, PRIMARY KEY (`iddrzava`)) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=3 ;

---- Dumping data for table `is_drzava`--

INSERT INTO `is_drzava` (`iddrzava`, `naziv`) VALUES(1, 'Slovenija'),(2, 'Avstrija');

-- --------------------------------------------------------

---- Table structure for table `is_letalisce`--

DROP TABLE IF EXISTS `is_letalisce`;CREATE TABLE IF NOT EXISTS `is_letalisce` ( `idle` int(11) NOT NULL AUTO_INCREMENT, `naslov` varchar(50) NOT NULL, `naziv` varchar(50) NOT NULL, `iddrzava` int(11) NOT NULL, PRIMARY KEY (`idle`), FOREIGN KEY (`iddrzava`) REFERENCES is_drzava(`iddrzava`) ON DELETE RESTRICT) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=3 ;

---- Dumping data for table `is_letalisce`--

INSERT INTO `is_letalisce` (`idle`, `naslov`, `naziv`, `iddrzava`) VALUES(1, 'Ljubljana', 'Ljubljana', 1),(2, 'Dunaj', 'Dunaj', 2);

-- --------------------------------------------------------

---- Table structure for table `is_letalska_druzba`--

DROP TABLE IF EXISTS `is_letalska_druzba`;CREATE TABLE IF NOT EXISTS `is_letalska_druzba` ( `idld` int(11) NOT NULL AUTO_INCREMENT, `naziv` varchar(50) NOT NULL, `iddrzava` int(11) NOT NULL, `naslov` varchar(50) NOT NULL, PRIMARY KEY (`idld`), FOREIGN KEY (`iddrzava`) REFERENCES is_drzava(`iddrzava`) ON DELETE RESTRICT) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=3 ;

---- Dumping data for table `is_letalska_druzba`--

INSERT INTO `is_letalska_druzba` (`idld`, `naziv`, `iddrzava`, `naslov`) VALUES(1, 'adria airways', 1, 'ljubljana'),(2, 'lufthansa', 2, 'dunaj');

-- --------------------------------------------------------

---- Table structure for table `is_piloti`--

DROP TABLE IF EXISTS `is_piloti`;CREATE TABLE IF NOT EXISTS `is_piloti` ( `idp` int(11) NOT NULL AUTO_INCREMENT, `ime` varchar(50) NOT NULL, `priimek` varchar(50) NOT NULL, `idld` int(11) NOT NULL, PRIMARY KEY (`idp`), FOREIGN KEY (`idld`) REFERENCES is_letalska_druzba(`idld`) ON DELETE RESTRICT) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=3 ;

---- Dumping data for table `is_piloti`--

INSERT INTO `is_piloti` (`idp`, `ime`, `priimek`, `idld`) VALUES(1, 'Razem', 'Predjamski', 1),(2, 'Janez', 'Kranjski', 2);

-- --------------------------------------------------------

---- Table structure for table `is_stevardese`--

DROP TABLE IF EXISTS `is_stevardese`;CREATE TABLE IF NOT EXISTS `is_stevardese` ( `ids` int(11) NOT NULL AUTO_INCREMENT, `ime` varchar(50) NOT NULL, `priimek` varchar(50) NOT NULL, `idld` int(11) NOT NULL, PRIMARY KEY (`ids`), FOREIGN KEY (`idld`) REFERENCES is_letalska_druzba(`idld`) ON DELETE RESTRICT) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=3 ;

---- Dumping data for table `is_stevardese`

Page 51: Osnove Podatkovnih Baz --skripta-- 2010/2011

--

INSERT INTO `is_stevardese` (`ids`, `ime`, `priimek`, `idld`) VALUES(1, 'Brina', 'Sezase', 1),(2, 'Ivy', 'Testisnu', 2);

-- --------------------------------------------------------

---- Table structure for table `is_tip_letala`--

DROP TABLE IF EXISTS `is_tip_letala`;CREATE TABLE IF NOT EXISTS `is_tip_letala` ( `idtip` int(11) NOT NULL AUTO_INCREMENT, `oznaka` varchar(50) NOT NULL, PRIMARY KEY (`idtip`)) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=5 ;

---- Dumping data for table `is_tip_letala`--

INSERT INTO `is_tip_letala` (`idtip`, `oznaka`) VALUES(1, 'A380'),(2, 'DC9'),(3, 'DC8'),(4, 'Boeing 373');

-- --------------------------------------------------------

---- Table structure for table `is_letala`--

DROP TABLE IF EXISTS `is_letala`;CREATE TABLE IF NOT EXISTS `is_letala` ( `idl` int(11) NOT NULL AUTO_INCREMENT, `idld` int(11) NOT NULL, `idtip` int(11) NOT NULL, `kapaciteta` int(11) NOT NULL, PRIMARY KEY (`idl`), FOREIGN KEY (idld) REFERENCES is_letalska_druzba(idld) ON DELETE RESTRICT, FOREIGN KEY (idtip) REFERENCES is_tip_letala(idtip) ON DELETE RESTRICT) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=6 ;

---- Dumping data for table `is_letala`--

INSERT INTO `is_letala` (`idl`, `idld`, `idtip`, `kapaciteta`) VALUES(1, 1, 1, 150),(2, 1, 1, 150),(3, 1, 2, 250),(4, 2, 3, 150),(5, 1, 2, 250);

-- --------------------------------------------------------

---- Table structure for table `is_leti`--

DROP TABLE IF EXISTS `is_leti`;CREATE TABLE IF NOT EXISTS `is_leti` (

`idlt` int(11) NOT NULL AUTO_INCREMENT, `idl` int(11) NOT NULL, `idp` int(11) NOT NULL, `ids` int(11) NOT NULL, `idle_vzleta` int(11) NOT NULL, `idle_pristanka` int(11) NOT NULL, PRIMARY KEY (`idlt`), FOREIGN KEY (`idl`) REFERENCES is_letala(`idl`) ON DELETE RESTRICT, FOREIGN KEY (`idp`) REFERENCES is_piloti(`idp`) ON DELETE RESTRICT, FOREIGN KEY (`ids`) REFERENCES is_stevardese(`ids`) ON DELETE RESTRICT, FOREIGN KEY (`idle_vzleta`) REFERENCES is_letalisce(`idle`) ON DELETE RESTRICT, FOREIGN KEY (`idle_pristanka`) REFERENCES is_letalisce(`idle`) ON DELETE RESTRICT) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=5 ;

---- Dumping data for table `is_leti`--

INSERT INTO `is_leti` (`idlt`, `idl`, `idp`, `ids`, `idle_vzleta`, `idle_pristanka`) VALUES(1, 3, 1, 1, 1, 2),(2, 1, 2, 2, 1, 2),(3, 2, 1, 1, 2, 1),(4, 4, 2, 2, 2, 1);

-- --------------------------------------------------------

---- Table structure for table `is_rezervacija`--

DROP TABLE IF EXISTS `is_rezervacija`;CREATE TABLE IF NOT EXISTS `is_rezervacija` ( `idr` int(11) NOT NULL AUTO_INCREMENT, `cena` int(11) NOT NULL, `idlt` int(11) NOT NULL, PRIMARY KEY (`idr`), FOREIGN KEY (`idlt`) REFERENCES is_leti(`idlt`) ON DELETE RESTRICT) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=5 ;

---- Dumping data for table `is_rezervacija`--

INSERT INTO `is_rezervacija` (`idr`, `cena`, `idlt`) VALUES(1, 81000, 1),(2, 70000, 2),(3, 82000, 3),(4, 83000, 4);

Page 52: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 53: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-+%+.%/01213-3

4512-%607.+-$%89:;4<

!"#$%&'(')((%%%%%%%%

*+,-+%+.%/01213-3%

= 6">#%,[email protected]%C2/01-3%.0%1@/+?%/+,-+?D= <2%+E0%73F+-2%C2,F3/+G%.0%50,.272%6>"#%H

! IJ9*K%[email protected],%C2/01-27%E3/%1@/+E%/+,-2E%+.%I9:D! LI4<JK%[email protected],%E3/%I9:%.0%/+,-D! !M3%7@,1+%2C3@0G+A%,10%N0,27.2%C21@01.+$%5012%,3%E2@0%

.A+?270%BC2@0M0%CF0.+@01+%C05FA+72H

!"#$%&'(')((%%%%%%%%

O0-0A%,3%7,3P0%.3%,?@0.+%7%/+.0E+N.+%,C2E+.Q

= !"#$#%&'()*#+(D%%R S(''%T%UV#%I9:%%%(%&%%W,-2@0AX%(<#%/+,-D

= ,&+(-&.+&)/01-&+)+#)12"(+3()014(5'1$D%%Y3F+E2%+E31+%,[email protected]%C2/01-3%E3/%73N+E+%,3A0E+%,%6>"#D%W!N+1.2HX

= <+C+N.0%?+3@0@?+A0%C2E.+F.+-27K! *+.0E+N.+%,C2E+.%WI9:X%50%/[email protected]%/3F2%,%C2/01-+D! *+,-%50%PF07.2%C2/01-27.2%M052D! <@0-27+%50%0@[email protected]%,10@3AZ+?%73@5+A%C2/01-27D%

!"#$%&'(')((%%%%%%%%

*+,-+

= "3@,+,13.1.2%,[email protected]%C2/01-27D%%= VF07.0%C@3/.2,1%C@3/%1@0-27+K%%4&"#'5#+)

41/510%7,D%/#'$#+.+&D= "2/01-+%,3%,[email protected]%+.%[email protected]%7%3.210?$%

-+%A+?%+E3.BA3E2%4&/'1$+&)6%1'&)0F+%/5"(+&D= [0,%C21@3M3.%50%/2,12C%/2%C2/01-27%A3%

2/7+,3.%2/%F2-0G+A3%C2/01-27%.0%/+,-BD%%! "2F2\0A%C2/01-27%.0%/+,-B%+E0%7CF+7%.0%?+1@2,1%

/3F270.A0%6>"#H

Page 54: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-+./.0/%12345

!"#$%&

!!"#$%&'!('!)*+,-$!./*0!12!)*3(0

'(

!!4$56!('!/*'7,56!.$+'*!,.!)'.!(!&,7!/$8,9,$.,*67$!:#6)$!.6;!(#';7,0!<#';,!/$;!:#6)67,!,7'.=-'7$!!"#"$%&'(!

)"*+*

!,&-./0,#/&

1#/*

!!>*6.-'3/,(6.-'!/$+'56!(67$!/*'5$!'.'!:#6)'!)!;6.'7!+*'.=+5=0

2"&3

2&/4#,

!)*#+,")($!('(+6)#-'.,!,8!)'&,?!-&,.+'/&0)@5,!($!A,5(.,B0

!"#$%&'(')((%%%%%%%%

6+30+-%1+%1234+7./%3085.2

9 :53%1+30+-5%;8/51)<820/=%1+%>?+45@" !"#$%#&"'("$;-8/,24%8+4/)A?57/%.5%B/?C/.+%3?/1=" )*+",%(#&"$-"&"#'%+./$;D545.C/%.5%>?+4%-+1%A?57+=" !"#$0).'*#"$;-8/.+3%-+150+7%2E).5%-+78FC/%-?+FD/=

9 :53%2345.C5%2.%8+05G2C345%E5453.20/7%-8/7?51HC/05I" :53%2345.C5%3/%3-8/,2.C5%+1%(%1+%&',3/G" J+05G2C345%E5453.20/7%3/%3-8/,2.C5%+1%'%0+%(',3/G" :53%-8/.+35%C/%02-2D.+%(,3/G%E5%K*#%3085.

9 *?CHD%E5%,5.CF+%L)!%G/.+@%M E,5.CF502%D53%2345.C5%)%8+0I%E5453.20/7N%%M O581<58/%73I%3+P0<58/%8/F20/7Q

!"#$%&'(')((%%%%%%%%

"82,/8@%L#R%6/343058ST/%L#R%6/343058%(KU"VI%

9 WIX%2.GT$%(KIK%U#%%

9 :53%2345.C5@%%YI(%,2??23/G+.1%;,3/G=

9 J505G2C345%E5453.20/7@%%KI(Z%,3/G

9 "8/34+4%,/1%3?/1,2@%%&I&%,3/G

9 R5432,5?/.%2345?.2%D53@%%(XIX%,3/G

9 X%17+[3085.342T%-?+FD$%42%3/%7802C+%Z$&''%780I),2.%

9 "?+FD5%73/>HC/%WIWX%U#%-+1504+7$%A+30+05%C/%&I\%A2A5>20)2.GT&I%

9 O208+30%-8/.+35%C/%GG5I%(W%R#)3

"82,/8C575@

9 6+30+-%1+%12345%C/%GG5I%('%,3/G3

9 6+30+-%1+%A?57./A5%3-+,2.5%GG5I%\'%.5.+3/G+.13N

!"#$%&'(')((%%%%%%%%

"82,/8@%66J

]05.1581%^?+G4%^_G?/[02,/%L)![#H3[G?+G4%6505[085.3P/83)3%`66a[7+?0%%%R+1H?/%%%%"/54[085.3P/8[850/

66J[&''%(''%ROE% ('%.3% (''%ROE% &''%R2??2+.% &IXb'I&%`% "^[(\''% (\''%R#)3

66J[&\\%(WW%ROE% ZIX%.3% (WW%ROE% &\\%R2??2+.% &IXb'I&%`% "^[&(''% &(''%R#)3

66J[WWW%(\\%ROE% \%.3%%% (\\%ROE% WWW%R2??2+.% &IXb'I&%`% "^[&Z''% &Z''%R#)3

66J[K''%&''%ROE% X%.3%%%%%%%%%&''%ROE% K''%R2??2+.% &I\b'I(%`% "^[W&''% W&''%R#)3

Page 55: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-./,0%123430%56%-.748

9 :35;,</=%>5!"#$%&'!?%7/+65=%%! #234.%56%.7/.%72,-.$%4.%72,-.@3%! #234.%56%.7/,A%;.2.5-+8$%4.%72,-.@3%! #234.%56%737,-5,A%;.2.5-+8B%

9 #234.%,5,%-6/3/,4,%56@%1.%1.2.%3+C65.D.+65.%7,40,5E53%56%-.748%FC2,-,%56%>5672,-5@.?G$%-6%7,%A.5.A.D.+6%E67%.7465@6%.5%+3/6;.@746%D64675./,0B

9 H,0,5E53%74,5.+65@,=%()!&'$*+&!,)$'**/@B%0,E%7,40,5E5.I%7/+65.%7,%<+,1,+,%056<+,@J%<+.-31./,0%56%E678K

!"#$%&'(')((%%%%%%%%

LMNO

9 O.743053%<32@,%F-.74%6++6PGBQ R,E%-.7430%8+,@,5.I%0%<32@,$%4.%3A3C3E6%617/+64;.@3=%<32@,%@,%

0.-,/.%43/%,5%76A%0,2.4%-.74B%

9 S.2@.=%<30,E6/.%<,+T3+A657,%.5%D65,[email protected]/B%9 O0,%375305.%/,I5.4.=

! "3-6/4305.%<6730.%F7/+.<7G=%"3-6/4.%73%+6D-,2@,5.%<3%-.74.I%<3%<6730.IJ%0,2.437/%<676%7,%.A,58@,%U<673056%,53/6VB

! L,-85-65;6=%R,E%-.7430%WX%0,E%56<64B%L,-85-65/56%.5T3+A6;.@6%3A3C3E6%+,4357/+84;.@3%<3-6/430$%E,%7,%-.74%<3406+.B%

!"#$%&'(')((%%%%%%%%

LMNO%Y.03@.

9 Y.03%'=%Y.%+,-85-65;,B9 Y.03%(=%Z+;62@,5@,%F-0,%.-,5/.E5.%43<[email protected]

! R764%-.74%.A6%D+;6253%43<.@3B! "6+62,253%1+65@,J%<.765@,%-,28@,%56-%-0,A.%-.74.B! [647.A62,5%<+,537%W%<+,537%,5,C6%-.746B%

9 Y.03%'\(=%"6730.%.5%D+;62@,5@,B! RD<3+,-53%1+65@,J%<.765@,%-,28@,%56-%-0,A.%-.74.B%! [647.A62,5%<+,537%W%748<,5%<+,/34B%

!"#$%&'(')((%%%%%%%%

LMNO%Y.03@.%

9 Y.03%]=%"6+./,/6%U<3%1./.IVB! "673056%,53/6=%^5%1./B%^5%-.74%D6%<+,0,+@65@,B! R7643%<.765@,)1+65@,%042@8E8@,%07,%-.74,J%-.743053%<32@,%26I43%

<+3;,7.+6%,53%D6I/,03%0%-65,A%/+,58/48B%

9 Y.03%_=%"6+./,/6%U<3%1234.IVB! "673056%,53/6=%^5%-.74305.%1234B%^-,5%-.74%D6%<+,0,+@65@,B! "6+62,253%1+65@,%D6%A65@`,%D6I/,0,$%0,E@,%D6I/,0,%26I43%

8<3+61.@3%<325%<+,/34B%! ".765@,%042@8E8@,%7<+,A,5@,5%1234%.5%-.74%D6%<+,0,+@65@,B%

9 Y.03%a=%"3+6D-,2@,56%<6+./,/6%U<3%1234.IV! "3-3153%LMNO%_J%<6+./,/5.%1234%@,%<3+6D-,2@,5%<3%0,E.I%-.74.I

Page 56: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-%.%/012-3405%67-18-7-5

9 :;<40=<0%403-%>?"#%/+,;%.%/012-3405%6-540,40@205%67-18-7-5A

9 B0@<0%403-<0%.;C8+3;<-%-/%8+D;%403-<;E! ;,-2;F0<-)/+G;,-2;F0<-%187;40! H7;4<+%)601;4<+%187;40

9 I;C8+3+%6-%!"#$"%&'(187;40%5-7;%H080%0.37@+4;%8;2-$%/;%1018+5%;,-F07;%187;40%3%+4+5%1+23+4J4+5%67-18-7K%4;%/012KL%%M B0@<0%403-<0%4+%6-87+HK<+<-%3+/+80%2;2-%<+%8-%4;7+<+4-%-.A%

2;2-%1+%/+,;%1%67-1805%67-18-7-5A

!"#$%&'(')((%%%%%%%%

B5+140%6-540,402%3%>?"#

9 )*+,(-*./0*(1'2'($(345(+/(6/7#*(89):(+"6/(;(%0'-'<

9 ?6-7;H,<;%1+%8;H+,;!6;7-3E%%"#$%&'()!*+',-&./

!"

!"#$%&'()"#

!"&*

#$%&'(%)*+,

!*-%)(-&.$*

/+0)1.1(2-(%)*+,10($3(.$45$0(,$.-51.

"6/78(9:;68<

<3=$*+(-&.$*5+(>$&)$*+,+(%(+,-.,/0123%4.5/62.7/%+,-.61

!"#$%&'(')((%%%%%%%%

I;C8+3;%6-%187;40%AAA

9 N+%012;4;%187;4%40%3%H;.+4KE! O.H+70%-2307%.;%;/-"%0/$*! N+%<+%-2307%PK5;.;4Q%6-8+5%1+%5-7;%.;601;80%4;%/012%! "7+H+70%0.H7;4-%187;4%3%0.H7;40%-2307

9 ).'=%'(187;4%04%3740%4<+4%4;1,-3A%%

" !"#!$%&'(!)*#+,-+#,%.(!/%&0#,#!12)*34!5#',3!)*#6$#+7

!!)(0#.!$%&'(!,2%)*#8!)*#9#*#.(!,#:!50*%2-!;

!"#$%&'(')((%%%%%%%%

B+J%-%/+,K%.%35+1A%6-540,402-5

# I;C8+3;4;%187;4%5-7;%H080%*+="2/,(# B0/4-%5-7;%H080$%J+%<+%187;4%167+5+4<+4;%;,0(>?-/;/%/@E%

! ?-/;/%(H08%# >87;4%3%H;.+4K%<+%,;C2-%.;C8+3;4;%3+J27;8$%

! ?6-7;H,<;%1+(A2"$"&(=.'="%0/%0A%%>87;4%<+%2;4/0/;8%.;%.;5+4<;3-%J+%<+%A2,(=.'="%0/%0R%'A

# B.6-7+/4-18%04%-27+3;4<+E! /-/;840%O)!%3%6705+7K$%/;%<+%187;4%0.H7;4;%.;%.;5+4<;3-A%

# "7-8-2-,%B%"$%'#/C(

! )'!/%0"D$%/=."0(S%3+J%2;14+<+A

Page 57: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-+./01.%2-%2-3.41-56%7+,-40

8 !950,%02:,-4%7%!"#$"%&'()*+$,%-($.%/! ;<=$%=,-%>01)23?$%@<=$%0+AB

8 *+,-+./01-%03-%C-D96%5.C09%5EC05%4-%F%G)!%6E.,-H01I%6A50746%6A%.+)#2$*4)!")5$B

8 6%3.%-7-)*5#%1'.$-(%J%%K L,A-%70+M-H01-%E652,6N.4-%2%;<=%O%E64-5C1-16N%

7.95.4N40%E,./C.A%+-:.C.B! F%6950,1.5%P%F%7+,-40%A-+6+.9.%57-9-%2-D+.5-%E65,6N0%G)!B%

%@<=%1.%5%+.3%E,03.,M%:6C1Q-%>+6A-%4.%5%57.D%70+M-H01-D$%7.5.A-?B

!"#$%&'(')((%%%%%%%%

*="#%57B%!*%R-+6+.N40%707+.3

%%%%!*%M,.1-%A0796540%E,67+6,%S%53.740%E6340C409J%2-9-1%4.:0%!*%2-%*="#%M,.1-C%+-%6E,-50C-T

8 <-2C09.%5%!*%E6AE6,0J%E,.467C10567+8 U.9-+.,.%63.10+5.$%4E,B$%A-+6+.9.%7.%4.%36,-16%

,-2+.2-+0%E,.96%5.C0967+0%A079-B8 R.C6%2%53.7403%E6340C40963%5%*="#%2-D+.5-%

236V467+J! ",0E.+0%7+,-4%5%53.740%E6340C409$%E,070C0+0%7D,-41.5-41.%

7+,-40%4-%A079%>E63.3:46%2-%*R%S%,.H65.,W?$! ",0C-/6A0+.5%!"#$"%&'(%*+$,%-($.%*!"#$-'*'-*:,-41.%7+,-40%

54-E,.1%4-%674650%6:4-Q-41-%+0E0N4.%6E.,-H01.B%

!"#$%&'(')((%%%%%%%%

X6,3-+%2-E07-J%%X0974-%A6CV04-

8 G4Y6,3-H01-%6%+0E0D%E6C1-%1.%.4-9-%2-%57.%2-E07.%5%A-+6+.90I%7D,-41M1.%7.%5%!'!"%,!3%,*3$"$1)&89

8 "60QN0%':")*E6C1.%4.%2-D+.5-%E,./C.A%57.D%2-E0765B

!"#$%#&'#(")$%'*+,

!" !# !$ !%

&" &# &$ &%

-(")$%'.'+/01/02

!"#$%&'(')((%%%%%%%%

X6,3-+%2-E07-J%Z-,0-:0C4-%A6CV04-8 R5-%-C+.,4-+054-%Y6,3-+-%>F%E6C1%1.%Y09746?J

" '3456('()784#(7&%('9$#5:(';&48<78#';$"7$9';$'&=786('9$):>5?&#<$%&7$'"@4(#:8%(#:8'!"##>';&4A'#8'B("8;('%8)&<$'94$"7$4(A

C D D D D

E78%8F9$):

G$):('"$'4(BH8:8#('"'9$"8I#&H'"&HI$)$H

J1''''''''''''''''''''J2'''''''''''''''''''JK''''''''''''''''''''JC

J1'''''''''''''J2'''''''''''''JK'''''''''''''JC

G$):8'$;H&<$%'(74&I57$%

Page 58: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-./%0/,.123%4.5202%627018%9+:;218

! !"#$%&$'&(&)%*+",&$'-&#+.'"/&012&&3&#+4$&"/*.+,"*$4$&5"6*.4"&#+.7$8",9.&5"#$%:4&5"&#+"5.,&#+:%*:+&%#+.7.7;:&+$'<&,$&4.',:&%#+.9.7/9$4:2

!"#$%&'(!"#$%&')

!"#$%&'*

!"!"! !"!"!

* +(,-'-'-

+''---''''.'')''(!/0123 456+/!

!"#$%&'(!"#$%&')

!"#$%&'*

*#7%8#$#9:";8<;"

!"#$%&'+

((

=<-'7%:>8;?' =<-':"#$%&;?

!"#$%&'(')((%%%%%%%%

*+,-./%0/,.123%4.5202%<.,2.=2:18%9+:;218

@ ="68:&#+.7$8"7:&5"#$%.&#:&%*+",$&,.&'"&;$&%#+.7.,$/$&+$'<&#+$4/">,"&#+.'%*"4$*.4&*?'$&5"&5"#$%.&%&@$8%,:&':/A$,:2

A<"%9'>B>$'C'D>E*F

B>$'C'D>E)F

B>$'C'D>E(F

1%7%&#G'9%'7%H#<#I'9#7%8#$-:";8<;"%-'

3>"#I<;">J':"#$%&;?

*'''''''''''-'-'-'''''''''''')'''''''''(), (K )L *

M:"#$%&;?

!"#$%&'(')((%%%%%%%%

>./+/878%?.520+<

@ A/,.1%.:2%=:+7%B8%!C%?.%D)!@ E2FB2%12<+B2%AG"#%98:HB8B+%?%5"#$%$%/8,%?%

'"*:*.8"7$&5"#$%:4@ >IJ!JKCI3%4=2,7.%0/,.12L%<0.7.%0/,.1%<08=HB8%

-1+;2M+%?.520+<N%!58,.M2B83" 2108,/)98:8/8)-+926O%P%?.520" ,8.9%Q%?.520%%RH5+,.=.%+$'S" 5,8T:89%R0M.1S%<08U%?.520+<%R5+T+B2%1.9%?.5202$%72%1.B%

B2U%020/8-%<,18S

!"#$%&'(')((%%%%%%%%

V8H,8B818%9./+/878%

@ V.B81+0/.<18BF.%9./+/8W1.%0/,H7/H,.Q 4.5202%12-.B+%1+=818%H,8B81+0/2NQ J.7+%7+/%08%9./+/87.%-.1BF.%21%<8W.$%/.7+%08%

9+9.B.B+%21%+9<?8-.B+%0/,.12%R=:+72SN%

@ "+/,8=1+%B8%0U,.1B8<./2%5+9./78%+3%Q %*+",.6%9./+/878" ,.?#:+";/9.,.7&#+:%*:+?%1.%0/,.18U" 5"#$%$6&1.%0/,.12

@ !=0/.B.%<8:27+%.:/8,1./2<%?.%0U,.1B8<.1B8%5,890/.<:B812U%5+9./7+<N%

Page 59: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-+.+/0%10232+40%5678+6+/25-0/0%%9%9+:/0636

; <=%>80?/+%92-0/5%5/%9060%10232+40%63-020%@525%9A-0/.+/0%/+4.+%/0%1594,B%

; C9040%92-0/%?9+@,.+%&%D40:08E0F%5/%731024+B

!"#$%#&'(#%

)*+,&'(#%

)*+,&'(#%

)*+,&'(#%

!"#$

%&'()

)*+,&'(#%

)*+,&'(#% -'(#%./01.0.2#3*0

4(#56%04(*&'*(

)*"%60&'(#%.

!"#$%&'(')((%%%%%%%%

*+,-+.+/0%10232+40%:%15-+423-5.+6%92-0/5%

; G0759%731B%92-0/5%/0%>80?/5%92-0/5%?9+@,.+%80A43%2,15%H2B%7-3925A%:83>3?%/0%731B%92-0/5B%

; =5-+423-5.%.+%:@5-40%92-0/5I%5678+6+/20E5.0%:%9+:/063?%.+%+/0%082+-/025?0B%! !"#$%&'()%*$+,'-./%$+'0"'1/"2"0'&%$03+'45.'3.6'*-",'-./%$+7

)*+,&'(#%07

)*+,00&'(#%08

)*+,0&'(#%09

!"#$%#&'(#%

)*+,-./+0

!"#$%&'(')((%%%%%%%%

J592+6945%402083>5; G0%?904%5/1+49K

! 92-,42,-0%L/7-B$%#M%1-+?3N%5/%59408/5%48.,O5

; G0%?9043%-+80E5.3K! 56+$%56+%10232+4+$%10232+O/0%92-,42,-0! 56+/0%5/%2575%02-5@,23?%! 56+/0%5/1+493?! 5/2+>-52+2/+%36+.52?+

; G0%?904%73>8+1K! 56+%73>8+10%5/%1+P5/5E5.0

; J202592540$%0,23-5:0E5.0$%?+854392%@0:+/0%92-0/5$%521B

" !"#$#%&'(!)&!)*+#,-.,(!/&$!+.%#0(-.: !"#$%&'(')((%%%%%%%%

Q22-RS02L022-R/06+$%-+8R/06+$%2T7+$%7395253/N

#''(;%#260 (6";%#260 '<460 4*&.'.*%0#''(;%#260 =''(.>?'6;@#'0 &'(.%A0 70(6";%#260 =''(.>?'6;@#'0 &'(.%A0 80'<460 =''(.>?'6;@#'0 &'(.%A0 B04*&.'.*%0 =''(.>?'6;@#'0 .%'6A6(0 C0&.+0 -'?+6%'.0 &'(.%A00 70.260 -'?+6%'.0 &'(.%A0 80"*A.%0 -'?+6%'.0 &'(.%A0 B0&'#(0 -'?+6%'.0 .%'6A6(0 C0*D6%#0 -'?+6%'.0 (6#"0 E0F.+0 G#1?"'6'#0 &'(.%A0 70F.260 G#1?"'6'#0 &'(.%A0 804"#D#0 G#1?"'6'#0 (6#"0 B0

0

*

Page 60: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

"*+,-.-/

0 123/%4-%5*6-72%5-8323.-7.72%5*972:72;/2%9-<24=! 128-/.-7%<*3.*5$%>2.8*3.%4-%*<+237?%*<%:*/?624-%3.8?72@%

5*9-9A7*%4-%B8-<2.2%5*<?./-%7?%<23/B%3-/+-7C7*@%927292,28?.?%3-%!"#$%#&"'("%27%)"&"#'%*+,$-.*"/%(+=%

0 D9-372%5*97=E%3.8?7%58-7-;-7?%2,%<23/?%+%FGH=! I.8?7%*3.?7-%+%FGH%.?/*%<*:J*$%<*/:-8%4-%7-%358*3.2%

.23.2$%/2%4*%4-%,?>.-+?:=%! K?523?7?%4-%7?%<23/$%/*%4-%2,A8?7?%,?%,?9-74?+*%L5*%

.-9$%/*%4-%358*;C-7?M=! N,A28?%*/+284?%,?%,?9-74?+*%3-%2,+-<-%7?%*37*+2%

#*-"*+0%(+$)"$)"1+'(",.2! "*3/B;?%3-%58-7-3.2%+-C%3.8?72%,?%/?37-4;*%B5*8?A*=%

!"#$%&'(')((%%%%%%%%

"*+,-.-/

0 IO"#%+3=%!I%1?.*.-C72%323.-9! IO"#%5*.8-AB4-%:?3.7*3.2$%/2%42>%!I%7-%7B<2=%P?%5829-8$%-/35:262.7*%

,?523*+?74-%3.8?72%7?%<23/$%/*7.8*:28?74-%+83.7-J?%8-<?%3.8?72%7?%<23/B$%<?.*.-/-%58-/*%<23/*+$%9*Q7*3.%+7?58-4;74-J?%A8?74?%+-C4-%/*:2C27-%3.8?72$%582:?J?4?74-%<-:?%+9-37-J?%5*972:72/?%7?%+,*86-%<*3.*5?$%2.<=%

0 K?5232%+?82?A2:7-%<*:Q27-%3%35-62R2628?7292%*<92/2%5*:4%+%<28-/.*824B%7B<2%<28-/.-7%<*3.*5%<*%2S.-J?%5*:4?%27%*9*J*C?%7B::%+8-<7*3.2=%

0 T*89?.%3.8?72%3%58-<?:2%*9*J*C?%3>8?74-+?74-%,?523*+%+?82?A:27-%<*:Q27-%27%*9*J*C?%58-92/?74-%,?523*+%5*%3.8?72=

!"#$%&'(')((%%%%%%%%

"*+,-.-/

0 P2+*%<?.*.-/-%*9*J*C?%<-:*%3%3.8?792%<?.*.-/-%27%7B<2%?A3.8?/624*%U,A28/-%,?523*+V=%! I.8?72%3%58?,729%58*3.*8*9%3-%2<-7.2R2628?4*%,%

<+*47*%5*+-,?729%3-,7?9*9%?:2%58-/*%<28-/.*824?=

0 N7<-/32%*9*J*C?4*%BC27/*+2.%<*3.*5%<*%,?523*+%7?%*37*+2%+8-<7*3.2%7-/-J?%?.82AB.?=%

0 W?.?:*J%3>8?74B4-%5*<?./-%*%8-:?624?>$%27<-/32>%27%5*J:-<2>=%

Page 61: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 62: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-./0

*123.%456+0.$%789:*;

!"#$%&'(')((%%%%%%%%

<=-6-/+0%0+,-./0

> !"#$%&'(")%'#*($+%$,-.%'/-*)($*,#0($!"?@ %"3,52.36+0%15A0/0%1%6=-,+3/2B3%.CBDE5%!@ %F!$%=0,%A3,G%15A0/5%1%6=-,+3/2B3%0/.5C+-H5%.CBDE5%!I@ %F!$%/-1+5J%=0,%A3,G%K5A0/36%1%0/.5C+0J%.CBDE-J%!I

> *1L0=5%B-%3=23H3+5C+5%+5%#).(/0)-$'(1)#/-$DA3=5LCB-+3%15%0/.5+B-%A3,52.36+0M%6A0/36%!"G

> <=-6-/+5%0+,-./+5%/2=D.2D=5%A3,A0=5%25.3%#0/%)2($,-."-32%$.32%2D,0%#0/%)2($+$()%3%2(4G

> 5678?%%/2520E+5%/2=D.2D=5N%%9:$'"((?%%,0+5J0E+5%/2=D.2D=5$%,=-63%B-%6-,+3%D=56+32-O-+3G

!"#$%&'(')((%%%%%%%%

*/.5+B-%A3,=3EB5> PP;-#<3#$*0($<'=.()'($0$,-*,"(32(4$>$?@AQQ

! R-%/3%A3,52.0%6%D=-B-+0M%,5232-.0%+5=-,0J3%L0+5=+3%0/.5+B-%0+%+523%A=-HC-,G%

! S-+5%L0+5=+-H5%0/.5+B5%B-%60/3.5G

> *,-B5?%%T=-0=5B%UU0+,-./+3UU%,5232-.3G%

" !!"#$%&'()*+&',-$+&'%)./"$'0.1$+2.$'1)3&3$+$4

!"#$%&' !"#$%&( !"#$%&)!"#$%&* +,-$".,/%$&-$"0

.( .).' 1%-2.3%$&-$"0

!"#$%&'(')((%%%%%%%%

*489

> *+,-./+5%,5232-.5%B-%6/--+3%C5M.3%A=-V-B%6-C0.5G%*,-B3%C5M.3%A3+360J3W

" '50230'623-).07'82$9:/$/&',&1)3+&8.$'8,02$#

+4

5' +

'5 ( +

(5 6

+ 6

1%-2.3%7&/873

),"#$%92

3"#$%7

+#2:7/%$3"#$%

;3%,/%2&3"#$%7

<73"7

Page 63: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-

. !"#$"%&'#()%*+*#,#/%%01234%56247489%24:;4<=<9%29>31>6<4%?9%12:6@<48%:@AB=BC%%56247489%1<D4:2<4%23>6<1%1<%?9348%

%%%%%E4%?>9239>%56%?>4@1;<4%23>6<1F%. -&)#,.&$(/0$.$/%%G;>4D<923%12:6@<4H6%:@AB=6$%1D%23>6<1IC%%(((((1.2#"'%'+(($.,%&'#(0+)%*,+/&$3(/0$.+/$%:1%29%;%@1231JF. -.,%&'#/%%K6=<1%;%:9>4<BC%B?9>6L1%?>184>A6;9%:@AB=4;%56%12:6<A4%

@1236F%%M4<6%N@9H%O%P%C%O%N%Q%;?129;)1<DF23>6<$%P%N%Q%@1239;F

. 4.*%/$/%%"91E=1%@123%1<%56?1E1%?9DF%;?12F%

. -56"$7$/%%"91E=1%@123%1<%15L>1E1%;?12%15%@1236C%15L>1E1%?>4@1;<9%23>6<$%=4%A4%?>65<6F

! !"#$#%&'$!(#)*+#*)$!,)-.-($/!!!"#$!%&$'&()*+,"$'&(-"$./-!-%,"#,00

!"#$%&'()*+

,*#-.&*-%&'()*+

!(-/+0*-%&'()*+

!"#$%&'(')((%%%%%%%%

">184>%*+,-%D>4;426

. R26:9%;95@1E=4%@6J:9%;24LBA4%D;6%;?126C%<1%?93>4L4%?9%:656@S1J%<6%<62@4D<A1%@123F%%TK6:6AUV

123 143 523 563 773 763 823 893 413 443 973 :63

52 77 41 97

82

;"(-*

!"#$%&'(')((%%%%%%%%

"9%;236;@A6<AB%&WX$%YZX$%Y(X$%Y&X%FFF

123 143 523 563 773 763 823 893 413 443 973 :63

52 77 41 97

82

;"(-*

573 8<3 813

853

!(-/+0*-%

&'()*+

&'()*+%=

,*#-.&*)

&'()*

/+&'+

!(+>)(*-

!"#$%&'(')((%%%%%%%%

%%%%%%%%%%FFF%?9348%L>126<A4%Y&X$%[(X$%\]X

1 -12,"-345-"(-2/&$!,-!-'/#+$'&,0-"#+$'(0-,'-'(-#67,-!-%,"#,08

123 143 523 563 773 763 823 893 443 973

52 77 41 97

82

;"(-*

573 8<3 813

Page 64: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

#*%+,-./0%1234/53%,2678,3-9%89:-;<%

= >/?@5-;<9/<A%/@B%C<A2.8)D64,878%E%5/F%G%1%%%

%%%%%HG%E%I29/JA$%1%E%K%58<A/.L= +,-./%3-%6-5/%J,2.9/A-M-9/B%= D9:-;<9-%<A,298%</%62@/593-9-%.<23%N'OH,26-9%;/,-92LB%%

C<2;/%./6587P-%.<-4J3-%!%QE%%!%%QE%&!%.@8</.B%%%%%%%"2,2?-A-,%!%8?-9J3-?/%"#$%&'(%/:,-.-<2B= RP89;/.8A/%@/:@8,2%8<;293-%@/%-92;/<A8%89%8<;293-%

@/:,/P32B%

!"#$%&"'()*'&

+,#-.%,)"'()*'&'/0$1$2$"3-4*,#-.%'5

/6&7$28-8,('&%-"8$5

!"#$%&'(')((%%%%%%%%

",8?-,%#*%+,-.-<2

= D<;293-%<-%62P9-%.%;/,-9JS%@,8?-,32.2%;53JP-.%./:8%:/%58<A2%<%@/:B%.@8</?%H;/A%@,8%%DTUVLB

= D7P8%NW$%(NW$%.<-%@/:B%.@8<-%XE%&YW%BBB

! "!"#$%&'()'#*+,#-./01#2'#&3)45'#($#-#26.-.%47

0,,.

9: ;< =>

;? =? @? :? 9<? 9A? 9B? ;>? ;;? ;<? ;:? ;B? ==? =<? =C? =B?

9=

!"#$%&'(')((%%%%%%%%

#*%+,-.-<2%.%@,2;<8

= Z8@8P92%<A/@9320%(''B%%Z8@8P92%62@/593-9/<A0%[\OB! "/.@,-P-9%I29/JA%E%(]]

= Z8@8P9-%;2@2^8A-A-0! C87892%Y0%(]]Y%E%](&$_''$\''%62@8</.! C87892%]0%(]]]%E%%%%%&$]N&$[]\%62@8</.

= C-P89/?2%52`;/%<`,298?/%.873-%98./3-%:,-.-<2%.%.?-<98%@/?98598;0! 18./%(%E%%%%%%%%%%%(%<A,29%%E%%%%%a%>4! 18./%&%E%%%%%%(]]%<A,298%E%%%%%(%V4! 18./%]%E%(\$[a_%<A,298%E%(]]%V#%%%%%%%

!"#$%&'(')((%%%%%%%%

C<A2.53293-%@/:B%.@8<2%.%#*%:,-./= "/87P8%58<A%)*%= C<A2.8%@/:B%.@8<%.%)B

! b-%8?2%)+62:/<A8%@,/<A/,2$%3-%92,-3-9/c! T8^-,%3-%@/A,-49/%,(-./%0#0%%)+12+)+0&+&$2$+2$-3045/+)67

= d92;/?-,9/%@/,26:-58%.@8<-%89%"#$"%&%'<,-:938%;53JP%F/,B= C<A2.8%89:-;<98%.@8<$%;8%;2M-%92%)68+.%<A2,72%/:%)B

= Z/%<-%52`;/%6F/:8%,-;J,68.9/! e26^-@%89:-;<9-F2%./6587P20%-92;/?-,9/%@/,26:-58%

.@8<-%89%"#$($)%'<,-:938%;53JP%F/,B%%He2658;2%6%,26^-@/?%58<A2BL

= e26^-@8%f78,83/g%:,-./S%,26^-@%;/,-92%6.872%:,-./B%%

Page 65: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-./0-102%34%.%#5%672.8%9:7;<27=

> ?;1;<-/1-%@-+26218+,%:8%7-@A2:;,.;%02%@-0-<B21-%.%/;+,;C%D8,%,E6;%.%;162D+1;C%+,7-12CF%

> "8G/20%7-@/;D8%<26%:72:;+8<%;1%:7218+8<%D/0EB-%1-.@G87F

> H-DI21%02%7-@/8G%%@-%7-@/;D8J

!" #" $" %" &"

$

'()*+,-),./0,*1,2*3/2),2,*3/45/6$,*1,(41()51,./27894:;9()0/,9*3/.1,2,<)*3=>?

@90/2<0/,2,).A1-*=,*/B9,1.-4/3>?

$ !C #D

E%

E#

'()*+,-),./0,*1,2*3/2),2,*3/45/6E%,*1,(41.1*1,./27894,).,*1,

!"#$%&'(')((%%%%%%%%

"7;<27%#5%672.2+-%:8%.18+E%34

!!!"#$#%&'!$(!)*!+*!,(-.*/#0!1&,*2!#2!)*!+*!/&3*4(0(!!!!!!3#5#2(!$,*3*)(6!!!"!7*%!/,#%*,8!9#!)*!0(:1&!#-&;2#0#!,(-.*/8!)7,(2#!!!!!!-!/&,(-$*0#73#+&!3/#)&3<!7&!)*!&9#4(+2&!2*!8/&,(90+(!3!!!!!!/,(1)#6!

!" #"

;941.

E%

!C #D

EC" EF" EG" !D" !!" !C" !%" !G" ##" #C" #&" #G"

E#$

%"$" &"

!"#$%&'(')((%%%%%%%%

#7;+-102%:86F%.:;+-%;@%#5%672.2+-

> K-B1;%:7;%D8721E%;1%:8;IB;%/;+,%@%.:;+8<F%> L@M7;I;%.:;+F

" N2%02%O%.+-0%:8/8.;A8%:8/1%:8,2<%!"#$%&'(" N2%.+2ME02%O%!"#$.:;+8.$

> "8+DE+;<8%:87-@62/;,;%.:;+2%,-D8$%6-%+;%0;C%+:8+86;<8%86%+8+268.F%

> N2%:87-@62/;,2.%12%E+:2$%)*+&%,(+#(-"-./%0(

> *%:7;<27E%@/;,0-%<87-<8%@M7;+-,;%.:;+%9D;%D-P2%1-%%,%-/;%1-%+8+26-=%;@%+,-7I-%86%,F

> K/;.-102%+2%/-CD8%1-6-/0E02%.+2%68%D8721-Q%.%,2<%:7;<27E%+2%@1;P-%.;I;1-%672.2+-F

!"#$%&'(')((%%%%%%%%

R72.8%:8%.+,-./0-10E%34%;1%M7;+-10E%(S4%;1%&'4%FFF

> #7;+-102%(S4%02%218+,-.18F> #7;+-102%&'4%02%1-720218%+%:87-@62/;,.;08%

.:;+8.F%T72610;%D/0EB%02%:72:;+-1%1-.@G87F

!" #"

;941.

E%

#D

EC" EF" ##" #C" #&" #G"

E#$

%"$" &" !!" !C"

!%

!%" !G"

Page 66: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

%%%%%%%%***%+,%-.+/0,12%&34

5 "67.2-,6%89+:0,12*5 ;9+712%<6=07>6:,+?%

:<+/6:%,0%=2/,+%72.%+,=2>/,+?%:<+/6:%/<6=01*%

!"

##$ #%$ #&$ !!$ !'$ !($ !&$

#$ !$ %$ )'$ )*$ ##$ #%$ #&$ !!$ !'$ !($ !&$+$ ($

,--.!")!+ )%

!"#$%&'(')((%%%%%%%%

"69,12,12%#@%=.2:2/05 "69,12,12%#@%=.2:2/0%8%:/70:910,12A%

<6/0A28,2B0%80<+/0%12%90?>6%80AC=,6%:%<.+A2.C$%=0%12%<6=07>6:%:29+>6*%

5 !"#$%&$%&'90?>6%,0.2=+A6%:29+>6%?+7.212*5 ($)*)+#),+*)%+D%%E.2=+%<6=07>6:,2%:<+/2$%=6=01%

>08092F%,0%<.:6%/7.0,%:%,6:2A%>6.2,C*

!$ '$ *$ &$ )"$ ))$ )#$ )!$ #"$ ##$ #!$ !)$ !+$ !*$ !($ ')$ ''$

/-0.1023456.023157-895:716-:;5<15=45316-5:5>?5804:46@A-043

!"#$%&'(')((%%%%%%%%

"69,12,12

5 G,=2>/,+%:<+/+$%>+%>0H216%,0%9+/72%/6%:2=,6%:/70:912,+%,0%/>.01,6%=2/,6%+,=2>/,6%/7.0,%7+>%,0=%9+/7+*%%I6%/2%70%,0<69,+%16%.08F2<+A6%J%F2<+72:%/2%90?>6%<6,6:+%,0%:+K1+?%,+:61+?*%

5 L9B6.+72A%12%?+7.21K+%6=%:/70:910,10%80<+/6:*%

!$ '$ *$ &$ )"$))$ )#$)!$ #"$##$ #!$ !)$ !+$!*$ !($')$ ''$

A-043

B-895:7161;5<15

=45316-5:5804:46@!+#!)#*

)" #"

!$ '$ *$ &$ )"$))$ )#$)!$ #"$##$ #!$ !)$ !+$!*$ !($')$ ''$

*

A-043

)"

)# #!

#"

!+

!(

C45316-5:5804:46@B-895:7161;5<15

!"#$%&'(')((%%%%%%%%

"6:8272>%<69,12,10%#@%=.2:2/0

5 M6H,6/7%(D%+72.07+:,6%:/70:910,12*! "6N0/,6*! O2%=6-+A6%/2>:2,N2,%80<+/%+,=2>/,+?%/7.0,+%<6%

,+:61+?*

5 M6H,6/7%&D'!"#$%&$%&'-./#0'1"+2)$34! ".2=,6/7+%<.+%>6,7.69+%/6N0/,2B0%=6/76<0*! M0,1%G)!%6<2.0F+1%A2=%B.0=,16*! P+/7+%/6%/?.0,12,+%/2>:2,N,6*! P0?>6%>6,7.69+.0A6%QR0>76.%80<69,12,6/7+S%,0%

/7.0,2?*

Page 67: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-./0%1234350

6 !"#$%&'%7!8%9%:+34;<,%;.1=%4-;5,4%%4%4,><;:?;@%1234350=%

6 A%-20B5;%53%5+,-./0%-234313%4%B2;+32;/C%D()'&*$#+#(,-'*%'$#+%&.%'/=%! E0-;5;%;.%;5B0<.;%B</F?;%402;0G;<.3%1,<H;.3%-,4>2,?;/,%

402;0G;<.,%:+34;<,%>0-;5,4%4%<;5+;@=! IF1;%4%-2;J32F%-,</%K;B5.3%1,<H;.3%<0@B,%;J0J,%4-;53%%>%

402;0G;<.,%1,<H;.,%4%<;5+;@=%7L,H.,5+%7M88=

!"#$%&'(')((%%%%%%%%

N0>-2:;<.;%;.13B5;

6 0'1$23,+%,*,%4.5),*5,%1,G2;%>0%;5B0./3%>%3.0?0/3J=%O3%F-,20G</0/,%53%>0%;5B0./3%-,12,?/0=

6 !G5+0/0/,%)"'",6%.%;.%4,%'7,6%.%425+3%;.13B50P%-,1,G.,%-2;J32/04;%Q*RL%45=%#S%1234,=

6 !T<310<;%5;%G,J,C9 %402;0.+,%5+0+;?.3T0%;.13B50%9 %20>:;2</;4%20>-2:;<.;%;.13B5%71;.0J;?3.8

!"#$%&'(')((%%%%%%%%

*+0+;?.;%20>-2:;<.;%;.13B56 U%-2;J02.3%5+20.;%5,%K;B5.3$%>053H3.3%

53B43.?.,%+32%.;5,%.;B,<;%5-2,:?3.3=6 "758%J,1%O%V%5BF-3B%@%B0+323JF%-2;-010%

-,10+B,4.;%4-;5%>%B</F?3J%58*7O%V%U%5BF-B,48

!"#$%&'()*+,)-

!#$%&'

!"#$%"&'()*"%&# !"'+#,&'()*"%&#

.

/

-01

!"#$%&'(')((%%%%%%%%

*+0+;?.;%20>-2:;<.;%;.13B5

6 *BF-B;%453GF/3/,%$#4'"5#(%.*($,).=6 N0>-2:;<.0%K.%53%F-,20G;%.0%,)5'+%.7*5+&9698*

A231.,5+;%53%J,20/,%2'1$23,",%.0%;.+3240<%'%===%OW(=! "758%V%70%X%5%S%G8%,G;?0/.,%13<F/3%1,G2,=! 0%;.%G%5,%B,.5+0.+3P43<;B,%/3%>.0.,%,%+3J%B0B,%FJ32;+;%%"=

6 N0>4;/3%53%<0@B,%1,<T%53>.0J%-23<;4.;@%5+20.;%B02%-,5<0G:0%F?;.B,4;+,5+%-,10+B,4.3%5+2FB+F23=%%! :,%'7,6%,*2'1$23,+%,*,%4.5)*23:;%-2,G<3J=%

Page 68: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-./01.2%/+,3/-.04.%.45678

9 !"#$%&"'%:%;7<367%=3/.>+/4+%8?/+4@%86%4+3A04.B%! #/+416%.4%3.8+416%8?/+4.%87<37+%16%3A?/+?4AB

9 ()*'%:%%)"+*,#-+"'.,%/%0&*1.2%.3,$4,*%C D+E7A%3/68?+201+>A%8?/+4.%87<37A2BC F?62.0A%87<37A2%86%3A52A1.%8%3A52A1.?2.1A%5./67?A/.1+B%! *+,G63.>A%8+>A%87<367%=8?/+4@$%7.%16%4+3A04164B! H./67?A/.1%16%260.7A%>+41-.%7A?%G60A?4+%5+?A?67+%,+?A%86%

3A52A1.?62%.,2/-.%E.?/AB%5".4+*0"12"6.3#+%2".I! "/.0+JA5.?.%16%3A?/6K4A%-6%/+,3/-.04A%L<47G.1AI

!"#$%&'(')((%%%%%%%%

"/.>6/

9 H./67?A/.1%16%3A016%260.7A8?.%MB9 N87+416%87<37+%,+%+7%

C O,6>.%,+541A%PG60A?4A%J0AK.4AQ%%%%%%R%K.?A2%A5%!=+@%.4%?A%-?62.0A%

<3A/+K.%7A?%.45678B! !=+@%S%T%S%K.4+/4A%('($%%?A%16%

87<367%'(B

"!"#$%&%'&()!!"!*(!&(!+,-.(,!.#/'!.#0(1!2%!3%45(.6!0(3!4%+(76!'#8#!+03%'!6'!.#3%4$(/6!8.6+(9"!"#!$#!%&'(#)*&!"#!$%&'%()!&)*#+,%*)(-"!.)&#/)!0%1%2!&3!*345#$!",*36)!'#/)+%+*3,!6#!437,#'3!$%&'%(),#'8!,%!')&)1!,3+%2!&3

!!!!$*)1#*(31%!5#/%,6%!)6!/%+3/6%!9/%0)6%!"+:$+3-

!

13*00

01

10

11

2

2

2

2

2

!"#$!%$&'!"()%$

*+!",%$&'!"()%$

DIREKTORIJ

Skupek A

Skupek B

Skupek C

Skupek D

PODATKOVNE STRANI

10*

1* 21*

4* 12* 32* 16*

15* 7* 19*

5*

!"#$%&'(')((%%%%%%%%

O8?+2.%!=/@S&'%=3A52A1.?62@

20*

00011011

2 2

2

2

!"#$!%$&'!"()%$ 2

2

DIREKTORIJ

*+!",%$&'!"()%$

Skupek A

Skupek B

Skupek C

Skupek D

Skupek A2(nov skupek)

1* 5* 21*13*

32*16*

10*

15* 7* 19*

4* 12*

19*

2

2

2

000001010011100101110111

3

3

3DIREKTORIJ

Skupek A

Skupek B

Skupek C

Skupek D

Skupek A2(nov skupek)

32*

1* 5* 21*13*

16*

10*

15* 7*

4* 20*12*

!"#$!%$&'!"()%$

*+!",%$&'!"()%$

!"#$%&'(')((%%%%%%%%

UA>64?+/1.9 &'%S%K.4+/4A%('(''B%%V+541+%"%K.?+%=''@%4+>%3A268?+$%5+%+.

3/.3+5+.W%+0.%W&X%%%#$%K.?%3A26%2%7+?6/.B%! 8*0-#2%.90-:"2%.)"+*,#-+"'%:%%Y+Z%R%K.?A2%3A?/6K4.E%,+%87<37+%E%

7+?6/6><%3/.3+5+%23.8B! ;-,%02%.90-:"2%.3,$4,%:%R%K.?A2%3A?/6K4.E%,+%5A0A[.?62%+0.%23.8%3/.3+5+%

7%87<37<B

9 U5+1%/+,G63%87<37+%3A2,/A[.%3A52A162+416%5./67?A/.1+\! "/65%28?+201+416>:%0-,%02%.90-:"2%%87<37+%S%&*0-#2%.90-:"2%B%%! O8?+201+416%3A2,/A[.:%0-,%02%.90-:"2%.3A8?+46%]%&*0-#2*.90-:"2*<%

9 "A52A162+416%5./67?A/.1+BC H./67?A/.1%86%3A52A1.%8%7A3./+416>BC O%5./67?A/.1%86%23.-6%7+,+06G%4+%4A2A%8?/+4B%C "/2.%K.?%86%<3A/+K.%,+%5A0A[.?62%3/+26%8?/+4.%3/.%/+,G63<B%

Page 69: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

"*+,*-.,/0-.%+12.34*21-/

00

01

10

11

2

!"#"$%&'()"*+,+%')-+./"01$+%*+,%-%0+)2#,()+$&3! %45(6(7"%'(0-($+,2-%0+)2#,()+$"%8%#('+)"1$259

000

001

010

011

3

100

101

110

111

-8:

0

1

1

+0!"

!"

;%<%==>

00

10

01

11

2

3

0

1

1

+0+0

+0

;%<%==>000

100

010

110

001

101

011

111

?)-+%*+, !"01$+%*+,

+0

+0

+0

+0

+0 +0

+0

+0

!"#$#%&'&()*#+&#,-.&+

!"#$%&'(')((%%%%%%%%

5*6.04/2-17 8.0/%91:3/0-/%;%.0/</-.6=>

? @.%+12.34*21-%A2.%,%+10/61<01%:B*610%B*4.6%:*%B*1;,.+C.%0/%*:0*,1%.0/3*:41%1;,.+.0.%;%C2/0-.6%.0.A/%CD*3/$%:1E.2%;%+,.61F%

7 G1B1<0.%H4.,1D3.>" (''I#%+/4*4.3/J%(''%;D*A*,);/B1:J%K5%:42/0J%($'''$'''%B*+F%,B1:*,J%

+12.34*21-%&L$'''%.D.6.04*,J%,.D13/%,.2-.40*:4%+/%C*%E.D%+12.34*21-%,%+10F%:B*610MF

7 "2*CD.61>" N%B216.2M$%+/%-.%B*2/;+.D14.,%,2.+0*:41%2/;B2H1D0.%OM03E1-.%01%

.0/3*6.20/%P:3.Q.+R%D/S3*%+12.34*21-%B*:4/0.%;.D*%,.D13F%" N.D13*%,B1:*,%;%1:4*%,2.+0*:4-*%2/;B2H1D0.%OM03E1-.%B*,;2*</%

B2*CD.6.T7 !"#$%&'(%B*+/43*,0.A/%,B1:/>%

? @.%C21:/0-.%B*+F%,B1:/%1;B2/;01%:3MB.3%A/%D/S3*%;+2MU16*%;%0-.A*,*%92/;E.BD-.0*%:D13*=F%%%

? @.%:.%B2,/%B*D*,1E/%+12.34*21-/%M-.6%;%+2MA*%-1S%D/S3*%;+2MU16*F%

!"#$%&'(')((%%%%%%%%

"*,;.4.3

7 V2.,.:01%10+.3:1%:*%1+./D01%;/%1:3/0-.%B*+2*<1-%,.0+/2%+*C21%4M+1%;/%1:3/0-.%;%.0/</-.6F%

7 WXYI%-.%:4/41<01%10+.3:F%" XB2.610-/-*%:.%:/6*%D1:41J%B*42.C0.%:*%B2.D1,0.%:42/01F" "2.D1,0.%:42/01%D/S3*%;.D*%B*:D/CH/-*%M<103*,14*:4%:42M34M2.F

7 #Z%+2.,*%-.%+10/61<0/%:42M34M2/F" !B.2/E1-1%,0*:)C21:/0-.%%*S2/0-/4/%M2/,0*4.U.0*:4%+2.,.:/J%E.0/%

*B.2/E1-%-.%D*A%[%\%E*:4F" N.D13%O/0*M4%P)R%*6*A*</%+/%,1H10/%+2.,.:/%2.+3*%B2.:.A/%]%/D1%KF" V2.,*%-.%:3*2/-%,.+0*%C*D-H.%*+%M2.-.0.%+/4*4.3.F

!"#$%&'(')((%%%%%%%%

"*,;.4.3

7 %#Z%+2.,*" G1B1<0*%:*%10+.3:0.%:42/01%;/B*D0-.0.%%^_`F" #Z%+2.,*%-.%*C1</-0*%C*D-H.%*+%WXYIF" @.%:*%B*+/43*,01%,B1:1%.0/31%B*+/43*,016%;/B1:*6%B*4.6%E.B14,.%

D1:4*,%:B2.6.01-*%1+.041O13/4*2-.%;/B1:*,T

7 "*D0-.0-.%#Z%+2.,.:/%-.%D/S3*%,.D13*%S142.-H.%3*4%,:4/,D-/0-.%B*:/6.;01S%;/B1:*,%,%+2.,*F

7 #Z%+2.,*%-.%0/-C*D-%2/;H12-.0%10+.3:%,%:1:4.61S%;/%+.D*%:%B*+/43*,0161%C/;/61F%? a.%4M+1%.0/%*+%0/-C*D-%*B4161;12/01S%3*6B*0.04%Xb"#F

Page 70: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

"*+,-.-/

0 12,3456786%689-/:6;%9*<46%,2%6:/28=-%,%-82>2=-?%68%:-%=6@%8-%A3*42<7=2%,2%6:/28=-%3*94*>=2B%

0 C.2.6>86%42,3456786%689-/:6%72@/*%+*96=*%9*%9*7D6@%34-76+86@%+-46DB%

0 12,5647=6+%42,3456786%689-/:%86?2%34-76+86@%:.4286%42,-8%+%346?-4A%9A376/2.*+B%E !"#$%&'(%)*'+(,-'./)"#/0'1/)#0,$%-2%+)3(0'2%4

0 F*%:-%:/A3-/%,23*786%:-%3*9+*=6%964-/.*466=B%! "4*<7-?6%+%346?-4A%8--82/*?-48-%3*42,9-76.+-%+4-98*:.6%

42,3456786@%GA8/H6=B%

Page 71: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 72: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Datoteke in indeksi

Iztok Savnik, FAMNIT

OPB, 2009/10

Podatki na pomnilniških

medijih

• Diski: Direkten dostop do blokov.

– Branje večih zaporednih strani je cenejše kot v branje naključnih strani.

• Trakovi: Sekvenčni dostop do strani.

– Cenejši medij kot diski; uporablja se za arhiviranje podatkov.

• Datotečna organizacija: Organizacija podatkov na

pomnilniških medijih.

– ID zapisa (rid) služi za identifikacijo fizične lokacije zapisa

– Indeksi so podatkovne strukture, ki omogočajo iskanje ID-jev zapisov na

osnovi podanih vrednosti atributov ključa indeksa.

• Arhitektura: Vmesni pomnilnik prenaša strani iz zunanjega

pomnilniškega medija v bazen strani. Nivo datotek in

indeksov dela z vmesnim pomnilnikov.

OPB, 2009/10

Alternativne datotečne

organizacije Obstaja več alternativ, vsaka je idealna za določene

situacije in ne tako dobra v drugih primerih:

! Neurejene datoteke: Primerne, ko je tipični dostop branje

celotne datoteke.

! Sortirane datoteke: BNajboljše v primer, da iščemo zapise v

določenem vrstnem redu ali želimo preiskati določen interval

celotne množice zapisov.

! Indeksi: Podatkovna strukture, ki organizirajo zapise na

osnovi dreves in razpršilnih funkcij.

! Pohitrijo iskanje zapisa z dano vrednostjo iskalnega ključa.

! Podobno sortiranim datotekam, pohitrijo iskanje podmnožice zapisov na

osnovi določenih iskalnih ključev.

! Popravljanje zapisov je mnogo hitrejše kot v primeru sortiranih datotek.

OPB, 2009/10

Indeksi

• Indeks pohitri iskanje zapisov na osnovi polj iskalnih ključev indeksa.

! Vsaka podmnožica polj relacije je lahko iskalni ključ indeksa na

dani relaciji.

! Iskalni ključ ni enak ključu (minimalni množici polj, ki enolično

določa zapis v relaciji).

• Indeks vsebuje množico podatkovnih zapisov.• Indeks podpira učinkovito iskanje podatkovnih zapisov k*

z dano vrednostjo ključa k.

– Za dan ključ k lahko poiščemo podatkovni zapis k* z enim

dostopom do diska. (Podrobnosti kmalu …)

Page 73: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

B+ Drevo

!!"#$%#!&$'()*'*+!,+-.%/+&0'!1.,#$'2!/#!$+!)3'*'0#!4,3'&!5!0'6%7!!8+%3.0*'!$%3.0#!#9.*+!#0-'/$0'!1.,#$':!$.9+!1.!#$/.0*';

P0 K 1 P 1 K 2 P 2 K m P m

Indeksni zapis

Notranjastrani

strani (Sortirani po iskalnem ključu)

Listi

OPB, 2009/10

Primer B+ Drevo

• Poišči 28*? 29*? Vse > 15* in < 30*

• Insert/delete:

– Poišči podatkovni zapis v listu in ga spremeni.

– Včasih se pojavi potreba po restrukturiranju staršev…

– … spreminjanje vozlišč “nad” spremenjenim zapisom

(zbrisanim/vstavljenim).

2* 3*

Root

17

30

14* 16* 33* 34* 38* 39*

135

7*5* 8* 22* 24*

27

27* 29*

Zapisi <= 17 Zapisi > 17

Podatkovni zapisiv listih so soritirani

OPB, 2009/10

Razpršilni indeksi

• Dobra rešitev za selekcijo z enakostjo.

• Indeks je zbirka skupkov. – Skupek = primarna stran plus nič ali več prelivnih

strani. – Skupek vsebuje podatkovne vpise.

• Razpršilna funkcija h: h(r) = skupek k

kateremu pripada podatkovni zapis r. h

uporabi polja iskalnega ključa relacije r.– Ni potrebe po “indeksnih zapisih” v tej shemi.

OPB, 2009/10

Podatkovni vpis k*• Podatkovni vpis k* je lahko:

– Podatkovni zapis z vrednostjo ključa k.– <k, rid>

– <k, seznam rid>

• Izbira alternative za podatkovne vpise je

ortogonalna izbiri indeksne tehnike uporabljene

za iskanje podatkovnih vpisov z vrednostjo

ključa k.

– Primeri indeksnih tehnik: B+ drevesa, razpršilni

indeksi.

– Tipično indeks vsebuje dodatno informacijo, ki

usmerja iskanje želenih podatkovnih zapisov.

Page 74: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Podatkovni vpis - možnosti

• Možnost 1:

! V tem primeru je indeksna struktura datotečna organizacija.

! Alternativa neurejeni datoteki ali sortirani datoteki. .

! Samo en indeks nad dano zbirko podatkov lahko

uporabi možnost 1.

! Sicer imamo podvojene podatke, ki predstavljajo redundanco

ter možnost nekonsistence.

! V primeru, da podatkovni zapisi zasedejo veliko

prostora je število strani, ki vsebuje podatke veliko.

! Tipično je tudi količina dodatnih podatkov večja.

OPB, 2009/10

Možnosti za podatkovne vpise

• Možnosti 2 in 3:

! Podatkovni vpisi so tipično precej manjši kot podatkovni

zapisi.

! Boljše od možnosti 1 v primeru velikih podatkovnih zapisov, še

posebej če so iskalni ključi majhni (del indeksne strukture, ki je

namenjen iskanju je precej manjši kot pri alternativi 1.).

! Možnost 3 je bolj optimalna glede prostora od možnosti

2, vendar so zapisi variabilne dolžine tudi v primeru, da

so iskalni ključi fiksne dolžine.

OPB, 2009/10

Klasifikacija indeksov

• Primarni vs. Sekundarni: – Če iskalni ključ vsebuje primarni ključ potem imenujemo indeks primarni.! Unique indeks: Iskalni ključ je kandidatni ključ.

• Povezan vs. Nepovezan: – Če je urejenost podatkovnih zapisov enaka ali blizu urejenosti

podatkovnim vpisom potem pravimo, da je indeks povezan.

! Možnost 1 pogojuje povezan indeks; v praksi tudi obratno: povezan

indeks pogojuje možnost 1 (sortirane datoteke so redke).

! Datoteka je lahko povezana z indeksom po samo enem ključu.

! Cena branja podatkovnega zapisa preko indeksa zelo varira v odvisnosti

ali je indeks povezan ali ne!

OPB, 2009/10

Povezan vs. Nepovezan

indeks

• Recimo, da je možnost 2 uporabljena za podatkovne

vpise in so pod. zapisi shranjeni v neurejeni datoteki. ! Gradnja povezanega indeksa: najprej se sortira neurejena datoteka (prazen

prostore za bodoče zapise).

! Možna je uporaba so prelivnih strani za vstavljanje zapisov. V tem primeru je

urejenost podatkov “blizu” prave urejenosti.

Indeksni zapisi

Podatkovni vpisi

usmerjajo iskanje

(Indeksna datoteka)

(Podatkovna datoteka)

Pod. zapisi

podatkovnih vpisov

Pod. vpisi

Pod. zapisi

!"#$%&' '$!"#$%&'

Page 75: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Cenovni model za analizo

Poenostavitev: ignoriramo ceno CPU:

! B: Število podatkovnih strani.

! R: Število zapisov na strani.

! D: Povpr. čas branja ali pisanja diskovne strani.

! Merjenje števila branja/pisanja strani iz/na disk.

! Ignoriramo branje vnaprej.

! Tudi I/O cena je aproksimacija.

! Analiza:

! Poenostavitve: CPU,prepostavke enakomerne porazdelitve,

itd.

!"#$%&'()"%&*+&",$"-+).$,"'-/&01)2"(+31%&45OPB, 2009/10

Primerjava datotečnih

organizacij

" Neurejena datoteka (vstavljanje na koncu)

" Sortirana datoteka, urejene po iskalnem ključu

" Povezano B+ drevo na osnovi iskalnega ključa,

Možnost 1

" Neurejena datoteka z nepovezanim B + drevesom

po iskalnem ključu

" Neurejena datoteka z nepovezanim razpršilnim

indeksom po iskalnem ključu

OPB, 2009/10

Operacije

" Pregled: branje vseh zapisov iz diska

" Iskanje z enačajem

" Iskanje področja

" Vstavljanje zapisa

" Brisanje zapisa

OPB, 2009/10

Predpostavke v analizi

• Neurejene datoteke:

! Iskanje z enačajem; samo en zapis se ujema.

• Sortirane datoteke:

! Datoteke so stisnjene po brisanju zapisov.

• Indeksi:

– Možnosti (2), (3): velikost pod. vpisa = 10% zapisa

! Razpršilni indeks: ni prelivnih strani.

! 80% zapolnjen ==> velikost datoteke = 1.25 količina pod.

! Drevo: 67% zapolnjeno (tipično).

! Velikost datoteke 1.5 6 količina podatkov

Page 76: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Predpostavke v analizi

• Pregled:

– Listi drevesa so med sabo povezani v seznam.

– Pregledujemo indeksne zapise in podatkovne zapise

za nepovezan indeks.

• Iskanje področja:

– Drevesne indekse uporabimo za omejitev množice

prebranih podatkovnih zapisov.

OPB, 2009/10

Ocene operacij

! "#$!%&'()'*! "+$!,-#./01! "2!$!%/*&/34'! "*$!5-0'&1! "'$!6')'1'!

"7$!8'9&:!*#1!! ! ! ! ! !

";$!<&'4'-:!*#1!! ! ! ! ! !

"=$!%/>'?#-!*&'>'0-@!@-*!

! ! ! ! !

"A$!8'B/>'?#-!*&'>'0-@!!@-*!

! ! ! ! !

"C$!8'B/>'?#-!&#?B&D:!@-*!

! ! ! ! !!

!Ocene slonijo na precej predpostavkah!

OPB, 2009/10

Ocene: Neurejena datoteka

• Pregled: B*D– Branje celotne datoteke

• Enakost: 0.5*B*D– V povprečju pregledamo polovico datoteke

– Če zapisa ni pregledamo celotno datoteko!

• Področje: B*D– Nujno je pregledati celotno datoteko

• Insert: 2*D – Vstavljanje na konec datoteke; branje + pisanje ene strani

• Delete: Iskanje+D– Iskanje vsebuje branje strani

OPB, 2009/10

Ocene: Urejena datoteka

• Pregled: B*D• Enakost: D*log 2 B

– Binarno iskanje; ni všteto iskanje zapisa po eni strani

• Področje: D*(log 2 B + #strani z iskan. zapisi)– Binarno iskanje + branje rezultatov

• Insert: Iskanje+ B*D– Predpostavimo, da je najden zapis na sredini

– Pri vstavljanju je potrebno prepisati polovico datoteke (2*1/2*B*D)

• Delete: Iskanje+B*D– Enako kot pri vstavljanju zapisa.

Page 77: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Ocene: Povezano B+ drevo

• Pregled: 1.5*B*D– Velikost datoteke 1.5 ! količina podatkov.

• Enakost: D*log F 1.5B– F je število indeksnih zapisov v vozlišču drevesa.

– Višina drevesa = log F 1.5*B strani

• Področje: D*(log F 1.5B + #str z isk. zapisi)– Enakost + branje iskanih strani

• Insert: Iskanje+ D – Iskanje vsebuje branje pod. strani + zapis podatkovne strani (D)

– Ni všteto morebitno popravljanje drevesa.

• Delete: Iskanje+D

OPB, 2009/10

Ocene: Nepovezano B+ drevo

• Pregled: B*D*(R+0.15)– Ena stran za vsak pod. zapis = B*D*R

– Pod. vpisi 10% ; drevo = 1.5 podatkov

– Velikost drevesa = 0.1 * B*D * 1.5 = B*D*0.15

• Enakost: D*(1+ log F 0.15*B)– Višina drevesa = log F 1.5*B strani

– … + ena podatkovna stran

• Področje: D*(log F 0.15*B + #strani z isk. zapisi) – Enakost + branje iskanih strani

• Insert: Iskanje + 2*D– 2*D = branje in pisanje pod. strani

• Delete: Iskanje + 2*D

OPB, 2009/10

Ocene: Razpršilni indeks

• Pregled: B*D*(R+0.125) – Pod. vpisi 10% ; r.datoteka 80% zapolnjena (1.25)

– Velikost r.datoteke = 0.1 * BD * 1.25 = B*D*0.125

– Ne upošteva se vmesni pomnilnik !

• Enakost: 2*D – Podatkovni vpis + podatkovni zapis

• Področje: D*(B*0.125 + #strani z isk. zapisi)– Celotnen indeks + iskani zapisi

• Insert: Iskanje+ 2*D – 2D = branje + pisanje strani

• Delete: Iskanje+ 2*DOPB, 2009/10

Ocene operacij "#$%&'()*(+ ",$%-.#/012 "3%$%&0+'045( "+$%6.1('2 "($%7(*(2(

"8$%9(:'(5(;+#202(/#%

!" #$%!" !" &" '()*+,-

.""<$%=0'2>'#.#+#202(/#%

!" "/012&! "3/012&2!2.

42(562728()*+$

7*98(8:

'()*+,-

.2!"

'()*+,-

.!"

"?$%&0@(A;BC%>.+(/1

;$%!" "/012<2;$%! "3/012<2;$%!

.242(562728()$

7*98(8:

'()*+,-

.2"

'()*+,-

."

"D$%9(E0@;BC%>.+(/1

!"3=.#$;%: "3;2.

/012<2#$;%!:

"3/012<2#$;%!

.242(562728()$

7*98(8:

'()*+,-

.2&"

'()*+,-

.2&"

"F$%G#AE'H;6.+(/1

!"3=.#$;&%:&" "3!>#$;&%2.

42(562728()$27$:

'()*+,-

.2&"

'()*+,-

.2&"!I3(.(%1*0.>50%.#%E'(3(5%E'(+E012#@/#JK

Page 78: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Delovna obremenitev

• “Delovna obremenitev” vsebuje vse poizvedbe, ki jih dana

aplikacija generira.

• Splošno:

! Študij tipov UPDATE/INSERT/DELETE/UPDATE in atributov, ki

sodelujejo.

• Za vsako selekcijo v delovni obremenitvi:

! Katere relacije dosegajo?

! Katere atribute izbere?

! Kateri atributi sodelujejo pri pogojih za izbiranje in stike? Kako

selektivni so pogoji?

• Za vsak update v delovni obremenitvi:

! Kateri atributi sodelujejo v pogoju izbire ali stika? Kako selektivni so

pogoji?

OPB, 2009/10

Izbor indeksov

• Katere indekse naj kreiramo?

! Katere relacije naj imajo indekse?

! Katera polja naj bodo iskalni ključi?

! Naj zgradimo več indeksov na eni relaciji?

• Kakšen indeks izbrati?

– Primarni – Sekundarni

– Povezan – Nepovezan

– Razpršilni - Drevo

OPB, 2009/10

Izbor indeksov

• Pristop:

– Izberi najbolj pomembne poizvedbe.

– Kateri indeksi lahko pohitrijo posamezno poizvedbo?

– Ali izbrani indeksi pokrijejo vse poizvedbe?

• Ozadje:

– Potrebno je poznavanje notranjih struktur SUPB.

– Potrebno je poznavanje plana evaluacije poizvedbe.

• Vpliv indeksov na popravljanje tabel:

! Trade-off: Hitrost izvajanja vprašanj VS počasnost vnosov.

• Indeksi potrebujejo precej diskovnega prostora.

OPB, 2009/10

Izbor indeksov

• Izbor atributov za iskalne ključe:

– Atributi v pogoju izbire (where s.) so kandidati za iskalne

ključe.

• Splošno:

– Izberi indekse, ki pohitrijo čim večje število poizvedb.

– Ker je lahko samo en indeks povezan z relacijo izberi

povezanost indeksa na osnovi najpomembnejših

vprašanj.

Page 79: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Smernice za izbor indeksov

• Izbiranje z enakostjo sugerira uporabo razpršilnih indeksov.

• Izbiranje po področju sugerira uporabo drevesnih indeksov.

• Povezani indeksi so dobri za iskanje po področju in iskanje z

enakostjo v primeru velikega števila dvojnikov.

• Indeks z več atributi v iskalnem ključu je dobro izbrati pri velikem

številu pogojev v iskalnih zapisih.

• Vrstni red atributov pri indeksu z več atributi je pomemben.

• Upoštevaj možnost evaluacije poizvedbe samo z indeksi.

• Povezanost indeksa s tabelo ni pomembna pri poizvedbah samo z

indeksi.

• Več na predavanju 10 – Fizično načrtovanje relacijskih PB

OPB, 2009/10

Povzetek

• Obstaja veliko alternativnih dat. organizacij; vsaka

je primerna za določene situacije.

• Indeks je zbirka podatkovnih referenc in struktura

in/ali algoritem za hitro iskanje pod. referenc.

• Podatkovne reference so lahko: podatkovni zapisi,

<ključ, rid> ali <ključ, rid-list>

• Tabela ima lahko več indeksov z različnimi

iskalnimi ključi.

OPB, 2009/10

Povzetek

• Indeks je lahko: povezan/nepovezan, primarni/

sekundarni, razpršilni/drevesni.

• Pri pogostih selekcijah je priporočljivo zgraditi

indeks ali datoteko urediti.

! Razpršilni indeksi so dobri za iskanje z enakostjo.

! Urejene datoteke in drevesni indeksi so dobre za

iskanje po področju.

! Datoteke so redko sortirane v praksi; B+ indeks je

boljši.

OPB, 2009/10

Povzetek

• Poznavanje narave delovne obremenitve aplikacije

je pomembno pri načrtovanju podatkovne baze.

! Katere so pomembne poizvedbe?

! Kateri atributi sodelujejo ?

• Indeksi morajo biti kreirani za pohitritev pomembnih

poizvedb.

! Indeksi upočasnijo dodajanje, brisanje in popravljanje zapisov.

! Izberi indekse, ki izboljšajo izvajanje več poizvedb.

! Zgradi indekse, ki podpirajo evaluacijo samo z indeksi.

! Indeks povezan z datoteko je lahko en sam.

! Urejenost polj v sestavljenem indeksu je pomembno.

Page 80: Osnove Podatkovnih Baz --skripta-- 2010/2011

Datoteke in indeksi

1. Koliko blokov/strani zasede datoteka z določeno organizacijo?

B naj bo število strani v datoteki:

- neurejena datoteka (kopica) s seznamom - neurejena datoteka (kopica) z direktorijem - urejena datoteka - datoteka s povezanim drevesnim indeksom - datoteka z nepovezanim drevesnim indeksom - datoteka s povezanim razpršilnim indeksom - datoteka z nepovezanim razpršilnim indeksom

2. Koliko blokov/strani je potrebno prebrati ob danem vprašanju? Predpostavimo, da samo 1 zapis ustreza enakosti:

datotečna organizacija enakost (=) področje (<,>) neurejena datoteka urejena datoteka B+ drevo povezano B+ drevo nepovezano razpršilni indeks povezan razpršilni indeks nepovezan

3. Oceni porabljen čas pri dani akciji Branje vseh zapisov Iskanje enakosti Iskanje območja Vnašanje Brisanje

za naslednje datotečne organizacije

Neurejena Datoteka (Kopica), Sortirana (urejena) datoteka, Povezana datoteka B+, Kopica z nepovezanim B+, Kopica z nepovezanim razpršilnim indeksom

Predpostavke B je število strani v datoteki (vse strani polne) R je število zapisov na strani D je čas branja in pisanja strani iz diska in nazaj na disk = 15 ms C je čas procesiranja zapisa na strani (npr. primerjanje zapisa z vrednostjo) = 100 nano sekund H je čas za izvedbo razpršilen (Hash) funkcije nad zapisom = 100 nano sekund F je povprečno število listov na vozlišče v drevesu = 100

Page 81: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 82: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Pregled evaluacije poizvedb

Iztok Savnik, FAMNIT

OPB, 2009/10

Vsebina

• Pregled evaluacije vprašanj v relacijskem SUPB

• Podatki, podatki o podatkih in sist. katalogi

! SQL vprašanja prevedemo v razširjeno RA

! Razširjena RA vsebuje oznake algoritmov

! Iskanje izraza RA, ki se najhitreje evaluira =

optimizacija poizvedb

! Algoritmi za evaluacijo relacijskih vprašanj

• Tipični relacijski optimizator poizvedb

OPB, 2009/10

Program v SUPB

• Kaj je program v SUPB?– Drevo operacij relacijske algebre.

– Izberemo lahko algoritem za vsako posamezno

operacijo.

• Drevo iteratorjev.

" Vsaka operacija je implementirana z iteratorjem.

" Vmesnik iteratorja: open(), next(), close()

" Klic operacije next() sproži evaluacijo operacije next() na

otrocih operacije; nad rezultati izvede svojo kodo.

• Dobimo drevesno strukturiran cevovod po katerem

se pretakajo n-terice.

OPB, 2009/10

Primer drevesa operacij

Rezervacije Mornarji

mid=mid

lid=100 ocena > 5

mimeProjekcija

Selekcija

Stik

Relaciji

Page 83: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Evaluacija drevesa operacij• Kako evaluiramo drevo RA operacij?

– Logična in fizična optimizacija. Nivoji se zelo prepletajo!– Implementacija rel.optimozatorja = 40-50 človek/let– Evaluator dreves RA

! Logična optimizacija" Iščemo izraz relacijske algebre, ki se najhitreje izvede." Da bi ocenili izraz relacijske algebre je potrebno določiti fizično

implementacijo drevesa RA.

! Fizična optimizacija." Iščemo optimalne algoritme za izvajanje RA operacij." Fizična optimizacija se prepleta z logično optimizacijo.

! Evaluacija drevesa RA" Algoritmi za izvajanje relacijskih operacij.

OPB, 2009/10

Uvod v algoritme RA

• Ogledali si bomo algoritme za izvajanje relacijskih operacij

• Nobeden algoritem ni superioren – vsak se uporablja za določene vrste relacij

• Fizična optimizacija je izbor konkretnih metod dostopa in algoritmov za RA operacije

OPB, 2009/10

Pogosto uporabljene tehnike• Algoritmi za evaluacijo rel. operacij pogosto

uporabljajo nekaj enostavnih idej: – Indeksiranje: Uporaba pogojev iz stavka WHERE

za izbiro majhnega št. n-teric pri selekciji in stikih.– Iteracija: Včasih hitreje pregledamo vse n-terice

čeprav je na razpolago indeks. • Včasih je koristno izvesti iteracijo po podatkovnih vpisih

indeksa namesto na sami tabeli.– Particije: Velikokrat koristi razdeliti problem na več

enakih delov – s tem zamenjamo izvajanje časovno potratnih operacij z podobnimi operacijami nad manjšim številom n-teric.

* Bodimo pozorni na te tehnike pri opisu izvajanja operacij!OPB, 2009/10

Statistike in katalogi• Podatki o relacijah in indeksih v podatkovni bazi. • Katalogi običajno vsebujejo:

" # n-teric za vsako relacijo." # strani za vsako relacijo." # št. različnih vrednosti za ključ indeksa." # št. strani za vsak indeks." višina indeksa, najnižja/najvišja vrednost ključa za vsak drevesni indeks.

• Katalogi se ažurirajo periodično." Sprotno ažuriranje je preveč drago. " Ker je veliko pribljižkov je majhna nekonsistenca OK.

• Včasih so shranjene bolj podrobne vrednosti.– Npr. število posamezni vrednosti za atribut relacije.

Page 84: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Metode dostopa! !"#$%&'%$(#$)&'*"'&+,-'.&'/(0&1*"'12#"3/4'3"+&4/*"5

" 63",+"%'%&#$#"0"'78/+"'(4&19-

" :$(#$)'.'/1%"0($;<'0/'("'=*";&'.'&#3/>=#/'?')$,$*='/.>/3"-

! :3"?"(1/'/1%"0(5'! ("'=*";&'.'&#3/>=#/'?')$,$*='/.>/3"'?')3/;"3='%&'($'&#3/>=#/')3"8/0('

/(0&+1",&'0+*=@&-'

" 63/;"35''%3"?"(1/'/1%"0('1&%'A!"#$"#%B''("'=*";&'.'/(0&+1/;')$,$*";''!&'#()*#+$&,-#'/1'.''C!&'#()*#$./-<''#$%&'1"'#=%/'.''-$&,--

! D&.)3E/+1/'/1%"0(5'! ("'=*";&'.'&#3/>=#/'?')$,$*='$>+/0"''!012$30&41567890''.&'?(&0'

&#3/>=#'/.'/(0&+1",&'0+*=@&'/1%"0(&-

" 63/;"35''3&.)3E/+1/'/1%"0('1&%'A!"#$"#%B'("'=*";&'(')$,$*";'C!&'#()*#$&,#()*#%&'-F'''1"'=*";&')&'("'(')$,$*/''C$&,-"##+!&'#()*#$&,-"##&+/##+!.'#()*#$&,#()*#%&'--

OPB, 2009/10

Selektivnost metode dostopa

• Koliko strani prebere dana metoda dostopa?• Najbolj selektivna metoda dostopa izbere najmanj

n-teric• Selektivnost metode dostopa je odvisna od

osnovnih konjunkcij in selektivnosti pogojev• Vsaka konjunkcija je filter nad tabelo• Redukcijski faktor metode dostopa = delež n-teric,

ki so izbrane z metodo dostopa

OPB, 2009/10

Selektivnost metode dostopa

• Primer 1:– Imamo razpršilni indeks H na <mime,lid,mid> za tabelo

Mornarji– Imamo pogoj „mime='Tone' and lid=10 and mid=19“– Katalog: Nkeys(H), Npages(Mornarji)– Selektivnost: Npages(Mornarji) * 1/Nkeys(H)

OPB, 2009/10

Selektivnost metode dostopa

• Primer 2:– Redukcijski faktor a področja– Pogoj: dan > 12/12/09– Dano je B+ drevo T na atributu dan.– Redukcijski faktor je (High(T) - vrednost)/(High(T)-Low(T))

Page 85: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Algoritmi za implementacijo RA

• Ogledali si bomo osnovne algoritme za relacijske

operacije

• Upoštevamo samo V/I ceno v št. prebranih blokov

OPB, 2009/10

Selekcija

• Prevajanje pogoja izbire v KNO

• Iščemo najbolj selektivne pogoje

• Najmanjše število prenosov I/O blokov

• Uporaba indeksov pri metodah dostopa

• Uporaba samih indeksov pri selekciji

OPB, 2009/10

Projekcija

• Pregled vseh n-teric relacije in izbor atributov

• Najdražja operacija je odstranitev duplikatov

• Uporaba sortiranja

• Uporaba razpršilnih funkcij

OPB, 2009/10

Stik

• Stik z vgnezdeno zanko

• Stik z drevesnim indeksom

• Stik z vgnezdeno zanko po blokih

• Stik z zlivanjem

• Stik z razpršilnim indeksom

Page 86: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Uvod v optimizacijo poizvedb

• Ogledali si bomo optimizator System R

– 1972 (IBM).

– Najbolj razširjen algoritem za optimizacijo.

– Deluje dobro za < 10 stikov.

• Prostor planov izvajanja

– Levo-v-globino, grmičevje

• Ekvivalence relacijske algebre

• Optimizacijski algoritmi

• Ocena plana izvajanja

OPB, 2009/10

Kaj optimiziramo?

• Opisni parametri

! Pretok

! Št. pretočenih n-teric naj bo čim manjše. Po nepotrebnem naj nebi

brali n-terice. Optimizacija poizvedb -- naslednje predavanje!

! Velikost n-teric

! N-terice naj bodo čim manjše. Navzgor ne prenašamo atributov, ki

jih ne potrebujemo v višjem delu drevesa.

! Izvajanje iteratorja

! Optimalen algoritem za izvajanje operacij.Stik z indeksom,

zlivanjem, …

• Kvantitativni parametri

– Število prebranih blokov iz diska!

– Zanemarimo vrsto parametrov.

Rezervacije Mornarji

mid=mid

lid=100 ocena > 5

mimeProjekcija

Selekcija

Stik

Relaciji

OPB, 2009/10

Optimizacija poizvedb

• Kako optimiziramo izvajanje?

! Preiskovanje prostora rešitev – ekvivalentnih izrazov.

! Uporaba ekvivalenc RA.

! Izračun ocene plana je zelo pomemben.

! Pri izračunu je potrebno vedeti kako se bo izvršila konkretna operacija.

! Ocena plana = št. prebranih/napisanih blokov.

• Relacijski optimizator

– Konreten primer relacijskega optimizatorja si bomo ogledali na

naslednjem predavanju.

– Optimizator System-R (IBM).

– Uporaba dinamičnega programiranja.

• Evaluacija poizvedb:

– Izbor optimalnega algoritma za izvajanje posameznih operacij?

– Fiični nivo optimizacije.

– Pregled algoritmov za izvajanje operacij!

Rezervacije Mornarji

mid=mid

lid=100 ocena > 5

mimeProjekcija

Selekcija

Stik

Relaciji

OPB, 2009/10

Cena planov izvajanja

• Za vsak plan je potrebno narediti oceno.

" Potrebno je narediti oceno hitrosti izvajanja

vsake operacije v drevesu.

• Odvisna je od kardinalnosti vhodnih relacij.

• Pogledali smo si že ocene za nekatere operacije, npr.

pregled tabele, indeksni dostop, itd.

" Potrebno je narediti oceno velikosti rezultata

vsake posamezne operacije drevesa!

• Uporabi podatke o vhodnih relacijah.

• Za selekcije in stike predpostavi neodvisnost pogojev.

Page 87: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Ocena velikosti rezultatov operacij

• Maksimalno število n-teric:

– Produkt kardinalnosti relacij v FROM stavku.

• Selektivnost izraza stavka WHERE:

– Selektivnost izraza je sestavljena iz selektivnosti vseh pogojev.

– Selektivnost pogoja (SP) = delež relacije, ki je rezultat selekcije.

• Kardinalnost rezultata

– Max # n-teric * produkt vseh SP.

OPB, 2009/10

Povzetek

• Obstaja veliko različnih alternativnih algoritmov za evaluacijo

relacijskih operacij.

• Poizvedba se ovrednoti s prevedbo v drevo in evaluacijo

operacij drevesa.

• Uporabnik mora razumeti optimizacijo poizvedb, da bi lahko

razumel vpliv načrtovalskih odločitev na izvajanje poizvedb

aplikacije.

– Relacijski SUPB vsebujejo ukaze za izpis plana poizvedb.

• Dva dela optimizacije vprašanj:

! Pregledati je potrebno vse alternativne plane izvajanja poizvedbe.

! Iskalni prostor je potrebno omejiti zaradi velikega števila ekvivalentnih poizvedb.

! Potrebno je narediti oceno izvajanja vsakega plana poizvedbe.

• Oceniti je potrebno velikost rezultatov ter hitrost izvajanja operacij.

• Ključni elementi: Statistike, indeksi, implementacije operacij.

Page 88: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 89: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-.,/01,%23-,/014506%7832,/01

9:;75%<,+=05$%>?@A9B

!"#$%&'(')((%%%%%%%%

9C8-3C3=;,/01,%D?

E !F-3G,-0%40%H7C7%0C8-3C3=;,/017I%

J <3-35/01,%K%L%M%

J "27135/01,%K%N%M%

J <;05%K%!"M%

J D,:-05,%K%O%M%

J P=01,%K#M%

J ?F23F,/01453%78Q%K<P@$%@9A%$%0;GQM%0=%RD!P"S#T

E !832,/013%+2,U,17%23-,/013%$%-,657%106%434;,+-1,C7V

!"#$%&'(')((%%%%%%%%

<63C,%:,%820C323

! "7G7H=7%57;%4;,2,%463C,W%G7G,=%!"#$%! D3:32+,/013I

" X4,5,%=S;320/,%0C,%Y'%:-7F7+$%%(''%=S;320/%=,%4;2,=$%('''%4;2,=0Q

! @72=,210I" X4,5,%=S;320/,%0C,%Z'%:-7F7+$%%['%=S;320/%=,%4;2,=$%Z''%

4;2,=0Q%

%&'()'*+",!"#-"+(./0/'1"!$%&'-"2.'+(01"(%)"$*-"+(./0/'1"%*'-"'/)345/6/'7)8+*/",!"#-"+(./0/'1"+"#-"+(./0/'1"#%,-"9)./21"($%&'-"2.'+(04

!"#$%&'(')((%%%%%%%%

\.=,=13%472;02,=13%:%:-0+,=13C

E A3%87;23H.13C7%+3-057%87C=0-=05,%:,%472;02,=13%+3-0506%G,;7;35

E XC34=0%87C=0-=05%K0:2,+=,-=05M%<P"#%.872,H0C7%:,%8760;20;3+%,-F720;C,

E PU0=57+0;%,-F720;3CI%

J A%4;2,=0%G,;7;353$%#%4;2,=0%0:2,+=,-=05,I

J ]3=,I%&^A^K(_-7F#S(

KA)#MM

Page 90: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-./01,%-,0230415/6%7%3804+14913:3

; "0/<,=%(6%"0/>/03%-2041$%5,%-,023045$%5,%14?3@3A! B?,04>3.,%-4.,%/1,%-2041%3804+14913:4

; "0/<,=3%&$%7$%C$%32=A6! %B?,04>3,%203%-20413%3804+14913:4A

!"#$%&'&()*%+,--').

/0123%4

/0123%5

623123

7#.87#.8

!"#$%&'(')((%%%%%%%%

*+,-./01,%8D1415/%-,0230415/%8%893+415/.

; E%+-4:/.%?0/<,=D%?0/>/0/.,%F%84?3@/.,%+-4:,%-2041%=42,2/:/

; G%-20413%=42,2/:/%HI%@2/+39,%?0/<,=,+

; J/9,214%K/146

%; !"#$%&''

L (#)*'*+',)%"%$!""

L -,023045%?,=M=42,2/:/%31%8=0DN3%2,:,+4

"# log2N $%1

2N &# log2N $%1 '

!"#$%&'()*

+,#-.*&/$"0

1,#-.*&/$"0

2,#-.*&/$"0

3,#-.*&/$"0

4566&7

4566&+

4566&1

4566&8

9

8:2 ;:1 9:2 3:< =:; 8:+ 1

8:2 =:;1:; 2:9 <:3 +:8 1

1:8

2:;

2:<

3:9

+:8

=:; 1

1:8

2:2

;:<

3:9

+:1

8:=

;

+:1

1:8

8:2

2:=

;:;

<:3

!"#$%&'(')((%%%%%%%%

O?9,@1,%8D1415/%-,0230415/%8%893+415/.

; P4%-,0230415/%=42,2/:/%8%G%-2041.3%31%?03%D?,04>3%-%-20413%3804+14913:46! "0/<,=%'6%D?,04>3%-'-20413%3804+14913:4A%G40/=3%%%%%%%%%%D0/5/13<%+0-2%

=,9N31/%-%-20413A'! "0/<,=%&$%C$%%32=A6%8935%-./'+0-2A%

#N (B$

9%!"#$%&'&()*%+,--').

/0123%4

/0123%9:4

623123

7#.87#.8

/0123%5

!"!"! !"!"!

!"!"!

) !"#$#%!&'(!)%*!+!,*-$./!/0-$&.$1./)$2!3$)%!4/5!1$5)%!67%-$8/#%9

!"#$%&'(')((%%%%%%%%

J/14%8D1415/Q4%-,02304154%8%893+415/.

; R2/+39,%?0/<,=,+6; J/14%H%&G%S%TU%?0/<,=,+V; G?0A$%W%-20413%3804+14913:4$%-,02304.,%=42A%

+/93:,-23%('X%-204136! "0/<,=%'6%%%%%%%%%%%%%%%%%%%H%&&%-,0230413<%+0-2%?,%W%-20413%

T84=154%+0-24%3.4%-4.,%7%-20413V%! "0/<,=%(6%%%%%%%%%%%%%%%%%H%Y%-,0230413<%+0-2%?,%&'%-20413%%

T84=154%+0-24%3.4%X%-20413V! "0/<,=%&6%%&%-,0230413%+0-23$%X'%-20413%31%&X%-20413! "0/<,=%76%%O,0230414%=42,2/:4%+/93:,-23%('X%-20413

1%# logB*1#N (B$ $

#108 (5$

#22 (4 $

Page 91: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,+-./01

2 "3430%/56/7+%0+%81097+0%97+:+;+8%:%!"#$%!&'(#")#"*+,-#")".-'!")<=>!?@%%%%%%%%%%%%%%%%%%%%%

%%%%/0,#1234345)67)-'089)67)+'08:);)<=>)))))))))))/+'+?8@A,#?BC)67)-'089)67)+'08:;)

2 !671:81:1A3%B1A3%97/A+7+%67+5%!CD%%%%%%-80/41%97+;BE1:,01%EF;/%B9,3G8+%97/A+7+H

!"#$%&'()()*!+,-!./.0123$%0456!78!9/#1:!78!./#1;

!"#$%&'(')((%%%%%%%%

!B83:8/%97/BE39

2 I,437/E+A@J "3/GK/%81063,0%B+,+-E/:8+%A+E3;+%;3BE391%/8%5%80/A/%93/GK/%8LE+7/.+HJ !:7+;83E/%97+3BE1,+%93430+%81;%/56718/A/%8LE+7/.1A/H

2 *+,+-E/:83BE%934301@J M+,+N%7+,1./0+$%-/%0+%7+5F,E1E%B+,+-./0+%5%;18/A%93430+AHJ O/A%63,0%0+%B+,+-E/:+8%93430%A180G/%0+%7+5F,E1E%B+,+-./0+H

2 *+,+-E/:83BE%A+E3;+%;3BE391@! P+E3;1%;3BE391%/57151%51%-1E+7+41%3.+8/A3$%;1%63%51QE+:1,1%%%%%%%%

810A180G+%GE+:/,3%97+83B3:%6,3-3:%/5%;/B-1H%! *+,+-E/:83BE%A+E3;+%;3BE391%F93GE+:1%B+,+-E/:83BE%934301%E+7%%%%%%%

B1A3%A+E3;3%;3BE391H

!"#$%&'(')((%%%%%%%%

!B83:8/%97/BE39

2 =3A+8E170/@J R56/71%8LE+7/.%5%81063,0%B+,+-E/:8/A/%93EA/%39E/A/5/71%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

GE+:/,3%/56718/Q%8LE+7/.J "7+3BE1,/%93430/%;3;1E83%/56+7+03%93;A83N/.3%8LE+7/.%/56718/Q%5%81063,0%

B+,+-E/:8/A/%/5715/HJ "7+3BE1,/%93430/%8+%:9,/:103%81%GEH%BE718/%97+6718/Q%/5%;/B-1H

2 "7/A+7@! "7/A+7%/57151@%%0,#1234345)<=>)-'089)<=>)+'08:D%! S1Q-3%F93716/A3%#T%;7+:3%51%/5715%U0,#1234345E)F0+%81063,0%B+,+-E/:+8H%! >1E3%F93716/A3%93430%U-'089%18;%+'08:E)51%B+,+-./03%/5%/56718/Q%5%

97+0G80/A%93430+AH%! "3;3683@%,1Q-3%F93716/A3%71597G/,8/%/8;+-B%%81%V-'0G)+'0WD%97+:+7/E/%

A371A3%G+%U0,#1234345ED)

!"#$%&'(')((%%%%%%%%

X937161%/8;+-B3:%51%B+,+-./03

" Y+81%0+%3;:/B81%3;%Z/56718/Q%519/B3:%/8%3;%93:+5183BE/%/8;+-B1@! Y+81%/B-1801%/56718/Q%93;1E-3:8/Q%:9/B3:%<E/9/K83%A10Q83?%! Y+81%671801%519/B3:%<0+%,1Q-3%:+,/-1%67+5%93:+5183BE/%/8;+-B1?H! "7/A+7@%K+%97+;93BE1:/A3%+81-3A+783%93715;+,/E+:%93E+A%('[%519/B3:%

FBE7+51%93430F%<(''%BE718/$%(''''%519/B3:?H%%\%93:+518/A%/8;+-B3A%0+%.+81%8+-10%:+K%-3E%(''%])RD%K+%91%8/%93:+518%91%;3%(''''%])R^

" H"+?+.#,)'B."-$I,(,)B,)#?J"(?B,#?)'#0?!K?@%%(H%"3/GK/%/56718+%93;1E-3:8+%:9/B+

&H%*37E/7180%7/;L0+%93;1E-3:8/Q%519/B3:$%-/%B+%63;3%671,/

_H%"7+6+7/%7/;L0+%93%:7BE/H%%`3%5143E1:,01$%;1%0+%:B1-1%93;1E-3:81%BE718%97+67181%B1A3%+8-71EH%

! Z%E1-G8/Q%BE718/%0+%:+70+E83%:+K0+%-3E%97/%93:+518+A%/8;+-BF%

Page 92: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

"*+,+-%*./01+2

! 3*45.%6*.,7869%:+%.;<;8%=<%*<>68?<58%/2<%<?.%2+:%.=/+-,82%>%<?7+*=<7.2<;<%@&A%<?.%@BA%><%68/<7-82=+%26.,+9" "*+C+*.%;=8D.E+%*./01+2%68/<7-82=F%><6.,82%>%468*<C8%6*.;+*=+5<%

.=/+-,<G%" "87+;%=<*+/.%!"#$#%%68.,-<=.F%;=8D.E%*./01+2G" "*+C+*.%><6.,+%.=%468*<C.%6*+8,7<?+%68581+%.>C.*+G%" "85?+1;8%,.%68581%&'()*+,+,-./01.23&45./01.$3&467%

! H+%.;<;8%#I%/*+28%=<%<7*.C474%&'(%.=%*<>6*J.?=.%.=/+-,%=<%$3&$%8C<%468*<C?1<7<%<?7+*=<7.28%@&AG

! "8.J:+;8%?<F-89! *./01+%><6.,82$%-.%></8J:<18%&'()*+,+,-8.

! "3&9:#.;'!3$<=8.%3.;'&<>?':<.$3&46$%! =<*+/.;8%6*+,+-%.=%6*+2+*.;8%23&457%

!"#$%&'(')((%%%%%%%%

"*81+-E.1<

K "*.;+*9

K L=8,7<2=<%*+J.7+2%C*+>%.>?8:.72+%/46?.-<7829M "*+5?+/%2,+F%=07+*.E%*+?<E.1+%.=%.>C8*%<7*.C4782G

K N<1/*<D1<%86+*<E.1<%1+%8/,7*<=.7+2%/46?.-<782G%M OP"#%=+%8/,7*<=.18%/46?.-<7+$%:+%=.%,6+E.Q.E.*<=<%-?14:=<%C+,+/<%

3ROSRNTS%2%,7<2-4%OLULTSG

K O8*7.*<=1+9%%M O8*7.*<1%68%V;./$%?./W%.=%8/,7*<=.%/46?.-<7+GM !67.;.><E.1<9%8/,7*<=.%=+687*+C=+%68/<7-+%;+/%,8*7.*<=1+;G

"#$#%&'''()"&)*%&'''''''''''''''+,-./0'+,1./2+34'''''+565789:.;5'+

!"#$%&'(')((%%%%%%%%

"*81+-E.1<%

! P68*<C<%>4=<=1+5<%,8*7.*<=1<9%" O6*+;+=.%,8*7.*<=1+%>%>?.2<=1+;%7<-8$%/<%,+%.>?8:.18%

-8;68=+=7+%><6.,<G%! O8*7.*=+%2*,7+%,8%;<=1J+%-87%2F8/=+%=07+*.E+X%8/2.,=8%8/%

2+?.-8,7.%68?1G" O6*+;+=.%Q<>8%>/*4D+2<=1<%7<-8$%/<%,+%.>?8:.18%

/46?.-<7.G%%%! Y7+2.?8%=07+*.E%2%*+>4?7<74%1+%;<=1J+%8/%2F8/<%@=.%/46?.-<782A

" T+=<9%%! T+=<%,8*7.*<=1<9%Z[?85

&Z

! "*+C+*.%8*.5.=<?=8%*+?<E.18%2+?.-8,7%Z%.=%.>6.J.%;<=1J+%=07+*.E+G%! "*.%>/*4D+2<=14%/8C.;8%;<=1J+%J7+2.?8%=07+*.EG%%%

"#$#%&'''()"&)*%&'''''''''''''''+,<./0'+,=./2+34'''''+5<5785<'+

!"#$%&'(')((%%%%%%%%

"*81+-E.1<K "*.;+*9

K P68*<C<%*<>6*J.?=+5<%.=/+-,<9M O%-*+<E.18%*<>6*J.?=+5<%.=/+-,<%=</%)@3&8.A3&B%/8C.;8%6<*7.E.1+X%%%

Q4=-E.1<%CDGM "*+C+*.%2,<-8%6<*7.E.18%2%/.=G%68;=.?=.-4$%,8*7.*<1%7<C+?8%2%/.=G%

68;=.?=.-4%7+*%+?.;.=.*<1%/46?.-<7+GM H+%,+%6<*7.E.1+%6*+2+?.-+%*+-4*>.2=8%68=82.%68,786+-%>%*<>6*J.?=8%

Q4=-E.18%CEG

K H+%D+%8C,7<1<%.=/+-,%>%F7@3&%.=%F7A3&%2%.,-<?=+;%-?14:4%+=8,7<2=8%,8*7.*<;8%68/<7-82=+%26.,+G

K T+=<9%#*<=1+%.=%6.,<=1+%@6*81+-E.1+A%2,+F%=07+*.EG%

"#$#%&'''()"&)*%&'''''''''''''''+,-./0'+,1./2+34'''''+565789:.;5'+

Page 93: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-.,+/0! 1234050%,346+407/0%/8%,607904970%48:+68;<%53=/:8%

3540;70;07/8%>,-8?@%+7%,346+407%48A.=606%%! B8%+798-,%;,85./8%;,8%23648578%064+5.68%2368C%=0D-3%

.23405=/0C3%,0C3%+798-," E2=+F+407/8%243/8-F+/8%,0C3%70%23906-3;7+D%;2+,+DG%

! B8%.48/87%H724G%948;3I%+798-,%;,85./8%;,8%23648578%064+5.68%J8%;%2489237+%+,-0=78K0%-=/.L0%/8%+A;0/07/8%:8%D+648/:8MN %"485848C3%23906-3;78%;2+,8%H+798-,7+%248K=89I%23%;4,6+$%

,2.,6+C3%78J8=/878%064+5.68%+7%24+C84/0C3%,3,8978%;2+,8%A0%+A=3L+68;%9.2=+-063;G%

!"#$%&'(')((%%%%%%%%

OC2=8C8760F+/0%,6+-0

P OC0C3%;8L%0=K34+6C3;M(GQ6+-%A%;K78A9873%A07-3&GQ6+-%A%948;8,7+C%+798-,3CRGQ6+-%A%;K78A9873%A07-3%23%5=3-+DSGQ6+-%A%A=+;07/8CTGQ6+-%A%40A24:+=7+C%+798-,3C

!"#$%&'(')((%%%%%%%%

Q6+-%23%870-3,6+%878K0%064+5.60

! E=K8540M%U%!%QG%%" !26+C+A+406%/8%23648573%248;+973V%%U%"#Q%/8%;8=+-0%48=0F+/0G%%%%

! "48923,60;-8M%" W%,6407+%U$%2U%7X684+F%70%,6407%

" Y%,6407+%;%Q$%2Q%7X684+F%70%,6407" U%Z%U8A84;0F+/8$%Q%Z%W34704/+

! #3=/%-3C2=+F+4078%,6+-8%53C3%3540;70;0=+%-0,78/8! !"#$%&'()"*"M%%[%\)O%5=3-3;$%3,60=3%+K734+40C3

$%&%'(##)*+,-#####+./.01./#+23#$45670/#$289%+%##+2:/5;<$2:/5;

!"#$%&'(')((%%%%%%%%

Q6+-%A%;K78A9873%A07-3

P ]0%;,0-3%7X684+F3%;%A.707/+%48=0F+/+%248K=890C3%F8=3673%736407/8%48=0F+/3%QG%

P *8=3%A%9+,-3;7+C+%5=3-+MN ]0%;,0-3%,6407%U%248584+%;,8%,6407+%48=0F+/8%Q%+7%+A2+:+%7X

684+F8%^4$,_$%-+%,8%./8C0/3G%N \%24+C84.$%90%,3%23906-3;7+%A02+,+%2340A98=/87+%23%40A=+L7+D%

,64078D%/8%60%24+,632%;8=+-3%D+648/:+G%

=70.4>?#@AB6.#0#5C#+#;7=70.4>?#@AB6.#/#5C#$#;7

5=#05#<<#/D##@?.C#4;;#E03#/F#@7#0./A6@

Page 94: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-%.%/012.3214%.51-4

! 65%/75-4%18+29,:4%,.%.;151<2%92=5:,<2%>920=235?4%:2=4+14%14+951<4%92=5:,<4%*@%" A215B%%C%D%%>

E%F%C%F%G%%H%%('''%D%(''F('''FI''%%H%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%I'@''(@'''%J)K@

! J012.3215%.51-5%>4%L=4-,MB%

" 65%/75-4%7+951%E%>92L29,%/75-4%7+951%*%,1%,.>,N,%7>2+2%>592%18+29,:%O9$%7P$%-<29%<2%9%,.%E87+951,%,1%7%,.%*87+951,@

" A215B%%C%D%CFG%H%('''%D%('''FI''%H%I'(@'''%J)K@

" Q2%<2%?51<N5%92=5:,<5%.;151<5$%>4+2?%<2%:215%H%I''%D%I''F('''%%H%I''@I''%J)K@

!"#$%&'()*+,$(#(-.(/(0"!"#$%&'()*+,$(1(-.(2(0"

-!(#-(33(14(()'$.(%00(5#6(17()"(#$1*,)

!"#$%&'(')((%%%%%%%%

*+,-%.%,132-74?

R Q2%4L7+5<5%,132-7%15%21,%,.?23%92=5:,<%05%;>495L,?4%.5%14+951<4%.51-4@%" 65%/75-4%18+29,:4%,.%E%.%,132-74?%>4,NS2?4%18+29,:2$%-,%72%;<2?5<4%/%*@%

" A215B%%C%D%T%TCF>EU%F%:215%,7-51<5%18+29,:%,.%*U

R A215%.5%>92/29<51<2%/75-2%18+29,:2%,.%E%<2%L951<2B%V (@&%7+951,%/%>9,?29;%95.>9N,=1205%,132-75$

V &8W%/%>9,?29;%#D%392/275@%

V A215%,7-51<5%18+29,:%/%*%<2%/%/2=,-,%?29,%43/,715%43%>4/2.5147+,%*%.%92=5:,<4%V%N+@%>92L951,M%7+951,%72%>92:2<%.?51<N5@

" "4/2.51%,132-7B%%(%J)K%T+,>,S14U$%12>4/2.51B%34%(%J)K%.5%214%*%18+29,:4

!"#$%&'()*+,$(#(-.(/(0"!"#$%&'()*+,$(1(-.(2(8'$#$(#-(33(14((0"

%00(5#6(17()"(#$1*,)

!"#$%&'(')((%%%%%%%%

"9,?29,%7+,-5%.%,132-74?! E5.>9N,=1,%,132-7%TX=+@%&U%15%!"#%92=5:,<2%C49159<,%T14+951<5UB

" "920=23%E2.29/5:,<2B%('''%7+951,%J)K$%(''F('''%18+29,:@

V 65%/75-4%18+29,:4%E2.29/5:,<B%%(@&%J)K%.5%L951<2%>435+-4/1205%/>,75%D%(%J)K%.5%,.L9514%18+29,:4%C49159<2/@%%

V A215B%%('''%D%('''F(''F&@&%H%&&($'''%J)K@

! E5.>9N,=1,%,132-7%TX=+@%&U%15%!"#%92=5:,<2%E2.29/5:,<2%T14+951<5UB" "920=23%C49159<2/B%I''%7+951,%J)K$%Y'FI''%18+29,:@

" 65%/75-4%18+29,:4%C49159<2/B%%(@&%J)K%.5%,7-51<2%,132-712%7+951,%7%>435+-4/1,?,%/>,7,%D%:215%.5%L951<2%.5>,74/%E2.29/5:,<%@%

" "923>47+5/=<5?4%215-4?2914%>495.32=,+2/$%&@I%92.29/5:,<%15%?49159<5%T(''$'''%)%W'$'''U@%%

" A215%L951<5%92.29/5:,<%<2%(%5=,%&@I%J)K%43/,714%43%+205%5=,%<2%,132-7%>4/2.51@%

" A215%L92.%>[email protected]>,74/%*B%%I''%T>920=23U%D%Y'FI''F(@&%T>43@/>,7,U%H%WY@I''%J)K@

" A215%>4/2.51B%%%WY@I''%D%W'@'''%T>[email protected]>,7,U%H%%YY@I''%J)K@%

" A215%12>4/2.51B%%%WY@I''%D%(''@'''%T>[email protected]>,7,U%H%%(WY@I''%J)K@

!"#$%&'(')((%%%%%%%%

J012.3215%.51-5%>4%/97+5M%

! Z>495L,%214%7+951%.5%/?271,-%>9,%>920=23;%14+951<2%92=5:,<2%*$%214%7+951%.5%,.M431,%/?271,-%,1%;>495L,%>9247+5=2%7+951,%.5%/97+4%L=4-4/%,.%.;151<2%92=5:,<2%E@

%%%%%%%%%%%%%%[4925:M%/97+4%#8&%L=4-4/%,.%E%

%%%%%%%%%%%%%%%%%%%[4925:M%L=4-%,.%*%

%%%%%%%%%%%%%%%%%%%%%%%%%%/72%%>592%O9$%7P%,.%E%/97+2%,1%*%L=4-5$%-,%72%;<2?5<4%

%%%%%%%%%%%%%%%%%%%%%%%%%%3435<%O9$7P%-%92.;=+5+;

!"!"!

!"!"!

/(9(2!"#$%&"'()%*+,%'(+-.%+*%/

0.%1%234%5"6)#7

895:&%':**),%*+,%; <:&5:&%':**),

!"!"!

:"-.(/$1*,)

Page 95: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

"*+,-*+%./0-12-0-%1304-%56%.*7839

! :-03;%%" 5*-/<-2%1=030>-%*-<?%@%%A1=030>+9%.*78%B%5*-/<-2%068*30>-%*-<?%" A1=030>+9%.*78%C%A78*30+%*-<?%)%.-<+4678%1=030>-%.*78-

! D-%.13,-,6%E-1-*.3F+>-%GEH%13%1=030>6%*-<3F+>6I%JK"#%+,3%(''%78*30+%+1*3.03<0+43;" :-03%5*-/<-23%E%>-%('''%L)MI%%.7-/3%74=53>%('%1=0?.*78" N3%.7346%1=0?.*786%E%5*-/<-23,6%O6*03*>-%GJHI%%('BP''%L)M?" :-03%C%('''%@%('BP''CQ'''%L)M" D-%+,3,6%5*6786*3%13%73,6%R'%78*30+%E$%,6*3,6%5*-/<-238+%J%(&%S?

! D-%.13,-,6%(''T78*30+%.-<+4%1=0?.*786%13%O6*03*>-%468%1=030>3%*-<3F+>3;" :-03%5*-/<-23%J%>-%P''%L)MI%74=53>%P%1=0?.*78?" N3%.7346%1=0?.*786%J$%5*-/<-23,6%E-1-*.3F+>-I%%%PB('''%L)M?" :-03%C%P''%@%PB('''%C%PP''%L)M

!"#$%&'(')((%%%%%%%%

"*+,-*%=56*3U-%J6*8+*3>TN<+>

! :-03;%%O%<6/%O%@%V%<6/%V%@%GO@VH" :-03%5*-/<-23$%O@V$%<3946%>-%OBV%G0+%5*-.-W%.-*>-806XH

! N%=56*3U6%YP$%(''%3<+%Y''%78*30+%.,-70+43%<3946%83U-<-%E-7-*.-7%+0%J3+<6*7%76*8+*3,6%1%&%5*-962+I%

! :-<6803%F-03%78+43;%ZB('''@ZBP''@('''@P''C[P''%L)M?

!"# !$%&' (%)"$* %*'

++ #,!)"$ - ./01

+2 3,443 5 6/01

67 8,99'( 2 //0/

.. *,443 / 6/01

/2 (,!)3 71 6/01

!"# 9"# #%3 ($%&'

+2 716 7+:.:5; *,443

+2 716 77:6:5; 3,443

67 717 71:71:5; #,!)"$

67 71+ 71:7+:5; 8,99'(

67 717 71:77:5; 8,99'(

/2 716 77:7+:5; #,!)"$

!"#$%&'(')((%%%%%%%%

J8+4%1%*315*\+<0+,%+02-476,! "6*312-<+%6U-%

*-<3F+>+%1%*315*\+<06%]=04F+>6%!;%%0T8-*+F-%53*8+F+>-%+%+1%E%7-%U626%=>-<-%1%0T8-*+F3,+%53*8+F+>-%+%+1%J?

! !"#$#"%&'(")%*%+,&-.&+,&',"(/0#1%&/&!"#$%&#!'(2&!"#31#+&45)"#/6,&'(")%*%+,&7&%6&',%89%&6:)#"%*#.&;%&5#&4+#<(+,2

<%()")"=$!

=>?@?A?B

!"#$%&'$(()*

(+*&,-

./01&%/'2)&(+*&#/*%-%-+"

3-&45&6&789&#/:)0;

C?&%"$?&'&=(3?9,>>'(!D"!E

<$%#$%&

&'$(()*

D"!E

F="$?@'!,8)

1/01("

1=

1=

C?&%"$?&'&=(3?9,>>'(! D"!ED"!E

G("*"$%8?

@'8%)"=$ <>?@>?

=!A@>?

9

1/01($"B%-+"

1 789

<%()")"=$!

7

+

CH7

)#)#)

??????????????????????????????????????????????????????????????????????????????????????????????

!"#$%&'(')((%%%%%%%%

J8+4%1%*315*\+<0+,%+02-476,

! #T&%^%.-<+4678+%03>.-W>-%53*8+F+>-$%4+%U6%.%756,+0=?%%! N/*32+,6%*315*\+<06%83U-<6%.%756,+0=%13%569+8*+8-.%=>-,30>3%

0T8-*+F%G*3U+,6%,3<F-%.-W%756,+03H?! D-%*315*\+<03%]=04F+>3%0-%56*312-<+%0T8-*+F%-0346,-*06%7-%

<3946%1/62+$%23%0-438-*-%53*8+F+>-%0-%/*-26%.%756,+0?" E315*\-.30>-%<3946%03*-2+,6%*-4=*1+.06;%ET53*8+8+F+>6%56.-_-,6%1%

=78*-106%JT53*8+8+F+>6?

Page 96: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-%./01-%2%3-243506,07%0,8+1.97! :-2-%028+6-;+%4-3/0<0=>%

" ?3-,[email protected],=+%9?+A%3+6B%C%&DE@FG%H)IB%

! H%J-20%K=+7-,=->%" 43+?+30%9?+%3+6B%C%E@F%H)IB

! F-5%4307+3>%" *+,-%C%L%MD('''@N''G%C%%ON''%H)IB

! P/01%2%260;-,=+7%;.B%P/01%2%3-243506,07%0,8+1.97>" "30%70,07-6,0%1960Q0,0%.4970,-%07-/-%9?-%<+,9%LDE@FG%H)IB%%" P/01%2%3-243506,07%0,8+1.97%=+%.K4+3093+,$%Q+%.+%;+6019./0%3+6-<0=%?0./;,9%

3-2601K=+=9B%%" P/01%2%3-243506,9%JK,1<0=9%6-A19%2+69%89?39%4-3-6+60203-79B%" P/01%2%260;-,=+7%=+%7-,=%9?QK/6=0;%,-%R.1+S+8T%498-/1+U%3+2K6/-/%=+%

.93/03-,B%

!"#$%&'(')((%%%%%%%%

P4695,0%49V9=0%./01-! W,-19./%;+Q0A%-/30?K/9;%D,43B$%%!"#$%&'"#$%(XFY%

!")*+,-&'"#*+,-G>" Z-%;V,+2B2-,19%2%0,8+1.97%13+03-=%0,8+1.%,-%[#$%.(#*+,-\%

DQ+%=+%P%,9/3-,=-%3+6BGU%-60%K493-?6=-=%9?./9=+Q+%0,8+1.+%,-%%#$%%-60%#*+,-B

" Z-%260;-,=+%0,%3-243506,0%./01%.93/03-=)493-28+60%.%197?0,-<0=9%8;+A%-/30?K/9;%./01-B%

! "9V9=0%,++,-19./0%D,43B$%%!")*+,-(/('"#*+,-G>" Z-%;V,+28+,9%2-,19%2%0,8+1.97%K493-?0%D49;+2-,9]G%#@%

83+;9B" P/01%2%260;-,=+7%0,%3-243506,0%./01%,0%K493-?+,B%" HV,+28+,-%2-,1-%49%?6910A%?9%2+69%;+3=+/,9%8-6-%,-=?96=5+%

3+2K6/-/+B%

!"#$%&'(')((%%%%%%%%

!4+3-<0=+%,-8%7,9^0<-70! "3+.+1%0,%1-3/+20=.10%4398K1/%./-%49.+?,-%4307+3-%

./01-B! _,0=-%0,%3-2601-%.+%0746+7+,/03-/-%4989?,9B! _,0=-%.%.93/03-,=+7>

" P93/03-79%9?+%3+6-<0=0%D49%;.+A%-/30?K/0AGB" "3+V6+8%.93/03-,0A%3+6-<0=%0,%260;-,=+" 012-)*+2$3+>%%Z60=%;3./+%02%43+A98-%'%02%9?+A%3-6-<0=B

! _,0=-%2%3-243506,07%0,8+1.97>" "93-28+60%`%0,%P%2%K493-?9%3-243506,+%JK,1<0=+%4B" Z-%;.-19%Pa4-3/0<0=9%02V3-80%3-243506,9%/-?+69%;%.4970,K%D2%

K493-?9%A&G$%43+V6+=%K./3+2,9%`a4-3/0<0=9%0,%898-=%,a/+30<+%;%/-?+69%7+8/+7$%19%.+%0269Q-%8K46I1-/+B%

!"#$%&'(')((%%%%%%%%

XV3+V-<0=.1+%94+3-<0=+DXHb$EIF$0/8BG

! #3+2%V3K403-,=-" H%.4695,+7%2-A/+;-%43+V6+8%3+6-<0=+" "3+V6+8%=+%79^+,%.-79%2%0,8+1.97$%Q+%0.1-6,0%16=KQ%;.+?K=+%;.+%

-/30?K/+%;%PWcW*d%-60%efW`W%./-;1KB%%%

! Z%V3K403-,=+7>" P93/03-=%49%V39K4a?g%-/30?K/0A$%49/+7%43+V6+=%3+6-<0=9%0,%023-QK,-=%

-V3+V-<K0=.1+%JK,1<0=+%2-%;.-19%.1K40,9B%" "989?+,%430./94%=+%9.,9;-,%,-%493-28+60/;0%D3-24350/;0G%49%V39K4a?g%

-/30?K/0AB%" Z%83+;+.,07%0,8+1.97$%10%;.+?K=+%-/30?K/+%;%PWcW*d$%efW`W%0,%

b`!_"%#h%./-;10A%6-A19%,-3+8079%43+V6+8%.-79%,-%9.,9;0%0,8+1.-! i+%V39K4a?g%-/30?K/0%/;930=9%43+849,9%0.1-6,+V-%16=KQ-$%49/+7%6-A19%

43+?+3+79%;40.+)2-40.+%;%;3./,+7%3+8K%8969Q+,+7%2%V39K4a?gB

Page 97: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%%%%%%

*+,-.%-/01.21,2-31

! 45%65%.57%8+5019-:%-/.1:1%./+805;28%+8<5=%:5%8952:5.12:5%><?%+086<-@%6<012-%.%-/01.21,2-3A%61=8%+05;.-;5.12:5?%

! "821.,:1:87%./8059%;86<8+1%=801%B-<-%A63,1:52%6%6<01<5C-:8%/1=52:1.5%6<012-%.%-/01.21,2-3A?D E8<012:1%05,19-:1%65%+05C,5;A:5%9-3,-728%+0-%5286<1.2-%.C25/;52-%

/123-?%D 45%-=1=8%/1;86<-%6<012-$%;1%@012-=8%28<012:8%05,19-:8%+8<5=%

/1=52:1,21%6<01<5C-:1%25%-C01%+865B25%.,8C5?D F-950%+1%:5%21:B8,:>1%6<01<5C-:1%GHIJ%KHI%:5%21:6,1B>1%L653.52728%

+05,-.12:5M?%" N,-%:5%/1=52:1,21%6<01<5C-:1%+8=5=B21%+0-%.C25/;52-%/123-%+8%

B,83-@O%" P1:%+1%+0-%.C25/;52-%/123-%/%-2;5368=O%F80<-012:5Q/,-.12:5%6<-3O

!"#$%&'(')((%%%%%%%%

"05C,5;%! H5,19-:63-%FI"#R

" !"#$%&'(&)*")*&*+,%-.&/&)#$)/&0,.)"*/"%/#1)"2&3,4#.)

" S=+,5=52<19-:1%<5@%8+5019-:%:5%630B28%AC,1>521%" "8;08B286<-%+0-%-=+,5=52<19-:-%68%+8=5=B25T

! !B6<1:1%.57%01/,-72-@%1,<5021<-.2-@%-=+,5=52<19-:%/1%.6138%8+5019-:8J%25%8B6<1:1%6A+50-8021%<5@2-31%/1%.57-28%8+501<9-:?%%%

! "8<05B28%:5%+05C,5;1<-%1,<5021<-.5%+0-%-=+,5=52<19-:-%.6135%8+5019-:5%.%+8-/.5;B-" S/B505=8%21:B8,:>8%6<01<5C-:8%21%8628.-%6<1<-6<-72-@%+8;1<38.%8%<1B5,1@?" S/B80%525%8+5019-:5%:5%;5,%95,8<25C1%;5,1%8+<-=-/19-:5%95,8<25%

+8-/.5;B5?%

Page 98: Osnove Podatkovnih Baz --skripta-- 2010/2011

PILOTI LETI IdP int(11), IdLT int(11), Priimek varchar(50), IdP int(11), Ime varchar(50), IdL int(11), Emso varchar(13), IdLEVzleta int(11), Naslov varchar(250), DtVzleta date, DtZaposlitve date, CasVzleta time, LetaDelIzkusenj varchar(20), IdLEPristanka int(11), StLetov int(11), DtPristanka date, StUrLetenja int(11), CasPristanka time IdLD int(11) REZERVACIJE IdR int(11), Stevilka int(11), Cena float, Priimek varchar(50), Ime varchar(50), Naslov varchar(250), Telefon varchar(20), StSedeza int(11), Razred int(11), IdLT int(11) Pri tem upoštevaj naslednje informacije:

PILOTI: 10 zapisov na stran, vsak zapis predstavlja enega samega pilota, 40 strani, relacija hrani 100 različnih vrednosti za StUrLetenja in piloti so enakomerno porazdeljeni med te vrednosti, pri tem pa je od takih vrednosti, katerih vrednost je nad 500, 70 različnih.

LETI: 20 zapisov na stran, 150 strani

REZERVACIJE: 50 zapisov na stran, 30000 strani, različnih cen rezervacij je 150 in takih, ki so večje od 300 je 70 Za vsako izvajanje poizvedbe imamo na voljo 10.000 strani v vmesnem pomnilniku (SUBP). 1. Za dani poizvedbi sestavi drevo operacij in oceni plan njihovega izvajanja (koliko strani se bere iz diska):

a) SELECT Priimek, Ime FROM PILOTI b) SELECT Priimek, Ime FROM PILOTI WHERE StUrLetenja>500

2. Za koliko se ocena plana izvajanja za drugo poizvedbo iz prejšnjega primera spremeni, če pri svojem izvajanju uporablja drevesni indeks višine 2 na polju StUrLetenja.

3. Napiši odgovore na naslednja vprašanja s povpraševalnim jezikom SQL:

a) Poišči vse IdL (identifikator letal), pri katerih je cena rezervacije njihovega leta presegala 300 €. b) Poišči vse IdL (identifikator letal), pri katerih je cena rezervacije njihovega leta presegala 300 € in je let pilotiral pilot z IdP=50.

4. Za koliko se ocena plana izvajanja za drugo poizvedbo iz prejšnjega primera spremeni, če pri svojem izvajanju uporablja: - 2-nivojski drevesni indeks na polju IdP v relaciji LETI- razpršilni indeks na polju Cena in - razpršilni indeks na polju IdLT v relaciji REZERVACIJE

5. Za dano shemo ocenimo plan izvajanja naslednje poizvedbe:

SELECT U.Ime FROM Ucitelj U, Predava P WHERE U.Id = P.UciteljId AND U. OddelekId = ‘RIN’ AND P.Semester = ‘Zimski 2010’ Shema:

UCITELJ(Id, ImeName, OddelekId) PREDAVA(UciteljId, PredmetSifra, Semester)

Pri tem upoštevamo naslednje informacije:

UCITELJ: 200 strani, 1000 zapisov, 50 različnih vrednosti za oddelek, drevesni indeks na polju OddelekId, razpršilni indeks na polju Id

PREDAVA: 1000 strani, 10.000 zapisov, 4 različne vrednosti za semester, drevesni indeks na polju Semester, razpršilni indeks na polju UciteljId, predavanja so enakomkerno porazdeljena med ucitelji (10 predavanj / ucitelja) Na voljo imamo 52 prostih strani v vmesnem pomnilniku.

Page 99: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 100: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

!780-09,:0;,%7<09=>?@

A98<.%6,=30.$%BC5DAE

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

!13<=>%<780-09,:0;>%7<09=>?@

F !13<=30%7<;-0G

H "I,3%09=,;,3;,%7<09=>?@>+

! "/>=,;,3;>%6JK%=%*C

! !:>308=>3,%LM3.:0;,+

! CIN</08-0%9,%09=,;,3;>%<7>/,:0;%*C+

! "/<18</%/>O08>=+

! CIN</08>-%9,%01.,3;>%<780-,I3>N,%7I,3,+

F 6P18>-%*G! D,;@<I;%/,9O0/;>3+

! 4>I,%=%/>?M%9,%Q%(R%180.<=+

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

"I,3%09=,;,3;,%7<09=>?@>

F A-7I>->38,:0;,%<7>/,:0;>G%

H A8>/,8</G%7<7MI,/3,%S%<@;>.83,%8>230.,+! A-7I>->38,:0;,%08>/,8</;,G%

!!"#$%&'(%$)*&'(+,"-$&'.

! 5>8<?,%%$)*&'%=/3>%>3<%

%%%%%3T8>/0:<%,I0%$"/+

F 4/>=<%08>/,8</;>=GH U1,.,%<7>/,:0;,%;>%I,2.<%

%%%%%0-7I>->380/,3,%9%-3<V0:<%

%%%%%,IN</08-<=+

H "I,3%09=,;,3;,%=1>@M;>%8M?0%

%%%%%,IN</08>-%9,%09=>?@<%<7>/,:0;>+!!"#"$%&'()" *+$,&$)(

-(./-(.

-(./0112 +'",&2324

-(-"

!"#$%&'()$*+ $#&'()$*+

!", !"%

$,&'()$*+

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

"/>=,;,3;>%6JK%=%*C

F 4>.<-7<90:0;,%=7/,O,3;%=%@I<.>

F #I<.%=7/,O,3;,%7/>=>?>-<%=%09/,9%*C

F #I<.%<@/,=3,=,-<%.<8%LM3.:0;<

Page 101: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

47.8-98:0;0<,%=9/,>,3<%=%[email protected]

A B7@8C73%6DE%1C,=7.%17%/,:F7@0%=%[email protected] G,.@<HI730%6DE%[email protected]%17%8?/,=3,=,<8%.8C%

9/8;7FH/7A "81@7F0;,J%

K =L37:F730%[email protected]%17%.@0I7<8%8?%=1,.0%0C7/,;0<0%=%3,F/7<737-%[email protected]

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

#@8.%=9/,>,3<,%9/7=7F7-8%=%0:/,:%*M

A N1,.%?@8.%9817?,<%17%9/7=7F7%=%0:/,:%*MA O:/,:%*M%17%89C0-0:0/,%37%L@7F7%3,%3,F/7<737%

03%98F/7<737%[email protected] "8F/7<730%?@8.%17%0:=,<,%.8C%9/8;7FH/,

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!;73,%9@,3,%0:=,<,3<,

A *7:H@C,C%<7%=7F38%9/0?@0P7.+%A 6C,C01C0.,%12/,3<73,%=%101C7-1.02%.,C,@8L02+A 6C,C01C0.,%17%H98/,?0%:,J

! 8;738%20C/81C0%0:=,<,3<,%9@,3,%980:=7F?7$%%03! 8;738%[email protected]%=-71302%/7:H@C,C8=+

A "/0%8;730%17%H98/,?0%;73,%B"Q%03%O)!+A N%3,>02%8;73,2%F7@,-8%1,-8%1%>C7=0@8-%F01.8=302%

[email protected]=+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!;73,%9@,3,

A G,%=1,.%9@,3%<7%98C/7?38%F8@8I0C0%;738+! "8C/7?8%<7%F8@8I0C0%;738%:,%=1,.8%897/,;0<8%=%

F/7=71H+%" !F=013,%<7%8F%.,/F03,@381C0%=28F302%/7@,;0<+%" B737%981,-7:302%897/,;0<%1-8%10%8L@7F,@0%3,%9/7<>3<7-%

9/7F,=,3<H" 67.=73I30%9/7L@7F$%03F7.130%9/7L@7F$%1C0.%:%:,3.8$%1C0.%:%

03F7.18-$%0CF+! "8C/7?38%<7%8;730C0%[email protected]%/7:H@C,C,%:,%=1,.8%

897/,;0<8%=%F/7=71H+%%" O3R8/-,;0<7%8%=28F302%/7@,;0<,2+%" G,%=1,.%1C0.%9/7F981C,=0-8%378F=01381C%-7F%9/7F0.,C0+%

Page 102: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!783,%9,%:;,38%3,<%83=%/8;,70>=

? @:=/,A,%03<8.1,%B%3,%:/0-,/38-%.;>CDCE! !"#"$%&'()*+,%+-)+./0123+44%5+*56+,%+/%,7/8"9$"+"$.0:#5

? "=F89,3%03<8.1%B$%.0%18%C>8-,%9%830-%,;0%F8D%:=G=>0E! &;<=/%$"&'();<=/%$"&>((+?+7/2.@:=+<"+,%+72A2B0+#090:4"B05

? H8:=F89,3%03<8.1$%.0%18%C>8-,%9%830-%,;0%F8D%:=G=>0E%! &;<=/%$"&'();C%7"#21&>((+?+7/2.@:=+<"+,%+72A2B0+#090:4"B05

? 68.F83D30%:/8G;8<%I,A8;8E! ;<=/%$"&>(

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

628-,%9,%9G;8<

? "=<=A3=%.=I%1I,/,%128-,J%/"D0%<=<,3,+%? *898/F,70>8E

! K8;0.=1I%9,:01,%L%M'%9;=G=F$%%(''%9,:01=F%3,%1I/,3$%('''%1I/,30+

? 5=/3,/>0E! K8;0.=1I%9,:01,%L%N'%9;=G=F$%%O'%9,:01=F%3,%1I/,3$%N''%

1I/,30+%

!"#$%#&'()!"#*('$+,-,#.(!"!$*(/+#'$-.(%&$'(*('$+,-,#.()*(+*(#,%012,3,#4%5'&,()!"#*('$+,-,#.(,"#*('$+,-,#.(#('*(6%+,/.(+"!$*(/+#'$-1

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/0-8/

? B-,-=%03<8.1%3,%,I/0ACIC%240$%E! P()HQ;>C78FPBRR%S%HT,:01=FP*R%L%P()('R%S%M''''%L%M'''%9,:01=F+! "=F89,3%03<8.1E%%%%%%%P()HQ;>CD8FPBRR%S%PH6I/,30PBRUH6I/,30P*RR%L%P()('R%S%PN'UN''R%L%NN%:/8A/,302%1I/,30+%! H8:=F89,3%03<8.1E%

%%%%%P()HQ8V1PBRR%S%PH6I/,30PBRU%HT,:01=FP*RR%L%P()('R%S%PN'UM''''R%L%M''N%:/8A/,302%1I/,30+%

? B-,-=%03<8.1%3,%#".E! "/8A/,I0%>8%:=I/8A3=%F18%3WI8/078)1I/,30+%%! "=F89,3%03<8.1%L%N'UN''%1I/,30J%%%38:=F89,3%03<8.1%L%N'UM''''%

1I/,30+! 6;,A=%X

? 68.F83D30%:/8G;8<E! K18%1I/,30%I,A8;8%L%N''%1I/,30+

7898:;((!<='6>2?!((!"#$%#&'(!@A828((!<"5,$%BC

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!783,%F8;0.=1I0%/89C;I,I=F%=:8/,70>

%%%%%"=09F8<A,E

? 5,.10-,;3=%YI8F0;=%3WI8/07EZ "/=<C.I%.,/<03,;3=1I0%/8;,70>%F%[*!5%1I,F.C+

? <090:="1$2#=+",/%,%+#=%1:%+EFG>GH+Z 68;8.I0F3=1I%09/,9,%>8%181I,F;>83,%09%18;8.I0F3=1I0%F182%:=G=>8F+%Z 68;8.I0F3=1I%:=G=>,%P6"R%L%<8;8\%/8;,70>8$%.0%>8%/89C;I,I%18;8.70>8+%%

? I%/."$%9$2#=+/0,@9=%=%%Z 5,]%^%3WI8/07%S%%:/=<C.I%F182%6"+

7898:;(!"#$%&'(#)(*"!

>2?!((!"#$%&'*"+%,(-

@A828((+,#=D(EFG(<<<(EFG(+,#=H

Page 103: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

!7838%1898.:0;3<1:0%=<><?8;

@ !"#$#%&'()*#+$,-%.,&'/%&'0'1#/2%! "/8A=<1:,;.,$%A,%1<%=<><?0%-8A%18B<?%38<A;0130+

! "<><?%).34/3#5$'(.%0-,%6"%C%6%7%89:1;<#/=>?@%>%?8%03A8.1%3,%).3A! "<><?%).364).3B%0-8%6"%C%6%7%CDE=89:1;<#/=>6?F89:1;<#/=>B??! =<><?%).3G/3#5$'(.%0-8%6"%C%=H,0-=>?I/):;#?7=H,0-=>?IJ'K=>??

@ 6898.:0;3<1:%=<><?,%<A18;,%;=90;%=<><?,%3,%

D-,3?E,3?8%;890.<1:0%/8DF9:,:,+%

@ L)35,$):$'(.%3#+;:.).)%

G 5,H%I%3J:8/07%K%%=/<AF.:%;182%6"+

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

!783,%D,%=9,38%3,A%;8L0-0%/89,70?,-0

@ #9<.%=<0D;8AB8M

@ 5,.10-,93<%I%3J:8/07%;%/8DF9:,:F%?8%=/<AF.:%

.,/A03,93<1:0%;182%;2<A302%/89,70?%0D%N*!5%1:,;.,+%

@ M#:#9.,/$'(.%=<;8D,3,%D%;1,.0-%=<><?8-%<A18;,%

;=90;%=<><?,%3,%;890.<1:%/8DF9:,:,+%

G L)35,$):$'(.%3#+;:.).)%C%5,H%I%3J:8/07%%K%%=/<AF.:%;182%6O0+

@ 5F9:0J/89,70?1.0%=9,30%18%>/,A0?<%=/0%1:0.02%D%A<A,?,3?8-%

838%1,-8%3<;8%/89,70?8%3,83./,:+%

G P83,%-8:<A8%1:0.,%Q%<783<%.,/A03,93<1:0%1:0.,+%

!"#"$%&!"#$%&'(#)(*"'()*&!"#$%&'*"+%,(-+,"("&&-./.01&234555234&-./.06

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

48R03070?,%=/<B98-,

@ 4,3,%?8%=<0D;8AB,%N%3,A%=<A,:.<;3<%B,D<%O+%

@ "<0EL0%3,?7838?E0%=9,3%=<0D;8AB8+%

! S9></0:8-%D,%<=:0-0D,70?<+

7 6T1:8-%*%F=</,B0%A03,-0L3<%=/<>/,-0/,3?8+

! U-,-<%'"#$,./#$'%P;$9",1'$%.0%0D/,LF3,%'"#$'%&:)$)+

@ !7830:;83,%RF3.70?,%F=<E:8;,M

! V"/8:<.W%=<%A/8;81F%0:8/,:</?8;+

! X:8;09<%=/8B/,302%B9<.<;%0D%A01.,+

! P"Y%F=</,B9?83%D,%0D/,LF3%<=8/,70?%Z-0%38%F=<E:8;,-<[+

! \890.<1:0%;-81302%/8DF9:,:<;%03%.<3L38>,%/8DF9:,:,+

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

"/<1:</%/8E0:8;

@ "/<1:</%8.;0;,983:302%=<0D;8AB+

@ ],1:3<1:0%/89,70?1.8%,9>8B/8%<-<><L,?<%

:/,31R</-,70?8%=<0D;8AB8+%

G ^/,31R</-0/,3,%=<0D;8AB,%;/38%01:0%/8DF9:,:+

G ^/,31R</-0/,3,%=<0D;8AB,%=<;D/<L0%1=/8-8-B<%=9,3,+

G "<3<;3<%?8%=<:/8B3<%A<9<L0:0%,9></0:-8%D,%0-=9+%<=8/,70?+%

G UEL8-<%0D/,D$%.0%18%3,?20:/8?8%0D;8A8%03%=</,B0%3,?-,3?%

=/<1:</,+

@ "/,.1,M%

G UD<>0B,-<%18%.,/:8D0?1.0-%=/<AF.:<-+

G UD<>0B,?-<%18%3,?19,BE0-%/8E0:;,-+

Page 104: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

71.,389%:;<0-,=39>,%;=,3,

? "/:1<:/%89%;/9@9=0.%A,<:%>,%89%;:</9B3:%:-980<0+%? C,<9/0%D9=%;/:1<:/,%;/9>=9D,-:E

F !D@013:%:D%,=>:/0<-,%A,%;/901.:@,389+F 6G1<9-%*H%%I;:/,B=8,%=9%=9@:JI1-9/8939%;=,39+F !B/,@3,@,-:%1,-:%;/:1<:/%!"#$%&'(")*"+,-.;=,3:@+F K9@:JI1-9/8930%;=,30%:-:>:L,8:%0A@9DB:%/"#$#$012

F M0%;:</9B3:%./90/,<0%@-91302%A,L,1302%<,B9=+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

#=:.0%;:0A@9DB9? 6NK%19%;/9@9D9%@%-3:O0P:%3!$4$#.

5$,6#"03"2

? !;<0-0A0/,8:%19%B=:.0%;:0A@9DB9+? Q>39AD930%B=:.0%19%:B/,@3,@,8:%.:<%.=0P0%

;:D;/:>/,-:@$%.0%19%0A@,8,8:%93./,<%A,%@1,.:%3J<9/0P:+%

? ":93:1<,@=893%;:>=9D$%D/O0%@%@9L030%;/0-9/:@+%

!"#"$%&&'()*)+,-.'&&'/01203*&'45"-"&&'(6720&89&&&&&&:!"#"$%&&'()&*'+,-./01&&&&&&&234'&&'506/078&'+&&&&&&&934:;&<=&&'+,5>?6/;

@5.0/678&AB5C

DE6/678&AB5C

!&<2&=62>&?@/>&/?02=12=2)/&126@+A13+&B@21+C&

"&D6+&)+7/A+&A/67/B2&E2&=62>/&0+@2F*3/&*E&,-.'&672=>2(&

"&D6+&B?F5GE-H?07?6/&I0?F?-/&-.8C5F,&

#&D6+&B+0)G72F*3+&0+@2F*3&B/=+E21+&6&67*>*&=&@+=/HG6)+03+1/&A0+=/(

#&I/J/3+&67*>/=&@2K>/&*E02LG12)/&6B0/7*&*E&B/J/3+=&=&45"-"&672=>G(

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

R.@0@,=93P9%:;9/,P08%*S

? !-:>:L,8:HF M,T<9@,389%9.@0@,=93<302%A,;01:@%0A/,A:@%*S+F *,A=0L30%@/1<30%/9D%1<0.:@+%F 6;ITL,389%19=9.P089%03%;/:89.P089%;/:<0%=01<:-+

? U,;01%0A/,A,%*S%D:=:L,%D/9@:%:;9/,P08%F%;/:>/,-V? U%;/9>=9D:-%@192%9.@0@,=93<302%0A/,A:@%*S%3,T<989-:%@1,%

D/9@91,%:;9/,P08+%F Q19%3,L039%9@,=I,P089%D:B0-:%A%D:D,<3:%0AB0/:%@192%-:O302%-9<:D%

D:1<:;,+%%? !>=98-:%10%9.@0@,=93P9%A,%:;9/,P089%*S+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

R.@0@,=93P9%:;9/,P08%*S

? 7"!"4/,*18%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%W916/"5X( ) ( )( )! ! !! !" ! !"# #! !" " #""" " " "

( )( ) ( )( )! ! ! !! ! ! !# #! # # !# :J5HE./.8F65-.;

!&&;057?C>87/K ( ) ( )( )( )$ $ $$ $ $"# #! !# " " " *3/L>?M1

!&&!.8CK 3&N&*!&N&%1&&&&&&*3&N&!1&N&%&# *(-5>8/.8F65-.1

*3&N&!1&&&&&&*!&N&31&#

$ &&M/>2N*C& 3&N&*!&N&%1&&&&&&*%&N&31&N&!&#

:J5HE./.8F65-.;

Page 105: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7.808,9:3;:%<=:/,;0>%*?

@ 6=ABC,3>:%1:9:.;0>:)=/<>:.;0>:%=/<D0%901D<-+%%

@ "/<>:.;0>,E%F "/<>:.;0>,%>:%.<-AD,D083,%1%1:9:.;0><$%.0%A=</,G9>,%,D/0GAD:%=/<>:.;0>:+%

@ 6:9:.;0>,$%.0%81:GA>:%=/0-:/>,8<%,D/0GAD<8%<G:2%,/HA-:3D<8%.,/D:I0>1.:H,%=/<JA.D,%1:%=/:8:J:%8%1D0.+%

!!!!!"#$!!%&!!!!!!!!"#$&!"%!&

!!!!!'#$!!"%&!!!!!!!'!#$&!!"%

(!)*!+*,*-./01!/23/41!+156!174/387*!$9

(!)*!:460*-./01!6;41</!174/387*!+7/-19

!!

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!=D0-0I,;0>1.,%-:D<J,

@ "<:3<1D,80D:8%=/<G9:-,F 6,-0%6KLML%N%-:D<J:%J<1D<=,

@ "/<1D</%,9D:/3,D08302%=9,3<8F O=</,G9>,-<%<;:3:%=9,3<8%F O=</,G9>,-<%,9H:G/,0C3,%=/,809,%I,%01.,3>:%

:.808,9:3D302%=<0I8:JGF ?9H</0D:-%I,%=/:H9:J<8,3>:%=/<1D</,F !=D0-0I,D</%<G0C,>3<%=/:H9:J,%J:9%=/<1D</,F LIG:/:%=9,3%I,%.,D:/:H,%0-,-<%3,>-,3>B<%<;:3<

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

K0=0C30%/:9,;0>1.0%<=D0-0I,D</

@ ?9H</0D:-%<13<8,3%3,%J03,-0C3:-%=/<H/,-0/,3>AF !=D-,93:%=9,3:%H/,J0-<%0I%<=D0-,9302%/:B0D:8%

=<J=/<G9:-<8

@ O=</,G,%1,-<%9:8<PA1-:/>:302%=9,3<8F Q0-,-<%-,D:/0,90I,;0>:F !-:>0-<%=/<1D</%/:B0D:8F L1.,3>:%=:/-AD,;0>%<I+%A=</,G,%J03,-0C3:H,%=/<H+F *:B0D8:%1<%1AGP<=D0-,93:R

@ !=D0-0I,D</%601D:-,%*

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"<:3<1D,80D:8%=/<G9:-,@ L-,-<%1,-<%J8:%8/1D0%8<I90BC@ S<I90BC:%I%-:D<J<%J<1D<=,

F 4<1D<=%J<%I,=01<8%F 54%I%03J:.1<-$%54%1%1</D0/,3>:-$%54%I%0D:/,;0><$%+++F S1:GA>:%TDAJ0U%1:9:.;0><%03%=/<>:.;0><

@ S<I90BC:%1%1D0.<-%F *,I90C30%,9H</0D-0%I,%0I8,>,3>:%1D0.,F 6D0.%I%8H3:IJ:3<%I,3.<$%%%%03J:.1<-$%I908,3>:-$%+++F S1:GA>:%TDAJ0U%1:9:.;0><%%%%03%=/<>:.;0><

!"

#

$

!"

#

$

Page 106: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7,89:;,3<:%,=9:/3,90;302%>=,3?;

@ !"#$%&%'()*+*%,(-.-+/'"$%*+,'-%0'+1$%1+'A 2#&+3#',#4+.-#'()*+*%,(-5-('+1$%1(

A 6%1,+.-%'+3",(3(-5%7+8%'+-'7(-%

A 9%3#'-%0',(*#:;<3($8(-+3+'",%-+=

@ 2*%'#<-#*-%'"$+3($%! >,%-'-%0'(-#'$(,%7+8#'!'#"5+3%,-%'3(5#0%'0#<5#"%! >,%-'-%0'*(.+3+'$(,%7+8%3+'!'"($3;5%7+8%'<5+)#*

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"?0B;:CD:%3,C%:3?%/:=,E0<?

@ ?#3&+-%7+8('<(,()7+8(@'"$#8()7+8('+-'%4$(4%7+8<)+/'#"($%7+8A A+'<5+)#*=

@ >$(4,(0%8#'<('*<('3#B-('3(5#0('0#<5#"%A C(5#0('0#<5#"%'<3#'<+'#4,(0%,+'-%'"$(8D-8+/'"$(0%*%-8+/E

A C(5#0('&$(1'+-0()<#*

A C(5#0('1'+-0()<+

@ F1&($(3#'3(5#0#'1'-%8-+B8#'7(-#'

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

FG=:C@ G"$%D%-8(H

I%'*<%)#'#7(-#'*(.8#'#0'J@'+1"+D+'#7(-#'+-'D5(*+,#'3#$-%$8(*'<5%$+/'KL',(5@')+'+3%8#'5%)D-#'#7(-#@'.('<5%'1%'0%-#'#7(-#'*<%8'0*%'5%)D-%'3#$-%$8%'1'$%1,+.-+3'+3(-#3E

<(,(75'9E$%5+-4@'7#;-5MNO

P$#3'9%+,#$<'9

Q/($('9E$%5+-4'R'J'%-0'SE%4(TKL

4$#;"&U'9E$%5+-4

/%*+-4'7#;-5'0+<5+-75M9E<-%3('RKOV

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

FG=:C@ >$("+D(3#'*"$%D%-8('*'$%1D+$8(-#'$(,%7+8<)#'%,4(&$#E

@ 2$;4%'"$#8()7+8%'+3%'0#0%-'<-%3(@')($'$%&+3#'<-%3('1%'/%*+-4E

!"#$%&'()*+,-.(&/01

/

2%3'(),-.(&4'5&'(,&/"#5(%671+89

/

)$-.:;<"#$%&'()

/

!"#$%&'()*"#5(%67

/

="#$%&'()+8+>+%(4+?#%)7@9A

/"%'B-$511111

Page 107: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;!"#$%&#'()%*+,-&,"#.)%

.)/0,%*&#0,%123#$#0$#4%

(1%51%$1'%)*61.12#6)+%*+,-&,"#&7

8#$5)&$%*).,.50#%

)"&)916,3%$,%125)+%.,6)",%

"):6)*#%")%;#1&)+:7

<-)6)3161%$,%*)6+,50)%6="1

>,0,%*+,):6#&1'%)*,+#>1$7< ;)+61+#0$,4%-+=*1+#0$,4%'#310-4%777

!"#$%&'()*+,-.(&/01

/

2%3'(),-.(&4'5&'(,&/"#5(%671+89

/

)$-.:;<"#$%&'()

/

!"#$%&'()*"#5(%67

/

="#$%&'()+8+>+%(4+

?#%)7@9A/"%'B-$511111

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

5:=>;:%;>1=>?,%@/:A%03;:.1>B

C !13>B30%?/01=>?%D:%?/:89:;%B1:2%A,?01>B%=,@:9:%6,09>/1%03%1?/>=3>%E09=/0/,3D:%A,?01>B%F1:9:.G0D,%H%?/>D:.G0D,I

C JA/,A%*KL%C *:AM9=,=%1:9:.G0D:%03%?/>D:.G0D:%1:%3,=>%M/:;0%B%

1.9,;M%A%,=/0@M=0%>?:/,G0D:%8/>M?N@O+C 7,?01%/:AM9=,=,%1:%8:3:/0/,%0A%:3:%1.M?03:%

->/3,/D:B$%.0%M1=/:A,%?>8>D:-%>?:/,G0D:%2,B038+< K8/:8,G0D1.:%EM3.G0D:%1:%0AB/P0D>%3,;%1.M?03,-0+

!"#$%&'()*"#5(%67

/="#$%&'()+8+>+%(4+?#%)7@9A

/"%'B-$511

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"9,30%0AB,D,3D,%@/:A%03;:.1>B

C Q%G:30%M?>P=:B,->L< "/:89:;%6,09>/1< JA?01%3N=:/0G%F/:AM9=,=%1:9:.G0D:%03%?/>D:.G0D:I< 6>/=0/,3D:%A,%0-?9:-:3=,G0D>%8/>M?@O

C !?:/,G0D,%2,B038%1:%0AB/P0%>3N=2:NE9OC "/:89:;%6,09>/1%R%S''%Q)JC 7,?01%B-:13:8,%/:AM9=,=,%R%&'%Q)JC 6>/=0/,3D:%A,%8/>M?N@O%R%T'%Q)JC 6.M?,D%R%SU'%Q)J

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"9,30%0AB,D,3D,%A%03;:.10

C (+%4>1=>?%A%:30-%03;:.1>-%< V:%D:%3,%/,A?>9,8>%B:W%03;:.1>B< Q1,.%03;:.1%?/:;1=,B9D,%:3>%-:=>;>%;>1=>?,< JA@:/:->%03;:.1$%.0%A,2=:B,%3,D-,3D%Q)J

C &+%4>1=>?%A%B:W0-0%03;:.10< V:%B:W%03;:.1>B%=0?,%F&I%03%FXI%M1=/:A,%?>8>DM%0A@0/:< "/:@:/:->%/:AM9=,=:%B:W02%03;:.1>B%03%3,/:;0->%

?/:1:.$%1>/=0/,->%0A@/,3:%0;ND:%A,%>?=0-,9:3%;>1=>?< "/>D:.G0D:%03%;>;,=3:%1:9:.G0D:%9,2.>%19:;0D>%?>%

@/,3DM%A,?01,%F.>=%=M;0%8/M?0/,3D:%03%0A@0/,3D:%8/M?I

Page 108: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"7,30%089,:,3:,%8%03;<.10= >+%4?1@?A%1%1?/@0/,30-%03;<.1?-

B C<%1<83,-%,@/0DE@?9%8,%F/EA0/,3:<%E1@/<8,%1?/@0/,3<-%03;<.1E%

B G/<:<3?1@%03;<.1,%EA?/,D0-?%8,%F/EA0/,3:<B H1<%1<7<.I0:<%7,2.?%3,/<;0-?$%A?%@<-%.?%A/<D</<-?%

3J@</0I<%A/<.?%03;<.1,

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"7,30%089,:,3:,%8%03;<.10= K+%4?1@?A%1,-?%8%03;<.1?-

B C<%0-,-?%03;<.1$%.0%91<DE:<%91<%,@/0DE@<%A?@/<D3<%9%9A/,L,3:E%A?@<-%7,2.?%EA?/,D0-?%1,-?%03;<.1

B H1,.<-E%A?;,@.?93<-E%9A01E%E1@/<8,%A?;,@.?930%8,A01$%.0%F,%30%A?@/<D3?%A/<D/,@0

B M,/<;0-?%1<7<.I0:?$%A/?:<.I0:?%03%1?/@0/,-?%.?3N3<%8,A01<%8,%F/EA0/,3:<

B 4?1@?A%1,-?%8%03;<.1?-%OE3.I0?30/,%@E;0%N<%,@/0DE@0%08D0/<%301?%91<D?9,30%9%,@/0DE@02%03;<.1,

B GA?/,D0-?%;?1@?A%1,-?%8%03;<.1?-%.?@%?D0N,:3?%-<@?;?%;?1@?A,$%O07@/0/,-?%3J@</0I<%03%;?1@?A,-?%1,-?%;?%08D/,302%A?;,@.?9302%8,A01?9

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

PF7<;

= "?F7<:-?%1A<@%A/<:L3:0%A/0-</%= "/<;A?1@,90-?%;,%0-,-?%3,17+%03;<.1<Q

B #R%;/<9?%3,%/,@03FB *,8A/L0730%03;+%3,%,F<B #R%03;<.1%3,%S/,@03F$13,-<$,F<T

= H10%03;<.10%EA?/,D7:,:?%9,/0,3@?%U&V

!"#"$%&'()*%+,-.&$/0,%1234)/5&'*+#/)!&'67")"&'()*%+,-&8&9&*,:&;(*-"<=>-)/0?@A&'()*%+,-7*B+,-&$/0,%&:+!%+,$%1'(!,*5"&8=3C

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

PF7<;

= (+%-?W3?1@Q%B /,8A/L0730%03;<.1%3,%8,%A?F?:%6+,F<X&'B Y<3,%D/,3:,%03;<.1302%8,A01?9%R%A?;+8,A01?9%6,07?/1B Y<3,%?;9013,%?;%A?9<8,3?1@0%03;<.1,B Z07@/0/,-?%1%A?F?:<-%6+/,@03FT[B "/?:<I0/,-?%1@?7AI<$%.0%:02%A?@/<DE:<-?%9%6\]\Y^$%

_*!G"%#`%03%abHcM_+B P,A0L<-?%8,N,13?%/<7,I0:?B P,N,13?%/<7,I0:?%1?/@0/,-?%A?%6+/,@03F%8,%_*!G"%#`B \70-030/,-?%1.EA03<$%.0%3<%8,;?LN,:?%abHcM_

Page 109: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;

< &+%-=>3=1?@%A B/:C:/:-=%/0;DE:%F,B01=G$%.0%F,;=HI,E=%B=8=EJ%6+/,?038KLA "/:C:/:-=%/0;DE:%F,B01=G%6+,8:M&'A 6=/?0/,-=%=C:%-3=>0N0%03%B/:C:/:-=%J1?/:F3:%F,B01:%

6,09=/1A "/=E:N0/,-=%,?/0CJ?,%/,?038%03%13,-:%?:/%F,B0H:-=%

G-:13=%/:9,N0E=A +++

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;

< O+%-=>3=1?@A "/:C:/:-=%%F,B01:%6,09=/1%F%6+/,?038KL%G%G/1?3:-%

/:;J%;=9=I:30-%F%/,?038%=F+%#P%;/:G:1=-+A Q,/:;0-=%1:9:.N0E=%=3D?2:DR9SA TF/,IJ3,-=%9,2.=%,8/:8,N0E1.:%RJ3.N0E:%F,%U*!V"%

#W%03%XYZTQU$%.:/%1=%3D?:/0N:%J/:E:3:%%B=%/,?038+A +++

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;

< [+%-=>3=1?@A "/:C:/:-=%F,B01:%\/,?038$13,-:$,8:K%F,%.,?:/:%

G:9E,%/,?038KLA 7,B01:%1=/?0/,-=%B=%/,?038%]03%13,-:%03%,8:$%.,/%30%

B=-:-C3=%F,%?=%GB/,H,3E:^A TFC:/:-=%,8:M&'%=3D?2:DR9S%A TF/,IJ3,-=%,8/:8,N0E1.:%RJ3.N0E:%F,%U*!V"%#W%03%

XYZTQUA Q:%B/:C:/:-=%B=;+F,B01=G%6,09=/1_A "=-:-C3=%F,%3:B=G:F,3:%03;:.1:

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"=0FG:;C:%3,;%G:I0-0%/:9,N0E,-0

< U9:;,-=%B9,3:%3,;%G:I0-0%/:9,N0E,-0< `,.H3,%GB/,H,3E,%1=%9,2.=%F:9=%F,2?:G3,_< Q:%89:;:%3,%?=%.,.H:3%B9,3%0FC:/:-=%9,2.=%

=N:30-=%G:90.=1?0%/:FJ9?,?=G< TFC=/%G/1?3:8,%/:;,%0FG,E,3E,%1?0.=G

A ZB90G,%3,%./:0/,3E:%G-:1302%/:FJ9?,?=G%F:9=%/,F90I302%G:90.=1?0

A "9,30%0-,E=%9,2.=%F:9=%/,F90I3:%N:3:_A U9:E%B/0-:/:%0F%B/:EH3E:8,%B/:;,G,3E,

Page 110: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7,89:;,3<:%=:;>?@1-:/<:302%A=,3>;

B !13>;3,%>C=>D09:;%;%6E19:-%*F%%G !H/,;3,;,<>%1:%1,->%=:;>?@1-:/<:3,%C/:;:1,+G ">I=:C,=0%10%H>->%.,.>%=,2.>%@D03.>;09>%3,89:;,->%=:;>?@1-:/<:3:%

A=,3:%J%@A>/,H>%C03,-0D3:I,%A/>I/,-0/,3<,

B K:;>?@1-:/<:30%A=,30%1:%/,J=0.@<:<>%1,->%;FG L/193:-%/:C@%/:=,M0<G L%-:9>C,2%J,%C>19>A%C>%/:=,M0<G N=I>/09-02%J,%0J;,<,3<:%190.,

!"

#

$

!"

#

$

# $!"

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7,89:;,3<:%=:;>?@1-:/<:302%A=,3>;

B ">I=:<->%10%H=>.,%;A/,8,3<,F%G !A90-0J,9>/%1019:-,%*%A/:I=:C,%%%%%;1:%->O3:%190.:$%.<:/%%%%%1:%!%03%"%1A@190%.%/:=,M0<,-

B K,193>190%,=I>/09-,F%! 7,;.=<@H%>-:<09;0%89+%A=,3>;%/,19:%:.1A>3:393>%1%89+%/:=,M0<+! 5>I>D:%<:%I:3:/0/,90%A=,3:$%.0%/:,=0J0/,<>%PM:;>;>C:Q+%G L-:13:%/:J@=9,9:%30%A>9/:H3>%J,A01,90%;%J,D,13:%C,9>9:.:+%

!"

#

$

!"

#

$

# $!"

#$%$&'()**+,-.*/(0,1*2345(+/0)*,67(0,1*89$3$(*/+:

;(<(*/+:

=(<(>(<(*/+:

7

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7,89:;,3<:%=:;>?@1-:/<:302%A=,3>;

B 7,89:;,3<:%J%7%A/:2>C0%J,%7%/:=,M0<F! "/:2>C%(F%%">08D0%;1:%3,<H>=<8:%A=,3:%J%:3>%1,->%/:=,M0<>+%! "/:2>C%&F%%">08D0%3,<H>=<80%A=,3%;1:2%190.>;%3,<H>=<802%A=,3>;%3,C%:3>%

/:=,M0<>%9+<+%A=,3%3,C%C;:-0%/:=,M0<,-0+%!! "/:2>C%7F%%">08D0%3,<H>=<80%A=,3$%.0%JC/@O0%3,<H>=<8:%A=,3:%3,C%7?(%

/:=,M0<,-0%J%3,<H>=<80-0%A=,30%3,C%A/:>19,=>%:3>%/:=,M0<>%9+<+%A=,3%3,C%;1:-0%7%/:=,M0<,-0+%

B 403,-0D3>%A/>I/,-0/,3<:FG R,%;1,.>%A>C-3>O0M>%1:19,;=<:3>%0J%"%/:=,M0<%<:%A>9/:H3>%

>2/,3090%1,->%3,<M:3:<80%A=,3SG "=,3:%J,%7%/:=,M0<%1:19,;<,->%0J%A=,3>;%J,%7?(%/:=,M0<%9,.>%

C,%C>C,<,->%1:%:3%190.+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/:2>C%(F

B 7,89:;,->%;1:%A=,3:%J%:3>%/:=,M0<>%0J%T*!5%C:=,%6UKUVW%19,;.,

B "=,3%3,C%:3>%/:=,M0<>%<:%C:=:3%=:;>?@1-:/<:3%A=,3B R,%;1,.>%/:=,M0<%N%0C:390X0M0/,->%A>I><:%0JH0/:$%.0%1:%3,3,8,<>%

1,->%3,%,9/0H@9:%;%N+%W>%1>%1:=:.M0<:$%.0%<02%<:%A>9/:H3>%3,/:C090%A/:C%;1:-0%190.0+

B YC:390X0M0/,90%<:%A>9/:H3>%9@C0%,9/0H@9:%N$%.0%301>%A>9/:H30%Z301>%;%6UKUVW$%[\U*U$%]^%03%<02%=,2.>%0J=>D0->%A>%H/,3<@%A>C,9.>;3:I,%J,A01,+

B R,%C,3:%A>I><:%<:%A>9/:H3>%A>01.,90%>A90-,=3>%-:9>C>%C>19>A,+B ">08D:->%=,2.>%3,<M:3:<8:%A=,3:%J,%;1,.>%@/:<:3>19%/:J@=9,9,+%B _/:<:3>19%=,2.>%0J.>/0190->%.,13:<:%3A/+%J,%`*!_"%#a%

>A:/,M0<>+

Page 111: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/7289%&:

; <,=>7?,-8%?17%@A,37%B%9?7-0%/7A,C0D,-0+%E "/7D%0B/,FG3,37%8@>0-,A37%-7>897%981>8@,%98%737%/7A,C0D7%

G@8/,H0-8%.8>%BG3,3D8%/7A,C0D8+E I17%81>,A7%/7A,C0D7%G@8/,H0-8%B,%38>/,3D7%/7A,C0D7+

; *7C0-8$%9,%D7%J%BG3,3D,%/7A,C0D,%03%#%38>/,3D,+"/7KA79,-8%LMN*N%1>,?7.%03%0973>0O0C0/,-8:E 67A7.C0D7%3,9%,>/0HG>0$%.0%17%>0F7D8%1,-8%#%17%A,2.8%0B?/=0D8%@/79%

1>0.8-+E 67A7.C0D7%3,9%,>/0HG>0$%.0%97O030/,D8%1>0.+E 67A7.C0D7%3,9%,>/0HG>0%9/GK02%/7A,C0D$%.0%17%A,2.8%0B?/=0D8%@8%1>0.G+

; "81A790C7:E "/?0%9?7%1.G@030%17A7.C0D%G@8=>7?,-8%@/0%0BH0/0%-7>897%981>8@,%98%#E P973>0O0C0/,-8%,>/0HG>7%#$%.0%D02%A,2.8%B,?/Q7-8%@/79%0B?,D,3D7-%1>0.,

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/7289%&:

; R7%@,/%.8-73>,/D7?:E S737/0/,3D7%3T>7/0C%B%BG3,D3D0-%@A,38-%D7%97O030/,38%B,%

0-@A7-73>,C0D8%C7?8?89,+E <7.,>7/7%-7>897%1>0.,%37%B,2>7?,D8%-,>7/0,A0B,C0D7%/7BGA>,>,$%9/GK7%

B,2>7?,D8+E 57>89,%1>0.,%A,2.8%B,2>7?,%98A+%G/7D7381>%?289,+%<@/+%18/>0/,3D7%B%

BA0?,3D7-+%U7%8H1>8D7F,%-7>89,%981>8@,%98%38>/,3D7%/7A,C0D7%37%9,%Q7AD737%G/7D7381>0%D7%>/7H,%@/0=>7>0%C738%18/>0/,3D,+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/7289%V:

; S737/0/,-8%?17%@A,37%1%>/7-0%/7A,C0D,-0+%; W9,D%?B,-7-8%@A,37%0B%@/7289,%&%03%D02%9,-8%.8>%BG3,3D8%

/7A,C0D8+%; 6@7>%989,D,-8%@/781>,A8%38>/,3D8%/7A,C0D8+%; P>9+%

"/781>,A0%@/72890:

; S/G@0/,3D7%?%HA8.G%17%0B?/=0%3,%.83CG+%; IF,102%D7%@8>/7H38%@81./H7>0%B,%@/,?0A38%G/7D7381>%0B289,%

1>0.8?$%9,%H0%A,2.8%0B?,D,A0%K/G@0/,3D7+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

[email protected]>%,AK8/0>-,

; P-,-8%!%/7A,C0D

; (+%@/7289:%%

E W,%?1,.8%/7A,C0D8%!"#"$%&'()*

; &+%@/7289:%%

E P-,-8%8@>0-,A37%@A,37%B,%981>8@%98%737%/7A,C0D7

E W,%?1,.8%@89-38Q0C8%B%(%/7A,C0D8%@/0.ADGF0-8%%=7%?17%@/781>,A7%/7A,C0D7

E +#",-"."+#/,-

; V+%@/7289:%%

E P-,-8%8@>0-,A37%@A,37%B,%981>8@%98%?172%-8Q302%@,/8?%/7A,C0D

E W,%?17%@89-38Q0C7%B%9?7-0%/7A,C0D,-0%@/0.ADGF0-8%=7%@/781>,A7%/7A,C0D7

E +#"0-"."+#/0-"

; 0T>0%@/7289:%%

E P-,-8%8@>0-,A37%@A,37%B,%981>8@%98%?172%-8Q302%@89-38Q0C%B%0T(%/7A,C0D,-0

E W,%?1,.8%@8-38Q0C8%B%0T(%/7A,C0D,-0%@/0.ADGF0%=7%@/781>,A8%/7A,C0D8%%

E +#")/,-"."+#/)-

; 6.G@38:

E 3YZ3%([\Z3T([Y+++YZ3%0T([\Z3T0[Y+++

E ]]%&3

Page 112: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%789:;%(

< "=89:>-=%10%?/0-:/%=?@0-0A,B0>:%C?/,D,3>,%A%:30-%1@0.=-

< "/:;?=1@,C9>,-=%;,%0-,-=%3,19:;3>:%03;:.1:E(F#G%03;:.1%3,%/,@038%@,H:9:%6,09=/1&F*,A?/D0930%03;:.1%3,%10;%@,H:9:%6,09=/1IF#G%03;:.1%3,%H0;%@,H:9:%*:1:/C:1

! "/:;?=1@,C0-=$%;,%9,2.=%3,/:;0-=%1:.C:3J30%?/:89:;%3,%6,09=/1%03%*:1:/C:1

!"#$%&

'

(")*+")*'

,-)*+.//

'0&"&12&"34

,1$5)#678

'9$):;1"33333

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%(E%"/:2=;%(

< "/:89:;,-=%@/0%-=K3:%-:@=;:%;=1@=?,%;=%6,09=/1L #G%03;:.1%1:%M>:-,%1%1:9:.B0>=%,

/,@038NO%03%A-,3>D,%

B:3=%;=1@=?,%;=%A,?01=C%6,09=/1L P?=/,H,%/,A?/D093:8,%03;:.1,%,90%1:.C:3J3:8,%

?/:89:;,%>:%A:9=%C:/>:@3=%;/,K>,L "9,3%@=/:>%;=1@=?,%;=%6,09=/1%?/:.=%#G%03;:.1,%03%

C/,J,%A,?01:%M/:>:3:%?=%/,@038

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%(E%"/:2=;%(

< "/:89:;,-=%;C:%-=K3:%-:@=;:%;=1@=?,%;=%*:1:/C:1L #G%03;:.1%3,%H0;%1:%M>:-,%1%1:9:.B0>=%,

-)*+.//%03%

A-,3>D,%B:3=%;=1@=?,%;=%A,?01=C%*:1:/C:1L 6:.C:3J30%?/:89:;%H=%A:9=%C:/>:@3=%19,HD,%-:@=;,L 4=1@=?%?/:.=%#G%03;:.1,%>:%@=/:>%?9,3%A,%*:1:/C:1

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%(E%"/:2=;%&

< "=89:;,-=%3,>?/:>%1@0.%-:;%*:1:/C:1%03%6,09=/1+L "=@/:HM>:-=%1,-=%A,?01:%6,09=/1%A,%.,@:/:%C:9>,%,

/,@038NO%03%,

10;QC,9M:

L ,10;QC,9M:%

1:%M>:-,%A%/,A?/D0930-%03;:.1=-%3,%10;%@,H:9:%6,09=/1

L ,/,@038NO%

1:%M>:-,%A%#G%03;:.1=-%3,%/,@038

L 4=1@=?%A%:3,.=1@>=%0-,%C:J>=%1:9:.@0C3=1@+L P?=/,H0-=%/,A?/D0930%03;:.1%3,%10;%@,H:9:%6,09=/1L "=89:;,-=%@M;0%,9@:/3,@0C3:%,98=/0@-:R%1@0.%A%A90C,3>:-S

< P/:>:3=1@%?=%10;%L%30%M?=/,H3=

< T-,-=%!"#$%&<

=<")*<;*>$*&

Page 113: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%(<%"/:2=;%&

> 6?0.%-:;%6,09=/1%03%*:1:/@:1+A 6,09=/1%0BC:/:-=%.=?%BD3,3E=%/:9,F0E=+A "=?/:CDE:-=%1,-=%B,G01:%*:1:/@:1%B,%.,?:/:%@:9E,%!"#$%&''%

03%!10;H@,9D:

$%.E:/%E:%@/:;3=1?%;=9=I:3,%B%BD3,3E=%

3J?:/0F=+A 6G:?%G=89:;,-=%@1:%-:?=;:%B,%1?0.

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!F:3,%

! 5=/3,/E0$%7,G01%H%K'%B9=8=@$%%L'%B,G01=@%3,%1?/,3$%K''%1?/,30+! *:B:/@,F0E:$%7,G01%H%M'%B9=8=@$%%(''%B,G01=@%3,%1?/,3$%('''%1?/,30+%! N*0;N%H%(O$%N03?N%H%M$%"=;,?.=@30%@G01%H%&'%B9=8=@

> P:90.=1?%03;:.1=@! #Q%03;:.1%3,%/,?038%?,C:9:%6,09=/1%

! R?+B,G01=@%H%L'%S%K''%H%M''''%%B,G01=@%HT%&''%1?/,30%G=;+@G01=@! P0U03,%&$%(%03;+1?/,3$%(''V%B,G=93E:3=1?$%6.DG3=%H%&'(%1?/,30%

! *,BG/U0930%03;:.1%3,%10;%?,C:9:%6,09=/1! R?+B,G01=@%H%L'%S%K''%H%M''''%%B,G01=@%HT%&''%1?/,30%G=;+@G01=@! L'V%B,G=93E:3=1?$%6.DG3=%H%&K'%1?/,30

! #Q%03;:.1%3,%C0;%?,C:9:%*:1:/@:1! R?+B,G01=@%H%(''%S%('''%H%('''''%%B,G01=@%HT%K''%1?/,30%G=;+@G01=@! P0U03,%H%W$%M%03;+1?/,30$%OXV%B,G=93E:3=1?$%6.DG3=%H%XKO%1?/,30%

()*+,*-#./0#$1.#+2343*5.0#031.62*#+45.)73+,1.#+2343*5.62,*1.*3,89:3;3*<,7#-3./0#$1.#+2343*5.8#$1.#+2343*5.$,+1.$,2365.*#031.62*#+49

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!F:3,<%"/:2=;%(

> 6,09=/1A !"#$%&'()#%*#+*,$%-#.!

+*,$%-/01#

A 2'3'(,$4%5),#6#789:#;+'<'+'=5#7>7#$%&?),+*%$#"#.)5+,$+*%$#+$&@A$1#B>>#),+*%$#

A 2(C;%5#6#7>7#"#B>>#6#D>7#),+*%$

A 2'(4'%E%$#;+'-3'&#6#0>>#),+*%$

> *:1:/@:1A !"#$%&'()#%*#<$&#.!

<$&67>>1

A 0>>#3*&$A:#7>>>>>80>>#6#9>>#F*;$)54#

A G'%*#6#.$%&?),+*%$1#9#"#.3$),$#$%&?1#9#"#.;5&?F*;$)$1#9>>##

A 2(C;%5#6#9>D#),+*%$

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!F:3,<%"/:2=;%&> =>2(?/@,#8)*69.A

6#$%6#$.:38/:363*<369.

A 9>?>>>#F*;$)54#)'#CA'=*#F#!+*,$%-/0

.2*$35+)1

A H*#4)*(#F*;$)#A'#;5,+'<'%#&5),5;#&5#I')'+4')

A J'#5<),*A*#$%&'()#F*#)$&#%*#I')'+4')#6/#4-%?F*%(*

A 25+,?#F#F3$4*%A'=#A'#,C&$#)3*<K'#5&#5;,?L> H*E?,*<'3*#2*$35+)#6#9>>>>MB>670>#),+*%$

> 25+,.H*E?,*<'3*#2*$35+)1#6#9MBM70>#6#N>>#),+*%$

> 25+,.H*E?,*<'3*#I')'+4')1#6#9M7M9#6#D#),+*%$

> H3$4*%A'#6#N>>#"#D#"#70>#"#9#6#7>0O#),+*%$

> =>2(?/:363*<369.A6#$%6#$.

:38/@,#8)*69

A B''.;,>#6)<.C62*3;,.!<$&67>>

/:363*<369

A D0,0).#+$3E6.;,.6#$.+,.@,#8)*6

A F3+,.%.B'G.H./*,;>*I#+$3E69.B''.J.&IB.%.GGG.62*,+#

A @2#E.;.;8#<,+-30.-3.$*,K-#./483-.;4)*,-9

Page 114: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%789:;%&

< =>/,?,3@:%>A0?B:%?C:D09A%/;:B02%9,;0@%/:E:/D0/,302%>A%>A1,-:E302%-A/3,/@02+

!"#"$%&'(!)*+&$,-.%/0123,4&5,6%!&5+&7"!"38"!&7+&&'6)#,3!&'9:"3"&7(!)*;'(!)*&6.*&5(<)*;7(<)*6.*&5($,#,3;=3"*=>3,-?&<@&'(!)*A

!"#$%&'()*+,-.

,

/0()12345"#$

,

6"#$7"#$

,

&&&&&62#$72#$

,

&&&&&&&&&&&8'(9(07:0;$:

,<(=+".%

&&&&&&&&&&&>;";0?;".%&&&&&4=#9(0"...

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%&

< "/:;>A1C,D0-A$%;,%0-,-A%3,19:;3@:%03;:.1:FG *:1:/D:1F%

< #H%;/:DA%3,%10;< >AD:E,3A%#H%;/:DA%3,%I0;

G 6,09A/1F< #H%03;:.1%,3,%10;< *,E>/?0930%03;:.1%3,%10;

G #A,C1F< #H%03;:.1%3,%JA9A/< *,E>/?0930%03;:.1%3,%JA9A/

!"#"$%&'(!)*+&$,-.%/0123,4&5,6%!&5+&7"!"38"!&7+&&'6)#,3!&'9:"3"&7(!)*;'(!)*&6.*&5(<)*;7(<)*6.*&5($,#,3;=3"*=>3,-?&<@&'(!)*A

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%&F%"/:2A;%(

< K?B:-A%3,@IA9@?0%>9,3%E,%;A1CA>%;A%D1:2%C/:2%/:9,J0@

< 7,%*:1:/D:1%03%6,09A/1%@:%AB0C3A%3,@J:3:@?0%>9,3%1:.D:3B30%;A1CA>G L0-,-A%1:9:.J0@%3,%*:1:/D:1%03%6,09A/1

< L,@IA9@?0%;A1CA>%;A%#A,C1%@:%AB0C3A%/,E>/?0930%03;:.1%3,%I0;$%.0%1:%M@:-,%E%8

'(9(07:0;$:

< #H%03;:.1%3,%JA9A/%1:%CM;0%M@:-,%1%>A8A@:-%G 7,/,;0%M/:@:3A1C0%/:EM9C,C,%8,%AI;/N0-A%-:;%

-AN30-0%>9,30

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%&F%"/:2A;%&

< @=&?"=A&19=*&$(9(B;*&10#&10;C($)&DEG F1(0=2#&19=*&G=&G)*=*H(&0;9='#H(

G I(/9;H&?";&J(K*;&*(+0=*H;&0;9='#H;&

< L';*#+#&H;&1(+0;2*(&?";&*="9;$*H;&"+#A;EG I0;/9;$&>;";0?;"&6&<(=+"

G I0;/9;$&>;";0?;"&6&4=#9(0"

G I0;/9;$&4=#9(0"&6&<(=+"

G I0;/9;$&4=#9(0"&6&>;";0?;"

G <M&$("+(1&$(&<(=+"&6&4=#9(0"

G >=G15#*$;A"&$(&<(=+"&6&4=#9(0"

G <M&$("+(1&$(&<(=+"&6&>;";0?;"

G >=G105#*$;A"&$(&<(=+"&6&>;";0?;"

Page 115: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%&<%"/:2=;%&> 7,%?1,.%1@0.%A:%B=@/:C3=%=D:30@0%?1:%,98=/0@-:%E,%1@0.+

F 7,%?1,.%,98=/0@:-%B=89:;,-=%?1:%-=G3:%-:@=;:%;=1@=B,%;=%3=@/,3A:%/:9,D0A:

> !"#$%&'(%#)*+",-#.#/(-(%0(-12F 3"$%4&56&#&67(8-#7+#*+",-#)9+5+%1#.)0:6;<"68"#<#&67(8-+'1#*=#&67(8-#<"#>&7#6"#/(-(%0(-

> ?+#>+#0(%@(,6+#<(5+#7+>(%#$5"6

> !(#+>-,"@"#%"<$%;&67(8-#<"#>&7#6"#/(-(%0(-

F /"<$%4&56&#&67(8-#7+#*+",-#)9+5+%1##.)-,&8#<#<5&0"6@('1#*=#&67(8-#<"#>&7#6"#/(-(%0(-

> /(<A5,",#@(#-+%,&%"6#$+#>&7

> B5"6#<"7%C&'+#<"%"7&#A%(@(6+-,&#%(<A5,","#)D(#6&#9(6(@4(:"1

> B%(@46@&#$5"6#)0:6;<"68"#<#&67(8-+'1#6(>&#<"7%C"5&E#D(#>&#>&5#,"#9(6(@4&F

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789:;%&<%"/:2=;%H> I1,.%B9,3$%.0%A:%C09%3,/:A:3%?%B/:2=;J%&

F G+7"'+#$%(+-,"5+#%(5"9&@+#8+,#6+,%"6@+#%(5"9&@+;

F B%(:5(7"'+#-$(,#0-(#'+C6(#"5:+%&,'(#&6#<"#0-"8#"5:+%&,('#0-(#'+C6(#'(,+7(#7+-,+$"#7+#6+,%"6@(#%(5"9&@(;

> B+:5(@'+#-&#$%&'(%E#8+#7+7"'+#%(5"9&@+#H"&5+%-#8#+$,&'"56('#$5"6A#<"#'6+C&9+#%(5"9&@#I*+",-E/(-(%0(-J;

!"#"$%"#&'()#

*(+,'$#!"#$%&'()*+,("-./0/%

12-'()*+,-("-3')

45'+-#-#0'6"(7*812-'()*+,-("-,')

45'+-#-#0'6"(7*8

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

I83:E;:3:%B=0E?:;C:

> I83:E;:3%C9=.%1:%=B@0-0E0/,%3:=;?013=%03%EJ3,3A,%3K@:/0D,%1:%3,;%@:-%C9=.=-%B/:?:/0%.=@%3,;%B=8=A:-%1:9:.D0A:+%

> 7J3,3A0%C9=.%A:%=B@0-0E0/,3%1%D:3=%L.90D,3A,M%?83:E;:3:8,%C9=.,%.=@%NJ3.D0A=+%

> O-B90D0@3,%J/:A:3=1@%?83:E;:302%C9=.=?%=-:AJA:%B/:89:;%3:.,@:/02%;=C/02%1@/,@:80A+%

> !"#$%&'(&)(*&$)+,&$'&,-.)/&)0#1#2,")("3-&)"10#4#$#*.-"5)

HKLKM?##N;'&'(O/PN##N+%6"%@&#NQRK/K#KSTH?H#!"#$#%&''(')*+,''*-.-/01234-'*'56#*#''*7839:;<=''>?@'*7A39:,7A39B

#U:6(<7(6#>5+8#<"#+$,&';2#HKLKM?##V#O/PN##/(<(%0"9&@(#/#QRK/K##/;5&7WXYZ######[!G#N;'&7W#.CD70/-97#

K80&0"5(6,6"#$;#>%(<#0:6(<7;$;2HKLKM?##N;N&'(O/PN#N+%6"%@&#NE#/(<#/QRK/K##N;'&7W/;'&7####[!G#/;5&7WXYZ

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"=?E:@:.

> !B@0-0E,D0A,%B=0E?:;C%A:%B=-:-C3=%=B/,?09=%/:9,D0A1.:8,%6P"#+%

> "=@/:C3=%A:%B=E3,@0%=B@0-0E,D0A=$%;,%C0%9,2.=%/,EJ-:90%?B90?%3,Q/@=?,3A,%B=;,@.=?3:%C,E:%3,%0E?,A,3A:%;:9=?3:%=C/:-:30@?:%,B90.,D0A:+%

> 4?,%;:9,%=B@0-0E,D0A:%B=0E?:;C<%! R,S@:?,3A:%,9@:/3,@0?302%B9,3=?+

> O1.,930%B/=1@=/%A:%B=@/:C3=%E-,3AS,@0<%9:?=KJ1-:/A:30%B9,30+! !D:30@0%A:%B=@/:C3=%?1,.%B9,3+

> I:90.=1@%/:EJ9@,@,%T%D:3,%B9,3,%?1,.:8,%?=E90SQ,+%> 63-72,#)1.*.4&0*#<%1@,@01@0.:$%03;:.10$%0-B9:-:3@,D0A:%=B:/,D0A%*U+

Page 116: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

"789:;:.

< "=,30%3,>%:37%/:=,?0@7A

! "/:B=:>,-7%81:%-:;7>:%>71;7C,+

! !"#"A%%6:=:.?0@:$%.0%1:%D@:-,@7%9%03>:.10E%,=0%0-,%.=@DF%

03>:.1,%81:%C7;/:G3,%C7=@,E%,=0%03>:.1%8/3:%3H;:/0?:%8%

C/0F,.78,3:-%8/1;3:-%/:>D+

< "=,30%3,>%8:F%/:=,?0@,-0A%

! I,@C/:@%3,J;:@:-7%81:%C=,3:%3,>%:37%/:=,?0@7+%

< 6:=:.?0@:%03%C/7@:.?0@:%1:%098:>:@7%F0-%20;/:@:%@:%-7B7F:+%

! K,%81,.%C=,3%9%$%/:=,?0@,-0%89,-:-7%3,@G7=@J0%C=,3%3,>%$%&%

/:=,?0@,-0%03%B,%C78:L:-7%9%1;0.7-%9%3,1=:>3@7%M37;/,3@7N%

/:=,?0@7%79+%3,@G7=@J0-%C=,37-%3,>%:37%/:=,?0@7+%

! K,%81,.7%C7>-37L0?7%/:=,?0@%72/,30-7%1,-7%3,@G7=@J0%C=,3+%%

Page 117: Osnove Podatkovnih Baz --skripta-- 2010/2011

1. Naloga

Za podatkovno bazo letalske družbe (glej skico pri vajah) zapiši odgovore na naslednja vprašanja s povpraševalnim jezikom SQL. Pri tem poskusite odgovor optimizirati ali s spreminjanjem SQL stavkov ali s smiselno uporabo indeksov. Narišite še drevo poizvedb in poskušajte različne SQL stavke pognati v phpMyAdmin z ukazom EXPLAIN. Za vsak odgovor si oglejte razlago njegovega SQL stavka, ki jo vrne mySql (phpMyAdmin)

a. Poišči imena in priimke pilotov, ki so pilotirali vsaj eno letalo s kapaciteto večjo od 200 sedežev.

b. Poišči vse letalske družbe, ki imajo v lasti več kot 20 letal.

c. Poišči vse stevardese, ki so letela pod vodstvom pilota IdP=50.

d. Poišči naziv letalske družbe, ki ima trenutno največje število letal.

e. Poišči rezervacije (IdR), katerih cena je višja od 300 in se nanašajo na letala, katerih oznaka tipa letal je 'DC9' ali 'DC8'. f. Poišči vse rezervacije (IdR), katerih cena je višja od 300 in se nanašajo na letala - pri katerih oznaka tipa letal je 'DC9' ali 'DC8' in - in ki so jih pilotirali piloti zaposleni pri letalski družbi v Sloveniji. g. Poišči nazive vseh letališč, na katerih so že pristale stevardese, zaposlene pri letalskih družba iz Slovenije. 2. Naloga

Za podatlnovno bazo naftne družbe (glej Vaje02) zapiši odgovore na naslednja vprašanja spovpraševalnim jezkom SQL. Pri tem poskusi odogovor optimizirati ali s spreminjanjem samega SQL stavka poizvedbe ali s smiselno uporabo indeksov. Narišite še drevo poizvedb in poskušajte različne SQL stavke pognati v phpMyAdmin z ukazom EXPLAIN. Za vsak odgovor si oglejte razlago njegovega SQL stavka, ki jo vrne mySql (phpMyAdmin).

a. Poišči imena in priimke šoferjev, ki so že vozii vsaj eno cistemo s kapacitao višjo od 10.000 litrov.

b. Poišči vse benzinske črpalke, ki imajo več kot 10 točilnih mest.

c. Poišči vse zaposlene, ki trenutno delajo na bencinskii čpalkah z zalogo dizelskega goriva višjo od 5000 litrov.

d. Poišči naziv bencinske črpalke, ki imajo trenutno najvišje število točilnih mest.

e. Poišči vse dobave goriva (IdD), pri katerih je količina višja od 1.000 litrov in vkljlčujejo cisterne proizvajalcev 'MAN' ali 'Iveco'.

f. Poišči vse dobave goriva (IdD), pri katerih je količina višja od 1.000 litrov in vključujejo cisterne: - proizvajalcev 'MAN' ali 'Iveco' in - ki so jih vozii kaznovani šoferji (tj. šoferji s številom kazni > 0)

g. Poišči nazive vseh bencinskii črpalk, h katerim so naročeno gorivo pripeljali samo nekaznovani šoferji (tj. šoferji s številom kazni > 0).

Page 118: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 119: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Pregled upravljanja transakcij

Iztok Savnik, FAMNIT

OPB, 2009/10

Uvod

• Sočasno izvajanje uporabniških programov je ključno

za dobre performanse SUPB.

! Dostop do diska je pogost in relativno zamuden zato je

pomembno, da je CPU konstantno zaposlen.

• Uporabniški program lahko izvrši več operacij nad

podatki, vendar lahko dela le nad podatki, ki se

preberejo/napišejo v bazo.

• Transakcija je abstrakten pogled SUPB na

uporabniški program.

– Sekvenca ukazov za branje in pisanje.

OPB, 2009/10

Sočasnost v SUPB

• Uporabniki si pri delu s transakcijami lahko

predstavljajo, da se vsaka transakcija izvaja posebaj.

! Sočasnost doseže SUPB z izmenjevanjem akcij

(branje/pisanje) večih transakcij.

! Vsaka transakcija pusti podatkovno bazo v konsistentnem

stanju, če je bila baza konsistentna ob začetku transakcije.

• SUPB zagotovi integritetne omejitve, ki so bile definirane v okviru

tabel podatkovne baze.

• Razen integritetnih omejitev SUPB dejansko ne razume pomena

podatkov.

OPB, 2009/10

Sočasnost v SUPB

Problemi:

• Prekrivajoče transakcije.

– Akcije ene transakcije lahko vplivajo na izvajanje

druge transakcije.

• Sistemske napake.

– Po sistemski napaki je potrebno zagotoviti

konsistentno stanje podatkovne baze.

Page 120: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Atomičnost transakcij

• Stanje transakcij:

– Transakcija je lahko potrjena po izvršitvi akcij.

– Transakcija je lahko prekinjena (lahko jo prekini SUPB) po

izvajanju neke akcije.

• Zelo pomembna lastnost, ki jo zagotavlja SUPB je

atomičnost transakcije.

• Uporabnik lahko vidi transakcijo kot samostojno

akcijo, ki se bodisi izvrši v celoti ali pa se ne izvrši.

– SUPB zapisuje vse akcije tako, da jih je mogoče izničiti pri

prekinjeni transakciji.

OPB, 2009/10

Lastnosti transakcij

• Konsistentnost

– Če se izvaja sama mora ohraniti konsistentnost

podatkovne baze.

• Izolacija

– Transakcije so zaščitene pred vplivi drugih

transakcij, ki se izvajajo hkrati.

• Trajnost

– Po izvršitvi potrditve transakcije se učinki ohranijo

tudi v primeru sistemske napake.

OPB, 2009/10

Primer

• !"#$%&'"()*(+,%(-./0)/12*&*(3!"#$45

!"# $%&'()))*+*,"--.)))$+$/"--)))%(0

!1# $%&'()))*+"2-34*.)))$+"2-34$)))%(0

! !.,/(-./0)/12*&/(6.%0%)%(7899(*:(./;<0/(=(0/(./;<0(>?(

! @.<#/(-./0)/12*&/(+"+/(,)/1%'<(./;<0<(AB("C.%)-*?(

! D*(#/./02*&%E(+/()%(C"(F8(*:,/&/$/(6.%+(FG(/$*("C./-0"?(

! !"#$%&'"()*(1/&()%($/H1"(:#"+*?(

OPB, 2009/10

Primer

• I%2*'"E(+/()%(/12*&%(6.%1.*,/&"(0/()$%+%;(0/;*0(3./:6".%+*-%,45

!"# )*+*,"--.))) )))))$+$/"--)))

!1# ))) )))))))))*+"2-34*.)) )$+"2-34$

" F"(&%(,(.%+<?(J/&(6/5

!"# )*+*,"--.))) ))))) $+$/"--)))

!1# ))) )))))))))*+"2-34*.)$+"2-34$

" !"#$%+(KL!=(0/(./:6".%+*-%,5

!"# )56*7.)86*7.))) ))))) )))))))56$7.)86$7

!1# ))) 56*7.)86*7.)56$7.)86$7

Page 121: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Razporejanje transakcij

• Zaporedna razporeditev: Razporeditev s katero se

akcije dveh različnih transakcij ne prekrivajo.

• Ekvivalentna razporeditev: Za vsako stanje

podatkovne baze je rezultat izvajanja (na množici

objektov SUPB) prve razporeditve identičen rezultatu

izvajanja druge razporeditve.

• Serializibilna razporeditev: Razporeditev akcij, ki je

ekvivalentna neki zaporedni razporeditvi.

• Če transakcija zagotovi konsistenco potem tudi

serializibilna razporeditev zagotovi konsistentnost

podatkovne baze. OPB, 2009/10

Anomalije pri prekrivajočih transakcijah

• Branje nepotrjenih podatkov (WR konflikt,

“dirty reads”):

• Neponovljivo branje (RW konflikt):

!"#$ %&'()$*&'()$$$ $$$$$$$$$$$$$$$%&+()$*&+()$',-./

!0# %&'()$*&'()$1

!"# %&'()$$ $$$$$ $$$%&'()$*&'()$1

!0# %&'()$*&'()$1

OPB, 2009/10

Anomalije

• Prepis nepotrjenih podatkov (WW konflikt):

!"# *&'()$$ $$$$*&+()$1

!0# *&'()$*&+()$1

OPB, 2009/10

Kontrola sočasnosti z

zaklepanjem

• Dosledno dvo-fazno zaklepanje (Dosledno 2FZ):! Vsaka Xact mora pridobiti S (deljen) zaklep na objektu

pred branjem in X (ekskluzivni) zaklep na objektu pred

pisanjem.

! Vsi zaklepi transakcije so sproščeni na koncu transakcije.

" Nedosledno 2FZ: Sprosti zaklenjene objekte

kadarkoli, vendar po sprostitvi istih objektov ni moč

ponovno zakleniti.

• Če Xact X zaklene nek objekt potem ne more

nobena druga transakcija zakleniti istega objekta (S

in X).

Page 122: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Kontrola sočasnosti z

zaklepanjem

• Dosledno 2FZ:

– Dovoli samo serializibilne razporeditve.

– Poenostavi prekinitev transakcije.

• Nedosledeno 2FZ:

– Zagotovi samo serializibilne razporeditve.

– Zahteva bolj kompleksno proceduro za prekinitev

transakcije.

OPB, 2009/10

Prekinitev transakcije

• Če je transakcija Ti prekinjena potem morajo biti vse

njene akcije izničene.

– Ne samo to; če Tj bere objekte, ki jih je napisala Ti, potem

mora biti prekinjena tudi Tj!• Večina sistemov se izogne kaskadnim prekinitvam s

sprostitvijo zaklenjenih objektov tik pred potrditvijo.

! Ti popravi objekt; Tj ga lahko prebere šele po potrditvi Ti.• SUPB zapisuje kompleten dnevnik vseh popravkov.

– Prekinjene transakcije je mogoče izničiti.

– Isti mehanizem se uporablja za vzpostavitev konsistentnega

stanja po sistemski napaki.

OPB, 2009/10

Dnevnik (Log)

• Naslednje akcije se zapisujejo v dnevnik:

! Ti zapiše objekt: stara vrednost in nova vrednost.

• Zapis dnevnika se mora zapisati na disk pred podatki!

! Ti potrdi/prekine: zapis dnevnika, ki zabeleži akcijo.

• Zapisi dnevnika so med seboj povezani z Xact ID.

– Enostavno je izničiti specifično Xact.

• Dnevnik se pogosto podvoji in arhivira na stabilni

medij

• Vse aktivnosti nad dnevnikom (kot tudi aktivnosti

sočasnega izvajanja npr. zaklepanje, preprečevanje

smrtnega objema, itd.) izvaja SUPB transparentno.OPB, 2009/10

Vzpostavitev konsistentnega

stanja po sistemski napaki

• Algoritem Aries ima tri faze:

• 1. Analiza:

! Pregled dnevnikov od zadnje fiksne točke.

! Algoritem pregleduje naprej po dnevniku.

! Identifikacija vseh Xacts, ki so bile aktivne v času sistemske

napake.

! Identifikacija vseh “umazanih” strani v času sistemske

napake.

Page 123: Osnove Podatkovnih Baz --skripta-- 2010/2011

OPB, 2009/10

Algoritem Aries

• 2. ponovitev akcij (Redo): ! Ponovi vse popravke “umazanih” strani.

! Zagotovi, da so vsi popravki zapisani v dnevniku dejansko

narejeni.

• 3. restavracija starega stanja (Undo): ! Vsi popravki, ki so bili aktivni v času sistemske napake se

izničijo; restavrira se staro stanje.

! Algoritem pregleduje nazaj po dnevniku.

! Paziti je potrebno na sistemske napake med procesom

vzpostavljanja konsistentnega stanja (recovery).

OPB, 2009/10

Pregled

• Med najpomembnejšimi funkcijami SUPB:

– Kontrola sočasnega izvajanja.

– Vzpostavitev konsistentnega stanja po sistemski napaki.

• Uporabniki ne vedo za sočasno izvajanje.

! Sistem sam vstavi kodo za zaklepanje/odklepanje objektov.

! Sistem razporedi akcije različnih transakcij tako, da zagotovi

rezultat ekvivalenten izvajanju zaporedne razporeditve

transakcij (ena za drugo).

OPB, 2009/10

Pregled

• Dnevnik se uporablja za vzpostavitev začetnega

stanja po:

– prekinitvi transakcije ali

– Za vzpostavitev konsistentnega stanja po sistemski napaki. .

" Konsistentno stanje: Vidni so samo učinki potrjenih

Xact.

Page 124: Osnove Podatkovnih Baz --skripta-- 2010/2011

Transakcije

PREMALO NALOG, DODAJ ŠE 16.3 (str 220), 16.6 isolation-levels and two access-modes,

1. Transakcija T1 ima naslednjo razporeditev nad objektoma A in B baze podatkov:

R(A), W(A), R(B), W(B)

a. Podajte primer transakcije T2, ki bi, pognana vzporedno s transakcijo T1 lahko privedla do konflikta. Predpostavimo, da nimamo nobene kotrole vzporednosti.

b. Kako bi uporaba striktnega 2 faznega zaklepanja preprečila konfliktno situacijo iz prejšnjega primera. Ponovno napišite izvedbo. 2. Imamo naslednji transakciji s pripadajočima razporedoma

T1: R(A) R(B) W(A) T2: R(A) R(B) W(A) W(B)

a. Podajte razpored transakcij T1 in T2, ki privede do WR konflikta.

b. Podajte razpored transakcij T1 in T2, ki privede do RW konflikta.

c. Podajte razpored transakcij T1 in T2, ki privede do WW konflikta.

d. Za vsako od podanih razporedov, pokažite kako bi strikten 2FZ to preprečil.

3. Za naslednje razporede 3eh transakcij povejte ali med njimi prihaja do konfliktov.

T1 R(A) W(A) C ---------------------------------------------------------------------------------- T2 W(A) C ---------------------------------------------------------------------------------- T3 R(A) C

a. Če ja, jih opišite in razložite kako bi z 2 faznim zaklepanjem rešili te konflikte. b. Kam bi morali potrditev T3 da bi med T2 in T3 prišlo do RW konflikta?

4. Imejmo naslednji dve transakciji:

T1: R(A), R(B), if A = 0 then B:=B+1, W(B) T2: R(B), R(A), if B = 0 then A:=A+1, W(A) Konsistentnost baze je zagotovljena z A = 0 ∨ B = 0 z začetnimi vrednostimi A = B = 0.

a. Prikaži, da po obeh možnih zaporednih izvajanjih baza ohrani konsistentnost.

b. Podajte primer, ko bi s sočasnim izvajanjem prišlo do nekonsistentnosti baze c. A obstaja primer sočasnega izvajanja, ki bi ohranil konsistenčnost?

5. Kakšni so izhodi vseh select stavkov?

T1 T2a. INSERT INTO Kvadrati VALUES (4);b. SELECT * FROM Kvadrati; c. INSERT INTO Kvadrati VALUES (9); d. INSERT INTO Kvadrati VALUES (16);e. SELECT * FROM Kvadrati; f. COMMIT; g. SELECT * FROM Kvadrati; h. SELECT * FROM Kvadrati; i. COMMIT;j. SELECT * FROM Kvadrati;

Kako bi rešili vse zaplete?

Page 125: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 126: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7839/8:,%;<=8/>?38190

@<98.%6,;30.$%AB5C@D

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%&AE$%<,=8/>?3,%F/>?:G0;819%03%%%%%%8H38;:G0;819

!%E,=8/>?30%/,<=8/>?0!%I/,J%8?;0138190!%4;8KJ,<38%<,.:>=,3G>%!%E,=8/>?3,%F/>?:G0;819%=8%8.302

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

L/>?:G0;819%.83J:0.98;

M 4;,%/,<=8/>?,%19,%.83J:0.938%>.;0;,:>393,$%N>O" P1>HFG9,%>3,.>%,.Q0G>%3,%01902%9/,31,.Q0G,2" P1,.%=,/%.83J:0.9302%,.Q0G%G>%F/>G>3%3,%0190%3,N03

M *,<=8/>?%6%G>%<,=8/>?38%F/>?:G0;%=8%.83J:0.902$%N>%G>%6%.83J:0.938%>.;0;,:>39>3%3>.>-%<,=8/>?3>-%/,<=8/>?F+%

!"#$%&'( $$)&'(!*# $$$)&'(!+# $$$$$$$$$$$$$)&'(

!"#$%&'()"*+,-"#$.)/')0')+*,-"#$0-)1"#$%&'(),-)/-02%'/3'45

6*70#&#)8-9-)('$#%'.)$*)&#)1"#$%&'(),-)-/0'45!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/0->/

M *,<=8/>?$%.0%30%F/>?:G0;%=8%.83J:0.902O

M R0.>:%;%S/,JF%8?./0G>%=/8H:>-+%D(%G>%8?;013,%8?%D&$%03%8H/,938+

!"# $%&'(,$)&'(,$$$ $$$$$ $$$$$$$%&-(,$)&-(!*# $$$ %&'(,$)&'(,$%&-(,$)&-(

!" !*'

- !"#$%&'()*+&*,)

Page 127: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7/,8%9:;01391<0

= 7/,8%9:;01391<0>%? @39%;9AB0CDE%A,%F,G<+? "9;EA,;,%9:%!"#$%#!&'#()#*+,"&"#!"#-.)$"#+%/0."+1/*#

*+,"&*#!&2

= HA/E.>%*,AI9/E:0<E;%JE%A,I9/E:39%K/E:BJ0;,%I9%.938B0.<02$%DE%JE%L/,8%9:;01391<0%,G0.B0DE3+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/ELBE:>%6</0.<E3%&MN= "/9<9.9B%1</0.<3EL,%&%8,A3EL,%A,.BEI,3J,%

O6</0.<E3%&MNP>! Q1,.,%F,G<%-9/,%A,.BE30<0%6%O:EBJE39P%9RJE.<%I/E:%

R/,3JE-%03%-9/,%A,.BE30<0%F%OE.1.BKA0;39P%9RJE.<%I/E:%I01,3JE-+

! Q10%A,.BEI0$%.0%J02%:/S0J9%</,31,.G0JE%1E%1I/91<0J9$%.9%1E%</,31,.G0JE%A,.BJKD0J9+

! TE%3E.,%F,G<%:/S0%F%A,.BEI%3,%3E.E-%9RJE.<K$%I9<E-%39RE3,%:/KL,%</,31,.G0J,%3E%-9/E%:9R0<0%A,.BEI,%O6%,B0%FP%3,%<E-%9RJE.<K+

= 6</0.<30%&MN%I/9<9.9B%:9;9BJKJE%1,-9%/,AI9/E:E%.,<E/02%L/,8%9:;01391<0%JE%,G0.B0DE3+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

4;9U8,A39%A,.BEI,3JE%O&MNP

= "/9<9.9B%:;9U8,A3EL,%A,.BEI,3J,>! Q1,.,%F,G<%-9/,%I/0:9R0<0%6%A,.BEI%9RJE.<,%I/E:%

R/,3JE-$%03%F%A,.BEI%I/E:%I01,3JE-+! V/,31,.G0J,%3E%-9/E%A,2<E;,<0%:9:,<302%A,.BEI9;%I9%

<E-$%.9%1I/91<0%A,.BEIE+! TE%F,G<%:/S0%F%A,.BEI%9RJE.<,%I9<E-%39RE3,%:/KL,%

F,G<%3E%-9/E%A,.BE30<0%9RJE.<,+%" M,A,%WC0/JE3J,X%03%W./DE3J,W

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

N,I9/E:3,%K/E:BJ0;91<%I9%9.302

= *,AI9/E:,%6(%03%6&%1<,%WE.;0;,BE3<3,%I9%9.302X%DE>! TE%V0%I/ERE/E%A,DE<39%;/E:391<%Y%;%6($%I9<E-%V0%%

I/ERE/E%A,DE<39%;/E:391<%Y%;%<K:0%6&! TE%V0%I/ERE/E%;/E:391<%Y$%.0%J9%3,I0CE%VJ%;%6($%I9<E-%V0%

I/ERE/E%;/E:391<%Y$%.0%J9%3,I0CE%VJ%<K:0%;%6&! TE%V0%3,I0CE%.93D39%;/E:391<%Y%;%6($%I9<E-%V0%%3,I0CE%

.93D39%;/E:391<%Y%<K:0%;%6&

!"#$%&'( $$)&'(!*# $$$)&'(!+# $$$$$$$$$$$$$)&'(

!"#$%&'(,)&'(!*# $$$$$$$$$$$$$$)&'(!+#$$ $$$$$$$$$$$$$$$$$$$$$)&'(

Page 128: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%78/,9:;,3;<%=,.:<8,3;,

> ?,2@<9<%8A%=,.:<8,3;B%03%AC.:<8,3;B%0=9/DB;<%B8/,90@<:;%=,.:<8,3;,+

> ?,801%@,E<:<%=,.:<8,3;,F! G@+%@/,31,.H0;$%.0%@/<3B@3A%C/I0%=,.:<8+%! J08%=,.:<8,%K6%,:0%LM! N,=,:<H%3,%9/1@A%=,2@<9%8A%=,.:<8,3;B

> ?,.:<8,3;<%03%AC.:<8,3;<%-A/,%E0@0%,@A-0O3,%A8</,H0;,+%

> "A8/,9<.%=,.:<8,3;,F%@/,31,.H0;<$%.0%C/I0;A%C<:;<3%=,.:<8%:,2.A%18/<-<30;A%=,.:<8%9%<.1.:B=09<3+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%6-/@30%AE;<-0

> 6-/@30%AE;<-F%P Q0.<:%@/,31,.H0;$%.0%O,.,;A%C/BR,%C/BRA%3,%AC.:<8%

90/A9+%

> 6%1-/@30-%AE;<-A-%C<:,-A%3,%C9,%3,O03,F%P "/<8/<O<9,3;,%1-/@3<R,%AE;<-,P 4<@<.H0;,%1-/@3<R,%AE;<-,

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/<8/<O<9,3;<%1-/@3<R,%AE;<-,

> 4A:AO0%8/0A/0@<@<%R:<C<%3,%O,1A93<%=,=3,-.<+%J0%I<:0%=,.:<8$%.0%R,%C/I0%J;+%49<%-AI30%8A:[email protected]%! "AO,.,;S7-/0F%T<%0-,%J0%90D;A%8/0A/0@<@A%8A@<-%J0%

8AO,.,%3,%J;U%10H</%J0%8/<.03<%0=9,;,3;<+%! *,30ST,.,;F%T<%0-,%J0%90D;A%8/0A/0@<@A%8A@<-%J;%

8/<.03<%0=9,;,3;<U%10H</%J0%8AO,.,+%

> T<%1<%@/,31,.H0;,%8A3A93A%1@,/@,%;<%8A@/<E3A%=,RA@A90@0$%C,%0-,%A/0R03,:3A%O,1A93A%A=3,.A+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!C./09,3;<%1-/@3<R,%AE;<-,

> N/<0/,;%O,.,:30%R/,VF! WA=:0DO,%1A%@/,31,.H0;<! !E1@,;,%8A9<=,9,%AC%J0%CA%J;$%O<%J0%O,.,%3,%J;%=,%

18/ADO,3;<%=,.:<8,+%

> "</0AC0O3A%8/<9</0%,:0%0-,%O,.,:30%R/,V%H0.:<+%

Page 129: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!7./08,39:%1-/;3:<,%=>9:-,

"/0-:/?

@(?%%6ABC$%*ABC$ %%%%%%%%%6A#C@&? %%% %%%DA#C$EA#C %%%%%%%%%%DAFC@G? %%%%6AFC$%*AFC %%%%%DABC@H? %%%%%%%DA#C

!" !#

!$ !%

!" !#

!% !%!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%%@:230.:%I,.J:K,39,

L M,3;=-1.0%K/=>J:-%L N,.J:K,39:%#O%7/:8:1L P:Q308=91.=%I,.J:K,39:

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

403,-0Q3:%K=7,;.=83:%>,I:

L R:%1K/=1;0-=%K/:7K=1;,8.=$%7,%9:%"#%S0.13,%.=J:.T09,%=>9:.;=8%K=;:-%;U70%1;/0.;3=%&MN%3:%I,<=;=80%1:/0,J0I,>0J3=1;0?V @(%I,.J:3:%81:%1;/,30$%.0%81:>U9:9=%I,K01:%-=/3,/9:8%I%!"#$%&%W%(%03%

K=0XQ:%3,91;,/:9X:<,%-=/3,/9,%A3K/+$%"&'%W%Y(C+V Z,K/:9$%@&%81;,80%3=8:<,%-=/3,/9,[%!"#$%&%W%($%"&'%W%\]+V @&%I>/0X:%;U70%3,91;,/:9X:<,%-=/3,/9,%I%/,;03<%W%&%A"&'%W%^'C%;:/%

3,/:70%T=--0;+V @(%I7,9%I,.J:3:%81:%1;/,30$%.0%81:>U9:9=%I,K01:%-=/3,/9:8%I%!"#$%&%W%&%

03%K=0XQ:%3,91;,/:9X:<,%A3K/+$%"&'%W%]GC+

L Z:.=3101;:3;3=%1;,39:%"#$%Q:%9:%@(%_.=/:.;3,`a

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/=>J:-

L @(%0-KJ0T0;3=%K/:7K=1;,8J9,$%7,%9:%I,.J:30J,%T:J=;3=%-3=b0T=%-=/3,/9:8%I,%.,;:/:%8:J9,%%!"#$%&%W%(+V "/:7K=1;,8.,%8:J9,%1,-=$%Q:%1:%3:%7=7,9,%3=802%

I,K01=8%-=/3,/9:8%-:7;:-$%.=%1:%@(%0I8,9,aV "=;/:>U9:-=%3:.%-:2,30I:-$%.0%;=%I,<=;=80+%%

AN,.J:K,39:%037:.1=8%03%K/:70.,;=8+C

L "/0-:/%K=.,b:$%7,%I,K=/:73,%U/:7J908=1;%K=%.=3SJ0.;02%<,/,3;0/,%U/:7J908=1;%1,-=$%Q:%9:%-3=b0T,%=>9:.;=8%S0.13,a

Page 130: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

7,.89:,3;9%03<9.1,

= >9%0-,-?%03<9.1%@,%,A/0BCA%!"#$%&%@%,8A9/3,A0D?%E&F$%:?A9-%B0%G(%-?/,8,%@,.8930A0%03<9.139%1A/,30%@%03<9.130-0%D:010%@%!"#$%&%H%(+

I >9%30%@,:01?D%@%!"#$%&'H%($%:?A9-%-?/,%G(%@,.8930A0%03<9.139%1A/,30%.;9/%B0%B080%A,.J30%:?<,A.0$%K9%B0%?B1A,;,80L

= >9%30%:/0-9/39M,%03<9.1,%:?A9-%-?/,%G(%@,.8930A0%D19%1A/,30%.?A%AC<0%@,.8930A0%<,A?A9.?)A,B98?$%<,%B0%?39-?M?K080%<?<,;,3;9%@,:01?D%@%!"#$%&%H%(+

!"#

!"#"

$%&'(

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

7,.89:,3;9%:/9<0.,A?D

= 7,.89:%D192%@,:01?D$%.0%C1A/9@,;?%:?M?;C%8?M0K39M,%:/9<0.,A,$%3:/+%"&(')'*+,"-"!.+

= 7,.89:,3;9%03<9.1,%;9%:?19B93%:/0-9/%@,.89:,3;,%:/9<0.,A,+

= N3<9.1%:?<:0/,%CK03.?D0A?%0-:89-93A,O0;?%@,.89:,3;,%:/9<0.,A,+%I P,;%;9%:/9<0.,A%D%:/0-9/C%-?/3,/;9DQ

= R%1:8?J39-%D19BC;9%@,.89:,3;9%:/9<0.,A?D%D980.?%<?<,A39M,%<98,%@,/,<0%@,.89:,3;,+

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

%7,.89:,3;9%D%#S%</9D9102

= P,.?%8,2.?%CK03.?D0A?%@,.8939-?%<?8?K93%801A%</9D91,QI 5-M$%39%@,-93;C;%A9M,%@%D9K30D?;1.0-%@,.89:,3;9-L

= T3,%/9J0A9DU%0M3?/0/,;%1A/C.AC/?%</9D91,V%@,.8930%1A/,30%-9<%:?A?D,3;9-%:?%</9D91CV%C:?/,B8;,;%&W7+

= XK03.?D0A?1A%A9M,%,8M?/0A-,%;9%18,B,L

I P?/93%</9D91,%03%D0J;0%30D?;0%</9D91,%:?1A,39;?%?@.?%M/8?$%.9/%19%D1,.%<?1A?:%@,K39%:/0%.?/93C+%

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

4D9%.?/01A30%?:,@.0

(FR0J;0%30D?;0%</9D91,%1,-?%C1-9/;,;?%01.,3;9%801A?D%E1A/,30F+%

&F"/0%D1A,D8;,3;C%-?/,;?%B0A0%D1,%D?@80JK,%?<%.?/93,%<?%1:/9-93;939M,%D?@80JK,%@,.893;93,%3,%Y%3,K03$%1,-?%D%:/0-9/C$%<,%8,2.?%/,@O9:%:/?</9%3,D@M?/%?<%1:/9-93;939M,%801A,+%

= !:,@.0%8,2.?%C:?/,B0-?%:/0%@,13?D0%CK03.?D0A02%:/?A?.?8?D%@,%@,.89:,3;9$%.0%@,M?A,D8;,;?%@,:?/9<3?%C/9<8;0D?1A%%"/0-123'0!4$#/$'*567

Page 131: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

73819,:;3%,<=8/09;-%>,%>,.<;?,3@;%A/;:;1

B C1.,3@;D%%>,E30%?/0%.8/;3F%03%3,%?890%A8%<019,%:;A38%>,.<;30%89/8.,%>%6%>,.<;?8-%03%8A.<;30%19,/G,+%

B H19,:0)#/0G0D%I,E30%?/0%.8/;3F%03%?89F@%3,:>A8<%9,.8$%A,%?/0A8J0G%K%>,.<;?;%?8%?89/;J0+%L8%@;%89/8.%>,.<;3@;3%?/;:;/0$%E;%@;%:,/;3DM N;%@;%89/8.%:,/;3%1?/8190%:1;%>,.<;?;%3,%19,/G02+%

B H,/38%:8><0GE;D%%H8><0GE;$%.0%1;%1?/;-;30%1?/;-;-J;%3;%J8%G0/0<8%3,:>=8/+%M H19,:<@,3@;D%%H8><0GE;%30%?8<38+M #/01,3@;D%%H8><0GE;%30%?8<%?/,>38+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/0-;/!"#$%

!

"

#

$ %

&

' ( )

*+

,-

*+.

,/ 00

**. *,. *0. ,-. ,1. ,/. 02. 00.

&'#$()*+,--./0'%1$-2345,--6#)7)-2342,--8/9':)-;<4;,--8/9':)-5<4

*,

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

#8<@G0%,<=8/09;-%>,%>,.<;?,3@;%A/;:;1,%

B C1.,3@;D%%L89%?/;@+B H19,:<@,3@;)#/01,3@;D%%

M "819,:0%>,.<;?;%.89%:%?/0-;/F%01.,3@,$%?/0A;%A8%<019,%03%?819,:0%K%>,.<;?%3,%<019F+

M N;%<019%30%:,/;3$%1?/8190%:1;%>,.<;?;%03%?838:38%?8O;30%K,P9%1%?/;@G3@0-%?/898.8<8-%>,%H19,:<@,3@;)#/01,3@;+%

B 6?;.F<0/,$%A,%1;%J8%1?/;-;30<%1,-8%<019M N;%3;%18%6%>,.<;?0%?/0%?/:;-%?/;28AF%8A:;E30+M H%?/,.10%A8J0-8%J8<@G0%,<=8/09;-%8A%?/;@G3@;=,+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/0-;/!"#$%

!

"

#

$ %

&

' ( )

*+

,-

*+.

,/ 00

**. *,. *0. ,-. ,1. ,/. 02. 00.

&'#$()*+,--6#)7)-2345,--8/9':)-5<4;,--8/9':)-;<4<,--8/9':)-;<4=------>"9$?-;@4--

*,

Page 132: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

78%9:;<=0%,;>:/0?8-

@ A1.,3<8B%%C:?%D/8<+@ E1?,F;<,3<8)#/01,3<8B%

G HD:/,90%:/>03,;83%D/:?:.:;%I,%F1?,F;<,3<8)9/01,3<8%?:J,%D:1?,F0%AK%I,.;8D8%3,-81?:%K%I,.;8D:F+%

G C:%<8%;01?%I,.;83<83$%D/8F8J0%F18%AK%I,.;8D8%F%K%I,.;8D8%:J%I>:/,<L3,FIJ:;B%@ M,N38-:%F%F:I;0=NO%3,<9;<0P<8-%.:/83O+%@ "/:?:.:;%:JLI>:/,<L3,FIJ:;%I-,3<=,%-:P3:1?0%I,%

1-/?30%%:9<8-+%

!"#$%&#'(')*+,#(-,)./)0(12&+,3)0)*+,#(-,)3)3&45$3,'61&%)0(12&+(5'*78

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

Q09/0J83%,;>:/0?8-

@ E8/<8?3:1?$%J,%/81%D:?/89O<8-:%I,.;8D%?0D,%K%18%-,3<=,%1%D:-0.,3<8-%F0=<8%D:%J/8F81O+%

@ Q09/0J83%D/01?:DB

",69(3$):)0(12&+

",69(3$):./)0(12&+

",69(3$)/)0(12&+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%E8N30F:<1.:%I,.;8D,3<8

@ R8P.:%18%<8%:J;:N0?0%.,?8/0%30F:%I,.;8D,?0%SI,D010%F1+%1?/,30%F1+%?,98;8T+

@ U890%18%1-8;0%:J;:N,?0%:%?8-V@ ":J,?.:F30%W.:3?8<38/<0X%1:%F>38IJ830B%

;(+$6$

<(-&2&

:9#(5$

",=(91,35()-(0(

36&-*'&

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

*8=0?8FB%U:F,%1?,3<,%I,.;8D,3<,$%D/:?:.:;

@ 4:F:;0-:%K,Y?%I,.;8D,?0%F1,.%30F:G HD:/,9,%D/:?:.:;,$%.0%F189O<8%W3,-8/8X%I,.;8D,3<,B

! "#&=)0(12&+,%),-'&19()%,#()/(>9)+,69(3$9$)?5(%&#,@)0(12&+()5()36&A)5(62&=5$1$A7

B "#$),=12&+(5'*)C#&%,),=)6+&>$D$45&C()+#,9$)6+2,E5&%)!97'7F),=G6+,=('G5(30C,#87

B :./)5(4$5H)I,9):)J)./)61*+('7)

Page 133: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

78930:;<1.0%=/;>;.;?%@,.?8=,3<,

A 71,.,%B,C>%@,938%0@%.;/83,%208/,/20<8+%

A 4,%D0%E;D0?0%6%,?0%F6%@,.?8=%:;@?0G9,%-;/,-;%

0-8>0%F6%,?0%%FB%3,%1>,/G02+%

H I,<%98%B,C>%E/J0%6FB%3,%1>,/GKL%6%3,%1>,/GKL

A 4,%D0%E;D0?0%B%,?0%FB%,?0%6FB%@,.?8=%:;@?0G9,%

-;/,-;%0-8>0%FB%,?0%6FB%3,%1>,/G02+%

A 5;/,-;%1=/;G9,>0%@,.?8=8%;E%1=;E,<%3,:@M;/+%

!"#$#%#&'()'%#")%$)*'%)"'()')%+,+-&)*$)*'."#$#%#&/0'%,'1)&-'1,")%$*#'2'&,3$,4

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

"/0-8/0

A N(%=/8M?8E,%*%03%=;=/,:0%38.,<%3O>8/0CP

H N(%E;D0%6FB%@,.?8=%3,%*$%=;>8-%?,2.;%E;D0%6%

@,.?8=8%3,%3O>8/0C,2%*%03%;D9,13;%1=/8-830%1>,3<8%

:%B%@,.?8=%3O>8/0C+%

A N&%K=;/,D?<,%03E8.1%@,%D/,3<8%E8?,%*P

H N&%E;D0%F6%@,.?8=%3,%*%03%1%>8-%%%%%%%%%%%%%%%%%%%%%%%%%

E;D0%6%@,.?8=%3,%3O>8/0C,2%*+%

A NQ%=/8D8/8%C8?;>83%*P

H NQ%E;D0%6%3,%*+%

H RSF$%NQ%D0%18%?,2.;%;D3,G,?,%%.;>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

N&T%%K=;/,D,%?;C.%81C,?,>0;3%E,%

D0%18%;E?;90?,%.,>8/8%3O>8/0C8+%

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

%I;3>/;?,%:@=;/8E3;1>0%D/8@%%%%%%%

%@,.?8=,3<,

A !=>0-01>093,%.;3>/;?,%@,.?8=,3<,

A I;3>/;?,%:@=;/8E3;1>0%1%9,1;:30-0%@3,9.,-0%

UN0-81>,-=%VVW

A 5K?>0:8/@0<1.,%.;3>/;?,%:@=;/8E3;1>0%1%

9,1;:30-0%@3,9.,-0%U5K?>0:8/10;3%N0-81>,-=%

VVW%

!"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

!=>0-01>093,%.;3>/;?,%

:@=;/8E3;1>0

A X,.?8=,3<8%<8%.;3@8/:,>0:30%=/01>;=$%.0%=/8=/890%

.;3Y?0.>8+%6?,D8%?,1>3;1>0P%

H 4;E,>3,%.;E,%@,%@,.?8=,3<8+%

H "/8:8/<,3<8)/8G8:,3<8%1-/>38M,%;D<8-,+%

H X,10983;1>%@%@,.?8=0%@,%:18%=;M;1>;%K=;/,D?<838%

;D<8.>8+

A Z8%1;%.;3Y?0.>0%/8E.0%?,2.;%=/0E;D0-;%3,%

:@=;/8E3;1>0%>,.;$%E,%38%@,.?8=,-;+%

H [,-81>;%>8M,%=/8:8/0-;%.;3Y?0.>8%=/8E%0@:,<,3<8-%

B,C>1%=;>/<8:,3<,+

Page 134: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7839:*;<031;3%-;=>?

@ A,BC1%0-,%C/0%D,E>FG *HI4F%%A,BC1%J/><>/>%0E%J;=+<,E>%K>3=,/%

3,/>=0%1J/>->-<>%3,%?;.,?30%.;J0L0%;<L>.C;K+

G MINO4IPHF%%"/>K>/0%.;3D?0.C>+G Q*OPHF%R,/>=0%?;.,?3>%.;J0L>%1J/>->-<%

L,K3>+

!""#

$%&'(

)(*(

$+',-,).,)/(0.,1%/

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

M,?0=,B0L,

@ "/>K>/0%J;9;L>$%.0%1;%E,=;1C30%E,%C;$%=,%1>%3>%J;L,K0%.;3D?0.C+

@ M1,.,%A,BC%=;<0%38->/0S30%0=+G TJ;/,<0%S,1;K30%U09+

@ A,BC%0=:L0%1>%J/0/>=0L;%3,%.;3B8%D,E>%#H*O$%C0.%J/>=%K,?0=,B0L;+%%VE,.,L%J;C>-WX

@ *>,=6>CVP0XF%%53;U0B,%;<L>.C;K$%.0%L02%J/><>/>%A,BC%P0+

@ Q/0C>6>CVP0XF%%53;U0B,%;<L>.C;K$%.0%L02%1J/>->30%P0+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

P>1C%(

@ Y,%K1>%0%03%L%C,.;%=,%P0%Z%PL$%J/>K>/0%S>%1>%P0%E,.?L8S0%J/>=>3%PL%E,S3>+

#/

#.! 2 3

! 2 3

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

P>1C%&

@ Y,%K1>%0%03%L%C,.;%=,%P0%Z%PL$%J/>K>/0FG P0%E,.?L8S0%J/>=>3%PL%E,S3>%1%J01,?3;%D,E;%!G Q/0C>6>CVP0X%%%%%%%%%%%%*>,=6>CVPLX%%L>%J/,E3,+

#/

#.! 2 3

! 2 3!"#$%&$'()*)()$+,-./.0)1$'23.45)6$!"#$%#$'()'#7)$/.'#8)$%&6

Page 135: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

7819%:

; <,%=18%0%03%>%9,.?%@,%70%A%7>$%B/8=8/0%@,CD 70%E,.F>GH0%I/,F3?%J,E?%B/8@%7>%!D K/098689L70M%%%%%%%%%%%%*8,@689L7>M%%>8%B/,E3,%!D K/098689L70M%%%%%%%%%%%%K/098689L7>M%%>8%B/,E3,+

!"

!#

$ % &

$ % &

!"#$%&$'()*)()$+,-./.0)1$'23.45)6$!"#$%#$'()'#7)$/.'#8)$%&6

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

NBF0.,O0>,%7819?=%(%P%&C%%<,B?/8@3,%%=,F0@,O0>,

; Q,F0@,O0>,%R,O9%7C%%

9."#3$:$4(,);<<$=$:$8)4$2>$?.@48$4A.4$@2--#44)3$.>4)($B)C#0D%E

'$()*+,-.$$%8$#0$=$/)01$$$"($F).3=)4D%E$32)8$#04)(8)@4$G(#4)=)4D%8E$$$ 2.+3$9."#3$:$>."8);$$$4000"($9."#3$2.+3010#084.""$,'3.4)8;$<<$G(#4)$'A.8)

$$$$$$$$$$$$$$H2--#4$%$405$$$$$$$$$$$$$$$$$+67+$F)84.(4$%

+3/0)(0-*"2"-,607+-2")3

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

; NBF0O0/,%7819%&$%.>8/%7%0S/,%=F?S?%7>%03%=1,.,%R,O9%=%71%G19/8E,%70+

; "/0/8>,3>8%R,O9%0@$%=,F0@,O0>,$%03%B01,F3,%J,E,%1?%E3?9/,>%./090H38%18.O0>8TD U0H%@/GS8S,%18%38%0E=,>,%=EB?/8@3?+D V8%>8%B01,F3,%J,E,%@?FS,%B?98-%>8%9?%B/?IF8-+%

; !B90-0E,O0>,%L1,-?M%E,%I/,F38%R,O91CD U8%B?9/8IG>8-?%./090H38%18.O0>8%L.8/%30%B01,F38%J,E8M+

<,B?/8@3,%%=,F0@,O0>,C%.?-839,/>0

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

<,B?/8@3,%=,F0@,O0>,; Q8H30=?>1.,%E,B?/8@3,%=,F0@,O0>,C%

D Q,F0@0/,>%3,%=182%30=?>02$%3,%=1,.8-%30=?>G%=,F0@0/,3>,%7%3,@%B?@-3?W0O?%R,O91$%.0%1?%B?9/>830%LO?--0998@M%B?%#8S03L7M+

D 6,-?%E,@3>,%J,E,%-?/,%I090%E3?9/,>%./090H38%18.O0>8+

; 69/,@,3>8C%D "?W830%19/,@,>?H?%R,O9%=%./090H30%18.O0>0%LTTM

; "/?19?/%E,%K/0986891C%D <,%=,F0@,O0>?%7>$%-?/,-?%0-890%K/0986891%E,%=18%70%.>8/%70%A%

7>%03%70%>8%,.90=3,$%.?%7>%E,H38+%D X,2.?%>8%=8H%9,.Y302%R,O91%03%F,2.?%E-,3>.,%B/?19?/,+%D Q,F0@,O0>,%7>%38%G1B8$%H8%E,298=,%-,3>.,>?H?%K/098689+D U0%B/?IF8-,$%H8%1?%R,O9%0@1%B/0/8>830%3,%E,H89.G%I/,F38%

J,E8+%

Page 136: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/789:-0%7;<0-01<0=3:%.73</79:%>?;7/:@371<0

A 57/,%?,8:9:B0<0%>1:%,.<0>371<0%8/,3C,);01,3C,%>%%*:,@6:<%03%D/0<:6:<%?,%;71,-:?37%E,F<+G 57/,%1:%./:0/,<0%03%1;/71<0<0%-37B0F:%;7%;7</:80+%

A 57/,%;/:>:/0<0%.73H90.<:%;/:@%>,90@,F0C7%03%-7/,%0?>,C,<0%>,90@0/,3,%;01,3C,%IIJ978,937KK+G L/0<0=3,%1:.F0C,%9,2.7%?-,3CM,%>?;7/:@371<N

G "01,3C:%OJ978,937P%9,2.7%/,?@/780%1.Q;.:%1</,30%;7%<,8:9,2%03%03@:.102+%

A !;<0-01<0=3,%LR%;737>37%;7B:3:%E,F<1$%.0%1:%3:%>,90@0/,+%G 4:97%3,/:C:37%@7%<,./,<%C:%0?JQ89C:37S%;7</:8QC:%M:%

=0M=:3C:+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

II!;<0-01<0=:3KK%&TU

A V,2.7%80%3,/:@090%<Q@0%19:@:=:W%

G "71<,>0%6%?,.9:;:%.7<%780=,C37+

G X,/:@0%1;/:-:-8:%3,%;/0>,<302%.7;0C,2%78C:.<7>+

G "/0@780%>1:%E%?,.9:;:%3,%.73FQ%E,F<$%3,/:@0%;01,3C,%J978,93,%03%;7<:-%1;/71<0%?,.9:;:+%

A U,%/,?90.7%7@%!;<0-01<0=3:%LR%>%;/0-:/Q%%LQ3JY*7803173$%17%/:?Q9<,<0%<:%12:-:%897.0/,3:%E,F<$%.0%=,.,C7%3,%?,.9:;+%G X0%>,90@,F0C:$%30%;737>3:J,%0?>,C,3C,%</,31,.F0C%

Z-7@Q97%1-/<30%78C:-0[+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

L73</79,%>?;7/:@371<0%1%=,17>30-0%B0J0

A !"#$%&%%"/0/:@0%>1,.:-Q%78C:.<Q%8/,930%=,17>30%B0J%Z*\6[%03%;01,930%=,17>30%B0J%ZD\6[$%;/0/:@0%>1,.0%E,F<%=,17>30%B0J%Z\6[%.7%1:%?,=3:W

G ]:%C:%,.F0C,%,0%7@%E,F<%\0%>%.73H90.<Q%%?%,.F0C7%,C%7@%E,F<%\C$%03%\6Z\0[%^%\6Z\C[$%;7<:-%1:%-7/,%,0%?J7@0<0%;/:@%,C+%%60F:/$%;737>37%;7B:30%E,F<+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

L7%E,F<%\%B:90%;/:8/,<0%78C:.<%!+++

A ]:%\6Z\[%^%D\6Z![$%;7<:-%C:%./M:3,%Q/:C:371<%=,17>302%B0J7>%\%3,1;/7<0%;01,9FQ%!+G "/:.030%\%03%C7%;737>37%?,B:30%?%>:=C0-%\6+%%Z10F:/%

1;:<%3:80%Q1;:9,[

G "/0-:/C,C%Q;7/,87%\6%>%&"U%?,%0?7J08,3C:%1-/<30-%78C:-7-+

A ]:%\6Z\[%_%D\6Z![W

G 47>790%\%;/:8/,<0%!+

G *:1:<0/,C%*\6Z![%3,%-,`Z*\6Z![$%\6Z\[[

A 6;/:-:-8:%*\6Z![%78%8/,3CQ%1:%-7/,C7%?,;01,<0%3,%@01.N%%G \7%03%;737>30%?,J730%17%@7@,<37%@:97+

Page 137: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

78%9,:;%<%=>?0%@,A01,;0%8BC>.;%!+++

D E>%<6F<G%H%*<6F!G$%A8;>-%;8%./I0%J/>C>381;%K,18L302%=0M8L%<%3,1A/8;0%A01,?:J%!N%A/>.030%03%A838L38%@,=>30%<+

D E>%<6F<G%H%O<6F!G$%./I0%J/>C>381;%K,18L302%=0M8L%<%3,1A/8;0%A01,?:J%!+P !"#$%&'#(#)*+&%,-#)*.%(+,#/))0%.-#),%"1#)+2-#.+.%$#)

*.3&4%.%)*+&%-5%6)-+)*#4.373)*#)*#-#(-3$)8%2#-9)!:))

P ;+&%-59)!)&,3<+5#)<.92%)

*+&%-5%=)7.38)($3&-+")7.%-5>

P ?#(#,5953)8%*#.3<-3)9.3<+4(3)-3

*%)49<+)9.3<+4(3)*#)1#-@,+14+">)

D 60:>/$%Q8L8?0%<%@,A01,;0%!+

!!"#!!! !!!!!!!!"$

%&'(!!!!!)&'(!!!*+,,-.

)&'(!!!!!*+,,-.

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

783;/8?,%L@A8/>Q381;0%03%8B38L?C0L81;

D 783;/8?,%L@A8/>Q381;0%1%K,18L30-0%=0M0%1>%Q,%A/0?,M8Q0;0%;,.8%Q,%Q8L8?0%1,-8%8B38L?C0L>%/,@A8/>Q0;L>RP 62/,30%L1>%@,A01>%Q8.?>/%A01,?>:%3>%A8;/Q0%

FA8A/,L0%;JQ0%O<6F!G%.8%C>%A01,3C>%Q8L8?C>38+GP #?8.0/,C%B/,?:>%<%F.C>/%<6F<G%S%O<6F!GG%Q8.?>/%

A01,?>:%!%3>%A8;/Q0+D "8Q8B38%A01,?:>-$%.0%Q/=0C8%9%@,.?>A%Q8%A8;/Q0;L>$%

L>3Q,/%I>%L>Q38%30%@,/>1%&TU+

!!"#!!!!!!!!!"$

%&'(!!!!!)&'(!!!!!%&*(!!+,--./

! /0!102+3.!3+!,+145!45+64+728-75!90:;+95<-.75=

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%5J?;0VL>/@0C1.,%.83;/8?,%L@A8/>Q381;0%1%K,18L30-0%=0M0

D A<35%/))W,C%A01,?:0%3,/>Q0C8%38L8%.8A0C8%->Q;>-%.8%B/,?:0%B>/>C8%1;,/8R

0 01

011

23'456!782985"&/:;<=/<;>;:?.@;!A*!,B@;C/,>(

*'D8548)D6E&F/G:;@H;!>;:?.@;I!C.!F,!JGKC,!=L,:GB<;!?G!B:GJM;N!(

> ?902@-!20AB+!75<4+!<5208+CD E0AB+!3+!62+B-904-!<+B259!;-302@-!45!;+.9<-8+!;-30485C!

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

5J?;0VL>/@0C1.,%.83;/8?,%L@A8/>Q381;0%F&G

D X1,.,%L>/@0C,%8BC>.;,%0-,%<6%A01,?:,%.8;%O<6%03%<6%9,:;%B/,?:,$%.0%C>%@,Q3C0%A/>B/,?%;8%L>/@0C8%.8;%*<6+

D X>/@0C>%18%A8L>@,3>%3,@,CN%8AJ1;0-8%?,2.8%L>/@0C>$%.0%18%YA/>1;,/>Z+

D X1,.,%9,:;%1>%.?,10[0:0/,%.8;%#/,?>:%,?0%"01,?>:+P "01,?>:%?,2.8%3,A0I>%.,.I>3%8BC>.;N%#/,?>:%3>%B8%

30.8?0+P 9,:;%A8L>%,?0%C>%#/,?>:$%.8%1>%@,K3>%0@L,C,;+

Page 138: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

#/,789%:,9;

< =,%>1,.%?@A8.;$%.0%@?%B/8@/,3CD "?0EF0%!"#!$%&#'$(%&)*+#$%G%HI6%J%I6KIL+%D =,F30%1%;/83M;3?%>8/G0A?%03%18%B/8-0.,A%

3,G,A%B?%18G3,-M+%< N8%B/8OB?1;,>7A,-?$%O,%3,AO8-?%38.?%>8/G0A?%

>1,.8P,%?@A8.;,%?O%G,F8;.,%F,1,$%B?;8-%@/,7F8>8%:,9;%30%B?;/8@3?%30.?70%B?3?>3?%G,P3,;0+D Q,2.?%@7?.0/,%O?.78/%B01,789%B/,>8%>8/G0A8%38%

B?;/O0+

!

"#$%%%%%%%%%%%%%%%%%%%%%%%&'()!*%+,-'#,&'

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"01,789%:,9;< =,%@/,3A8%?@A8.;,%MB?/,@0%B/?;?.?7%@/,79,+%< =,%G,B01?>,3A8%?@A8.;,C

D "?0EF0%3,A3?>8AE?%>8/G0A?%R%%G%HI6%J%I6KIL+%D N8%*I6KRL%J%I6KIL$%B?;8-%I%3,/8O0%.?B0A?%%

SR%>8/G0A8%R$%1%.,G,798-%3,%R%%03%HI6KSRL%T%I6KIL$%*I6KSRL%T%I6KIL+%%

D R18%G,B01,3?%A8%2/,3A83?%O?.78/%30%B?;/A83?U%?1;,78%:,9;1%7,2.?%>0O0A?%>/8O3?1;0%I6%>83O,/%38%-?/8%B/8@/,;0%>8/G0A8%SR+

D 6098/$%G,>/30%B01,3A8+

!

"#$%%%%%%%%%%%%%%%%%%%%%%%&'()!*./

/0!*1/2

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"?OB?/,%;/,31,.90A,-%>%6VQWX&

< R1,.,%;/,31,.90A,%0-,%3,F03%O?1;?B,$%B/8O>0O83?%>870.?1;$%03%30>?%0G?7,90A8+%

!"!"!"#$%&'(&)'*($

+',*$!"!"-$.$'/'*($0-$'12

+',*$+',*$!"-$'103"44&//$1

+',*$+',*$+',*$-$'10567"44&//$1

89'6/"408%"*($4

56%$.$'/'*($0-$'1

:&%/,-$'1

;2"('/&"60<$=$(

Page 139: Osnove Podatkovnih Baz --skripta-- 2010/2011

1. Transakcija T1 in T2 imata naslednji razporeditvi nad objektoma A in B baze podatkov:

T1: R(A), W(A), R(B), W(B)T2: W(B) R(A) R(B)

a. Kako bi razpored transakcij sočasno izvajali, da pridemo do smrtnega objema? b. Kako bi rešili smrtni objem?

c. Kako bi ga rešili z Rani-Čakaj?

d. Kako bi ga rešili z Počakaj-Umri?

2. Imamo naslednje razporede:

S1=W2(x), W1(x), R3(x), R1(x), W2(y), R3(y), R3(z), R2(x) S2=R3(z), R3(y), W2(y), R2(z), W1(x), R3(x), W2(x), R1(x) S3=R3(z), W2(x), W2(y), R1(x), R3(x), R2(z), R3(y), W1(x) S4=R2(z), W2(x), R3(z), W1(x), W2(y), R1(x), R3(x), R3(y)

a. Kateri od zgornjih razporedov je konfliktno ekvivalenten?

b. Kateri od zgornjih razporedov je zaporedno uredljiv po konfliktih (conflict serializable)?

3. Imamo naslednji dve transakciji:

T1: R(A); R(B); if A = 0 then B=B+1; W(B).T2: R(B); R(A); if B = 0 then A=A+1; W(A).

a. Dodajte zaklepe in sprostitve z dofaznim zaklepanjem 2ZF.

b. Ali lahko pri izvajanju teh dveh transakcij privede do smrtnega objema?

c. Kako bi rešili smrtni objem s konzervativnim 2FZ?

d. Kako bi rešili smrtni objem z Počakaj-Umri?

4. Imamo naslednja razporeda:

S1: T1:R(X), T2:W(X), T2:W(Y), T3:W(Y), T1:W(Y), T1:Commit, T2:Commit, T3:CommitS2: T1:R(X), T2:W(Y), T2:W(X), T3:W(Y), T1:W(Y), T1:Commit, T2:Commit, T3:Commit

Za vsakega od spodnjih mohanizmov za kontrolo vzporednosti in razporeda ugotovi, kako mehanizm izvede razpored.

a. Strikten 2FZ s časovnimi zaznamki za preprečevanje smtrnih objemov

b. Strikten 2FZ z detekcijo zaznave smtrnih objemov (prikažite waits-for graph in case of deadlock.) c. Konzervativen 2FZ (and Strict, i.e., with locks held until end-of-transaction) 2PL.

d. Optimistična kontrola vzporednosti.

e. Kontrola vzporednosti s časovnimi žigi

f. Multi-verzijska kontrola vzporednosti s časovnimi žigi

Page 140: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 141: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!73890:;9%<8%=/>?0:90

@=:8.%6,930.$%AB5C@D

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/;EF;GH%BI@4%F,1:381:0! BB%:8-0J0:KH%%L,:8-,/381:M%

@=9/?0N8%1;%91;%,.J0N;%O,J:%,F0%387;3,+! II%83101:;3JKH%%L.83101:;3:381:M%

P;%1:,%O,J:%03%J;F8:3,%"#%.83101:;3:3,$%<8:;-%N;%<8%:/,31,.J0N0%"#%.83101:;3:3,+%

! %%@@%18F,:083H%%L0=8F,J0N,M%@=9,N,3N;%;3;%O,J:%N;%0=8F0/,38%8G%0=9,N,3N,%G/>E02%:/,31,.J0N+%

! 4%4%>/,70F0:KH%%L82/,3N,3N;MP;%O,J:%<8:/G0$%18%91;%1</;-;-7;%1:,F3;+%

Q !"#$%&'$&()*+,-($%&'$('$+E,/,3:0/,%,:8-,/381:%R%82/,3N,3N;+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

58:09,J0N,

Q B:8-,/381:H%S D/,31,.J0N,%1;%F,2.8%</;.03;%LT*8FF7,J.UM+

Q !2/,3N,3N;HS V,N%W;%3;2,%G;F,:0%6X"#Y%%L*,=F8E0YM

!"#$%&

" !"#$%&'(%)'*'+)%,%)-.*/'*/')'().0*1%2')3*4#45.0%67 89:*8;*<*8=*+#*0'"%>.*+#5#*/."4#45.)5).?

7 8@*<*8A*+#*0'"%>.*+#5#*/".&#)-.).*B#1)#$.).C?

898;8=8@8A

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/;G<81:,9.;

Q V83:/8F,%9=<8/;G381:0%1;%0=9,N,+%S 6:/0.:30%&AZ$%.83./;:38+

Q "8</,9.0%1;%G8E,N,N8%[3,%-;1:>T+S "8G,:.0%18%</;<01,30%L0=7/01,30M%3,%G01.+%

Q \381:,93,%12;-,%E,/,3:0/,%,:8-,/381:%03%82/,3N,3N;+%

Page 142: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

4789%:%0:/,;3,830-%<,:739-%1=/,30

> ?,@9=9;0%;1,%A01,3B,%3,%C01.DE 68,<%9C:0;30%F,1+E !-9@9F,%92/,3B,3B7%A9C,=.9;+

> G./,C0%9.;0/B7%0:/,;3,837@,%<,:73,%37A9=/B730-%H,I=1DE J7%37$%18,<%A/7=9.+E J7%C,$%.,.9%:,@9=9;0=0%

,=9-,/391=D

!"#$%

&"'!"#$%

&"'()%*+ ()%*+

,#-.-*+

/%0-#%1

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

K7F%9%./,B0%03%1080

> !"#$#%%L:,.,B%B7%C917@,3B7%,=9-,/391=0%=7M.9NE !"#$%&'()"*'#(+,((O/73P=3,%1=/,3%;%Q%L3,B%<9%"N%B7%

:,A01,3,%3,%C01.R%37.,%H,I=%0-,%:,.87A%3,%"+> S,B%F7%H,I=%:%:,.87A9-%3,%"%A/7.037%0:;,B,3B7D> 59/,-9%10%:,A9-30=0%1=,/9%;/7C391=%"%9<%./,B0%L:,%A9CA9/9%

GT4!%A01,3B,%3,%1=/,3%"N+

> &"'(%)*+'%%L:,.,B%B7%C917@,3B7%92/,3B,3B,%=7M.9NE S,B%F7%101=7-%A,C7%A/7C73%17%1A/7-73B73,%1=/,3%

:,A0U7%3,%C01.DE ?,A0U0%F0-%-,3B%B7%-9M39$%3,%A/0-7/39%-71=9$%9<%

A9=/B7;,3BP$%C,%<0%9-9@9F080%*V4!%1A/7-7-<+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!139;3,%0C7B,W%437;30.0

> ?,A0U0%*V4!%03%GT4!%A9C,=.7%:,%;1,.%A9A/,;7.%;%C37;30.-E 67.;73F39%A01,3B7%;%C37;30.%L@/7%3,%89F73%C01.N+E 5030-,839%A9C,=.9;%LC0XXN%:,A01,39%;%C37;30.R%;7F%

A9A/,;.9;%@/7%3,%739%1=/,3+

> 437;30.W%G/7B73%17:3,-%*V4!)GT4!%,.I0B+E ?,A01%C37;30.,%;17<PB7W%

YHZ4$%A,@7Z4$%9XX17=$%873@=2$%98C%C,=,$%37[%C,=,\%E 03%C9C,=37%.93=/9837%A9C,=.7%LC9%.,=7/02%A/0C7-9%

.-,8PN+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

437;30.W%"01,3B7];3,A/7B%L^_`N

> 437;30.%1%A/9=9.989-%"01,3B7];3,A/7BW%E a(%59/,%12/,30=0%C37;30U.0%:,A01%A/7C73%17%

A/0A,C,B9F,%1=/,3%:,A0U7%3,%C01.+%E a&%59/,%:,A01,=0%;17%C37;30U.7%:,A017%:,%H,I=%

A/7C%A9=/C0=;0B9+

> a(%@,/,3=0/,%,=9-,/391=+> a&%@,/,3=0/,%92/,30=7;+

> S,.9%3,=,3F39%B7%C37;30.%L03%9<39;0=7;N%3,/7B73D%E b=PC0/,80%<9-9%_*ZV6%,8@9/0=-7+%

Page 143: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

789%:%;3<=30.

> ?1,.%;3<=%@,A01%0-,%B30.,C3D%;3<=30E.D%1<.=<3F3D%EC<=0G.D+%H 9DI%6<JB<3K<%LB-M</%N96LO+%H 96L%=<;3D%3,/,EF,+

> ?1,.,%AD;,C.D=3,%1C/,3!=1<MBP<%96L%1C/,30+H 96L%@,;3P<I,%;3<=30E.<I,%@,A01,%!!!!!!!!!!!!!!!!!!!!!!!!!

ADA/,=.,%;,3<%1C/,30+%

> 601C<-%2/,30%1C,3P<%D;AG,.3P<302%96L+H 5,.1%96L%D;AG,.3P<3%;D%1<;,P+

> 789Q%%"/<;<3%P<%1C/,3%@,A01,3,+%H A,I<%96L%! RGB12<;%96L

!"#$

%&

'()*!"#$

+,-

./0$1*2!"#

!"#$%&'()*

+),-$.(/*%*$01/2(34$)($1*%3

5+),-$',/6$$-$789

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

43<=30E.0%@,A010

5DS30%C0A0%;3<=%@,A01D=Q%> TA;,C<> UD--0C> 8MD/C> V3;%

H .D3<K%ADC/P<=,3P,%,G0%A/<.030C=<

> WD-A<3@,K0P1.0%;3<=%@,A010%NU9*1O%H @,%TL4!%,.K0P<

!"#$%&'

()*

+,!#

-#./+0

!1/#)*

2334#+

5#32"#6781/#

13+#"6781/#

34/5(627*869(':$(;

$(<469(0'2(=*9(':$*

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

6C/B.CB/<%AD=<@,3<%@%;3<=30.D-

> X/,31,.K0P1.,%C,M<G,H V3%=A01%@,%<3D%,.C0=3D%Y,KC+H ?1<MBP<%YZ4$%1C,CB1%N/B3303I)KD--0C<;),MD/C<;O%03%%

G,1C96L+

> X,M<G,%B-,@,302%1C/,30QH V3%=A01%@,%<3D%B-,@,3D%1C/,3%=%0@/,=3,G3<-%

M,@<3B+%H ?1<MBP<%/<K96L%[[%96L%;3<=%@,A01,$%.0%P<%A/=0%

AD=@/DF0G$%;,%P<%1C/,3%B-,@,3,+%%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

%43<=30E.D%A01,3P<[=3,A/<P%%N789O> WD3C/DG3<%CDF.<

> !M3D=0C<=%AD%101C<-1.0%@/BE0C=0H \,@,%,3,G0@<

H *V4!%R,@,

H TL4!%R,@,

> "/0-</%DM3D=0C=<

> "/DMG<-0%A/0%DM3D=0C=0

Page 144: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

78/-,938%0:;,<,3<=%>,?@

A B/1@,%C/,3<%D%E01,3<$%.0%<0-%19=F0%E8@/F0@=;%,90%E/=.030@=;+G "/=E81@,;090%C8-8$%F,%<=%E01,3<=%3,%F01.%,@8-0H38+

A B%E/,.10%0-,-8%;=H%E8F/8C381@0%8.890%,@8-0H381@0%E01,3<,+%

A 6@/0.@=3%&IJ+%A 4=98%0:/,;3,930.,K%6LMNO$%7!PI!*QM%%R%

SNO%F3=;30.+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

T83@/893,%@8H.,A "=/08F0H38%6U"#%./=0/,%.83@/8938%@8H.8%:,%

-030-0:,?0<8%H,1,%E8/,C9<=3=V,%:,%8C38;0@=;%;%E/0-=/W%101@=-1.=%:/WX0@;=+%

A J,E0X0%;%F3=;30.KG C=V03Y?2=?.E803@%:,E01K%%4898H,%:,H=@=.%TL+G =3FY?2=?.E803@%:,E01K%%B1=CW<=%@/=3W@38%@,C=98%!"#$%03%

@,C=98%W-,:,302%1@/,30+%%L8%<=%Z-=2.,%.83@/893,%@8H.,[KA !1@,9=%>,?@1%3,F,9<W<=<8%:%F=98-\%@,C=9=%18%@8/=<%:,3=19<0;=%

1,-8%;%H,1W%C=V03Y?2=?.E803@%:,E01,+

G 62/,30%O67%:,E01,%.83@/893=%@8H.=%3,%;,/38%-=1@8%]%"&$'():,E01^+

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"@0H<,%E=/1E=.@0;,K%T,<%<=%12/,3<=38%.<=

!"

!"#"$%"&'(!"#$%&'$(")"*!+,-

)"*#$+",-'."/'+,-/'"'0/

!./#0$1"&'$+",-'1!#+,-

2-3(4'5678

!"#

)1!2+,-

345

'6)!

.!7*'$

)"*!45

899/!'

:!981!;&<"*!

"9'!1;&<"*!

69&:'*9/5(

$%&

;"(#'/$/'*9/5

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

M381@,;3,%E/=.030@=;%@/,31,.?0<=

A J,%:F,<%10%E8V9=<-8%1,-8%=.1E90?0@38%E/=.030@=;%>,?@+G 70%:/WX0@;=%101@=-,+

A _=90-8%`8F;/@=@0%3,:,<a%F3=;30.%;%8C/,@3=-%;/1@3=-%/=FW%:%0:30H=3<=-%]U74!^%1E/=-=-C+G 48C0%9,1@O67%@/,31,.?0<=%>,?@%0:%@,C=9=%>,?@+G O,2.8%19=F0-8%F3=;%:,E018-%:%WE8/,C8%E89<,%

E/=;O67+G "/=F%:,[email protected]%;/,H,3<,%:%U74!$%:,E0X0%F3=;%

:,E01%E/=.030@;=A J,%/=X=;,3<=%0:%:/WX0@;=%-=F%;/,H,3<=-+%

Page 145: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/7.030%8&9%

: ;<4!%=,2>7?,%=,.@7A%3,%ABC,>.02DE <0%A/BF@7-D

: "/7C73%/71>,?/0/,-B%1>,/B%?/7C3B1>%1>/,30$%17%3,A0G7%HI*JE 437?30.%17%@,2.B%A0G7%-7C%;<4!DDE HI*%0-,%73B%CBC,>3B%AB@K7J%L3CB37M>I6<

: N,O7%3,%3,1@7C3K0%I6<%=,%L3CB+: A/7?I6<%=,A01,$%.0%P,%>/73L>3B%/71>,?/0/,-B+

E HI*%30%30.B@0%/71>,?/0/,3%: I,2.B%K7%AB3B?3B%0=?7C73%A/0%AB3,?@K,3KL%=PBCB?037%

8,>B-,/3B1>9+

: <,%.B3QL%;<4!%=,A0G0%R73CS%C37?30G.0%=,A01+ !"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"B>/C0>7?%>/,31,.Q0K7

: T,A0G0%AB>/C0%=,A01%?%C37?30.+: U10%C37?%=,A010%?17%CB%@,1>I6<%V,Q>%1B%

BCA@,.3K730+E W,/,3>0/,%X@L127CI6<%! %@,1>I6<+E !CA@,.B?,3K7%C37?30G.02%1>/,30%K7%17.?73Y3B$%

1032/B3B%=,A01B?,3K7%3,%C01.+%E [email protected]%C37?30G.02%=,A01B?%3,%1>/,3+%

: HB--0>89%17%?/37+%: T,A0G0%73C%=,A01%?%C37?30.+%

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!F3B?0>7?%AB%=/LG0?0J%Q7@B>3,%1@0.,

! !"#$%&'(&)'$*+',$-&*'#)-&./'%0#-1'&2'&/+-)'&1"3*-+&4"/%3"56

7 8+%&9"4-6&&:'*+-;$'&2-<= >()+%*%&)"*-+"&?"@*3&2-&/'*+(%,"&'(&)'$*+',$-&*'#)-&$"/+-2&%$&)"*-+"&$%&A3/-,"&.B$",%4"56

= CDE>&F3-&")@%2-6! ./'$'F%&4G'('F%$'5

= HIE>&A#%$)%&$-A3/-,%J&?"@*36

I"23*"+-20%&($-F&4"/%3&?"@*K&)%&2-&;%,"&")*6';&4+A0%*F%

I"21"$20%&&+-@LMI&F&*";&A1"4"$%J&3*+"$%&/'&"$",%4%

!"($2"&N8

!CHOP8DQ

B C H !"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!F3B?0>7?J%X,=,%,3,@0=7

: *7.B31>/L0/,K%1>,3K7%BF%.B3>/B@30%>BY.0+E ;AB/,F0%73CZQ27Q.AB03>%=,A01+

: "/7P@7K%C37?30.%3,A/7K%BC%.B3>/B@37%>BY.7J%E [3C%=,A01J%!C1>/,30%V,Q>%0=%V,Q>%>,F7@7+E !1>,@0%=,A010J%4BC,K%V,Q>%.%V,Q>%>,F7@0$%AB1>,?0%

@,1>I6<\I6<$%1A/7-730%V,Q>%1>,>L1%3,%AB>/C0+E ;AC,>7%=,A01J%]7%"%30%?%^,F7@0%L-,=,302%1>/,30$

: 4BC,K%"%.%^+;+6+$%AB1>,?0%/7QI6<\I6<+

Page 146: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

!73890:;9<%=,>,%*?4!@ "83890-8%>A8B89038%>,:8$%B,%/;.831:/C0/,-8%

1:,3D;%87%>/CE0:90<F "838938%89/;B38:0%91;%G8G/,9.;%H:CB0%>,%G/;.03D;3;%

I,J:KL$%G838938%89/;B38:0%MN*+

@ "/;AO;B%3,G/;D%8B%B3;9%>,G01,$%.0%91;7CD;%3,D-,3E0%/;JN6P%9%QR6+%

@ S,%91,.8%MN*%,O0%N6P%B3;9%>,G01,%G8G/,9.,$%3,/;B0%*?4!%,.J0D;%/,>;3%9%G/0-;/C<%%%F 6G/;-;3D;3,%1:/,3%30%9%QR6%,O0F 6G/;-;3D;3,%1:/,3%D;%9%QR6$%9;3B,/%/;JN6P%T%N6P%,O0F G,A;N6P%H9%4#L%! N6P+

@ *?4!%,.J0D;<F "83890%,.J0D8%9%B3;930.C+F "81:,90%G,A;N6P%3,%N6P+%%P0%B8B,:3;A,%>,G01,%9%B3;9K !"#$%&'(')((

*+*,-,./0123,3$%4#56%%%%%%%%

!73890:;9<%=,>,%RP4!

Q8R3B8UV%!%W%!%XX%O,1:N6P%G/;.03D;302%I,J:Y!"#"$%&

F Z>7;/0%3,D9;[D0%N6P%-;B%Q8R3B8+F \;%D;%N6P%MN*%03%9;OD,%C3B83;]:N6PUUPRNN

@ S,G0E0%?3B%>,G01%>,%:8%I,J:+F \;%D;%N6P%MN*$%03%C3B83;]:N6P%KU%PRNN

@ 48B,D%C3B83;]:N6P%.%Q8R3B8%F 60J;/%D;%N6P%G8G/,9;.+%%Z>30[0%G8G/,9;.$%>,G0E0%%

MN*%03%B8B,D%G/;9N6P%.%Q8R3B8+

'(%)*+,-'(.-+/"+#0$1"(2

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/0-;/%873890:9;

!"#$%&'("')*+$%,

-"%.&'("')*+$%,

/*.0,"1-23-45$,"6-78

/*.0,"-29-45$,"6-7:

23-0!+5,

;<=1->%.+-23-<?@-3A

23-B%.

/*.0,"1-2:-45$,"6-73

/*.0,"1-29-45$,"6-78

;=C?DE-=B?2C=2

<?@---------<FG

-----AA

-----A8

-----3A

-----9A

-----:A

-----HA

-----H8

-----8A

-----IA

!"#$%&"'()("*$+,-*$"$.*

/01$2%3"4)%&"'()1)#+,-

5(.*6)7+,-

2+>%.+

81)9+,-*

=CJ

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

"/0-;/<%S/CE0:;9%-;B%G838930-%%%%%%%%%%%%%%%%%>,A838-

!"#$%&'("')*+$%,E-"%.&'("')*+$%,

/*.0,"1-23-45$,"6-78

/*.0,"-29-45$,"6-7:

23-0!+5,

;<=1->%.+-23-<?@-3AE-23-B%.

/*.0,"1-2:-45$,"6-73

/*.0,"1-29-45$,"6-78

;=C?DE-=B?2C=2

;<=1->%.+-29-<?@-IA

;<=1->%.+-2:-<?@-8AE-2:-"%.

;=C?DE-=B?2C=2

;<=1->%.+-29-<?@-9AE-29-"%.

<?@---------<FGAAEA8

-----3A

-----9A

-----:A

HAEH8

-----8A

-----IA

-----KA

LAEL8

-----MA

!"#$%&"'()("*$+,-*$"$.*

/01$2%3"4)%&"'()1)#+,-

5(.*6)7+,-

2+>%.+

.:7;:)<$+,-

=CJ

Page 147: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((*+*,-,./0123,3$%4#56%%%%%%%%

4/780%9/:;<=-0%9/0%>/7?0@A0

B C,D%1=%>8:E0$%F=%1=%101@=-%>/7?0%-=E%,3,<0>:%9/0%:;3:A0G%5=E%H,>:%*I4!G

B C,.:%:-=D0@0%.:<0F03:%E=<,%-=E%*I4!GJ 69<,.7D%,1032/:3:%A%:>,ED7+%J ",>0%3,%K?90L=MN

B C,.:%:-=D0@0%.:<0F03:%E=<,%9/0%OP4!GJ Q>:80;,D%1=%E:<8:R@/,D,D:F0-%S,L@1+

Page 148: Osnove Podatkovnih Baz --skripta-- 2010/2011

Ponavljanje Naloge iz starih kolokvijev in izpitov.

______________________________________________________________________________________________________________________________________________________________________

Najpomembnejše tabele v informacijskem sistemu Banke so naslednje.Stranka(sid,ime,priimek,kraj,naslov,telefon); Racun(rid,sid,znesek,valuta); Polog(rid,znesek,ime,priimek,naslov,datum); Dvig(rid,znesek,ime,priimek,naslov,datum);

Dani so še naslednji podatki. 1 stran na disku = 8K|Stranka| = 100.000 zapisov, 100 zlogov, 80 zapisov/stran, 1250 strani |Racun| = 120.000 zapisov, 80 zlogov, 100 zapisov/stran, 1200 strani |Polog| = 1.000.000 zapisov, 120 zlogov, 66 zapisov/stran, 15151 strani |Dvig| = 1.500.000 zlogov, 120 zlogov, 66 zapisov/stran, 22727 strani

Vse dodatne predpostavke uporabljene v nalogah napišite !

1. Naloga (25%) Napiši odgovore na naslednja vprašanja v QBE.a) Izpiši vse pologe v znesku 1.000EU ali več ter za stranke z imenom Tone. b) Izpiši številke vseh računov na katere je bilo položeno v zadnjem mesecu več kot 100.000 EU.

2. Naloga (25%) Koliko blokov prebere naslednje vprašanje, če ne obstaja nobeden indeks? Predpostavi, da selekcija Select [znesek>1000] (Polog) izbere 50% zapisov

Join( Select [znesek>1000] (Polog), Racun, Polog.rid=Racun.rid)

3. naloga (25%)Kakšen je optimalen plan izvajanja poizvedbe, če ima sistem razpršilne indekse in B+ drevesa. Predstavi celoten postopek in uporabljene algoritme za izvajanje operacij relacijske algebre.

Join( Select [znesek>1000] (Polog), Racun, Polog.rid=Racun.rid)

______________________________________________________________________________________________________________________________________________________________________

1.Na neki fakulteti imajo napreden sistem za beleženje oddajanja nalog študentov. Shema baze je sledeča:

student(ids:int, ime: varchar, priimek: varchar, letnik: int)oddaja(ids:int, idn: int, datum: date, sprejeto: boolean)naloga(idn:int, naslov: varchar, predmet: varchar, tocke: int)

a) Z uporabo relacijske algebre napiši poizvedbo za imena vseh študentov 3. letnika, ki so oddali nalogo pri predmetu "Zgodovina" in jim jo je sistem zavrnil (sprejeto ima vrednost false).

b) Z uporabo domensko relacijskega računa napiši poizvedbo za imena študentov, ki so oddali nalogo za več kot 5 točk.

2.Uporabi shemo prejšnje naloge in napiši SQL stavke za naslednje poizvedbe:a) Nalogam pri predmetu "Matematika", ki imajo 8 točk, popravi število točk na 10.b) Zbriši oddaje nalog študentov 1. letnika, ki niso bile sprejete.

c) Izpiši ime in priimek študenta, ki je oddal največ nalog z maksimalnim številom točk.

3.Podatkovna baza predstavljena v prvi nalogi ima strani velike 4000 zlogov.

|student| = 5.000 zapisov, 110 zlogov, 35 zapisov/stran, 145 strani|oddaja| = 50.000 zapisov, 30 zlogov, 130 zapisov/stran, 385 strani|naloga| = 500 zapisov, 110 zlogov, 35 zapisov/stran, 5 strani

Koliko strani prebere naslednje vprašanje?

select[letnik=4]( join[student.ids=oddaja.ids]( student, oddaja ))

Predpostavimo, da ima relacija oddaja razpršilni indeks za atribut ids.

4. Poišči optimalen plan izvedbe vprašanja:

select[letnik=4]( join[oddaja.idn=naloga.idn]( join[student.ids=oddaja.ids]( student, oddaja ), naloga ))

Utemelji izbiro optimalnega plana. Opiši plan izvedbe, uporabljene algoritme za izvajanje operacij relacijske algebre in vse predpostavke.

______________________________________________________________________________________________________________________________________________________________________

Najpomembnejše tabele v informacijskem sistemu knjižnice so naslednje.

Knjige(kid,avtor,naslov,zalozba,leto);Clan(cid,ime,priimek,naslov,telefon);Izposoja(iid,cid,kid,zid,datum);Zaposleni(zid,ime,priimek,naslov,telefon)

Dani so še naslednji podatki.

1 stran na disku = 8K

|Knjige| = 1.000.000 zapisov, 320 zlogov, 25 zapisov/stran, 40000 strani|Clan| = 10.000 zapisov, 200 zlogov, 40 zapisov/stran, 250 strani|Izposoja| = 300.000 zapisov, 40 zlogov, 200 zapisov/stran, 1500 strani|Zaposleni| = 100 zapisov, 200 zlogov, 40 zapisov/stran, 3 strani

Vse dodatne predpostavke uporabljene v nalogah napišite !

1. Zapiši SQL stavke za naslednje poizvedbe:

a)izpiši imena članov, ki so si izposodili knjigo, ki jo je napisal avtor z drugo črko imena 'k' pri zaposlenem, ki živi v Kopru (9%)

b)izpiši ime in priimek člana, ki ima izposojenih največ knjig (9%)

c)izpiši avtorja, ki je izdal največ knjig, izmed knjig ki si jih je izposodil Matija (7%)

2.Z uporabo relacijske algebre zapiši prvo poizvedbo, z domensko relacijskih računom pa drugo poizvedbo:

Page 149: Osnove Podatkovnih Baz --skripta-- 2010/2011

a)izpiši založbe knjig, ki si jih je izposodil član iz Ljubljane pri zaposlenem s telefonsko številko 127434 (12%)

b)izpiši člane, ki so si izposodili vse knjige avtorja Zelen (13%)

3.Dano je vprašanje zapisano v relacijski algebri:

join( select[avtor='Zelen'](Knjige), select[datum=2008](Izposoja) )

a)Koliko blokov prebere vprašanje? Predpostavi, da ni zgrajen noben indeks.

b)Poišči ekvivalenten izraz v relacijski algebri, ki prebere najmanj blokov. Lahko uporabiš poljuben indeks oz. metodo dostopa do relacij. Obrazloži!

______________________________________________________________________________________________________________________________________________________________________

Page 150: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 151: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%

*+*,-,./0123,3$%4#56%%%%%

678%9%,:;0.,<0=1.0%.>?0

@AB>.%6,930.$%CD5E@F

!"#$%&'(')((%%%

*+*,-,./0123,3$%4#56%%%%%

"/GH;G?

I%!"#$%$&'()*&+),-*)$*./)I$01234/32$!"#I$567-.7,)I$8)2&9):2)$!"#I$;8<=I$!"#;I$!>7&2,323$'7.+3/673

!"#$%&'(')((%%%

*+*,-,./0123,3$%4#56%%%%%

%678%9%,:;0.,<0=1.0%.>?0

!"#$6*&4)$-3$(&>*.$'7.?),.$)4$'7.17&9&$2&')-&231&$%$-'(.@239$'7.17&9-*39$,34)*6$A=BB$C$;&%&DE

I$$$!"#$-F&%*)$(&>*.$6'.7&G(,&,.$-'73932(,)%*3$,34)*&$1.-F)F3(,&EI$$$0-3G6,3,.$F6/)$-F&%*3$4&$'7)*(.'$2&$'./&F*.%2.$G&4.E$

HG-F&,&F&$/%&$1(&%2&$'7)-F.'&$*$)2F317&+),)I$

I$$$01234/32$!"#$%$1.-F)F3(,-*39$'7.17&9-*39$,34)*6$AJ9G3//3/$$$$$$$!"#K$!"#;DI$$$573&+),&$'.-3G231&$LMN$4&$*()+&2,3$!"#$6*&4.%$A;8<=D

!"#$%&'(')((%%%

*+*,-,./0123,3$%4#56%%%%%

678%9%,:;0.,<0=1.0%.>?0%J3,?,;+K

"/>L;G-%0-:G?,3<GM

I%%678%/G;,<0=G%1>%J-N;B0OK%-3>P0<G%A,:01>9$%.0%30-,=>%?>;>QG3GH,%-,.10-,;3GH,%RB+%A,:01>9+%

I%%!L0Q,=3>%30-,->%B,.R3G%:>?,B.>93G%1B/N.BN/G%9%.;,10Q302%:/><G?N/,;302%:/>H/,-1.02%=GA0.02%J0-,->%10<G/%.3=0P30<G$%3:/+%6F8K+

I%%678%:>?:0/,%-G2,30AG-%.N/A>/=G9%A,%?G;>%A%/G;,<0=,-0+%

Page 152: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

7839:;93%6<=

"/01>?@A%%%%%7839:;0%6<=%1>,B.9%B%8?1>0>9CD1.0%D9:0.+%%%%"/9;E@/?F91?/%@/9B9;9%6<=%1>,B.9%B%@?19G39%H"I%.C0F9+%%%"?>9-%J@?/,G0-?%?G0K,D93%@/9B,D,C30.%:,%@/9B,D,3D9%.?;9%+

L/,;30.0%D9:0.,A%%%%"/0.CJK0>9B%3,%6"M#A

%%%!"!#$%&'$#())!#*

%%%49.C,/,F0D,%B/9;3?1>0A

%%%!"!#$%&'$+!,-)$.!)/0$/!#'12!$%!#*-()

%%%6>,B.0A

%%%!"!#$%&'$%343565738

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

7839:;93%6<=A%6@/9-93CD0B.9

NONP%6<=%#NLIQ%4NP=H*N%6NPRI!Q

F2,/%FS13,-9T&'UV

C?38%FS10;V

12?/>%FS/,>038V

WC?,>%FS,89V

NONP%6<=%NQ4%4NP=H*N%6NPRI!Q

%%%RX?%1@9F0,C%Y9//?/Z%B,/0,GC91A

%%%%%%%6<=P!4N%[C?38$%01%398,>0B9%0W%,3%9//?/%2,1%?FFJ//9;\

%%%%%%%6<=6RHRN%[F2,/T]U$%@/9;9W039;%F?;91%W?/%F?--?3%9//?/1\

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

%%^J/:?/D0

/59:7:;46<$=4>?<$?@;A<;$74$;5=4B:C:$4=:$D<:AE5FG:$.?:$H575;:;4$;5=4B:C<0I

'4>?<$<FD;56<$?@;A<;J$D;5G5;56<$7K35;:B<$:7$D<356$D;564?756<$?@;A<;$74D;5C$A4$57<$65L3<I$M<356$LD53$D;5G5;56<$7K35;:B<III$N;L37:$;5F$7K35;:B$E$;5=4B:C:J$?:$C<$G5;56<$C5$F<=<O57$A$%&'$ED;4P47C56I$

$$$$$

'4>?<$3@F:$LD;5657:6<$4=:$:AG;:P56<$A4D:L$74$?435;5H4$?4Q5$?@;A<;I$

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

"/0-9/A%%^J/:?/$%.0%@?0_K9%0-93,%-?/3,/D9B$%.0%1?%/9:9/B0/,C0%/;9K?%C,;D?$%B%,G9F9;39-%B/1>39-%/9;J

%%%%

NONP%6<=%4NP=H*N%103W?%PM*6!*%`!*

%%%%%%%6N=NPR%6+13,-9

%%%%%%%`*!5%6,0C?/1%6$%#?,>1%#$%*919/B91%*

%%%%%%%abN*N%6+10;c*+10;%HQ4%*+G0;c#+G0;%HQ4%#+F?C?/cd/9;e

%%%%%%%!*4N*%#f%6+13,-9

Page 153: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

%678%9:3;<=;3%9%>?%"/0-;/

@2,/%6786ABACDEFG

%CHC>%678%#CIJK%4C>8B*C%6C>AJ!K

%@2,/%@L13,-;D&'FG%12M/N%@L-03/,N03:G%OPM,N%@L,:;G

%CHC>%678%CK4%4C>8B*C%6C>AJ!K

%@L-03/,N03:%Q%/,3=M-RSG

%CHC>%678%4C>8B*C%103OM%>T*6!*%U!*

%%%%6C8C>A%6+13,-;$%6+,:;%%%%%%%%%U*!5%6,0PM/1%6

%%%%VWC*C%6+/,N03:%X%?@L-03/,N03:

%%%%!*4C*%#Y%6+13,-;G

%=M%Z

%%%%CHC>%678%UCA>W%103OM%JKA!%?@L13,-;$%?@L,:;G

%%%%[/03NOR\]1%01%]=%^;,/1%MP=_3`$%@L13,-;$%@L,:;SG

%a%b20P;%R6786ABAC%cQ%d'&'''eSG

%CHC>%678%>8!6C%103OMG

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

403,-0f30%678

!"#$%&'()(*+($,-$.*(*($%$/(,0$&'1%(+(*+(2

34*(54/*4$!"#$-5-6-/($7-*,8'0794+-$!"#$,8(%7-%$-*:8;1:<=>2

$

?'451'@

9;('$9A,B=,8'4*6CDE

$$FG3H#HIH$JKLM$!(4=-',$NOHKH$'(484*6PQRST

HUHV$!"#$?KH?WKH$'1(X>8-6-$JKLM$@9A,B=,8'4*6T

HUHV$!"#$HUHVYIH$'1(X>8-6-T

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

%B"J%,PN;/3,N09,

%%

K,-;1NM%=,%g0%1[/;-03h,P0%[/;9,h,P30.%/,h;%=M=,-M%.3h0i30@M%<,%=;PM%<%[M=,N.M93M%g,<M%RB"JS+

j%%"M1;g;3%1N,3=,/=0<0/,3%9-;130.?%[/M@;=k/;)Mgh;.N0+

j%%"M=,-M%678%30<%0<%h;<0.,%678%1N;i30.k%03%[/;=1N,90%/;<kPN,N;%9[/,l,3h,%9%MgP0.0%[/0h,<30%=M%h;<0.,+

j%%6k3%m4#>?%m,9,%B"J

j%%IM30P30.%3;M=901;3%M=%6T"#%kh,-;%.P0@;%03%h02%[/;9;=;%9%4#56n1[;@0O0f3M%.M=MG%[M=,N.M93,%g,<,%h;%P,2.M%3;.h;%9%-/;i0+

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

m4#>%B/20N;.Nk/,%

!"#$#%&$'#"()"*$+(%),-.,+(+"(/

j%%%0.1#)&2#3&/%#+#2#$&%#+%4&)1*5#%.,6(4&6,%72,++(2"#,+89%.,:13(%;<=%%%%%>"&6)(%>"(?+#)*@j%%%A.$&613&1+#)%B,+#1+#)&/%+&1&B&+3(%CDEF%B,+#1+#)&j%%%G,+#1+#)/%.,6(?(%>(%+&%.,H&"),6+#%6#$9%.$(+&:&%4&'"(6(%"($%%%%%%%%%%%%%6$&5&%#+%.$(6&3&%$(4*1"&"(%.,#46(HI%"($%),H(%+&.&)@%j%%%J,H&"),6+#%6#$/%.$(.$,2(>#$&%;<=%>"&6)(

Page 154: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

74#8%9/20:;.:</,%=3,>,?+@

A:0/0%B/1:;%CD30?30.,E

40/;.:3D%F/;B,G,3G;%B%>D-,H%9"I%FD>+B0/,$%CD30?30.%30%B%7,B0E%%%%%"/;B;>;%6JK%<.,L;%B%>D-,H%9"I%D>%FD>,:.DB3;C,%B0/,+%"D:/;M<G;%!6N1F;O0P0H;3D%M03,/3D%%%%%%.D>D%3,%B1,.;-%.?0;3:<+%

"/;B,G,3G;%B%>D-,H%9"I%F/;.D%7,B,%CD30?30.,E%%%%%"/;B;>;%74#8%.?0O;%>0/;.:3D%B%D-/;Q30%F/D:D.D?$%.0%C,%<FD/,M?G,%6R"#+%"D:/;M<G;%7,B,%%%%%%%%%%%%CD30?30.%L,%1F;O0P0H;3%6R"#%3,%B1,.;-%.?0;3:<:+

5D1:%=#/0>C;@E

%%%%%"/;B;>;%6JK%<.,L;%B%:<G%9"I+%"/0-;/E%74#8N!4#8%-D1:+%SD>,%L,%!4#8%03%74#8%%%%%%%%%%%%%%%CD30?30.%-D/,:,%M0:0%3,%.?0;3:<+

!-/;Q30%-D1:%=T;:UD/.%M/0>C;@E%%%%%"DV0?G,%<.,L;%F/;.%D-/;QG,%B-;130%DF/;-0%=-0>>?;U,/;@$%.0%.D-<30O0/,%1%FD>,:.DB30-%%%%%%%%%%%%%%B0/D-+%"D:/;M<G;%-,G2;3%74#8%CD30?30.%3,%B1,.;-%.?;3:<+%

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

74#8%/,L/;>0%03%B-;130.0%

SD/,.0%F/0%FDV0?G,3G<%FD0LB;>M;%3,>%FD>,:.DB3D%M,LDE

W%%%T,?DQ0%74#8%CD30?30.W%%%"DB;LDB,3G;%1%FD>,:.DB30-%B0/D-W%%%ILB,G,G%6JK%1:,B.;

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

RF/,B?G,3G;%74#8%CD30?30.,%

W%%X1;%CD30?30.;%<F/,B?G,%/,L/;>%4/0B;/5,3,C;/%%

W%%T,?,C,3G;%74#8%CD30?30.,E%%%%%B%7,B,%.D>0E%

!!!"#$%%&'()*$+,-.()$/#,0123/&2)45,)&6)$/#,2)45,)789

%%%%%

%%%%%!M%1:,/:<%7,B,%,F?0.,O0G;E%

!!!:123/&2)45,)%;<()$/#,0123/&2)45,)

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

"DB;L,B;%L%74#8

6%FD>,:.DB30-%B0/D-%>;?,-D%F/;.D%1;G;%=1;110D3@+%X1,.,%FDB;L,B,%0>;3:0P0O0/,%?DC0H3D%1;GDE%W%%%%74#8%R*KE

%%%!123/=<%>3?)(@(/(#A=<(@B,)C$)$+,@,)%A

"/0-;/ED@)4EF!>)#;.123/=()$/#,=GGG&3((H%@(),&/(+=IJKI79

"(EE,/@4(E!/(E9

@)LM

!!!!/(E!;!:)45,)N$E$F,)&F,@"(EE,/@4(E->)#O>%,2P2O?$%%G()289

Q!/$@/B!DRSTU/,?@4(E!,U/?@!M!&&&Q

Page 155: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

7-8130.%/,9/8:,%;<338=>0<3%

?%%"<1>,@0%09<A,=0B1.0%30@<%>/83C>38%D<@,9,@8%1%D<:,>.<@3<%E,9<+%%%DCEA0=%03>%F8>G/,31,=>0<3H1<A,>0<3IJ%

@<0:%18>G/,31,=>0<3H1<A,>0<3I03>%A8@8AJ

?%%6D8=0K0=0/,%L8%1<%>/,31,.=0B8%@%:,30%D<@89,@0%1,-<ME/,A38+%%DCEA0=%E<<A8,3%F8>*8,:!3ANIJ%

@<0:%18>*8,:!3ANIE<<A8,3%EJ

?%%%O8%B8%D<1>,@AB83%,C><=<--0>%D<>8-%18%@1,.%6PQ%1>,@8.%1-,>/,%>/,31,.=0B,+%

?%%%60=8/%18%>/,31,.=0B,%9,.ABCL0%1%=<--0>IJ$%>8/%D/8.038%9%/<AAE,=.IJ+%DCEA0=%E<<A8,3%F8>RC><;<--0>IJ%,3:%@<0:%18>RC><;<--0>IE<<A8,3%EJ

?%%"/8@8/0%,A0%B8%D<@89,@,%S8%<:D/>,+%DCEA0=%E<<A8,3%01;A<18:IJ

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

H9@,B,3B8%6PQ%1>,@.<@%

%H-,-<%>/0%/,9A0L38%3,L038%9,%09@,B,3B8%6PQ%1>,@.<@T%%%%6>,>8-83>%I1>,>0L30%03%:03,-0L30%6PQ%1>,@.0J

%%%%"/8D,/8:6>,>8-83>%I18-0M1>,>0L30%6PQ%1>,@.0J

%%%%;,AA,EA86>,>-83>%I12/,3B838%D/<=8:C/8J

%

*,9/8:%"/8D,/8:6>,>8-83>T%%%%73,D/8B%D/8@8:830$%D,/,-8>/090/,30%6PQ%1>,@.0T

%%%%6>/C.>C/,%B8%K0.13,+

%%%%7/8:3<1>0%D,/,-8>/<@%1<%:<A<L838%@%L,1C%09@,B,3B,+

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

H9@,B,3B8%6PQ%1>,@.<@%I3,:,A+J

!"#$%&'()*+,-.!/01'-.12'!3$*4#('5678/!9:;:;:;:<=>

?#@A3#@B!"3"C@%"'A("C"+D4%EA#@A3#@!"3"@C@%"9()*<>

A("C"ED*@3#?3#3C@"@#(9<>

A("C"E(@"-%"9F;($B<>

A("C"E(@"!"#$%&9G;(%3C@<>

A("C"E(@"-%"9H;'#3"$%&<>

A("C"E(@"I*43"9J;3&@<>

KK'L@'M%4L'"N3"'%4'#4L('3#@'#@"O#%@B;'"NO('L@'O(@

'''@P@DO"@8AB3"@9<

$%"'%OC04L('+'A("C"E@P@DO"@8AB3"@9<>

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

*81CA>68>1

?%%?#@A3#@B!"3"@C@%"E@P@DO"@8AB3"@%@/38%S>8@0A<%1D/8-83B8302%9,D01<@+%?%%?#@A3#@B!"3"@C@%"E@P@DO"@QO@#R%@/38%D<:,>.8$%.0%1<%12/,3B830%@%<EB8.>C%*81CA>68>%I.0%B8%.C/9</J

*81CA>68>%/1UD1>->+8V8=C>8PC8/NI1WAJX

))%/1%01%3<Y%,%=C/1</

Z20A8%I/1+38V>IJJ%[

%%))%D/<=811%>28%:,>,

\

Page 156: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

*7189:67:1%;3,<,9=7>,3=7?

*7189:67:%=7%@79A%0@/,@73%.8/@A/B

C%%D/7>0A81;?B%D/7-,.37%17%73A%>/1:0EA%3,@,=C%%,F1A98:7;03:%38-?B%D/7-,.37%3,%>/1:0EA%@%%%%%%%%%%%%%%<A9AG73A%H:7>09.A%C%%/79,:0>7%;03:%38-?B%D/7-,.37%17%3,D/7=%,90%3,@,=C%%I0/1:;?%03%9,1:;?

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

%J=7-,3=7%K,>,%03%6LM%:0DA>

6LM%NOD7%%%%%%%%%%%%%%%%%%%%K,>,%E9,11%%%%%%%%%%%%%%%%%%%%%%%%%*7189:67:%P7:%-7:2A<

#QN%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#AA97,3%%%%%%%%%%%%%%%%%%%%%%%%%%%%P7:#AA97,3;?

RST*%%%%%%%%%%%%%%%%%%%%%%%%%%%6:/03P%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%P7:6:/03P;?

UT*RST*%%%%%%%%%%%%%%%%%%%%6:/03P%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%P7:6:/03P;?

4!J#MV%%%%%%%%%%%%%%%%%%%%%%4A8F97%%%%%%%%%%%%%%%%%%%%%%%%%%%%%P7:4A8F97;?

WM!TN%%%%%%%%%%%%%%%%%%%%%%%%%4A8F97%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%P7:4A8F97;?

QXNVYV*%%%%%%%%%%%%%%%%%%%%%Q3:7P7/%%%%%%%%%%%%%%%%%%%%%%%%%%%%%P7:Q3:;?

*VTM%%%%%%%%%%%%%%%%%%%%%%%%%%%4A8F97%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%P7:W9A,:;?

4TNV%%%%%%%%%%%%%%%%%%%%%%%%%%%=,>,+1Z9+4,:7%%%%%%%%%%%%%%%%%%%%P7:4,:7;?

NQ5V%%%%%%%%%%%%%%%%%%%%%%%%%%%%=,>,+1Z9+N0-7%%%%%%%%%%%%%%%%%%%%P7:N0-7;?

NQ5V6NT5"%%%%%%%%%%%%%%%%=,>,+1Z9+N0-76:,-D%%%%%%%%%P7:N0-71:,-D;?

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

K4#RB%Q@=7-7%03%ADA@A/09,

U7G03A%=,>,+1Z9%>/[7%6LMV\E7D:0A3%G7%17%DA=,>0%3,D,.,+%%

6LM],/303P%=7%DA</,@/7<%6LMV\E7D:0A3^30%:,.A%/713,%3,D,.,%;AF1:A=%-A/,-A%:71:0/,:%7.1D90E0:3A?

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

!DA@A/09,%03%0@=7-7%;3,<,9+?

:/O%_

%%%1:-:`EA3+E/7,:76:,:7-73:;?^

%%%a,/303P`EA3+P7:],/303P1;?^

%%%a2097;a,/303P%b`%3899?%_

%%%%%%))%2,3<97%6LM],/303P1^

%%%%%%a,/303P%`%a,/303P+P7:X7\:],/303P;?B

%%%c

%%%EA3+E97,/],/303P1;?^

%%%1:-:+7\7E8:7JD<,:7;Z87/O6:/03P?^

%%%a,/303P%`%EA3+P7:],/303P1;?^

%%%+++

c%))73<%:/O

E,:E2;%6LMV\E7D:0A3%6LM7?%_

%%%))%2,3<97%:27%7\E7D:0A3

c

Page 157: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

578,%9:;,8.:<3,%=,>,

!=?7.8%4,8,=,17578,4,8,%<17=@?7%9:;,8.7%:%10187-@%>,%;7A:%1%9:;,8.:<3:%=,>:%03%.,8,A:B+

4,8,=,17578,4,8,%-;%C%D:3+B78578,4,8,EFG

))%9/038%03H:/-,80:3%,=:@8%827%;/0<7/I

6J187-+:@8+9/038A3E

%%KL,-7IM%N%-;+B784/0<7/L,-7EF%N

%%K<7/10:3I%M%N%-;+B784/0<7/O7/10:3EFFG

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

578,%9:;,8.:<3,%=,>,%E3,;,A+F

4,8,=,17578,4,8,%-;CD:3+B78578,4,8,EFG

*71@A8678%8/1C-;+B78P,=A71E3@AA$3@AA$3@AA$3@AAFG

68/03B%8,=A7L,-7G

Q20A7E8/1+37R8EFF%S

%%8,=A7L,-7%C%8/1+B7868/03BEKPT#UVWLT5VMFG

%%6J187-+:@8+9/038A3EKP,=A7I%K%N%8,=A7L,-7FG

%%))9/038%,AA%,88/0=@871

%%*71@A8678%D/1%C%-;+B78X:A@-31E3@AA$3@AA$8,=A7L,-7$%3@AAFG

%%Y20A7%ED/1+37R8EFF%S

%%%%%6J187-+:@8+9/038A3ED/1+B7868/03BEKX!UZ5LWLT5VM%N%K$%KFG

%%[

[

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

E37\F%]:-9A7873%9/0-7/

X:337D80:3%D:3%C%))%D:337D8

%%%%4/0<7/5,3,B7/+B78X:337D80:3E@/A$%MA:B03^$%M9,11^FG

68,87-738%18-8%C%D:3+D/7,8768,87-738EFG%))%178%@9%18-8

68/03B%_@7/J%C%^6VUVXP%3,-7$%/,803B%`*!5%6,0A:/1^G

*71@A8678%/1%C%18-8+7R7D@87a@7/JE_@7/JFG

8/J%S%))%2,3;A7%7RD7980:31

%%%))%A::9%82/:@B2%/71@A8%8@9A71

%%%Y20A7%E/1+37R8EFF%S

%%%%%%%68/03B%1%C%/1+B7868/03BEK3,-7^FG

%%%%%%%b38%3%C%/1+B78`A:,8EK/,803B^FG

%%%%%%%6J187-+:@8+9/038A3E1%N%^%^%N%3FG

%%%[

[%D,8D2E6aUVRD7980:3%7RF%S

%%%6J187-+:@8+9/038A3E7R+B785711,B7%EF

%%%%%%%N%7R+B786aU68,87%EF%N%7R+B78V//:/X:;7%EFFG

[!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

%6aUc

d%%%]:-9A7-7380/,%c4#X%1%E17-0\F18,80e30-%-:;7A:-%<9/,f,3?,Id%%%"/7<,?,A30.%9/7<7/0%1038,.1:$%9/7<7/0%8097$%.:3101873D:%9:0><7;=7%1%%%%%%%%127-:$%++++d%%%O10%,/B@-7380%1:%<7;3:%9:<7>,30%>%018:%19/7-73A?0<.:I%%%%%%g1_A%C%S

%%%%%%%%%6VUVXP%3,-7$%/,803B%bLP!%I3,-7$%I/,803B

%%%%%%%%%`*!5%#::.1%QhV*V%10;%C%I10;G

d%%%"/0-7/?,?%>%c4#XI%%%%%10;C/1+B78b38E(FG

%%%%%0H%E10;CC(F%S13,-7C/1+B7868/03BE&FG[

%%%%%7A17%S%13,-7&C/1+B7868/03BE&FG[

d%%%6aUc%E;7A%6aU%18,3;,/;,F%9/:80%<B37>;737-%6aU%E197D0H0e73F%%%%%%%%%

Page 158: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

6789%.:;,

<3=%10;>%6=/03?%3,-@>%<3=%/,=03?>

))%3,-@;%0=@/,=:/

A1BC%0=@/,=:/%6,0C:/1D<3=%10;$%6=/03?%3,-@$%<3=%/,=03?E>

6,0C:/1%1,0C:/1>

))%,11F-@%=2,=%=2@%,GGC0H,=0:3%1@=1%/,=03?

A1,0C:/1%I%J

%%%%6K8KLM%10;$%13,-@%<NM!%O10;$%O3,-@

%%%%P*!5%6,0C:/1%QRK*K%/,=03?%I%O/,=03?

S>

))%/@=/0@T@%/@1FC=1

U20C@%D1,0C:/1+3@V=DEE%J

%%%%6W1=@-+:F=+G/03=C3D1,0C:/1+10;%X%Y%Y%X%1,0C:/1+13,-@EE>

S

1,0C:/1+HC:1@DE>

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

6789%0=@/,=:/Z0

4T,%=0G,%0=@/,=:/Z@T%DY.F/[:/Z@T\EO

]%%<-@3:T,3%0=@/,=:/%%%%":=/@^FZ@%0-@%03%=0G%1G@-@3CZ0T.@>%:-:?:_,%^/,3Z@%1=:CGH@T%G:%0-@3F+%%%%%":?C@Z%G/0-@/%3,%G/@Z`3Z0%G/:1:Z30H0+%

]%%":[0H0Z1.0%0=@/,=:/%%%%%":=/@^FZ@%1,-:%=0G%1G/@-@3CZ0T.@>%3,=:%FG:/,^CZ,%.:31=/F.=%PKMLR%++%<NM!O

%%%%%%A1BC%0=@/,=:/%6,0C:/1D<3=$%6=/03?$%<3=E>

%%%%%%6,0C:/1%1,0C:/1>

%%%%%%A1,0C:/1%I%+++

%%%%%%U20C@%D=/F@E%J

%%%%%%%%%%A1BC%JPKMLR%O1,0C:/1%<NM!%O10;$%O3,-@S%>

%%%%%%%%%%0a%D1,0C:/1+@3;P@=H2DEE%J%^/@,.>%S

%%%%%%%%%%))%G/:H@11%=2@%1,0C:/

%%%%%%%S

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

62/,3Z@3@%G/:H@;F/@

%b,Z%1:%12/,3Z@3@%G/:H@;F/@O%%%%%"/:?/,-$%.0%1@%0[T,Z,%G/@.:%@3@?,%1,-@?,%678%1=,T.,%%%%%<[T,Z,%1@%.:=%G/:H@1%3,%1=/@c30.F

%"/@;3:1=0O%%%%8,2.:%T?/,;0-:%,GC0.,H0Z1.:%C:?0.:%03%:1=,3@-:%^C0[F%%%%%%%%%%%%%%G:;,=.:T+%%%%5:c3,%G:3:T3,%FG:/,^,%,GC0.,H0Z1.@%C:?0.@$%/,[C0_30%%%%%%%%%%%%%%%%FG:/,^30.0+%%%%%<[:?3@-:%1@%T/,_,3ZF%[,G01dG:d[,G01%G/@.:%.F/1:/Z,+

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

62/,3Z@3@%G/:H@;F/@O%"/0-@/0

!"#$%#&'"(!#)*"#&+,-./01"23245678-93

&&&+#:#!%&+;38<=&+;39612=&!(*/%>?@

&&&A"(B&+68C-43&+=&"2324523&"

&&&DE#"#&+;38<&F&";38<

&&&G"(*'&HI&+;38<=&+;39612

62/,3Z@3@%G/:H@;F/@%0-,Z:%C,2.:%G,/,-@=/@O%%%M/0%/,[C0_3@%3,_030O%<N$%!eM$%<N!eM

!"#$%#&'"(!#)*"#&J9K42632"6789L>

&&&J/&368C-4M38<&J/%#G#"=&J/&89K42632&J/%#G#"@

*')$%#&+68C-43

&&&+#%&46789L&F&46789L&N&89K42632

&&&DE#"#&38<&F&368C-4M38<

Page 159: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

62/,37838%9/:;8<=/8>%"/0-8/0

62/,37838%9/:;8<=/8%1:%?,2.:%3,901,38%@%</=A02%9/:A/,-1.02%78B0.02$%38%3=73:%@%6CD>

!"#$%#&'"(!#)*"#&%+,-./0+123&45&678&45%#9#":

;$59*$9#&<$=$

#>%#"5$;&5$?#&@A/0BCDDDECD2F+1BG'1+E2D1.6HIJ.1K

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

E?0;,378%12/,378302%9/:;8<=/

#>#!&-L;&M#945&)#!;$"#&-#!%4(5

46F&2/GN

46F&1.F/6ON

#>#!&-L;&#5)&)#!;$"#&-#!%4(5

DD&6+P&/6E1B.2B&FQB&1.F/6O&+A&FQ/2&2./0+1

#>#!&!$;;&46E1B.2B".F/6O3C2/GRC1.F/6O:N

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

E?0;,378%12/,378302%9/:;8<=/

%%%%%%%%%%%%%

F4#G>

G,??,H?86I,I8-83I%;1I-IJ%

%%;:3+9/89,/8G,??KLM;,??%%%

%%62:N6,0?:/1OPQ%%%%%%%%%

*81=?I68I%/1%J%%%%%%%%%%%

%%;1I-I+8R8;=I8C=8/SKPQ%%%%

N20?8%K/1+38RIKPP%M%%%%%%

%%+++%%%%%%%%%%%%%%%%%%%%%%

O%%%%%%%%%%%%%%%%%%%%%%%

%

6CDF>

T1U?%0I8/,I:/

%%%%62:N6,0?:/1K+++PQ

62:N6,0?:/1%12:N1,0?:/1Q

T1U?%12:N1,0?:/1JMGVDD

%%%%62:N6,0?:/1OQ

N20?8%K12:N1,0?:/1+38RIKPP%M

%%%W

O

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

6CD)"65

X!!"#$%&'!()*+!,-,.,$'!/0,1'2&%3,-!0%4'&5#!461'&5#&%6!01,7#8/1!9!9%4,3,:&%9,543#-!01,.1'-43#-!5#;%3/!<2=%;/!+>?@AX!!+>?BC+*!:!C#14%4D#&D!+D,1#8!*,8/=#4E!+>?BF,/&8'D%,&4%%%%%%%

48.?,/0/,7%12/,3783:%9/:;8<=/:>

G*YVZY%"*!GY4[*Y%3,-8K9($%9&$%+++$%93P

%%?:;,?%@,/0,H?8%<8;?,/,I0:31

%%9/:;8<=/8%;:<8Q

48.?,/0/,7%\=3.;07:>

G*YVZY%][^GZ_!^%3,-8%K9($%+++$%93P%*YZ[*^6

%%1U?4,I,ZS98

%%?:;,?%@,/0,H?8%<8;?,/,I0:31

%%\=3;I0:3%;:<8Q

Page 160: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

!137830%69:)"65%;/,<30.0

!"#$%#&'()!%*+)&,-./0-123,

&&&&&4*)&5-123,*6&*)%#7#"8

&&&&&"#%(")0&*)%#7#"

9#!:$"#&,-.1;<&*)%#7#"

9#!:$"#&;=>"/5&*)%#7#"

0#%&;=>"/5&?&40#:#!%&!+()%4@8

&&&&&&&&&&&&&&&&&'"+A&"/5/,B/5&"

&&&&&&&&&&&&&&&&&CD#"#&"E516&?&5-123,*68

*'&4;=>"/5&F&GH8&%D#)&,-.1;<&?GI

#:0#&,-.1;<&?&HI

#)9&*'I

"#%(")&,-.1;<I!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

!137830%69:)"65%;/,<30.0

=%%:7.,>3?%1@/?-?3>A08.?%B4CD:E*CF=%%*CGH*I%8/?<371J0%K,%LHIDGM!I=%%"/0/?A,3A?%8/?<371J0%1@/?-?3>A08.,-%6CG=%%N?A0J8?%03%K,3.?O&&&&*'&4J3;61.13;8&%D#)&5.-./>/;.5I

&&&&#:0#*'&4J3;61.13;8&5.-./>/;.5I

&&&&EEE&#:0#&5.-./>/;.5I&#)9&*'I

&&&&:++K&5.-./>/;.5I&#)9&:++K

=%%"70K8?<P?%17%<?>0%0K/,K78+=%%:,2.7%Q@7/,P>A,-7%.Q/K7/A?%3,/,837%P/?K%RCSCD%69:T

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

%"78K?J?.

=%%N;3?K<?30%69:%<787>AQA?%0K8,A,3A?%@,/,-?J/0U302%1J,J0U302%@70K8?<P%8%;7J0J?>A1.?-%A?K0.Q+%=%%403,-0U30%69:%<787>AQA?%0K8,A,3A?%,<V27W%@70K8?<P%0K%;71J0J?>A1.?;,%A?K0.,+=%%5?2,30K?-%.Q/K7/A?8%7-7;7U,%P/,3A?%?3?;,%K,@01,%3,?3./,J%03%@/?-71J0%0-@?<,3U30%@/7P>?-%-?<%;71J0J?>A?-%03%69:+=%%E"M%.7J%3@/+%X4#D%0-@>?-?3J0/,%@>,1J%,P1J/,.W0A?%-?<%,@>0.,W0A7%03%4#56+

!"#$%&'(')((%%%*+*,-,./0123,3$%4#56%%%%%

"78K?J?.%B3,<,>+F

=%%69:XO%6J,J0U30%-7<?>$%@70K8?<P?%1?%@/?8?/0A7%8%U,1Q%@/?8,A,3A,+=%%62/,3A?3?%@/7W?<Q/?%0K8,A,A7%,@>0.,W0A1.7%>7;0.7%<0/?.J37%3,%1J/?Y30.Q+=%%69:)"65%1J,3<,/<%K,%@01,3A?%12/,3A?302%@/7W?<Q/+%

Page 161: Osnove Podatkovnih Baz --skripta-- 2010/2011

/* Program pozenes z: java -classpath .:./mysql-connector-java-5.1.7-bin.jar Sqltest */

import java.sql.*;

public class Sqltest {

public static void main(String args[]){

System.out.println("lalalalal..."); try { Statement stmt; Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/opb_lpp"; Connection con = DriverManager.getConnection(url,"opb", "opb0809"); System.out.println("URL: " + url); System.out.println("Connection: " + con); stmt = con.createStatement(); //izvedi SQL ukaz, ki ne vrne nicesar //stmt.executeUpdate("INSERT INTO PILOTI(ime, priimek, idld) //VALUES('janez','cigara', 5)"); //shrani rezultate SELECT stavka v objekt rs ResultSet rs = stmt.executeQuery("SELECT idtl, opis FROM TIP_LETALA"); //premaknem kurzor na polozaj 24 rs.absolute(24); //izpisi rezultate while(rs.next()){ int idtl= rs.getInt("idtl"); String opis = rs.getString("opis"); System.out.println("\tidtl= "+idtl+" \topis= "+opis); } //izpisi 4. vrstico if(rs.absolute(4)){ int idtl= rs.getInt("idtl"); String opis = rs.getString("opis"); System.out.println("\tidtl= "+idtl+" \topis= "+opis); }//end if //izpisi prvo vrstico if(rs.first()){ int idtl= rs.getInt("idtl"); String opis = rs.getString("opis"); System.out.println("\tidtl= "+idtl+" \topis= "+opis); }//end if

//izpisi zadnjo vrstico if(rs.last()){ int idtl= rs.getInt("idtl"); String opis = rs.getString("opis"); System.out.println("\tidtl= "+idtl+" \topis= "+opis); }//end if

con.close();

}catch( Exception e ) { e.printStackTrace(); }

}}

Page 162: Osnove Podatkovnih Baz --skripta-- 2010/2011
Page 163: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%"&'()*+(,-.- ( .

!"#*+/01+"(/"2+343506"(0+(784"/+"(*8409*:06";</39(!*=+09

!

!/348(7"#*+/01+"5*(784"/*

"

!0+/*97*(0+(7"#*+/09*

> !0+/*97*?(7/@A9/A@*(83B*/93=(> !"#*+/09*?(83#"+(83B*/93=

> C=*(83536*(83/@"&+*(<*(79A8+3(B"43?D !9A8+*(70+/*97*?(8@35@*#0(4*293(@*<14"+6A6"63(

83B*/9"((((

D !9A8"+(+*10+(@*<A#"=*+6*(83#"+*?(8@35@*#0(4*293(A83@*&46*63(83B*/9"E(

#

FGH

> FGH?("F/"+70&4"(G*@9$A8(H*+5A*5"

> FGH(B39A#"+/0(73(+*807*+0(<(A83@*&+0I93(B"J0+0@*+0#0(<+*19*#0(

> K<+*9"(73(A83@*&46"+"(<*(0<@*L*+6"(M83#"+*N(B"43=(83B*/93=

Page 164: Osnove Podatkovnih Baz --skripta-- 2010/2011

!

!"#

$ !"#%&'()*+,-.&/&(0-12,-(&'3,4(

$ 4(05672,&/&(0-1)1&8&1.369*.6:43,'-(;.6&8&4;,96-1

!"#$%&'()*+',-.../0

((!+1+2'0...!3+1+2'0

((!+'*"4'%0

((((!#551"'0...!3#551"'0

((((!'6*120...!3'6*120

((!3+'*"4'%0

((!%##60...!3%##60

((!7%'%'80...!37%'%'80

!3"#$%&'0

!!"#$%&

'&(!)&$'*'+& ,$&$&-

"..*!& &/(*+

"

!"#

$ !"#&<=>,+1&/&&;5(4-6=1&01&(?6;&'3,4,;&6-&?('1.)(4-6>&.6?(4

$ #1>)(&*?(3195@1+(&!"#&01&?3,';.146.,4&;,+1-.6),A

#

!"#&6-&?(+,-

!9%')*+#%0

(((((:

!39%')*+#%0

$ B3,'1.(3%&;3,'-@,&4676-,C&4,56)1&40.31@-(;.C&5,.15-1&-1?3141D

$ B3,'1.(3%&.6;.6C&)6&.,3(360631C&31096@1&6-&*-62*@,&7,&?(;,9-(&01&-,)(&)(36;.D

$ B3,'1.(3%&(3E1-60,+C&)6&F646&-1&(;-(46&*5(41&'3*E6>&(3E1-60+(4D

$ DDD

$

G+,@6.4,&?36&(?6;*&?(+,-1

$ !"#&-,&(?6;*@,%

HD I,;,'-@1)&;?,=6J62,-&01&-,)(&'(+,-(

KD G-.(5(7)6&?36+6.646&01&+(',5631-@,&?('1.)(4&

$ L1>.,41&'(E(4(3&E5,',&H&6-&K

$ M?(319-1&3,76.,4&01&5()15-,&?3(@,).,%

N OE,-.6&4&+1-@7,+&;.1965-,+&()(5@*

N <.31-6&-1&+1-@7,+&6-&;.1965-,+&6-.31-,.

$ P6&?36+,3-(&01&?3,';.146.,4&;?5,.-6>&463(4

Page 165: Osnove Podatkovnih Baz --skripta-- 2010/2011

!

!"#

$ !"#%&'%()*+,-)./0%1)*'2$ 3)*'2%&'%/')*.04'/%)*%*)1'/'5%+(20-+60&'%0/%4'%

2+7-)%0/,'8/+60)/+20908+

$ 3)*'2%2+7-)%.0*01)%-),%:41'8&'/5%)9/+;'/%<8+=%+20%-),%)>&'-,'/%1)*'2%?)>&'-,0@+,80>:,[email protected]'*/)4,0A

$ !"#%()*+,-)./0%1)*'2%&'%+>4,8+-,'/5%-)/6'(,:+2/0%/0.)%/')*.04'/%)*%B3C$ B3C%&'%2+7-)%40/,+-4+%9+%!"#%0/%/'%*'2%!"#

$ !"#%()*+,-0%4'%2+7-)%4(2)7%/'%()&+.0&)%.%B3C%)>20-0

D'1EF'>5%G+/%HIJI %

K4)60+,0./0%1)*'2

$ D(2)L'/%1)*'2%

$ !"#%M%!'4):86'%"'4680(,0)/%C+/<:+<'M !"#%&'%()*+,-)./0%1)*'2%NM O(040%,'1'2&0&)%/+%,8)&06+7P%+4)60+60&'

$ C+7-)%)(0L'1)%-)1(2'-4/'%.8'*/)4,0M Q)2'-60&'5%.8';'5%4'4,+.2&'/'%)>&'-,'5%R

""

!"#%1)*'2

#$%&'()*+&,&'-(./01&#$%&23(4/0

23(4/01&,&/5315&67218*9:

!"#$%&'()*+,&-.'./()*0$%&'(1

; 7<=4*92&,&8/3; >3*)/912&,&+172-(72&68/31:; (=4*92&,&83*)-(72&6+172-(72/:

2., 2,&-30"(4/"(30"(

"?

!"#%1)*'2

$ D:>&'-,P%%5((+6778889&:/;+4&90,<7.3-&:95(;4*

$ S8'*0-+,P%%5((+677+#,490,<7-=7&4&;&3("7>9>7=,&/(0,

$ O>&'-,P%%5((+6778889&:/;+4&90,<7"(/??.-7@ABCD%

$ T4+-+%,8)&06+%:4,8'9+%'/0%

().'9+.0%.%<8+=:

!""#$%%&&&'()*+#,('-./%012()'!"+,&7+4%+&!"#$%&"%U7)4'%.+2:'%04&3-!145+0"!

Page 166: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"

!"#$%"&'()&*+#,-

. /+*"-012-$*&+*13%&+*4#&5

. 6*37%+4#&,*&*8-1#

. 9#4%"-1#&,*&+"-8*:*43#:#

!"##$%&&'''()*+,$-)(./0&123)*("#,-45!"##$%&&$6/-(./0&37&)-),)2#8&9(9&7/)+#./45!"##$%&&'''()*+,$-)(./0&8#+::13&;<=>?45(5

!"##$%&&'''()*+,$-)(./0&123)*("#,-45!"##$%&&'''()*+,$-)(./0&#)/,8&7/)+#1.2@3+#)45AB6068#59CD59EEEA5(5

!"##$%&&'''()*+,$-)(./0&123)*("#,-45!"##$%&&$6/-(./0&37&)-),)2#8&9(9&-+206+0)45A)2A5(5

!#

'()&,#34-:,-

$%&'()*+,'-'./01'2')2304+35(5'6)7+2070(5'

''''''''''''''''''''-'(3)8590':/);59'

. ;"-<#=3-&3*4-7#2-&>?"-<@

. A*4-7#2-&<3+1)/(0,30='3-&*,3*8#&4"*2#7B&3+"CDF86GH)7#D5$/)317+#)D5.GH)7#I

. )*"$-13-&,#34-:,-D

. AE&3*4-7#2-

. 6*3:"%43-&,#34-:,-D&'()FGH9&

!>

!"*,4*"#&#$%3

$/):1*5/3:%D52+,)8$+7)5JKL%5"##$%&&'''('M(./0&9EEE&?N&NN@/3:@8O2#+*@28P$/):1*5/3:8%D52+,)8$+7)5JKL%5"##$%&&'''('M(./0&N???&?9&/3:@87"),+P$/):1*537%D52+,)8$+7)5JKL%5"##$%&&$6/-(./0&37&)-),)2#8&9(9&$/):1*5.'-%D52+,)8$+7)5JKL%5"##$%&&'''('M(./0&N??N&?=&.'-P$/):1*5)*%D52+,)8$+7)5JKL%5"##$%&&'''()*+,$-)(./0&5F./5"##$%&&'''()*+,$-)(7.,&I$/):1*5*83%D52+,)8$+7)5JKL%5"##$%&&'''('M(./0&N??9&QRST7"),+P5

. /+*"-012-1#&0*$*&*:"-2I-3-&#$%3-&/'9&3-,1*8*8&

. J$%3-&,*&K%<#3#"-3-&3-&K*1*=%3#L&/'9M2#L

. J$%3-B&:#&2#L&N+*"-012-$*&,*&+"#+*3%

. O3-$%&+"%<#:,#D

. !*?1%2$*&,#&PK-2&*:"-2I-3&P-+#,&+"#$%"*8

!?

Q3&,4-8%:

!U*,-5V)/81.2WA9(?AU45!/3:%KXY5*,-28%/3:WA"##$%&&'''('M(./0&9EEE&?N&NN@/3:@8O2#+*@28PA5555555555*,-28%)*#)/,8WA"##$%&&'''()*+,$-)(./0&#)/,8&A45

!/3:%X)87/1$#1.25/3:%+G.6#WA"##$%&&'''()*+,$-)(./0&123)*("#,-A45!)*#)/,8%7/)+#1.2@3+#)4B6068#59CD59EEE!&)*#)/,8%7/)+#1.2@3+#)45

!&/3:%X)87/1$#1.245

!&/3:%KXY45

)*%123)*("#,-5)*#)/,8%7/)+#1.2@3+#)5AB6068#59CD59EEEA5(5

Page 167: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"

!"#$%&#"'#

!"#$%&'()*+,-./012/"3&!)456789&#$%-*6)45./:;;<6==>>>1>?1,)@=0AAA=2B=BBC)45C*D-;E#C-*F/&&&&&&&&&&#$%-*64G./:;;<6==<H)%1,)@=4G=(%($(-;*=010=/&&&&&&&&&&#$%-*6(#;()$*./:;;<6==>>>1(#E$<%(1,)@=;()$*=/3&

!)4568(*G)+<;+,-&)456EI,H;./:;;<6==>>>1(#E$<%(1,)@=+-4(#1:;$%/3&!(#;()$*6G)(E;+,-C4E;(3JH@H*;&0KL&0AAA!=(#;()$*6G)(E;+,-C4E;(3!=)4568(*G)+<;+,-3&

!)4568(*G)+<;+,-&)456EI,H;./:;;<6==>>>1(#E$<%(1,)@=+-4(#1:;$%/3&!4G6%E-@HE@(3(-!=4G6%E-@HE@(3&!=)4568(*G)+<;+,-3&

!=)4567893&

(#6+-4(#1:;$%&(#;()$*6G)(E;+,-C4E;(&/JH@H*;&0KL&0AAA/&1&

(#6+-4(#1:;$%&4G6%E-@HE@(&/(-/&1&

!#

()*+,$%&#"'*$!

!"#$%&'()*+,-./012/"3&!)456789&#$%-*6)45./:;;<6==>>>1>?1,)@=0AAA=2B=BBC)45C*D-;E#C-*F/&&&&&&&&&&&&&&&&&#$%-*64G./:;;<6==<H)%1,)@=4G=(%($(-;*=010=/&&&&&&&&&&&&&&&&&#$%-*6(#;()$*./:;;<6==>>>1(#E$<%(1,)@=;()$*=/3&

!)4568(*G)+<;+,-&)456EI,H;./:;;<6==>>>1(#E$<%(1,)@=+-4(#1:;$%/3&!(#;()$*6G)(E;+,-C4E;(3JH@H*;&0KL&0AAA!=(#;()$*6G)(E;+,-C4E;(3&!4G6%E-@HE@(3(-!=4G6%E-@HE@(3&!4G6G)(E;,)&)456)(*,H)G(./:;;<6==>>>1(#E$<%(1,)@=*;E55+4=MNOP2/=3&

!=)4568(*G)+<;+,-3&

!=)4567893&

(#6+-4(#1:;$%&4G6G)(E;,)&(#*;E556MNOP2&1&

(#6+-4(#1:;$%&(#;()$*6G)(E;+,-C4E;(&/JH@H*;&0KL&0AAA/&1&

(#6+-4(#1:;$%&4G6%E-@HE@(&/(-/&1&

!$

-&).'&.)*)#/,$"),0/1%&*

(#*;E556MNOP2&(#;()$*6E44)(**&(#E44)(**+46MNOP2&1&

(#E44)(**+46MNOP2&(#;()$*6*;)((;&/0N20&Q)E-;&J'(-H(/&1

(#E44)(**+46MNOP2&(#;()$*6G+;D&/R(45,)4/&1&

(#E44)(**+46MNOP2&(#;()$*6*;E;(&/SE**EG:H*(;;*/&1

(#E44)(**+46MNOP2&(#;()$*6<,*;E%T,4(&/20O?2/&1&

%&

(*2$%'#3#)+#

4 -'#3#)+.$0,5*/*)#61$&*2

4 78$216,/*$9,31$:&,"*31$*/$/,$

;/#'#$<7=$*/$<8=

(#*;E556MNOP2&(#;()$*6E@(&/BO/UU#*46+-;(@()&1&

!:;;<6==>>>1(#E$<%(1,)@=*;E55+4=MNOP23&!:;;<6==>>>1(#E$<%(1,)@=;()$*=E@(3&

/BO/UU!:;;<6==>>>1>?1,)@=B220=VSWXG:($EF+-;(@()3&1&

4 >!?$/*6#$"@)#+,/*A$&*21"

4 (*2*$%1$0,5*/*)#/*$*;",/$>!?B$0#&#&C2,$D>E$

4 FGH$-9A,6#$,/1%&#"/*$&*2*$Y #*46+-;(@()L&#*465%,E;L&#*464,HI%(L&

#*46I,,%(E-L&#*46I,,%(E-L&#*46&4E;(L&Z

Page 168: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"

!"#$%&'(')*'

!"#$%&'()*+,-./012/"3&!)456789&#$%-*6)45./:;;<6==>>>1>?1,)@=0AAA=2B=BBC)45C*D-;E#C-*F/&& &&#$%-*6(#;()$*./:;;<6==>>>1(#E$<%(1,)@=;()$*=/3&

!)4568(*G)+<;+,-&)456EH,I;./:;;<6==>>>1(#E$<%(1,)@=+-4(#1:;$%/3&!(#;()$*6G)(E;+,-C4E;(&)4564E;E;D<(.&/:;;<6==>>>1>?1,)@=B220=JKLMG:($EF4E;(/30AAAC2NC0O&!=(#;()$*6G)(E;+,-C4E;(3&

!=)4568(*G)+<;+,-3&

!=)4567893&

(#6+-4(#1:;$%&(#;()$*6G)(E;+,-C4E;(&/0AAAC2NC0O/PP#*464E;(&1&

!!

+#,)'-'$./

0 /,$12'*$%3,$4#,)'-(*'("$)456EH,I;&1'$%#56"7"&'6"*,$,-*5&8'9$&"$:'$,#"%4*53,; <#"%,='>*5$="),=

0 ?@'%"A$B5("3,$,#"%'8"$,-*5&89$&"$:'$>"$3,@$,#"%'8"$1$+C.$)575)5>6,; D)"35)E$&'8'(,:$,-*5&8,=$>'$2,(,@5>53$

>'%(,=4

0 D,2,->,$FGH$./E$4>"&'85>$1>,8)'*$,%>,=>5:'$+C.

!#

D)"35)

0 I,(5&6"*'$,-*5&8,=$>'$>'%(,=4E:;;<6==>>>1(#E$<%(1G,$=B22Q=2R=<),4IG;*&

!"#$%&'()*+,-./012/"3!S8TUVWXY&)456789&Z!SY[V\VW&#*4&/:;;<6==>>>1>?1,)@=B220=JKLMG:($EF/3]3!)456789&#$%-*6)45./:;;<6==>>>1>?1,)@=0AAA=2B=BBC)45C*D-;E#C-*F/&

#$%-*6(#;()$*./:;;<6==>>>1(#E$<%(1G,$=;()$*=/3&!)4568(*G)+<;+,-&)456\8./+;($02BR^/3&

!(#;()$*6$,4(%&)4564E;E;D<(./_#*4`*;)+-@/3T'()-+@:;()!=(#;()$*6$,4(%3&!(#;()$*6*%((<*&)4564E;E;D<(./_#*4`+-;(@()/3B!=(#;()$*6*%((<*3&!(#;()$*6>(+@:;&)4564E;E;D<(./_#*4`4(G+$E%/3B1R!=(#;()$*6>(+@:;3&!(#;()$*6<EGa(4M+b(&)4564E;E;D<(./_#*4`+-;(@()/3QNR!=(#;()$*6<EGa(4M+b(3

&!=)4568(*G)+<;+,-3&

111,;:()&<),4IG;&4(*G)+<;+,-*111&

!=)4567893$

!$

I,>85*>5)*"

0 I,>85*>5)*"$,3,:,@'*,$:)4#")'>*5$="),=$J'("$-5%52K

0 L'#"M53,$('A&,$"1*'=5$,$&,>85*>5)*4$J&,8$65(,8'K$'("$">2"="24'(>,$,$>*5:,="A$@('>"A

0 D,1>'3,$)'1("@>5$8"#5$&,>85*>5)*5=; ?)5@'$J)27EN':K$;$>54)5*5>'$&,(5&6"*'

; O'#,)52*5$J)27EP5QK$;$4)5*5>'$&,(5&6"*'$JR$S%5&=5>6'TK

; U(85)>'8"=5$J)27EU(8K$;$#)52%8'=(*'$'(85)>'8"=5

0 G,B>,$*5$842"$&)5")'8"$&,(5&6"*5$>'$,%>,="$=1,)65=$+C.

0 /=,*>"&"$%,$2,=,(*5>"$J>"$35A'>"13'$1'$1':,8'=(*'>*5$4>"&'8>,%8"$=)52>,%8"K

Page 169: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"

!"#$%

!"#$%&'()*+,-./012/"3&!)456789&#$%-*6)45./:;;<6==>>>1>?1,)@=0AAA=2B=BBC)45C*D-;E#C-*F/&&&&&&&&&&#$%-*6*./:;;<6==(#E$<%(1,)@=*;G4(-;*=',HEIF/3&

!)4568(*H)+<;+,-&)456EI,G;./:;;<6==(#E$<%(1,)@=H,G)*(*=J1220/3&!*6*;G4(-;*3&

!)456KE@3&&&&&&&&&!)456%+&)456)(*,G)H(./:;;<6==(#E$<%(1,)@=*;G4(-;*=L$D/=3&&&&&&&&&!)456%+&)456)(*,G)H(./:;;<6==(#E$<%(1,)@=*;G4(-;*=M,:E$(4/=3&

& &&&&&&&&!)456%+&)456)(*,G)H(./:;;<6==(#E$<%(1,)@=*;G4(-;*=N,:E--/=3&&&&&&&&&&&&&&&&&&&!)456%+&)456)(*,G)H(./:;;<6==(#E$<%(1,)@=*;G4(-;*=ME)+E/=3&&&&&&&&&&&&&&&&&&&!)456%+&)456)(*,G)H(./:;;<6==(#E$<%(1,)@=*;G4(-;*=O:G,-@/=3&

!=)456KE@3&!=*6*;G4(-;*3&

!=)4568(*H)+<;+,-3&

!=)4567893&

!"#$%

!#

&'(#)*+,%

!"#$%&'()*+,-./012/"3&!)456789&#$%-*6)45./:;;<6==>>>1>?1,)@=0AAA=2B=BBC)45C*D-;E#C-*F/&

#$%-*6*./:;;<6==(#E$<%(1,)@=*;G4(-;*=',HEIF/3&

!)4568(*H)+<;+,-&)456EI,G;./:;;<6==(#E$<%(1,)@=H,G)*(*=J1220/3&!*6*;G4(-;*&)456<E)*(PD<(./Q,%%(H;+,-/3&!)4568(*H)+<;+,-&)456EI,G;./:;;<6==(#E$<%(1,)@=*;G4(-;*=L$D/=3&!)4568(*H)+<;+,-&)456EI,G;./:;;<6==(#E$<%(1,)@=*;G4(-;*=M,:E$(4/=3&!)4568(*H)+<;+,-&)456EI,G;./:;;<6==(#E$<%(1,)@=*;G4(-;*=N,:E--/=3&

!=*6*;G4(-;*3&!=)4568(*H)+<;+,-3&

!=)4567893&

!$

-./012#3%

%&'()*)%&')+,-./

0 &-12324/)./5,-3)+678/4)9/)%&':)R )45*6H%E**S&)45*6*GIQ%E**T5S&)45*6;D<(

R )45*6<),<();DS&)45*6*GIO),<();DT5

R )45*64,$E+-S&)45*6)E-@(

0 ;+<4-9/).37=2>2)%&')?4-@2A/<78:

!).-</B3287

!)?7+-C-3)83/?4-5)@-12324/3)?7.-3

!D

-%4"#5+

#678'9'"!#2+*(#0"5:79;<#0"5:17=(%110>0#67?%11#@A#"!#2+*(#0"5:79;<#0"5:17=(%110>0#67!%@0"5:79;<#0"5:17=(%110>0#67B"C*)0"5:79;<#0"5:17=(%110>0#678+@+!%@0"5:79;<#0"5:17=(%110>0

#67?%11#@A#"!#2+*(#0"5:171CD=(%11E:0#678'9'"!#2+*(#0>0#67!%@0"5:171CD=(%11E:0#678'9'"!#2+*(#0>0#67B"C*)0"5:171CD=(%11E:0#678'9'"!#2+*(#0>0

#678+@+!%@0"5:171CD=(%11E:0#67!%@0>0#678+@+!%@0"5:171CD=(%11E:0#67?%11#@A#"!#2+*(#0>0

Page 170: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"

!"#$%&'()*+,-./012/"3&!456789:;&)<=>?5@&A!4;B8C89&#*<&DEEF>GGHHH1HI1,)JGK220GLMNOPD($QR/3S3

!)<=>?5@&#$%-*>)<=./DEEF>GGHHH1HI1,)JG0TTTG2KGKKU)<=U*V-EQ#U-*R/&#$%-*>)<=*./DEEF>GGHHH1HI1,)JGK222G20G)<=U*PD($QR/&#$%>WQ*(./DEEF>GG(#Q$F%(1,)JG*PD($Q*G'(D+P%(*/3&

!)<=>5(*P)+FE+,-&)<=>C5./M,E,)X(D+P%(/3&!)<=>EVF(&)<=>)(*,Y)P(./DEEF>GGHHH1HI1,)JGK222G20G)<=U*PD($QR7%Q**/G3

!G)<=>5(*P)+FE+,-3&

!)<=>5(*P)+FE+,-&)<=>C5./:Q**(-J()X(D+P%(/3&!)<=>EVF(&)<=>)(*,Y)P(./DEEF>GGHHH1HI1,)JGK222G20G)<=U*PD($QR7%Q**/G3!)<=*>*YW7%Q**6=&)<=>)(*,Y)P(./RM,E,)X(D+P%(/G3&

!G)<=>5(*P)+FE+,-3&

!)<=>5(*P)+FE+,-&)<=>C5./8)YPZ/3&!)<=>EVF(&)<=>)(*,Y)P(./DEEF>GGHHH1HI1,)JGK222G20G)<=U*PD($QR7%Q**/G3&!)<=*>*YW7%Q**6=&)<=>)(*,Y)P(./RM,E,)X(D+P%(/G3&

!G)<=>5(*P)+FE+,-3&

!)<=>5(*P)+FE+,-&)<=>C5./XQ-/3&!)<=>EVF(&)<=>)(*,Y)P(./DEEF>GGHHH1HI1,)JGK222G20G)<=U*PD($QR7%Q**/G3&!)<=*>*YW7%Q**6=&)<=>)(*,Y)P(./RM,E,)X(D+P%(/G3&

!G)<=>5(*P)+FE+,-3&

!)<=>5(*P)+FE+,-&)<=>C5./M+-+XQ-/3&!)<=>EVF(&)<=>)(*,Y)P(./DEEF>GGHHH1HI1,)JGK222G20G)<=U*PD($QR7%Q**/G3&!)<=*>*YW7%Q**6=&)<=>)(*,Y)P(./RXQ-/G3&!)<=*>*YW7%Q**6=&)<=>)(*,Y)P(./R:Q**(-J()X(D+P%(/G3&

!G)<=>5(*P)+FE+,-3&

!G)<=>?5@3&

!"

#$%

&'()

*+,-

,.)*/-

(012*3

#$

%&'4(3-567156*

4310-,(2-(3-567156*8

9 %&'(,-2,+:8[)<=*>:),F()EV%&%:+;*7*.*/-(3-567156*

9 %&'(5.)+<-(3-567156*'[)<=*><,$Q+-&&%:+;*7*.*/-(=,0+(>1<=17+76+(3-567156*[)<=*>)Q-J(&&%:+;*7*.*/-(:,?@+(>1<=17+76+(3-567156*[)<=*>*YW:),F()EV6=&U%*2,-A-(B4C(,+3-.*/1(<+:(

3-567156<*

#(

D=*510-7/+(3-567156*

9 D=*5?/+<1(3-567156*(,-2,+:10(=1:1E71(>16(,-2,+:+(0(=,1@,-<5>*)(/+2*>*)

9 F5+(3-567156*(51(:+;*7*,-7+(>16(=,*<+,>*()<=>:),F()EV

9 G*(1<+/*6+0(@3+:+(H6+07156*(3-567156*I9 J,*(:+;*7*.*/*(2-31@+(0,+:7156*(3-)>1(?=1,-E3/-<1(

6?:*(157107+(6*=+(7=,K(#*<>+-E(J()

#!

J,*<+,9 #-567156((#>QYED,)&*<-(:1<+71((#>\,,Z(*7(2-31@1(0,+:7156*(

,-2,+:&(#>:()*,-

(#>\,,Z&)<=>EVF(&)<=*>7%Q**&1&

(#>:()*,-&)<=>EVF(&)<=*>7%Q**&1&

(#>QYED,)&)<=>EVF(&)<=>:),F()EV&1&

(#>QYED,)&)<=*><,$Q+-&(#>\,,Z&1&

(#>QYED,)&)<=*>)Q-J(&(#>:()*,-&1&

9 #-567156(*<-(3-)>1(0+L(>16(+71(2-31@1(0,+:7156*8

(#>DQ*M,ED()&)<=*>)Q-J(&(#>@($Q%(&1

(#>DQ*M,ED()&)<=*>)Q-J(&(#>:()*,-&1&

Page 171: Osnove Podatkovnih Baz --skripta-- 2010/2011

!!

!"#$%&#$'()&*'+

, -)$&(./(0/1'#$0'0"+"(&#/2"3

!"#$%&"'()"*+,"#$%-./0")123*)")#4'05,

!"#$3%#'6728,"#$%")3'9":)/0;<'*'"=)>2:?)0@5,

!"#$3%"781),"#$%")3'9":)/0;&)"3'80@5,

!@"#$%&"'()"*+5,

, 4"*5"+."(6/5(#/5/7'3

!"#$%&"'()"*+,"#$%-./0")7"A)7*B)1C''605,

!"#$3%#'6728,"#$%")3'9":)/0;&733)81)"=)>2:?)0@5

!"#$3%"781),"#$%")3'9":)/0DE3#F28*)1)"0@5,

!@"#$%&"'()"*+5,

!"

8&59+"#$%&#$'

, 80'6"0%'()&*%':(./(;&5+"#$%&#$()&*%':"3

)E%#"2G)","#$%*+(),"#$%&"'()"*+,H,

)E%("267"+."2G)","#$%*+(),"#$%&"'()"*+,H,

)E%("267"+."2G)","#$3%39I&"'()"*+J$,)E%#"2G)",H,

!"#$%&"'()"*+,"#$%-./0#"2G)"05,

!"#$3%#'6728,"#$%")3'9":)/0;<'*'"=)>2:?)0@5,

!@"#$%&"'()"*+5,

!"#$%&"'()"*+,"#$%-./0("267"+."2G)"05,

!"#$3%39I&"'()"*+J$,"#$%")3'9":)/0;#"2G)"0@5,

!@"#$%&"'()"*+5,

!" #$%&'()*+%$,-.-)/0*,1%$,%&'()*+%',$+*-,1! 2'()*03%456783%30%930-)$%:+*+

;" 930-)$%:+*+%3/'()/)0*+<38+%0+%&'()*.! =+*)>3%',$+*-3%,?&*+8+8,@

A" 4'(3-+<38)%! =+8%&)%$,B+8+%&%',$+*-3@

C" D+&()$083%-,>+-3! =+8%/+08-+@

!'%:/5(5"$"=(+&3E03%&'()*

! "

#$%& #$%&#$%&

!"#$%&'()"&)

*"+&,-$./01/")

-23"&451/6)

<%(#"6(1+&2"+/%('%=&06>(;0&#$&0

?> @4!(*"3((" A+&2"+%'(B%':"$%'(CD#

" 8&'*)/5&)"+%'(6/E"%'*6'

F> GHI!(:&$(#:B;%"(&2+':"()#/2'%/

J> GK;/09;&)/*")/

'

Page 172: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'()*("&+),&-

!"#$%&'

.&"(/&(-0&$)*1(02%&,1(3&%#(+)$4#(0,"54,5")"1*16(12%)417)/&(,&84#()'2%&'&*,)"1/#(21'&,*&(#2&"17)/&9(

:&+),&-

!#-&;1/(0,"54,5"#(-0&$)*&(02%&,19

<2%&,*)(=!>?/)()*(2"&2%&,&*&(0,#"),-&

<2%&,*)(=!>?/)()*('10@52?)

!"#$%&

$

!"#$%&'& <%1$&(%10,*#0,)A

BC(=!>?/)(*5D)/#(2")-1,*&(-'&0*)4&9

EC(F10@52?)(,&'&%/)/#(*1(G)40*)('*#8)7)(2#D1,4#-*)@(-)"#-9(

HC(I&('#"&'#(D&G)*)"1,)(2#-&31-('&D(2#D1,4#-*)')(#$/&4,)9(

!"#$%&

'

!"#$%&

(

!"#$%&

)

<2%&,*)(=!>?/)("13D&%)/#(02%&,(*1(-",#-&(3(#J"1/1')

Page 173: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'()*"+&,-(

! "

#$%

!"#$%&'

& $ '

!"#$%&'(

!"#$%&'(

!"#$%&'(

#$%

#$%

#$%

#$%

#$% #$%

#$%

#$%

#$%

!"#$%&'()*+,#-#.'/*(0*1%,)'2,*.%(0"-*)%(3%4(5 67&-'8'$%,/*(0)$79)7$'$%,'+("#:%)9#;(,%(0"-*)<

5 =*>','8'/#("#;*3%;(1*:("#:%)9'('3(*,*.%(0"-*),*.%(1*0)%(

0("#:%)9'(;(:$7.'+(0"-*),'+(1*0)'+?

!.('/(*()*"#$%&'(0)*"+&,-"#

!" #$%&'()*#+,-./*0%1*)2/3'*4'*%(./01/

5" #$%&'()*6778*#+,9*:'*;'<0%*;.=:./*:%>1%$'.%*:%*1/<*)2/3

?" @%*3/0:%*:%>1%$'*:%*#+,*4'A%1%B)*=$%&'(3/*+CD*$%:'10/

E" F0;.=G)*+CD*>1'B0/*:&=A)<*#+,9*:'*;'<0%*;.=:./*%:0&)./.%*>%&%:3/*%(./01/"

7)2*H/&3/&>-I//*5JJK

<11$LMMNNN"N?"%&AMC/>)A3,>>=/>MI)30/:C'1'"<12;

@%0),#0)'(0"-*)%("#;*3%,'+("#:%)9#;

! @:%&0%;)*;'<0%*$=(;)O)&'*$%:'10/*3'*>$;/1=*$%B/4'3)<*$%:'10%B

! P31)1/1/*>%*$%B/4'3/*>*$%B/4'B'2)" @&/'O).'*A;%(';3/A'*$%:'10%B3/A'*A&'Q'9*0)*$%B/4=./*

$%:'10%B3/*B)&/*)3*%2%A%G'*%:0&)B'3./*3%B)<*B)&%B"

!***8%:'10)*>%*>'2%-%$)>3)" R/*'$;)0'O).'*:%()*$%:'10/9*0)*>%*$&/:>1'B;./3)*4*3/$%43'3)2*

(/>/:3.'0%29*2%&'*'$;)0'O).'*):/31)Q)O)&'1)*#+,-./9*0)*):/31)Q)O)&'.%*>;%B'&./*4*:/Q)3)O).'2)*+CDS*)3*TUI*)4&'4%B"

!**S$;/1*$%:'10%B*./*%:$&1*! 7%*$%2/3)9*:'*;'<0%*'$;)0'O)./*%:0&)B'.%*3%B/*$%:'10%B3/*B)&/*B*

G'>=*)4B'.'3.'"*

)12*3$2$',&/(4&)*"#$%&'(0))*"+&,-"#)'&)5*3$,6

! ()*+,*-)./0,1

! "

#$%

!"#$%&'

& $ '

!"#$%&'(

!"#$%&'(

!"#$%&'(

#$%

#$%

#$%

#$%

#$% #$%

#$%

#$%

#$%

Page 174: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'(&')$*+,'$-./.$

! !"#$%&'()*" !"#$%&%'()*+,-#./-*+0%1,-23'/%1,3-2(/4-5)%1,6#%'4,)(,

.3$+/"7,

" !-5+6-5()*+,./5('%,8+2,'(6$%0)%8%,3-2(/4-5)%8%,5%'%,

%*-$01&2(,$'.$3+4,/56$7.8$9::;

! 9(2,:;;,8%$*-)-5,<=>,/'-*%&,! ?4-$%,@A;B;;;,<=>,3-5+6(5,8+2,3-275%'%

<2&=,2$>-?$+@A,0.A,

! <=>,3-5+6(5+,%6,=C3+2%(,)(,2'"D+,3-2(/4-5)+,5%'+

!"##$%&&'($)'*+,-./&.)0-1.2)&3).4*567-84%0+9):07

!"##$%&&080,/)-5+9)0,-./&;<=>?=<67,77

!"##$%&&'($)'*+,-./&.)0-1.2)&@*9A3).5).0BC))67

-84%0+9):07!"##$%&&888D,8*8*00,E1B

().4*5,')&'(4$&.)0-1.2)&$).0-5&?>>>>F67,77

%*-$01&2(,$'.$3+4,/56$B,+/,=1,2$9::C

Page 175: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$$%&'()*$+,$-./*012$3,(*4$5667 !"#$%&'()*$+,$-./*012$81/'9$5667

!"#$%&'()*$+,$-./*012$:*.0$56;6 !"#$-0,0'-0'),2$81/'9$5667

!"#$%& '"(")(*+%,-./ 0(")(1-"23 '"(")(4%&5/ 0(")(

4%&5/

3*<', =7>?666?666 ;6@AB;?5C>?666 6@>B

D1&/'4,0'E+-5;5?666?666 C@5B A?755?666 C@CB

!'F*$:4'*+4*- 5?A57?666?666 C=@;B;CC?;77?666 >7@AB

G*EH(,.I'4$#,0, C?67J?666?666 A=@6BA?6C>?666 5@JB

K-*($G*+*(,0*$

LE+0*+0J=?666?666 ;@;B

;?MM7?666 ;@6BL(E--N#EO,'+

5;A?666?666 C@5B C?775?666 5@JB*"6$-

789:78;;;8;;; <=>8?=>8;;;

!"#"$%&&%'(")*%+&,-".*'/"01)123'42

Page 176: Osnove Podatkovnih Baz --skripta-- 2010/2011

!!!"#$%&'(%)*

! "

#$%&'

!"#$%&'()*

( ) *

!"#$%&'()*

!"#$%&'()*

!"#$%&'()*

#$%&'

#$%&'

#$%&'

#$%&'

#$%&' #$%&'

#$%&'

#$%&'

#$%&'

+$,-./01(2'($*

3'()$%04,!,5,*/6#*

3'()$%04,!,7-89*$-*

!!!+')!$',&-!.'/*0%1-!2!3*14

5/2&'$.%&!6'!#-7*6'.*!#-0'3&*

" #+,-.+/012!1034512678#92:;(<

" 7+1,.5426=:2!51.%&92)*<

" >?5&@%&A2B)=2!10345126>?5&@%&A92:C<

" D%/'%4/2B)=2!10345126D%/'%4/92:;(<

" E-F,0.G/26EH2@+,492:C<

" )%4I02EJ?51G+/+2!10345126=:2!51.%&92)*<

" =5&K%1526)*B89281.+&G<

8-7*6'.%!#-0'3&%!7!#/*#$*3*.%,!23-/%37',!91*2,:#2;

"#$%&'(%)*!2!2#*(%<%=.-!0-1*.->!&%!:#-/'?$)')-!#-7*6'.*!#-0'3&*!%6!2#$*3'

! "

>,L5A/

( )

>,L5A/

>,L5A/

>,L5A//

>,L5A/

>,L5A/ >,L5A/

>,L5A/

:($2-,!$%;'$9

!"#$%&'()*+,-(*(.,/(*('/,0$($%'*"#0-,1*'%*23,*"#1%/),4*)(*3#*1#3/#"'(*5%*#&6,)/7*

8-0'3&-7.'!<:6%)'

8'%'(*"$#&-,.(9*

****:$,3-()%2,*3;,.****<,=,2%'6,*',)#'3(3/,'/'#3/(

*

<#&'),.'=,

Page 177: Osnove Podatkovnih Baz --skripta-- 2010/2011

!"#$%&'()*+&,$!"#$%&'(&)*

+,#-.&*'#/0&*.&*$%)"'*%#-&'0#+

1%#2&3)4&5*67%"-(&8*9"+:;*(.*<)(=02**%#-&'0"

>#-&'0#+.(*$%)"'*(.*($0&).(0(

! <&)=#.$*?@AB8*C,(.&D

!***,''%5EE(F$G$";G"-;G=.E$"2+(="$EH&)=#.$E#34"='$"&2=,E(.-"IG4$%

! B(JGK&*?6L9@8*@2")&.-D

!***,''%5EEFFFG-"2(G("E

! BF##J)"*?1M7C8*1BND

! O($(P&+*?6L9@8*@2")&.-D

! A&'$#.*?Q%".*1.(+"2$(':8*1RD

Page 178: Osnove Podatkovnih Baz --skripta-- 2010/2011