c °2003, sangjin@kut.ac.kr
Tuple Relational Calculus: ∀(P ⇒ Q)˜ +˜ +i
„ Âť ™ ÂĄ. ç > U ÂœĂŽ [ ÂłU ĂŁ ĂŠu o ‰Õ ĂŚ7 k ÂŒ ›u É ‰, Ă´ Ă“' c QÂŁ FY E W # QĂŽ ÂşÂŒ ĂĄ ›’ É ÂŚ
Tuple Relational Calculus • Ăˆ Ă’e Œ› a> ' K $ \ 3  " f 9_ | _ + Ad Ăž “ ” r É 6 §þ ÂŁ °  ú . {t|P (t)} ¤, › ÂŁ 7 ¸| Ă• t# Ăź Q P\ ÂŚĂŤ –7 Ă&#x; ¤ ĂĄ Â? HĂˆ Ă’e ÂŚ_ | ½ 9 Ă‹` + Ϋ Â˜Ă´ Ăş Ç . • \ V) @ /Ă˜ ÂŚĂ— ĂŚ@ /Ă˜ ÂŚĂ“ os Â? 1200˜ Ă? H — ¸Ž H@ /Ă˜ ÂŚ` Œš Ă” 1 . @Ă˜ / ÂŚÂ Â Ăą L-102 L-212 L-108 L-401 L-402
t& " h
ĂŽ a Â’ >& Ă‹ h ¨– ½ Ă?& h { Âœ& Š h
1 ĂŽ " x& l h
1 ĂŽ " x& l h
ĂŻĂ“ – Ă&#x; o Â? 2000 1200 1000 600 1100
loan › a ' > {t | t ∈ loan ∧ t[@ /Ă˜ ÂŚĂ“ o] > 1200} Â?
\ ĂŽ ¨ V) @Ă˜ / ÂŚÂ Â Ăą L-102 L-212 L-108 L-401 L-402
t& " h
ĂŽ a Â’ >& Ă‹ h ¨– ½ Ă?& h { Âœ& Š h
1 ĂŽ " x& l h
1 ĂŽ " x& l h
ĂŻĂ“ – Ă&#x; o Â? 2000 1200 450 1100 400
‚ Ă?/ Ăƒ f Âą Ă? Ăƒ ‚ f Âą f Âą f Âą f Âą
∃ Quantifier • ∃: Æ Ă’Ă˜ ÂŚ(projection)` ÂŚ l 0 AK 6 xÂ?  a ) . • ∃t ∈ r(Q(t)): › a> ' r\  Q(t) ‚ Ă?s Ăƒ á &Â? HĂˆ Ă’e ÂŚ t ” rF > € ‚ Ă?s Ăƒ . • \ V) @ /Ă˜ ÂŚĂ— ĂŚ@ /Ă˜ ÂŚĂ“ os Â? 1200˜ Ă? H — ¸Ž H@ /Ă˜ ÂŚ_ @ /Ă˜ ÂŚÂ Â Ăą\ Œš Ă” 1 . {t | ∃s ∈ loan(t[@ /Ă˜ ÂŚÂ Â Ăą] = s[@ /Ă˜ ÂŚÂ Â Ăą] ∧ s[@ /Ă˜ ÂŚĂ“ o] > 1200)} Â? ÂŒl # " f tÂ? H Ă„ ÂťÂ Ăƒ Âşs Ă™ Ÿ– Ă? t\ Â Ăˆ Ă’e ÂŚ` ÂŚ m ½ ” É{ + Âœ Š € " fK $ d 3 s ” ‚ Ă?s Ăƒ á &Â? Ht ¨
K ĂŽ Ă´ Ç . ∃s ∈ loan(s[@ /Ă˜ ÂŚĂ“ o] > 1200)“ Â? r loan › É a> ' \  @ /Ă˜ ÂŚĂ“ os Â? 1200˜ Ă? H s ‍כ‏ • ¸e Ăœ ” Ÿ€ ‚ Ă?s Ăƒ Â? a ) .
\ ĂŽ ¨ V) @ /Ă˜ ÂŚÂ Â Ăą L-102 L-102 L-102 L-102 L-102
t t& " h
ĂŽ a Â’ >& Ă‹ h a Â’ >& Ă‹ h a Â’ >& Ă‹ h a Â’ >& Ă‹ h a Â’ >& Ă‹ h
ĂŻĂ“ – Ă&#x; o Â? 2000 2000 2000 2000 2000
@Ă˜ / ÂŚÂ Â Ăą L-102 L-212 L-108 L-401 L-402
s t & " h
ĂŽ Â’ a >& Ă‹ h ½ ¨– Ă?& h { Âœ& Š h
1 ĂŽ " x& l h
1 ĂŽ " x& l h 1
ĂŻĂ“ – Ă&#x; o Â? 2000 1200 450 1100 400
‚ Ă?/ Ăƒ f Âą Ă? Ăƒ ‚ f Âą f Âą f Âą f Âą
s Ă„ Âť t[1] = s[1] ∧ s[3] > 1200 t[1] 6= s[1] t[1] 6= s[1] t[1] 6= s[1] t[1] 6= s[1]
" f Ð Ã s כ e Ü ¼Ù ¼ Ð s = (“L-102”,“ a >& Ë ”,“2000”)\ h @ /K 6 § £ r É Ðs à . ∃s ∈ loan(t[@ /Ø ¦ ñ] = s[@ /Ø ¦ ñ] ∧ s[@ /Ø ¦Ó o] > 1200) s ¨
\ î ¦ $ Á ` ¦K ô Ç . • ¬∃t ∈ r(Q(t)): a> ' r\ Q(t) Ðs à ÷ & HÈ Òe ¦ t \ Ü O ¼ Ðs à . • \ V) @ /Ø ¦Ó os 500 Ð h & r@ É /Ø ¦s \ O H ¸ Ht & _ h s 2 §` £ ¦¹ Ô 1 . {t | ¬∃s ∈ loan(t[t & " h
] = s[t î & " h
] ∧ s[@ î /Ø ¦Ó o] < 500)} Ð Ã ¦. ¬∃s ∈ loan(s[@ /Ø ¦Ó o] < 500) r loan É a> ' \ @ /Ø ¦Ó os 500 Ð & h r É s כ \ # O Q Ðs à a ) .
\ î ¨ V1) @ /Ø ¦ ñ L-102 L-102 L-102 L-102 L-102
t t & " h
î a >& Ë h a >& Ë h a >& Ë h a >& Ë h a >& Ë h
ïÓ ß o 2000 2000 2000 2000 2000
@Ø / ¦ ñ L-102 L-212 L-108 L-401 L-402
s t& " h
î a >& Ë h ¨ ½ Ð& h { & © h
1 î " x& l h
1 î " x& l h
ïÓ ß o 2000 1200 450 1100 400
Ð/ Ã f ± f ± f ± f ± f ± f ±
s Ä » s[3] ≥ 500 t[2] 6= s[2] t[2] 6= s[2] t[2] 6= s[2] t[2] 6= s[2]
" f Ð Ã s כ ¸\ Ü O ¼Ù ¼ Ð s = (“L-102”,“ a >& Ë ”,“2000”)\ h @ /K ‘¬∃s ∈ loan(t[t & " h
] = î s[t & " h
] ∧ s[@ î /Ø ¦Ó o] < 500)’ r É Ðs à .
\ î ¨ V2) > ý a ñ L-401 L-401 L-401 L-401 L-401
t t& " h
î
1 î " x& l h
1 î " x& l h
1 î " x& l h
1 î " x& l h
1 î " x& l h
ïÓ ß o 1100 1100 1100 1100 1100
>ý a ñ L-102 L-212 L-108 L-401 L-402
s t & " h
î a >& Ë h ½ ¨ Ð& h { & © h
1 î " x& l h
1 î " x& l h
ïÓ ß o 2000 1200 450 1100 400
Ð/ Ã f ± f ± f ± f ± f ± Ð Ã
s Ä » t[2] 6= s[2] t[2] 6= s[2] t[2] 6= s[2] s[3] ≥ 500 t[2] = s[2] ∧ s[3] < 500
" f Ð Ã s כ e Ü ¼Ù ¼ Ð s = (“L-401”,“"
1 î x& l ”,“1100”)\ h @ /K 6 § £ r É f s ± . ¬∃s ∈ loan(t[t & " h
] = s[t î & " h
] ∧ s[@ î /Ø ¦Ó o] < 500)
∀ Quantifier • ∀t ∈ r(Q(t)): a> ' r\ e H ¸ HÈ Òe ¦\ @ /K Q(t) Ðs à # Q Ðs à a ) . • \ V) ï Ó ß os © > H ý a_ > ý a ñ\ ¦¹ Ô 1 . >ý a ñ A-101 A-215 A-102 A-301 A-302
t& " h
î z ´& h f " í& h ÓC ½ ~ & h z © y & h z © y & h
ïÓ ß o 500 400 350 500 900
acccount a> ' {t | ∃s ∈ account(t[> ý a ñ] = s[> ý a ñ] ∧ ∀w ∈ account(s[ï Ó ß o] ≥ w[ï Ó ß o]))}
\ î ¨ V1)
2
>ý a ñ A-101 A-101 A-101 A-101 A-101
s t& " h
î z ´& h z ´& h z ´& h z ´& h z ´& h
ïÓ ß o 500 500 500 500 500
> ý a ñ A-101 A-215 A-102 A-301 A-302
w t & " h
î z ´& h " f í& h ÓC ½ ~ & h z © y & h z © y & h
ïÓ ß o 500 400 350 500 900
Ð/ Ã f ± Ð Ã Ð Ã Ð Ã Ð Ã f ±
s Ä » s[3] ≥ w[3] s[3] ≥ w[3] s[3] ≥ w[3] s[3] ≥ w[3] s[3] < w[3]
" f s = (“A-101”,“ z ´& ”,“500”)\ h @ /K ‘∀w ∈ account(s[ï Ó ß o] ≥ w[ï Ó ß o])’ r É f s ± .
\ î ¨ V2) >ý a ñ A-302 A-302 A-302 A-302 A-302
s t& " h
î z © y & h z © y & h z © y & h z © y & h z © y & h
ïÓ ß o 900 900 900 900 900
> ý a ñ A-101 A-215 A-102 A-301 A-302
w t & " h
î z ´& h " f í& h ÓC ½ ~ & h z © y & h z © y & h
ïÓ ß o 500 400 350 500 900
Ð/ Ã f ± Ð Ã Ð Ã Ð Ã Ð Ã Ð Ã
s Ä » s[3] ≥ w[3] s[3] ≥ w[3] s[3] ≥ w[3] s[3] ≥ w[3] s[3] ≥ w[3]
" f s = (“A-302”,“y z © & ”,“900”)\ h @ /K ‘∀w ∈ account(s[ï Ó ß o] ≥ w[ï Ó ß o])’ r É Ðs à .
∀(P ⇒ Q) + +i • \ V) y z © & \ h h >[ ÷ O &# Qe H ¸ H> ý a Ð ï Ó ß os & h r É ¸ H> ý a_ > ý a ñ\ ¦¹ Ô 1 . {t | ∃s ∈ account(t[> ý a ñ] = s[> ý a ñ]∧ ∀w ∈ account(w[t & " h
] = “y î z © & ” ∧ w[ï h Ó ß o] > s[ï Ó ß o]))}
\ î ¨ V1) >ý a ñ A-101 A-101 A-101 A-101 A-101
s t h &"
î ´ & z h ´ & z h ´ & z h ´ & z h ´ & z h
ïÓ ß o 500 500 500 500 500
>ý a ñ A-101 A-215 A-102 A-301 A-302
w t & " h
î z ´& h " f í& h ÓC ½ ~ & h z © y & h z © y & h
ïÓ ß o 500 400 350 500 900
/ Ð Ã f ± f ± f ± f ± f ± Ð Ã
s Ä » w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[3] 6> s[3] w[2] = “y z © & ” ∧ w[3] > s[3] h
" f s = (“A-101”,“ z ´& ”,“500”)\ h @ /K ‘∀w ∈ account(w[t & " h
] = “y î z © & ” ∧ w[ï h Ó ß o] > s[ï Ó ß o])’ r É f ± s .
\ î ¨ V2) >ý a ñ A-215 A-215 A-215 A-215 A-215
s t h &"
î " fí & h " fí & h " fí & h " fí & h " fí & h
ïÓ ß o 400 400 400 400 400
>ý a ñ A-101 A-215 A-102 A-301 A-302
w t & " h
î z ´& h " f í& h ÓC ½ ~ & h z © y & h z © y & h
ïÓ ß o 500 400 350 500 900
/ Ð Ã f ± f ± f ± f ± Ð Ã Ð Ã
s Ä » w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[2] = “y z © & ” ∧ w[3] > s[3] h w[2] = “y z © & ” ∧ w[3] > s[3] h
" f s = (“A-215”,“" f í& ”,“500”)\ h @ /K ‘∀w ∈ account(w[t & " h
] = “y î z © & ” ∧ w[ï h Ó ß o] > s[ï Ó ß o])’ r% É r i f ± s . Õ ª QÙ ¼ Ðs | _ 9 HÄ ºo " ¶ é H ` כ ¦¹ Ô` 1 ¦Ã º\ O . • P ⇒Q½ ¨$
` í ¦s 6 x # ° ú r| É 9 _ \ ¦ r ½ ¨$
í # . P T T F F
Q T F T F 3
P ⇒Q T F T T
{t | ∃s ∈ account(t[> ý a ñ] = s[> ý a ñ]∧ ∀w ∈ account(w[t & " h
] = “y î z © & ” ⇒ w[ï h Ó ß o] > s[ï Ó ß o]))}
\ î ¨ V1) >ý a ñ A-101 A-101 A-101 A-101 A-101
s t& " h
î z ´& h z ´& h z ´& h z ´& h z ´& h
ïÓ ß o 500 500 500 500 500
>ý a ñ A-101 A-215 A-102 A-301 A-302
w t& " h
î z ´& h f " í& h ÓC ½ ~ & h z © y & h z © y & h
ïÓ ß o 500 400 350 500 900
Ð/ Ã f ± Ð Ã Ð Ã Ð Ã f ± Ð Ã
s Ä » w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[2] = “y z © & ” ⇒ w[3] 6> s[3] h w[2] = “y z © & ” ⇒ w[3] > s[3] h
" f s = (“A-101”,“ z ´& ”,“500”)\ h @ /K ‘∀w ∈ account(w[t & " h
] = “y î z © & ” ⇒ w[ï h Ó ß o] > s[ï Ó ß o])’ r É f ± s .
\ î ¨ V2) >ý a ñ A-215 A-215 A-215 A-215 A-215
s t& " h
î f " í& h f " í& h f " í& h f " í& h f " í& h
ïÓ ß o 400 400 400 400 400
>ý a ñ A-101 A-215 A-102 A-301 A-302
w t& " h
î z ´& h f " í& h ÓC ½ ~ & h z © y & h z © y & h
ïÓ ß o 500 400 350 500 900
Ð/ Ã f ± Ð Ã Ð Ã Ð Ã Ð Ã Ð Ã
s Ä » w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[2] 6= “y z © & ” h w[2] = “y z © & ” ⇒ w[3] > s[3] h w[2] = “y z © & ” ⇒ w[3] > s[3] h
" f s = (“A-215”,“" f í& ”,“400”)\ h @ /K ‘∀w ∈ account(w[t & " h
] = “y î z © & ” ⇒ w[ï h Ó ß o] > s[ï Ó ß o])’ r É Ðs à . {t | ∃s ∈ account(t[> ý a ñ] = s[> ý a ñ]∧ ∀w ∈ account(w[t & " h
] 6= “y î z © & ” ∨ w[ï h Ó ß o] > s[ï Ó ß o]))} {t | ∃s ∈ account(t[> ý a ñ] = s[> ý a ñ]∧ ¬∃w ∈ account(w[t & " h
] = “y î z © & ” ∧ w[ï h Ó ß o] ≤ s[ï Ó ß o]))} • \ V) ;î & ß \ h h >[ ÷ O &# Qe H ¸ H> ý a Ð ï Ó ß os & h r É ¸ H> ý a_ > ý a ñ\ ¦¹ Ô 1 . {t | ∃s ∈ account(t[> ý a ñ] = s[> ý a ñ]∧ ∀w ∈ account(w[t & " h
] = “ î ;î & ß ” ⇒ w[ï h Ó ß o] > s[ï Ó ß o]))}
\ î ¨ V) >ý a ñ A-101 A-101 A-101 A-101 A-101
s t& " h
î z ´& h z ´& h z ´& h z ´& h z ´& h
ïÓ ß o 500 500 500 500 500
w t & " h
î z ´& h " f í& h ÓC ½ ~ & h z © y & h z © y & h
> ý a ñ A-101 A-215 A-102 A-301 A-302
ïÓ ß o 500 400 350 500 900
Ð/ Ã f ± Ð Ã Ð Ã Ð Ã Ð Ã Ð Ã
s Ä » w[2] 6= “ ;î & ß ” h w[2] 6= “ ;î & ß ” h w[2] 6= “ ;î & ß ” h w[2] 6= “ ;î & ß ” h w[2] 6= “ ;î & ß ” h
" f s = (“A-101”,“ z ´& ”,“500”)\ h @ /K ‘∀w ∈ account(w[t & " h
] = “ î ;î & ß ” ⇒ w[ï h Ó ß o] > s[ï Ó ß o])’ r É Ðs à . s כ r É rÈ É Òe ¦\ @ /K " f ¸ ð Í t ø s . " f ¸ H> ý a õ a> ' \ í Ê < a ) .
4
c °2003, sangjin@kut.ac.kr
– < Xs ' ] X H_ # Q 9¹ §: ¡ íl > hµ Ï\ 1 " f ¦ 9 t 3 wô l ÇX <s ' ] X Hכ ¹½ ¨ e Ü ¼ D h\ v á > Ô ÐÕ ªÏ ` þ ¦ $
K í ô Ç .
2T 6 ' _9 KT Ã : ~ ¡q ç { ¡È 01
– < Xs ' ¦w : X n <s ' # Q
{ \ 9 ì rí ÷ ß & Qe # ` ¦Ã ºe Ü ¼9, y y r+ É AI þ Ð$ © &# ÷ Qe ` ¦Ã ºe # QD há Ô ÐÕ ªÏ ` þ ¦ $
í H s כ # Q 9Ö ¦Ã ºe .
A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
– º Á $
(integrity) ë í H] j: X <s ' H Ð: x # Q : " ¤& £
ô ñ Ç 7 xÀ á Ó_ { 9 a$ '
] í j ¸| (con sistency constraint)` ¦ ë 7 ß ¤K á ô Ç . p o ¦ 9 t 3 wô l Ç] j ¸| s D h] j ¸| µ s ÏÒ 1 t q á Ô ÐÕ ªÏ ` þ ¦Ã º&
K ñ ô Ç . ë ß ] j ¸| s # Q
{ 9 \ ì rí ß aX ) <s ' \ 5 ge Ü ¼ ë H] j 84 ¤¸ ú .
} º4
1
• P Ll ' aS cl â «® h ¸ k â «g `(DBMS, DataBase Management System): " f Ð a> ' e HX <s ' _ ¸6 § £ Õ õ ªX <s ' \ ¦] X H½ ÉM + : 6 x÷ & Há Ô ÐÕ ªÏ _ þ 9 | ½ Ë` + ¦´ ô ú Ç .
– é " ¶ $
(atomicity) ë í H] j: ( É Ó' r Û ¼% \ 7 ¸ Ó µ À ÏÒ 1 t q 8 ¸X <s ' { 9 a$ '
í I © ¦Ä \ »t ¸2 ¤K ô Ç . X <s ' Z s Û ¼_ \ O r¶ É " é $
` í ¦ë 7 ß ¤K á ô Ç . 7 ¤, & £
ñ & © h ¼ Ü ÐÃ º ' ÷ & ) Ã º ' ÷ &t · § ú ô Ç .
• P Ll ' aS cl â «(database): aº ' e HX <s ' _ ¸ 6 § £
– l 1r x ] H X _ ë H] j: # Q 6 x ° ú rX É < ' s \ ¦1 xr l \ Ì t q õ _ { 9 a$ '
s í :| L Ã 9 ºe .
{ 9 r Û ¼% 7 ~ Ód ½ \ " f H# Qá Ô ÐÕ ªÏ ` þ ¦s 6 x # ] H X ½ Éà + ºe Ü ¼Ù ¼ Ð1 xr l ] H X ` ¦´ òõ & Ü h ¼ Ð] j# Q l # Q > § .
• DBMS_ 3 q& l : X h <s ' Z s Û ¼\ &
ñ Ð\ ¦ ´ òÖ ¦& h s ¦¼ o # > $ © ¦ Ò o H¨ 8
` â ¦] j/ N B H כ • X <s ' Z s Û ¼ H@ /| Ó_ ¾ &
ñ Ð\ ¦ ao ' ½ ÉÃ + ºe ¸ 2 ¤[ > O ÷ &# Qe .
– Ð î ë ß H] j: 6 x ] H X ½ Éà + ºe HX <s ] ' jô Ç÷ &# Q ô Ç .
{ 9 r Û ¼% 7 ~ Ód ½ \ f " H# Q6 x6 £ xá Ô ÐÕ ªÏ s þ rá É Ô ÐÕ ªÏ þ _ ¦ 9\ s O Æ Ò ÷ &Ù ¼ Ðs Ðî ] ß j ¸ ` | ¦y כ © ¹ l # Q§ > .
• X <s ' _ ao ' – &
ñ Ð_ $ ½ © ¨ ¸&
_ ñ – &
ñ Ð\ ¦ ¸ HB j& m 7 §` £ ¦] j/ N B – $ © a& )
ñ Ð\ ¦r Û ¼7 % ¸À Ó Ô ¦Z & O h ] X H 1 xÜ p ¼ РÒ' Ð ñ – # Q 6 x &
ñ Ð\ ¦/ NÄ B »½ É +
Ä â ºs M כ : H\ ë µ ÏÒ 1 t q Hë H] j~ Ót ½
1.1
KT 6 ' [8 ýå ËX ¾ È ì
1.3.1
KT 6 ' [8 ý ¼V s× ê D
• < Xs ' Z s Û ¼ H 6 x \ > X <s ' # Qb G> $ ÷ © &# Qe ¦, # Qb G> Ä »t ÷ & Ht [ jô Ç? /6 x` ¦ u n ¸ ï r .
6 KT ' [9 cT S y 8 ð ý « Ö Þ Ó
• X <s ' Z s Û ¼6 x6 £ x_ \ V
• X <s ' Æ Ò © o_ [ jé > ß
– r É ' > ý a ao '
– ü Óo t & é h > ß : X <s ' # Qb G> $ ÷ © &# Qe Ht \ ¦l Õ tô ü Ç .
– Ó/ ½ N B \ V r Û ¼% 7
– 7 o H & é h > ß : # Q X " <s ' $ ÷ © &# Qe ¦ <s X ' ç \ ß # Q " a> ' e Ht \ ¦l Õ tô ü Ç . Ho 7 & é h > ß \ " f HX <s ' Z s Û ¼ ^ ¦l \ Õ tô ü Ç . X <s ' Z s Û ¼ ao ' á Ô Ð ªA Õ Q Hs é > ß \ ¦· ú t ë ß 6 x HÕ ªX t O · § ú .
– l \ _ O ao ' r Û ¼% 7 • & F ³ Ä ºo HÄ ºo ú ¸ d t 3 w l t ë f ß ] X # QX <s ' Z s Û ¼\ ¦] X H ¦ 6 x ¦e . s כ r É ' Å _ 1 x p Ü © ¼ Ð8 ¹ ¤Z ¡ t# þ Q ¦e .
1.2
1.3
6 KT ' [9 cT S y VS.
ð ø ÇS m y ð
– Ó Âé > ß (view level): : ¤& £
ñ 6 x · ú ¦z · r X É <s ' Z s Û ¼_ { 9 Â Òì rë ` ß ¦ l Õ tô ü Ç . " f _ X <s ' Z s Û ¼ H# QÂ Ó\ ¦ | Ã 9 ºe .
•
{ 9 r Û ¼% _ 7 ë H] j& h – X <s ' _ × æ4 ¤$
õ í q { 9 a$ '
: ° í ú rX É <s ' # Q
{ 9 \ × æ4 ¤| cà ¨ ºe Ü ¼9, s M :ë H \ × æ4 ¤ aX ) <s ' " f Ð{ 9 u t · §` ú ¦Ã º ` e ¦÷ rë ß m $ / © Nç B 8 ß ¤ £ \ " f ¸z © q s .
• á Ô ÐÕ ªA b
ç # Q\ q Ä » – ü Óo t & é h > ß : z ´] j$ ½ © ¨ ¸((
{ 9 Q Hs ` כ ¦á Ô ÐÕ ªA Q\ > Æ Ò © oK ï r .) 1
– Ho 7 & é h > ß : { 9 ñ
& Ð
1.3.2
– Â Óé > ß : è á Ôà Ô? J# Q 6 x { 9 \ © " f Ð H > ß é
– < Xs ' Z s Û ¼_ ? /6 xs ë 7 ß ¤K á ] j ¸ × | æ 7 £ Ê Á(mapping cardinality) ¸ E-R s # QÕ ªÏ \ þ è qà ºe .
Ã ß Å Å ¹ Ñ ÷ W
– / @6 xà £ º: # Q > " h^ _ a> ' | ½ 9 Ë\ + _ K a| ' cà ¨ ºe H> h^ _ à º
• X <s ' Z s Û ¼ Hr ç s ß â ì2 §\ £ Õ ª? /6 xs ô Ç .
1.4.2
Ë4 ¾ å ] ù{ k ¢¨ |
• â «o (schema): ^ & h X <s ' Z s Û ¼_ [ O >
• ' > a + A þ ¸4 q(relational model) S rX É <s ^ ¦` ¦s 6 x X # <s ' ü <X <s ' _ a> ' \ ¦ ¸¿ º p · .
• ê >â «© >â U «(instance): : ¤& £
í ñ Hç \ ß X <s ' Z s Û ¼ \ $ ÷ © &# Qe H&
ñ Ð_ ¸ e
• ³F & V © o , 6 x÷ & H ¸4 qs S .
• Û ¼ Û ¼ Hr ç \ ß â ì2 §\ £ t ë Û ß ¼v HÕ ªX t O · § ú .
• ' > a + A þ ¸4 q S rY É U ï× ¼l ì Í ø ¸4 q_ S \ Vs . Y U ï ¼l × ì Í ø ¸4 qs S ê Í ø ¦&
ñ a+ ) AI þ _ Y U ï× ¼ н ¨$
í aX ) <s ' Z s Û ¼\ ¦[ " O
î H ¸4 qs S .
• á Ô ÐÕ ªA b ç
# Q\ q Ä »
• yY U ï× ¼ H# Q> h_ × 9 ¼(¢ ¸ H5 q$ Å
)Ü í ¼ н ¨
÷ í $ &# Qe .
– Û ¼v : Ã º_ &
_ ñ – Û ¼ Û ¼: á Ô ÐÕ ªÏ à þ º ' × æ: ¤& £
í ñ Hç \ ß Ã º_ ° כ ú
• ' > a + A þ ¸4 q S r E-R É ¸4 q_ S 0 AÆ Ò © o ¸4 q S Ð ¦Ã ^ ºe .
• Û ¼v HÆ Ò © oé > ß \ 6 §õ £ ° ú rÛ É ¼v rF > ô Ç .
KT 6 ' [9 cT Å# ¹ a
1.5
– Ó to ü & Û h ¼v
• < Xs ' Z s Û ¼ H 6 §¿ £ º t 7 xÀ á Ó_ # Q\ ¦] j Nô B / Ç .
– Ho 7 & Û h ¼v : × © æכ ¹ô ÇÛ ¼v s . – " fÚ ÔÛ ¼v :  Óé > ß _ Û ¼v Ð" fy Â Ó Õ ªÂ Ó\ ¦[ " O
î HÛ ¼v rF > ô Ç .
– L Pl ' aÇ a +¥ ># U a(DDL, Data Definition Language): Û ¼v \ ¦&
_ ñ ½ ÉM + : 6 xô Ç .
• ß ë Ó to ü & Û h ¼v K ¸7 o H & ¼ h Ûv \ ¦
½ â É + 9 כ ¹ \ Ü O ¼ Ó to ü & X h < s' 1 qn l w$
s í e ¦ô Ç .
1.4
– L Pl ' a ¿¼ Ð ¥ Ç ># U a(DML, Data Manipulation Language): X <s ' Z s Û ¼\ ¦| _ 9 ¦ t q Ì ½ ÉM + : 6 xô Ç .
6 KT ' [{ ¢¨ | 1.5.1
• X <s ' Z s Û ¼_ ½ ¨ ¸\ ¦< Xs ' ¸4 qs S ô Ç .
• DDL_ \ V
• X <s ' ¸q 4 S: X <s ' , < Xs ' _ © ñ a> ' , X <s ' _ _ p , { 9 a$ '
] í j ¸| 1 x` p ¦l Õ t ü l 0 A Ç> ô h¥ & Æ h ¸½ ¨_ 9½ | Ë + 1.4.1
KT 6 ' [X Ë8 N ý Å# ¹ a
create table account (account-number char(10), balance integer)
4 = kå Ë4 ¾ { ¢¨ | – A 0 DDL ë H © r account X É <s ^ ¦` ¦Ò t$ q
í ¦, <s X ' (data dictionary) ¢ ¸ HX <s ' n 7 Ðo (data directory) H: ¤Ã £ ºô Ç_ s ^ ¦` ¦ t q Ì ô Ç .
• > h^ a> ' ¸q 4 S(entity-relationship model) r> É h^ <> ü h^ ç _ ß a> ' \ ¦s 6 x # z ´[ j> \ ¦ ¸4 qa S A H~ ÓZ ½ s O . • y > h^ H5 q$ Å
_ í | 9 ½ ËÜ + ¼ Ðl Õ t ü a ) . \ V) r' É > ý a: > ý a ñ, ï Ó ß o
• < Xs ' \ H B j X <s ' (metadata) ¦ HX <s ' \ @ /ô ÇX <s ' l 2 ¤ a ) . \ V) _ s ¦_ ^ Û ¼v
• ' > a H# Q> h^ ç \ ß a$ '
` í ¦´ ô ú Ç . \ V) ¦ oõ Ì > ý a: { F 9 K a> '
• DDL_ ô Ç7 xÀ á Ó X <s ' $ x ©
& 9
_ ñ # Q(data storage and definition language)\ ¦s 6 x # X <s _ ' $ ½ © ¨ ¸ü <] X H~ ÓZ ½ ` O ¦t &
ô ñ Ç .
• > h^ | 9 ½ Ë: ° + ú r7 É xÀ á Ó_ h >^ _ ¸6 § £ • a> ' | 9 ½ Ë: ° + ú r7 É xÀ á Ó_ a> ' _ ¸6 § £
• < Xs ' Z s Û ¼_ { 9 a$ '
] í j ¸| ¸ DDL` ¦s x 6 # &
_ ñ ô Ç .
• X <s Z s Û ¼_ Ho 7 Û ¼v H E-R s # QÕ ªÏ ` þ ¦ s 6 x # r y & Ü h ¼ Ð ¸d oô Ç . 2
<Õ ªa > 1.1> E-R Ë s Q #Õ ªÏ _ þ \ V 6 KT ' [ ºc l X Å# ¹ a
1.5.2
1.6
• X <s ' ¸ _ á x 7À Ó
1.6.1
KT 6 ' [9 cT Þ Ó Ñ ÷ Þ Ó ß Ã Å' [@ _T
• X <s ' Z s Û ¼ 6 x _ 7 xÀ á Ó
– l r& >
ñ Ð Ò o
– 9 {ì Í ø 6 x : 6 x6 £ xá Ô ÐÕ ªÏ ` þ ¦: xK X <s ' s Z Û ¼\ ¦ 6 x Hq ë H
– D h&
ñ ÐÆ Ò – l r& >
ñ Ð ] j
– £ 66 x x á Ô ÐÕ ªÏ á þ Ô ÐÕ ªA Q: X <s ' Z s Û ¼ ¦ \ 6 x H6 x6 £ xá Ô ÐÕ ªÏ ` þ ¦> hµ Ï 1 H( Ó' É ë H
– l r& >
ñ ÐÃ º&
ñ • X <s ' ¸ # Q_ 7 xÀ á Ó
– p 0¸ x qô n Ç 6 x : 6 x6 £ xá Ô ÐÕ ªÏ ` þ ¦: xK X <s Z ' s Û ¼\ ¦ ] X H t · § ú ¦ X <s ' Z s Û ¼ # Q\ ¦f ] s X 6 x # X <s ' Z s Û ¼\ ] X H HX <s ' Z s Û ¼ ë H
– â
Ð (procedural) DML: Ï 6 x H # Q " X <s ' \ ¦# Qb G> Ò o½ Ét + t &
K ñ ô Ç . – n ¤¥ > > U (declarative) DML: \ r´ É ú Ðq ] X d DMLs 9 6 x H ¸f # Q" X < s ' \ ¦¶ " é Ht ë t ß &
ñ a ) .
• : r ì r$ % 3 o (OLAP, OnLine Analytical Processing) ¸½ ¨\ ¦ 6 x # X < s ' Z s Û ¼\ $ ÷ © &# Qe HX <s ' \ ¦ r$ ì 3 Hì r$ 3
•
+(query): &
ñ Ð Ò o` ¦כ ¹' A½ õ ÉM + : 6 x Hë H ©
– £ :à ¤ º 6 x : 0 x¸ p qô n Ç 6 x Ð" f : x& h <s X ' % o ~ Ód ½ õ r: É ¤Ã £ ºô ÇX <s ' Z Û s ¼6 x6 £ xá Ô ÐÕ ªÏ ` þ ¦> hµ Ï 1 H ë H
•
+# a(query language): DML × æ&
ñ Ð Ò o` ¦{ © { H # Q
• : ¤Ã £ ºô Ç6 x6 £ xá Ô ÐÕ ªÏ _ þ \ V: ( É Ó' t " ¶ é[ > O r Û ¼% 7 , ë H r Û ¼% 7
• | 9 _ # Q_ \ V select customer.customer-name from customer where customer.customer.id = ‘192-83-7465’
1.6.2
KT 6 ' [9 cT å ËP ¾
• < Xs ' Z s Û ¼ ao ' (DBA, DataBase Administrator)_ % ½ i É +
– 0 A| _ 9 ë H © r customer X É <s ^ ¦\ " f ¦Ì o Z d > 192-83-7465 ¦Ì o_ s 2 §` £ ¦ oô Ò Ç .
– Û ¼v &
_ ñ – $ ½ © ¨ ¸ü <] X H~ ÓZ ½ & O
_ ñ – ¼ Ûv x 9
Ó to ü & ½ h ¨ ¸Ã º&
: כ ñ ¹½ ¨ o
0 í $ x p Ó ¾ ` © ¦0 Aô ÇÃ º&
ñ
– 9 | _ _ s _ © _ s ^ ¦` ¦ Ò oK H
Ä â º ¸e . 1.5.3
KT 6 ' [9 cT Þ Ó Ñ ÷å ËP ¾
– X <s ' ] X H ¶ô Ý Ç0 Ae – » Ät Ðà º: Ñ \ þ , n O Û ¼ß ¼/ Nç B ß ao ' , X <s ' s Z Û ¼y r
« Ö Þ³ Ó z º§ q ; c" e6 KT ' [9 cT ± É¿ n R <
• , Cü <° ú r É ñÛ ¼à Ô # Q\ " f DML` ¦ 6 x H~ ÓZ ½ O
1.7
² v O Åå Ó ËP ¾
• à çw dc ñ 9¤ >(transaction): X <s ' Z s Û ¼6 x6 £ xá Ô Ð ªÏ Õ \ þ " f _ Ho 7 & l h 0 x` p ¦Ã º' H í ß t_ þ [ ¸e
– 6 x6 £ xá Ô ÐÕ ªÏ õ þ X <s ' Z s Û ¼ç \ ß ' ` s Û ¼] j/ N B – ñÛ ¼à Ô # Q\ ¦S X © # DML l 0 x` p ¦ í Ê < H~ ÓZ ½ O
• à Ô Ô ½ o _ כ ¹½ ¨ Ó: ACID ½ 3
– ¶ " é $
(atomicity): all-or-none כ í ¹½ ¨ Ó ½
– { 9 a$ '
(consistency): & í
S ñ $ X
כ í ¹½ ¨ Ó ½ – ¦w n $
(isolation): í ¦w n ÷ &# Qz ´' % ` i ¦M : < ü õ ° ú ô Ç .
– t 5 q$ Å
(durability): r í Û ¼% 7 \ ¸À Ó µ ÏÒ 1 t q # ¸X <s ' HÕ ª° `כ ú ¦Ä »t K ô Ç Hכ ¹ ½ ¨ Ó ½
• à Ô ½Ô o s r | c M ¨ : X <s ' Z s Û ¼ { 9 a$ '
í e H I © % i = Qè å Ê ß ê\ ¸ X <s ' Z s Û ¼ H 9 { a$ '
e í H I © s # Q ô Ç . Õ ª Q z ´' × æç ß \ H{ 9 a$ '
í I © u ´Ã ºe . s M כ :ë H\ r Û ¼% 7 s z ´J ë H] j µ ÏÒ 1 t½ q Éà + ºe . Ð: x à Ô ½Ô o s ´ ' z ÷ & H ¸ ×\ æ × æé ÷ ß & à Ô Ô ½ o s à º ' ÷ &l I © ÐX <s ' Z s Û ¼\ ¦÷ &[ t 9 ô Ç . s ` כ ¦
A ¡ ´Ä ©(failure recovery) ô Ç .
(b) 3-> 8 x½ £ ¨ ¸
<Õ ªa > 1.2> 2-> Ë 8 xõ £ 3-> 8 x½ £ ¨ ¸ 1.8.2
Ç8 m ù ý% iP M
• | _ 9 % o l _ ½ ¨$
כ í ¹ è – DDL ê >' aè «h ' a: DDL ë H ` © ¦K $ 3 # Õ ª \ כ 9 כ ¹ô Ç&
_ ñ \ ¦X <s ' \ l 2 ¤ô Ç .
6 KT ' [9 cT S y ð º
• l 0 x& p h a& ' \ h " fX <s ' Z s Û ¼_ × æכ ¹½ ¨$
כ í ¹ è
– DML
É
a: DML ë H ` © ¦| _ 9 Ã º' p ' s s K ½ ÉÃ + ºe H"
§ î
Ü î ¼ н ¨$
ô í Ç .
– $ © ao '
–
+ Ê Á j ß dë >(query evaluation engine): DML (
{ 9 Q ë ß H 0 AY U6 î \
"§
` î ¦z ´ ô ' Ç .
– | 9 _ % o l 1.8.1
(a) 2-> 8 x½ £ ¨ ¸
• î #
' ] j# Q/1 xr l $
] í j# Q ao ' (concurrency control manager): # Qà Ô ½Ô o s #
î ' Ü ¼ Ðz ´' ÷ & # Q ¸X <s ' Z s Û ¼ { 9 a$ '
í I © \ ¦Ä »t ½ Éà + º e ¸2 ¤ H% ½ i É` + ¦ô Ç .
1.8
$ [X så ê ËP ¾
• $ © ao ' : X <s ' Z s Û ¼\ $ ÷ © & He H 0 AY U6 X \ <s ' ü <6 x6 £ xá Ô ÐÕ ªÏ ¢ þ ¸ H| 9 _ ç \ ß ' ` s Û ¼\ ¦j ]/ NK B ï r . $ © ao ' H DML H¸ ë [ ú t` þ ¦ 0 AY U 6 \
{ r 9 Û ¼% " 7
§ î
Ü î ¼ Ð Ë ¨ # Qï r .
1.8.3
« Ö Þ³ Ó z º§ q º
• Ð: x9 t þ s à Ô-" f! Q½ ¨ ¸\ ¦ 6 xô Ç . • X <s ' Z s Û ¼6 x6 £ xá Ô ÐÕ ªÏ ½ þ ¨ ¸_ 7 xÀ á Ó – 2-> 8 x½ £ ¨ ¸(two-tier architecture): 6 x6 £ xá Ô Ð ªÏ Õ s þ 9 t þ s à Ô( É Ó' \ Å © Ò HÂ Ò rõ ì " f! Q\ Å © Ò H Òì rÜ ¼ Ð ¾ º# Qt 9, 9 t þ s à Ô( É Ó' \ Å © Ò H Òì r r É <s X ' Z s Û ¼\ ¦f ] ] X X Hô Ç .
• $ © ao ' _ ½ ¨$
כ í ¹ è – ¶ Ýô Ç0 Ae õ Á º $
í ao ' – à Ô ½Ô o ao ' –
{ 9 ao ' : n Û ¼ß ¼/ Nç B ½ ß É{ + õ © n Û ¼ß ¼\ $ | © c& ¨
ñ Ð_ X <s ' ½ ¨ ¸\ ¦ ao ' ô Ç .
– 3-> 8 x½ £ ¨ ¸(three-tier architecture): s ½ ¨ ¸ H 2-> 8 x½ £ ¨ ¸ü <² o ú 9 t þ s à Ô( É Ó' \ Å © Ò H Òì r rX É <s ' Z s Û ¼\ ¦f ] X X ] H t · § ú ¦6 x6 £ x" f! Q\ ¦: xK X <s ' Z Û s ¼\ ¦] X Hô Ç .
– ! Q( ao ' : n Û ¼ß ¼$ © u © РÒ' X <s ' \ ¦ Ø ¦ # Ò Ål % 3 u © \ & F h ¦, Å Ò l % 3 u © \ # Q X " <s ' \ ¦H r ½ Ét + &
ñ H% ½ i É` + ¦ô Ç .
• 6 x6 £ x " f! Q\ ë q ß Ý ¼m Û ¼ Ðf s ½ ¨ ³ & &# ÷ Qe . • q t m Û ¼ Ðf r # É Q " ' 1 x` l ¦ # Q* ô Ç ¸| \ " fà º ' ÷ & Ht \ ¦ &
ô ñ Ç .
• $ © ao ' Hs \ ¦0 AK 6 §X £ <s ' ½ ¨ ¸\ ¦½ ¨ ³ô & Ç . – X <s '
{ : X 9 <s ' Z s Û ¼ ^ \ ¦$ © HX < 6 x a ) .
• © ½ ¸ H 6 x6 £ xá Ô ÐÕ ªÏ s þ R Û6 / x6 £ x_
Ä â º\ H 3-> 8 x½ £ ¨ ¸ 8& ½ h Ëô + Ç .
– X <s ' : X <s ' Z s Û ¼½ ¨ ¸\ @ /ô ÇB j X <s ' \ ¦$ © HX < 6 x a ) . : ¤y £ Û ¼ v $ © a ) . – Ò o (index): : ¤& £
ô ñ Ç° `כ ú ¦t X <s ' Ó3 ½ q l \ Ø Ô> ] H X l 0 Aô Ç&
ñ Ð $ © a ) . 4
c °2003, sangjin@kut.ac.kr
â&#x20AC;˘ Ă&#x2014; Ì° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź5 Ăş q$ Ă&#x2026;
: Â&#x201C; Ă ÂŚĂ&#x152; o_ Â? Â&#x201E; o  ùß <°  s Ăş Â&#x152; # Q> h_ ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ | Ă&#x192; 9 Âşe Â? Â&#x201D; H5 q$ Ă&#x2026;
Ă Ă&#x2014; Ì° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź5 Ăş q$ Ă&#x2026;
_ Ă
Ă&#x201E; â Âş\  Â? H | 9 Ă&#x192; Âşe Â? Â&#x201D; HĂž j@ / Ă&#x192; Âş Ăž j$ Ă&#x192; Âş\ ÂŚt &
½ Ăą Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
2T 6 ' _9 KT Ă&#x192; Â&#x2018;: ~ ÂĄq ç { ÂĄĂ&#x2C6; Â&#x2018; 02
â&#x20AC;&#x201C; Ă&#x2039; Ă&#x201A;Â&#x2013; ÂżĂ&#x203A; S ¢ Ă&#x2013; ´Ă&#x2026; 4 (derived attribute): Â&#x203A; ] aÂş ' e Â? Â&#x201D; H Â? r5 Ă&#x2030; q$ Ă&#x2026;
s Ă > h^ Â&#x2030;Â&#x2013; Ă?Ă&#x201A; Ă&#x2019;' Ă&#x201E; ÂťÂ&#x2022; ¸| cĂ&#x192; ¨ Âşe Â? Â&#x201D; H 5 q$ Ă&#x2026;
Ă
A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
â&#x20AC;˘ Ă&#x; ĂŤÂ&#x20AC; Â&#x2013; Â&#x2022;5 Â? q$ Ă&#x2026;
s à ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ t t ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; V ° , â&#x20AC;Ť(×&#x203A;â&#x20AC;Źnull vaĂş lue)` ÂŚ Â&#x201D; .
Part I. Data Models
â&#x20AC;˘ V ° , â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ t > á &Â? Hs Ă&#x201E; Âť
= 4 kĂĽ Ă&#x2039;4 ž { ¢¨ |
2 2.1
Ă&#x201E; M Ă&#x2DC;4 ] G Â&#x203A; Ă&#x2C6;
2.1.1
4 = kĂ&#x2030; Ăš mÂś ÂĽ Â?
â&#x20AC;&#x201C; & 6 h x½  Ă&#x2030;° + â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş \ 6 O §(not applicable) ÂŁ â&#x20AC;&#x201C; ° â&#x20AC;Ť_×&#x203A;â&#x20AC;Ź Ăş Â&#x201D; rF > # Â&#x152;Ă&#x201A; Ă&#x2019;\ ÂŚÂ&#x2014; ¸\ ÂŚ
Ă&#x201E; â Âş(not known) â&#x20AC;&#x201C; ° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş Â&#x201D; rF > t ĂŤ Â&#x2013;° Ă&#x; â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚÂ&#x2014; ¸\ ÂŚ
Ă&#x201E; â Âş(missing)
â&#x20AC;˘ 5 W Â&#x2026;(entity): Â? rÂ&#x2014; Ă&#x2030; ¸Â&#x17D; H Ăľ â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ½ ¨Z á > &Â? HĂ&#x201E; Âť, Ă Âş+ A Ăž _ Ă&#x201C; t Ăź
2.1.2
Ă&#x2039;4 ž ĂĽ Ă&#x2030; Ăš mÂś ÂĽ Â?
â&#x20AC;˘ ÂŽ Â&#x201D;N ¸ (relationship): # Â&#x152; Q> h^ Â&#x2030; s _ Â&#x192; Â&#x203A; a$ '
Ă
â&#x20AC;˘ > h^ Â&#x2030;Â? H5 q$ Ă&#x2026;
[ Ă t_ Ăž | 9 ½ Ă&#x2039;` + ÂŚ t 9, s | 9 ½ Ă&#x2039;_ + Ă&#x201A; Ă&#x2019;ĂŹ r 9 | ½ Ă&#x2039;Â&#x201C; + r> Ă&#x2030; h^ Â&#x2030;\ ÂŚÂ&#x201C; ÂŚĂ&#x201E; Âť > d Z Â&#x201D; ½ > Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;˘ ¸ ÂŽN Â&#x201D; Â&#x2122;
T Âź(relationship set): ° Ă&#x2019;  Â&#x201C; Ăş r7 Ă&#x2030; xĂ&#x20AC; ĂĄ Ă&#x201C;_ Â&#x203A; a> ' [ t Ăž _ | 9 ½ Ă&#x2039; +
â&#x20AC;˘ 5 W Â&#x2026;
T Â&#x2122; Âź(entity set): ° Ă&#x2019;  Â&#x201C; Ăş r5 Ă&#x2030; q$ Ă&#x2026;
` Ă ÂŚ t Â? H°  Â&#x201C; Ăş r Ă&#x2030; Ă&#x201E; Âť+ A_ Ăž > h^ Â&#x2030;[ Ăž t_ Â&#x2014; ¸6 § ÂŁ
â&#x20AC;˘ ' Â&#x203A;> a | 9 ½ Ă&#x2039;_ + + Ad Ăž Â&#x201D; oÂ? a & )
_ Ăą : Â&#x203A; a> ' | 9 ½ Ă&#x2039;Â&#x201C; + r n(â&#x2030;Ľ Ă&#x2030; 2)> h_ > h^ Â&#x2030;| 9 ½ Ă&#x2039;(Ă&#x2014; + ĂŚ4 ¤ 0 Â&#x; x) p s _ 6 §þ ÂŁ °  ú Â&#x201C; rĂ&#x192; Ă&#x2030; ÂşÂ&#x2020; Ă&#x2020;& < Â&#x203A; h a> ' ` Ϋ Â&#x2DC;Ă´ Ăş Ă&#x2021; . E1 , . . ., En s > h^ Â&#x2030;| 9 Ă&#x2039;s + ½ Â&#x20AC; Â&#x203A; a> ' | ½ 9 Ă&#x2039; RÂ&#x201C; + r Ă&#x2030; 6 §þ ÂŁ °  Â&#x201C; Ăş r| Ă&#x2030; 9 ½ Ă&#x2039;_ + Ă&#x201A; Ă&#x2019;ĂŹ r 9 | ½ Ă&#x2039;s + .
â&#x20AC;˘ > h^ Â&#x2030;| ½ 9 Ă&#x2039;_ + Ăź @Â&#x192; (extension): > h^ Â&#x2030;| ½ 9 Ă&#x2039;` + ÂŚs Ă&#x20AC; Ă&#x2019; Hy Â? Â&#x2022;> Â&#x152; hZ > > h^ Â&#x2030; â&#x20AC;˘ > h^ Â&#x2030;| ½ 9 Ă&#x2039;Â&#x201C; + r" Ă&#x2030; fÂ&#x2013; Ă?Ă&#x2014; ĂŚ^ ?| o cĂ&#x192; ¨ Âşe Â&#x201D; . \ V) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;_ Â&#x2014; ¸ Hf Â&#x17D; Âś Â&#x201D; " ĂŠĂľ Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;_ Â&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o Â?
{(e1 , . . . , en ) | e1 â&#x2C6;&#x2C6; E1 , . . . , en â&#x2C6;&#x2C6; En }
â&#x20AC;˘ 4 ¢Ă&#x2026; ´ (attribute): y ] Â&#x2022;> Â&#x152; h^ Â&#x2030; t m Â? Hy Â&#x2022;> Â&#x152; h^ Â&#x2030;\ ÂŚ[ O
Î " � H: ¤$ £
Ă
# Â&#x152;l " f (e1 , . . . , en )Â&#x201C; rÂ&#x203A; Ă&#x2030; a> ' s .
â&#x20AC;&#x201C; h >^ Â&#x2030;| ½ 9 Ă&#x2039; + \e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; H> h^ Â&#x2030;Â? H°  Â&#x201C; Ăş r5 Ă&#x2030; q$ Ă&#x2026;
` Ă ÂŚ t y Â&#x2022;> Â&#x152; h^ Â&#x2030;Â? Hy Â&#x2022;5 Â&#x152; q$ Ă&#x2026;
\ Ă Â @ /K Â? r° Ă&#x2030; â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ | Ă&#x192; 9 Âşe Â&#x201D; .
â&#x20AC;&#x201C; s M : > h^ Â&#x2030; | 9 ½ Ă&#x2039; E1 , . . ., En Â&#x201C; + r Â&#x203A; Ă&#x2030; a> ' | 9 ½ Ă&#x2039; + R\  ½ Ă&#x201D;# Ă&#x2021; b(participate)Ă´ Ă&#x2021; Â&#x201C; ÂŚĂ´ Ă&#x2021; . â&#x20AC;˘ Â&#x203A; a> ' Â&#x201C; Ă&#x203A; ÂźÂ&#x2021; Ă&#x203A; Âź: Â&#x203A; a> ' | ½ 9 Ă&#x2039;_ + : ¤& ÂŁ
Ă´ Ăą Ă&#x2021;" ÂśÂ&#x2122; ĂŠ è
â&#x20AC;&#x201C; Ă&#x2026; 5$ q
_ Ă Â&#x2013; ÂżR cĂŞ >(domain) < Ă&#x160;Â&#x201C; r° Ă&#x2030; â&#x20AC;Ť|×&#x203A;â&#x20AC;Ź Ăş 9 ½ Ă&#x2039;(value + set): y Â&#x2022;5 Â&#x152; Ă&#x2026; q$
s Ă | 9 Ă&#x192; Âşe Â? Â&#x201D; H° â&#x20AC;Ť_×&#x203A;â&#x20AC;Ź Ăş | 9 ½ Ă&#x2039; +
â&#x20AC;˘ Â&#x2026; T ] Âť(role): Â&#x203A; Ă&#x2019; a> ' \ Â " f> h^ Â&#x2030; Â? ' Â&#x; Â? Hl 0 x p
â&#x20AC;˘ y Â&#x2022;> Â&#x152; h^ Â&#x2030;Â? H (5 q$ Ă&#x2026;
, X Ă <s ' ° â&#x20AC;Ť_)×&#x203A;â&#x20AC;Ź Ăş Â&#x160; Â&#x153;_ Š | ½ 9 Ă&#x2039;Ă&#x153; + ÂźÂ&#x2013; Ă?Âł Ă° Âł| & Â&#x2030; cĂ&#x192; ¨ Âşe Â&#x201D; .
â&#x20AC;˘ Â&#x2DC; Ă?: x% Â&#x; ½ i Ă&#x2030;Â&#x201C; + rÂ&#x203A; Ă&#x2030; a> ' | ½ 9 Ă&#x2039;` + ÂŚ: xK Â&#x; ~ > 1 ¡ Â&#x2DC;Ă&#x192; Ăş Âşe Ă&#x153; Â&#x201D; Âź Ă&#x2122; ÂźÂ&#x2013; Ă?Âł Ă°r t ¡ §t Ăş ĂŤ Â&#x2013;Ă´ Ă&#x; Ă&#x2021;> h^ Â&#x2030; # QÂ&#x2039; Â&#x203A; " a> ' | 9 ½ Ă&#x2039; + \  " f# Â&#x152; Q% ½ i Ă&#x2030;` + Œ½ Ă&#x2030; +
Ă&#x201E; â Âş\  Â? H% ½ i Ă&#x2030;` + ÂŚÂł Ă°r Ă´ Ă&#x2021; . s X > O Ă´ Ă&#x2021;Ă&#x152; o^ Â? Â&#x2030; # Â&#x152; Q% ½ i Ă&#x2030;` + ÂŚ Â&#x20AC; F ) & Â&#x203A; h a> ' 9 | ½ Ă&#x2039;(recursive relationship set)s + Ă´ Ă&#x2021; .
â&#x20AC;˘ 5 q$ Ă&#x2026;
_ Ă Ă&#x201E; Âť+ A Ăž â&#x20AC;&#x201C; 5 Ă' ¢ K ´Ă&#x2026; 4 (simple attribute) vs. ] ´T ÂĄ Ÿ¢ Ă&#x2019; ´Ă&#x2026; 4 (composite attribute) ] â&#x20AC;˘ Ă&#x; ĂŠĂ Â&#x2013; H5 q$ Ă&#x2026;
: 8 Ă s Â&#x153; Š Ă? tĂ&#x192; Ăź Âş\ Â? O H5 q$ Ă&#x2026;
Ă â&#x20AC;˘ 4 ¤+ Â&#x; ½Ă&#x2026; Ă&#x2039; q 5$
: # Ă Â&#x152; QĂ&#x201A; Ă&#x2019;ĂŹ rĂ&#x153; ÂźÂ&#x2013; Ă? Ă? tĂ&#x192; Ăź Âşe Â? Â&#x201D; H 5 q$ Ă&#x2026;
, \ Ă V) | Ă? Ă&#x192; s2 §, Ă&#x2026; ÂŁ Ă&#x2019;Â&#x2122; è
â&#x20AC;˘ ' Â&#x203A;> a Â&#x2022; ¸ Â&#x203A; a> ' \ ÂŚ [ " O
ĂŽ Â? H 5 q$ Ă&#x2026;
(descriptive attriĂ bute)` ÂŚ | Ă&#x192; 9 Âşe Â&#x201D; .
4½ ¤ Â&#x; Ă&#x2039;5 + q$ Ă&#x2026;
Ă&#x2030; Ă r Â&#x201C;Â&#x203A; aÂş ' e Â? Â&#x201D; H5 q$ Ă&#x2026;
` Ă ÂŚĂ&#x2022; ÂŞĂ&#x2019; ¨Ă&#x153; ÂźÂ&#x2013; Ă?Ă&#x201C; Ăź ÂŚX ` <Ă&#x201E; Âť6 x  .
â&#x20AC;˘ Âż Âş> h^ Â&#x2030;| ½ 9 Ă&#x2039;s + Â&#x203A; aÂş ' Â? aÂ&#x203A; ) a> ' | ½ 9 Ă&#x2039;` + ÂŚs Â&#x201D; Â&#x203A; a> ' | 9 Ă&#x2039;(binary relationship set)s + ½ Ă´ Ă&#x2021; . Â&#x2DC; Ă?: xÂ&#x203A; Â&#x; a> ' | 9 Ă&#x2039;Â&#x201C; + ½ rs Ă&#x2030; Â&#x201D; Â&#x203A; a> ' | 9 ½ Ă&#x2039;s + t ĂŤ Â&#x2013;Âż Ă&#x; Âş> h^ Â&#x2030;| 9 ½ Ă&#x2039;s + Â&#x153;s Š Â&#x201A; Ă?# Ă&#x192; Â&#x152; Â? HÂ&#x203A; a> ' Â&#x2022; ¸e Â&#x201D; .
â&#x20AC;&#x201C; 5 Ă
G Â&#x2122; ê¢ Âą ´Ă&#x2026; 4 (single-valued attribute) vs. ]
ÂťG ä ê¢ Âą ´Ă&#x2026; 4 (multivalued attribute) ]
â&#x20AC;˘ ' Â&#x203A;> a | ½ 9 Ă&#x2039;\ +  Â&#x201A; Ă?# Ă&#x192; Â&#x152; Â? H> h^ Â&#x2030;| ½ 9 Ă&#x2039;_ + Ă&#x192; Âş\ ÂŚÂ&#x203A; a> ' | 9 Ă&#x2039;_ + ½ Ă&#x160; Ă (degree) Ă´ Ă&#x2021; .
â&#x20AC;˘ Ă&#x; ĂŠ{ Â&#x2013; 9 ° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź5 Ăş q$ Ă&#x2026;
: Â&#x161; à ¸f Â&#x201D; _ ° â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂŤ Ăş Â&#x2013;` Ă&#x; ÂŚ t H5 Â? q$ Ă&#x2026;
Ă 1
2.3
• > h^ | ½ 9 Ë? + /\ e Hy > h^ \ ¦1 q: l ¤ £ > d Z ½ > É + Ã ºe # Q ô Ç . " f> h^ | ½ 9 Ë? + /\ e H# Q ¿ " º> h^ ¸ ¸ H5 q$ Å
_ í ° כs ú ° ` ú ¦Ã º\ O .
• o (key): > h^ [ t` þ ¦" f н ¨Z ½ > Éà + ºe H5 q$ Å
[ í t_ þ 9 | ½ Ë +
(a) { @ 9 /{ 9
2.3.1
(b) { 9 @ /
(c) @ /{ 9
• K Ã º( v s s ` כ ¦ í Ê < H5 q$ Å
_ í | 9 ½ Ë + r É Ó ½ Ã © º( v a ) .
• Ñ ñ ×o (candidate key): à º( v s " fÕ ª _ כ # Q "  Òì r| 9 ½ Ë + ¸Ã º( v | cà ¨ º\ O Hv – minimal key not minimum key • Ì Áo (primary key): Ê ê Ðv × æ\ X <s ' Z s Û ¼ > O [ > h^ \ ¦d Z > l 0 Aô Ç~ ÓZ ½ Ü O ¼ Ð × þ Çv ô
(d) @ /
<Õ ªa > 2.1> @ Ë /6 xà £ º
2.2
gW < l d ºü Å g
2.2.1
6 « Ö ¤
4 = kÉ ù m¶ ¥
• Ê Á( xo (super key): > h^ \ ¦> h^ | ½ 9 Ë\ + " f1 q: l ¤ £ > d Z K > × ¦Ã ºe H ¢ ¸ H# Q> h_ 5 q$ Å
í _ | 9 ½ Ë +
W
• v H> hZ > > h^ \ _ K &
÷ ñ & H כ r É m ¦> h ^ | 9 ½ Ë\ + _ K &
ñ a ) . • $ õ © | _ 9 % o _ ´ òÖ ¦$
` í ¦0 AK Å Òv H° כs ú ¸ ú t · § ú H Ü כ ¼ Ð × K þ ô Ç .
• 7 £ Ê Á(mapping cardinality): a> ' | 9 ½ Ë` + ¦: xK r> É h^ ü < aº ' | cà ¨ ºe H> h^ _ à º
– ¶ { ú 9 r ° ú rÅ É Òv \ ¦ > h^ e Ht K ô Ç . – Å Òv HV ° , `כ ú ¦ | 9 Ã º\ O .
• > h^ | 9 ½ Ë Aü + <Bç \ ß s a> ' | 9 ½ Ë R_ + @ /6 x £ Ã º_ 7 xÀ á Ó 2.3.2 – 9 {@ /{ : A_ 9 ô Çh >^ Hþ j@ /ô Ç B_ ô Ç> h^ < ü a÷ ' &9, B_ ô Ç> h^ ¸þ j@ /ô Ç A_ ô Ç h^ > ü < a ' a ) .
Ë4 ¾ å É ù m¶ ¥
• > h^ | ½ 9 Ë E1 , . . ., En s + Ð# à H a> ' | ½ 9 Ë Rs + e ¦, P K(Ei ) H Ei _ Å Òv \ ¦ p · ¦ . ¢ ¸ô Ç ¸ H> h^ | 9 ½ Ë_ + Å Òv \ ¦½ ¨$
í H5 q$ Å
s í 2 §s £ × æ4 ¤÷ &t · § ú ¦, y > h^ a> ' \ ô Ç ë ß Ð Ã # ô Ç ¦ .
– 9 {@ / : A_ ô Ç> h^ He _ _ Ã º(0 ¢ ¸ HÕ ª s )_ © B> h^ ü < a÷ ' &t ë B_ ß ô Ç> h^ Hþ j@ /ô Ç A_ ô Çh >^ ü < a ' a ) .
– ' > a | ½ 9 Ë Rs + 5 q$ Å
` í ¦ t t · §Ü ú ¼ R_ y a> ' H 6 §\ £ _ K d Z > a ) .
– @ /{ : A_ 9 ô Çh >^ Hþ j@ /ô Ç B_ ô Ç> h^ < ü a÷ ' &t ë , B_ ß ô Ç> h^ He _ _ Ã º(0 ¸ ¢ HÕ ªs )_ © A> h^ ü < a ' a ) .
P K(E1 ) ∪ · · · ∪ P K(En )
– @ / : A_ ô Ç> h^ He _ _ Ã º(0 ¢ ¸ HÕ ª s )_ © B> h^ ü < a÷ ' &9, B_ ô Ç> h^ ¸ _ e _ Ã º(0 ¸ ¢ HÕ ªs )_ © A> h^ ü < a ' a ) .
– ' > a | 9 ½ Ë Rs + a1 , . . ., am ` ¦5 q$ Å
Ü í ¼ Ð t 6 §õ £ ° ú r5 É q$ Å
_ í | 9 ½ Ës + y a> ' \ ¦d ô > Z Ç . P K(E1 ) ∪ · · · ∪ P K(En ) ∪ {a1 , . . . , am }
2.2.2
Y p# c b< gW l d ºü Å g
– 0 A¿ º
Ä â º ¸¿ º a> ' | ½ 9 Ë R_ + à º( v H 6 §õ £ ° ú .
• ¦W > ½ Ô (total participation): E_ Ç ¸ H> h^ a> ' | 9 ½ Ë R\ + & # h Q ¸ô Ç a> ' \ Ð# Ã H
Ä â º
P K(E1 ) ∪ · · · ∪ P K(En )
• É Ù& ½ P Ô (partial participation): E_ Ç { 9 Â Ò> h^ ß ë a> ' | 9 ½ Ë R\ + Ð# Ã H
Ä â º
• 5 q$ Å
_ í s 2 §s £ × æ4 ¤ a ) 5 q$ Å
_ í s 2 §` £ ¦F &
ñ _ K ô Ç . 2
• > h^ # Q a> ' \ Ð# Ã > h^ | ½ 9 Ës + 2 §@ £ / \ % ½ i És + 2 §` £ ¦ 6 x # 5 q$ Å
_ í s 2 §` £ ¦F &
ñ _ ô Ç .
• ' > a | ½ 9 Ë_ + Å Òv _ ½ ¨ ¸ H a> ' | ½ 9 Ë_ + @ /6 xà £ º \ _ K &
ñ a ) .
– 9 {@ /{ : 9 Ð# à > h^ | 9 ½ Ë× + æ# QÖ ¼> h^ | 9 ½ Ë + Å _ Òv ¸ a> ' | ½ 9 Ë_ + Å Òv a ) .
– 9 {@ / , @ /{ : 9 \ K { © H> h^ | 9 ½ Ë_ + Òv Å a> ' 9½ | Ë_ + Å Òv a ) .
• s a> ' m ¦/ @6 xà £ º] j ¸| s \ Ü O ¼ Ð# à H ¸ H> h^ | ½ 9 Ë_ + Å Òv _ ½ Ë| + ½ 9 Ës + Ä » 9 { ô Ç a> ' | 9 ½ Ë_ + Å Òv a ) .
2.4.1
4 = kÉ ù m¶ ¥ vs. ×V Ò Ë R
– · 4 ÿ 2. 6 §õ £ ° ú r[ É j> h_ a> ' | 9 ½ Ë` + ¦ ß ë H .
– Å 5$ q
\ í @ /K # Q&
ñ Ð\ ¦Ä »t ¦z · # Q> h^ ° ú r5 É q$ Å
° í `כ ú ¦/ NÄ B » 5 q$ Å
í ¼ Ü Ð 6 x H כ Ð > h^ | 9 ½ ËÜ + ¼ Ð 6 x H s כ | Ðf à .
• RA : Eü <Aç \ ß a> ' \ ¦ ? / H a> ' ½ 9 | Ë + – R_ y a> ' (ei , ai )\ ¦ RA \ Æ Ò ô Ç . • RB : Eü <Bç \ ß a> ' \ ¦ ? / H a> ' ½ 9 | Ë + • RC : Eü <C ç \ ß a> ' \ ¦ ? / H a> ' ½ 9 | Ë +
• > h^ | ½ 9 Ë_ + Å Òv \ ¦ r> É h^ | ½ 9 Ë_ + 5 q$ Å
Ü í ¼ Ð 6 x H כ r É | Ðf à t · § ú . s
Ä â º\ H a ' > | 9 ½ Ë` + ¦s 6 xK ô Ç . • > h^ | ½ 9 Ë_ + Å Òv \ ¦ a> ' | 9 ½ Ë_ + 5 q$ Å
Ü í ¼ Ð 6 x H כ r¸ É 3 ú w l a ) s כ . s כ r É a> ' | 9 ½ Ë + r É Ð Ã # > h^ | 9 ½ Ë_ + Å Òv \ ¦ Ê» < ¤& ¡ Ü h ¼ Ð _ 5 q$ Å
í Ü ¼ Ð t ¦e l M :ë Hs .
• ¸ H n- Ó ½ a> ' | ½ 9 Ë + r# É Q> h_ s a> ' | 9 ½ Ë + Ü ¼ Ð@ /^ ½ Éà + ºe t ë s ß X > O H s כ Ó ½ © | Ðf à ô Ç כ r É m .
4 = kÉ ù m¶ ¥ vs. å Ë4 ¾ m ù¶ É ¥
– ' > a | ½ 9 Ë` + ¦ ? /l 0 AK D h\ v> ë ß H> h ^ | ½ 9 Ë_ + y > h^ \ ¦d Z > l 0 Aô ÇD h Ðî r 5 q$ Å
` í ¦ë [ ß t# þ Q ô Ç . s 5 q$ Å
í õÆ Ò Ð 9 כ ¹ô Ç a> ' | ½ 9 ËM + :ë H\ [ > O 4 ¤¸ K ú t ¦ $ כ © ¹½ ¨ Ós ½ 7 x ô £ Ç .
• > h^ | 9 ½ Ë@ + / \ s | ½ 9 Ë` + ¦# Q " a> ' | ½ 9 Ë_ + 5 q Å
Ü í $ ¼ Ð 6 x½ ÉÃ + ºe . ª Õ Q ë [ ß t# þ Q a> ' | 9 Ës + ½ { @ 9 /{ 9 a> ' m s כ r& É ] h ô X Ç~ ÓZ ½ O s m . Õ ªs Ä » H 6 §õ £ ° ú .
– n- Ó ½ a> ' | 9 ½ Ë + r# É Q> h_ s a> ' | 9 ½ Ë + ¦ ` 6 x % ` i ¦M : Ð # Q " a> ' \ # Q> h ^ Ð# Ã ô Ç H s כ "
S î X .
– X <s ' _ × æ4 ¤Ü ¼ Ð ô Ç$ / © Nç B z ß q © – < Xs ' _ × æ4 ¤Ü ¼ Ð ô Ç{ 9 a$ '
0 í AC 0 x p
í $
– n- Ó ½ a> ' \ e H] j ¸| ` ¦s a> ' \ ? / H s כ # Q 9Ö ¦Ã ºe .
• > h^ ç \ ß © ñ 6 x ¦ ` ? / H&
ñ Ð H a> ' | 9 ËÜ + ½ ¼ Ð ¸q 4 Sa A H s כ | Ðf à . 2.4.3
– · 4 ÿ 1. a> ' | ½ 9 Ë R` + ¦> h^ | ½ 9 Ë E + Ð õ H . s M : Rs 5 q$ Å
` í ¦ t s 5 q$ Å
í r E_ É 5 q$ Å
s í a ) . ¢ ¸ô Ç 9 כ ¹ E_ y > h^ \ ¦ ½ ¨Z ½ > Éà + ºe H: ¤Ã £ ºô Ç5 q$ Å
` í ¦ë ß H . R_ y a> ' (ai , bi , ci )\ @ /K E\ D h Ðî r> h^ ei \ ¦Æ Ò ô Ç .
• × æ° כ5 ú q$ Å
vs. > í h^ | ½ 9 Ë +
2.4.2
<Õ ªa > 2.2> 3 Ë Ó ½ a> ' \ ¦# Q> h_ s a> ' Ð Ë ¨ ~ H ÓZ ½ O
– @ / : Ð# Ã > h^ | ½ 9 Ë_ + Å Òv _ ½ Ë| + 9 ½ Ës + a> ' | ½ 9 Ë_ + Ò Åv a ) .
Ç4 r כ À ØX X È ì
• s a> ' | 9 ½ Ë\ + " f@ /6 xà £ º\ r É a> ' | 9 ½ Ë_ + Å Òv
2.4
2.4.4
T à à Åå Ë4 ¾ É ù m¶ ¥ vs. n-] §å Ë4 ¾ ù ɶ m ¥
Ë4 ¾ å ×V Ò Ë8 R ý üV
• n- Ó ½ a> ' | 9 ½ Ë + r# É Q> h_ s a> ' | 9 ½ ËÜ + ¼ Ð è qà ºe .
• ' > a _ @ /6 xà £ º H a> ' 5 q$ Å
_ í 0 Au \ %
ò Ó` ¾ ¦ï r .
• n(> 2)- Ó ½ a> ' | 9 ½ Ë` + ¦# Q> h_ s a> ' | 9 ËÜ + ½ ¼ Ð Ë ¨ H~ ÓZ ½ : \ O V) > h^ | 9 ½ Ë A, B, C + Ð Ã # H n = 3 a> ' | 9 ½ ËR +
• 9 { @ /{ 9 a> ' | ½ 9 Ë¢ + ¸ H{ @ 9 / a> ' | 9 ½ Ë_ +
Ä â º \ a> ' _ 5 q$ Å
í r É Ð# Ã H> h^ | ½ 9 Ë_ + 5 q$ Å
Ü í ¼ Ð[ & O
½ ñ ÉÃ + ºe . 3
• 9 { @ /{ 9 { 9
Ä â º\ H Ð# Ã H# QÖ ¼> h^ | 9 ½ Ë_ + 5 q$ Å
Ü í ¼ Ð 6 x½ ÉÃ + ºe t ë { ß 9 @ / { 9
Ä â º\ H \ K { © H> h^ | 9 ½ Ë_ + 5 q$ Å
Ü í ¼ Ðë ß 6 x½ É + Ã ºe .
2.6
• » Ðø È 5 5 W
T ¼(weak entity set): Å Ò Òv \ ¦+ A$ þ
½ í É + Ã ºe HØ æì rô Ç5 q$ Å
` í ¦° ú ¦e t · § ú H> h^ | 9 ½ Ë + • " × ø 5 5 W
T ¼(strong entity set): Å Ò Òv \ ¦+ A$ þ
½ í É + Ã ºe HØ æì rô Ç5 q$ Å
` í ¦° ú ¦e H> h^ | ½ 9 Ë +
• @ / a> ' 9½ | Ë\ + " f a> ' | 9 ½ Ë_ + 5 q$ Å
° í כs ú a ' > \ Ð# Ã H¿ º> h^ \ _ K &
÷ ñ & s 5 q$ Å
í r> É h^ | 9 ½ Ë_ + 5 q$ Å
Ü í ¼ Ð 6 x½ ÉÃ + º\ O .
2.5
W l d ¢4 X = kù ɶ m ¥
• ô Ç> h^ | ½ 9 Ës + _ p e l 0 AK " f H r> É h ^ | 9 ½ Ëõ + a÷ ' &# Q 9, s M : a÷ ' & H> h^ 9 | ½ Ë` + ¦Ð ß Ï
5 ~ W
T ¼(identifying entity set) ¢ Ò ¸ Ht C > h^ | 9 ½ Ë(owner entity set)s + ô Ç .
E-R T # a§ q
• E-R s # QÕ ªÏ _ þ ¨ ½$
כ í ¹ è
• ô Ç> h^ | ½ 9 Ë + rÕ É ª _ כ d Z > > h^ | 9 ½ Ëõ + rF > 7 x5 á q Å a> ' (existence dependent) e ¦ 9, s a> ' \ ¦Ð ß Ï
® ~ N ¸ (identifying relationship) ô Ç . ì Í@ ø / Ðd Z > > h^ | ½ 9 Ë + rÕ É ª _ כ ô Ç> h^ 9 | ½ Ë` + ¦ èÄ »ô Ç ¦´ ô ú Ç .
– y + A: > þ h^ | 9 ½ Ë + – " ¶: 5 é q$ Å
í – s × æ " ¶: é × æ° כ5 ú q$ Å
í – & h " ¶: Ä é » ¸ a5 ) q$ Å
í – s × æ s H× 7 ¼: d Z > a> ' | 9 ½ Ë +
• dZ > a> ' _ @ /6 xà £ º H ô Ç> h^ | ½ 9 Ë\ + " fd Z > > h^ | 9 ½ ËÜ + ¼ Ð @ /{ 9 s 9, s M : ô Ç> h^ | 9 ½ Ë + rs É a> ' \ ^ & Ü h ¼ Ð Ð# à ô Ç .
– : 5 q$ Å
` í ¦> h^ | 9 ½ Ëõ + , > h^ | ½ 9 Ë` + ¦ a> ' ½ 9 | Ëõ + ½ É: + M 6 x
• ô Ç> h^ | ½ 9 Ë + rÕ É ª _ כ d Z > > h^ | 9 ½ Ë_ + : ¤& £
ñ > h^ ü <_ a$ '
\ í ì r½ É| + cà ¨ ºe .
– s H× 7 ¼: a> ' | 9 ½ Ë +
– s× æ : a> ' | 9 ½ Ë\ + " f> h^ _ ^ Ð# Ã \ ¦ è qM : 6 x
• ô Ç> h^ | 9 ½ Ë + rÅ É Òv \ ¦° t ú · §t ú ë ß aº ' d > > Z h^ | 9 ½ Ë_ + ô Ç> h^ \ 7 x5 á q Å H ô Ç> h^ 9 | ½ Ë_ + ¸ H> h^ \ ¦" f н ¨Z ½ > Éà + ºe H5 q$ Å
í _ | ½ 9 Ës + e # Q ô Ç . s 5 q$ Å
_ í | ½ 9 Ë` + ¦½ ¨Z > (discriminator) ¢ ¸ H É Ù& o P (partial key) ô Ç .
– s× æ y + A: þ ô Ç> h^ | 9 ½ Ë` + ¦ è qM : 6 x • 5 q$ Å
× í æÅ Òv Hx 9 × ¦ Ð p · .  Òì rv H& h 9 x × ¦ Ð p · .
• ô Ç> h^ | ½ 9 Ë_ + Å Òv Hd Z > > h^ | 9 ½ Ë_ + Å Òv < ü ô Ç> h^ | 9 ½ Ë_ +  Òì rv \ ¦½ Ë5 + gë ß H .
• @ /6 xà £ º\ ¦ ? /l 0 AK o ¶ ³ ú 𢠸 Hf ` ¦ 6 xô Ç . o¶ ³ ú ð~ Ó ½ Ó ¾ r{ É 9 ` ¦ p · .
• dZ > a> ' | 9 ½ Ë + rl É Õ t& ü 5 h q$ Å
` í ¦ t t · § ú H . ß ë כ 9 ¹ s 5 q$ Å
í r É ô Ç a> ' | 9 ½ Ë_ + 5 q$ Å
í Ü ¼ Ð 6 xô Ç .
• % ½ i É + r> É h^ | 9 ½ Ëõ + a> ' | 9 ½ Ë` + ¦ H \ s 2 §` £ ¦· # ¡ p · . • q s a> ' | 9 ½ Ë\ + a ) × æ\ o¶ ³ ú ð r É ¸f ë ß rF > K ô Ç . ë ß # Q> h rF > ¿ º t s Ü © ¼ ÐK $ ½ 3 ÉÃ + ºe l M :ë Hs .
• ô Ç> h^ | ½ 9 Ë + rÕ É ª _ כ d Z > > h^ | 9 ½ Ë_ + Å Òv ¦ \ _ 5 q$ Å
Ü í ¼ Ð 6 x # y ô © Ç> h^ | 9 ½ ËÜ + ¼ Ð Ü JÃ ã ºe . s X > O t · § ú Hs Ä » H 6 § £ ° õ ú .
• > h^ | 9 ½ Ë A1 , . . ., An ç + \ ß a> ' | 9 ½ Ë R\ + " f Ai+1 , Ai+2 , . . ., An _ = Q\ å ë ß o¶ ³ ú ð e ` ¦M : 0 xô p Ç¿ º t K $ 3
– X <s ' _ × æ4 ¤$
í – > h^ ç \ ß Ho 7 & _ h r > a> ' \ ¦¸ ú Í r Ç – ô Ç> h^ | ½ 9 Ë_ + > h^ HÕ ª õ כ a ' ad ) > > Z h^ | ½ 9 Ë_ + > h^ ] j÷ & 1 xÜ l ¼ Ð ] j½ Éà + ºe .
– A1 , . . ., Ai \ " f: ¤& £
> ñ h^ _ ¸½ Ë + r Ai+1 , É . . ., An \ " f_ > h^ ¸½ Ë× + æ\ þ j@ /ô Ç> hü < a| ' cà ¨ ºe . s
Ä â º a> ' | ½ 9 Ë R_ + Å Ò v H A1 , . . ., Ai _ Ò Åv _ ½ Ë| + ½ 9 Ës + .
• ô Ç> h^ | ½ 9 Ë + rd É Z > a> ' s ü @\ r É a> ' \ Ð# Ã ½ ÉÃ + ºe .
– y> h^ | ½ 9 Ë Ak , i < k ≤ n\ + @ / # Ak ü < r> É h^ ¸½ Ë + rþ É j@ / Ak _ ô Ç> h^ ü < a| ' cà ¨ ºe . s
Ä â º i < k ≤ n\ @ /K {A1 , . . . , Ak−1 , Ak+1 , . . . , Ak } H a> ' | 9 ½ Ë + R_ Ê ê Ð v a ) .
– dZ > a> ' | ½ 9 Ë\ + Ð# à ½ É÷ + rë ß m r É 9 { ì Í ø a> ' | 9 ½ Ë\ + Ð# à ô Ç . – ¢ ¸ r É ô Ç> h^ | 9 ½ Ë` + ¦d Z > H> h^ | 9 ËÜ + ½ ¼ Ð Ð# à ô Ç .
• > h^ | 9 ½ Ëõ + s a> ' | 9 ½ Ëç + \ ß \ Hþ j èü <þ j@ /@ /6 xà £ º\ ¦³ ðr ½ Éà + ºe . \ V) 0..*: 0s j þ ès ¦þ j@ / H] jô Çs \ O .
– # Q> h_ d Z > > h^ | 9 ½ Ëõ + a| ' cà ¨ ºe . 4
â&#x20AC;˘ Â&#x20AC; Â&#x2022;Ă´ Â? Ă&#x2021;Â&#x203A; a> ' | ½ 9 Ă&#x2039;@ + /Â&#x2019; \  s ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚd Z Â&#x201D; > > h^ Â&#x2030;| 9 ½ Ă&#x2039;_ + Ă&#x2014; ĂŚ5 q$ Ă&#x2026;
Ă&#x153; Ă ÂźÂ&#x2013; Ă? 6 x½  Ă&#x2030;Âş + Ă&#x192;e Â&#x201D; . Â&#x20AC; Â&#x2022;Ă´ Â? Ă&#x2021;Â&#x203A; a> ' | 9 ½ Ă&#x2039;_ + 5 q$ Ă&#x2026;
Ă&#x192; Ă Âş & Â&#x201C; h ÂŚ, s | 9 ½ Ă&#x2039;s + d Z Â&#x201D; Â&#x203A; > a> ' \  Í Â&#x2013;Â&#x201A; Ă&#x; Ă?# Ă&#x192; Â&#x152; d Â&#x20AC; Z Â&#x201D; > > h^ Â&#x2030;| ½ 9 Ă&#x2039;_ + Ă&#x2014; ĂŚ5 q$ Ă&#x2026;
Ă&#x153; Ă ÂźÂ&#x2013; Ă? 6 x  Â? H â&#x20AC;Ť×&#x203A;â&#x20AC;Ź s | Ă?f Ă&#x192; Â&#x201D; .
2.7
E-R { ¢¨ 8 | ý½ Ă&#x160;X s ĂŞ
2.7.1
: gĂ&#x201E; Ă&#x2DC;Ă&#x2014; Z D
2.7.4
â&#x20AC;˘ < KÂ&#x2026; Â&#x161;Â&#x201A; Â&#x2019; Ă?Z 1. # Ă&#x152; QÂ&#x2039; > " h^ Â&#x2030; 0 A> h^ Â&#x2030;| 9 ½ Ă&#x2039;_ + ½ ¨$
Ă " Âś ĂŠs á &l 0 AĂ´ Ă&#x2021;Â&#x203A; ¸| â&#x20AC;&#x201C; Â&#x203A; ¸| \  _ Ă´ Ă&#x2021;&
_ Ăą : > h^ Â&#x2030; # QÂ&#x2039; " "
S ĂŽ Â&#x2030;Ă´ X Ă&#x2021;Â&#x203A; ¸| ÂŚĂŤ ` Â&#x2013;7 Ă&#x; ¤½ ĂĄ Ă&#x2030; +
Ă&#x201E; â Âş â&#x20AC;˘ V \) account > h^ Â&#x2030;| ½ 9 Ă&#x2039;_ + account-type 5 q Ă&#x2026;
\ Ă $  Â? rĂŹ Ă&#x2030; rĂ&#x20AC; Ă&#x201C; â&#x20AC;&#x201C; 6 x  \  _ Ă´ Ă&#x2021;&
_ Ăą : 6 x  f ] Â&#x201D; > X h^ Â&#x2030;\ ÂŚ rĂ&#x20AC; ĂŹ Ă&#x201C; Â? H
Ă&#x201E; â Âş
â&#x20AC;˘ _ > h^ Â&#x2030;| ½ 9 Ă&#x2039;Â&#x201C; + r| Ă&#x2030; ½ 9 Ă&#x2039;? + /_ Â? r> Ă&#x2030; h^ Â&#x2030;[ tĂľ Ăž # Q ~ " Â&#x2039; Ă&#x201C;Z ½ Ă&#x153; O ÂźÂ&#x2013; Ă?½ ¨Ï rá &Â? Hh >^ Â&#x2030;[ t_ Ăž 0 AĂ&#x2022; ÂŞĂ&#x2019; ¨` ÂŚ 9 | Ă&#x192; Âşe Â&#x201D; .
â&#x20AC;˘ < KÂ&#x2026; Â&#x161;Â&#x201A; Â&#x2019; Ă?Z 2. # Ă&#x152; QÂ&#x2039; > " h^ Â&#x2030; s Â&#x153;_ Š 0 A> h^ Â&#x2030; 9 | ½ Ă&#x2039;_ + ½ ¨$
Âś Ă " ĂŠs á &l 0 AĂ´ Ă&#x2021;Â&#x203A; ¸|
â&#x20AC;˘ > h^ Â&#x2030;| 9 ½ Ă&#x2039;? + /\  0 AĂ&#x2022; ÂŞĂ&#x2019; ¨` ÂŚ ž ÂşÂ? HĂľ &
` Ăą ÂŚT z& P ÂŞ(specialization) Ă´ Ă&#x2021; .
â&#x20AC;&#x201C; & h P (disjoint): Ă´ Ă&#x2021;> h^ Â&#x2030;Â? HÂ&#x161; ¸f Â&#x201D; _ 0 A Â&#x2030;| 9 ½ +  Í Ă&#x; qK Ă&#x2026; H â Âş > h^ Ă&#x2039;\ Â&#x2013;5 Â?
Ă&#x201E;
â&#x20AC;˘ \ V) person > h^ Â&#x2030;| 9 ½ Ă&#x2039;Â&#x201C; + r Ă&#x2030; 0 AĂ&#x2022; ÂŞĂ&#x2019; ¨Ă&#x153; ÂźÂ&#x2013; Ă? customer, employee\ ÂŚ | Ă&#x192; 9 Âşe Â&#x201D; . s
Ă&#x201E; â Âş customerĂź < employee 0 AĂ&#x2022; ÂŞĂ&#x2019; ¨Â&#x201C; r person_ Ă&#x2030; Â&#x2014; ¸Â&#x17D; H5 q$ Ă&#x2026;
Ăľ Ă y Â&#x2022; Â&#x152; _ Ă&#x2020; Ă&#x2019; 5 q$ Ă&#x2026;
` Ă ÂŚ Â&#x201D; .
â&#x20AC;&#x201C; ä
ã
(overlapping): Ă´ Â? Ă&#x2021;> h^ Â&#x2030; s Â&#x153;_ Š 0 A> h^ Â&#x2030;| 9 ½ Ă&#x2039;\ +  5 q½ Ă&#x2026; Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H
Ă&#x201E; â Âş â&#x20AC;˘ Ă&#x2014;^ ĂŚ ?] o jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| s l Â&#x2018; rs : 9, ĂŹ ro ] jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Â&#x201C; r EĂ&#x2030; R s # QĂ&#x2022; ÂŞĂ? Â&#x203A;\ Ăž  " f% i Â&#x2122;y Â&#x152; Â&#x2022;+ Â&#x152; Al Ăž  ù\ \ P  disjoint` ÂŚ Âł Ă°r # Â&#x152; p ¡ .
â&#x20AC;˘ 0 AĂ&#x2022; ÂŞĂ&#x2019; ¨Â&#x201C; r Ă&#x2030; r ¢ ¸ 0 AĂ&#x2022; ÂŞĂ&#x2019; ¨Ă&#x153; ÂźÂ&#x2013; Ă? Ă? tĂ&#x192; Ăź Âşe Â&#x201D; . â&#x20AC;˘ E-R s # QĂ&#x2022; ÂŞĂ? Â&#x203A;\ Ăž  " f[ jĂŹ r oÂ? H ISA Â? H Â&#x161; 6 \` ÂŚ Â&#x201D; % i Â&#x2122;y Â&#x152; Â&#x2022;+ Â&#x152; A½ Ăž ¨$
â&#x20AC;Ť×&#x203A;â&#x20AC;Ź à šÂ&#x2122; èÂ&#x2013; Ă? p ¡ .
â&#x20AC;˘ < KÂ&#x2026; Â&#x161; Â&#x201A; Â&#x2019; Ă?Z 3. Ă&#x152; Â&#x153;0 Š A> h^ Â&#x2030;| ½ 9 Ă&#x2039;_ + > h^ Â&#x2030; ĂŹ Ă?Ă&#x2014; ø Âźr 0 A> h^ Â&#x2030;| 9 ½ Ă&#x2039;Ă&#x2014; + ĂŚ \  5 qK Ă&#x2026; Â? Ht # Â&#x152;Ă&#x201A; Ă&#x2019; ÂŚ \ ? /Â? HÂ&#x203A; ¸| , ¢ aÂ&#x201E; $
] Ă jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| (completeness constraint)
â&#x20AC;˘ ISA Â&#x203A; a> ' Â? H Â? r´ Ă&#x2030; Â&#x2DC;Â&#x2013; Ăş Ă? Â&#x153;0 Š A9 tA Ăž Ă&#x203A; Âź(superclass)/ 0 A9 tA Ăž Ă&#x203A; Âź(subclass) Â&#x203A; a> ' Â&#x201C; ÂŚÂ&#x2022; ¸ô Ă&#x2021; . 2.7.2
â&#x20AC;&#x201C; Â&#x2021; ÂŚW > Â&#x2026;
Ă° Â&#x2122; 5 ÂŞ(total generalization): Â&#x153;0 Š A> h ^ Â&#x2030;| ½ 9 Ă&#x2039;_ + Â&#x2014; ¸Â&#x17D; H> h^ Â&#x2030; ĂŹ Ă?Ă&#x2014; ø Âźr 0 A> h^ Â&#x2030;| 9 Ă&#x2039;Ă&#x2014; + ½ ĂŚ \  5 qK Ă&#x2026; Â? H
Ă&#x201E; â Âş
ø Ă&#x2021; mÂ&#x152; mĂ&#x2014; Â&#x2DC; D
â&#x20AC;˘ [ jĂŹ r oÂ? H Â&#x2020; Ă&#x201C;d ž O Â&#x201D; [> (top-down desing) ~ Ă&#x201C;Z ½ s O . ĂŹ Ă?@ ø /Â&#x2013; Ă? Â&#x153;Â&#x2020; Š Ă&#x201C;d ž [ Â&#x201D; > O (bottom-up design) ~ Ă&#x201C;Z ½ ` O ÂŚ 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;&#x201C; Ă&#x2030; Ă&#x2122;& P Â&#x2122;
Ă° 5 ÂŞ(partial generalization): Â&#x153;0 Š A > h^ Â&#x2030;| ½ 9 Ă&#x2039;_ + > h^ Â&#x2030;Ă&#x2014; ĂŚ# QÂ&#x2039; " 0 A> h^ Â&#x2030;| 9 ½ Ă&#x2039; + \  Â&#x2022; ¸5 q Ă&#x2026; t ¡ §Â? Ăş H> h^ Â&#x2030; e ` Â&#x201D; ÂŚĂ&#x192; Âşe Â? Â&#x201D; H
Ă&#x201E; â Âş
â&#x20AC;˘ \ V) customer > h^ Â&#x2030;| 9 ½ Ă&#x2039;Ăľ + employee > h^ Â&#x2030;| 9 ½ Ă&#x2039;_ + / N: B xĂŹ Â&#x; rÂ&#x2014; ¸\ ÂŚi v ( Â&#x153;0 Š A9 tA Ăž Ă&#x203A; Âź person` ÂŚĂŤ Â&#x2013;[ Ă&#x; tĂ&#x192; Ăž Âş Â&#x201D; e .
â&#x20AC;˘ ¢Â&#x201E; a $
] Ă jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| \  " fÂ? H Ă&#x201A; Ă&#x2019;ĂŹ r { 9 ĂŹ Ă? ø o l Â&#x2018; rs : 9, Â&#x201E; ^ Â&#x2030;{ 9 ĂŹ Ă? ø oÂ? H E-R s # QĂ&#x2022; ÂŞĂ? Â&#x203A;\ Ăž  " f Â&#x153;0 Š A> h ^ Â&#x2030;Ăź <% i Â&#x2122;y Â&#x152; Â&#x2022;+ Â&#x152; Al Ăž  ù\ ÂŚÂ&#x192; Â? HÂ&#x201A; ` ÂŚs Ă&#x2014; ĂŚÂ&#x201A; Ă&#x153; Âź Â&#x2013; Ă? 6 x  # Â&#x152; p ¡ .
â&#x20AC;˘ s Ăź < °  s Ăş Âż Âş > h_ > h^ Â&#x2030; 9 |½ Ă&#x2039;_ + / N: B x ĂŹ Â&#x; rÂ&#x2014; ¸\ ÂŚ s 6 x  # Â&#x152; Â&#x153;0 Š A 9 tA Ăž Ă&#x203A; Âź\ ÂŚ ĂŤ Â&#x2013;Ă&#x2014; Ă&#x; Âź Â? Ăľ H &
Ăą ` ÂŚ Â&#x2122;
Ă° 5 ÂŞ(generalization) Ă´ Ă&#x2021; .
â&#x20AC;˘ s ] jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Â&#x201C; r> Ă&#x2030; h^ Â&#x2030;\ ÂŚÂś Â&#x161;{ Ăş 9 Â&#x201C; ÂŚ Â&#x2022;] Â&#x152; j½ Ă&#x2030;M + :%
ò Ă&#x201C;` ž Â&#x2020; ÂŚĂŻ r .
â&#x20AC;˘ 9 { ĂŹ Ă? ø oÂ? Hj [ĂŹ r o_ % s i . 9 {ĂŹ Ă? ø oÂ? HĂ&#x201E; Âť $
` Ă ÂŚ Â&#x153;Â&#x203A; Š y ¸ Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Â&#x201C; ÂŚ [ jĂŹ r oÂ? H s h &` ÂŚ y Â&#x153;Â&#x203A; Š ¸ Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź .
2.7.5
Ă&#x17E;Âś Â&#x2014; ÂĽĂ&#x2014; Â? D
â&#x20AC;˘ E-R Â&#x2014; ¸4 qÂ&#x201C; S rÂ&#x203A; Ă&#x2030; a> ' ç Â&#x2013;\ Ă&#x;  Â&#x203A; a> ' \ ÂŚ ? /t 3 wĂ´ l Ă&#x2021; .
â&#x20AC;˘ E-R s # QĂ&#x2022; ÂŞĂ? Â&#x203A;\ Ăž  " fÂ? H{ 9 ĂŹ Ă? ø oĂź <[ jĂŹ r o\ Œ½ ¨Ï r t ¡ §Â? Ăş H . 2.7.3
ø Ă&#x2021; mÂ&#x152; mĂ&#x2014; Â&#x2DC; D8 Ă˝< gW l d ºß Ă&#x2026; g
â&#x20AC;˘ §T Âź Ă&#x2019; ÂŞ(aggregation)Â? HÂ&#x203A; a> ' \ ÂŚ Â&#x153;0 Š A> h^ Â&#x2030;Â&#x2013; Ă?2 [/ L ĂĽ Ă&#x2030;Ă&#x192; + ½ Âşe Â&#x2022; Â&#x201D; ¸2 ¤K Â&#x; Ă&#x2026; Ă&#x2019;Â? HĂ&#x2020; Ă&#x2019; Â&#x153; Š ol Z s O .
Â&#x2019; Ă&#x2014;V Ă&#x2019; Ă&#x2039;8 R Ă˝V sÂ&#x2019; ĂŞ Ă&#x2014; Ă&#x2019;
â&#x20AC;˘ E-R s # QĂ&#x2022; ÂŞĂ? Â&#x203A;\ Ăž  " f: x½ Â&#x; Ă&#x2039; + oÂ? HÂ&#x201E; ^ Â&#x2030;Â&#x203A; a> ' \ ÂŚ Hf Â&#x201D; y Â&#x2022;+ Â&#x152; A\ Ăž  V # , Q p ¡ .
â&#x20AC;˘ Š 0 Â&#x153; A 9 tA Ăž Ă&#x203A; Âź_ 5 q$ Ă&#x2026;
Â&#x201C; Ă r Ă&#x2030; 0 A 9 tA Ăž Ă&#x203A; Âź Â&#x153;5 Š q(inĂ&#x2026; herit)Ă´ Ă&#x2021; Â&#x201C; ÂŚĂ´ Ă&#x2021; . â&#x20AC;˘ 0 A9 tA Ăž Ă&#x203A; ÂźÂ? H¢ ¸ô Ă&#x2021; Â&#x153;0 Š A9 tA Ăž Ă&#x203A; Âź_ Â&#x203A; a> ' \ ÂŚ Â&#x153;5 Š q Ă&#x2026; Ă&#x2021; Ă´ .
2.8
E-R 6 KT ' [9 cT  Â&#x17D; Â&#x17D;W 8 Ă˝â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ă&#x2021;4 r
â&#x20AC;˘ Ă&#x203A; Âźv [ > O ½ Ă&#x2030;M + :Y
t > Ă&#x201D; t& q h
â&#x20AC;˘ Ă&#x; ĂŠ{ Â&#x2013; 9 Â&#x153;5 Š q(single inheritance): Ă&#x2026; _ Â&#x153;0 Š A9 tA Ăž Ă&#x203A; ŸÍ Â&#x2013;` Ă&#x; ÂŚ | 9
Ă&#x201E; â Âş
â&#x20AC;&#x201C; 5 q$ Ă&#x2026;
vs. > Ă h^ Â&#x2030;| 9 ½ Ă&#x2039; + â&#x20AC;&#x201C; > h^ Â&#x2030;| 9 ½ Ă&#x2039; vs. Â&#x203A; + a> ' | 9 ½ Ă&#x2039; +
â&#x20AC;˘ Ă&#x2014; ĂŚ Â&#x153;5 Š q(multiple inheritance): # Ă&#x2026; Â&#x152; Q> h_ Â&#x153;0 Š A 9 tA Ăž Ă&#x203A; Âź\ ÂŚ | 9
Ă&#x201E; â Âş
â&#x20AC;&#x201C; 3Â&#x2020; Ă&#x201C;Â&#x203A; ½ a> ' vs. # Â&#x152; Q> h_ s Â&#x201D; Â&#x203A; a> ' 5
– y ô © Ç> h^ 9½ | Ë vs. + ô Ç a> ' | ½ 9 Ë +
– ç ( ¡ 2. { « 9 ì Í ø o ì ro ] j ¸| õ ¢ a $
í ] j ¸| ` ¦ë 7 ß ¤ á H
Ä â º\ H 0 © A> h^ 9 | ½ Ë` + ¦0 Aô Ç_ s ^ ¦ rë É [ ß tt þ · § ú ¦, y 0 A> h^ | ½ 9 Ë + Õ ª> h^ | ½ 9 Ë_ + ¦Ä »5 q$ Å
í õ 0 © A> h^ | 9 ½ Ë_ + ¸ H5 q$ Å
Ü í ¼ н ¨$
í a ) _ s ^ ¦` ¦ë ß H .
– { ì 9 Í ø o x 6# Â Ò – : x½ Ë + o 6 x #Â Ò 2.8.1
W כ Ç4 r m4
• · 4 ÿ 1. 6 x ¹ ½כ ¨ Óì ½ r$ , 3 õ Ó t: ü 6 x כ ¹½ ¨ Ó" ½
[ î j" f
• §T ¼ Ò ª: : x½ Ë + o a> ' | 9 ½ Ë` + ¦0 Aô Ç_ s ^ ¦` ¦ë ß H . s _ s ^ ¦ r: É x½ Ë + o a> ' ü < a ' a ) a> ' _ Å Ò v , Ð# à H> h^ | ½ 9 Ë_ + Å Òv , a> ' | 9 ½ Ë_ + 5 q Å
Ü í $ ¼ н ¨$
í a ) .
• · 4 ÿ 2. X <s ' ¸ 4 q` S ¦ × þ ¦, × ô þ ÇX <s ' ¸q 4 S_ > h¥ ` Æ ¦& 6 h x # 6 x כ ¹½ ¨ Ó` ½ ¦X < s ' Z s Û ¼_ > h¥ & Æ Û h ¼v Ð õ H . • · 4 ÿ 3. l 0 x& p כ h ¹½ ¨ © Óì ½ r$ , 3 õ Ó t: l ü 0 x& p h כ ¹½ ¨ Ó" ½
[ î j" f • · 4 ÿ 4. ½ ¨ ³ & – · 4 ÿ 4-1. Ho 7 & [ h > O é > ß – ÿ ·4 4-2. Ó to ü & [ h > O é > ß :
{ 9 ½ ¨$
+ í A þ , ? d /Â Ò$ ¨ © ½ ¸
2.9
E-R W õ §? u _T ÷ §º u z Åò ì ÿ &
• E-R Û ¼v \ ¦ _s ^ ¦ Ð ¨ 8 H{ 9 ì Í& ø h ¶ " ég : Ë ry É > h^ | ½ 9 Ëõ + a> ' | ½ 9 Ë` + ¦ _ _ s ^ ¦ Ð × ß ë ¼ H s כ . • " × ø 5 5 W
T ¼: > Ò h^ _ y 5 q$ Å
í Õ ª5 q$ Å
` í ¦ ? / H\ ` P ¦ë ß H . • » Ðø È 5 5 W
T ¼: Ò ô Ç> h^ | ½ 9 Ë_ + y 5 q$ Å
õ í Õ ª _ כ 7 x5 á q Å a> ' \ e Hy ô © Ç> h^ | ½ 9 Ë_ + Å Òv \ ¦ ½ ¨$
í H5 q$ Å
í Õ ª5 q$ Å
` í ¦ ? / H\ ` P ¦ë ß H . • ¸ ®N
T ¼: Ò a> ' | ½ 9 Ë_ + 5 q$ Å
õ í a> ' | 9 ½ Ë\ + Ð# à H> h^ | 9 ½ Ë_ + Å Òv \ ¦½ ¨$
í H5 q$ Å
í Õ ª 5 q$ Å
` í ¦ ? / H\ ` P ¦ë ß H . – dZ > a> ' | ½ 9 Ë + rX É <s ' × æ4 ¤÷ &Ù ¼ Ð{ 9 Í& ø ì Ü h ¼ Ð _s ^ ¦ Ðë [ ß t þ 9 כ ¹ \ O . – h >^ | 9 ½ Ë A\ + " f> h^ | ½ 9 Ë B + Ð_ @ /{ 9 a> ' | ½ 9 Ë Rs + e Ü ¼ s ` כ ¦_ s ^ ¦ Ð ? /l 0 AK " f H 3> h_ _ s ^ ¦s 9 כ ¹ . M s : A R\ ^ & Ü h ¼ Ð Ð# à _ s ¦ Aü ^ <_ s ^ ¦ R` ¦ ½ ˽ + Éà + ºe . • ¡T ´ ¼¢ Ò ´Å 4 : 4 ] ¤½ Ë5 + q$ Å
` í ¦½ ¨$
í H 0 A5 q$ Å
í D h Ðî r\ ` P ¦ë [ ß t# þ Q p · . s
Ä â º4 ¤½ Ë5 + q$ Å
í ^ H\ P г ð ³÷ & &t · § ú H . •
ä »ê G ±¢ ´Å 4 : ] × æ° כ5 ú q$ Å
õ í Õ ª5 q$ Å
\ í 5 qô Å Ç> h^ 9 | ½ Ë_ + Å Òv н ¨$
í a_ ) s ^ ¦` ¦ë ß H . •
ð 5 ª\ ¦_ s ^ ¦ Ð ¨ 8 H~ ÓZ ½ O – ç ( ¡ 1. « 0 © A> h^ | 9 ½ Ë` + ¦ ? / H_ s ^ ¦ y õ 0 A> h^ 9½ | Ë + Õ ª> h^ | 9 ½ Ë_ + ¦Ä »5 q$ Å
õ í 0 © A> h^ | ½ 9 Ë_ + Å Òv н ¨$
í a_ ) s ^ ¦` ¦ë ß H . 6
c °2003, sangjin@kut.ac.kr
â&#x20AC;˘ Ă&#x2C6; Ă&#x2019;e ÂŚÂ Ă&#x192; Âş(tuple variable): Â&#x2022; ¸B jÂ&#x201C; s Â&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚ_ 9 | ½ Ă&#x2039; + Â&#x201C;  Ă&#x192; Âş â&#x20AC;&#x201C; account Â&#x203A; a> ' Â? H 7> h_ Ă&#x2C6; Ă&#x2019;e ÂŚÂ&#x2013; Ă?½ ¨$
á Ă &# Qe Â&#x201D; .
2T 6 ' _9 KT Ă&#x192; Â&#x2018;: ~ ÂĄq ç { ÂĄĂ&#x2C6; Â&#x2018; 03
â&#x20AC;&#x201C; t\ ÂŚ' Ă&#x2C6; Ă? Ă&#x2019;e ÂŚ` ÂŚ ? /Â? H Ă&#x192; Âş Â&#x20AC; , t_ : ¤ ÂŁ
5 Ăą & q$ Ă&#x2026;
_ à ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ ? /l 0 AK 6 §þ ÂŁ °  Â&#x201C; Ăş r Ă&#x2030; Âł Ă°l Z ` O ÂŚ 6 xĂ´  Ă&#x2021; .
A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
Part I. Data Models
t[> Ă˝ a  ù] = â&#x20AC;&#x153;A-101â&#x20AC;? s Âł Ă°l Z @ O / Â&#x2019; Â&#x2DC; Ă?: x t[1]` Â&#x; ÂŚ 6 xĂ´  Ă&#x2021; . â&#x20AC;&#x201C; account Â&#x203A; a> ' \ ÂŚ rÂ&#x2013; Ă? ? /Â&#x20AC; t â&#x2C6;&#x2C6; rs Â? H Âł Ă°l Z ` O ÂŚ 6 x  # Â&#x152; t Â&#x203A; a> ' r\  5 qĂ´ Ă&#x2026; Ă&#x2021;Ă&#x2C6; Ă&#x2019;e ÂŚ ` Â&#x201D; e ÂŚ p ¡ .
Ă&#x2039;4 ž ĂĽ ] Ăš{ k ¢¨ |
3 3.1
Ă&#x2039;4 ž ĂĽ ] Ăš6 k KT ' [9 cT  Â&#x17D;8 Ă˝Â? Â&#x152; Âş
â&#x20AC;˘ ' Â&#x203A;> a Â? H| 9 ½ Ă&#x2039;s + Ă&#x2122; ÂźÂ&#x2013; Ă?Ă&#x2C6; Ă&#x2019;e ÂŚs Â&#x203A; a> ' \  Â? H0 A u Â? H Ă Âş _ p \ O .
â&#x20AC;˘ ' Â&#x203A;> a + AX Ăž <s ' Z Â&#x2026;s Ă&#x203A; ÂźÂ? Hy Â&#x2022;y Â&#x152; Â&#x2022;1 Â&#x152; q: l ¤ô ÂŁ Ă&#x2021;s 2 §` ÂŁ ÂŚ t Â? H_ Â&#x2026;s ^ ÂŚ(table)_ Â&#x2014; ¸6 §Ă&#x153; ÂŁ ÂźÂ&#x2013; Ă?½ ¨$
Â? Ă a ) . 3.1.1
â&#x20AC;˘ " Âś ĂŠ & Â&#x2022; h ¸B j Â&#x201C; (atomic domain): Â&#x2022; ¸B jÂ&#x201C; _ Âś " ĂŠÂ&#x2122; è\ ÂŚ 8s Â&#x153; Š Ă? tĂ&#x192; Ăź Âş\ Â? O HÂ&#x2022; ¸B j Â&#x201C;
M Ă&#x201E; Ă&#x2DC;Â? ] Â&#x152; Âş > Ă˝ a  ù A-101 A-102 A-201 A-215 A-217 A-222 A-305
t& " h
ĂŽ Downtown Perryridge Brighton Mianus Brighton Redwood Round Hill
â&#x20AC;&#x201C; Â&#x2014; ¸Â&#x17D; HÂ&#x203A; a> ' _ 5 q$ Ă&#x2026;
_ Ă Â&#x2022; ¸B j Â&#x201C; Â&#x201C; rÂś Ă&#x2030; " ĂŠ & s h # Q Ă´ Ă&#x2021; .
ĂŻĂ&#x201C; Â&#x2013; Ă&#x; o Â? 500 400 900 700 750 700 350
â&#x20AC;&#x201C; Â&#x2022; ¸B j Â&#x201C; Ă&#x2022; ÂŞ ^ Â&#x2030;Â&#x2DC; Ă? Â? H X <s ' Z Â&#x2026;s Ă&#x203A; Âź\  " f Ă&#x2022; ÂŞÂ&#x2022; ¸B j Â&#x201C; _ Âś " ĂŠÂ&#x2122; è # Qb G> Â? 6 xá  &Ă&#x2013; Âź 8Ă&#x2014; ĂŚâ&#x20AC;Ť×&#x203A;â&#x20AC;Ź š . â&#x20AC;˘ # Â&#x152; Q5 q$ Ă&#x2026;
s à °  Â&#x201C; Ăş rÂ&#x2022; Ă&#x2030; ¸B j Â&#x201C; ` ÂŚ | Ă&#x192; 9 Âşe Â&#x201D; . Â? Ho 7 & Â&#x203A; h a& ' (Â&#x2014; h ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? s 2 §)Ăľ ÂŁ Ă&#x201C; to Ăź & Â&#x203A; h a& ' (ĂŤ h H )\ P \  " fÂ&#x2022; ¸B jÂ&#x201C; ` ÂŚ] X H½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . â&#x20AC;˘ Â&#x2014; ¸Â&#x17D; HÂ&#x2022; ¸B j Â&#x201C; \  5 q½ Ă&#x2026; Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; HĂ&#x201E; Âť{ Ă´ 9 Ă&#x2021;° â&#x20AC;ŤÂ&#x201C;×&#x203A;â&#x20AC;Ź Ăş r null ° Ă&#x2030; â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ăş s .
<Ă&#x2022; ÂŞa > 3.1> account Â&#x203A; Ă&#x2039; a> '
3.1.2
â&#x20AC;˘ _ Â&#x2026;s ^ ÂŚ_ \ V: Ă&#x2022; ÂŞa > 3.1 Â&#x201A; Ă&#x2039; Ă?Â&#x203A; Ă&#x192; ¸
6 KT ' [9 cT Â Â&#x17D;Â Â&#x17D;W
â&#x20AC;˘ Â&#x203A; a> ' Ă&#x203A; Âźv Â? H 6 §þ ÂŁ °  s Ăş p ¡ .
â&#x20AC;˘ _ Â&#x2026;s ^ ÂŚ_ ' ' Ă? Â?\ Â&#x;  Â? Hy Â&#x2022;\ Â&#x152; _ P K Â&#x2030; 8\ ÂŚ p ¡ . s K Â&#x2030; 8[ t` Ăž ÂŚ_ Â&#x2026;s ^ ÂŚ_ 5 q$ Ă&#x2026;
(attribute)s Ă Ă´ Ă&#x2021; .
Account-schema = (> ý a  ù, t & " h
, ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â?
â&#x20AC;˘ y Â&#x2022;5 Â&#x152; q$ Ă&#x2026;
s Ă | 9Ă&#x192; Âşe Â? Â&#x201D; H° â&#x20AC;Ť_×&#x203A;â&#x20AC;Ź Ăş | ½ 9 Ă&#x2039;` + ÂŚÂ&#x2013; ÂżR cĂŞ >(domain)s Ă´ Ă&#x2021; . \ V) t & " h
_ ĂŽ Â&#x2022; ¸B jÂ&#x201C; : Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;_ Â&#x2014; ¸ Ht Â&#x17D; & " h
ĂŽ
Â&#x2DC; Ă? &
S Ăą Â&#x2030;Ă´ X Ă&#x2021;Ă&#x203A; Âźv &
_ Ăą Â? H5 q$ Ă&#x2026;
s Ă 2 §\ ÂŁ \ P  Ă&#x2022; ÂŞ â&#x20AC;Ť×&#x203A;â&#x20AC;Ź _ Â&#x2022; ¸B j Â&#x201C; ` ÂŚÂł Ă°l K Ă´ Ă&#x2021; . â&#x20AC;˘ account Account-schema\  Â&#x203A; aĂ´ ' Ă&#x2021;Â&#x203A; a> ' e ` Â&#x201D; ÂŚ 6 § ÂŁ ° Ăľ  s Ăş p ¡ .
â&#x20AC;˘ 9 { ĂŹ Ă?& ø Ă&#x153; h ÂźÂ&#x2013; Ă? n> h_ 5 q$ Ă&#x2026;
` Ă ÂŚ t Â? H_ Â&#x2026;s ^ ÂŚ_ i P :5 q$ Ă&#x2026;
_ Ă Â&#x2022; ¸B j Â&#x201C; ` ÂŚ Di Â&#x20AC; s _ Â&#x2026;s ^ ÂŚÂ&#x201C; r Ă&#x2030; 6 § ÂŁ 9 | ½ Ă&#x2039;_ + Ă&#x201A; Ă&#x2019;ĂŹ r| 9 ½ Ă&#x2039;s + .
account(Account-schema)
D1 Ă&#x2014; ¡ ¡ ¡ Ă&#x2014; Dnâ&#x2C6;&#x2019;1 Ă&#x2014; Dn
â&#x20AC;˘ branch Â&#x203A; a> ' _ Ă&#x203A; Âźv 6 §þ ÂŁ °  ú Â&#x201C; ÂŚ .
â&#x20AC;˘ Ă&#x192; ÂşÂ&#x2020; Ă&#x2020;\ <  " fÂŽ Â&#x201D;N ¸ (relation)Â&#x201C; rÂ&#x2022; Ă&#x2030; ¸B j Â&#x201C; o Ă&#x203A; Ÿà Ă&#x201D;_
Ă&#x2DC; Ă&#x201D; X <r ĂŽ Â&#x2013;Y Ă&#x; L(cartesian product)1 _ Ă&#x201A; Ă&#x2019;ĂŹ r| ½ 9 Ă&#x2039;Ă&#x153; + ÂźÂ&#x2013; Ă?&
Ăą _ Â&#x201C; ÂŚe Â&#x201D; . Â&#x203A; a> ' + A_ Ăž Â&#x2026;s ' Z Â&#x2026;s Ă&#x203A; Âź_ _ Â&#x2026;s ^ ÂŚ_
_ Ăą & Â? H5 q$ Ă&#x2026;
\ Ă Â s 2 §` ÂŁ ÂŚĂ&#x201A; Ă&#x2019;# Â&#x152; Â? H ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚ] jĂź @ Â&#x201C; ÂŚ HĂ&#x192; Â? ÂşÂ&#x2020; Ă&#x2020;\ <  " fÂ&#x203A; a> ' _ &
_ ù ß <°  ú .
Branch-schema = (t & " h
, t ĂŽ & -Â&#x2022; h ¸r , Ă Â&#x2013;) Ă&#x; branch Â&#x203A; a> ' Ăź < account Â&#x203A; a> ' \  Â? HĂ&#x2018; t Ăź t & " h
s ĂŽ Â? H5 q$ Ă&#x2026;
` Ă ÂŚ Â&#x201D; . s Ă&#x2014; ĂŚ4 ¤Â&#x201C; Â&#x; r" Ă&#x2030; fÂ&#x2013; Ă? Â? rÂ&#x203A; Ă&#x2030; a> ' _ Ă&#x2C6; Ă&#x2019;e ΍ Â&#x2013;\ Ă&#x;  Â&#x203A; a> ' \ ÂŚ ? /l 0 AK 6 xÂ?  a ) .
â&#x20AC;˘ ¡ ÂĄĂ&#x153; Ăş ÂźÂ&#x2013; Ă?Â? H _ Â&#x2026;s ^ ÂŚĂľ ' Â? @ Â&#x; / Â&#x2019; \  Â&#x203A; a> ' Ăź < Ă? Ă&#x2122;¨ ¡(tu ple)s Â? HÂş Ă&#x192;Â&#x2020; Ă&#x2020; < x 6# Q\ ÂŚ 6 xĂ´  Ă&#x2021; .
â&#x20AC;˘ Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;X <s ' Z Â&#x2026;s Ă&#x203A; Âź_ Â&#x2014; ¸Â&#x17D; HĂ&#x203A; Âźv : Ă&#x2022; ÂŞa > 3.2 Ă&#x2039; â&#x20AC;&#x201C; &
: Â&#x201C; Ăą ÂŚĂ&#x152; o" Â?
Â&#x201C; ĂŽ r 1 Ă&#x2030; q: l ¤ ÂŁ . (" Âś ĂŠg :& Ă&#x2039; Ă&#x153; h ÂźÂ&#x2013; Ă?Â? H y Â&#x2022;Â&#x201C; Â&#x152; ÂŚĂ&#x152; o\ Â?  > Â&#x201C; ÂŚĂ&#x201E;   ù\ ÂŚĂ&#x201A; Ă&#x2019;# Â&#x152; # Â&#x152;s ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚ Ă&#x2026; Ă&#x2019;v Â&#x2013; Ă? 6 xK  ô Ă&#x2021; .)
1Ă&#x192; ÂşÂ&#x2020; Ă&#x2020;\ <  " f
Ă&#x2DC; Ă&#x201D;X <r ĂŽ Â&#x2013;Y Ă&#x; L_ &
_ Ăą : Âż Âş| ½ 9 Ă&#x2039; AĂź + < B_
Ă&#x2DC; Ă&#x201D;X <r Â&#x2013;Y Ă&#x; ĂŽ LÂ&#x201C; r 0 Ă&#x2030; xĂ´ p Ă&#x2021;Â&#x2014; ¸Â&#x17D; HÂ&#x160; Â&#x153; (a, b)_ Š | ½ 9 Ă&#x2039;` + Ϋ Â&#x2DC;Ă´ Ăş Ă&#x2021; . # Â&#x152;l " f a â&#x2C6;&#x2C6; As Â&#x201C; ÂŚ b â&#x2C6;&#x2C6; Bs .
1
Account-schema = (> ý a ñ, t & " h
, ï î Ó ß o) Branch-schema = (t & " h
, t î & - h ¸r , í ) ß Customer-schema = ( ¦Ì o"
, î ¦Ì o- o , ¦Ì o- ¸r ) Depositor-schema = ( ¦Ì o"
, > î ý a ñ) Loan-schema = (@ /Ø ¦ ñ, t & " h
, @ î /Ø ¦Ó o) Borrow-schema = ( ¦Ì o"
, @ î /Ø ¦ ñ) <Õ ªa > 3.2> Ë r' É X <s ' Z s Û ¼_ Û ¼v
$
• ' > a _ @ /6 xà £ º\ rÅ É Òv : 2.3.2] X Ð Ã ¸ • d Z > a> ' HZ > ¸_ a> ' \ ¦ë [ ß tt þ · § ú H .
! #
– ' > a | 9 ½ Ë: + a> ' | ½ 9 Ë\ + Ð# Ã H> h^ | 9 ½ Ë + _ Å Òv _ ½ Ë| + 9 ½ Ës + a> ' _ Ã º( v a ) .
+#!%'()!%"* /
!"
<Õ ªa > 3.4> Ë r' É X <s ' Z s Û ¼_ Û ¼v s # QÕ ª Ï þ
!""#$%&'()!%"*
, - .
– _ s ^ ¦_ ½ Ë: A\ + " f B Ð @ /{ 9 s a ' > | 9 ½ Ë R + r A_ É 5 q$ Å
õ í a> ' | 9 ½ Ë_ + 5 q$ Å
í Ü ¼ н ¨$
í a ) _ a> ' Ð> h^ | 9 ½ Ë Aü + < a> ' | 9 ½ Ë R` + ¦ ¸¿ º è qà ºe . s M : > h^ | 9 ½ Ë A_ + Å Òv a> ' _ Å Òv a ) .
• r É ' < Xs ' Z s Û ¼_ E-R s # QÕ ªÏ : Õ þ ªa > 3.3 Ë Ð Ã ¸.
– × æ° כ5 ú q$ Å
: í × æ° כ5 ú q$ Å
í r> É h^ | ½ 9 Ë¢ + ¸ H a> ' | ½ 9 Ë_ + Å Òv ü < × æ° כ5 ú q$ Å
` í ¦ ? / H\ P Ð a> ' \ ¦ë ß H . s M :> h^ | 9 ½ Ë¢ + ¸ H a> ' | ½ 9 Ë_ + Å Òv ü < × æ° כ5 ú q$ Å
` í ¦ ? / HD h\ _ P ½ Ë| + ½ 9 Ës + a> ' _ Å Òv a ) .
– account-branchü < loan-branch H Z > ¸ _ s ¦` ^ ¦ë [ ß t þ t· § ú ¦, accountü < loan a> ' \ í Ê < % i . s s כ 0 xô p Çs Ä » H account\ f branch " Ð, loan\ " f branch Ð @ /{ 9 a ' s > 9, y ' > a \ " f accountü < loan r É ^ Ü h & ¼ Ð Ð# à l M :ë Hs .
• E-R Û ¼v \ " f# Q " a> ' r1 ` ¦Ä » ¸Ù ¡` þ ¦M :, s r1 r É r É a> ' r2 _ Å Òv \ ¦5 q$ Å
Ü í ¼ Ð | 9 Ã ºe . s
Ä â ºs 5 q$ Å
` í ¦ r2 \ ¦ Ð Ã ¸ H r1 _ g CÉ Ù o (foreign key) ô Ç . ¢ ¸ô Ç r1 ` ¦ Ð Ã ¸ H a ' > (referencing relation) ¦, r2 \ ¦ Ð Ã ¸ a ) a ' > (referenced relation) ô Ç .
<Õ ªa > 3.3> Ë r' É X <s ' Z s Û ¼_ E-R s # QÕ ªÏ þ
3.1.3
– \ V) Account-schema\ " f “t & " h
” î r BranÉ ch-schema\ ¦ Ð Ã ¸ Hü @Â Òv a ) .
W
• E-R ¸q 4 S\ " f[ " O
ô î ÇÃ º( v , Ê ê Ðv , Å Òv > h¥ Æ r É a> ' + A þ ¸q 4 S\ ¸& 6 h x a ) .
• ' > a _ 5 q$ Å
` í ¦ \ ½ P ÉM + :{ 9 ì Í& ø Ü h ¼ ÐÅ Òv \ ¦½ ¨
í $ H5 q$ Å
` í ¦ © $ \ ô P Ç .
• Rs a> ' Û ¼v { M 9 : R_  Òì r| 9 ½ Ë K R_ + Ê ê Ðv ÷ &l 0 AK " f H r(R)_ ¸ HÈ Òe ¦_ K_ ° כs ú ° t ú · § ú ô Ç . 7 ¤, t1 , t2 ∈ rs £ ¦ t1 6= t2 s t1 [K] 6= t2 [K]s # Q K r_ Ê ê Ðv cà ¨ | ºe .
3.1.4
W T # a§ q
• â «o l # aÜ «^ 9 g: X <s ' Z s Û ¼Û ¼v , Å Òv , @Â ü Òv _ _ r$ >
1 í x` p ¦ ¸d o½ ÉM + : 6 x H s # QÕ ªÏ þ
• E-R ¸q 4 S` ¦ a> ' + A þ ¸q 4 S Ð Ë ¨% ` 3 ¦
Ä â ºÅ Òv H 6 §õ £ ° s ú &
ñ a ) .
• Û ¼v s # QÕ ªÏ _ þ ½ ¨$
כ í ¹ è
– © yô Ç> h^ 9½ | Ë: > + h^ | 9 ½ Ë_ + Å Òv a> ' _ Òv Å a ) . – ô Ç> h^ | ½ 9 Ë: + ô Ç> h^ | 9 ½ Ë\ + @ /ô Ç a ' > H ô Ç> h^ | 9 ½ Ë_ + 5 q$ Å
õ í Õ ª| 9 ½ Ë_ + d > > Z h^ | 9 ½ Ë_ + Ò Åv \ ¦5 q$ Å
Ü í ¼ Ð . s : M a> ' _ Å Òv Hd Z > > h^ | 9 ½ Ë_ + Å Òv ü < ô Ç> h^ | ½ 9 Ë_ + Â Òì rv _ ½ Ë| + 9 ½ Ës + a ) .
– y a> ' H~ ÌÛ Ã ¼ Ð ? /9, ~ ÌÛ Ã ¼? /Â Ò\ 5 q Å
` í $ ¦ \ ô P Ç . s M :Å Òv ü < r5 É q$ Å
í r É Ð ` ¦s 6 x # ì ro ô Ç . – o¶ ³ ú ð\ ¦s 6 x # ü @Â Òv _ _ r$ >
` í ¦ p · . • Û ¼v s # QÛ ¼Ï õ þ E-R s # QÕ ªÏ _ þ s & h 2
– E-R s Q #Õ ªÏ þ rü É @ Òv _ _ r$ >
` í ¦"
Ñ î þ > ? /t ú § · H .
3.2.1.4 T ¼ Ò
T ¼¥ Ò >ñ o Ñ 5 • T ¼ Ò
T ¼(union) Ò í ß r¿ É º> h_ í ß õ _ ½ Ë| + 9 Ë` + ½ ¦½ ¨K ï r .
– ¼ Ûv s # QÕ ªÏ þ r É a> ' _ @ /6 xà £ º\ ¦ ? /t · § ú H .
3.2
• \ V) r É ' \ > ý a¢ ¸ H@ /Ø ¦` ¦ t ¦e H ¸ H ¦Ì o_ s 2 §` £ ¦¹ Ô 1 .
Ë4 ¾ å 6 ¤
Π ¦Ì o"
(borrower) ∪ Π î ¦Ì o"
(depositor) î
• ¸ ®N 7 Ê Á(relational algebra) H] X d | 9 _ # Q Ð ¢ ¸ H¿ º> h_ a> ' \ ¦{ 9 § Ü 4 ¼ Ð~ Î Ã Õ ª õ ÐD h a> ' \ ¦Ø ¦§ K 4 Å Ò H í Ü ß ¼ н ¨$
÷ í &# Qe . 3.2.1
• ¿ º a> ' rõ s\ ½ Ë| + ½ 9 Ë + í ` ß ¦& 6 h x l 0 AK " f H 6 §¿ £ º ¸| s ë 7 ß ¤÷ á &# Q ô Ç . – ¸| 1. rõ s H° ú rÃ É º_ 5 q$ Å
` í ¦ 4 R ô Ç .
M Ä Ø ] Å ì m
– ¸| 2. r_ i P :5 q$ Å
_ í ¸B j õ s_ i P :5 q$ Å
_ í ¸B j s ° ú ô Ç .
3.2.1.1 ¤ >f n 9 c¥ >ñ o Ñ 5 • n ¤f > 9 c(select) í ß r Å É Ò# Q ¿ >
·# ä a(predicate)\ ¦ë 7 ß ¤ á HÈ Òe ¦` ¦¹ Ô 1 ï r .
3.2.1.5
T ¼¥ Ò >ñ o Ñ 5
• í l ß ñ: σ
•
T ¼ Ò í ß ¸½ Ë| + 9 ½ Ë + í õ ß ° ú r É ¸| ` ¦ë 7 ß ¤ á ÉM + ½ :\ ë & ß 6 h x½ Éà + ºe .
• \ V) Perryridge t & \ h " f@ /Ø ¦ a ) ¸ H@ /Ø ¦` ¦¹ Ô 1 . σt & " h
=“Perryridge” (loan) î
• \ V) r É ' \ > ý aë e ß ¦@ /Ø ¦ r\ É O H ¸ H ¦Ì o _ s 2 §` £ ¦¹ Ô 1 . Π ¦Ì o"
(borrower) − Π î ¦Ì o"
(depositor) î
• \ V) @ /Ø ¦Ó os 1200 s © ¸ H@ /Ø ¦` ¦¹ Ô 1 .
3.2.1.6
ß ÃP Lk ò Ñ 5 ¹¥ כ >ñ o Ñ 5
σ@ /Ø ¦Ó o>1200 (loan) • q § í ß : =, 6=, <, ≤, >, ≥
•
ß ÃP Lk ò Ñ 5 ¹ כ í ß r# É Q ¿ " º> h_ a> ' _ &
ñ Ð ¦ \ ½ Ë + HX < 6 x a ) .
• Ho 7 í ß : Ho 7 Y L(∧), Ho 7 ½ Ë(∨), Â + Ò&
(¬) ñ
• í l ß ñ: ×
• \ V) Perryridge t & \ h " f@ /Ø ¦ a@ ) /Ø ¦× æ\ " f@ / ¦Ó Ø o 1200 Ð H ¸ H@ /Ø ¦` ¦¹ Ô 1 .
• ¿ º> h_ a> ' r1 õ r2 H° ú rs É 2 §_ £ 5 q$ Å
` í ¦ | 9 Ã ºe . s ¿ º a> ' _
Ø ÔX <r î Y ß L` ¦½ ¨ l 0 AK " f H $ 5 q$ Å
_ í s 2 §` £ ¦ r &
_ ñ K ô Ç .
σt & " h
=“Perryridge”∧@ î /Ø ¦Ó o>1200 (loan)
– \ V) r = borrower × loan 3.2.1.2 Í Ù· ¥ >ñ o Ñ 5
(borrower. ¦Ì o"
, borrower.@ î /Ø ¦ ñ, loan.@ /Ø ¦ ñ, loan.t & " h
, loan.@ î /Ø ¦Ó o)
• Í Ù· (project) í ß r É a> ' ` ¦» ¤ ¡ è # ^ ¦Ã ºe ¸2 ¤K ï r .
– Ð: x× æ4 ¤÷ &t · § ú Hs 2 § £ r É a> ' s 2 §` £ ¦Ò t q | Ìô Ä Ç .
• í l ß ñ: Π
r
• \ V) loan a> ' _ ¸ HÈ Òe ¦_ @ /Ø ¦ ñü <@ /Ø ¦Ó o ß ë \ K P .
= ( ¦Ì o"
, borrower.@ î /Ø ¦ ñ, loan.@ /Ø ¦ ñ, t & " h
, @ î /Ø ¦Ó o)
Π@ /Ø ¦ ñ,@ /Ø ¦Ó o (loan)
– ë H] j& h • ú ° r É a> ' _
Ø ÔX <r î Y ß L` ¦½ ¨½ É +
â º Ä • í _ ß õ ü < r É a> ' _
Ø ÔX <r Y ß î L` ¦½ ¨½ É +
Ä â º • K Õ : F þ "
" î
(rename) î í ß 6 x
3.2.1.3 ® N ¸ Ì C¥ f >ñ o Ñ 5 +Ü èT q ¼ Ò • í _ ß õ HÕ ª ^ a> ' s Ù ¼ Ð í { ß 9 § 4 Ü ¼ Ð a> ' @ / \ r É í _ ß õ \ ¦ 6 x½ ÉÃ + º e .
• r1 _ È Òe ¦_ Ã º n1 s ¦ r2 _ È Òe ¦_ Ã º n2 s r = r1 × r2 _ È Òe ¦_ Ã º H n1 ∗ n2 s .
• \ V) Harrison r \ Å Ò H ¸ H ¦Ì o_ s 2 §` £ ¦ Ô 1 ¹ .
• \ V) Perryridge t & \ h @ /Ø ¦s e H ¸ H ¦Ì o_ s 2 §` £ ¦¹ Ô 1 .
Π ¦Ì o- ¸r =“Harrison” (customer)) ¦Ì o"
(σ î 3
– ß é> 1. borrowerü < loan_
Ø ÔX <r î Y ß L` ¦ ¨ ½ ¦, Õ ª õ \ " ft & " h
s î Perryridge Òe È ¦` ¦¹ Ô 1 H .
3.2.2
¼ Å ì m
3.2.3.1 ¬ ¨
T ¼¥ Ò >ñ o Ñ 5 • ¬ ¨
T ¼ Ò í ß ¸½ Ë| + 9 ½ Ë + í ` ß ¦& 6 h x l 0 AK ë ß 7 ¤K á H ¸| ` ¦Ø æ7 ¤K á & 6 h x½ Éà + ºe .
σt & " h
=“Perryridge” (borrower × loan) î
• \ V) r É ' \ > ý aü <@ /Ø ¦` ¦ ¸¿ º t ¦e H ¦ o_ Ì s 2 §` £ ¦¹ Ô 1 .
s | 9 _ _ õ \ H borrower.@ /Ø ¦ ñü < loan.@ /Ø ¦ ñ { 9 u t · § ú HÈ Òe ¦s e ¦Ã ` ºe . s כ r_ É p \ O HÈ Òe ¦s .
Π ¦Ì o"
(borrower) ∩ Π î ¦Ì o"
(depositor) î
– é > ß 2. _ p e HÈ Òe ¦ë ß × ô þ Ç . • §| 9 ½ Ë + r É | ½ 9 Ë + í ` ß ¦s 6 x # è qà ºe . r ∩ s = r − (r − s)
σborrower.@ /Ø ¦ ñ=loan.@ /Ø ¦ ñ (σt (borrower × loan)) & " h
=“Perryridge” î
3.2.3.2 ¥ > o ¿ê >¥ >ñ o Ñ 5
– ß é> 3. 0 A| 9 _ _ õ \ " fÄ ºo H ¦Ì o_ 2 s §ë £ ` ß ¦é " ¶ Ù ¼ ÐÆ ÒØ ¦ í ` ß ¦Æ Ò Ð& h xô 6 Ç .
• ¥ > o ¿ê >(natural join) í ß r
É Ø ÔX <r î Y ß Lõ × þ í ` ß ¦ Ð ½ Ëô + Çs Ó ½ í s ß . • í l ß ñ: ./
Π /Ø ¦ ñ=loan.@ /Ø ¦ ñ ¦Ì o"
(σborrower.@ î (σt (borrower × loan))) & " h
=“Perryridge” î
• ¿ º a> ' r(R)õ s(S)_ ¸ r ./ s HÛ ¼v R ∪ S\ @ /ô Ç a> ' s 9, Õ ª&
_ ñ H 6 §õ £ ° ú .
3.2.1.7 = Ã Ã Z ¥ Z >ñ o Ñ 5
r ./ s = ΠR∪S (σr.A1 =s.A1 ∧···∧r.An =s.An (r × s))
• í _ ß õ H a> ' s t ë s ß a> ' Hs 2 §s £ \ O . í _ ß õ \ s 2 §` £ ¦½ É{ + © l 0 AK 6 x H í s ß = à à Z (rename) Z í s ß .
# l " f R ∩ S = {A1 , . . . , An }s . ë ß R∩S = ∅s r ./ s = r × ss . • \ V) r É ' \ " f@ /Ø ¦` ¦~ Î Ã r É ¸ H ¦Ì o_ s 2 §õ £ Õ ª ¦Ì o_ @ /Ø ¦Ó o` ¦½ ¨ .
• í l ß ñ: ρ • \ V) a> ' @ /Ã ºd E_ õ \ ¦ x Ð"
" î
K î .
Π ¦Ì o"
,@ î /Ø ¦Ó o (borrower ./ loan)
ρx (E)
• \ V) r É ' \ > ý a\ ¦ t ¦e ¦ Harrison r \ Å Ò H ¦Ì o` ¦ ¸ Ht & ` h ¦¹ Ô 1 .
• \ V) a> ' @ /Ã ºd E_ õ \ ¦ x Ð"
" î
î ¦, Õ ª כ _ y 5 q$ Å
_ í s 2 §` £ ¦ Ai Ð"
" î
K î .
Πt ¦Ì o- ¸r =“Harrison” ( & " h
(σ î customer ./ account ./ depositor))
ρx (A1 , A2 , . . . , An )(E)
• ¸ í ß r É ½ ËZ + g O :s Ë $
w í n ô Ç .
• \ V) r' É _ > ý a× æ\ ï Ó ß os ´ © § ú r É ` כ ¦¹ Ô 1 .
(r ./ s) ./ t = r ./ (s ./ t) • \ V) r É ' \ > ý aü <@ /Ø ¦` ¦ ¸¿ º t ¦e H ¦ o` Ì ¦¹ Ô 1 .
– ß é> 1. account × account` ¦½ ¨ô ÇÊ ê\ l Ð Hï Ó ß o` ¦ t ¦e H> ý a\ ¦ ¸¿ º¹ Ô 1 H .
Π ¦Ì o"
(borrower ./ depositor) î s כ r É §| 9 ½ Ë + í ` ß ¦s 6 x # ¹ Ô` 1 ¦Ã º ¸e . s % ! 3 a> ' @ /à º\ " f H° ú r É õ \ ¦¹ Ô 1 H# Q AI þ + _ @ /à ºd ` ¦ $
½ í ÉÃ + ºe .
Πaccount.ï Ó ß o (σaccount.ï Ó ß o<d.ï Ó ß o( account × ρd (account)))
• [ j ¸ (theta join): ¸ r¿ É º a> ' _ ° ú r5 É q$ Å
` í ¦l ï rÜ ¼ Ð ‘=’ ¸| Õ t# ü Q\ @ /ô Ç × þ s ß í & 6 h x a ) . [ j ¸ rs É ] jô Ç\ s O
Ø Ô X <r î Y ß Lõ × þ í ` ß ¦ _ í Ü ß ¼ Ð ½ Ë + ÉÃ + ½ ºe ¸2 ¤K ï r . [ j ¸ r ./θ s H 6 §õ £ ° s ú &
_ ñ a ) .
– ß é> 2. account a> ' \ " fï Ó ß oë ` ß ¦Æ ÒØ ¦ô Ç õ כ é > ß 1\ " f% 3 r É õ _ | 9 ½ Ë` + ¦½ ¨ Ä ºo é " ¶ H õ \ ¦% > 3 a ) . Πß ïÓ o (account)− Πaccount.ï Ó ß o (σaccount.ï Ó ß o<d.ï Ó ß o( account × ρd (account)))
r ./θ s = σθ (r × s) 4
Â&#x201C;Ă&#x152; ÂŚ o" Â?
ĂŽ Curry Hayes Jones Smith
3.2.3.3 Ă&#x2026; Ă e ÂĽ >Ăą o Ă&#x2018; 5 â&#x20AC;˘ Ă&#x2026; Ă e (division) Â&#x192; Ă Â&#x2013;Â&#x201C; Ă&#x; r â&#x20AC;&#x153;Â&#x2014; Ă&#x2030; ¸Â&#x17D; H â&#x2C6;ź\  â&#x20AC;?s Â? H] ` X ÂŚ Â&#x; ĂÂ&#x2020; Ă&#x160; < Â? H| 9 _ # Q\  & ½ h Ă&#x2039;Ă´ + Ă&#x2021;Â&#x192; Ă Â&#x2013;s Ă&#x; . â&#x20AC;˘ Â&#x192; Ă Â&#x2013;l Ă&#x;  ù: á â&#x20AC;˘ S â&#x160;&#x2020; RÂ&#x201C; Âż ÂşÂ&#x203A; a> ' r(R)Ăľ s(S) e ` Â&#x201D; ÂŚM :, r á sÂ? H R â&#x2C6;&#x2019; S\  @ /Ă´ Ă&#x2021;Â&#x203A; a> ' s 9, # QÂ&#x2039; Ă&#x2C6; " Ă&#x2019;e ÂŚ t r á s\  5 q Ă&#x2026; l 0 AK " fÂ? H 6 §¿ ÂŁ ÂşÂ&#x203A; ¸| ` ÂŚĂŤ Â&#x2013;7 Ă&#x; ¤K ĂĄ Ă´ Ă&#x2021; .
6 xF Â KĂ&#x201C; o Â? 1750 1500 700 400
<Ă&#x2022; ÂŞa > 3.5> credit-info Â&#x203A; Ă&#x2039; a> ' fÂś Â&#x201D; " ĂŠ"
ĂŽ Adams Brown Gopal Johnson Loreena Peterson Rao Sato
â&#x20AC;&#x201C; Â&#x203A; ¸| 1. t â&#x2C6;&#x2C6; Î Râ&#x2C6;&#x2019;S (r) â&#x20AC;&#x201C; Â&#x203A; ¸| 2. â&#x2C6;&#x20AC;ts â&#x2C6;&#x2C6; s, â&#x2C6;&#x192;tr â&#x2C6;&#x2C6; r s.t â&#x20AC;˘ a. tr [S] = ts [S] and â&#x20AC;˘ b. tr [R â&#x2C6;&#x2019; S] = t â&#x20AC;˘ ž Âşl Â&#x192; Ă Â&#x2013;Â&#x201C; Ă&#x; rl Ă&#x2030; Â&#x2018; rÂ&#x192; : Ă Â&#x2013;` Ă&#x; ÂŚs 6 x  # Â&#x152;Âł Ă°Â&#x2030; ³½ & Ă&#x2030;Ă&#x192; + Âş Â&#x201D; e . rás
6 Â&#x2019; xĂ´  Ă&#x2021;Â&#x2022; ¸ 2000 1500 6000 2000
= Î Râ&#x2C6;&#x2019;S (r) â&#x2C6;&#x2019; Î Râ&#x2C6;&#x2019;S ((Î Râ&#x2C6;&#x2019;S (r) Ă&#x2014; s) â&#x2C6;&#x2019; Î Râ&#x2C6;&#x2019;S,S (r))
t& " h
ĂŽ Perryridge Perryridge Perryridge Downtown Downtown Downtown Austin Austin
/ 4 Z L# ĂĽ Â&#x152; 1500 1300 5300 1500 1300 2500 1500 1600
<Ă&#x2022; ÂŞa > 3.6> pt-works Â&#x203A; Ă&#x2039; a> ' â&#x20AC;˘ { 9 ĂŹ Ă? ø oĂ&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚÂ&#x192; Ă Â&#x2013;_ Ă&#x; + Ad Ăž Â&#x201C; Â&#x201D; r Ă&#x2030; 6 §þ ÂŁ °  ú .
â&#x20AC;˘ \ V) Brooklyn\  0 Au K e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; Ht & \ h  > &
` Ăą ÂŚ t Â&#x201C; ÂŚe Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
Î F1 ,...,Fn (E)
â&#x20AC;&#x201C; Ă&#x; ĂŠ> Â&#x2013; 1. Brooklyn r \  0 Au K e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; Ht h &
# Â&#x152;l " f EÂ? HÂ&#x203A; a> ' @ /Ă&#x192; Âşd s Â&#x201D; 9, Fi Â? H E_ Ă&#x203A; Âźv ? /_ 5 q$ Ă&#x2026;
Ăľ Ă Â&#x153;Ă&#x192; Š ÂşÂ&#x2013; Ă?½ ¨$
Â? Ă aĂ ) Â&#x2013;Ă&#x2022; Ă&#x; td Ăź s Â&#x201D; .
r1 = Î t & " h
(Ď&#x192;t ĂŽ & -Â&#x2022; h ¸r =â&#x20AC;&#x153;Brooklynâ&#x20AC;? (branch))
â&#x20AC;˘ \ V) Ă&#x2022; ÂŞa > 3.5\ Ă&#x2039;  l Ă&#x2022; tÂ? Ăź a credit-info Â&#x203A; ) a> ' \  " fy Â&#x2022;Â&#x201C; Â&#x152; ÂŚ o_ Â? Ă&#x152; z Â&#x2122;Â&#x201C; Â&#x152; rĂ´ Ă&#x2030; Ă&#x2021;Â&#x2022; ¸\ Œ½ ¨ .
â&#x20AC;&#x201C; ĂŠ Â&#x2013;> Ă&#x; 2. (Â&#x201C; ÂŚĂ&#x152; o" Â?
,t ĂŽ & " h
) Â&#x160; ĂŽ Â&#x153; Š
Î Â&#x201C; ÂŚĂ&#x152; o" Â?
,Â&#x2019; ĂŽ 6 xĂ´  Ă&#x2021;Â&#x2022; ¸â&#x2C6;&#x2019; 6 xF  KĂ&#x201C; o (credit-info) Â?
r2 = Î Â&#x201C; ÂŚĂ&#x152; o" Â?
,t ĂŽ & " h
(depositor ./ account) ĂŽ
â&#x20AC;˘ 9 { ĂŹ Ă? ø oĂ&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚÂ&#x192; Ă Â&#x2013;` Ă&#x; ÂŚ& 6 h x½  Ă&#x2030;M + :F "
" ĂŽ
Â&#x192; ĂŽ Ă Â&#x2013;` Ă&#x; ÂŚÂ&#x2020; Ă&#x160; < a Â?& 6 h x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;&#x201C; ĂŠ Â&#x2013;> Ă&#x; 3. r2 á r1 Î Â&#x201C; ÂŚĂ&#x152; o" Â?
,t ĂŽ & " h
(depositor ./ account)á Î Πt & " h
(Ď&#x192;t ĂŽ & -Â&#x2022; h ¸r =â&#x20AC;&#x153;Brooklynâ&#x20AC;? (branch))
Î Â&#x201C; ÂŚĂ&#x152; o" Â?
,(Â&#x2019; ĂŽ 6 x  ôÂ&#x2022; Ă&#x2021; ¸â&#x2C6;&#x2019; 6 xF  KĂ&#x201C; o) as z Â? Â&#x2122;Â&#x201C; Â&#x152; rĂ´ Ă&#x2030; Ă&#x2021;Â&#x2022; ¸ (credit-info) 3.3.2
3.2.3.4 : Ă&#x2021; ÂĽ a >Ăą o Ă&#x2018; 5
Ăš Ă&#x2030; m4 ] ¤Â&#x2022; K ¤
â&#x20AC;˘ Â&#x2122;
N Â? Ă ĂžĂ&#x160; Ă (aggregate function): ° â&#x20AC;Ť_×&#x203A;â&#x20AC;Ź Ăş | 9 ½ Ă&#x2039;` + ÂŚ{ 9 § 4 Ă&#x153; ÂźÂ&#x2013; Ă?~ Ă&#x17D; Ă&#x192; Ăľ ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚĂ&#x2DC; Τ K 4 Ă&#x2026; Ă&#x2019;Â? HÂ&#x2020; Ă&#x160;Ă&#x192; < Âş
â&#x20AC;˘ ' Â&#x203A;> a @ /Ă&#x192; Âşd _ Â&#x201D; { 9 Ă&#x201A; Ă&#x2019;ĂŹ r` ÂŚ e r Â&#x201D; ÂŽ Â&#x201D;N ¸ ÂŁ >Ă&#x160; o Ă \  : (assignment) a Ă&#x2021; Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Âź o # Ă´ Ă&#x2021;
Ă&#x201E; â Âş e Â&#x201D; .
â&#x20AC;˘ @ /Âł Ă°& h Â&#x201C; | 9 > Â&#x2020; Ă&#x160;Ă&#x192; < Âş: sum, avg, min, max, count
â&#x20AC;˘ Â&#x192; Ă Â&#x2013;l Ă&#x; Â Ăą: â&#x2020;?
â&#x20AC;˘ 9 | > Â&#x2020; Ă&#x160;Ă&#x192; < ÂşÂ? H° â&#x20AC;Ť_×&#x203A;â&#x20AC;Ź Ăş | ½ 9 Ă&#x2039;` + ÂŚ{ 9 § ~ 4 Ă&#x17D;t Ă&#x192; ĂŤ Â&#x2013;s Ă&#x; | 9 ½ Ă&#x2039;Â&#x201C; + r Ă&#x2030;
ä Âť Â&#x2122;
T Âź(multiset)s Ă&#x2019; .
â&#x20AC;˘ \ V) r á s temp1
â&#x2020;?
Î Râ&#x2C6;&#x2019;S (r)
â&#x20AC;˘ Ă&#x2014; ĂŚ| 9 ½ Ă&#x2039;: Ă&#x2014; + ĂŚ4 ¤á Â&#x; &Â? H° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş Â&#x201D; rF > ½ Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H| ½ 9 Ă&#x2039; +
temp2 result
â&#x2020;? =
Î Râ&#x2C6;&#x2019;S ((temp1 Ă&#x2014; s) â&#x2C6;&#x2019; Î Râ&#x2C6;&#x2019;S,S (r)) temp1 â&#x2C6;&#x2019; temp2
â&#x20AC;˘ 9 | > Â&#x2020; Ă&#x160;Ă&#x192; < Âş\ ÂŚÂ&#x203A; a> ' @ /Ă&#x192; Âşd \ Â&#x201D;  & 6 h x½  Ă&#x2030;M + : 6 x  Â? H Ad Ăž + Â&#x201C; Â&#x201D; r Ă&#x2030; 6 §þ ÂŁ °  ú . G1 ,...,Gn GF1 (A1 ),...,Fm (Am ) (E)
# Â&#x152;l " f temp1Ăľ temp2Â? HÂ&#x203A; a> ' Â Ă&#x192; Âşs .
3.3
Ă&#x160;X ½ sĂĽ ĂŞ Ă&#x2039;4 ž 6 Â&#x2022; ¤
3.3.1
ø Ă&#x2021; mÂ&#x152; mĂ&#x2014; Â&#x2DC; DÂ&#x2DC; ŸÝ Ă&#x161; s
" HĂ&#x2022; Â? ¨i Ă&#x2019; ç
_ ĂŻ s á &Â? E_ q$ Ă&#x2026; Ăs # Â&#x152;l f Gi ÂŞ l r H 5
Â&#x201C; ÂŚ, Fi Â? H| 9 > Â&#x2020; Ă&#x160;Ă&#x192; < Âşs 9, Ai Â? H E_ 5 q$ Ă&#x2026;
s Ă . â&#x20AC;˘ \ V) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  r ç Â&#x2013;] Ă&#x; jÂ&#x2013; Ă?H Ă Âş Â? HÂ&#x2014; ¸Â&#x17D; Hf " Â&#x201D; Âś_ ĂŠ 4/ Z L ĂĽ # Â&#x152;_ ½ Ă&#x2039;` + Œ½ ¨ .
â&#x20AC;˘ Â&#x2122;
Ă° 5 ÂŞĂ? Ă&#x2122;¡ (generalized projection) Â&#x192; Ă Â&#x2013;Â&#x201C; Ă&#x; rĂ&#x2020; Ă&#x2030; Ă&#x2019;Ă&#x2DC; ÂŚ o Ă&#x203A; Ÿà Ă&#x201D;\  à Â&#x2013;Ă&#x2022; Ă&#x; tÂ&#x2020; Ăź Ă&#x160;Ă&#x192; < Âş\ ÂŚ 6 x+  ½Ă&#x192; Ă&#x2030; Âşe Â&#x2022; Â&#x201D; ¸2 ¤{ Â&#x; ĂŹ 9 Ă?Ă&#x2020; ø Ă&#x2019; ÂŚÂ&#x192; Ă&#x2DC; Ă Â&#x2013;` Ă&#x; ÂŚS Â&#x2030; X Â&#x153;Ă´ Š Ă&#x2021;Â&#x192; Ă Â&#x2013;s Ă&#x; .
Gsum( 4/ Z L# ĂĽ Â&#x152;) (pt-works) 5
f" Â&#x201D; Âś" ĂŠ
ĂŽ Coyote Rabbit Smith Williams
o Toon Tunnel Revolver Seaview
Â&#x2022;r ¸ Hollywood Carrotville Death Valley Seattle
â&#x20AC;˘ Ăź @Ă&#x201A; Ă&#x2019;Â&#x203A; ¸ Â&#x201C; Â&#x192; Ă Â&#x2013;Â&#x201C; Ă&#x; rl Ă&#x2030; Â&#x2018; rÂ&#x192; : Ă Â&#x2013;Ă&#x153; Ă&#x; ÂźÂ&#x2013; Ă? è qĂ&#x192;  ºe Â&#x201D; . r A./ s = (r ./ s)â&#x2C6;Ş ((r â&#x2C6;&#x2019; Î R (r ./ s)) Ă&#x2014; {(null, . . . , null)}) # Â&#x152;l " f Â&#x153;Ă&#x192; Š Âş Â&#x203A; a> ' {(null, . . . , null)}_ Ă&#x203A; Âźv Â? H S â&#x2C6;&#x2019; Rs .
<Ă&#x2022; ÂŞa > 3.7> employee Â&#x203A; Ă&#x2039; a> ' fÂś Â&#x201D; " ĂŠ"
ĂŽ Coyote Rabbit Gates Williams
t & " h
ĂŽ Mesa Mesa Redmond Redmond
/ 4 Z L# ĂĽ Â&#x152; 1500 1300 5300 1500
3.3.4
â&#x20AC;˘ null ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚÂ&#x; ĂÂ&#x2020; Ă&#x160;Ă´ < Ă&#x2021;Ă Â&#x2013;Ă&#x2022; Ă&#x; td Ăź _ Â&#x201D; Ăľ Â? H nulls . â&#x20AC;˘ null ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚÂ&#x; ĂÂ&#x2020; Ă&#x160;Ă´ < Ă&#x2021;q Â&#x201C; §d _ Â&#x201D; Ăľ Â? H unknowns . â&#x20AC;˘ unknown` ÂŚÂ&#x; ĂÂ&#x2020; Ă&#x160;Ă´ < Ă&#x2021;Â? Ho 7 Y L_ Ăľ Â? H unknowns .
<Ă&#x2022; ÂŞa > 3.8> ft-works Â&#x203A; Ă&#x2039; a> '
â&#x20AC;˘ unknownĂľ Â&#x201A; Ă?_ Ă&#x192; Â? Ho 7 ½ Ă&#x2039;Â&#x201C; + rÂ&#x201A; Ă&#x2030; Ă?s Ă&#x192; 9, unknownĂľ f Âą _ Â? Ho 7 ½ Ă&#x2039;Â&#x201C; + r unknowns Ă&#x2030; .
â&#x20AC;˘ Ă&#x; ĂŤÂ&#x20AC; Â&#x2013; Â&#x2022;| Â? 9 > Â&#x2020; Ă&#x160;Ă&#x192; < Âş\ ÂŚ& 6 h x½  Ă&#x2030;M + :Ă&#x2014; ĂŚ4 ¤á Â&#x; &Â? H° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ] j Â&#x201C; ÂŚz ¡Ă&#x153; ÂźÂ&#x20AC; â&#x20AC;&#x153;-distinctâ&#x20AC;?\ ÂŚÂ&#x2020; Ă&#x160;Ă&#x192; < Âşs 2 §= ÂŁ Q\ ĂĽ  ¡  ¥ Â&#x201C; .
â&#x20AC;˘ y Â&#x2022;Â&#x192; Â&#x152; Ă Â&#x2013;\ Ă&#x;  " f null ° â&#x20AC;Ť×&#x203A;â&#x20AC;ŹÂ˘ Ăş ¸Â? H unknown_ % Â&#x192;o ~ Ă&#x201C;Z ½ O â&#x20AC;&#x201C; Â&#x201A;Ă&#x2014; Â&#x2DC;: Â&#x203A; Ăž ¸| Ă&#x2022; t# Ăź Q\ ÂŚ & 6 h xĂ´  Ă&#x2021; Ăľ ° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş unknown ¢ ¸Â? H f s Âą Â&#x20AC; Ăľ \  Â&#x; ĂÂ&#x2020; Ă&#x160;á < &t ¡ § Ăş H Â? . â&#x20AC;&#x201C; Â&#x203A; ¸ Â&#x201C; : Â&#x203A; ¸ Â&#x201C; Â&#x201C; r
Ă&#x2030; Ă&#x2DC; Ă&#x201D;X <r ĂŽ Â&#x2013;Y Ă&#x; LĂľ Â&#x201A; Ă&#x2014; Â&#x2DC;Â&#x192; Ăž Ă Â&#x2013;` Ă&#x; ÂŚ Â&#x2013; Ă?½ Ă&#x2039;Ă´ + Ă&#x2021; s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ă&#x2122; ÂźÂ&#x2013; Ă?Â&#x201A; Ă&#x2014; Â&#x2DC;Â&#x192; Ăž Ă Â&#x2013;\ Ă&#x;  Â? r Ă&#x2030; . â&#x20AC;&#x201C; Ă&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚ: Ă&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚÂ&#x192; Ă Â&#x2013;Â&#x201C; Ă&#x; rĂ&#x2014; Ă&#x2030; ĂŚ4 ¤` Â&#x; ÂŚ] j ½ Ă&#x2030;M + : null ° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ăş ÂŚ ` Â? r° Ă&#x2030; â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂľ Ăş 1 x{ l 9 > 2 [/ LĂ´ ĂĽ Ă&#x2021; . ĂŤ Â&#x2013;Â&#x20AC; Ă&#x; Â&#x2022;Ă&#x2020; Â? Ă&#x2019;Ă&#x2DC; ÂŚ Ăľ Âż ÂşĂ&#x2C6; Ă&#x2019;e ÂŚs Â&#x2014; ¸Â&#x17D; HÂ&#x20AC; 9 Ă&#x2014; Âź_ ° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş °  Ă&#x153; Ăş ÂźÂ&#x20AC; Ă&#x2022; ÂŞ ĂŚ\ Ă&#x2014;  null ° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş e ~ Â&#x201D; \ ~ O Ă&#x2014; ĂŚ4 ¤Â? Â&#x; aĂ&#x2C6; ) Ă&#x2019;e ÂŚÂ&#x2013; Ă?ç Â&#x2013; Ă&#x; Ă&#x2026; Ă&#x2019;Ă´ Ă&#x2021; . Ă&#x2039;| 9 ½ + Ă&#x2039;, Â&#x201C; §| 9 ½ + ÂŚÂ&#x192; Â&#x2013;Ăľ °  ú â&#x20AC;&#x201C; ½ + Ă&#x2039;, | 9 ½ + Ă&#x2039;: Ă&#x2020; Ă&#x2019;Ă&#x2DC; Ă Ă&#x; . â&#x20AC;&#x201C; { 9 ĂŹ Ă? ø oĂ&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚ: { ĂŹ 9 Ă? ø oĂ&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚ\  " fĂ Â&#x2013;Ă&#x2022; Ă&#x; td Ăź Â&#x201C; Â&#x201D; r¡ Ă&#x2030; ÂĄ Ăş " fÂ&#x192; / LĂ´ ĂĽ Ă&#x2021; Ăľ â&#x20AC;Ť×&#x203A;â&#x20AC;Ź °  s Ăş > Ă Â&#x2013;á Ă&#x; &9, Ă&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚÂ&#x201C; rĂ&#x2020; Ă&#x2030; Ă&#x2019;Ă&#x2DC; ÂŚ Ă Â&#x192; Â&#x2013;Ăľ Ă&#x; °  ú . â&#x20AC;&#x201C; | 9 > : 5 q$ Ă&#x2026;
` Ă ÂŚl ĂŻ rĂ&#x153; ÂźÂ&#x2013; Ă?Ă&#x2022; ÂŞĂ&#x2019; ¨i
½ ç Ă&#x2030;M + :Ă&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚÂ&#x192; Â&#x2013;Ăľ Ă&#x; à °  Â&#x201C; Ăş r~ Ă&#x2030; Ă&#x201C;Z ½ Ă&#x153; O ÂźÂ&#x2013; Ă? null ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ2 [/ LĂ´ ĂĽ Ă&#x2021; .
â&#x20AC;˘ \ V) r ç Â&#x2013;] Ă&#x; jÂ&#x2013; Ă? Ă H Âş Â? Hf " Â&#x201D; Âśs ĂŠ e Â? Â&#x201D; Ht & _ h Ă&#x192; Âş\ ÂŚ ½ ¨ . Gcount-distinct(t & " h
) (pt-works) ĂŽ â&#x20AC;˘ \ V) y Â&#x2022;t Â&#x152; & Z h r > ç Â&#x2013;] Ă&#x; jÂ&#x2013; Ă?H Ă Âş Â? HÂ&#x2014; ¸Â&#x17D; Hf Âś Â&#x201D; " ĂŠ_ 4 Z / L# ĂĽ Â&#x152;_ ½ Ă&#x2039;` + Œ½ ¨ . 4/ Z L# ĂĽ Â&#x152;) (pt-works) & t " h
Gsum( ĂŽ
â&#x20AC;˘ \ V) y Â&#x2022;t Â&#x152; & Z h r > ç Â&#x2013;] Ă&#x; jÂ&#x2013; Ă?H Ă Âş Â? HÂ&#x2014; ¸Â&#x17D; Hf Âś Â&#x201D; " ĂŠ_ 4 Z / L# ĂĽ Â&#x152;_ ½ Ă&#x2039;Ăľ + y Â&#x152; Â&#x2022;t & \ h  " f  Â&#x153; Š H 4/ Z L# ĂĽ Â&#x152;Â? H\ O Â&#x201C; t ½ ¨ . t & " h
Gsum( ĂŽ 4/ Z L# ĂĽ Â&#x152;) as 4/ Z L# ĂĽ Â&#x152;½ Ă&#x2039;, max( + 4/ Z L# ĂĽ Â&#x152;) as Ăž j@ / 4/ Z L# ĂĽ Â&#x152;(
pt-works) 3.3.3
Null Š Â&#x2020;
Ă&#x2039;4 ž ĂĽ 6 Â&#x2022; ¤Â&#x17D; Ă&#x2026;Â? ĂŹ m8 Â&#x2DC; Ă˝Â&#x2013; ¤Â? Ă&#x2026;Ă&#x2026; Ă&#x2019; Ă&#x2DC; U Ăź
3.4
ĂťÂ&#x201D; 8 Âź ÂşĂ&#x; Ă&#x192; Ă&#x2026;
â&#x20AC;˘ Ă&#x201E; ÂşÂ&#x201A; Ă H0 A 1. ĂŠ Â&#x2013;Â&#x2020; Ă&#x; Ă&#x201C;Â&#x192; ½ Ă Â&#x2013; Ă&#x; : Ď&#x192;, Î , Ď
â&#x20AC;˘ Ă&#x2022; ÂŞa > 3.7Ăľ Ă&#x2039; Ă&#x2022; ÂŞa > 3.8_ Ă&#x2039; employeeĂź < ft-works Â&#x203A; a> ' _ Â&#x192; Â&#x203A; ¸ Â&#x201C; ` ÂŚ Â&#x20AC; SmithĂź < Gates\  Â&#x203A; aÂş ' Â? a& )
Ăą Â&#x2DC; Ă?Â? H% t 3 \ ÂŚ3 wĂ´ l Ă&#x2021; . s % Â&#x192;! ž 3 Âş| Ă&#x152;Â? Ă&#x192; a& )
Â&#x2DC; Ăą Ă? e ` Â&#x201D; ÂŚ M : 6 x  Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź g CĂ&#x2030; Ă&#x2122;Â&#x153; ¿ê >(outer join)s .
â&#x20AC;˘ Ă&#x201E; ÂşÂ&#x201A; Ă H0 A 2. Y L! rÂ&#x192; l Ă Â&#x2013; Ă&#x; : Ă&#x2014;, ./, ./θ â&#x20AC;˘ Ă&#x201E; ÂşÂ&#x201A; Ă H0 A 3. | ½ 9 Ă&#x2039;Â&#x192; + Ă Â&#x2013; Ă&#x; : â&#x2C6;Ş, â&#x2C6;Š, â&#x2C6;&#x2019;, á â&#x20AC;˘ s Â&#x2020; Ă&#x201C;Â&#x192; ½ Ă Â&#x2013;_ Ă&#x;
Ă&#x201E; â Âş Ă&#x201E; ÂşÂ&#x201A; Ă H0 A °  Ă&#x153; Ăş ÂźÂ&#x20AC; ¢ aA , ¤\ ĂĄ  " f Â&#x161; ¸Â? rA Ă&#x2030; ¤Ă&#x153; ĂĄ ÂźÂ&#x2013; Ă?¨
Â? ĂŽ a ) .
â&#x20AC;˘ Ăź @Ă&#x201A; Ă&#x2019;Â&#x203A; ¸ Â&#x201C; _ [ j t + AI Ăž â&#x20AC;&#x201C; Â&#x152;ÂĽ ´g CĂ&#x2030; Ă&#x2122;Â&#x153; ¿ê >(A./): Â&#x192; Â&#x203A; ¸Â&#x201C; ` ÂŚĂ´ Ă&#x2021;Ă&#x160; ĂŞ\  a8 Ă˝ ¤Â&#x203A; ÂŁ a> ' \  Â&#x203A; ¸ Â&#x201C; t 3 wĂ´ l Ă&#x2021;Â&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚ` ÂŚĂ&#x2020; Ă&#x2019; Ă´ Ă&#x2021; . s M :° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş \ Â? O H5 q$ Ă&#x2026;
Â&#x201C; Ă r null ° Ă&#x2030; â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş ÂźÂ&#x2013; Ă? ĂŽ G r .
â&#x20AC;˘ \ V) R â&#x2C6;Ş Ď&#x192;S ./ T â&#x2030;Ą R â&#x2C6;Ş (Ď&#x192;(S) ./ T )
6 KT ' [9 cT  Â&#x17D;8 Ă˝Â&#x2022; ¤X Ă&#x2039; N
3.5 3.5.1
â&#x20AC;&#x201C; Ă Ă&#x2039;ÂĽ ´g CĂ&#x2030; Ă&#x2122;Â&#x153; ¿ê >(./@): Â&#x192; Â&#x203A; ¸Â&#x201C; ` ÂŚĂ´ Ă&#x2021;Ă&#x160; ĂŞ\  º8 Ă&#x201E; ¤Â&#x203A; ÂŁ a> ' \  Â&#x203A; ¸ Â&#x201C; t 3 wĂ´ l Ă&#x2021;Â&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚ` ÂŚĂ&#x2020; Ă&#x2019; Ă´ Ă&#x2021; . s M :° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş \ Â? O H5 q$ Ă&#x2026;
Â&#x201C; Ă r null ° Ă&#x2030; â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş ÂźÂ&#x2013; Ă? ĂŽ G r .
V l< c g
â&#x20AC;˘ Âş Ă?V Ă&#x2021;  (deletion)\ ÂŚ ' Â&#x203A;> a @ /Ă&#x192; Âşd Ă&#x153; Â&#x201D; ÂźÂ&#x2013; Ă? Âł Ă°Â&#x2030; Âł & Â&#x20AC; 6 §þ ÂŁ °  ú . r â&#x2020;?râ&#x2C6;&#x2019;E # Â&#x152;l " f rÂ&#x201C; rÂ&#x203A; Ă&#x2030; a> ' s Â&#x201C; ÂŚ EÂ? HÂ&#x203A; a> ' @ /Ă&#x192; Âşd s Â&#x201D; .
â&#x20AC;&#x201C; ĂŹ ¾Œ Â&#x201D; >g Â&#x2021; CĂ&#x2030; Ă&#x2122;Â&#x153; ¿ê >(A./@): Â&#x192; Â&#x203A; ¸Â&#x201C; ` ÂŚĂ´ Ă&#x2021;Ă&#x160; ĂŞ\  Â&#x153;A ÂŞ Â&#x20AC; ¤Â&#x203A; ĂĄ a> ' \  Â&#x203A; ¸ Â&#x201C; t 3 wĂ´ l Ă&#x2021;Â&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚ` ÂŚĂ&#x2020; Ă&#x2019; Ă´ Ă&#x2021; . s M :° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş \ Â? O H5 q$ Ă&#x2026;
Â&#x201C; Ă r null ° Ă&#x2030; â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş ÂźÂ&#x2013; Ă? ĂŽ G r .
â&#x20AC;˘ Smith_ Â&#x2014; ¸Â&#x17D; H> Ă˝ a&
Â&#x2DC; Ăą Ă?\ ÂŚ Â&#x2022;] Â&#x152; jK . depositor â&#x2020;? depositor â&#x2C6;&#x2019; Ď&#x192;Â&#x201C; ÂŚĂ&#x152; o" Â?
=â&#x20AC;&#x153;Smithâ&#x20AC;? (depositor) ĂŽ 6
qÉ כ ø m
3.5.2
• Â Ó\ ¦&
_ ñ X <s ' Z s Û ¼ H Ð: x Ó\ ¦> í ß # D h Ðî r_ s ^ ¦` ¦ë [ ß tt þ · § ú ¦, Õ ª _ כ &
_ ñ $ ß ë ô © Ç . × æ\ Õ ªÂ Ó\ ¦ a> ' @ /à ºd \ " f 6 x Õ ªÂ Ó_ s 2 §@ £ / \  Ó\ ¦&
_ ñ ô Ç a> ' d Ü ¼ Ð@ /^ ÷ &# Q¨
î a ) .
• M Õ ±
(insertion)` ¦' > a @ /à ºd Ü ¼ г ð ³ & 6 §õ £ ° ú . r ←r∪E # l " f r r É a> ' s ¦ E H a> ' @ /à ºd s .
• Â Ó\ ¦&
_ ñ  Ó\ ¦> í ß # D h Ðî rX <s ^ ¦` ¦ [ ß ë t# þ Q$ © HX <s ' Z s Û ¼ ¸e . s Â Ó ¦ \
W ªÉ Ú(materialized view) 9, s X < s ' Z s Û ¼\ " f HÂ Ó ³F & I © \ ¦> 5 qì Å Í% ø
ò ¸2 ¤> 5 qÌ Å t q K ô Ç . s \ ` O ¦Â ÓÄ » t Ðà º(view maintenance) ô Ç .
• Smith Perryridge t & \ h > ý a ñ A-973s ¦ï Ó ß os 1200 > ý a\ ¦ t ¦e H&
ñ Ð\ ¦ X <s ' Z s Û ¼\ Æ Ò K . account ← account ∪ {(“A-973”,“Perryridge”,1200)} depositor ← depositor ∪ {(“Smith”,“A-973”)}
3.6.2
•  Ó\ ¦: xK X <s ' Z s Û ¼\ ¦Ì t q  Óü < aº ' az ) ´] j a> ' [ t þ ¸Ì t q ÷ & ¸2 ¤K ô Ç . s M : Â Ó H Ð: xl r > a> ' _ » ¤ ¡ è a+ ) AI þ s Ù ¼ Ðz ´] j a> ' \ ¦Ì t q l 0 AK כ 9 ¹ô Ç ¸ H&
ñ Ð \ ` O ¦ Ã ºe .
Þ
n à Å
3.5.3
• j »é >(update)` ¦ a> ' @ /à ºd Ü ¼ г ð ³ & 6 § £ ° õ ú . r ← ΠF1 ,F2 ,...,Fn (r)
• Â Ó\ ¦: xô ÇÌ t q _ ¿ º t ] H X ~ ÓZ ½ O
# l " f r r É a> ' s 9, r_ i P :5 q$ Å
_ í ° כs ú
÷ â &t · §Ü ú ¼ Fi H5 q$ Å
` í ¦ ? /9,
÷ â & à © ºü <5 q$ Å
Ü í ¼ н ¨$
í aí ) Õ ß td ü s .
– ~ ÓZ ½ 1. Á O º ¸| Â Ò – ½ ~Z Ó 2. z O ´] j a> ' \ ¦Ì t q ÷ &\ O H&
ñ Ð H null ° `כ ú ¦ 6 x # G î r .
• ¸ H> ý a\ @ /K 5%_ s \ ¦t / LK å .
• @ /Â Òì r_ X <s ' Z s Û ¼ H~ ÓZ ½ 1` O ¦ 6 xô Ç .
account ← Π> ý a ñ,t & " h
,ï î Ó ß o*1.05 (account)
3.6
3.6.3
½
 ¥ \ ½õ §T u Þ Ó # bX Ë8 N ý ¢ X ½
•  ÓS X (view expansion): ô © Ç Ó\ ¦s 6 x # D h Ð r î Ó\ ¦&
_ ñ H כ
• Ðî ë ß H] jM :ë H\ # Q " 6 x \ > HX <s ' Z s Û ¼_ { 9 Â Òë ] ß H X ½ ÉÃ + ºe ¸2 ¤K ô Ç .
• Â Ó HF ) & (recursively)Ü h ¼ Ð&
_ ñ ½ ÉÃ + º\ O .
• É Ú(view): 6 x \ > ] j/ N B aX ) <s ' Z s Û ¼_ H 7 o ¸q 4 S\ 5 q Å t · § ú H © a> '
¼þ §å u Ë4 ¾ A 0V Ä
3.7 3.6.1
½õ § u Þ ¢n X Þ
Å Ã
½8 ýX Ë8 N ý
• ' > a @ /Ã ºd r] É X d # Qs t ë È ß Òe ¦ a> ' K $ (tuple relational calculus) 3 rq É ] X d # Qs .
• Â Ó H create view ë H ` © ¦s 6 x # &
_ ñ ô Ç .
• ' > a @ /Ã º H í 0 ß AÅ Òs 9, a> ' K $ 3 r& É
ñ Ð0 A Å Òs .
• create view ë H _ © + Ad þ create view v as hquery expressioni
• È Òe ¦ a> ' K $ \ 3 " f| 9 _ _ + Ad þ r É 6 §õ £ ° ú .
# l " f v HÂ Ó_ s 2 §s £ .
{t|P (t)}
• \ V) t & õ h ¦Ì o"
Ü î ¼ н ¨$
í a ) Ó
7 ¤, £ ¸| Õ t# ü Q P\ ¦ë 7 ß ¤ á HÈ Òe ¦_ | ½ 9 Ë` + ¦´ ô ú Ç .
create view all-customer as Πt & " h
, î ¦Ì o"
(depositor ./ account)∪ î Πt & " h
, î ¦Ì o"
(borrower ./ loan) î
3.7.1
ù Ç m8 ý8 ý; d
• \ V) @ /Ø ¦Ó os 1200 s © @ /Ø ¦` ¦¹ Ô 1 .
• É Úÿ ?: Ç ¥ a >ñ o Ñ 5 + l \
{t | t ∈ loan ∧ t[@ /Ø ¦Ó o] > 1200}
– C&
ñ í ` ß ¦s 6 x # D h\ v> ë ß H' > a H aº ' a> ' _ X <s '
÷ â &# Q ¸ t § ú · H .
• 9 { Â Ò5 q$ Å
ë í ` ß ¦· ú ¦z · r É
Ä â º\ H 6 §³ £ ðl Z O ¦ ` 6 xô Ç . ∃t ∈ r(Q(t))
– Ó Â HÕ ª ` כ ¦ 6 x½ ÉM + : D h\ v> ¨
÷ î & Q # 6 x÷ & H s כ Ù ¼ РÓ\ ¦ë [ ß tl þ 0 AK x 6 a ) a> ' _X <s '
÷ â & Â Ó ¸ Êa <
â a ) .
a> ' r\ Õ t# ü Q ¸| Q\ ¦ë 7 ß ¤ á H# Q È " Òe ¦s F r > ô Ç . 7
• \ V) @ /Ø ¦× æ@ /Ø ¦Ó os 1200 s © @ /Ø ¦_ @ /Ø ¦ ñ\ ¦¹ Ô 1 .
– s[x]Θu[y]: sü < u HÈ Òe ¦s 9, xü < y H sü < uy y \ &
_ ñ a5 ) q$ Å
s í . Θ Hq § í ß (=, 6=, <, ≤, >, ≥)s 9, xü < y_ ¸B j rs É 5 q$ Å
\ í _ K q §| cà ¨ ºe # Q ô Ç .
{t | ∃s ∈ loan(t[@ /Ø ¦ ñ] = s[@ /Ø ¦ ñ]∧ s[@ /Ø ¦Ó o] > 1200)}
– s[x]Θc: s HÈ Òe ¦s ¦, x H s\ &
_ ñ a5 ) q$ Å
í s . c H x_ ¸B j \ 5 qô Å Ç Ã © ºs .
t H@ /Ø ¦ ñ5 q$ Å
\ í @ /K " fë q ß §÷ &Ù ¼ Ð@ /Ø ¦ ñ\ ë ² ß Gô D Ç a ) .
• s " ¶ é [ t` þ ¦ 6 §½ £ ©g :\ Ë & 6 h x # È Òe ¦ a> ' ` d ¦ë ß H .
• \ V) Perryridge t & \ h " f@ /Ø ¦` ¦~ Î Ã r É ¸ H ¦Ì o _ s 2 §` £ ¦¹ Ô 1 .
– ¶ " é HÈ Òe ¦ a> ' d s . – P1 s È Òe ¦ a> ' d s ¬P1 õ (P1 ) ¸È Òe ¦ a> ' d s .
{t | ∃s ∈ borrower(t[ ¦Ì o"
] = s[ î ¦Ì o"
]∧ î ∃u ∈ loan(u[@ /Ø ¦ ñ] = s[@ /Ø ¦ ñ]∧ u[t & " h
] = “Perryridge”))} î
– P1 õ P2 È Òe ¦ a> ' d s P1 ∨P2 , P1 ∧P2 , P1 ⇒ P2 ¸È Òe ¦ a> ' d s .
• \ V) r' É \ > ý a e @ /Ø ¦` ¦~ Î Ã r É ¸ H ¦ o_ Ì s 2 §` £ ¦¹ Ô 1 .
– P1 (s) Ä » Ã º s\ ¦ í Ê < HÈ Òe ¦ a> ' s d ¦ rs a> ' s 6 § £ rÈ É Òe ¦ a> ' d s . ∃s ∈ r(P1 (s))
{t | ∃s ∈ borrower(t[ ¦Ì o"
] = s[ î ¦Ì o"
])∨ î ∃u ∈ depositor(t[ ¦Ì o"
] = u[ î ¦Ì o"
])} î
∀s ∈ r(P1 (s))
• \ V) r' É \ > ý aü <@ /Ø ¦` ¦¸ ¿ º t ¦e H ¸ H ¦Ì o_ s 2 £ §` ¦¹ Ô 1 .
• È Òe ¦ a> ' d _ 1 x1 l x$ p
í – P1 ∧ P2 ≡ ¬(¬(P1 ) ∨ ¬(P2 ))
{t | ∃s ∈ borrower(t[ ¦Ì o"
] = s[ î ¦Ì o"
])∧ î ∃u ∈ depositor(t[ ¦Ì o"
] = u[ î ¦Ì o"
])} î
– ∀t ∈ r(P1 (t)) ≡ ¬∃t ∈ r(¬P1 (t)) – P1 ⇒ P2 ≡ ¬(P1 ) ∨ P2
• \ V) r É ' \ > ý aë ` ß ¦ t ¦e H ¸ H ¦Ì o_ s 2 §` £ ¦¹ Ô 1 .
3.7.3
» ôÅ k Ä8 ý m ÅV ¹ Ë R
• 6 §õ £ ° ú rÈ É Òe ¦ a> ' K $ ³ 3 ð ³d & rÁ É ºô Ç a> ' ¦Ò \ t$ q
½ í ÉÃ + ºe .
{t | ∃s ∈ depositor(t[ ¦Ì o"
] = s[ î ¦Ì o"
])∧ î ¬∃u ∈ borrower(t[ ¦Ì o"
] = u[ î ¦Ì o"
])} î
{t | ¬(t ∈ loan)} 3.7.2
¤] ¡X K ÄX ì Ë8 N ý
loan a> ' \ 5 q Å t · § ú HÈ Òe ¦s ê Í? ø
• È Òe ¦ a> ' K $ _ 3 ³ ð ³d & _ + AI þ H 6 §õ £ ° ú .
• s ë H] j\ ¦K l 0 AK È Òe ¦ a> ' d _ ¸B j s H> h¥ ` Æ ¦ 6 xô Ç . P _ ¸B j r É 6 §õ £ ° s ú ³ ðl 9, dom(P )
{t|P (t)} # l " f t HÈ Òe ¦ Ã ºs ¦, P HÈ Òe ¦ a> ' d (tu ple relational formula)s .
P Ð Ã ¸ H° _כ ú | 9 ½ Ë` + ¦ p · . ° _כ ú | 9 ½ Ë + \ í Ê÷ < & H כ r P\ É " f Ð Ã ¸ H a> ' _ È Òe ¦ _ ° כõ ú P ^ \ " f 6 x H° כs ú .
• È Òe ¦ a> ' d ? /\ H# QÈ Òe ¦ Ã º\ ¦ 6 x½ ÉÃ + º e .
• \ V) 6 §È £ Òe ¦ a> ' d _ ¸B j r? É
• È Òe ¦ Ã º ∀ ¢ ¸ H ∃ Ðô Ç&
÷ ñ &t · §Ü ú ¼ Ä » à º(free variable) ¦, ô Ç&
ñ a ) Ã º Hô Ç&
ñ Ã º(bound variable) ô Ç .
dom(t ∈ loan ∧ t[@ /Ø ¦Ó o] > 1200) 1200õ loan a> ' _ 1 x p © H ¸ H° כ ú
• \ V) 6 §\ £ " f t H Ä » Ã ºs ¦, s Hô Ç&
ñ Ã º s .
• \ V) 6 §È £ Òe ¦ a> ' d _ ¸B j r? É
t ∈ loan ∧ ∃s ∈ customer(t[ ¦Ì o"
] = s[ î ¦Ì o"
]) î
dom(¬(t ∈ loan)) loan a> ' _ 1 x p © H ¸ H° כ ú
• È Òe ¦ a> ' K $ \ 3 " fÈ Òe ¦ a> ' d r¶ É " é (atom) Ð ½ ¨$
÷ í &9, Õ ª _ כ + AI þ H 6 §õ £ ° ú .
• ³ ð ³d & _ õ \ 1 x p © H ¸ H° כs ú Õ ª³ ð ³d & _ ¸B j \ 5 q Å Õ ª³ ð ³d & rî É ß ¦ô Ç . " f {t | ¬(t ∈ loan)} Hî ß t · § ú .
– s ∈ r: s HÈ Òe ¦s ¦, r r É a> ' s . 6∈ í ß H) 6 x t · § ú H . 8
3.7.4
Å# ¹ a8 ý » ô «I Ö í Ä
• È Òe ¦ a> ' K $ 3 # Q H a> ' @ /à º_ l r : í Ü ß ¼ н ¨$
í a ) # Q г ð ³½ & Éà + ºe H ¸ Hë H ` © ¦³ ð ³½ & Éà + ºe .
9
Account-schema = (> ý a  ù, t & " h
, ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? Branch-schema = (t & " h
, t ĂŽ & -Â&#x2022; h ¸r , Ă Â&#x2013;) Ă&#x; Customer-schema = (Â&#x201C; ÂŚĂ&#x152; o" Â?
, Â&#x201C; ĂŽ ÂŚĂ&#x152; o- Â? o , Â&#x201C; ÂŚĂ&#x152; o-Â&#x2022; Â? ¸r ) Depositor-schema = (Â&#x201C; ÂŚĂ&#x152; o" Â?
, > ĂŽ Ă˝ a  ù) Loan-schema = (@ /Ă&#x2DC; ÂŚÂ Â Ăą, t & " h
, @ ĂŽ /Ă&#x2DC; ÂŚĂ&#x201C; o) Â? Borrow-schema = (Â&#x201C; ÂŚĂ&#x152; o" Â?
, @ ĂŽ /Ă&#x2DC; ÂŚÂ Â Ăą)
c °2003, sangjin@kut.ac.kr
2T 6 ' _9 KT Ă&#x192; Â&#x2018;: ~ ÂĄq ç { ÂĄĂ&#x2C6; Â&#x2018; 04 A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
<Ă&#x2022; ÂŞa > 4.1> Â&#x201C; Ă&#x2039; rÂ? Ă&#x2030; ' Â&#x;X <s ' Z Â&#x2026;s Ă&#x203A; Âź_ Ă&#x203A; Âźv
Part II. Relational Databases
â&#x20AC;&#x201C; from: Â&#x203A; a> ' @ /Ă&#x192; Âş\ Â " f
Ă&#x2DC; Ă&#x201D;X <r ĂŽ Â&#x2013;Y Ă&#x; LÂ&#x192; Ă Â&#x2013;\ Ă&#x;  K { Â&#x153;Ă´ Š Ă&#x2021; . | 9 _ \ ά
ĂŽ l 0 AK Ă&#x2019; Â&#x17D; oK Â? Â? HÂ&#x203A; a> ' \ ÂŚ \ P l 0 AK 6 xÂ?  a ) . â&#x20AC;&#x201C; where: Â&#x203A; a> ' @ /Ă&#x192; Âş\  " fÂ&#x201A; Ă&#x2014; Â&#x2DC;Â&#x203A; Ăž ¸| \  K { Â&#x153;Ă´ Š Ă&#x2021; . from ] \ X  \ Ă´ P Ă&#x2021;Â&#x203A; a> ' _ 5 q$ Ă&#x2026;
\ Ă Â Â&#x203A; aĂ´ ' Ă&#x2021; Â&#x203A; ¸| Ă&#x153; ÂźÂ&#x2013; Ă?½ ¨$
Â? Ă a ) .
SQL
4 4.1
0Ă&#x; 9 Ă&#x2039; O
â&#x20AC;˘ Â&#x201E; + A& Ăž h Â&#x201C; SQL | _ 9 _ + AI Ăž
â&#x20AC;˘ IBMÂ&#x201C; r 1970¸ Ă&#x2030; @ /Â&#x153; ĂĂŹ Ă?\ ø  Sequels Â? H| 9 _ # Q\ ÂŚ > hÂľ Ă? 1 % i .
select A1 , A2 , . . . , An from r1 , r2 , . . . , rm where p
â&#x20AC;˘ Ă&#x2022; ÂŞ sĂ&#x160; ĂŞ> 5 qÂľ Ă&#x2026; Ă?Â&#x201E; 1 á & SQL(Structured Query Language)Â&#x2013; Ă?s 2 §s ÂŁ 7 % 3 .
s SQL | _ 9 Â? H 6 §Â&#x203A; ÂŁ a> ' @ /Ă&#x192; º³ Ă°Â&#x2030; Âłd & Ăľ Â&#x201D; °  ú .
â&#x20AC;˘ 1986¸ ANSIĂź < ISOÂ? H SQL-86s Â&#x201C; ÂŚ Â? H SQL Âł Ă°ĂŻ r` ÂŚÂľ Ă?Âł 1 Ă° % i .
Î A1 ,A2 ,...,An (Ď&#x192;P (r1 Ă&#x2014; r2 Ă&#x2014; ¡ ¡ ¡ Ă&#x2014; rm ))
â&#x20AC;˘ s Âł Ă°ĂŻ rÂ&#x201C; r> Ă&#x2030; 5 qS Ă&#x2026; Â&#x2030; X Â&#x153;á Š &# Q SQL-89, SQL-92\ ÂŚ 5 gÂ&#x2030; ÂłF & ! QÂ&#x201E; Â&#x201C; Ă&#x2030; r SQL:1999s .
â&#x20AC;˘ SQL | _ 9 _ Ăľ Â? HÂ&#x203A; a> ' s .
â&#x20AC;˘ SQL_ ½ ¨$
â&#x20AC;Ť×&#x203A;â&#x20AC;Ź à šÂ&#x2122; è
4.2.1
â&#x20AC;&#x201C; < Xs ' &
_ Ăą Â&#x192; # Q: Â&#x203A; a> ' Ă&#x203A; Âźv &
_ Ăą , Â&#x203A; a> ' Â&#x2022;] Â&#x152; j, Â&#x203A; a> ' Âź Ă&#x203A;v Ă&#x192; ºù &
â&#x20AC;˘ \ V1) @ /Ă&#x2DC; ÂŚs e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; Ht & _ h s 2 §` ÂŁ Œš Ă&#x201D; 1 . select t & " h
ĂŽ from loan
â&#x20AC;&#x201C; / @ od X Â&#x201D; <s ' Â&#x203A; ¸ Â&#x2022;Â&#x192; Â&#x152; # Q: Â&#x203A; a> ' @ /Ă&#x192; Âşl ĂŹ Ă?Ă´ ø Ă&#x2021; _ 9 | # QĂź <Ă&#x2019; Ă&#x2C6;e ÂŚÂ&#x203A; a> ' K $ \ 3  l ĂŹ Ă?Ă´ ø Ă&#x2021;| 9 _ # Q ÂŚÂ&#x2014; \ ¸¿ Âş] j/ NĂ´ B Ă&#x2021; . Ă&#x2019; Â&#x17D; oá Â? rĂŤ Â&#x2013; Ă&#x; m Âś Â&#x161;{ Ăş 9 , Â&#x2022;] Â&#x152; j, Ă&#x192; Âş&
½ Ăą Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H"
§ Î
` ĂŽ ÂŚ] j/ NĂ´ B Ă&#x2021; .
a> ' Â&#x203A; Â? H| ½ 9 Ă&#x2039;> + hÂĽ s Ă&#x2020; Ă&#x2122; ÂźÂ&#x2013; Ă?Ă&#x2014; ĂŚ4 ¤Â? Â&#x; a ) Â&#x201C; â&#x20AC;Ť×&#x203A;â&#x20AC;Ź rÂ&#x203A; Ă&#x2030; a> ' \  1 x p  ½ Â&#x153; Š Ă&#x2030;Ă&#x192; + Âş\ O . Ă&#x2022; ÂŞ Q SQL\  " fÂ? Hl Â&#x2018; r& : Ă&#x153; h ÂźÂ&#x2013; Ă?Ă&#x2014; ĂŚ 4 ¤` Â&#x; ÂŚ] j t ¡ §Â? Ăş H . Ă&#x2014; ĂŚ4 ¤` Â&#x; ÂŚ] j Â&#x201C; ÂŚz ¡Ă&#x153; ÂźÂ&#x20AC; select ] X 6 §\ ÂŁ  distinct` ÂŚ 6 xK  ô Ă&#x2021; .
â&#x20AC;&#x201C; Ă&#x201A; Ă&#x201C;&
_ Ăą â&#x20AC;&#x201C; Ă&#x201D; Ă Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? ] j# Q: Ă Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? _ r  Â&#x2022;Ăľ Â&#x152; = Q` ĂĽ ÂŚÂł Ă° ½ r Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
select distinct t & " h
ĂŽ from loan
â&#x20AC;&#x201C; Â&#x201D; eZ Â&#x2026;n Ă&#x2014; Âź SQLĂľ 1 x& l SQL: C, C++, JavaĂź h <  Â&#x201C; Ăş ° rl Ă&#x2030; Â&#x201D; rÂ&#x192; > # Q\  SQL ĂŤ H Â&#x153;` Š ÂŚÂ&#x; ĂÂ&#x2020; Ă&#x160; < Â? H~ Ă&#x201C; ½ ` O Z ÂŚ] j/ NĂ´ B Ă&#x2021; .
â&#x20AC;˘ distinct_ ĂŹ Ă?@ ø /Â? H alls t ĂŤ Â&#x2013; l Ă&#x; Â&#x2018; r& : Ă&#x153; h ÂźÂ&#x2013; Ă? Ă&#x2014; ĂŚ4 ¤þ Â&#x; Â&#x153;Â&#x203A; Š a\ ' s O Â&#x2014; ¸¿ Âş \ P Ă&#x2122; ÂźÂ&#x2013; Ă?Â&#x2DC; Ă?: x allÂ&#x201C; Â&#x; r Ă&#x2030; 6 x  t ¡ §Â? Ăş H .
â&#x20AC;&#x201C; Âş Ă $
: SQL DDLÂ&#x201C; Ă rĂ Ă&#x2030; Âş $
] Ă jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| ` ÂŚ"
ĂŽ ½ r Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H~ Ă&#x201C;Z ½ ` O ÂŚ] j/ NĂ´ B Ă&#x2021; . â&#x20AC;&#x201C; Ă? Ă´ Âś Ă&#x2021;: SQL DDLÂ&#x201C; rX Ă&#x2030; <s ' Z Â&#x2026;s Ă&#x203A; Âź] H X Âś Ă?Ă´ Ă&#x2021; ÂŚ" `
r ĂŽ ½ Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H~ Ă&#x201C;O ½ Z` ÂŚ] j/ NĂ´ B Ă&#x2021; .
â&#x20AC;˘ Â&#x2014; ¸Â&#x17D; H5 q$ Ă&#x2026;
` Ă ÂŚÂ&#x201E; Ă&#x201A; Ă&#x2019; \ P Â&#x201C; ÂŚz ¡Ă&#x153; ÂźÂ&#x20AC; â&#x20AC;&#x153;*â&#x20AC;? l  ù\ ÂŚ 6 §þ ÂŁ °  s Ăş 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;˘ s  Â&#x153;\ Š  " f SQL\ ÂŚ[ " O
ĂŽ l 0 AK 6 x  Â? HÂ&#x203A; a> ' Ă&#x203A; Âźv Â? H 3 Â&#x153;Ăľ Š °  ú . Ă&#x2022; ÂŞa > 4.1 Â&#x201A; Ă&#x2039; Ă?Â&#x203A; Ă&#x192; ¸.
4.2
select Âą Ă&#x2021; n
select from
Ă&#x201E; M Ă&#x2DC;Â? ] Â&#x152; Âş
loan.â&#x2C6;&#x2014; loan
0 A SQL ĂŤ HÂ&#x201C; r Ă&#x2030; 6 §þ ÂŁ °  s Ăş Â&#x2DC; Ă? ç Â&#x2013;ĂŠ Ă&#x; Â&#x2013; Ă&#x; >  Â&#x2022;$ Â&#x152;
½ Ă Ă&#x2030; + Ă&#x192; Âşe Â&#x201D; . select * from loan
â&#x20AC;˘ SQL Âł Ă°Â&#x2030; Âł_ & l Â&#x2018; r½ : ¨Â&#x203A; ¸Â? H select, from, where_ [ j> h_ ] Â&#x2013; X Ă?½ ¨$
Â? Ă a ) . â&#x20AC;&#x201C; select: Â&#x203A; a> ' @ /Ă&#x192; Âş\  " fĂ&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚÂ&#x192; Ă Â&#x2013;\ Ă&#x;  K { Â&#x153;Ă´ Š Ă&#x2021; . | 9 _ Ăľ \  Â? H5 q$ Ă&#x2026;
_ Ă 3 q2 l ¤ Â&#x; ÂŚ ` \ P l 0 AK 6 xÂ?  a ) .
â&#x20AC;˘ select ] Â&#x201C; X rĂ Ă&#x2030; Â&#x2013;Ă&#x2022; Ă&#x; tÂ&#x192; Ăź Ă Â&#x2013; Ă&#x; , 5 q$ Ă&#x2026;
s Ă 2 §, ÂŁ Â&#x153;Ă&#x192; Š Âş\ ÂŚ 6 x  Ă&#x2021;Ă Ă´ Â&#x2013;Ă&#x2022; Ă&#x; tÂł Ăź Ă°Â&#x2030; Âłd & ` Â&#x201D; ÂŚÂ&#x; ĂÂ&#x2020; Ă&#x160;½ < Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . ({ ĂŹ 9 Ă? ø oĂ&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚ) 1
â&#x20AC;˘ \ V2) Â&#x2014; ¸Â&#x17D; H> Ă˝ a\  5% s \ ÂŚt / LĂ´ ĂĽ Ă&#x2021; Ăľ \ ÂŚÂ&#x2DC; Ă?# Â&#x152; . select > Ă˝ a  ù,ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o*1.05 Â? from account
4.2.4
< 0ĂŁ Ă&#x2039;ĂŁ _ Ă&#x2039;Â&#x17D; _ Ă&#x2026;Â? ĂŹ m Â&#x2DC;
â&#x20AC;˘ SQLÂ&#x201C; r Â&#x203A; Ă&#x2030; a> ' Ăź < 5 q$ Ă&#x2026;
` Ă ÂŚ F "
" ĂŽ
ĂŽ Â? H B j& m 7 §` ÂŁ ÂŚ ] j/ NĂ´ B Ă&#x2021; . + AI Ăž Â? H 6 §þ ÂŁ °  ú .
s | 9 _ Â? HX <s ' Z Â&#x2026;s Ă&#x203A; Âź\ ÂŚĂ&#x152; t q Â&#x2019; t ¡ §Â? Ăş H .
" º-s 2 § as D £ h-s 2 § £
where Âą Ă&#x2021; n
4.2.2
â&#x20AC;˘ as ½ ¨Í HÂ&#x201C; r select ¢ Ă&#x2030; ¸Â? H from ] \ X  " f 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;˘ \ V1) Perryridge t & \ h  " f/ @Ă&#x2DC; ÂŚÂ? a@ ) /Ă&#x2DC; ÂŚĂ&#x2014; ĂŚ\  " f@ / ÂŚĂ&#x201C; Ă&#x2DC; os Â? 1200Â&#x2DC; Ă? H Â&#x2014; ¸Â&#x17D; H@ /Ă&#x2DC; ÂŚ` Œš Ă&#x201D; 1 .
â&#x20AC;˘ \ V)
select @ /Ă&#x2DC; ÂŚÂ Â Ăą from loan where t& " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122; and ĂŽ /Ă&#x2DC; @ ÂŚĂ&#x201C; o > 1200 Â?
select Â&#x201C; ÂŚĂ&#x152; o" Â?
, ĂŽ (Â&#x2019; 6 xĂ´  Ă&#x2021;Â&#x2022; ¸â&#x2C6;&#x2019; 6 xF  KĂ&#x201C; o) as z Â? Â&#x2122;Â&#x201C; Â&#x152; rĂ´ Ă&#x2030; Ă&#x2021;Â&#x2022; ¸ from credit-info
â&#x20AC;˘ SQL\  " fÂ? HĂŤ H \ ` P ÂŚ ? /l 0 AK  Â&#x2022;Â&#x201C; Â&#x152; r Ă&#x2030; 6 § Â&#x; Âł Ă°(â&#x20AC;&#x2DC;â&#x20AC;&#x2122;)` ÂŚ 6 xĂ´  Ă&#x2021; .
â&#x20AC;˘ z ´] jÂ&#x2013; Ă? SQL\  " fÂ? H Ăľ Â&#x161;! Ăź l r Â&#x192; Ă Â&#x2013; Ă&#x; Ăź < Â&#x2122; ÂĽ1 D xá l &Ă&#x2122; ÂźÂ&#x2013; Ă? a> ' Â&#x203A; s 2 §s ÂŁ 5 q$ Ă&#x2026;
s Ă 2 §\ ÂŁ  â&#x20AC;&#x2DC;â&#x2C6;&#x2019;â&#x20AC;&#x2122; l  ù\ ÂŚ 6 x½  Ă&#x2030; + Ă&#x192; Âş\ O .
â&#x20AC;˘ SQLÂ&#x201C; rÂ&#x203A; Ă&#x2030; a> ' @ /Ă&#x192; Âş\  " f 6 xĂ´  Ă&#x2021;Ă&#x192; ÂşÂ&#x2020; Ă&#x2020;& < l h  ù@ / Â&#x2019; \  and, or, not` ÂŚ 6 xĂ´  Ă&#x2021; .
4.2.5
â&#x20AC;˘ SQLÂ&#x201C; rq Ă&#x2030; Â&#x201C; §Â&#x192; Ă Â&#x2013;` Ă&#x; ÂŚ~ > 1 è qĂ&#x192;  ºe Â&#x2022; Â&#x201D; ¸2 ¤ beÂ&#x; tween Â&#x192; Ă Â&#x2013; Ă&#x; \ ÂŚj ]/ NĂ´ B Ă&#x2021; .
â&#x20AC;˘ Ă&#x2C6; Ă&#x2019;e ÂŚÂ Ă&#x192; ÂşÂ? H from ] \ X  as ½ ¨Í H` ÂŚs 6 x  # Â&#x152;&
_ Ăą Ă&#x2021; Ă´ .
â&#x20AC;˘ \ V2) @ /Ă&#x2DC; ÂŚĂ&#x201C; os Â? 1000Ăľ 1500 s \  e Â? Â&#x201D; H@ /Ă&#x2DC; ÂŚÂ Â Ăą\ Œš Ă&#x201D; 1 .
â&#x20AC;˘ \ V1) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  @ /Ă&#x2DC; ÂŚ` ÂŚ~ Ă&#x17D;Â&#x201C; Ă&#x192; rÂ&#x2014; Ă&#x2030; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o\ Â?  @ /K Ă&#x2022; ÂŞ[ t Ăž _ s 2 §, @ ÂŁ /Ă&#x2DC; ÂŚÂ Â Ăą, @ /Ă&#x2DC; ÂŚĂ&#x201C; o` Â? Œ½ ¨ .
select @ /Ă&#x2DC; ÂŚÂ Â Ăą from loan where @ /Ă&#x2DC; ÂŚĂ&#x201C; o between 1000 and 1500 Â?
select Â&#x201C; ÂŚĂ&#x152; o" Â?
, T.@ ĂŽ /Ă&#x2DC; ÂŚÂ Â Ăą, @ /Ă&#x2DC; ÂŚĂ&#x201C; o Â? from borrower as T, loan as S where T.@ /Ă&#x2DC; ÂŚÂ Â Ăą = S.@ /Ă&#x2DC; ÂŚÂ Â Ăą
0 A SQL ĂŤ HÂ&#x201C; r Ă&#x2030; 6 §þ ÂŁ °  ú . select @ /Ă&#x2DC; ÂŚÂ Â Ăą from loan where @ /Ă&#x2DC; ÂŚĂ&#x201C; o >= 1000 and @ Â? /Ă&#x2DC; ÂŚĂ&#x201C; o <= 1500 Â?
â&#x20AC;˘ Ă&#x2C6; Ă&#x2019;e ÂŚÂ Ă&#x192; ÂşÂ? H°  Â&#x201C; Ăş rÂ&#x203A; Ă&#x2030; a> ' \  e Â? Â&#x201D; HÂż ÂşĂ&#x2C6; Ă&#x2019;e ÂŚ` ÂŚq Â&#x201C; §½ Ă&#x2030; + M :  Â&#x153;Ă&#x201E; Š Âť6 x  .
â&#x20AC;˘ SQLÂ&#x201C; r not between Â&#x192; Ă&#x2030; Ă Â&#x2013; Ă&#x; Â&#x2022; ¸] j/ NĂ´ B Ă&#x2021; . 4.2.3
Â&#x161; ŸÞ §Ă&#x2026; u ĂŹÂ&#x2022; ¤
â&#x20AC;˘ \ V2) Ă Â&#x2013;s Ă&#x; & # h QÂ&#x2022; ¸ Brooklyn r \  0 Au Â&#x201C; ÂŚe Â&#x201D; HĂ´ Â? Ă&#x2021;t & _ h Ă Â&#x2013;Â&#x2DC; Ă&#x; Ă? HÂ&#x2014; ¸Â&#x17D; Ht & _ h s 2 §` ÂŁ Œ½ ¨ .
from Âą Ă&#x2021; n
â&#x20AC;˘ \ V1) Â&#x201C; r' Ă&#x2030; Â?\ Â&#x;  @ /Ă&#x2DC; ÂŚ` ÂŚ~ Ă&#x17D;Â&#x201C; Ă&#x192; rÂ&#x2014; Ă&#x2030; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o\ Â?  @ /K Ă&#x2022; ÂŞ[ t Ăž _ s 2 §, @ ÂŁ /Ă&#x2DC; ÂŚÂ Â Ăą, @ /Ă&#x2DC; ÂŚĂ&#x201C; o` Â? Œ½ ¨ .
select distinct T.t & " h
ĂŽ from branch as T, branch as S where T. Ă Â&#x2013; > S. Ă&#x; Ă Â&#x2013; and Ă&#x; S.t & -Â&#x2022; h ¸r =â&#x20AC;&#x2DC;Brooklynâ&#x20AC;&#x2122;
s ĂŤ H] j\ ÂŚÂ&#x203A; a> ' @ /Ă&#x192; ÂşÂ&#x2013; Ă?Âł Ă°Â&#x2030; Âł & Â&#x20AC; 6 §þ ÂŁ °  ú . Î Â&#x201C; ÂŚĂ&#x152; o" Â?
,borrower.@ ĂŽ /Ă&#x2DC; ÂŚÂ Â Ăą,@ /Ă&#x2DC; ÂŚĂ&#x201C; o (borrower ./ loan) Â? s ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚ SQL ĂŤ HĂ&#x153; ÂźÂ&#x2013; Ă?Â&#x152; Â&#x2022;  $
Ă Â&#x20AC; 6 §þ ÂŁ °  ú .
4.2.6
select Â&#x201C; ÂŚĂ&#x152; o" Â?
,borrower.@ ĂŽ /Ă&#x2DC; ÂŚÂ Â Ăą,@ /Ă&#x2DC; ÂŚĂ&#x201C; o Â? from borrower,loan where borrower.@ /Ă&#x2DC; ÂŚÂ Â Ăą=loan.@ /Ă&#x2DC; ÂŚÂ Â Ăą
Ă&#x2DC; U Ă&#x192; ° Ă&#x2021;Â&#x17D; Â&#x201A; Ă&#x2026;Â? ĂŹ m Â&#x2DC;
â&#x20AC;˘ ĂŤ H \ ? P /\   Â&#x2022;Â&#x201C; Â&#x152; r Ă&#x2030; 6 §³ Â&#x; Ă°\ ÂŚ 6 x  Â&#x201C; ÂŚz ¡Ă&#x153; ÂźÂ&#x20AC; H 6 §³ Â&#x; Ă°\ ÂŚs 6 x  # Â&#x152;Âł Ă°Â&#x2030; ³ô & Ă&#x2021; . \ V) â&#x20AC;&#x2DC;Itâ&#x20AC;?s rightâ&#x20AC;&#x2122; â&#x20AC;˘ like Â&#x192; Ă Â&#x2013; Ă&#x; : š Ă&#x201D;Â&#x201C; 1 ÂŚz ¡Â&#x201C; rĂŤ Ă&#x2030; H \ J P Â&#x2021; ` ÂŚt &
½ Ăą Ă&#x2030;M + : 6 xĂ´  Ă&#x2021; . ĂŤ H \ J P Â&#x2021; Â&#x201C; r Ă&#x2030; 6 §¿ ÂŁ Âşl  ù\ ÂŚs 6 x  # Â&#x152;t &
Ă´ Ăą Ă&#x2021; .
â&#x20AC;˘ 5 q$ Ă&#x2026;
s Ă 2 §s ÂŁ Ă&#x2014; ĂŚ4 ¤á Â&#x; &# QÂ&#x2014; ¸ ù$
s Ă e Â? Â&#x201D; H
Ă&#x201E; â Âş\  Â? H 5 q$ Ă&#x2026;
s Ă 2 §¡ ÂŁ ÂĄ\ Ăş  Â&#x203A; a> ' s 2 §` ÂŁ Œ¡  ¥ Â&#x201C; . â&#x20AC;˘ \ V2) Perryridge t & \ h  " f@ /Ă&#x2DC; ÂŚ` ÂŚ~ Ă&#x17D;Â&#x201C; Ă&#x192; rÂ&#x2014; Ă&#x2030; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o Â? \  @ /K Ă&#x2022; ÂŞ[ t_ Ăž s 2 §, @ ÂŁ /Ă&#x2DC; ÂŚÂ Â Ăą, @ /Ă&#x2DC; ÂŚĂ&#x201C; o` Â? Œ½ ¨ .
â&#x20AC;&#x201C; â&#x20AC;&#x2DC;%â&#x20AC;&#x2122;: # QÂ&#x2039; Ă&#x201A; " Ă&#x2019;ĂŹ rĂŤ H \ Ăľ P Â&#x2022; ¸{ u 9 QÂ&#x2039; Ă´ " Ă&#x2021;ĂŤ H Ăź <Â&#x2022; ¸{ u 9 â&#x20AC;&#x201C; â&#x20AC;&#x2DC; â&#x20AC;&#x2122;: #
select Â&#x201C; ÂŚĂ&#x152; o" Â?
,borrower.@ ĂŽ /Ă&#x2DC; ÂŚÂ Â Ăą,@ /Ă&#x2DC; ÂŚĂ&#x201C; o Â? from borrower,loan where borrower.@ /Ă&#x2DC; ÂŚÂ Â Ăą=loan.@ /Ă&#x2DC; ÂŚÂ Â Ăą and & t " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122; ĂŽ
â&#x20AC;˘ \ V1) â&#x20AC;&#x2DC;Perry%â&#x20AC;&#x2122;: â&#x20AC;&#x153;Perryâ&#x20AC;?Â&#x2013; Ă?r  Â&#x2022; Â&#x152; Â? HÂ&#x2014; ¸Â&#x17D; HĂŤ H \ P
S Ăą Â&#x2030; X > [ j> h_ ĂŤ H Â&#x2013; Ă?s Ă&#x20AC; Ă&#x2019;# QÂ&#x201D; Â&#x2014; ¸ â&#x20AC;˘ \ V2) â&#x20AC;&#x2DC; â&#x20AC;&#x2122;: & HĂŤ Â&#x17D; H \ P 2
â&#x20AC;˘ \ V3) Â&#x201C; ÂŚĂ&#x152; o Â? o s 2 §\ ÂŁ  â&#x20AC;&#x153;Mainâ&#x20AC;?s Â? HĂ&#x201A; Ă&#x2019;ĂŹ rĂŤ H ` P \ ÂŚÂ&#x; ĂÂ&#x2020; Ă&#x160; < Â? HÂ&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
4.4 4.4.1
select Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from customer where Â&#x201C; ÂŚĂ&#x152; o- Â? o like â&#x20AC;&#x2DC;%Main%â&#x20AC;&#x2122;
(select Â&#x201C; ÂŚĂ&#x152; o" Â?
from depositor) ĂŽ union (select Â&#x201C; ÂŚĂ&#x152; o" Â?
from borrower) ĂŽ â&#x20AC;˘ unionÂ&#x201C; r Ă&#x2030; 1 xĂ&#x153; l ÂźÂ&#x2013; Ă?Ă&#x2014; ĂŚ4 ¤` Â&#x; ÂŚ] j Ă´ Ă&#x2021; . Ă&#x2014; ĂŚ4 ¤` Â&#x; ÂŚ] j Â&#x201C; ÂŚz ¡t ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; union @ /Â&#x2019; \  union all` ÂŚ 6 x  Ă&#x2021; Ă´ .
â&#x20AC;˘ \ V4) like â&#x20AC;&#x2DC;ab\%cd%â&#x20AC;&#x2122; escape â&#x20AC;&#x2DC;\â&#x20AC;&#x2122;: â&#x20AC;&#x153;ab%cdâ&#x20AC;?Â&#x2013; Ă?r  Â&#x2022;á Â&#x152; &Â? HÂ&#x2014; ¸Â&#x17D; HĂŤ H \ P Ă&#x161;I s Ăť Ă Ă&#x201E;3 ĂťĂ&#x20AC; ÂĽÂ&#x161; W ŸÞ §8 u Ă˝Ă&#x2026; Ă&#x2DC;" U e
4.4.2
w Â&#x2039;Ă&#x2030; Ăš mÂś ÂĽÂ&#x17D; Â? Ă&#x2026;Â? ĂŹ m Â&#x2DC;
â&#x20AC;˘ \ V) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  > Ă˝ aĂź <@ /Ă&#x2DC; ÂŚ` ÂŚÂ&#x2014; ¸¿ Âş t Â&#x201C; ÂŚe Â? Â&#x201D; HÂ&#x2014; ¸ HÂ&#x201C; Â&#x17D; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
â&#x20AC;˘ SQL ĂŤ H_ z ´Â? ' Â&#x; Ăľ Â? H order by ] ` X ÂŚs 6 x  # Â&#x152; Τ Ă&#x2DC; _ 4 Ă H" f\ ÂŚ&
§ Ăą =½ > Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
(select Â&#x201C; ÂŚĂ&#x152; o" Â?
from depositor) ĂŽ intersect (select Â&#x201C; ÂŚĂ&#x152; o" Â?
from borrower) ĂŽ
â&#x20AC;˘ \ V1) Â&#x201C; ÂŚĂ&#x152; os Â? 2 §` ÂŁ ÂŚl ĂŻ rĂ&#x153; ÂźÂ&#x2013; Ă?&
§ Ăą = > select distinct Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from borrower,loan where borrower.@ /Ă&#x2DC; ÂŚÂ Â Ăą=loan.@ /Ă&#x2DC; ÂŚÂ Â Ăą and t & " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122; ĂŽ order by Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ
â&#x20AC;˘ intersectÂ&#x2022; ¸ unionĂľ Ă° Ă? t ø Â&#x2013; Ă? 1 xĂ&#x153; l ÂźÂ&#x2013; Ă?Ă&#x2014; ĂŚ4 ¤ Â&#x; ÂŚ] ` j Ă´ Ă&#x2021; . Ă&#x2014; ĂŚ4 ¤` Â&#x; ÂŚ] j Â&#x201C; ÂŚz ¡t ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; inter sect @ /Â&#x2019; \  intersect all` ÂŚ 6 xĂ´  Ă&#x2021; .
order byÂ? Hl Â&#x2018; r& : Ă&#x153; h ÂźÂ&#x2013; Ă?¸ Â&#x161;2 § ÂŁ Ă HĂ&#x153; ÂźÂ&#x2013; Ă?Â&#x2020; Ă&#x201C;3 ½ q` l ÂŚ&
Ăą §ô = > Ă&#x2021; .
4.4.3
Ă&#x2030; Ăš mÂś ÂĽÂ&#x17D; Â? Ă&#x2026;Â? ĂŹ m Â&#x2DC;
â&#x20AC;˘ \ V) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  > Ă˝ aĂŤ Â&#x2013;e Ă&#x; Â&#x201C; Â&#x201D; ÂŚ@ /Ă&#x2DC; ÂŚÂ&#x201C; r\ Ă&#x2030; Â? O HÂ&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o Â? _ s 2 §` ÂŁ Œš Ă&#x201D; 1 .
â&#x20AC;˘ Â&#x161; ¸2 § ÂŁ Ă HĂľ ? /a > Ă&#x2039; Ă HÂ&#x201C; r asc ¢ Ă&#x2030; ¸Â? H descÂ&#x2013; Ă? p ¡ .
(select Â&#x201C; ÂŚĂ&#x152; o" Â?
from depositor) ĂŽ except (select Â&#x201C; ÂŚĂ&#x152; o" Â?
from borrower) ĂŽ
â&#x20AC;˘ \ V2) @ /Ă&#x2DC; ÂŚĂ&#x201C; o` Â? ÂŚ l ĂŻ rĂ&#x153; ÂźÂ&#x2013; Ă? ? /a > Ă&#x2039; Ă HĂ&#x153; ÂźÂ&#x2013; Ă? &
§ Ăą = > &, @ á /Ă&#x2DC; ÂŚĂ&#x201C; os Â? Ăş  °Ă&#x153; ÂźÂ&#x20AC; @ /Ă&#x2DC; ÂŚÂ Â Ăą\ ÂŚl ĂŻ rĂ&#x153; ÂźÂ&#x2013; Ă?Â&#x161; ¸2 § ÂŁ Ă HĂ&#x153; ÂźÂ&#x2013; Ă?&
§ Ăą = > # Â&#x152; .
â&#x20AC;˘ exceptÂ&#x2022; ¸ 1 xĂ&#x153; l ÂźÂ&#x2013; Ă?Ă&#x2014; ĂŚ4 ¤` Â&#x; ÂŚ] j Ă´ Ă&#x2021; . Ă&#x2014; ĂŚ4 ¤` Â&#x; ÂŚ] j Â&#x201C; ÂŚz ¡t ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; except @ /Â&#x2019; \  except all` ÂŚ 6 xĂ´  Ă&#x2021; .
select * from loan order by @ /Ă&#x2DC; ÂŚĂ&#x201C; o desc,@ Â? /Ă&#x2DC; ÂŚÂ Â Ăą asc
4.5 4.3
ÂĽĂ&#x2030; Â? Âś Ăš mÂś ÂĽÂ&#x17D; Â? Ă&#x2026;Â? ĂŹ m Â&#x2DC;
â&#x20AC;˘ \ V) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  > Ă˝ a¢ ¸Â? H@ /Ă&#x2DC; ÂŚs e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
â&#x20AC;˘ ĂŤ H \ ? P /\  â&#x20AC;&#x2DC;%â&#x20AC;&#x2122;Ăź < â&#x20AC;&#x2DC; â&#x20AC;&#x2122;` ÂŚ ? /l 0 AK escape ½ ¨Í H` ÂŚ 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
4.2.7
Ăš Ă&#x2030; mÂś ÂĽÂ&#x17D; Â? Ă&#x2026;Â? ĂŹ m Â&#x2DC;
Ă&#x17E;Â&#x2018; n Ăş Ă&#x2014;
Ăš Ă&#x2030; m4 ] ¤Â&#x2022; K ¤
â&#x20AC;˘ SQLÂ&#x201C; r Ă&#x2030; 6 §þ ÂŁ °  Â&#x201C; Ăş r| Ă&#x2030; > 9 Â&#x2020; Ă&#x160;Ă&#x192; < Âş\ ÂŚ] j/ NĂ´ B Ă&#x2021; .
â&#x20AC;˘ Ă&#x2014;4 ĂŚ ¤` Â&#x; ÂŚ) Â&#x2021;6 x  % ` i ÂŚM : SQL | _ 9 _ _ p \ ÂŚÂ&#x203A; a> ' Ă Â&#x192; Â&#x2013; Ă&#x; _ Ă&#x2014; ĂŚ| ½ 9 Ă&#x2039;(multiset) ! + QÂ&#x201E; Ă&#x153; ÂźÂ&#x2013; Ă? 6 §þ ÂŁ °  ú s &
_ Ăą ½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . # Â&#x152;l " f r1 Ăľ r2 Â? H Ă&#x2014; ĂŚ| 9 ½ Ă&#x2039;s + .
â&#x20AC;&#x201C; ¨
ç ĂŽ H: avg â&#x20AC;&#x201C; Ăž jÂ&#x2122; è: min â&#x20AC;&#x201C; Ăž j@ /: max â&#x20AC;&#x201C; 8 x½ Ăş Ă&#x2039;: sum +
â&#x20AC;&#x201C; r1 \  Ă&#x2C6; Ă&#x2019;e ÂŚ t1 _ Â&#x2018; rs : c1 > he Â&#x201C; Â&#x201D; ÂŚ, t1 s Ď&#x192;θ \ ÂŚ Â&#x2013;7 Ă&#x; ĂŤ ¤ ĂĄ Â&#x20AC; Ď&#x192;θ (r1 )\  Â? H t1 _ Â&#x2018; rs : c1 > h e Â&#x201D; .
â&#x20AC;&#x201C; > hĂ&#x192; Âş: count â&#x20AC;˘ \ V1) Perryridge t & _ h > Ă˝ a_ ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? Œ½ ¨ . select avg(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account where t & " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122; ĂŽ
â&#x20AC;&#x201C; r1 \  e Â? Â&#x201D; H t1 _ y Â&#x2022; Â&#x152; Â&#x2018; r\ :  @ /K , Î A (t1 )s Â&#x2013;{ Ă&#x; ĂŠ Ă&#x2C6; 9 Ă&#x2019;e ÂŚ t1 \  @ /Ă´ Ă&#x2021; Ă&#x2020; Ă&#x2019;Ă&#x2DC; ÂŚ` ÂŚ p ¡ Â&#x20AC; Î A (r1 )\  Â? H Î A (t1 )_ Â&#x2018; rs : e Â&#x201D; . â&#x20AC;&#x201C; r1 \  Ă&#x2C6; Ă&#x2019;e ÂŚ t1 _ Â&#x2018; rs : c1 > he Â&#x201C; Â&#x201D; ÂŚ, r2 \  Ă&#x2C6; Ă&#x2019;e ÂŚ t2 _ Â&#x2018; rs : c2 > he Ă&#x153; Â&#x201D; ÂźÂ&#x20AC; r1 Ă&#x2014; r2 \  Â? H t1 .t2 _ Â&#x2018; rs : 8 x c1 â&#x2C6;&#x2014; c2 > Ăş he Â&#x201D; .
â&#x20AC;˘ group by ] ` X ÂŚs 6 x  # Â&#x152;Ă&#x2022; ÂŞĂ&#x2019; ¨Z Â&#x2013; > Ă?| > 9 Â&#x2020; Ă&#x160;Ă&#x192; < Âş\ ÂŚ & 6 h x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . 3
â&#x20AC;˘ \ V2) y Â&#x2022;t Â&#x152; & _ h > Ă˝ a_ ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? Œ½ ¨ .
â&#x20AC;˘ \ V) @ /Ă&#x2DC; ÂŚĂ&#x201C; os Â? V ° , â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş ÂźÂ&#x2013; Ă?á &# Qe Â? Â&#x201D; H@ /Ă&#x2DC; ÂŚ_ @ /Ă&#x2DC; ÂŚ   ù\ Œš Ă&#x201D; 1 .
select t & " h
,avg(ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account group by t & " h
ĂŽ
select @ /Ă&#x2DC; ÂŚÂ Â Ăą from loan where @ /Ă&#x2DC; ÂŚĂ&#x201C; o is null Â?
â&#x20AC;˘ 9 | > Â&#x2020; Ă&#x160;Ă&#x192; < Âş\ ÂŚ& 6 h x  l Â&#x201E; \  Ă&#x2014; ĂŚ4 ¤\ Â&#x; ÂŚ] j ½ Ă&#x2030;Â&#x20AC; + 9 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź š e ` Â&#x201D; ÂŚĂ&#x192; Âşe Â&#x201D; . sM :\  Â? H distinct v 0 >Ă&#x2014; Âź\ ÂŚ 6 xĂ´  Ă&#x2021; .
â&#x20AC;˘ is not null` ÂŚs 6 x  # Â&#x152;: ¤& ÂŁ
5 Ăą q$ Ă&#x2026;
_ à ° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş V s , Â? t q Â&#x201C; §½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;˘ \ V3) y Â&#x2022;t Â&#x152; & _ h > Ă˝ a\ ÂŚ Â&#x201D; Â&#x201C; ÂŚĂ&#x152; o_ Â? Ă&#x192; Âş\ ÂŚ> Ă Â&#x2013; Ă&#x; .
â&#x20AC;˘ SQL\  " fV ° , â&#x20AC;Ť_×&#x203A;â&#x20AC;Ź Ăş % Â&#x192;o Â? HÂ&#x203A; a> ' @ /Ă&#x192; Âş\  " fV ° , â&#x20AC;Ť_×&#x203A;â&#x20AC;Ź Ăş % Â&#x192;o Ăź <°  ú .
select t & " h
,count(distinct Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
) Î from depositor,account where depositor.> ý a  ù=account.> ý a  ù group by t & " h
ĂŽ
4.7 4.7.1
â&#x20AC;˘ Ă&#x2022; ÂŞĂ&#x2019; ¨Z Â&#x2013; > Ă?| 9 > \ ÂŚ >Ă Â&#x2013;½ Ă&#x; Ă&#x2030;: + M having ] ` X ÂŚs 6 x  # Â&#x152; Ăľ \ ÂŚ] jĂ´ Ă&#x2021;½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
Ă&#x17E;² n Ăş Ă&#x2030; v ßÚ Ă&#x2021;8 m Ă˝Ă&#x2026; Ă&#x201E; k Ăš Ă&#x2030; mÂś ÂĽr Â? ! Ă° aĂĽ V
â&#x20AC;˘ in Â&#x192; \ ÂŚs 6 x  # Â&#x152;| 9 ½ Ă&#x2039;Ă? + r! l Q~ ` 1 ÂŚ Â&#x17D; ½ Ă&#x2030;Ă&#x192; + Âş Â&#x201D; e .
â&#x20AC;˘ \ V4) t & _ h > Ă˝ a_ ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? 1200 s Â&#x153;Â&#x201C; Š t & _ h t & " h
þ Î ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? Œ½ ¨ .
â&#x20AC;˘ \ V1) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  > Ă˝ aĂź <@ /Ă&#x2DC; ÂŚ` ÂŚÂ&#x2014; ¸¿ Âş t Â&#x201C; ÂŚe Â? Â&#x201D; HÂ&#x2014; ¸ HÂ&#x201C; Â&#x17D; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
select t & " h
,avg(ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account group by t & " h
ĂŽ having avg(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) > 1200 Â?
select distinct Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from borrower where Â&#x201C; ÂŚĂ&#x152; o" Â?
in ĂŽ (select Â&#x201C; ÂŚĂ&#x152; o" Â?
from depositor) ĂŽ
â&#x20AC;˘ \ V) Â&#x2014; ¸Â&#x17D; H> Ă˝ a_ ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? Œ½ ¨ . â&#x20AC;˘ \ V2) Perryridge t & \ h  > Ă˝ aĂź <@ /Ă&#x2DC; ÂŚ` ÂŚÂ&#x2014; ¸¿ Âş t Â&#x201C; ÂŚe Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
select avg(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account
select distinct Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from borrower,loan where borrower.@ /Ă&#x2DC; ÂŚÂ Â Ăą=loan.@ /Ă&#x2DC; ÂŚÂ Â Ăą and t & " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122; ĂŽ and (t & " h
,Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
) in ĂŽ (select t & " h
,Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
Î from depositor,account where depositor.> ý a  ù= account.> ý a  ù)
â&#x20AC;˘ # QÂ&#x2039; Â&#x203A; " a> ' _ 8 xĂ&#x2C6; Ăş Ă&#x2019;e ÂŚĂ&#x192; Âş\ ÂŚ> Ă Â&#x2013; Ă&#x; Â&#x201C; ÂŚz ¡Ă&#x153; ÂźÂ&#x20AC; 6 § ÂŁ ° Ăľ  s Ăş Ă´ Ă&#x2021; . select count(*) from customer â&#x20AC;˘ \ V5) Harrison r \  Ă&#x2026; Ă&#x2019; Â&#x20AC; " f[ j> hs Â&#x153;_ Š > a\ Ă˝ ÂŚ Â&#x201D; Â&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? Œ½ ¨ . select depositor.Â&#x201C; ÂŚĂ&#x152; o" Â?
,avg(ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from depositor,account,customer where depositor.> Ă˝ a  ù=account.> Ă˝ a  ù and depositor.Â&#x201C; ÂŚĂ&#x152; o" Â?
=customer.Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
ĂŽ and customer.Â&#x201C; ÂŚĂ&#x152; o-Â&#x2022; Â? ¸r =â&#x20AC;&#x2DC;Harrisonâ&#x20AC;&#x2122; group by depositor.Â&#x201C; ÂŚĂ&#x152; o" Â?
Î having count(distinct depositor.> ý a  ù) >= 3
â&#x20AC;˘ \ V3) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  > Ă˝ aÂ? He t Â&#x201D; ĂŤ Â&#x2013;@ Ă&#x; /Ă&#x2DC; ÂŚÂ&#x201C; r\ Ă&#x2030; Â? O HÂ&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚ o_ Â? Ă&#x152; s 2 §` ÂŁ Œš Ă&#x201D; 1 . select distinct Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from borrower ÂŚĂ&#x152; Â?
not in where Â&#x201C; o" ĂŽ (select Â&#x201C; ÂŚĂ&#x152; o" Â?
from depositor) ĂŽ
SQL ĂŤ H\  " f where ] Ăľ X having ] s X °  s Ăş 6 x  áÂ&#x20AC; & SQLÂ&#x201C; rÂ&#x20AC; Ă&#x2030; $ where ] ` X ÂŚÂ&#x20AC; $ & 6 h xĂ´  Ă&#x2021; . " f0 A SQL ĂŤ H\  " fÂ? H where ] \ X  Í Â&#x2013;7 Ă&#x; ¤ ĂĄ Â? HĂ&#x2C6; Ă&#x2019; ÂŚ[ e t` Ăž ÂŚÂ&#x20AC; $ Ă&#x2022; ÂŞĂ&#x2019; ¨i
Ă´ ç Ă&#x2021; 6 § having ] ÂŁ ` X ÂŚ& 6 h x  # Â&#x152;ĂŤ Â&#x2013;7 Ă&#x; ¤ ĂĄ t ¡ §Â? Ăş HĂ&#x2022; ÂŞĂ&#x2019; ¨Â&#x201C; r! Ă&#x2030; Q; Â? 2 .
4.6
â&#x20AC;˘ inĂľ not inÂ&#x201C; r\ Ă&#x2030; P + A| Ăž 9 ½ Ă&#x2039;\ +  & 6 h x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . â&#x20AC;˘ \ V4) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;\  @ /Ă&#x2DC; ÂŚs e t Â&#x201D; ĂŤ Â&#x2013; s Ă&#x; 2 §s ÂŁ Smith ¢ ¸Â? H Joness Â? Â&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
Ă&#x2021;Š f , Â&#x2020;
select distinct Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from borrower where Â&#x201C; ÂŚĂ&#x152; o" Â?
not in (â&#x20AC;&#x2DC;Smithâ&#x20AC;&#x2122;,â&#x20AC;&#x2DC;Jonesâ&#x20AC;&#x2122;) ĂŽ
â&#x20AC;˘ null v 0 >Ă&#x2014; Âź\ ÂŚs 6 x  # Â&#x152;ÂŁ ¤ :&
5 Ăą q$ Ă&#x2026;
_ à ° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş V , Â&#x201C; t q Â&#x201C; §½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . 4
4.7.2
Ăš Ă&#x2030; mÂś ÂĽR Â? w Â&#x2039;
â&#x20AC;˘ ' Â&#x203A;> a A Â&#x203A; a> ' B\ ÂŚÂ&#x; ĂÂ&#x2020; Ă&#x160; < Â? H# Â&#x152;Ă&#x201A; Ă&#x2019;Â? H â&#x20AC;&#x153;not exists (B except A)â&#x20AC;?\ ÂŚs 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;˘ â&#x20AC;&#x153;| ½ 9 Ă&#x2039;? + /\  Â&#x2019; Â&#x2DC; Ă?  Â&#x2022;Â&#x201C; Â&#x152; r° Ă&#x2030; â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş Ăž jÂ&#x2122; èô Ă&#x2021; Â&#x201D; r > F â&#x20AC;?Â? H SQL\  " f > someĂ&#x153; ÂźÂ&#x2013; Ă?Âł Ă°Â&#x2030; ³ô & Ă&#x2021; .
â&#x20AC;˘ \ V2) Brooklyn r \  0 Au Ă´ Ă&#x2021;Â&#x2014; ¸Â&#x17D; Ht & \ h  > Ă˝ a\ ÂŚ t Â&#x201C; ÂŚe Â? Â&#x201D; HÂ&#x201C; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
â&#x20AC;˘ \ V1) Ă Â&#x2013;s Ă&#x; & # h QÂ&#x2022; ¸ Brooklyn r \  0 Au Â&#x201C; ÂŚe Â&#x201D; HĂ´ Â? Ă&#x2021;t & _ h Ă Â&#x2013;Â&#x2DC; Ă&#x; Ă? HÂ&#x2014; ¸Â&#x17D; Ht & _ h s 2 §` ÂŁ Œ½ ¨ .
select distinct S.Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from depositor as S where not exists (select t & " h
ĂŽ from branch where t & -Â&#x2022; h ¸r =â&#x20AC;&#x2DC;Brooklynâ&#x20AC;&#x2122;) except (select R.t & " h
ĂŽ from depositor as T, account as R where T.> Ă˝ a  ù = R.> Ă˝ a  ù and S.Â&#x201C; ÂŚĂ&#x152; o" Â?
= R.Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
) ĂŽ
select t& ĂŽ h "
from branch where Ă Â&#x2013; > some Ă&#x; (select Ă Â&#x2013; Ă&#x; from branch where t & -Â&#x2022; h ¸r =â&#x20AC;&#x2DC;Brooklynâ&#x20AC;&#x2122;) â&#x20AC;˘ < some, <= some, >= some, = some, <> some 1 xÂ&#x2022; p ¸ 0 x p . â&#x20AC;˘ = someÂ&#x201C; r inĂľ Ă&#x2030; 1 x s p t ĂŤ Â&#x2013; <> someĂľ Ă&#x; not inÂ&#x201C; r Ă&#x2030; Ă&#x2DC; Ă&#x201D; .
â&#x20AC;˘ 0 A| 9 _ \  Â&#x201A; Â&#x192; Â? a Ă&#x2C6; ) Ă&#x2019;e ÂŚ  Ă&#x192; ÂşÂ? H Â&#x153;0 Š A| 9 _ \  " f 6 x|  cĂ&#x192; ¨ Âş\ t O ĂŤ Â&#x2013; Ă&#x; Â&#x153;0 Š A| _ 9 \  Â&#x201A; Â&#x192; Â? aĂ&#x2C6; ) Ă&#x2019;e ÂŚÂ Ă&#x192; Âş H Â? 0 A| 9 _ \  6 x|  cĂ&#x192; ¨ Âşe Â&#x201D; .
â&#x20AC;˘ \ V2) Ă Â&#x2013;s Ă&#x; Brooklyn r \  0 Au Â&#x201C; ÂŚe Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; H t & _ h Ă Â&#x2013;Â&#x2DC; Ă&#x; Ă? H Â&#x2014; ¸Â&#x17D; Ht & _ h s 2 §` ÂŁ Œ½ ¨ . select t& ĂŽ h "
from branch where Ă Â&#x2013; > all Ă&#x; (select Ă Â&#x2013; Ă&#x; from branch where t & -Â&#x2022; h ¸r =â&#x20AC;&#x2DC;Brooklynâ&#x20AC;&#x2122;)
4.7.4
â&#x20AC;˘ Ă&#x2014;4 ĂŚ ¤Â? Â&#x; aĂ&#x2C6; ) Ă&#x2019;e ÂŚs e Â? Â&#x201D; Ht Â&#x17D; ½ Ă&#x2030;M + :\  Â? H unique ½ ¨ H` ĂŤ ÂŚ 6 xĂ´  Ă&#x2021; . â&#x20AC;˘ \ V1) Perryridge t & \ h  _ > Ă˝ aĂŤ Â&#x2013;` Ă&#x; ÂŚ Â&#x201D; Â&#x2014; ¸ HÂ&#x201C; Â&#x17D; ÂŚĂ&#x152; o` Â? Œš Ă&#x201D; 1 .
â&#x20AC;˘ < all, <= all, >= all, = all, <> all 1 xÂ&#x2022; p ¸ 0 x p .
select T.Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from depositor as T where unique ÂŚĂ&#x152; Â?
(select R.Â&#x201C; o" ĂŽ from account, depositor as R where T.Â&#x201C; ÂŚĂ&#x152; o" Â?
= R.Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
Î and R.> ý a  ù = account.> ý a  ù and account.t & " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122;) ĂŽ
â&#x20AC;˘ <> allÂ&#x201C; r not inĂľ Ă&#x2030; 1 x s p . â&#x20AC;˘ \ V3) > Ă˝ a[ t_ Ăž ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â?  Â&#x153;´ Š §Â&#x201C; Ăş rt Ă&#x2030; & ` h Œš Ă&#x201D; 1 . select t & " h
ĂŽ from account group by t & " h
ĂŽ having avg(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) >= all Â? (select avg(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account group by t & " h
) ĂŽ 4.7.3
Ă&#x17E;Â&#x2018; n Ăş Ă&#x2014;Â&#x161; ŸÞ §Â&#x201D; u Âź< 0; c6 Â&#x201D; ¢Ă&#x; X Ă&#x2C6; e
â&#x20AC;˘ \ V2) Perryridge t & \ h  ¿ Âş> hs Â&#x153;_ Š > Ă˝ a\ ÂŚ Â&#x201D; Â&#x2014; ¸Â&#x17D; HÂ&#x201C; ÂŚĂ&#x152; o` Â? Œš Ă&#x201D; 1 . select T.Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from depositor as T where not unique (select R.Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from account, depositor as R where T.Â&#x201C; ÂŚĂ&#x152; o" Â?
= R.Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
Î and R.> ý a  ù = account.> ý a  ù and account.t & " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122;) ĂŽ
Ă&#x192; Ă? Ă&#x2026;ĂĽ Ă&#x2039;4 ž ; c6 Â&#x201D; ¢Ă&#x; X Ă&#x2C6; e
â&#x20AC;˘ exists ½ ¨Í H` ÂŚs 6 x  # Â&#x152; 0 A| 9 _ Ăľ Ă&#x2C6; Ă&#x2019;e ÂŚ` ÂŚ t Â? Ht Â? t \ ÂŚ Â&#x17D; ½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . â&#x20AC;˘ exists A: Â&#x203A; a> ' A Ă&#x2C6; Ă&#x2019;e ÂŚ` ÂŚ t Â&#x20AC; Â&#x201A; Ă?s Ă&#x192; Â&#x201C; ÂŚ, t t ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; f Âą s .
4.8
â&#x20AC;˘ \ V1) Â&#x201C; r' Ă&#x2030; Â?\ Â&#x;  > Ă˝ aĂź </ @Ă&#x2DC; ÂŚ` Œ¸ Â&#x2014;Âż Âş t Â&#x201C; ÂŚe Â? Â&#x201D; HÂ&#x2014; ¸ HÂ&#x201C; Â&#x17D; ÂŚĂ&#x152; o_ Â? s 2 §` ÂŁ Œš Ă&#x201D; 1 .
Â&#x201D; ½
â&#x20AC;˘ Ă&#x201A; Ă&#x201C;Â? H create view ĂŤ H Â&#x153;` Š ÂŚs 6 x  # Â&#x152;&
_ Ăą Ă´ Ă&#x2021; .
select Â&#x201C; ÂŚĂ&#x152; o" Â?
ĂŽ from borrower where exists (select â&#x2C6;&#x2014; from depositor where depositor.Â&#x201C; ÂŚĂ&#x152; o" Â?
=borrower.Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
) ĂŽ
â&#x20AC;˘ create view ĂŤ H Â&#x153;_ Š + Ad Ăž Â&#x201D; create view v as hquery expressioni # Â&#x152;l " f vÂ? HĂ&#x201A; Ă&#x201C;_ s 2 §s ÂŁ . 5
â&#x20AC;˘ \ V) t & Ăľ h Â&#x201C; ÂŚĂ&#x152; o" Â?
Ă&#x153; ĂŽ ÂźÂ&#x2013; Ă?½ ¨$
Â? Ă aĂ&#x201A; ) Ă&#x201C;
â&#x20AC;˘ \ V2) Â&#x2014; ¸Â&#x17D; Ht & _ h 8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o_ Â? ¨
ç ĂŽ HÂ&#x2DC; Ă? t & _ h 8 x Ăş Â&#x2013;Ă&#x201C; Ă&#x; ĂŻ os Â? & Â&#x201C; h rt Ă&#x2030; & ` h Œš Ă&#x201D; 1 .
create view all-customer as (select t & " h
, Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
Î from depositor, account where depositor.> ý a  ù = account.> ý a  ù) union (select t & " h
, Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
Î from borrower, account where borrower.> ý a  ù = account.> ý a  ù)
with branch-total(t & " h
,8 ĂŽ xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o) as Â? select t & " h
,sum(ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account group by t & " h
ĂŽ with branch-total-avg(8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o¨ Â?
ç ĂŽ H) as select avg(8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from branch-total select t & " h
ĂŽ from branch-total, branch-total-avg where branch-total.8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o >= Â? branch-total-avg.8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o¨ Â?
ç Î H)
â&#x20AC;˘ Ă&#x201A; Ă&#x201C;_ 5 q$ Ă&#x2026;
s à 2 §` £ ŒD h\ v> &
_ Ăą ½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . create view branch-total-loan(t & " h
,Â&#x201E; ĂŽ ^ Â&#x2030;@ /Ă&#x2DC; ÂŚĂ&#x201C; o) as Â? (select t& " h
, sum(@ ĂŽ /Ă&#x2DC; ÂŚĂ&#x201C; o) Â? from loan group by t & " h
) ĂŽ
4.9
Ă&#x2014;Âś Â&#x2018; ÂĽĂ&#x2021; Â? Ăš m8 Ă˝
4.9.1
Â&#x2013; ÂĽy ¢c Ă&#x153; RĂĽ Ă&#x2039;4 ž
KT 6 ' [9 cT  Â&#x17D;8 Ă˝Â&#x2022; ¤X Ă&#x2039; N
4.10.1
V l< c g
â&#x20AC;˘ Âş Ă?V Ă&#x2021;  Â? H SQL\  " f 6 §þ ÂŁ °  s Ăş Âł Ă°Â&#x2030; ³ô & Ă&#x2021; . delete from r where P
â&#x20AC;˘ \ V1) t & _ h > Ă˝ a[ t_ Ăž ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? 1200Â&#x2DC; Ă? H t & [ h t_ Ăž ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? Œ½ ¨ .
# Â&#x152;l " f rÂ&#x201C; rÂ&#x203A; Ă&#x2030; a> ' s 9, P Â? HÂ&#x203A; ¸| s . â&#x20AC;˘ \ V1) Perryridge t & \ h  e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; H> Ă˝ a\ ÂŚ Â&#x2022;] Â&#x152; j . delete from account where t & " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122; ĂŽ
select t & " h
,ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o¨ Â?
ç Î H from (select t & " h
, avg(ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account group by t & " h
) ĂŽ as (branch-avg(t & " h
,ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o¨ Â?
ç ĂŽ H)) where ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o¨ Â?
ç Î H > 1200
â&#x20AC;˘ \ V2) @ /Ă&#x2DC; ÂŚĂ&#x201C; os Â? 1300\  " f 1500 s \  e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; H @ /Ă&#x2DC; ÂŚ` ÂŚ Â&#x2022;] Â&#x152; j . delete from loan where @ /Ă&#x2DC; ÂŚĂ&#x201C; o between 1300 and 1500 Â?
s \ VÂ? H¡ ÂĄ" Ăş f having ] ` X ÂŚs 6 x  # Â&#x152;½ ¨ % i . â&#x20AC;˘ \ V2) y Â&#x2022;t Â&#x152; & _ h >Ă˝ a_ 8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; os Â?  Â&#x153; Š Ht & _ h 8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o` Â? Œ½ ¨ .
â&#x20AC;˘ \ V3) Needham r \  0 Au Ă´ Ă&#x2021;Â&#x2014; ¸Â&#x17D; Ht & \ h  e Â? Â&#x201D; H> a\ Ă˝ ÂŚ Â&#x2022;] Â&#x152; j . delete from account where t & " h
in ĂŽ (select t & " h
ĂŽ from branch & -Â&#x2022; h ¸r =â&#x20AC;&#x2DC;Needhamâ&#x20AC;&#x2122;) where t
select max(8 xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from (select t & " h
, sum(ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account group by t & " h
) ĂŽ as (branch-total(t & " h
,8 ĂŽ xĂŻ Ăş Â&#x2013;Ă&#x201C; Ă&#x; o)) Â? 4.9.2
4.10
â&#x20AC;˘ \ V4) Â&#x201C; rÂ? Ă&#x2030; ' Â&#x;_ ¨
ç ĂŽ HĂŻ Â&#x2013;Ă&#x201C; Ă&#x; oÂ&#x2DC; Â? Ă? & Â&#x201C; h r> Ă&#x2030; Ă˝ a\ ÂŚÂ&#x2014; ¸¿ Âş Â&#x2022; Â&#x152; ] j .
with Âą Ă&#x2021; n
â&#x20AC;˘ with ] ` X ÂŚs 6 x  # Â&#x152;{ 9 r & h Â&#x201C; Ă&#x201A; Ă&#x201C;\ ÂŚĂŤ Â&#x2013;[ Ă&#x; tĂ&#x192; Ăž Âşe Â&#x201D; . with ] ` X ÂŚs 6 x  # Â&#x152;ĂŤ Â&#x2013;Â&#x17D; Ă&#x; HĂ&#x201A; Ă&#x201C;Â? HĂ&#x2022; ÂŞ| 9 _ \  " fĂŤ Â&#x2013;Ă&#x201E; Ă&#x; Âť ´ òô Ă&#x2021;{ 9 r$
Ă&#x201A; Ă Ă&#x201C;s .
delete from account where ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o< Â? (select avg(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account)
â&#x20AC;˘ \ V1) Ăž j@ /ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? ÂŚ Â&#x201D; >Ă˝ a_ > Ă˝ a  ù\ Œš Ă&#x201D; 1 .
Â&#x17D; \ ÂŚÂ&#x20AC; $ Ă´ Ă&#x2021; 6 §\ ÂŁ  Â&#x2022;] Â&#x152; j Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ă&#x2014; ĂŚâ&#x20AC;Ť×&#x203A;â&#x20AC;Ź š .
with max-balance(Ăž j@ /ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) as Â? select max(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) Â? from account select > Ă˝ a  ù from account, max-balance where account.ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o = max-balance.Ăž Â? j@ /ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) Â?
4.10.2 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź qĂ&#x2030; ø m â&#x20AC;˘ \ V) Smith Perryridge t & \ h  > Ă˝ a  ù A973s Â&#x201C; ÂŚĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? 1200Â&#x201C; > Ă˝ a\ ÂŚ t Â&#x201C; ÂŚe Â&#x201D; Â? H&
Ăą Â&#x2DC; Ă?\ ÂŚX <s ' Z Â&#x2026;s Ă&#x203A; Âź\ Â Ă&#x2020; Ă&#x2019; K . insert into account values (â&#x20AC;&#x2DC;A-973â&#x20AC;&#x2122;,â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122;,1200) insert into depositor values (â&#x20AC;&#x2DC;Smithâ&#x20AC;&#x2122;,â&#x20AC;&#x2DC;A-973â&#x20AC;&#x2122;)
â&#x20AC;˘ with ] Â&#x201C; X r SQL:1999\ Ă&#x2030;  " f% Â&#x192;6 §Â&#x2022; ÂŁ ¸{ 9 á &% Ă&#x153; 3 Âź9, Â&#x2030; Âł & F Â&#x2122; èĂ&#x192; Âş_ X <s ' Z Â&#x2026;s Ă&#x203A; ŸÍ Â&#x2013;s Ă&#x; \ ÂŚt Âś " ĂŠĂ´ Ă&#x2021; . 6
4.10.3
Ă&#x17E;
n Ă&#x192; Ă&#x2026;
4.10.5
² Â&#x17D;Â? v O Â? Â&#x153; Ă&#x2026; Ă&#x201C;
â&#x20AC;˘ SQL\  " fĂ Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? Â&#x201C; r{ Ă&#x2030; 9 Âş _ | 9 _ ¢ ¸Â? HĂ&#x152; t q Â&#x2019; ĂŤ H Â&#x153;Ă&#x153; Š  ŸÂ&#x2013; Ă?½ ¨$
Â? Ă a ) .
â&#x20AC;˘ \ V1) Â&#x2014; ¸Â&#x17D; H> Ă˝ a\  @ /K 5%_ s \ ÂŚt / LK ĂĽ . update account set ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o=ĂŻ Â? Â&#x2013;Ă&#x201C; Ă&#x; o*1.05 Â?
â&#x20AC;˘ Ă Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? _ r  Â&#x2022;Â&#x201C; Â&#x152; r " Ă&#x2030;
Ă&#x2018; ĂŽ Â&#x2DC; Ăž > ? /t ¡ §t Ăş ĂŤ Â&#x2013; Ă&#x; = QÂ&#x201C; ĂĽ r Ă&#x2030; 6 §¿ ÂŁ ºÍ H Â&#x153;Ă&#x2014; Š ĂŚ Â&#x2013; Ă? p ¡ . â&#x20AC;&#x201C; commit work: t F K t Â&#x2014; ¸Â&#x17D; HĂ&#x152; tÂ&#x2019; q ` ÂŚX <s ' Z Â&#x2026;s Ă&#x203A; Âź\  %
½ ò ¨& Ă&#x153; h ÂźÂ&#x2013; Ă?ĂŹ Ă?% ø
Ă´ ò Ă&#x2021; .
â&#x20AC;˘ \ V2) ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? 1000 s Â&#x153;Â&#x201C; Š >Ă˝ a\  @ /K " fĂŤ Â&#x2013; 5%_ Ă&#x; s \ ÂŚt / LK ĂĽ .
â&#x20AC;&#x201C; rollback work: t F K t Â&#x2014; ¸Â&#x17D; Hq Ă&#x152; t Â&#x2019; ` ÂŚ2 [Â&#x2122; è Â&#x201C; ÂŚĂ Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? s r  Â&#x2022; Â&#x152; l Â&#x201E; Â&#x153; Š IÂ&#x2013; Ă?4 ¤œ Â&#x; " ĂŠ Ă&#x2021; Ă´ .
update account set ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o=ĂŻ Â? Â&#x2013;Ă&#x201C; Ă&#x; o*1.05 Â? where ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o >= 1000 Â?
â&#x20AC;˘ s ĂŤ H Â&#x153;` Š ÂŚz ´Â? ' Â&#x; t ¡ §Â&#x201C; Ăş ÂŚĂĄ Ă&#x201D;Â&#x2013; Ă?Ă&#x2022; ÂŞĂ? Â&#x203A;` Ăž ÂŚ7 xÂŤ ĂĄ Ă&#x2018; X Â&#x20AC; <s ' Z Â&#x2026;s Ă&#x203A; Âź\  ¿ ºÍ H Â&#x153;Ă&#x2014; Š ĂŚ \ ÂŚz ´Â? ' Â&#x; Â&#x201C; ÂŚ= Qp ĂĽ ¡ .
â&#x20AC;˘ update ĂŤ H\  " f 6 x  Â? H where ] Â&#x201C; X r select ĂŤ Ă&#x2030; H_ where ] Ăľ X °  ú . â&#x20AC;˘ \ V3) ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? 10000 Â&#x2DC; Ă? H > Ă˝ a\  @ /K " fÂ? H 6%_ s \ ÂŚt / L ĂĽ Â&#x201C; ÂŚ, Ă&#x2022; ÂŞs _ > Ă˝ a\  @ /K " fÂ? H 5%_ s \ ÂŚt / L ĂĽ .
4.11
KT 6 ' [X Ă&#x2039;8 N Ă˝Â&#x17D; Ă&#x2026;# š a
4.11.1
SQL; c" e< gÂ&#x152; ÂŤ Â&#x; Ă&#x20AC; ÂĽy W ¢8 cĂ&#x; Ă&#x2026; Ă&#x192; Ă&#x2030; ø m8 Ă˝Â&#x201D; Ă&#x17E;Â&#x2019; Ă&#x2019; ½
â&#x20AC;˘ char(n): Â&#x201C; ÂŚ&
Â? Ăą aĂ&#x; ) Âźl (n)_ ĂŤ H \ P update account set ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o=ĂŻ Â? Â&#x2013;Ă&#x201C; Ă&#x; o*1.06 Â? where ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o > 10000 Â?
â&#x20AC;˘ varchar(n): Ăž j@ /Ă&#x; Âźl nÂ&#x201C; Â & ĂŤ h H \ P â&#x20AC;˘ int: &
Ă&#x192; Ăą Âş+ A Ăž â&#x20AC;˘ smallint
update account set ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o=ĂŻ Â? Â&#x2013;Ă&#x201C; Ă&#x; o*1.05 Â? where ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o <= 10000 Â?
â&#x20AC;˘ numeric(p,d): 6 x  t &
& Ăą
x Ăą Â&#x2022; 9 ¸\ ÂŚ t Â? HĂ&#x201A; Ă&#x2019; 1 xÂ&#x2122; l èĂ&#x192; Âş& h { 9 Ă&#x153; ÂźÂ&#x2013; Ă?Ă&#x192; ÂşÂ? HÂ&#x201E; ^ Â&#x2030;pĂ&#x2022; w Ăź Â&#x2013; Ă?½ ¨$
á Ă & # Qe Â&#x201C; Â&#x201D; ÂŚ, &
x Ăą 9 Â&#x2022; ¸Â? H ds .
# Â&#x152;l " fÂ? HÂż Âş update ĂŤ H_ z ´' Â?Ă Â&#x; H" f Ă&#x2014; ĂŚâ&#x20AC;Ť×&#x203A;â&#x20AC;Ź š .
â&#x20AC;˘ real, double precision: floatÂ&#x2DC; Ă? Â? HÂż ÂşC _ &
x Ăą 9 Â&#x2022; ¸\ ÂŚ t Â? HĂ&#x201A; Ă&#x2019;1 xÂ&#x2122; l èĂ&#x192; Âş& h { 9
â&#x20AC;˘ q Ă&#x152; t Â&#x2019; _ z ´Â? ' Â&#x;Ă H" fĂŤ H] j\ ÂŚK l 0 AK SQLÂ&#x201C; r Ă&#x2030; case ½ ¨Í H` ÂŚ] j/ NĂ´ B Ă&#x2021; . s ½ ¨Í H` ÂŚs 6 x  Â&#x20AC; Â? r Ă&#x2030; 7 xĂ&#x20AC; ĂĄ Ă&#x201C;_ Ă&#x152; t q Â&#x2019; ` ÂŚ _ SQL ĂŤ H\  " f½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;˘ float(n): &
x Ăą 9 Â&#x2022; ¸ Ăž jÂ&#x2122; è nÂ&#x201C; Ă&#x201A; Ă&#x2019;1 xÂ&#x2122; l èĂ&#x192; Âş& h { 9 â&#x20AC;˘ date: Âą Â&#x2DC; Ăş + A(¸ Ăž Â&#x2022; ¸, 4,{ Z ) 9
update account set ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o= Â? case when ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o <= 10000 then ĂŻ Â? Â&#x2013;Ă&#x201C; Ă&#x; o*1.05 Â? else ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o*1.06 Â? end
â&#x20AC;&#x201C; "
r ĂŽ Â? H~ Ă&#x201C;Z ½ : â&#x20AC;&#x2DC;2001-04-05â&#x20AC;&#x2122; O â&#x20AC;&#x201C; ¸Â&#x2022; ¸, 4, { Z 9 Â&#x201C; r extract(field from d) ½ Ă&#x2030; ¨Í H` ÂŚ s 6 x  # Â&#x152; date { 9 Ă&#x153; ÂźÂ&#x2013; Ă?Ă&#x201A; Ă&#x2019;' Ă&#x2020; Ă&#x2019;Ă&#x2DC; Œ½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . s M : fieldÂ? H year, month, day Ă&#x2014; ĂŚ \ ÂŚ 6 x  Â&#x20AC; Â? a ) . â&#x20AC;˘ time: r ç Â&#x2013;+ Ă&#x; A(r Ăž ,ĂŹ r,Â&#x153; Ă)
â&#x20AC;˘ case ½ ¨Í H_ 9ĂŹ { Ă?& ø Â&#x201C; h + AI Ăž
â&#x20AC;&#x201C; "
r ĂŽ Â? H~ Ă&#x201C;Z ½ : â&#x20AC;&#x2DC;09:30:25â&#x20AC;&#x2122; O
case
â&#x20AC;&#x201C; r , ĂŹ r, Â&#x153; ĂÂ&#x2022; ¸ date { \ 9  " f 6 x  Â? H½ ¨Í HĂľ °  Â&#x201C; Ăş r½ Ă&#x2030; ¨Í H` ÂŚs 6 x  # Â&#x152;Ă&#x2020; Ă&#x2019;Ă&#x2DC; Œ½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . s M : fieldÂ? H hour, minute, second Ă&#x2014; ĂŚ \ ÂŚ 6 x  Â&#x20AC; Â? a ) .
when pred1 then result1 when pred2 then result2 ... when predn then resultn else result0
â&#x20AC;˘ timestamp: dateĂź < times ½ Ă&#x2039;Â? + a ) { 9
end
â&#x20AC;&#x201C; "
r ĂŽ Â? H~ Ă&#x201C;Z ½ : â&#x20AC;&#x2DC;2001-04-05 09:30:25â&#x20AC;&#x2122; O 4.10.4
Â&#x201D; ½n Ă&#x17E;
Ă&#x192; Ă&#x2026;
â&#x20AC;˘ ĂŤ H \ P { ` 9 ÂŚ Â? r Ă&#x2030; { Ă&#x153; 9 ÂźÂ&#x2013; Ă? Ă&#x153; JM ĂŁ : 6 x  Â? H ½ ¨Í H: cast e as t
â&#x20AC;˘ SQL\  " fÂ? HĂ&#x201A; Ă&#x201C;Ă&#x152; tÂ&#x2019; q ĂŤ H] j\ ÂŚF G4 ¤ Â&#x; l 0 AK _ Â&#x203A; a> ' \ ÂŚs 6 x  # Â&#x152;&
_ Ăą Â? aĂ&#x201A; ) Ă&#x201C;\  @ /K " fĂŤ Â&#x2013;Ă&#x152; Ă&#x; t q Â&#x2019; Ă&#x2030;Ă&#x192; + ½ Âşe Â&#x2022; Â&#x201D; ¸2 ¤K Â&#x; ĂŻ r . sM :Â&#x2014; ¸Ă&#x2DC; Ă&#x201D;Â? H° â&#x20AC;ŤÂ&#x201C;×&#x203A;â&#x20AC;Ź Ăş r null ° Ă&#x2030; â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş Âź Â&#x2013; Ă?$  Â&#x153;Â? Š a ) .
â&#x20AC;˘ ĂŤ H \ P { 9 ` ÂŚ Â? r Ă&#x2030; { 9 Ă&#x153; ÂźÂ&#x2013; Ă? Ă&#x2039; ¨l 0 AK " fÂ? H H ĂŤ \ s P Â&#x2020; 1 { 9 _ + AI Ăž \ Ρ Â?Ă&#x2020; Ăş Ă&#x2019;Â&#x201C; ÂŚe # Â&#x201D; Q Ă´ Ă&#x2021; . 7
â&#x20AC;˘ SQLÂ&#x201C; rÂ&#x2014; Ă&#x2030; ¸Â&#x17D; HÂ&#x2022; ¸B jÂ&#x201C; \  q Â&#x201C; §Â&#x192; Ă Â&#x2013;` Ă&#x; ÂŚ& 6 h x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; Ă&#x153; Âź9, Â&#x2014; ¸Â&#x17D; H&
Ă&#x192; Ăą ºß <Ă&#x201A; Ă&#x2019;1 xÂ&#x2122; l èĂ&#x192; Âş& h { 9 [ t\ Ăž  à Â&#x2013;Ă&#x2022; Ă&#x; tÂ&#x192; Ăź Â&#x2013;` Ă&#x; Ă ÂŚ& 6 h x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
â&#x20AC;˘ ' Â&#x203A;> a \ ÂŚ X <s ' Z Â&#x2026;s Ă&#x203A; Âź\  " f Â&#x2022;] Â&#x152; j½ Ă&#x2030; M + :\  Â? H drop table "
§ Î
` ĂŽ ÂŚ 6 xĂ´ Â Ă&#x2021; . drop table r
â&#x20AC;˘ date { ç 9 Â&#x2013;\ Ă&#x;  Ă&#x2022; ÂŞo Â&#x201C; ÂŚ time { ç 9 Â&#x2013;\ Ă&#x;  Â? H â&#x20AC;&#x2DC;â&#x2C6;&#x2019;â&#x20AC;&#x2122; Â&#x192; Â&#x2013;` Ă&#x; Ă ÂŚ& 6 h x½  Ă&#x2030;Ă&#x192; + Âşe Ă&#x153; Â&#x201D; Âź9 Ăľ Â? H interval { 9 s .
â&#x20AC;˘ ' Â&#x203A;> a Â? HĂ&#x2022; ÂŞ@ /Â&#x2013; Ă?X <s ' Z Â&#x2026;s Ă&#x203A; Âź\  ¿ ÂşÂ&#x201C; ÂŚ, Ă&#x2022; ÂŞÂ&#x203A; a> ' \  Â? Â&#x201D; e HÂ&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚĂŤ Â&#x2013; Ă&#x; Â&#x2022;] Â&#x152; j½ Ă&#x2030;M + :\  Â? H 6 §" ÂŁ
§ Î
` ĂŽ ÂŚ 6 xĂ´ Â Ă&#x2021; . delete from r
â&#x20AC;˘  ù¨ Â&#x160; 8 { (compatible type) ç 9 Â&#x2013;\ Ă&#x;  Â? Hq Â&#x201C; §Â&#x192; Ă Â&#x2013;` Ă&#x; ÂŚ & 6 h x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . â&#x20AC;˘ nullÂ&#x201C; rÂ&#x2014; Ă&#x2030; ¸Â&#x17D; H { 9 _ Â&#x2022; ¸B j Â&#x201C; \  5 qĂ´ Ă&#x2026; Ă&#x2021; . 4.11.2
â&#x20AC;˘ alter table "
§ Î
` ĂŽ ÂŚs 6 x  # Â&#x152;l Â&#x201D; rÂ&#x203A; > a> ' _ Ă&#x203A; Âźv ÂŚÂ \
½ â Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . 5 q$ Ă&#x2026;
_ Ă Ă&#x2020; Ă&#x2019; Â? H 6 §þ ÂŁ °  Ă&#x153; Ăş Âź 9, alter table r add A D
 Â&#x17D;W X Ă&#x2039;8 N Ă˝
â&#x20AC;˘ Ă&#x203A; Âźv Â? H create table "
§ Î
` ĂŽ ÂŚs 6 x  # Â&#x152;&
_ Ăą Ă´ Ă&#x2021; .
5 q$ Ă&#x2026;
_ Ă Â&#x2022;] Â&#x152; jÂ? H 6 §þ ÂŁ °  ú .
create table r(A1 D1 , A2 D2 , . . . , An Dn , hĂ Âş $
j Ă ]Â&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| 1 i , ..., hĂ Âş $
] Ă jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| k i)
alter table r drop A
4.12
Ă&#x2C6;9 k Ă&#x2020; cO Š Â&#x17D; SQL
â&#x20AC;˘ SQLÂ&#x201C; ry Ă&#x2030; Â&#x153;§ Š Ă´ 4 Ă&#x2021;Â&#x201A; Â&#x192; & | h _ 9 Â&#x192; # Q\ ÂŚ] j/ N B t ĂŤ Â&#x2013; Ă&#x; 9 { ĂŹ Ă?ĂĄ ø Ă&#x201D;Â&#x2013; Ă?Ă&#x2022; ÂŞA b ç
Â&#x192; # Q? /\  " f SQL` ÂŚ 6 x½  Ă&#x2030;Â&#x20AC; + 9 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź š$
s Ă e Â&#x201D; .
# Â&#x152;l " f rÂ&#x201C; rÂ&#x203A; Ă&#x2030; a> ' _ s 2 §s ÂŁ Â&#x201C; ÂŚ, Ai Â? H5 q$ Ă&#x2026;
_ Ă s 2 § ÂŁ s . Di Â? H Ai 5 q$ Ă&#x2026;
_ Ă Â&#x2022; ¸B j Â&#x201C; s .
â&#x20AC;&#x201C; Â&#x2014; ¸Â&#x17D; H| 9 _ \ ÂŚ SQLÂ&#x2013; Ă?Âł Ă°Â&#x2030; ³½ & Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H Â&#x201C; â&#x20AC;Ť×&#x203A;â&#x20AC;Ź r Ă&#x2030; m l M :ĂŤ H\  # 6 3 xĂĄ  Ă&#x201D;Â&#x2013; Ă?Ă&#x2022; ÂŞA b
Â&#x192; ç # Q_ Âł Ă°Â&#x2030; Âł & § ` 4 ÂŚs 6 x½  Ă&#x2030;Â&#x20AC; + 9 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź š 7 x7 ĂĄ xe ĂĄ Â&#x201D; .
â&#x20AC;˘ 0 xĂ´ p Ă&#x2021;Ă Âş $
] Ă jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Â&#x201C; r Ă&#x2030; 6 §þ ÂŁ °  ú . â&#x20AC;&#x201C; primary key(Aj1 , Aj2 , . . . , Ajm ): 5 q$ Ă&#x2026;
Aj1 , Ă Aj2 , . . ., Ajm sÂ&#x203A; a> ' _ Ă&#x2026; Ă&#x2019;v Â? a ) . Ă&#x2026; Ă&#x2019;v H nulls Â? | cĂ&#x192; ¨ Âş\ Ă&#x153; O Âź9, 1 q: l ¤ ÂŁ # Â&#x152; Ă´ Ă&#x2021; .
â&#x20AC;&#x201C; 9 | _ Ăľ \ ÂŚĂ&#x2022; ÂŞA i Â&#x201D; Â&#x201C; ' ` Â&#x2026;s Ă&#x203A; ÂźÂ&#x2013; Ă?Âł Ă°Â&#x2030; Âł & Hl Â? 0 x1 p x` p ÂŚ] j/ N B l 0 AK " fÂ? HĂĄ Ă&#x201D;Â&#x2013; Ă?Ă&#x2022; ÂŞA ç b
Â&#x192; # Q` ÂŚ 6 x½  Ă&#x2030;Ă&#x192; + º¾ Ă&#x161;\ 1  \ O .
â&#x20AC;&#x201C; check(P ): Â&#x203A; a> ' \  e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚs ĂŤ Â&#x2013;7 Ă&#x; ¤K ĂĄ Â? H¸ Â&#x203A;| ` ÂŚ"
r ĂŽ l 0 AK 6 xÂ? Â a ) .
â&#x20AC;˘ SQL\ ÂŚ? / Â&#x153;Ă´ Š Ă&#x2021;{ ĂŹ 9 Ă?ĂĄ ø Ă&#x201D;Â&#x2013; Ă?Ă&#x2022; ÂŞĂ? Â&#x203A;Â&#x201C; Ăž r( Ă&#x2030;
Â&#x17D; { 9 l Â&#x201E; \  Â&#x201E; % Â&#x192;o Â&#x20AC; 9 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź š . s Â&#x201E; % Â&#x192;o \  " fÂ? H SQL ĂŤ H Â&#x153;` Š  Œ ùĂ&#x203A; Ÿà Ă&#x201D;Â&#x192; # QÂ&#x201A; Â&#x192; Ăľ Â&#x2020; Ă&#x160;Ă&#x192; < º ùĂ&#x2DC; ÂŚÂ&#x2013; Ă? Ă&#x2039; ¨# QĂŻ r .
s Ăź @\  Â? r] Ă&#x2030; jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Â&#x2022; ¸e t Â&#x201D; ĂŤ Â&#x2013;Ă&#x2022; Ă&#x; ÂŞ \ â&#x20AC;Ť×&#x203A;â&#x20AC;Ź  @ /K " f H 6 Â? Â&#x153;\ Š  " f ĂŞ r . â&#x20AC;˘ \ V) account Â&#x203A; a> ' _ Ă&#x203A; Âźv &
_ Ăą
â&#x20AC;˘ Â&#x2DC; Ă?: x Â&#x; 6 §þ ÂŁ °  Â&#x201C; Ăş r½ Ă&#x2030; ¨Í H` ÂŚs 6 x  # Â&#x152; SQL` ÂŚ# 6 3 x  å Ă&#x201D;Â&#x2013; Ă?Ă&#x2022; ÂŞA b ç
Â&#x192; # Q\  ? / Â&#x153;Ă´ Š Ă&#x2021; .
create table account (> ý a  ù char(10), & t " h
char(15), ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; ĂŻ o int, Â? primary key(> Ă˝ a  ù), check(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o >= 0)) Â?
EXEC SQL < SQL ĂŤ H Â&#x153; > END-EXEC Š Â? H 6 §þ ÂŁ °  Â&#x201C; Ăş r½ Ă&#x2030; ¨Í H` ÂŚ 6 xĂ´  Ă&#x2021; . #SQL{ < SQL ĂŤ H Â&#x153; > }; Š
â&#x20AC;˘ \ V) Â&#x2020; Ă&#x2020;Ă&#x2019; < tÂ&#x203A; q a> ' _ Ă&#x203A; Âźv &
_ Ăą
â&#x20AC;˘ \ V)  ùĂ&#x203A; Ÿà Ă&#x201D;Â&#x192; # Q\  amount Â? H Ă&#x192; Âş e Â&#x201D; Â&#x201C; ÂŚ . Ă&#x2022; ÂŞ QÂ&#x20AC; 6 §þ ÂŁ °  Â&#x201C; Ăş r| Ă&#x2030; _ 9 \ ÂŚÂ ĂąĂ&#x203A; Ÿà Ă&#x201D;Â&#x192; # Q\  ? / Â&#x153;½ Š  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
create table student ($
" Ă
char(15) not null, ĂŽ Ă&#x2020;Â < Â&#x2020; char(10), & Ăľ
char(15), Ăą primary key(Â&#x2020; Ă&#x2020;Â < ), check(Ăľ &
in (â&#x20AC;&#x2DC;Â&#x2020; Ăą Ă&#x2020;Ă&#x201A; < Ă&#x2019;â&#x20AC;&#x2122;,â&#x20AC;&#x2DC;$ 3 â&#x20AC;&#x2122;,â&#x20AC;&#x2DC;~ Ă&#x152; Ă&#x192; â&#x20AC;&#x2122;)))
EXEC SQL declare c cursor for select Â&#x201C; ÂŚĂ&#x152; o" Â?
,Â&#x201C; ĂŽ ÂŚĂ&#x152; o- Â? o from depositor,customer,account where depositor.Â&#x201C; ÂŚĂ&#x152; o" Â?
=customer.Â&#x201C; ĂŽ ÂŚĂ&#x152; o" Â?
and ĂŽ account.> Ă˝ a  ù=depositor.> Ă˝ a  ù and Â&#x2013;Ă&#x201C; Ă&#x; ĂŻ o > :amount Â? END-EXEC
Ă&#x203A; Âźv \ Â " f5 q$ Ă&#x2026;
` Ă ÂŚ&
_ Ăą ½ Ă&#x2030;M + : not null\ ÂŚ"
r ĂŽ Ă&#x2022; Â&#x20AC; ÂŞ5 q$ Ă&#x2026;
Â&#x201C; Ă r null ° Ă&#x2030; â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ | 9 Ă&#x192; Âş\ O . Ă&#x2026; Ă&#x2019;v Â? H"
r ĂŽ t ¡ § Ăş Â&#x2022; ¸l Â&#x2018; r& : Ă&#x153; h ÂźÂ&#x2013; Ă? null ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ | 9 Ă&#x192; Âş\ O . â&#x20AC;˘ unique(Aj1 , Aj2 , . . . , Ajm ) ½ ¨Í H` ÂŚ s 6 x  # Â&#x152; Ă&#x160; ĂŞ Â&#x2DC; Ă?v \ ÂŚt &
½ Ăą Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
# Â&#x152;l " f Ă&#x192; Âş cÂ? Hs | _ 9 _ cursor Â&#x201C; ÂŚ,  ùĂ&#x203A; Ÿà Ă&#x201D; Â&#x192;# Q_  Ă&#x192; Âş\ ÂŚ SQL ĂŤ H Â&#x153;? Š /\  " f 6 x½  Ă&#x2030;M + :\  Â? H 8
 Ă&#x192; º¡ ÂĄ\ Ăş  â&#x20AC;&#x2DC;:â&#x20AC;&#x2122;\ ÂŚÂ&#x2018; ' Ă´ Ă&#x2021; . s | 9 _ \ ÂŚz ´] jz ´Â? ' Â&#x; l 0 AK " fÂ? H open ĂŤ H` ÂŚs 6 xK  ô Ă&#x2021; . EXEC SQL open c END-EXEC | 9 _ Ăľ Â? He r Â&#x201D; Â&#x203A; a> ' \  $  Â&#x153;Â? Š a ) . | 9 _ Ăľ _ Ă&#x2C6; Ă&#x2019;e ÂŚÂ&#x201C; r fetch ĂŤ Ă&#x2030; H` ÂŚ s6 x  # Â&#x152;% ` 3 ÂŚĂ&#x192; Âşe Â&#x201D; . 0 A| 9 _ _ Ăľ Â&#x203A; a> ' Â? HÂż Âş> h_ Ă&#x2026; q 5$
Ă&#x153; Ă ÂźÂ&#x2013; Ă?½ ¨$
á Ă &Ă&#x2122; ÂźÂ&#x2013; Ă? Âż Âş> h_  Ă&#x192; Âş(cn, cc) Â&#x20AC; 9 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź š . EXEC SQL fetch c into :cn,:cc END-EXEC fetch ĂŤ HÂ&#x201C; r Ă&#x2030; _ Ă&#x2C6; Ă&#x2019;e ÂŚĂŤ Â&#x2013;` Ă&#x; ÂŚĂŹ Ă?¨ ø Â&#x160;K 8 Ă&#x2026; Ă&#x2019;Ă&#x2122; ÂźÂ&#x2013; Ă?Â&#x2014; ¸Â&#x17D; H Ă&#x2C6; Ă&#x2019;e ÂŚ\  @ /K  Â&#x2022;\ Â&#x152; ` O ÂŚ l 0 AK " fÂ? HĂ&#x20AC; Ă&#x2019;ĂĄ Ă&#x201D;\ ÂŚs 6 x  K Ă´ Ă&#x2021; . Ă&#x20AC; Ă&#x2019;ĂĄ Ă&#x201D;_ = QÂ&#x201C; ĂĽ r SQL communication-area Ă&#x2030; (SQLCA)  Ă&#x192; Âş\ ÂŚ: xK Â&#x; ¡ Â&#x2DC;Ă&#x192; Ăş Âşe Â&#x201D; . | _ 9 Ăľ 8s Â&#x153;Â&#x20AC; Š â&#x20AC;Ť×&#x203A;â&#x20AC;Ź 9 š\ Ă&#x153; O ÂźÂ&#x20AC; close ĂŤ H` ÂŚs 6 x  # Â&#x152; Â&#x2022;] Â&#x152; j # Â&#x152; Ă´ Ă&#x2021; . EXEC SQL close c END-EXEC â&#x20AC;˘ X <s ' Z Â&#x2026;s Ă&#x203A; ÂźÂ
" â
§ Î
Â&#x201C; ĂŽ r| Ă&#x2030; 9 _ Ăź <² Â&#x2DC;o Ăş D hÂ&#x2013; Ă?ĂŽ r a> ' Â&#x203A; \ ÂŚ Ăľ Â&#x2013; Ă?Ă&#x2026; Ă&#x2019;t ¡ §l Ăş M :ĂŤ H\  ? / Â&#x153; Š l 8 ~ 1 . EXEC SQL declare c cursor for select * from account where t & " h
=â&#x20AC;&#x2DC;Perryridgeâ&#x20AC;&#x2122; ĂŽ for update END-EXEC Ă&#x152; t q Â&#x2019; \  6 x½  Ă&#x2030;| + 9 _ \ ÂŚÂ&#x20AC; $ ? / Â&#x153;Ă´ Š Ă&#x2021; 6 §\ ÂŁ  open H` ĂŤ ÂŚs 6 x  Â&#x152; #| 9 _ \ Ϋ ' z Â?Ă´ Â&#x; Ă&#x2021; . Ă&#x2022; ÂŞ 6 § fetch ĂŤ ÂŁ H update\ Ăľ ÂŚs 6 x  # Â&#x152;z ´] jĂ&#x152; t q Â&#x2019; ` ÂŚĂ´ Ă&#x2021; . EXEC SQL fetch c into :an,:bn,:ab; update account set ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o=ĂŻ Â? Â&#x2013;Ă&#x201C; Ă&#x; o+100 Â? where current of c; END-EXEC
9
c °2003, sangjin@kut.ac.kr
â&#x20AC;˘ Â&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
s Ă ĂŞ Ă?Ă´ ø Ă&#x2021;Â&#x203A; a> ' _ # QÂ&#x2039; 5 " q$ Ă&#x2026;
\ Ă Â 1 x p Â&#x153; Š H° Â? â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ Â? rÂ&#x203A; Ă&#x2030; a> ' _ : ¤& ÂŁ
5 Ăą q$ Ă&#x2026;
\ Ă Â 1 x p Â&#x153; Š Â? H° â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş Âź Â&#x2013; Ă?] jĂ´ Ă&#x2021; Â? H ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ϋ Â&#x2DC;Ă´ Ăş Ă&#x2021; .
2T 6 ' _9 KT Ă&#x192; Â&#x2018;: ~ ÂĄq ç { ÂĄĂ&#x2C6; Â&#x2018; 05 A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
6.2.1
â&#x20AC;˘ Â&#x203A; ¸ Â&#x201C; ½ Ă&#x2030;M + :) Â&#x2021; Â&#x153;Ă&#x2C6; Š Ă&#x2019;e ÂŚĂŤ H] j\ ÂŚK l 0 AK Ăź @Ă&#x201A; Ă&#x2019; Â&#x203A; ¸ Â&#x201C; ~ Ă&#x201C;Z ½ ` O ÂŚ 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
Integrity and Security
6.1
M Ă&#x201E; Ă&#x2DC;4 ] G Ă&#x2C6; Â&#x203A;
â&#x20AC;˘ ) Â&#x2021;Ă&#x2014; ( Â&#x2018;Ă? Ă&#x2122;¨ ¡(dangling tuple): Âż ÂşÂ&#x203A; a> ' rĂľ s\ ÂŚÂ&#x203A; ¸ Â&#x201C; % ` i ÂŚM : r\  e Â? Â&#x201D; HĂ&#x2C6; Ă&#x2019;e ÂŚĂ&#x2014; ĂŚÂ&#x203A; ¸Â&#x201C; \  Â&#x201A; Ă?# Ă&#x192; Â&#x152; t 3 w l Â? HĂ&#x2C6; Ă&#x2019;e ÂŚ
Part II. Relational Databases
6
Y p c ÂşÂ&#x201C; ¤+ Ă&#x2021;V s Ă&#x2039; R
6.2
â&#x20AC;˘ s ] \ X  " fÂ? H) Â&#x2021; Â&#x153;Ă&#x2C6; Š Ă&#x2019;e ÂŚ_ ) Â&#x2021;6 x#  Â&#x152;Ă&#x201A; Ă&#x2019;\  Â&#x203A; aĂ´ ' Ă&#x2021;] jĂ´ Ă&#x2021; Â&#x203A; ¸| ` ÂŚÂś Â&#x2DC;( Ăş RÂ&#x2018; r : .
¢8 y cĂ&#x; Ă&#x2026;< Ă&#x192; gW l d ºß Ă&#x2026; g
â&#x20AC;˘ Â&#x2014; ¸Â&#x17D; H5 q$ Ă&#x2026;
Â&#x201C; Ă rÂ&#x2022; Ă&#x2030; ¸B j Â&#x201C; ` ÂŚ Â&#x201D; . " f5 q$ Ă&#x2026;
Â&#x201C; Ă rt Ă&#x2030;
Â? Ăą & aÂ&#x2022; ) ¸B j Â&#x201C; \  _ K ° â&#x20AC;Ť×&#x203A;â&#x20AC;Źs Ăş ] jĂ´ Ă&#x2021;Â? a ) .
â&#x20AC;˘ 6 §þ ÂŁ °  Â&#x201C; Ăş r) Ă&#x2030; Â&#x2021; Â&#x153;Ă&#x2C6; Š Ă&#x2019;e ÂŚÂ&#x201C; r Ă&#x2030; | Ă?f Ă&#x192; Â&#x201D; t ¡ § Ăş . â&#x20AC;&#x201C; account Â&#x203A; a> ' \  Â? Ht & " h
s ĂŽ â&#x20AC;&#x153;y Â&#x153;z Š Â&#x2122;& Â&#x152; â&#x20AC;?Â&#x201C; h > a e Ă˝ t Â&#x201D; ĂŤ Â&#x2013; branch Â&#x203A; Ă&#x; a> ' \  Â? H â&#x20AC;&#x153;y Â&#x153;z Š Â&#x2122;& Â&#x152; â&#x20AC;?\ h  Â&#x203A; a ' Ă&#x2021;t Ă´ & & h
Â&#x2DC; Ăą Ă? \ O .
â&#x20AC;˘ Â&#x2022; ¸B j Â&#x201C; ] jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Â&#x201C; r  Ă&#x2030; Â&#x153;l Š Â&#x153; Ă& h Â&#x201C; Ă Âş $
] Ă jÂ&#x20AC; Â&#x2022; Â? Â&#x203A; ¸| s . â&#x20AC;˘ Â&#x201C; ÂŚĂ&#x152; o" Â?
5 ĂŽ q$ Ă&#x2026;
Ăľ Ă f Âś Â&#x201D; " ĂŠ"
5 ĂŽ q$ Ă&#x2026;
_ Ă Â&#x2022; ¸B j Â&#x201C; °  t Ăş ĂŤ Â&#x2013;ĂŻ Ă&#x; Â&#x2013; Ă&#x; o5 Â? Ă&#x201C; q$ Ă&#x2026;
Ăľ Ă t & " h
5 ĂŽ q$ Ă&#x2026;
_ Ă Â&#x2022; ¸B j Â&#x201C; Â&#x201C; r Ă&#x2030; Ă&#x2DC; Ă&#x201D; .
â&#x20AC;&#x201C; Ă&#x2022; ÂŞ Q ĂŹ Ă?@ ø /_
Ă&#x201E; â ÂşÂ? H) Â&#x2021;6 xK  ô Ă&#x2021; .
â&#x20AC;&#x201C; ÂŚ Â&#x201C;Ă&#x152; o" Â?
5 ĂŽ q$ Ă&#x2026;
Ăľ Ă t & " h
5 ĂŽ q$ Ă&#x2026;
_ Ă Â&#x2022; ¸B j Â&#x201C; Â&#x201C; rĂ&#x201C; Ă&#x2030; t Ăź & o Y h U6 Â&#x161;\ \  " fÂ? H°  t Ăş ĂŤ Â&#x2013;Â? Ă&#x; Ho 7 & Y h UÂ&#x161; 6 \\  " f H Â? Ă&#x2DC; Ă&#x201D; .
â&#x20AC;˘ 0 AĂŤ H] j\ Œ½ ¨^ Â&#x2030;& Ă&#x153; h ÂźÂ&#x2013; Ă?Âś Â&#x2DC;( Ăş RÂ&#x2DC; Ă?Â&#x20AC; account Â&#x203A; a> ' \  " ft & " h
Â&#x201C; ĂŽ rĂź Ă&#x2030; @Ă&#x201A; Ă&#x2019;v s t ĂŤ Â&#x2013; branch Â&#x203A; Ă&#x; a> ' \ Â " ft & " h
Â&#x201C; ĂŽ rĂź Ă&#x2030; @Ă&#x201A; Ă&#x2019;v m .
â&#x20AC;˘ D hÂ&#x2022; ¸B j Â&#x201C; _ &
_ Ăą : create domain ] s X 6 x Â
â&#x20AC;˘ r1 (R1 )Ăľ r2 (R2 )_ Ă&#x2026; Ă&#x2019;v y Â&#x2022;y Â&#x152; Â&#x2022; K1 Ăľ Â&#x152; K2 Â&#x201C; Âż Âş a> ' Â&#x203A; e Â&#x201D; Â&#x201C; ÂŚ . Îą â&#x160;&#x201A; R2 6 § ÂŁ ÂŚ `ĂŤ Â&#x2013;7 Ă&#x; ¤ ĂĄ Â&#x20AC; ÎąÂ? HÂ&#x203A; a> ' r1 _ Ă&#x2026; Ă&#x2019;v K1 ` ÂŚÂ&#x201A; Ă?Â&#x203A; Ă&#x192; ¸ Â? HĂź @Ă&#x201A; Ă&#x2019;v Ă´ Ă&#x2021; .
create domain Dollars numeric(12,2) create domain Pounds numeric(12,2) Âż Âş> h_ D hÂ&#x2013; Ă?ĂŽ rÂ&#x2022; ¸B jÂ&#x201C; ` ÂŚ&
_ Ăą % ` i ÂŚM :Â&#x2022; ¸B j Â&#x201C; s DollarsÂ&#x201C; 5 q$ Ă&#x2026;
\ Ă Â Â&#x2022; ¸B jÂ&#x201C; s PoundsÂ&#x201C;  Ă&#x192; Âş_ ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş Œ½ Ă&#x2030;{ + Â&#x153; Š Â&#x20AC; q 2 ¤Ă&#x201C; Â&#x; to Ăź & Ă&#x153; h ÂźÂ&#x2013; Ă?Â? H°  Â&#x201C; Ăş r Ă&#x2030; { 9 s t ĂŤ Â&#x2013;Â&#x161; Ă&#x; ¸Ă&#x20AC; Ă&#x201C; Âľ Ă?Ă&#x2019; 1 tĂ´ q Ă&#x2021; .
r2 \  e Â? Â&#x201D; HÂ&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚ t2 \  @ /K r1 \  6 § ÂŁ ÂŚ `ĂŤ Â&#x2013;7 Ă&#x; ¤ ĂĄ Â? HĂ&#x2C6; Ă&#x2019;e ÂŚ t1 s ĂŹ Ă?Ă&#x2014; ø Âźr Â&#x201D; rF > K Ă´ Ă&#x2021; . t1 [K1 ] = t2 [Îą]
â&#x20AC;˘ Ă´Â&#x2022; Ă&#x2021; ¸B j Â&#x201C; _ Ăş â&#x20AC;Ť×&#x203A;â&#x20AC;Ź °` ÂŚ Â? rÂ&#x2022; Ă&#x2030; ¸B j Â&#x201C; Ă&#x153; ÂźÂ&#x2013; Ă?Â
: cast s â 6 x  cast r.A as Pounds
â&#x20AC;˘ s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź š½ ¨ Â&#x2020; Ă&#x201C;` ½ Œ½ Ă&#x201D;Â&#x153; Ă&#x2021; ÂżĂ&#x2C6; Ă Ă&#x161;
Ă&#x2026; r V ]   Ă?Â&#x153; Ă&#x2C6; ÂżÂ&#x17E; >(referen
tial integrity constraints) ¢ ¸Â? H Ă&#x2030; Ă&#x2122;& P
T Â&#x2122; Âź ¤ Ă&#x2019; 4¢ ´ 4 (subset dependency)s ] Ă&#x2026; Ă´ Ă&#x2021; .
r.A Dollars { { 9 : 9 Ms ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚ PoundsÂ&#x2013; Ă?Â
½ â Ă&#x2030; + M :0 AĂź <°  Â&#x201C; Ăş r cast " Ă&#x2030;
§ Î
` ĂŽ ÂŚ 6 xĂ´ Â Ă&#x2021; .
â&#x20AC;˘ Â&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
] Ă jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Â&#x201C; r Ă&#x2030; 6 §þ ÂŁ °  s Ăş â&#x20AC;Ť×&#x203A;â&#x20AC;Ź šÂ&#x20AC; Â&#x2022;½ Â? Ă&#x2030;Ă&#x192; + Âş Â&#x201D; e . Î Îą (r2 ) â&#x160;&#x2020; Î K (r1 )
â&#x20AC;˘ check ] ` X ÂŚs 6 x  # Â&#x152;Â&#x2022; ¸B jÂ&#x201C; ` ÂŚ] jĂ´ Ă&#x2021;½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . create domain r ç Â&#x2013;Ă&#x192; Ă&#x; Âş{ Â&#x153; int Š constraint Ă&#x192; Âş{ Â&#x153;Ăž Š jÂ&#x2122; è° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ăş check(value >= 2000)
â&#x20AC;˘ E-R Â&#x2014; ¸4 q\ S  " fÂ&#x203A; a> ' | ½ 9 Ă&#x2039;Ăľ + Â&#x20AC; Â&#x2022;Ă´ Â? Ă&#x2021;Â&#x203A; a> ' | 9 ½ Ă&#x2039;` + ÂŚ_ Â&#x2026; s ^ ÂŚÂ&#x2013; Ă?Âł Ă°Â&#x2030; Âł & Â&#x20AC; ĂŹ Ă?Ă&#x2014; ø Âźr Ăź @Ă&#x201A; Ă&#x2019;v \ ÂŚ t > Â? a ) .
# Â&#x152;l " f â&#x20AC;&#x2DC;Ă&#x192; Âş{ Â&#x153;Ăž Š jÂ&#x2122; è° â&#x20AC;ŤÂ&#x201C;â&#x20AC;&#x2122;×&#x203A;â&#x20AC;Ź Ăş r Ă&#x2030; Ă&#x2014; ĂŚ\  Ă&#x152; tÂ&#x2019; q 0 AC e ` Â&#x201D; ÂŚ M :# QÂ&#x2039; 0 " AC Â&#x201C; t \ ÂŚ ? /l 0 AK 6 xÂ?  a ) .
6.2.2
â&#x20AC;˘ \ V1) V ° , â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ | 9 Ă&#x192; Âş\ Â&#x2022; O ¸2 ¤] Â&#x; jĂ´ Ă&#x2021; Â? H~ Ă&#x201C;Z ½ O
6 KT ' [9 cT Â Â&#x17D; Ă&#x2026;Ă&#x; ĂŹ Ă&#x2039; O
â&#x20AC;˘ X <s ' Z Â&#x2026;s Ă&#x203A; Âź\ ÂŚÂ
â Â&#x20AC; Â&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
` Ă ÂŚ0 AC ½ Ă&#x2030; + Ă&#x192; Âşe Â&#x201D; .
create domain > Ă˝ a  ù char(10) constraint > Ă˝ a  ùV , Â&#x17D; check(value not null)
â&#x20AC;˘ r2 r1 ` ÂŚÂ&#x201A; Ă?Â&#x203A; Ă&#x192; ¸ Â? H
Ă&#x201E; â Âş\  0 xĂ´ p Ă&#x2021;Â&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
Ă 0 AC
â&#x20AC;˘ \ V2) : ¤& ÂŁ
Ă´ Ăą Ă&#x2021;° â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂŤ Ăş Â&#x2013;` Ă&#x; ÂŚ t Â&#x2022; ¸2 ¤] Â&#x; jĂ´ Ă&#x2021; Â? H~ Ă&#x201C;Z ½ O create domain > Ă˝ a7 xĂ&#x20AC; ĂĄ Ă&#x201C; char(10) constraint > Ă˝ a7 xĂ&#x20AC; ĂĄ Ă&#x201C; Â&#x17D; check(value in(â&#x20AC;&#x2DC;{ Â&#x153;Ă˝ Š a\ VF Kâ&#x20AC;&#x2122;,â&#x20AC;&#x2DC;$ Âť ¤\ ÂĄ VF Kâ&#x20AC;&#x2122;))
â&#x20AC;&#x201C; t2 \ ÂŚ r2 \  œ Â&#x161;{ Ăş : 9 6 §s ÂŁ ĂŹ Ă?Ă&#x2014; ø Âźr $
w Ă K n Ă´ Ă&#x2021; . t2 [Îą] â&#x2C6;&#x2C6; Î K (r1 ) 1
â&#x20AC;&#x201C; V \1) r1 s branch Â&#x203A; a> ' s Â&#x201C; ÂŚ, r2 Ăľ account Â&#x203A; a ' { > M 9 : r2 \ Â t& s h Â&#x2026; ;ĂŽ Â&#x2013;& Ă&#x; h Â&#x201C; > Ă˝ a\ ÂŚĂ&#x2020; Ă&#x2019; Â&#x20AC; r1 \ Â Â&#x2026; ;ĂŽ Â&#x2013;& Ă&#x; s h Ă&#x2026; Ă&#x2019;v Â&#x201C; Ă&#x2C6; Ă&#x2019;e ÂŚs e # Â&#x201D; Q Ă&#x2021; Ă´ .
â&#x20AC;˘ cascade @ / Â&#x2019; \  6 § ÂŁ ÂŚ ` 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . â&#x20AC;&#x201C; set null: Â&#x2022;] Â&#x152; j Â? H@ /Â&#x2019; \  Â&#x201A; Ă?Â&#x203A; Ă&#x192; ¸ Â? HÂ&#x20AC; 9 Ă&#x2014; Âź\ ÂŚ null ° â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş ÂźÂ&#x2013; Ă? Ăľ H . â&#x20AC;&#x201C; set default: Â&#x2022; ¸B j Â&#x201C; _ n e ÂŚĂ Ă&#x201D;° â&#x20AC;Ť×&#x203A;â&#x20AC;ŹĂ&#x153; Ăş ÂźÂ&#x2013; Ă?Â&#x20AC; 9 Ă&#x2014; Âź ÂŚ \ Ăľ H .
â&#x20AC;&#x201C; t1 \ ÂŚ r1 \  " f Â&#x2022;] Â&#x152; j: 6 § ÂŁ ÂŚ `> Ă Â&#x2013; Ă&#x; # Â&#x152; Ď&#x192;Îą=t1 [K] (r2 )
â&#x20AC;˘ null ° â&#x20AC;ŤÂ&#x201C;×&#x203A;â&#x20AC;Ź Ăş rÂ&#x201A; Ă&#x2030; Ă?Â&#x203A; Ă&#x192; ¸à º $
` Ă ÂŚ4 ¤¸ Â&#x; Â&#x161; Ăş > Ă´ Ă&#x2021; . { 9 ĂŹ Ă?& ø h Ă&#x153; ÂźÂ&#x2013; Ă?Ăź @Ă&#x201A; Ă&#x2019;v Â&#x2022; ¸V ° , â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ | Ă&#x192; 9 Âş\ Â&#x2022; O ¸2 ¤ Â&#x; Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź | Ă?f Ă&#x192; Â&#x201D; .
Ăľ Â&#x203A; a> ' q # Qe t Â&#x201D; ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; Â&#x2022;] Â&#x152; j\ ÂŚ Ă&#x201A; Ă&#x2019; r2 \  " f t1 ` ÂŚÂ&#x201A; Ă?Â&#x203A; Ă&#x192; ¸ Â? HĂ&#x2C6; Ă&#x2019;e ÂŚ` ÂŚÂ&#x2020; Ă&#x160;a < Â? ¸¿ Â&#x2014; Âş Â&#x2022;] Â&#x152; jK Ă´ Ă&#x2021; .
â&#x20AC;˘ Â&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
Â&#x201C; Ă rÂ&#x192; Ă&#x2030; Ă Â&#x2013;ĂŠ Ă&#x; Â&#x2013;0 Ă&#x; AÂ&#x2013; Ă? Â&#x17D; t ¡ §Â&#x201C; Ăş ÂŚĂ Ă&#x201D;Â&#x2122; ½ oÂ&#x201A; Â? Ă&#x201D; ĂŠ Â&#x2013;0 Ă&#x; AÂ&#x2013; Ă? Â&#x17D; Ă´ Ă&#x2021; .
â&#x20AC;&#x201C; V \2) r1 \  t & s h y Â&#x153;z Š Â&#x2122;& Â&#x152; Â&#x201C; h Ă&#x2C6; Ă&#x201C;e ÂŚ` ÂŚ Â&#x2022;] Â&#x152; j r2 \ Â&#x20AC;  t & s h y Â&#x153;z Š Â&#x2122;& Â&#x152; Â&#x201C; h > Ă˝ a e Â? Â&#x201D; Ht Âś Â&#x2DC; Ăş RÂ&#x2DC; ( Ă?Â&#x201C; ÂŚe Ă&#x153; Â&#x201D; ÂźÂ&#x20AC; Ă&#x201A; Ă&#x2019; t & s h y Â&#x153;z Š Â&#x2122;& Â&#x152; h Â&#x2014; Â&#x201C; ¸Â&#x17D; H >Ă˝ a\ ÂŚÂ&#x152; Â&#x2022; ] jĂ´ Ă&#x2021; .
â&#x20AC;&#x201C; \ V) Â&#x2122; ÂĽÂ&#x203A; D a> '
6.3
â&#x20AC;&#x201C; r2 \ Â e Â? Â&#x201D; H t2 _ Îą\ Â Â&#x; ĂÂ&#x2020; Ă&#x160;Â? < a 5 ) q$ Ă&#x2026;
` Ă ÂŚ Ă&#x152; t q Â&#x2019; : t02 t2 \ ÂŚĂ&#x152; tÂ&#x2019; q Ă´ Ă&#x2021;Ă&#x2C6; Ă&#x2019;e ÂŚs Â&#x20AC; 6 §s ÂŁ ĂŹ Ă?Ă&#x2014; ø Âźr
w Ă $ K n Ă´ Ă&#x2021; .
â&#x20AC;˘ 5 Ă Ă&#x2021; (assertion)s a ĂŞ Ă? X ø <s ' Z Â&#x2026;s Ă&#x203A; Âź Â&#x2020; Ă&#x201C; ½ Â&#x153; ĂŤ Š Â&#x2013;7 Ă&#x; ¤ ĂĄ K Â? HÂ&#x203A; ¸| ` ÂŚ"
r ĂŽ Ă´ Ă&#x2021;Â&#x203A; ¸| Ă&#x2022; t# Ăź Q(predicate)\ ÂŚ ´ Â&#x2DC;Ă´ Ăş Ă&#x2021; .
t02 [Îą] â&#x2C6;&#x2C6; Î K (r1 )
â&#x20AC;˘ Â&#x2022; ¸B j Â&#x201C; ] jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Ăľ Â&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
] Ă jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| Â&#x201C; rĂŠ Ă&#x2030; Â&#x2013; Ă&#x;
_ Ăą & Ă´ Ă&#x2021;: ¤Ă&#x192; ÂŁ ºô Ă&#x2021;+ AI Ăž s .
â&#x20AC;&#x201C; V \3) r2 \  t & s h y Â&#x153;z Š Â&#x2122;& Â&#x152; Â&#x201C; h > Ă˝ a\ ÂŚÂ&#x2026; ;ĂŽ Â&#x2013;& Ă&#x; h ÂźÂ&#x2013; Ă&#x153; Ă?Ă&#x152; tÂ&#x2019; q Â&#x20AC; r1 \  Â&#x2026; ;ĂŽ Â&#x2013;& Ă&#x; s h Ă&#x2026; Ă&#x2019;v Â&#x201C; Ă&#x2C6; Ă&#x2019;e ÂŚ e s # Â&#x201D; Q Ă´ Ă&#x2021; .
â&#x20AC;˘ SQL\ Â " fĂŠ Â&#x2013;& Ă&#x;
ĂŤ Ăą H_ + AI Ăž create assertion <assertion-name> check <predicate>
â&#x20AC;&#x201C; r1 \  e Â? Â&#x201D; H t1 _ Ă&#x2026; Ă&#x2019;v _ / ?6 x`  ŒĂ&#x152; t q Â&#x2019; : 6 § ÂŁ ÂŚ ` Ă > Â&#x2013; Ă&#x; # Â&#x152; Ď&#x192;Îą=t1 [K] (r2 )
â&#x20AC;˘ SQL\  Â? H â&#x20AC;&#x153;for all X, P(X)â&#x20AC;? Â? H½ ¨$
s Ă \ Ă&#x153; O ÂźĂ&#x2122; ÂźÂ&#x2013; Ă? â&#x20AC;&#x153;not exists X such that not P(X)â&#x20AC;? ½ ¨$
` Ă ÂŚ 6 xK Â Ă&#x2021; Ă´ .
Ăľ Â&#x203A; a> ' q # Qe t Â&#x201D; ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; Ă&#x152; t q Â&#x2019; ` ÂŚ Ă&#x201A; Ă&#x2019; r2 \  " f t1 ` ÂŚÂ&#x201A; Ă?Â&#x203A; Ă&#x192; ¸ Â? HĂ&#x2C6; Ă&#x2019;e ÂŚ` ÂŚÂ&#x2020; Ă&#x160;a < Â? ¸¿ Â&#x2014; ÂşĂ&#x152; tÂ&#x2019; q K Ă´ Ă&#x2021; .
â&#x20AC;˘ \ V) t & _ h @ /Ă&#x2DC; ÂŚĂ&#x201C; o8 Â? xĂ&#x201C; Ăş oÂ&#x201C; Â? rt Ă&#x2030; & _ h > Ă˝ aĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o_ Â? 8 x Ăş oÂ&#x2DC; Â? Ă&#x201C; Ă? & # h Q Ă´ Ă&#x2021; .
â&#x20AC;&#x201C; V \4) r1 \  y Â&#x153;z Š Â&#x2122;& Â&#x152; s h Â? H t & s h t & " h
` ĂŽ ÂŚ Â&#x153;z Š y Â&#x2122;1& Â&#x152; Ă&#x153; h ÂźÂ&#x2013; Ă? Ă&#x2039; ¨Â&#x20AC; r2 \  t & s h y Â&#x153;z Š Â&#x2122;& Â&#x152; h Â&#x201C; Ă˝ > a e Â? Â&#x201D; Ht Âś Â&#x2DC;( Ăş RÂ&#x2DC; Ă?Â&#x201C; ÂŚe Ă&#x153; Â&#x201D; ÂźÂ&#x20AC; Ă&#x201A; Ă&#x2019; t & s h y Â&#x153;z Š Â&#x2122;& Â&#x152; Â&#x201C; h Â&#x2014; ¸Â&#x17D; H> Ă˝ a_ t & " h
` ĂŽ ÂŚ Â&#x153;z Š y Â&#x2122;1& Â&#x152; Ă&#x153; h ÂźÂ&#x2013; Ă? Ăľ H . 6.2.3
Assertions
create assertion sum-constraint check (not exists (select * from branch where (select sum(@ /Ă&#x2DC; ÂŚĂ&#x201C; o) from loan Â? where loan.t & " h
= branch.t ĂŽ & " h
) ĂŽ >= (select sum(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o) from account Â? where account.t & " h
= branch.t ĂŽ & " h
))) ĂŽ
SQL; c" eY c p ÂşÂ&#x201C; ¤+ Ă&#x2021;V s Ă&#x2039; R
â&#x20AC;˘ SQL\ Â " fÂ? HĂ&#x203A; Âźv \ ÂŚ&
_ Ăą ½ Ă&#x2030;M + :Ăź @Ă&#x201A; Ă&#x2019;v \ ÂŚ"
r ĂŽ Ă&#x2030;Ă&#x192; + ½ Âşe Â&#x201D; .
â&#x20AC;˘ Ă&#x; ĂŠ& Â&#x2013;
ĂŤ Ăą H` ÂŚÂ&#x201A; Â&#x192; Â&#x20AC; r Ă&#x203A; Âź% 7 Â&#x203A;Â&#x201C; rÂ&#x20AC; Ă&#x2030; $ ĂŠ Â&#x2013;& Ă&#x;
ĂŤ Ăą H_ Ă&#x201E; Âť ´ ò$
` Ă ÂŚ Â&#x17D; Ă´ Ă&#x2021; . ĂŠ Â&#x2013;& Ă&#x;
ĂŤ Ăą Hs Ă&#x201E; ´ ò Â&#x20AC; s Ă&#x160; ĂŞX <s ' Z Â&#x2026;s Ă&#x203A; ÂźÂ
Â&#x201C; â rĂŠ Ă&#x2030; Â&#x2013;& Ă&#x;
Í ù H` Œ0 AC t ¡ §� ú H
Ă&#x201E; â Âş \  Í Â&#x2013;) Ă&#x; Â&#x2021;6 xÂ?  a ) .
â&#x20AC;&#x201C; V \) account Â&#x203A; a> ' _ t & " h
5 ĂŽ q$ Ă&#x2026;
_ Ă &
_ Ăą & t " h
char(15) references branch ĂŽ â&#x20AC;˘ SQL\  " fÂ&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
s Ă 0 AC á &Â&#x20AC; l Â&#x2018; r& : Ă&#x153; h ÂźÂ&#x2013; Ă?Â? H Ă&#x2022; ÂŞÂ&#x192; Ă Â&#x2013;Â&#x201C; Ă&#x; r Ă&#x2030; Ă&#x201A; Ă&#x2019;Â? a ) . Ă&#x201A; Ă&#x2019; t ¡ §Â&#x201C; Ăş ÂŚÂ&#x203A; aÂş ' Ă&#x2C6; Ă&#x2019;e ÂŚ` ÂŚ Â&#x2022;] Â&#x152; j¢ ¸Â? HĂ&#x152; t q Â&#x2019; Â&#x201C; ÂŚ Â&#x20AC; 6 §þ ÂŁ °  s Ăş 5 q$ Ă&#x2026;
` Ă ÂŚ
_ Ăą & Ă´ Ă&#x2021; .
6.4
² Â&#x17D;P
â&#x20AC;˘ ç Ă&#x192;h (trigger)Â? HX <s ' Z Â&#x2026;s Ă&#x203A; Âź\  @ /Ă´ Ă&#x2021;Â
_ â side effectÂ&#x2013; Ă? 1 xĂ&#x153; l ÂźÂ&#x2013; Ă?Ă&#x192; Âş' Â?á Â&#x; &Â? H ĂŤÂ H Â&#x153;` Š Ϋ Â&#x2DC;Ă´ Ăş Ă&#x2021; .
create table account ( > ý a  ù char(10), t & " h
char(15), ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; ĂŻ o integer, Â? primary key (> Ă˝ a  ù), foreign key (t & " h
) references branch ĂŽ on delete cascade on update cascade, check(ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o >= 0)) Â?
â&#x20AC;˘ Ă Ă&#x201D;o B j& m 7 §_ ÂŁ ½ ¨$
Ă â&#x20AC;&#x201C; Ă Ă&#x201D;o z ´Â? ' Â&#x;| cÂ&#x203A; ¨ ¸| : Â&#x203A; ¸| _ t &
Â&#x201C; Ăą rl Ă&#x2030; d Â&#x2039; ç Ă&#x192;Ăź <s Â&#x2122;Ă $ Ă&#x201D; Âľ Ă?Ă&#x2019; 1 t q % ` i ÂŚM :ĂŤ Â&#x2013;7 Ă&#x; ¤K ĂĄ HÂ&#x153; Â? ÂżÂ&#x17E; >Âż
Âş t \ ÂŚt &
Ă´ Ăą Ă&#x2021; . â&#x20AC;&#x201C; Ă Ă&#x201D;o z ´Â? ' Â&#x;á &% ` 3 ÂŚM :2 [½ Ă&#x2030;j + Â&#x161; Ă&#x;Â&#x17E; â s Ă Ă&#x201D;o Â&#x2014; ¸4 q` S ÂŚ event-condition-action Â&#x2014; ¸q 4 S s Ă´ Ă&#x2021; . 2
â&#x20AC;&#x201C; Ă Ă&#x201D;o Â? H | s Âľ Ă?Ă&#x2019; 1 tĂ´ q Ă&#x2021;Ă&#x160; êá rĂŤ Â&#x2013; Ă&#x; m Âľ Ă? 1 t q Ă&#x2019; l Â&#x201E; \  6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . s M :Â? H after @ / Â&#x2019; \  before\ ÂŚ 6 xĂ´  Ă&#x2021; .
create trigger 1 x@ l /Ă&#x2DC; ÂŚ after update on account referencing new row as nrow for each row when nrow.ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o<0 Â? begin atomic insert into borrower (select Â&#x201C; ÂŚĂ&#x152; o" Â?
, > Î ý a  ù from depositor where nrow.> ý a  ù = depositor.> ý a  ù); insert into into loan values (nrow.> ý a  ù,nrow.t & " h
,â&#x2C6;&#x2019;nrow.ĂŻ ĂŽ Â&#x2013;Ă&#x201C; Ă&#x; o); Â? update account set balance = 0 where account.> Ă˝ a  ù = nrow.> Ă˝ a  ù end
â&#x20AC;&#x201C; Â
s â & 6 h xÂ?  ay ) Â&#x2022;Ă&#x2C6; Â&#x152; Ă&#x2019;e ÂŚ\  @ /K Ă Ă&#x201D;o \ ÂŚz ´ ' Â? Â&#x; t ¡ §Â&#x201C; Ăş ÂŚĂ´ Ă&#x2021; SQL ĂŤ H Â&#x153;\ Š  @ /K ĂŠ Â&#x2013;{ Ă&#x; 9 Â? ' Â&#x;1 x l ÂŚ ` Â&#x2022; ¸2 ¤½ Â&#x; Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . s M :Â? H for each row @ / Â&#x2019; \  for each statement\ ÂŚ 6 xĂ´  Ă&#x2021; . Â&#x201E; Â? HÂ? ' Â&#x;Ă&#x192; ºï rĂ Ă&#x201D;o 9, Ă&#x160; ĂŞ Â? HĂŤ H Â&#x153; Š Ă&#x192; ºï rĂ Ă&#x201D;o Ă´ Ă&#x2021; . _ SQL ĂŤ H Â&#x153;Ă&#x153; Š ÂźÂ&#x2013; Ă? # Â&#x152; Q' Â?` Â&#x; ÂŚĂ&#x192; Âş&
Ăą % Ă&#x153; i ÂźÂ&#x20AC; ' Â?Ă&#x192; Â&#x; ºï rĂ Ă&#x201D;o Â? H y Â&#x2022;Â? Â&#x152; ' Â&#x; z ´' Â?Â? Â&#x; a ) . ĂŹ Ă?Â&#x20AC; ø \  Í HŠ  Ă&#x192; Â&#x153; ºï rĂ Ă&#x201D;o Â? HĂ´ Ă&#x2021; Í Â&#x2013;z Ă&#x; ´Â? ' Â&#x;Â? a ) . â&#x20AC;&#x201C; for each statement` ÂŚ 6 x  Â&#x20AC; referenc ing old table as ¢ ¸Â? H referencing new table as\ ÂŚ 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . s e r Â&#x201D; _ Â&#x2026;s ^ ÂŚÂ&#x201C; r% Ă&#x2030;
ò Ă&#x201C;` ž Â&#x2020; ÂŚ~ Ă&#x17D;Â? Ă&#x192; HÂ&#x2014; ¸Â&#x17D; HĂ&#x2C6; Ă&#x2019;e ÂŚÂ&#x2013; Ă?½ ¨$
Â? Ă a_ ) Â&#x2026;s ^ ÂŚs 9, s Â? ' Â&#x;_ Â&#x2026;s ^ ÂŚ(transition table)s Ă´ Ă&#x2021; . s Â? ' Â&#x; _ Â&#x2026;s ^ ÂŚ` ÂŚ 6 x½  Ă&#x2030; +
Ă&#x201E; â Âş\  Â? H afterĂŤ Â&#x2013; Ă&#x; 6 x½  Ă&#x2030; + Ă&#x192; Âşe Â&#x201D; .
<Ă&#x2022; ÂŞa > 6.1> Ă Ă&#x2039; Ă&#x201D;o \ V] j 6.4.1
² Â&#x17D;P 8 Ă˝Ă&#x2021; Ă˝ m~ ÂżV Ă&#x2039; R
â&#x20AC;&#x201C; \ V2) create trigger abc after update on account referencing old table as oldTab new table as newTab for each statement ... # Â&#x152;l " f oldTabÂ&#x201C; rĂ&#x152; Ă&#x2030; t q Â&#x2019; Â? aĂ&#x2C6; ) Ă&#x2019;e ÂŚ_ " ! Âş QÂ&#x201E; Ă&#x153; Âź Â&#x2013; Ă?½ ¨$
Â? Ă a_ ) Â&#x2026;s ^ ÂŚs Â&#x201C; ÂŚ, newTabÂ&#x201C; rĂ&#x152; Ă&#x2030; tÂ&#x2019; q Â? aĂ&#x2C6; ) Ă&#x2019; ÂŚ[ e tÂ&#x2013; Ăž Ă?ĂŤ Â&#x2013;½ Ă&#x; ¨$
Â? Ă a_ ) Â&#x2026;s ^ ÂŚs .
â&#x20AC;˘ Ă Ă&#x201D;o Â? H 6 x  \  > # QÂ&#x2039; ĂŤ " H] j Â&#x153;S Š ` ! Œ¡ Â&#x2DC;o Ăş Â? H Ă&#x192; ºÊ Â&#x2013;Ă&#x153; Ă&#x; ÂźÂ&#x2013; Ă?¢ ¸Â? H# QÂ&#x2039; Â&#x203A; " ¸| s ĂŤ Â&#x2013;7 Ă&#x; ¤á ĂĄ &% ` 3 ÂŚM : 1 x l Ă&#x153; ÂźÂ&#x2013; Ă?# QÂ&#x2039;  " Â&#x2022;\ Â&#x152; ` O ÂŚĂ&#x192; ÂşÂ? ' Â&#x; Â? HĂ&#x192; ºÊ Â&#x2013;Ă&#x153; Ă&#x; ÂźÂ&#x2013; Ă?Ă&#x201E; Âť6 x  . â&#x20AC;˘ \ V1) > Ă˝ a_ ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? 6 §_ ÂŁ ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ t t 3 w l Â&#x2022; ¸2 ¤ Â&#x; Â? H@ / Â&#x2019; \  6 §_ ÂŁ ° â&#x20AC;Ť`×&#x203A;â&#x20AC;Ź Ăş ÂŚ t > á &Â&#x20AC; Ă&#x2022; ÂŞ \ â&#x20AC;Ť×&#x203A;â&#x20AC;Ź  K { Â&#x153; Š Â? H@ /Ă&#x2DC; ÂŚ> Ă˝ a\ ÂŚĂŤ Â&#x2013;[ Ă&#x; tÂ&#x2022; Ăž ¸2 ¤½ Â&#x; Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . â&#x20AC;&#x201C; | : Â&#x201C; Ă&#x2DC; ÂŚ â&#x20AC;&#x201C; Â&#x203A; ¸| : Â&#x201C; Ă&#x2DC; ÂŚĂ&#x160; ĂŞĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? 6 §Ă&#x192; ÂŁ Âş á &Â&#x20AC; â&#x20AC;&#x201C; Â&#x; '1 Â? x: 1) loan Â&#x203A; l a> ' \  D hĂ&#x2C6; Ă&#x2019;e ÂŚĂ&#x2020; Ă&#x2019; , 2) borrwer Â&#x203A; a> ' \  D hĂ&#x2C6; Ă&#x2019;e ÂŚĂ&#x2020; Ă&#x2019; , 3) ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o` Â? ÂŚ 0Ă&#x153; ÂźÂ&#x2013; Ă? & O [
Ăą
6.5
â&#x20AC;˘ SQL \ V) Ă&#x2022; ÂŞa > 6.1 Ă&#x2039;
6.5.1
| ÂşÂ&#x17D; mĂ&#x160; Â&#x2DC; Ă?Ă&#x; Ă&#x192; Ă&#x2026; | ÂşÂ&#x17D; m Â&#x2DC; ߜ á Â&#x2C6;
â&#x20AC;˘ Â&#x20AC; Â&#x2022;_ Â&#x152; & h Â&#x201C; ] H X _ 7 xĂ&#x20AC; ĂĄ Ă&#x201C;
â&#x20AC;&#x201C; account Â&#x203A; a> ' \  @ /Ă´ Ă&#x2021;Ă&#x152; t q Â&#x2019; s e ` Â&#x201D; ÂŚM : s Ă&#x201D;o à ¸ Â&#x203A;| ` ÂŚ Â&#x17D; Ă´ Ă&#x2021; .
â&#x20AC;&#x201C; q Â&#x201C; Â? aX ) <s ' { 9 l
â&#x20AC;&#x201C; Ă´Â Ă&#x2021; \  # Â&#x152; QÂ? ' Â&#x;s Ă&#x152; tÂ&#x2019; q | cĂ&#x192; ¨ Âşe Ă&#x153; Â&#x201D; ÂźĂ&#x2122; ÂźÂ&#x2013; Ă?Ă&#x152; t q Â&#x2019; &Â? á Hy Â&#x152; Â&#x2022;Â? ' Â&#x; Â&#x203A; ¸| ` ÂŚ Â&#x17D; K Ă´ Ă&#x2021; . s :y M Â&#x2022;' Â&#x152; Â?s Â&#x; nrow Â? a ) .
â&#x20AC;&#x201C; q Â&#x201C; Â? aX ) <s ' Ă&#x192; Âş&
Ăą â&#x20AC;&#x201C; q Â&#x201C; Â? aX ) <s '
Ăľ
â&#x20AC;˘ X <s ' Z Â&#x2026;s Ă&#x203A; ÂźÂ&#x2DC; Ă?ĂŽ Â&#x2013;Â&#x201C; Ă&#x; rs Ă&#x2030; Ăź <°  Â&#x201C; Ăş rÂ&#x20AC; Ă&#x2030; Â&#x2022;_ Â&#x152; & h Â&#x201C; ] H X Ă&#x153; ÂźÂ&#x2013; Ă?Ă&#x201A; Ă&#x2019;' X <s ' Z Â&#x2026;s Ă&#x203A; Âź\ ÂŚÂ&#x2DC; Ă? ù Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź .
â&#x20AC;˘ SQL\  " fĂ Ă&#x201D;o  Â&#x2022;$ Â&#x152;
½ Ă Ă&#x2030;M + : 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; HÂ&#x201A; Ă&#x2014; Â&#x2DC; Ăž Â&#x2020; Ă&#x201C; ½
â&#x20AC;˘ X <s ' Z Â&#x2026;s Ă&#x203A; Âź\ ÂŚÂ&#x2DC; Ă? ù l 0 AK " fÂ? H# Â&#x152; QY UÂ&#x161; 6 \\  " fÂ&#x2DC; Ă?ĂŽ Â&#x2013;Ă&#x192; Ă&#x; ºÊ Â&#x2013;` Ă&#x; ÂŚy Â&#x153;½ Š ¨K Ă´ Ă&#x2021; .
â&#x20AC;&#x201C; 0 xĂ´ p Ă&#x2021; | : update, insert, delete â&#x20AC;&#x201C; q Ă&#x152;Â&#x2019; t \ Â @ /Ă´ Ă&#x2021;Ă Ă&#x201D;o _
Ă&#x201E; â Âş\  Â? H: ¤& ÂŁ
5 Ăą q$ Ă&#x2026;
Ă ÂŚt ` &
½ Ăą Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . 5 q$ Ă&#x2026;
` Ă ÂŚt &
Ăą Â&#x20AC; s 5 q Ă&#x2026;
s Ă $ Ă&#x152; tÂ&#x2019; q | c: ¨ M\  Â? HĂ Ă&#x201D;o z ´Â? ' Â&#x;Â? a ) . create trigger 1 x@ l /Ă&#x2DC; ÂŚ after update of ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; o on account Â?
â&#x20AC;&#x201C; X <s ' Z Â&#x2026;s Ă&#x203A; Âźr Ă&#x203A; Âź% Â&#x203A;: 7 6 x  _ Â&#x201C; (auth orization) ] jÂ&#x20AC; Â&#x2022;Â&#x203A; Â? ¸| _ 0 AC á &t ¡ §Â&#x2022; Ăş ¸2 ¤ K Â&#x; Ă´ Ă&#x2021; . â&#x20AC;&#x201C; ĂŽ% r
^ ò Â&#x2030;] j: X <s ' Z Â&#x2026;s Ă&#x203A; Âź r Ă&#x203A; Âź% Â&#x203A;s 7 ĂŽ Â&#x2013;Â&#x201E; Ă&#x; # Â&#x152;Â&#x2022; ¸Î r%
^ ò Â&#x2030;] j ĂŽ Â&#x2013;Â&#x201E; Ă&#x; t ¡ §Ă&#x153; Ăş ÂźÂ&#x20AC; X <s ' Z Â&#x2026;s Ă&#x203A; Âź\ ÂŚĂ&#x201E; Âş r # Â&#x152;q Â&#x201C; Â? a] ) X H` Œ½ Ă&#x2030;Ă&#x192; + Âş Â&#x201D; e .
â&#x20AC;&#x201C; referencing new row asÂ? HĂ&#x152; tÂ&#x2019; q Ăľ Âś Â&#x161;{ Ăş 9 ½ Ă&#x2030; + : M 6 xá  &9, Â&#x2022;] Â&#x152; j½ Ă&#x2030;M + :\  Â? H referencing old row as\ ÂŚ 6 xĂ´  Ă&#x2021; . ¢ ¸ô Ă&#x2021;Ă&#x152; tÂ&#x2019; q ½ Ă&#x2030;M + :Â&#x2022; ¸D h° â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ăş ÂŚq ` Â&#x201C; § Â? H s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź m Ă&#x152; tÂ&#x2019; q Â&#x201E; ° â&#x20AC;Ť\×&#x203A;â&#x20AC;Ź Ăş  à Ă&#x201D;o \ ÂŚz ´' Â?K Â&#x; Â? H
Ă&#x201E; â Âş\  Â? H refer encing old row as\ ÂŚ 6 xĂ´  Ă&#x2021; .
â&#x20AC;&#x201C; W 1Ă Ă&#x201D;0 >Ă&#x; Âź: @ /Ă&#x201A; Ă&#x2019;ĂŹ r_ X <s ' Z Â&#x2026;s Ă&#x203A; ÂźÂ? H Âś " ĂŠ Â? \  e Â? Â&#x201D; H9 t Ăž s Â&#x192; Ă Ă&#x201D;Â&#x2013; Ă?Ă&#x201A; Ă&#x2019;' ] 5 X q` Ă&#x2026; ÂŚ) Â&#x2021;6 xĂ´  Ă&#x2021; . " fs \  @ /Ă´ Ă&#x2021;Â&#x2DC; Ă?ĂŽ Â&#x2013;s Ă&#x; Â&#x20AC; 9 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź š . 3
– ü Óo t & : ( h É Ó' [ u O a ) © è\ @ /ô Ç Ðî ß ¦´ ` ô ú Ç . DBA
– 6 x : ? /Â Ò 6 x B N / \ @ /K ~ Ó# ½ Q H s כ # © Q§ > .
U1
U4
U2
U5
U3
Ã ß Å
6.5.2
<Õ ªa > 6.2> ¶ Ë Ýô Ç0 Ae Õ ªA á Ô
• X <s ' ¸ õ aº ' # 6 x \ > 0 Ae ½ ÉÃ + º e H¶ Ýô Ç_ 7 á xÀ Ó
DBA
– 9 {l ¶ Ýô Ç: X <s ' _ 9l { H 0 x p t ë Ã ß º
ñ & r½ É ÉÃ + º\ O .
U1
– ú ¶{ ¶ 9 Ýô Ç: D hX <s ' _ ¶ { ú 9 r 0 É x p t ë ß º& Ã
ñ r½ É Éº + Ã\ O .
U3
<Õ ªa > 6.3> Ë ¶ô Ý Ç^ = o r\ @ /ô Ç/ N B
– q Ì t ¶ô Ý Ç: Ã º&
ñ r½ É ÉÃ + ºe t ë X ß <s ' \ ¦ ] j½ ÉÃ + º\ O .
6.5.4
– ] j ¶ô Ý Ç: X <s ' \ ¦ ] j½ ÉÃ + ºe .
Å R ¢ X üÆ È k
• # Q " ¶ô Ý Ç` ¦ t ¦e H 6 x H r É 6 x \ > ¶ Ýô Ç` ¦0 Ae ½ ÉÃ + ºe .
6 x \ > s ¸ H ¶ô Ý Ç` ¦× ¦Ã ºe ¦, { 9  Òë ß ¦Ã × ºe .
• ¶ Ýô Ç_ 0 Ae r q É Sø N 5 Ü «8 è «(authorization graph) Ð ³ ð ³½ & É Ã + º e . s Õ ªA á Ô_ ¸× ¼ H 6 x \ ¦ ? /9, o¶ ³ ú ð(edge) H ¶ô Ý Ç` ¦0 Ae ô Ç 6 x ü <0 Ae ~ Î Ã r É 6 x ç \ ß a> ' \ ¦ p · . X <s ' Z s Û ¼ ao ' Õ ªA á Ô_ À Òà Ô a ) . À Òà Ô\ " f 6 x t
â Ð(path) e # Q t ß ë 6 x HÕ ª¶ Ýô Ç` ¦ .
• Û ¼v ¸ õ aº ' # 6 x \ > 0 Ae ½ ÉÃ + º e H¶ Ýô Ç_ 7 xÀ á Ó – Ò o ¶ô Ý Ç: Ò o _ Ò t$ q
õ í ] j 0 x p . – " ¶ é ¶ô Ý Ç: D h a> ' _ Ò t$ q
s í 0 x p . –
â ¶ô Ý Ç: a> ' \ D h5 q$ Å
` í ¦Æ Ò a ' _ > l r5 > q$ Å
` í ¦ ] j½ ÉÃ + ºe .
– \ V) Õ ªa > 6.2 Ë s Õ ªA á Ô\ " fX <s ' Z s Û ¼ ao ' (DBA) U1 _ ¶ô Ý Ç` ¦^ = o r(revocation) U4 _ ¶ Ýô Ç ¸ 1 xÜ l ¼ Ð ^ = o r a ) . t ë U5 ß H U2 РÒ' ¸¶ Ýô Ç` ¦~ Î Ã ¤Ü ¼Ù ¼ Ð ¶ô Ý Ç` ¦Ä » t ô Ç .
– ] j ¶ô Ý Ç: a> ' \ ¦ ] j½ Éà + ºe . • ¶ " é¶ Ýô Ç` ¦ t ¦e H | Ðs à D h a> ' \ ¦Ò t$ q
í Õ ª | ÐÜ Ã ¼ Ð 1 xÜ l ¼ ÐÕ ª a> ' ü < aº ' a ) ¸ H¶ Ýô Ç` ¦~ Î Ã H . 6.5.3
U2
• ¶ Ýô Ç^ = o r\ ¦Ä º r l 0 AK ¿ º 6 x " f Ð\ > ¶ Ýô Ç` ¦× ¦Ã ºe .
Ã ß Å Ñ ÷ ½
• Â Ó\ ¦ 6 x HÅ Ò3 q& l × h æ H 6 x ^ ¦ 9 כ ¹ \ O HX <s ' \ ¦ 6 x ÐÂ Ò' ¸ ul n H s כ .
6.5.5
Ķ
W £; c6 ¢4 X G È
• X <s ' Z s Û ¼\ ¶ô Ý Çõ aº ' a% ) ½ i É(role)` + ¦&
ñ _ ¦, 6 x @ / \ % ½ i É\ + ¶ Ýô Ç` ¦0 Ae ½ ÉÃ + º e .
• 6 x a> ' \ ¦] H X ½ Éf + ] & X h ¶ Ýô Çs \ # O Q ¸Õ ª a> ' ÐÂ Ò' ë ß HÂ Ó\ @ /ô Ç] X H ¶ô Ý Ç r É 9 | Ã ºe .
• D h 6 x \ > H> hZ ¶ > Ýô Ç` ¦0 Ae l Ð H % ½ i É` + ¦Â Ò# # l r > r É 6 x ü <1 x{ l ô 9 Ƕ Ý Ç` ô ¦ t ¸2 ¤½ Éà + ºe .
• ¶ " é¶ Ýô Ç` ¦ t ¦e t · § ú ¸Â Ó\ ¦Ò t$ q
½ í ÉÃ + º e .
• ° ú r% É ½ i É` + ¦ H 6 x [ t\ þ > ° ú rd É Z > \ ¦  Ò# ¦ ¸¿ º° ú rd É Z > Ð] 5 X q Å ¸2 ¤½ Éà + º e . Õ ª Q s
Ä â º\ H × æ\ # Q " 6 x # Q " ' 0 A\ ¦ % i Ht ½ ¨ì r½ Éà + º\ O .
• Â Ó\ ¦Ò t$ q
ô í Ç 6 x Hl r& : Ü h ¼ Ðl r\ > t ¦e H¶ Ýô Ç\ K { © H¶ Ýô Çë ~ ß Î Ã H . – r a> ' \ @ /ô Ç{ 9 l ¶ô Ý Çs e H 6 x r a> ' \ ¦s 6 x # Â Ó v\ ¦Ò t$ q
í s 6 x H v\ @ /K { 9 l ¶ Ýô Çë S ß 1 \ qô p Ç .
6.5.6
– r a> ' \@ /ô Ç# Q " ¶ô Ý Ç ¸\ O H 6 x r a> ' \ ¦s 6 x # Â Ó v\ ¦Ò t$ q
í ¦ Â Ò a ) .
P p c ¼X Ä ì
• X <s ' Z s Û ¼ H´ Ô Ç Í Ù (audit trail)` \ ¦Ä »t ô Ç . y Æ Ò& s h ê ÍX ø <s ' Z s Û ¼
\ â @ /ô Çl 2 ¤(' 0 A, 6 x ,r ç 1 ß x)` p ¦Ä »t H ÐÕ ªs . 4
â&#x20AC;˘ grant Âś Ă?Ă´ Ă&#x2021;_ 0 Ae : with grant option Â&#x201D; 6 x Â
â&#x20AC;˘ y Â&#x2122; Â&#x152; Ă&#x2020; Ă&#x2019;& Ăľ h Â&#x2DC; Ă?ĂŽ Â&#x2013;: ĂŤ Ă&#x; H] j Âľ Ă?Ă&#x2019; 1 t q % ` i ÂŚM :Âľ Ă?Ă&#x2019; 1 tÂś q " ĂŠ Â&#x201C; Ăľ Ă&#x2022; ÂŞ ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚ{ 9 Ă&#x153; ÂźÂ&#x2020; 6 x  \ Œ¡ Â&#x2DC; Ăş è qĂ&#x192;  ºe Â&#x201D; .
6.6
SQL; c" eĂ&#x; Ă&#x2026; Ă&#x192;
6.6.1
SQL; c" eĂ&#x2026; RÂ&#x201D;  ¢ X
grant select on account to U1 with grant option â&#x20AC;˘ Âś Ă?Ă´ Ă&#x2021;_ ^ = o r: revoke "
§ Î
ĂŽ 6 x  revoke < ϙ Ă? Ă&#x2021;3 q2 l ¤> Â&#x; on < Â&#x203A; a> ' s 2 §¢ ÂŁ ¸Â? HĂ&#x201A; Ă&#x201C;s 2 §> ÂŁ from < 6 x  ¢ ¸Â? H% ½ i Ă&#x2030;3 + q2 l ¤> Â&#x; [restrict|cascade]
â&#x20AC;˘ Âł Ă°ĂŻ r SQL\  " f] j/ Ná B &Â? H ϙ Ă? Ă&#x2021;_ 7 xĂ&#x20AC; ĂĄ Ă&#x201C;: delete, insert, select, update, references, grant â&#x20AC;&#x201C; select Âś Ă?Ă´ Ă&#x2021;: { l 9 ϙ Ă? Ă&#x2021;\  K { Â&#x153; Š â&#x20AC;&#x201C; references ϙ Ă? Ă&#x2021;: Â&#x203A; a> ' \ ÂŚĂŤ Â&#x2013;[ Ă&#x; tM Ăž :Ăź @Ă&#x201A; Ă&#x2019;v \ ÂŚ 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H ϙ Ă? Ă&#x2021;` Ϋ Â&#x2DC;Ă´ Ăş Ă&#x2021; . â&#x20AC;&#x201C; grant ϙ Ă? Ă&#x2021;: ϙ Ă? Ă&#x2021;` ÂŚ0 Ae ½ Â&#x201D; Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; HÂś Ă?Ă´ Ă&#x2021;` ÂŚ Â&#x2DC;Ă´ Ăş ´ Ă&#x2021; . 6 x  Â? Hl Â&#x2018; r& : Ă&#x153; h ÂźÂ&#x2013; Ă? ϙ Ă? Ă&#x2021;` ÂŚ Â? r Ă&#x2030; 6 x  % ½ i Ă&#x2030;\ +  > 0 Ae ½ Â&#x201D; Ă&#x2030;Ă&#x192; + Âş\ O .
cascadeĂŞ Ă?Âś ø Ă?Ă´ Ă&#x2021;_ ^ = o rÂ&#x2013; Ă? Â? r Ă&#x2030; 6 x  _ Âś Ă?Ă´ Ă&#x2021; t 1 x(Â&#x192; l W^ = o r)Ă&#x153; ÂźÂ&#x2013; Ă?^ = o rá &Â? H ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Ϋ Â&#x2DC;Ă´ Ăş Ă&#x2021; . cascade l Â&#x2018; rs : Ă&#x2122; ÂźÂ&#x2013; Ă?s ` â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚ" Âś ĂŠ Â&#x20AC; Ă&#x2019; t| q Ă&#x152;½ Ă&#x201E; Ă&#x2030;Ă&#x192; + Âş Â&#x201D; e . restrict\ ÂŚ 6 x  Â&#x20AC; Â&#x20AC; $ s Ăľ â&#x20AC;Ť×&#x203A;â&#x20AC;Ź Â&#x192; Â&#x203A; a ' # Â&#x152; 1 xĂ&#x153; l ÂźÂ&#x2013; Ă?^ = o r+ Ă&#x2030; ½ s â&#x20AC;Ť×&#x203A;â&#x20AC;Ź e Â? Â&#x201D; Ht Â&#x17D; Â&#x201C; ÂŚe Ă&#x153; Â&#x201D; ÂźÂ&#x20AC; Ă&#x201A; Ă&#x2019;Ă´ Ă&#x2021; .
â&#x20AC;˘ Âś Ă?Ă´ Ă&#x2021;0 Ae : grant " Â&#x201D;
§ Î
ĂŽ grant < Âś Ă?Ă´ Ă&#x2021;3 q2 l ¤> Â&#x; on < Â&#x203A; a> ' s2 §¸ ÂŁ ¢Â? HĂ&#x201A; Ă&#x201C;s 2 §> ÂŁ to < 6 x  ¢ ¸Â? H% ½ i Ă&#x2030;3 + q2 l ¤> Â&#x;
6.6.2
SQL ĂŞ > Â&#x2DC; +ø 5 N
â&#x20AC;˘ > hZ Ă&#x2C6; > Ă&#x2019;e ÂŚ\  @ /Ă´ Ă&#x2021;Âś Ă?Ă´ Ă&#x2021;` ÂŚ0 Ae ½ Â&#x201D; Ă&#x2030;Ă&#x192; + Âş\ O . â&#x20AC;˘ R Ă&#x203A; /_
Ă&#x201E; â Âş\  Â? H> hZ d > Z Â&#x201D; > @ / Â&#x2019; \  Â&#x2DC; Ă?: xÂ&#x201C; Â&#x; r Ă&#x2030; _ d Z Â&#x201D; > \ ÂŚ: xK Â&#x; ] H X Â&#x2022; ¸2 ¤ô Â&#x; Ă&#x2021; . " f SQL \  " f ϙ Ă? Ă&#x2021;` ÂŚ Â&#x17D; l Â&#x2DC; Ă? Â? H6 x6 ÂŁ x"  f! Q\  " fÂś Ă? Ă&#x2021;` Ă´ ÂŚ Â&#x17D; Ă´ Ă&#x2021; . Ă&#x2022; ÂŞ Q s X > O Â&#x20AC; ) Â&#x2021;& s h Â&#x201D; rF > Ă&#x2030;S + ½ Â&#x2030;Ă&#x2019; X ÂŚs ´ § Ăş .
â&#x20AC;˘ \ V) 6 x  U1 , U2 , U3  \> account Â&#x203A; a> ' \  @ /Ă´ Ă&#x2021; select ϙ Ă? Ă&#x2021;` ÂŚ0 Ae Â&#x201D; . grant select on account to U1 , U2 , U3 â&#x20AC;˘ update ϙ Ă? Ă&#x2021;` ÂŚ0 Ae ½ Â&#x201D; Ă&#x2030;: + M\  Â? HĂ&#x192; Âş&
½ Ăą Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; H5 q Ă&#x2026;
` Ă $ ÂŚt &
½ Ăą Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . \ V) 6 x  U1 , U2 , U3  \> loan Â&#x203A; a> ' Ă&#x2014; ĂŚ@ /Ă&#x2DC; ÂŚĂ&#x201C; o Â? 5 q$ Ă&#x2026;
\ Ă Â @ /Ă´ Ă&#x2021; update Âś Ă?Ă´ Ă&#x2021;` ÂŚ0 Ae Â&#x201D; . grant update (@ /Ă&#x2DC; ÂŚĂ&#x201C; o) on loan to U1 , U2 , U3 Â? â&#x20AC;˘ references ϙ Ă? Ă&#x2021;Â&#x201C; rÂ&#x201A; Ă&#x2030; Ă?Â&#x203A; Ă&#x192; ¸½ Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; HĂ&#x2026; Ă&#x2019;v \ ÂŚt &
Ăą K Ă´ Ă&#x2021; . \ V) 6 x  U1 \  > branch Â&#x203A; a> ' _ Ă&#x2026; Ă&#x2019;v Â&#x201C; t & " h
ĂŽ ÂŚÂ&#x201A; ` Ă?Â&#x203A; Ă&#x192; ¸½ Ă&#x2030;Ă&#x192; + Âşe Â? Â&#x201D; HÂś Ă?Ă´ Ă&#x2021;` ÂŚ0 Ae Â&#x201D; . grant references (t & " h
) on branch to U1 ĂŽ references Âś Ă?Ă´ Ă&#x2021;s Â&#x20AC; 9 â&#x20AC;Ť×&#x203A;â&#x20AC;Ź šô Ă&#x2021;s Ă&#x201E; ÂťÂ? HÂ&#x201A; Ă?Â&#x203A; Ă&#x192; ¸à º $
\ Ă Â " fÂś Â&#x2DC;Âź Ăş Â&#x2018; # r : Ăź <°  s Ăş Ăź @Ă&#x201A; Ă&#x2019;v \ ÂŚ 6 x  Â&#x20AC; Â&#x2022;] Â&#x152; jĂź < t q Ă&#x152; Â&#x2019; Â&#x192; Ă Â&#x2013;\ Ă&#x;  %
Â&#x2020; ò Ă&#x201C;` ž ÂŚĂ&#x2026; Ă&#x2019;l M :ĂŤ Hs . â&#x20AC;˘ Â&#x2014; ¸Â&#x17D; H ϙ Ă? Ă&#x2021;` ÂŚ0 Ae ½ Â&#x201D; Ă&#x2030;: + M\  Â? H all privileges` ÂŚ 6 x  Ă&#x2030;Ă&#x192; + ½ Âşe Â&#x201D; . â&#x20AC;˘ & Â&#x2030;F Âł 6 x  á rĂŤ Â&#x2013; Ă&#x; m p A _ 6 x  \  > Â&#x2022; ¸ Â&#x2014; ¸¿ Âş ϙ Ă? Ă&#x2021;` ÂŚ Ă&#x2014; ÂŚ : M\  Â? H 6 x  d Z Â&#x201D; > @ / Â&#x2019; \  public` ÂŚ 6 x½  Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . â&#x20AC;˘ % ½ i Ă&#x2030;_ + Ă&#x2019; t$ q
Â&#x201C; Ă Ă&#x2030; r 6 §þ ÂŁ °  s Ăş Ă´ Ă&#x2021; . create role teller s % ½ i Ă&#x2030;\ +  œ Ă?Ă´ Ă&#x2021;0 Ae Â&#x201C; Â&#x201D; r grant " Ă&#x2030;
§ Î
` ĂŽ ÂŚs 6 xĂ´  Ă&#x2021; . grant select on account to teller # QÂ&#x2039; " 6 x  \  >% ½ i Ă&#x2030;` + Œ½ Ă&#x2030;{ + Â&#x153;½ Š Ă&#x2030;M + :\  Â&#x2022; ¸ grant "
ĂŽ
` ĂŽ § ÂŚs 6 xĂ´  Ă&#x2021; . grant teller to john 5
c °2003, sangjin@kut.ac.kr
6 x6 £ x\ " fs À Ò# Qt > a ) . ÷ rë ß m s ` כ ¦ Å Òv Ð 6 x f ¶ " és  Ò" f\ ¦` U ´M :f ¶ " és H ¸ H/ M` B ¦Ã º&
K ñ ô Ç .
2T 6 ' _9 KT Ã : ~ ¡q ç { ¡È 06
• ¸y 9q ¶ " é & 5 h q$ Å
s í Ä »6 x½ Éà + º ¸e . Õ ªX O l M :ë H\ X <s ' Z s Û ¼\ " f4 ¤½ Ë5 + q$ Å
` í ¦] j/ N B Ç ô .
A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
7.2
Part II. Relational Databases
Ë4 ¾ å ] ù6 k KT ' [9 cT כ Ç4 r S ] ¤X K Ë N
• ¸ 3 ú w[ l > O Ð K µ ÏÒ 1 t q Hë H] j& h – X <s ' _ × æ4 ¤ – : ¤& £
& ñ
ñ Ð_ ³ ð ³Ô & ¦ 0 x p
Ë4 ¾ å ] ù6 k KT ' [9 cT 8 ýכ Ç4 r
7
• \ V) loan, borrower, branch a> ' \ ¦ 6 x H@ / \ 6 §õ £ ° ú r É _ a> ' ë ` ß ¦ 6 xô Ç ¦ .
• 3 q³ l ð – Ô ¦ כ 9 ¹ > × æ4 ¤$ ÷ © & H ` כ ¦× ¦s H . כ (× æ4 ¤s ´ §Ü ú ¼ $ / © Nç B s ß z q © ÷ &9, q { 9 a$ '
s í íA | cS ¨ Ò X ¦s Z } .)
Lending-schema = (t & " h
,t î & - h ¸r , í , ß ¦Ì o"
,@ î /Ø ¦ ñ,@ /Ø ¦Ó o)
– ñ &
Ð Ò o` ¦´ òÖ ¦& Ü h ¼ н Éà + ºe > Û ¼v ¦& \
_ ñ H כ
– ' << Ö K 1. t & õ h aº ' a& )
ñ Ð × æ4 ¤ a ) . $ / © Nç B s ß z q © ÷ & ¦e Ü ¼9, t & ñ h
& Ð_ Ì t q s # Q§ > . \ V) t & _ h í & ß
ñ Ð_
â
• s 3 q³ l ð\ ¦Ø æ7 ¤r á v l 0 Aô Ç~ ÓZ ½ × O æ HÇ Ä a ª C(normal form)\ f Ì ´ > ú Û ¼v \ ¦&
_ ñ H כ s .
– s \ V\ " ft & s h Å Ò# Qt Õ ª _ כ í ß r É 1 q: l ¤ £ > &
ñ a ) . Õ ª Q ô Ç t & \ h # Q @ /Ø ¦s e ` ¦ Ã º e Ü ¼Ù ¼ Ð t & h r @ É /Ø ¦ ¦ ` &
½ ñ ÉÃ + º\ O . " ft & " h
õ î í ß r É Á þÊ Á¤ 4¢ ´(functional dependency)s 4 e ¦ 9, 6 §õ £ ° s ú ³ ð ³ô & Ç .
• a ÇÄ ª ª(normalization)ê Í < ø Xs ' \ ¦ X <s ' Z s Û ¼\ ´ òõ & Ü h ¼ Ð ¸f o Hõ &
Ü ñ ¼ Ð, &
½ ñ ©+ A þ rs É õ &
\ ñ " f Ð Ã ¦½ Éà + ºe Ht g >s Ë .
7.1
& t " h
→ î í ß
g1 X < Ë N ] ù k
• ' > a Û ¼v R_ ¸ H5 q$ Å
_ í ¸B j s ¶ " é & h s R r] É j1 &
½ ñ ©+ A(1NF)\ þ 5 qô Å Ç ¦ô Ç .
• 5 q$ Å
_ í ¸B j s " ¶ é & s h u ´M :µ ÏÒ 1 t½ q ÉÃ + ºe Hë H] j
t ë t ß & " h
õ î @ /Ø ¦ ñ H Êà < º7 x5 á q Å a ' > \ O . 7 x5 á q Å a> ' \ O H כ r É r É a ' > \ ¦: xK ? / H s כ | Ðf à . Êà < º 7 x5 á q` Å ¦ r´ É ú ÐÄ »{ 9 ° ]כ ú j ¸| (unique value constraint)s ô Ç . 7 ¤, £ Êà < º7 x5 á q Å r É a> ' Ø æ7 ¤K á H] j ¸| × æ s .
– 4½ ¤ Ë5 + q$ Å
\ í " f[ jÂ Ò 9 × ¼\ ¦Æ ÒØ ¦ HÂ Ò h & á Ô ÐÕ ªA b
s ç כ 9 ¹½ ÉÃ + ºe .
– ' << Ö K 2. @ /Ø ¦s \ O Ht & \ h aô ' Ç&
ñ Ð\ ¦f X ] è qà º\ O . V ° , `כ ú ¦ 6 x½ Éà + ºe t V ß ë ° , כ ú r% É o l # Q§ > .
• 4 ¤½ Ë 5 + q$ Å
(\ í V: Å Ò è)õ × æ° כ5 ú q$ Å
(\ í V: o ñ) r¶ É " é & 5 h q$ Å
s í m .
– < Xs ' × æ4 ¤_ 0 x$ p
: \ í V) depositor a> ' / @ \ customer a> ' \ > ý a_ | 9 ½ Ës + H × æ° כ5 ú q$ Å
` í ¦Ò Æ ¦, account a> ' \ ¦ o_ Ì | 9 ½ Ës + H × æ° כ5 ú q$ Å
` í ¦Æ Ò Ù ¡` þ ¦
Ä â º
7.3
¤ K ] ¤ Þ Ò × Ò
7.3.1
M Ä Ø4 ] G È
Ë8 N X ý 7.1 (Á Ê þ Á¤ 4¢ ´). 4 a> ' Û ¼v R, α ⊆ R, β ⊆ Rs e ` ¦ M :, ¸ H & Z h ô O Ç a> ' r(R)\ " f t1 [α] = t2 [α]` ¦ë 7 ß ¤ á H r\ 5 qô Å Ç ¸ HÈ Òe ¦ t1 õ © t2 \ @ / K t1 [β] = t2 [β]s 6 §õ £ ° ú r É Êà < º7 x5 á qs Å a> ' Û ¼v R\ $
w í n ô Ç ¦ô Ç .
• ¸B j ` ¦z ´] jX <s ' Z s Û ¼\ # Qb G> 6 x Ö ¼ × æכ ¹ . • \ V) f " ¶_ é d Z > ñ\ ¦ CS0012% !  3 Ò" f d Z > (CS)ü < Ò" f? /_ f ¶ " é_ ¦Ä » ñ(0012)\ ¦½ Ë + 5 gë ß H ¦ . s
Ä â ºs ¸B j r¶ É " é & h 5 q$ Å
s í m . s ü <° ú r É
Ä â º\ f ¶ " és è5 q Å a )  Ò" f\ ¦· ú ¦z ·Ü ¼ d Z > ñ\ " f· ¡¿ ú ºë H \ ¦ Æ ÒØ ¦ H Â Ò & h á Ô ÐÕ ªA b
s ç כ 9 ¹ > a ) . s כ rX É < s' Z s Û ¼\ " fs À Ò# Qt t · § ú ¦
α→β
¤
Ë8 N X ý 7.2 (Ê Á( xo ). a> ' Û ¼v Rõ K ⊆ R e ` ¦ M :, K → Rs $
w í n K H R_ Ã º( v s . ¤ 1
– Borrower-schema: \ 6 O § £
• Êà < º7 x5 á q Å r É 6 §¿ £ º t 6 x ¸ Ð 6 xô Ç .
– Account-schema
– Q # " a> ' Å Ò# Q Êà < º7 x5 á q| Å 9 ½ Ë` + ¦ë 7 ß ¤ á Ht l 0 Aô Ç x 6 ¸ Ð 6 xô Ç . a ' rs > Å Ò# Q Êà < º7 x5 á q| Å ½ 9 Ë F\ + ¦ë 7 ß ¤ á r r F\ É ¦Ø æ7 ¤ô á Ç ¦´ ô ú Ç .
> ý a ñ → ï Ó ß o > ý a ñ → t & " h
î
– Ò Å# Q a> ' \ ] j ¸| ` ¦"
r î l 0 Aô Ç x 6 ¸ Ð 6 xô Ç . Êà < º7 x7 á ¤| á ½ 9 Ë F\ + ¦Ø æ7 ¤ á H a> ' Û ¼v R_ a> ' ë ß À Ò ¦ F H R\ " f$
w í n ô Ç ¦´ ô ú Ç .
– Depositor-schema: \ 6 O § £ 7.3.2
• < Ã Ê º7 x5 á q| Å ½ 9 Ë F` + ¦Ø æ7 ¤ á H ¸ H a> ' r(R)s a> ' Û ¼v R\ @ /ô Ç Êà < º7 x5 á q f\ Å ¦Ø æ7 ¤ á f H F\ Ho 7 & Ü h ¼ Ð? / í÷ &# Qe ¦ô Ç .
• \ V1) 6 §õ £ ° ú r É a> ' rs e ¦ . A a1 a1 a2 a2 a3
B b1 b2 b2 b3 b3
C c1 c1 c2 c2 c2
¤ K ] ¤ Þ Ò ×ù Ò É¶ m ¥8 ýR nÌ c ö
D d1 d2 d2 d3 d4
• \ V1) a> ' Û ¼v R = (A, B, C, G, H, I)õ R\ " f$
w í n H 6 §õ £ ° ú r É ÊÃ < º7 x5 á q| Å 9 ½ Ës + e ¦ . A → A → CG → CG → B →
– A → C HØ æ7 ¤ á a ) . Õ ª Q C → A HØ æ7 ¤ á &t ÷ · § ú H . – AB → D ¸Ø æ7 ¤ á a ) . • ¸ H a> ' \ " f Ø æ7 ¤÷ á & H Êà < º 7 x5 á q Å r É Ã (triZ vial) ¦´ ô ú Ç . \ V) A → A, AB → A
B C H I H
Õ ª Q s ÊÃ < º7 x5 á q| Å 9 ½ Ë + r A → H\ É ¦ Ho 7 & Ü h ¼ Ð? / í ¦e .
• β ⊆ αs ÊÃ < º7 x5 á q α → β Å r É "
î .
• F_ ¶ Ò× Ç (closure)s Ï ê Í F\ ø _ K Ho 7 & Ü h ¼ Ð? / í ¦ e H ¸ H ÊÃ < º 7 x5 á q_ Å | 9 ½ Ë` + ¦ ´ ú 9, F + Ð p · .
• \ V2) customer a> ' – ‘ ¦Ì o- o → ¦Ì o- ¸r ’ Êà < º7 x5 á q` Å ¦Ø æ7 ¤ á Ç ô . Õ ª Q Ð: x" f Ð r É ¸r \ ° ú r É o "
s î e ` ¦Ã ºe Ü ¼Ù ¼ Ð ‘ ¦Ì o- o → ¦Ì o- ¸r ’ Êà < º7 x5 á q Å r customer É a> ' \ " f
w í $ n t · § ú H .
• Armstrong r F +\ É ¦½ ¨½ ÉM + : 6 x½ Éà + ºe H 6 § £ ° õ ú r/ É No B (axiom) ¢ ¸ HÆ Ò r½ : ©g :` Ë ¦] jî ß % i .
– ï ^ B ¢. # Q " a> ' # Q " Êà < º7 x5 á q` Å ¦Ø æ7 ¤ á ¦e # Q ¸Õ ª Êà < º7 x5 á qs Å Õ ª a> ' \ $
w í n ô Ç ¦´ ½ ú ÉÃ + º H\ O .
– 5 ð Ä ªÓ (reflexivity rule): α 5 Ï q$ Å
_ í | 9 Ës + ½ ¦ β ⊆ α $
w í n α → β $
w í n ô Ç . – 7 È Ä ªÓ (augmentation rule): α → β $ Ï
í n w ¦ γ 5 q$ Å
_ í | ½ 9 Ës + γα → γβ $
í n w ô Ç .
• \ V3) loan a> ' – ‘@ /Ø ¦ ñ → / @Ø ¦Ó o’ Êà < º7 x5 á q` Å ¦Ø æ7 ¤ô á Ç . ¢ ¸ô Ç ‘@ /Ø ¦ ñ→@ /Ø ¦Ó o’ Êà < º7 x5 á q Å r É loan a> ' \ " f$
w í n ô Ç .
– Í Ùl Ä ªÓ (transitivity rule): α → βü Ï <β → γ $
w í n α → γ $
w í n ô Ç .
• r É ' X <s ' Z s Û ¼\ $
w í n K H ÊÃ < º7 x5 á q Å
Armstrong_ / No B H| (sound) 9 ¢ a (com plete) . 7 ¤, ¸ £ 3 ú w l a ) Êà < º7 x5 á q` Å ¦ë [ ß t# þ Q? /t · §Ü ú ¼9, s / No B [ t` þ ¦s 6 x ¸ H F +` ¦Ò t$ q
í ÉÃ + ½ ºe . Õ ª Q Armstrong_ / No B \ ¦& 6 h x # F +` ¦Ò t$ q
í H כ rÔ É ¦¼ # . " f Ð: x 6 § £ ¦ `½ ©g :` Ë ¦ 6 xô Ç .
– Branch-schema & t " h
î
→
& t - h ¸r
& t " h
î
→
í ß
¦Ì o"
î
→
¦Ì o- ¸r
¦Ì o"
î
→
¦Ì o- o
– Customer-schema
– r ÚT
¼Ä Ò ªÓ (union rule): α → βü Ï < α → γ
w í $ n α → βγ $
w í n ô Ç . – & B P Ä ªÓ (decomposition rule): α → βγ Ï
w í $ n α → βü < α → γ $
w í n ô Ç .
– Loan-schema
– + Í Ùl Ä ªÓ (pseudotransitivity rule): Ï α → βü < γβ → δ $
w í n αγ → δ $
í n w ô Ç .
/Ø @ ¦ ñ → @ /Ø ¦Ó o /Ø @ ¦ ñ →
t & " h
î 2
F+ = F F + t · §` ú ¦M : t 6 §` £ ¦ì Í4 ø ¤ F +\ e Hy Êà < º7 x5 á q f\ Å @ /K f\ ì Í ø ½ ©g :õ Ë S @ X /½ ©g :` Ë ¦& 6 h x h D Êà < º7 xÅ á q 5` ¦ F +\ Æ Ò F +\ e Hy Êà < º7 x5 á q Å f1 , f2 \ © @ /K Òs Æ ½ ©g :` Ë ¦h &6 x h D Êà < º7 x5 á q` Å ¦ F + \Æ Ò
7.4
Ë N X & ! a
• < Ã Ê º7 x5 á q| Å ½ 9 Ë F $ +
w í n H a> ' Û ¼v R\ @ /ô Ç a> ' r(R)s e ` ¦M :, s a> ' \ @ /ô ÇÌ t q r F\ É ¦Ø æ7 ¤K á ô Ç . • s \ ¦~ > 1 l 0 AK Ô ¦ כ 9 ¹ô Ç Êà < º7 x5 á q` Å ¦ F\ " f] j ô Ç . • Å Ò# Q Êà < º7 x5 á q| Å ½ 9 Ë F\ + 5 qô Å Ç# Q " Êà < º7 x5 á q Å α → β\ " fA ∈ α¢ ¸ H A ∈ β\ ¦] j # ¸ F + t · §Ü ú ¼ A H# b& ¢ P ´Å 4 (extraneous ] attribute)s ô Ç .
<Õ ªa > 7.1> F + \ Ë ¦> í ß H· ú ¦o 7 § £ result := α result ½ ÉM + : t 6 §` £ ¦ì Í4 ø ¤o β → γ ∈ F\ y @ /K β ⊆ results result:=result ∪ γ;
• # ì r5 q$ Å
_ í &
_ ñ – A ∈ α\ @ /K F (F − {α → β}) ∪ {(α − A) → β}\ ¦ Ho 7 & Ü h ¼ Ð? / í ¦e Ü ¼ A H α\ " f# ì r&
ñ Ðs .
<Õ ªa > 7.2> α+ \ Ë ¦> í ß H· ú ¦o 7 § £ • Armstrong_ / No B \ ¦ s6 x # F +\ ¦> í ß H· ú ¦o 7 §: Õ £ ªa > 7.1 Ë
– B ∈ β\ @ /K (F − {α → β}) ∪ {α → (β − B)} F \ ¦ Ho 7 & Ü h ¼ Ð? / í ¦e Ü ¼ B H β\ " f# ì r&
ñ Ðs .
• Armstrong_ · ú ¦o 7 §` £ ¦s 6 x # F +\ ¦> í ß H כ r~ É t 1 · § ú .
• \ V1) F \ AB → Cü < A → C e Ü ¼ AB → C\ " f B H# ì r5 q$ Å
s í .
7.3.3
• \ V2) F \ AB → CDü < A → C e Ü ¼ AB → CD\ " f C H# ì r5 q$ Å
s í .
×V Ò ËÉ R ù m¶ ¥8 ýR nÌ c ö
• α 5 q$ Å
[ í t_ þ | 9 ½ Ës + ¦, ÊÃ < º7 x5 á q| Å ½ 9 Ë F Å + Ò # Q& ` ¦M :, F \ / @ô Ç α_ { j µs Ë ê Í F\ ø α\ _ K &
÷ ñ & H ¸ H5 q$ Å
_ í | 9 ½ Ë` + ¦´ ú 9, α+ Ð p · .
• < Ã Ê º7 x5 á q α → β\ Å " f# ì r5 q$ Å
# í Â Ò\ ¦´ òÖ ¦& h Ü ¼ Ð H~ ÓZ ½ O – A ∈ β\ @ /K " f H F 0 = (F − {α → β}) ∪ {α → (β − A)}
• α+ \ ¦> í ß H· ú ¦o 7 §: Õ £ ªa > 7.2 Ë
`> ¦ í ô ß Ç 6 § F 0Ü £ ¼ РÒ' α → A\ ¦Ä »Æ Ò Éà + ½ ºe Ht ô Ç . s \ ¦0 AK F 0\ @ / Ç α+ \ ô ¦> í ô ß Ç 6 §\ £ A α+ \ í Ê÷ < & H t S X ô Ç . ë ß í Ê÷ < & A H β\ " f# r5 ì q$ Å
s í .
– β ⊆ results ì Í ø ½ ©g :\ Ë _ K result → β $
w í ô n Ç . " f β → γ $
w í n Òs Æ ½ ©g :\ Ë _ K result → γ $
w í ô n Ç . • \ V1) (AG)+ _ > í ß
– A ∈ α\ @ /K " f H $ γ = α − {A}\ ¦> ß í ¦ γ → β\ ¦ F РÒ' Ä »Æ Ò½ Éà + ºe H t ô Ç . s \ ¦0 AK F\ @ /ô Ç γ+\ ¦> + ô ß í Ç 6 §\ £ γ \ β_ ¸ H5 q$ Å
s í í Ê÷ < & Ht S X ô Ç . ë ß í Ê÷ < & A H α\ " f # ì r5 q$ Å
s í .
– result = AG – A→BM :ë H\ result = ABG – A→CM :ë H\ result = ABCG – CG → H : Më H\ result = ABCGH – CG → I M :ë H\ result = ABCGHI
• \ V3) F \ AB → CD, A → E, A → C í Ê÷ < & # Qe ` ¦M : AB → CD\ " f C H# ì r5 q$ Å
í ?
• 5 q$ Å
_ í { j µ· Ë ú ¦o 7 §_ £ 6 x ¸
– F 0 = {AB → D, A → E, A → C}
– Á Ê( xo +~ É : α+ \ ¦> í ß # , s | 9 ½ Ë\ + ¸ H R_ 5 q$ Å
s í í Ê÷ < & α H R_ à º( v a ) .
– (AB)+ = ABCDEs Ù ¼ Ð C H AB → CD\ " f# ì r5 q$ Å
s í .
– < Ã Ê º7 xÅ á q 5 α → β_ $
w í n # Â Ò : α+ \ β í Ê÷ < & α → β H$
w í n ô Ç .
• \ V4) F \ AB → CD, A → E, A → C í Ê÷ < & # Qe ` ¦M : AB → CD\ " f D H# ì r5 q$ Å
í ?
– F +\ ¦ > í ß H ~ ÓZ ½ : y O γ ⊆ R\ @ /K γ+\ ¦> í ß ¦, y S ⊆ γ\ @ /K ÊÃ < º7 x á q γ → S\ Å 5 ¦ F +\ Æ Ò ô Ç . s ~ ÓZ ½ ` O ¦s x 6 # F +\ ¦> í ß H % כ r i # Q§ > .
– F 0 = {AB → C, A → E, A → C} – (AB)+ = ABCEs Ù ¼ Ð D H AB → CD\ " f# ì r5 q$ Å
s í m . 3
Fc = F Fc t · §` ú ¦M : t 6 §` £ ¦ì Í4 ø ¤ ½ ˽ + ©g :` Ë ¦ 6 x # 6 §õ £ ° ú r½ É ©g :` Ë ¦ ½ Ëô + Ç . α1 → β1 , α1 → β2 \ ¦ α1 → β1 β2 Ð 7 y x5 á q\ Å # ì r5 q$ Å
s í e Ht ¦ Ü e ¼ ] j ô Ç .
t & " h
î
t& h ¸r
í ß
¦Ì o"
î
@Ø / ¦ ñ
/Ø @ ¦Ó o
yz © & h ;î & ß h 2 © ¤& h z © y & h ;î & ß h
"Ö f ¦ ;î ß í ß î ß fÖ " ¦ ;î ß
9000 3100 2700 9000 3100
Äq » q © aÄ ' º ¸î r »q Ä
L-17 L-23 L-15 L-14 L-93
1000 2000 1500 1500 500
<Õ ªa > 7.4> lending Ë a> '
<Õ ªa > 7.3> & Ë
½ ñ ©& ! Q\ ¦> í ß H· ú ¦o 7 § £
– é > ß 1. ½ ËZ + g O :` Ë ¦& 6 h x½ ɽ + ©g : Ë r\ É O .
• F\ @ /ô Ç Ç Ä a ª & ! a(canonical cover) Fc H 7 x á 5 q[ Å t_ þ | ½ 9 ËÜ + ¼ Ð" f F H Ho 7 & Ü h ¼ Ð Fc \ e H ¸ H7 x5 á q` Å ¦/ ? í ¦ e Ü ¼9, Fc ¸ Ho 7 & Ü h ¼ Ð F\ e H ¸ Há x 75 q` Å ¦/ ? í ¦e # Q ô Ç . ¢ ¸ Ç ô 6 §¿ £ º: £ ¤$
` í ¦ë 7 ß ¤K á ô Ç .
– ß é> 2. A → BC\ " f Bü < C H ¸¿ º# ì r 5 q$ Å
s í . t ë Ñ ß t` ü ¦ ¸¿ º] j H כ r É t ` · § ú . B\ ¦] j õ Fc H 6 §õ £ ° ú .
– Fc \ H# ì r5 q$ Å
s í e H ÊÃ < º7 x5 á qs Å \ # O Q ô Ç .
{A → C, B → AC, C → AB} # l " f C H# ì r5 q$ Å
s í m .
– Fc _ ¸ H ÊÃ < º7 x5 á q\ Å " fý a8 ¤ £ Ó ½ rÄ É »{ 9 K ô Ç . 7 ¤, Fc \ £ ¿ º7 x5 á q α1 → β1 õ Å α2 → β2 e ` ¦M : α1 6= α2 s # Q ô Ç .
– ß é> 3. B → AC\ " f Aü < C H ¸¿ º# ì r 5 q$ Å
s í . A\ ¦] j Fc H 6 §õ £ ° ú .
• &
½ ñ ©& ! Q\ ¦> í ß H· ú ¦o 7 §: Õ £ ªa > 7.3 Ë
{A → C, B → C, C → AB}
• \ V5) a> ' Û ¼v (A, B, C)\ " f$
w í n H ÊÃ < º 7 x5 á q| Å 9 ½ Ë F + 6 §õ £ ° ú . A B A AB
→ → → →
C → AB\ " f Aü < B H ¸¿ º# ì r5 q$ Å
s í m . y é > ß \ " f r É ` כ ¦ ] j % Ü i ¼ r& É
½ ñ ©& ! Q\ ¦% ` 3 ¦Ã ºe . 7 ¤, & £
½ ñ © & ! Q HÄ »{ 9 t · § ú .
BC C B C
7.5
• 7.2 ] _ X ] jr a Lending-schema\ ) ¦: xK · à ú ºe 1 ws p ´ § ú rÃ É º_ 5 q$ Å
` í ¦ _ a> ' \ ¦ 6 x H כ Ð H& h rÃ É º_ 5 q$ Å
` í ¦ t H# Q a ' > Ðì rK # 6 x H s כ | Ðf à . t ¸ ß ë 3 ú wì l rK ¸y 9% ´ i òõ µ ÏÒ 1 tô q Ç .
F_ &
½ ñ ©& ! Q Fc \ ¦½ ¨ . – ß é> 1. A → BCü < A → B\ ¦ ½ Ë + A → BC a ) . õ Fc H 6 §õ £ ° ú . {A → BC, B → C, AB → C}
• \ V) lending(Lending-schema) a> ' Õ ªa > 7.4õ Ë ° ú ¦ . s M : Lending-schema\ ¦ 6 §õ £ ° ú r¿ É º a> ' Û ¼v Ðì rK % i ¦ .
– ß é> 2. AB → C\ " f A # ì r5 q$ Å
í t # Ð . Fc \ " f B + = {B, C}s Ù ¼ Ð A H# ì r5 q$ Å
s í . õ Fc H 6 §õ £ ° ú . {A → BC, B → C}
Branch-customer-schema = (t & " h
,t î & - h ¸r , í , ß ¦Ì o"
) î Customer-loan-schema = ( ¦Ì o"
,@ î /Ø ¦ ñ,ï Ó ß o)
– ß é> 3. A → BC\ " f C H# ì r5 q$ Å
í t # Ð . F 0 = {A → B, B → C}\ f A+ = {B, C}s " Ù ¼ Ð C H# ì r5 q$ Å
s í . f "þ j7 x Fc á H 6 §õ £ ° ú .
branch-customer(Branch-customer-schema) customer-loan(Customer-loan-schema) Õ ª Q y a> ' H 6 §õ £ ° ú .
{A → B, B → C}
branch-customer
• \ V6) a> ' Û ¼v (A, B, C)\ " f$
w í n H ÊÃ < º 7 x5 á q| Å 9 ½ Ë F + 6 §õ £ ° ú . A B
→ BC → AC
C
→
ØA Z Ä 0
AB
F_ &
½ ñ ©& ! Q Fc \ ¦½ ¨ .
& t " h
î
& t - h ¸r
í ß
¦Ì o"
î
yz © & h ;î & ß h 2 © ¤& h z © y & h ;î & ß h
" fÖ ¦ ;î ß í ß î ß " fÖ ¦ ;î ß
9000 3100 2700 9000 3100
Äq » q © aÄ ' º ¸î r »q Ä
customer-loan 4
& t " h
î
t& h ¸r
í ß
¦ Ì o"
î
@ /Ø ¦ ñ
/Ø @ ¦Ó o
yz © & h z © y & h ;î & ß h 2 © ¤& h z © y & h ;î & ß h ;î & ß h
" fÖ ¦ " fÖ ¦ ;î ß í ß î ß " fÖ ¦ ;î ß ;î ß
9000 9000 3100 2700 9000 3100 3100
Ä »q Ä »q q © aÄ ' º ¸î r Ä »q Ä »q
L-17 L-93 L-23 L-15 L-14 L-93 L-17
1000 500 2000 1500 1500 500 1000
ØA Z Ä 08 ý S pÇ c Ä k ¢ X ¤V Ë R
7.6
• \ V) Lending-schema\ " fë 7 ß ¤÷ á &# Q ½ É + Êà < º5 q Å
í $ r É 6 §õ £ ° ú . t & " h
→ t î & - h ¸r í ß @ /Ø ¦ ñ → @ /Ø ¦Ó ot & " h
î s a> ' Û ¼v \ ¦ 6 §õ £ ° s ú ì rK ô Ç . Branch-schema = (t & " h
,t î & - h ¸r , í ) ß loan-schema = (@ /Ø ¦ ñ,t & " h
,ï î Ó ß o) Borrower-schema = ( ¦Ì o"
,@ î /Ø ¦ ñ)
<Õ ªa > 7.5> branch-customer ./ customer-loan Ë a> ' ¦Ì o"
î
@ /Ø ¦ ñ
/Ø @ ¦Ó o
Ä »q q © aÄ ' º ¸ î r Ä »q
L-17 L-23 L-15 L-14 L-93
1000 2000 1500 1500 500
s ì rK Hs p l r > \ © " f 6 x ~ a> ' Û ¼v s . 7.6.1
¤Å ØÇ X ÷ m ºß ÅÄ Ã ØA Z 0
• ì rK Hì Í× ø ¼r Á º Hz < ´ ¸ ì rK s # Q ô Ç . • ì rK Á º Hz < ´ ¸ ì rK e ` ¦ H~ ÓZ ½ O
@ /Ø ¦Ó os 800 s @ /Ø ¦` ¦ t ¦e H ¸ H t & ` h ¦¹ Ô 1 ½ É +
Ä â º\ H¿ º a> ' \ ¦ ¸ K Ç ô .
– Rs a> ' Û ¼v s ¦, F H R\ " f$
w í n H Êà < º7 x5 á q| Å 9 ½ Ës + . s M : R1 õ R2 R_ rK ì s þ j èô Ç 6 §× £ æ F + \ r > F K ë Á ß º Hz < ´ ¸ ì rK a ) . • R1 ∩ R2 → R1 • R1 ∩ R2 → R2 7 ¤, R1 ∩ R2 £ H R1 ¢ ¸ H R2 _ à º( v s # Q Ç ô . à º( v ` כ ¦l ï rÜ ¼ Ð ¸ × æ4 ¤÷ & HÈ Òe ¦s e ` ¦Ã ºe .
branch-customer ./ customer-loan ¿ º a> ' \ ¦ ¸ ô Ç õ HÕ ªa > 7.5ü Ë <° ú . ¸ Ç ô õ \ ¦ Ð " ¶A é H\ % O ~ 3 6 §õ £ ° ú rD É h Ð rÈ î Òe ¦s rF > ô Ç . (y z © & ," h fÖ ¦,9000,Ä »q ,L-93,500) ( ;î & ß , h ;î ,9000,Ä ß »q ,L-17,1000)
• \ V) Lending-schema\ ¦ 6 §¿ £ º a> ' Û ¼v Ðì r K % i ¦ .
" f| 9 _ õ \ í Ê÷ < &t · § ú H “y z © & ”s h í Ê < a ) . 7 ¤, £ ¦Ì o_ @ /Ø ¦s # QÖ ¼t & \ h " f@ /Ø ¦ a ) כ t · à ú º\ O . r ´ ú Ð ´ § ú rÈ É Òe ¦` ¦% > 3 ÷ &t ë & ß
ñ Ð_ Hz < ´s e . Õ ª QÙ ¼ Ðs ü <° ú rì É rK \ ¦Õ µ i
& B P (lossy decomposition) ¢ ¸ HÕ µ i
¿ê >& B P (lossy-join decomposition)s ô Ç . ì Í@ ø / Ð Hz < ´s \ O Hì rK \ ¦ È ÁÕ µ i
¿ê >& B P (lossless-join decomposition)s ô Ç .
Branch-schema = (t & " h
,t î & - h ¸r , í ) ß loan-info-schema = (t & " h
, î ¦Ì o"
,@ î /Ø ¦ ñ,ï Ó ß o) ¿ º a> ' Û ¼v _ §| ½ 9 Ë + rt É & " h
s î 9, t & " h
î r Branch-schema_ É Ã º( v s Ù ¼ Ðs ì rK HÁ º Hz < ´ ¸ ì rK s . Õ ª 6 § loan-info-schema\ £ ¦ 6 §¿ £ º a> ' Û ¼v Ðì rK % i ¦ . loan-schema = (@ /Ø ¦ ñ,t & " h
,ï î Ó ß o) Borrower-schema = ( ¦Ì o"
,@ î /Ø ¦ ñ)
• R r É a> ' Û ¼v s ¦, 6 §s £ $
w í n
¿ º a> ' Û ¼v _ §| ½ 9 Ë + r@ É /Ø ¦ ñs 9, @ /Ø ¦ ñ H loan-schema_ Ã º( v s Ù ¼ Ðs ì rK ¢ ¸ ÇÁ ô º Hz < ´ ¸ ì rK s .
R = R1 ∪ R2 ∪ · · · ∪ Rn {R1 , R2 , . . . , Rn } r R_ É ì rK ô Ç . • r(R)s ¦ ri = ΠRi (r)s 6 § £ r É Ó ½ $ ©
w í n ô Ç . r ⊆ r1 ./ r2 ./ · · · ./ rn
7.6.2
Þ Ò × Ò ¥U
• X <s ' Z s Û ¼\ ¦Ì t q ½ ÉM + : Êà < º7 x5 á q Å rÄ É »t ÷ & # Q ô Ç . " fs \ ¦´ òÖ ¦& Ü h ¼ Ð l 0 A K " f H ¸ ` ¦ t · § ú ¸s \ ¦½ Éà + ºe # Q ô Ç .
t ë { ß 9 ì Í& ø h Ü ¼ Ð 6 §s £ $
w í n ô Ç . r 6= r1 ./ r2 ./ · · · ./ rn
• F a> ' Û ¼v R\ " f$
w í n H ÊÃ < º7 x5 á q_ Å 9 | ½ Ës + ¦, R1 , R2 , . . ., Rn s R_ ì rK . Ri \ @ /ô Ç F_ ] jô Ç(restriction) Fi r F +\ É e H ¸ H ÊÃ < º7 x5 á q× Å æ Ri _ 5 q$ Å
ë í Ü ß ¼ н ¨$
í a ) ÊÃ < º 7 x5 á q| Å 9 ½ Ë` + ¦´ ô ú Ç .
ë ß 6 §s £ $
w í n s ì rK HÁ º Hz < ´ ¸ ì r K s . r = r1 ./ r2 ./ · · · ./ rn 5
¤
compute F + Ri ∈ D\ y @ /K Fi \ ¦> í ß F 0 = F1 ∪ F2 ∪ · · · ∪ Fn compute F 0+ ? F 0+ = F +
• X <s ' Z s Û ¼[ > O BCNF\ 5 qô Å Ç H כ rs É X <s ' Z s Û ¼_ ¸ H a> ' Û ¼v BCNF\ 5 q Å Ç ô H ` כ ¦_ p ô Ç . • \ V1) Customer-schemaü <Õ ª _ כ ÊÃ < º7 x5 á q Å
<Õ ªa > 7.6> 7 Ë x5 á qÄ Å »t # Â Ò\ ¦ H· ú ¦o 7 §A £
Customer-schema = ( ¦Ì o"
, î ¦Ì o- o , ¦Ì o- ¸r ) ¦Ì o"
→ î ¦Ì o- ¸r ¦Ì o- o
y α → β ∈ F\ @ /K result = α result t · §` ú ¦M : t 6 §` £ ¦ì Í4 ø ¤ Ri ∈ D\ y @ /K 6 §` £ ¦ >í ß t = (result ∩ Ri )+ ∩ Ri result = result ∪ t β ⊂ results α → β HÄ »t a ) .
s Û ¼v H BCNF\ 5 qô Å Ç . • \ V2) Loan-info-schemaü <Õ ª _ כ ÊÃ < º7 x5 á q Å Loan-info-schema = (t & " h
, î ¦Ì o"
,@ î /Ø ¦ ñ,@ /Ø ¦Ó o) /Ø @ ¦ ñ→@ /Ø ¦Ó ot & " h
î
<Õ ªa > 7.7> 7 Ë x5 á qÄ Å »t #Â Ò\ ¦ H· ú ¦o 7 §B £
@ /Ø ¦ ñ Hs Û ¼v _ Ã º( v m Ù ¼ Ðs Û ¼v H BCNF\ 5 q Å t · § ú H . ¢ ¸ô Ç ÊÃ < º7 x á 5 q ‘@ Å /Ø ¦ ñ→@ /Ø ¦Ó o’ r É "
ô î Ç ÊÃ < º7 x5 á qs Å m .
• ] jô Ç_ | ½ 9 Ë F1 , F2 , . . ., Fn + r´ É òÖ ¦& Ü h ¼ Ð ½ É + à ºe H7 x5 á q| Å 9 ½ Ë[ + ts þ . " fs ë כ ß H s כ Ø æì r Êà < º7 x5 á qs Å ì rK \ Ä »t ÷ & H s כ . 7 ¤, £ Á þÊ Á¤ 4¢ ´l 4 & B P U cË Âm Û S Ö Ð ¿ M Ö R & B P · # b ¿ ¿ê >á !l Ü «Á Ê þ Á¤ 4¢ ´£ 4 · Èê >T » Ò Ê ÁÑ Ï Ð M ¿ ` ¦´ ô ú Ç .
• a> ' r(R)s BCNF\ ¦Ø æ7 ¤ á Ht H~ ÓZ ½ O – "
î t · § ú H ÊÃ < º7 x5 á q α → β BCNF\ Å ¦ 0 AC Ht ô Ç . s \ ¦0 AK α+ \ ¦> í ß ¦, α+ \ R_ ¸ H5 q$ Å
s í í Ê < Ht Ç ô . 7 ¤, α R_ £ Ã º( v e ` ¦ ô Ç .
• F 0 = F1 ∪ F2 ∪ · · · ∪ Fn { M 9 :, { 9 ì Í& ø Ü h ¼ Ð F 0 6= 0 0+ + Fs . F 6= F s # Q ¸F = F $
w í ½ n ÉÃ + º e . ë ß F 0+ = F + $
w í n s ì rK H¤ 4 ´Ë 4 ¢ Âm & B P (dependency-preserving decomposition)s .
– F+ @ / \ F\ @ /K " fë BCNF\ ß ¦0 AC Ht H Ü כ ¼ Ð Rs BCNF\ 5 q Å H t · Ã ú ºe .
• R_ ì rK D = {R1 , R2 , . . . , Rn }\ @ /K 7 x5 á qÄ Å » t # Â Ò\ ¦ H· ú ¦o 7 §: Õ £ ªa > 7.6 Ë
• R_ ì rK Ri BCNF\ 5 q Å Ht ½ ÉM + :\ H F\ @ /ô Ç ë Ü ß ¼ Ð HØ æì r t · § ú .
• Ð ´ òÖ ¦& h ~ ÓZ ½ (F + \ O ¦> í ½ ß É + 9 כ ¹ 6 O \ §): Õ £ ªa > 7.7 Ë
• \ V3) R(A, B, C, D, E), F = {A → B, BC → D}
– s· ú ¦o 7 §\ £ " f5 q$ Å
{ í j µ Ë r Fü É < aº ' ÷ & Q> # í ô ß Ç . 7.6.3
– R` ¦ R1 (A, B), R2 (A, C, D, E) Ðì rK % i ¦ `
Ä â ºF × æ\ R2 _ 5 q$ Å
Ü í ¼ Ðë ½ ß ¨$
í a7 ) x á 5 qs Å \ # O Q R2 BCNF\ ¦Ø æ7 ¤ô á Ç ¦Ò ty q Éà + ½ ºe .
Ë| N X º8 ýú Þ n ×
• ñ &
Ð_ × æ4 ¤É r þ j@ /ô Çx H s כ | Ðf à . " fì rK \ " f ¸&
ñ Ð_ × æ4 ¤` ¦\ E O H s כ æכ × ¹ .
– _ Æ Òs ½ ©g :` Ë ¦ & 6 h x AC → D ∈ F +s . s 7 x5 á q Å r É "
î t · §Ü ú ¼9, AC H à º( v m Ù ¼ Ð R2 H BCNF\ 5 q Å t · § ú H .
• ×4 æ ¤` ¦× ¦s H~ ÓZ ½ O rÛ É ¼v 6 §\ £ [ " O
÷ î & Hy 7 x& á
½ ñ ©+ A\ þ 5 q Å ¸2 ¤ H s כ .
7.7
BCNF
7.7.1
Ë8 N X ý
• R_ ì rK Ri BCNF\ 5 q Å Ht H~ ÓZ ½ O – Ri _ ¸ HÂ Òì r| ½ 9 Ë α\ + @ /K α+ \ ¦> í ß ¦y { j µ\ Ë Ri − α\ # Q 5 " q$ Å
í ¸ í Ê÷ < & t · § ú ¸¿ º í Ê÷ < & Ri H BCNF\ 5 q Å Ç ô .
X8 Ë N ý 7.3 (BCNF, Boyce-Codd Normal Form). Êà < º7 x á 5 q| Å ½ 9 Ë F\ + @ /K a> ' Û ¼v Rs 6 §` £ ¦ë 7 ß ¤ á BCNF\ 5 qô Å Ç ¦ô Ç . F +\ e Hy Êà < º7 x5 á q α → β Å r É 6 §× £ æ \ ¦ë ß 7 ¤K á ô Ç . # l " f α ⊆ Rs ¦, β ⊆ Rs .
7.7.2
ØA Z Ä 0° ow P ¨ Ö
• BCNF ì rK · ú ¦o 7 §: Õ £ ªa > 7.8 Ë • s · ú ¦o 7 § £ r BCNF É Ðì rK K × ¦÷ rë ß m Á º Hz < ´ ¸ ì rK \ ¦K ï r .
• α → β H "
ô î Ç ÊÃ < º5 q$ Å
s í . • α H R_ Ã º( v s . 6
result := {R}; done := false; compute F + ; dones Ðs à | cM ¨ : t result\ e H Ri × æ\ BCNF\ 5 q Å t § ú · H s כ e Ü ¼ α → Ri 6∈ F + s ¦ α ∩ β = ∅ α → β Ri \ " f$
w í n H "
î t ú § · H ÊÃ < º7 x5 á qs Å result := (result − Ri ) ∪ (Ri − β) ∪ (α, β); Ü O \ ¼ done := true;
• R1 s Banker-branch-schemas ¦ R2 Customerbanker-schema{ M 9 :, F _ ] jô Ç F1 õ F2 H 6 §õ £ ° ú .
<Õ ªa > 7.8> BCNF ì Ë rK · ú ¦o 7 § £
• Û ¼v H # Q ~ ÓZ ½ Ü O ¼ Ð BCNF ì rK 0 x p .
• \ V) Lending-schemaü <Õ ª _ כ ÊÃ < º7 x5 á q Å
• \ V2) a> ' Û ¼v R(A, B, C)\ " f$
w í n H ÊÃ < º 7 x5 á qs Å A → Bü < B → C .
F1 F2
{ r' É "
→t î & " h
} î ∅
" f (F1 ∪F2 )+ \ H ÊÃ < º7 x5 á q ‘t Å & " h
î ¦Ì o"
î → r' É "
’s î í Ê÷ < &t · § ú H . Õ ª QÙ ¼ Ð (F1 ∪ F2 )+ 6= F + s l M :ë H\ s ì rK H7 x5 á qÄ Å »t ì r K m .
Lending-schema = (t & " h
,t î & - h ¸r , í , ß ¦Ì o"
,@ î /Ø ¦ ñ,@ /Ø ¦Ó o) & t " h
→ î í t ß & - h ¸r /Ø @ ¦ ñ→@ /Ø ¦Ó o t& " h
î
– < Ã Ê º7 x5 á q A → C\ Å ¦s 6 x R1 (A, B)ü < R2 (A, C) Ðì rK a ) . Õ ª Q s ì rK \ " f H B → C Ä »t ÷ &t · § ú H . z ´] j Ð A H Ã º( v s Ù ¼ ÐA→C¢ ¸ H A → B Hì rK ÉM + ½ :s 6 x÷ &t · § ú H .
s Û ¼v _ Ê ê Ðv H (@ /Ø ¦ ñ, ¦Ì o"
)s î . – t& " h
î rs É Û ¼v _ Ã º( v m Ù ¼ Ð Û s ¼v H BCNF\ 5 q Å t · § ú H . – " f 6 §õ £ ° s ú ì rK ô Ç .
– < Ã Ê º7 x5 á q B → C\ Å ¦s 6 x R1 (B, C)ü < R2 (A, B) Ðì rK a ) . Õ ª Q s ì rK \ " f H A → B, B → C, A → C ¸¿ ºÄ »t a ) .
Branch-schema = (t & " h
,t î & - h ¸r , í ) ß Loan-info-schema = (t & " h
, î ¦Ì o"
,@ î /Ø ¦ ñ,@ /Ø ¦Ó o)
7.8
< g3 X Ë N ] ù k
• BCNF_ ë H] j& h r7 É x5 á qs Å Ä »t ÷ &t · §` ú ¦Ã ºe H s כ .
#l " f Branch-schema H BCNF\ 5 q Å t Loan-info-schema\ ß ë " f @ /Ø ¦ ñ H Ã º( v m Ù ¼ Ð r s Û ¼v \ ¦ 6 §õ £ ° ú ì s rK ô Ç .
• s \ כ @ /ô ÇK Õ þ – ¸ > í ` ß ¦ # Ì t q _ Ä »´ ò$
` í ¦ ô Ç .
Loan-schema = (@ /Ø ¦ ñ,t & " h
,@ î /Ø ¦Ó o) Borrower-schema = ( ¦Ì o"
,@ î /Ø ¦ ñ)
– 3NF(Third Normal Form)` ¦ 6 xô Ç . s &
ñ ½ ©+ A þ r× É æ4 ¤s e ` ¦Ã ºe H@ / \ Ì t q H ¸ \ s O ½ Éà + ºe .
0 A¿ ºÛ ¼v H ¸¿ º BCNF\ 5 qô Å Ç . 7.7.3
= =
7.8.1
Þ Ò × Ò ¥U
Ë8 N X ý
X8 Ë N ý 7.4 (3NF, Third Normal Form). Êà < º7 x5 á q| Å 9 ½ Ë + F\ @ /K a> ' Û ¼v Rs 6 § £ ¦ `ë 7 ß ¤ á 3NF\ 5 qô Å Ç ¦ô Ç . F +\ e Hy Êà < º7 x5 á q α → β Å r É 6 §× £ æ \ ¦ë ß 7 ¤K á ô Ç . # l " f α ⊆ Rs ¦, β ⊆ Rs .
• BCNF ì rK H Ó ½ 7 © x5 á q` Å ¦Ä »t t H· § ú H . • \ V1) 6 §õ £ ° ú r É r' É Û ¼v ü <Õ ªÛ ¼v \ " f$
w í n H Êà < º7 x5 á qs Å e ¦ . 7 ¤, £ ¦Ì o r: É ¤& £
t ñ & \ h Õ ª ¦Ì o` ¦{ { © H> h r É ' e ` ¦Ã ºe .
• α → β H "
ô î Ç ÊÃ < º7 x5 á qs Å .
Banker-schema = (t & " h
, î ¦Ì o"
, î r' É "
) î r É ' "
→t î & " h
î t & " h
î ¦Ì o"
→ î r É ' "
î
• α H R_ Ã º( v s . • β − α\ e Hy 5 q$ Å
A í H R_ Ê ê Ðv \ í Ê < a ) . ¤
s Û ¼v \ BCNF ì rK · ú ¦o 7 §` £ ¦& 6 h x 6 §õ £ ° s ú ì rK a ) .
• 3NF &
_ ñ _ t } ¸| \ " fé { ß Ê 9 ê Ðv β − α\ e H ¸ H5 q$ Å
` í ¦ í ÊK < H כ r É m . y 5 q$ Å
í r É rÊ É ê Ðv \ í Ê| < cà ¨ ºe .
Banker-branch-schema = ( r' É "
,t î & " h
) î Customer-banker-schema = ( ¦Ì o"
, î r' É "
) î s ì rK \ " f ‘t & " h
î ¦Ì o"
→ î r É ' "
’ î rÄ É » t ÷ &t · §Ü ú ¼9, ¸ ` ¦K ë ß ½ Éà + ºe .
• BCNF\ 5 q Å H ¸ HÛ ¼v H 3NF\ 5 qô Å Ç . 7
• · ú ¦o 7 §_ £ &
S ñ $ X
: Rj s í · ú ¦o 7 §` £ ¦s 6 x # R` ¦ì rK % ` i ¦M :ë [ ß t# þ Q Û ¼v . Rj \ " f$
w í n H ¸ H "
î t · § ú H ÊÃ < º5 q$ Å
í γ → B H 3NF` ¦Ø æ7 ¤K á Rj H 3NF\ 5 qô Å Ç . Rj \ ¦Ò t$ q
½ í ÉM + : 6 x a ) ÊÃ < º5 q$ Å
s í α → β B Hα¢ ¸ H β\ í Ê÷ < &# Q ô Ç .
Fc \ ¦> í ô ß Ç . i := 0; α → β ∈ Fc \ y @ /K ∀Rj \ @ /K αβ 6⊆ Rj s i := i + 1; Ri := αβ; ∀Rj , R\ @ /K Ê ê Ðv 6⊆ Rj s i := i + 1; Ri := R_ Á ºÊ ê Ðv ;
Ð Ã ¦. 3NF` ¦ ½ ÉM + :\ H ÊÃ < º5 q$ Å
\ í " f ¸ r É A ¤\ á é { ß 5 9 q$ Å
s í e H
Ä â ºë ß H Ü כ ¼ Ð æì Ø r . – B αü <β ¸¿ º\ e H
Ä â º: Fc \ ¦ 6 x Ù ¼ Ðs כ r 0 É x p t · § ú .
<Õ ªa > 7.9> 3NF ì Ë rK · ú ¦o 7 § £
– B ∈ βs t ë B 6∈ α ß
Ä â º
• \ V) BCNF` ¦[ " O
½ î ÉM + : 6 xô Ç r' É Û ¼v \ ¦ BCNF ì rK \ ¦ 7 x5 á qÄ Å »t ÷ &t · § ú H . Õ ª Q r É ' Û ¼v ^ H 3NFs .
• γ Ã º( v
Ä â º: 3NF` ¦Ø æ7 ¤ô á Ç . • γ à º( v
Ä â º: α\ H γ\ \ O H 5 q$ Å
` í ¦ t ¦ e . Õ ª X < γ → B ∈ F +s Ù ¼ Ð γ+\ ¦s 6 x # Fc ÐÂ Ò γ → B\ ' ¦Ä » ¸| cà ¨ ºe # Q ô Ç . Ä s » ¸\ " f α → β H 6 x| cà ¨ º\ O . s ` כ ¦ 6 x l 0 AK " f H γ+\ α í Ê÷ < &# Q ô Ç . t ë γ Ã ß º( v m Ù ¼ Ðs כ r 0 É x p t · § ú . s M : γ ⊆ αβs ¦ B 6∈ γ( "
î t · §Ü ú ¼Ù ¼ Ð)s Ù ¼ Ð α → (β − {B})ü < γ → B Ð Ò'  α → B\ ¦Ä » ¸½ Éà + ºe 1 . s כ r É B α → β\ " f# ì r5 q$ Å
e í ` ¦_ p ô Ç . s כ r É ¸í H÷ &Ù ¼ Ð γ Hà º( v s # Q ô Ç .
– {t & " h
, î ¦Ì o"
} î rs É Û ¼v \ Ê ê Ðv s ¼ ٠п º P : Êà < º7 x5 á q Å r 3NF` É ¦0 AC t § ú · H . – Í ' P : Êà < º7 x5 á q\ Å " f β −α Ht & " h
s î 9, & t " h
î rÊ É ê Ðv {t & " h
, î ¦Ì o"
}\ î í Ê < &Ù ÷ ¼ Ðs ÊÃ < º7 x5 á q Å ¸ 3NF` ¦0 AC t · § ú H . • # Q Û " ¼v 3NF\ 5 q Å Ht H~ ÓZ ½ O – F+ @ / \ Fë ß ¦ 9ô Ç . – F_ y 7 x5 á q\ Å ì rK ½ ©g :` Ë ¦& 6 h x # ¸ r É ¤\ á A é { ß 5 9 q$ Å
ë í e ß ¸2 ¤ô Ç 6 §\ £ ¦ 9ô Ç .
– B ∈ αs t ë B 6∈ β ß
Ä â º: α Ê ê Ðv s Ù ¼ Ðs כ r 3NF_ É [ j P : ¸| \ ë 7 ß ¤ á a ) .
– "
î t · § ú r É ÊÃ < º5 q$ Å
α → β Å í Ò# Qt α+ \ ¦s 6 x # α Ã º( v t ô Ç .
• # Q Û " ¼v 3NF t \ ¦ H כ r# É Q§ t > 3NF ì ß ë rK H Ór ½ ç ? ß /\ 0 x p .
– ß ë α Ã º( v m β − α_ ¸ H5 q Å
s í $ Ê ê Ðv \ í Ê÷ < & Ht ô Ç . s כ r# É Q§ > . 7.8.2
7.8.3
BCNFÑ ÷ 3NF8 ýR w
• BCNFü < 3NF r É ¸¿ ºÁ º Hz < ´ ¸ ì rK \ ¦] j/ N B t ë 3NF ß r É Êà < º7 x5 á q Å t Ä »t K ï r . t ë ß 3NF r BCNFü É <² o ú × æ4 ¤s e ` ¦Ã ºe . ¢ ¸ô Ç 3NF_
Ä â º\ H null ° `כ ú ¦ 6 xK H
Ä â º ¸ ÏÒ 1 µ tô q Ç .
ØA Z Ä 0° ow P ¨ Ö
• 3NF ì rK · ú ¦o 7 §: Õ £ ªa > 7.9 Ë • \ V1) r É ' ¼ Ûv ü <s Û ¼v \ $
w í n H Ê < Ã º7 x5 á qs Å 6 §õ £ ° ú ¦ .
– Banker-schema_
Ä â º\ { © { ¦Ì os \ O H
Ä â º\ H ¦Ì o"
\ î null ° `כ ú ¦ 6 x½ Éà + ºµ Ú\ 1 O \ .
Banker-info-schema = (t & " h
, î ¦Ì o"
, î r É ' "
, î Á ºz ´ ñ) r' É "
→t î & " h
î Á ºz ´ ñ & t " h
î ¦Ì o"
→ î r É ' "
î
– ô Ç r' É # Q ¦Ì o` ¦{ { © r É ' <t ü & h a> ' # Q Y V× æ4 ¤÷ &# Q è ß . • SQL\ " f H Êà < º7 x5 á q` Å ¦t &
ñ H~ ÓZ ½ ` O ¦] j/ N B t · § ú H . é & ß
ë ñ H` ¦ 6 x½ ÉÃ + ºe t ë ß ÊÃ < º7 x á 5 q` Å ¦ Hé & ß ë h H` ¦ $
í l ~ t 1 · §Ü ú ¼ 9q 6 xs q . " f Êà < º7 x5 á qs Å Ä »t ÷ & H rK ì \ ¦ 6 x 8 ¸ Êà < º7 x5 á q_ Å ¢ aA , ¤s á Å Òv m s ` כ ¦ SQL\ " f´ òÖ ¦& Ü h ¼ Ð l # Q§ > .
s \ V\ " f Fc = F s . · ú ¦o 7 §` £ ¦& 6 h x 6 §õ £ ° s ú ì rK a ) . Banker-office-schema = ( r' É "
,t î & " h
, î Á ºz ´ ñ) Banker-schema = ( ¦Ì o"
,t î & " h
, î r' É "
) î • 3NF ì rK H Fc \ ¢ ¸ Fc \ e H7 x5 á q` Å ¦# Q " H" í f Ð ¦ 9Ù ¡ þ Ht \ ² ú | 9 Ã ºe .
1δ
.
8
= β − {B}s α → δ, α → αδ, αδ → γs Ù ¼ Ð α → Bs
• < Ã Ê º7 x5 á q α → β Ä Å »t ÷ &t · § ú H
Ä â º\ Hs ` כ ¦ l 0 AK ì rK \ ¦ ¸ ô Ç 6 § αβë £ Æ ß Ò ¦ Ø # z ´^ oÓ Â\ ¦ë ß H 6 §\ £ unique\ ¦s 6 x # s Êà < º7 x5 á q` Å ¦~ > 1 ½ Éà + ºe .
t1 t2 t3 t4
• 9 { ì Í& ø Ü h ¼ Ð 3NF Ð BCNF\ ¦ 6 x ¦ ÊÃ < º7 x á 5 qs Å Ä »t ÷ &t · § ú H
Ä â º\ Hz ´^ o Ó\ ¦s 6 x H ` כ ¦ ñô Ç .
β ai+1 , . . . , aj bi+1 , . . . , bj ai+1 , . . . , aj bi+1 , . . . , bj
R−α−β aj+1 , . . . , an bj+1 , . . . , bn bj+1 , . . . , bn aj+1 , . . . , an
• × æ° כ5 ú q$ Å
í r αü É <βç \ ß a> ' αü <R−β ç ß \ a> ' ü <Á º a ' H ` כ ¦´ ô ú Ç . • β ⊆ αs β ∪ α = Rs × æ° כ7 ú x5 á qα³ Å β H "
î .
g4 X < Ë N ] ù k
7.9
α a1 , . . . , ai a1 , . . . , ai a1 , . . . , ai a1 , . . . , ai
• # Q " a> ' H BCNF\ 5 q Å t ë # ß y × æ4 ¤8 ¤ £ \ " fØ æì ry &
½ ñ © o÷ &t · §` ú ¦Ã ºe .
• \ V) 6 §õ £ ° ú r bc(BC-schema)\ É ¦Ò ty q # Ð . /Ø @ ¦ ñ L-23 L-23 L-27 L-27 L-93
• \ V) 6 §õ £ ° ú rÛ É ¼v \ ¦Ò ty q K Ð . BC-schema = (@ /Ø ¦ ñ, ¦Ì o"
, î ¦Ì o- ¸r , ¦Ì o- o ) s Û ¼v \ " f H 6 § £ Êà < º7 x5 á qs Å $
w í n Ù ¼ Ð BCNF m .
¦Ì o"
î Ä »q Ä »q Ä »q Ä »q q ©
¦Ì o- o z © y ½ ¨
î # ; z © y ½ ¨
î # ; " f í½ ¨
¦Ì o- ¸r fÖ " ¦ ;î ß fÖ " ¦ ;î ß fÖ " ¦
s a> ' \ " f H ¦Ì o_ Å Ò è ¦Ì o_ @ /Ø ¦ ñ\ ¦× æ4 ¤r & ô Ç . ¢ ¸ô Ç ¦Ì o_ y Å Ò è ¦Ì o_ @ /Ø ¦ ñ\ ¦× æ4 ¤r & ô Ç . " fs a> ' \ H 6 §õ £ ° ú r É × æ° כ7 ú x5 á qs Å $
w í ô n Ç .
¦Ì o"
→ î ¦Ì o- ¸r ¦Ì o- o Õ ª Q ë ß ¦Ì os | ` 9 ¦# QG t ¦e Ü ¼ s Êà < º7 x5 á Å qs $
w í n t · §Ü ú ¼Ù ¼ Ð BCNF\ 5 q Å Ç ô . t ë ´ ß § ú r× É æ4 ¤` ¦ t > a ) .
¦Ì o"
³ î ¦Ì o- ¸r ¦Ì o- o ¦Ì o"
³@ î /Ø ¦ ñ
• s % ! BCNF\ 3 5 q Å Ê\ < ¸Ô ¦½ ¨ ¦× æ4 ¤s e H ë H] j\ ¦ F G4 ¤ l A 0K
»G ä ê ¤ ± 4¢ ´(multi4 valued dependency)s HD h Ðî r] j ` ¦&
_ ñ Ç ô . s ] j ` ¦ s 6 x H &
½ ñ ©+ As þ ] j4 &
½ ñ © A(4NF, Fourth Normal Form)s þ + .
• D Êà < ºü < × æ° כ7 ú x5 á q_ Å | 9 ½ Ës + D+ { j µ Ë r É D\ _ K Ho 7 & Ü h ¼ Ð? / í H ¸ H Êà < ºü < æ° × כ7 ú x5 á q_ Å | 9 ½ Ë` + ¦´ ô ú Ç . • × æ° כ7 ú x5 á q_ Å &
_ ñ \ _ K 6 §s £ $
w í ô n Ç . ß ë α → β $
w í n α ³ β $
w í n ô Ç .
7.9.1
ú Þ© n Þ Ò × Ò 7.9.2
X8 Ë N ý 7.5 (
ä »ê G ±¤ 4¢ ´). 4 a> ' Û ¼v R, α ⊆ R, β ⊆ Rs e ` ¦M :, × æ° כ7 ú x5 á q α ³ β R\ Å $
w í n l 0 A K " f H ¸ H& Z h ô O Ç a> ' r(R)\ " f t1 [α] = t2 [α]` ¦ë ß 7 ¤ á H r\ 5 qô Å Ç ¸ HÈ Òe ¦ t1 õ © t2 \ @ /K 6 § £ ¦ ` 7 ß ë ¤ á HÈ Òe ¦ t3 õ t4 r\ rF > K ô Ç . t1 [α] = t2 [α] = t3 [α] = t4 [α] t3 [β] = t1 [β] t3 [R − β] = t2 [R − β] t4 [β] = t2 [β] t4 [R − β] = t1 [R − β]
4NF8 ýX Ë8 N ý
Ë8 N X ý 7.6 (4NF). Êà < º7 x5 á qõ Å × æ° כ7 ú x5 á q| Å 9 ½ Ë D\ + @ /K a> ' Û ¼v Rs 6 §` £ ¦ë 7 ß ¤ á 4NF\ 5 qô Å Ç ¦ô Ç . D+ \ e Hy Êà < º7 x5 á q α ³ β Å r É 6 §× £ æ \ ¦ë ß 7 ¤K á ô Ç . # l " f α ⊆ Rs ¦, β ⊆ Rs . • α ³ β H "
ô î Ç × æ° כ7 ú x5 á qs Å . ¤ • α H R_ Ã º( v s . • 4NF É r ÊÃ < º7 x5 á q@ Å / \ × æ° כ7 ú x5 á q` Å ¦ 6 xô Ç ` כ ¦] jü @ ¦ H BCNFü <° ú .
¤
• ¸ H 4NF r BCNF\ É 5 qô Å Ç . • < Ã Ê º7 x5 á q Å r: É ¤& £
+ ñ AI þ _ È Òe ¦s rF > ½ ÉÃ + º\ O ¸ 2 ¤] j ` ¦ ô Ç . \ V\ ¦[ tQ þ # A → B $
w í n ° ú rA° É `כ ú ¦ t t ë " ß f Ð rB° É `כ ú ¦ t H ¿ º> h_ È Òe ¦s rF > ½ ÉÃ + º\ O .
• Rs a> ' Û ¼v s ¦, R1 , R2 , . . ., Rn s R_ ì r K . ¢ ¸ô Ç D R\ " f$
w í n H ÊÃ < º7 x5 á q Å õ × æ° כ7 ú x5 á q_ Å | 9 ½ Ës + . Õ ª Q Ri \ @ / Ç D_ ô ] jô Ç Di H 6 §õ £ ° ú .
• × æ° כ7 ú x5 á q Å r : É ¤& £
+ ñ AI þ _ È Òe ¦s ì Í× ø ¼r r > F K H ] j ` ¦ ô Ç . s s Ä »\ " f Ê < à º 7 x5 á q Å r 1 É x{ l ° 9 כÒ ú t$ q
7 í x5 á q(equality-generating Å tuple)s ¦, × æ° כ7 ú x5 á q Å r È É Òe ¦ Ò t$ q
7 í x á 5 q(tuple-generating tuple)s Å ô Ç .
– D+ \ e H ¸ H ÊÃ < º7 x5 á q× Å æ Ri _ 5 q$ Å
Ü í ¼ Ðë ½ ß ¨$
í a ) ÊÃ < º7 x5 á q Å – 6 §õ £ ° ú r+ É AI þ _ ¸ H × æ° כ7 ú x5 á q Å α ³ β ∩ Ri # l " f α ⊆ Ri s ¦ α ³ β ∈ D+ s .
• × æ° כ7 ú x5 á q_ Å _ s ^ ¦³ ð ³ & 9
• s s כ 0 x p H כ r É ¸ H a> ' \ ¦ ¸ ô Ç _ a> ' Ä »´ òK ô Ç . Õ ª Q null ° _כ ú 6 x t · § ú ¦ H 0 x p t · §` ú ¦Ã ºe .
result := {R} done := false D+ \ ¦> í ß dones Ðs à | c: ¨ M l 6 §` £ ¦ì Í4 ø ¤ result\ Di \ @ /K 4NFs Ri e Ü ¼ α ³ β 6 §` £ ¦ë 7 ß ¤ á H Ri \ " f
w í $ n H "
î t · § ú H × æ° כ7 ú x5 á qs Å α → Ri 6∈ Di , α ∩ β = ∅ result := (result − Ri ) ∪ (Ri − β) ∪ (α, β); Ü O \ ¼ done := true;
• # 6 3 x a> ' (universal relation)ê Í X ø <s ' Z s Û ¼\ e H ¸ H a> ' \ ¦ ¸ # ë ß H a> ' \ ¦´ ô ú Ç . • # 6 3 x a> ' _ ¸ H5 q$ Å
_ í s 2 § £ r1 É q: l ¤K £ ô Ç . 7.10.3 V Ë R «ù Ö § p ü ¢R X X Ë N × D • F KX <s ' Z s Û ¼ H ¦_ Ð&
ñ Ð × æ4 ¤ aÛ ) ¼ v \ ¦ 6 x½ ÉÃ + ºe .
<Õ ªa > 7.10> 4NF ì Ë rK · ú ¦o 7 § £ 7.9.3
• ×4 æ ¤ aÛ ) ¼v \ ¦ 6 x½ ÉM + :ë H] j& h rÌ É t q ½ ÉM + : ´ § ú rq É 6 xs èכ ¹ a ) H s כ . s ` כ ¦ BÒ t q H s כ ¸y 9q 6 x8 ¤ £ \ " f 8´ òÖ ¦& s h × æ 4 ¤s e HÛ ¼v \ ¦ 6 x½ ÉÃ + ºe .
ØA Z Ä 0° ow P ¨ Ö
• 4NF ì rK · ú ¦o 7 §: Õ £ ªa > 7.10 Ë • \ V) BC-schema\ 4NF ì rK · ú ¦o 7 §` £ ¦ & 6 h x "
î t · § ú H × æ° כ7 ú x5 á q ‘ Å ¦Ì o"
³@ î /Ø ¦ ñ’\ ¦µ Ï| 1
> a ) . s ` כ ¦s 6 x # ì rK 6 §õ £ ° ú .
• Õ ª Q q &
½ ñ © o aX ) <s ' Z s Û ¼\ ¦ 6 x l Ð Hz ´^ o Ó\ ¦ 6 x H s כ | Ðf à . 7.10.4  ¥כ \ Ç4 r v X È ì
Borrower-schema = ( ¦Ì o"
,@ î /Ø ¦ ñ) Customer-schema = ( ¦Ì o"
, î ¦Ì o- ¸r , ¦Ì o- o )
• &
½ ñ © o\ _ K K ÷ &t · § ú Hë H] j& h ¸e . • \ V) r _ Ã º{ 9 \ aº ' ô Ç 6 §õ £ ° ú r É a> ' e ¦ .
• s ì rK · ú ¦o 7 § £ rÁ É º Hz < ´ ¸ ì rK \ ¦] j/ N B t ë 7 ß x5 á qÄ Å »t H t 3 wô l Ç .
7.10
earnings( r "
, ¸ î ¸, Ã º{ 9 F KÓ o) s a> ' \ rF > H ÊÃ < º7 x5 á q Å r ‘ É r "
→¸ î ¸ Ã º{ 9 F KÓ o’ µ Ú\ 1 \ O . " fs a> ' H BCNF\ 5 qô Å Ç . t ë ß r "
s î × æ4 ¤ a ) . 6 §õ £ ° ú r É @ /î ` ß ¦Ò ty q ½ ÉÃ + ºe .
Å= ¹ kX Äß ì Å6 Ã KT ' [9 cT כ Ç4 r Ê ÝX Ë N
• ' > a + AX þ <s ' Z s Û ¼\ ¦[ > O H[ j t ] H X ÓZ ½ ~ O
– 6 0¼ 1. K ÿ D h Ðî r a> ' \ ¦Ò t$ q
ô í Ç .
– E-R s # QÕ ªÏ ` þ ¦[ > O ô ÇÊ ê\ s ` כ ¦_ ^ s ¦ Ð ¨ 8
earnings-2003( r "
, Ã î º{ 9 F KÓ o)
– 9 כ ¹ô Ç ¸ H5 q$ Å
` í ¦ _ a> ' Ðë ß HÊ ê & \
½ ñ ©+ Aì þ rK ú · ¦o 7 §` £ ¦& 6 h x
s a> ' % r i BCNF\ 5 qô Å Ç . t ë B ß K D h Ðî r a> ' \ ¦Ò t$ q
K í Ù ¼ Ða ~ % r É K Õ þ r É m .
– e_ Ð_ s ^ ¦` ¦ë [ ß t þ ¦&
½ ñ ©+ A` þ ¦Ø æ7 ¤ á Ht 7.10.1
– 6 0¼ 2. K ÿ 5 q$ Å
` í ¦Æ Ò ô Ç .
E-R { ¢¨ Ê | ÝX Ë N × D
company-year( r "
, 2001¸ î -Ã º{ 9 , 2002¸ -Ã º{ 9 , 2003¸ -Ã º{ 9 )
• E-R s # QÕ ªÏ ` þ ¦` ¦ Ø Ô> $
í ¦s ` כ ¦_ s ^ ¦ Ð ¨ 8 8s _ © &
½ ñ © o 9 כ ¹ t · §` ú ¦Ã ºe .
s a> ' % r i BCNF\ 5 qô Å Ç . t ë s ß @ / î% ß r i a ~ % rK É Õ þ r É m .
• t ë [ ß > O \ ¦¸ 3 ú w l Æ Ò & h &
½ ñ © o 9 כ ¹½ ÉÃ + ºe . • O [> õ &
\ ñ " f&
½ ñ © o> h¥ ` Æ ¦ ¦ 9 # [ > O H s כ כ 9 ¹ . s h >¥ s Æ \ O H
Ä â º\ H _ õ s ^ ¦s &
½ ñ ©+ A` þ ¦Ø æ7 ¤ á Ht ½ É + 9 כ ¹ e . 7.10.2
ä È ì Þå Ó Ë4 ¾ ± É¿ n R <U s0 ê É n
• 9 כ ¹ô Ç ¸ H5 q$ Å
` í ¦ _ a> ' \ í Êô < Ç 6 § £ \ ì rK \ ¦ l 0 AK " f Hì rK Á º Hz < ´ ¸ ì r K s # Q ô Ç . 10
c °2003, sangjin@kut.ac.kr
– § ^ · ú ¦o 7 §: î £ r%
^ ò ] j H Ð: x LRU(Lea st-Recently Used) ~ Ód ½ ` ¦ 6 xô Ç . Õ ª Q <s X ' Z s Û ¼ Hs ~ Ód ½ Ð Ó ¾ © a~ ) ÓZ ½ O ¦& ` 6 h x½ ÉÃ + ºe .
2T 6 ' _9 KT Ã : ~ ¡q ç { ¡È 07
– ¦ &
^ ñ ¦2 ¤(pinned block): n Û ¼ß ¼\ æ ¼# t 3 t w l ¸2 ¤] jô Ç÷ &# Qe H^ ¦2 ¤` ¦´ ô ú Ç . Ð: xr Û ¼% z 7 ´J (crash) РÒ' 4 ¤½ ¨ l 0 A " K f H^ ¦2 ¤s n Û ¼ß ¼\ æ ¼# t t r l \ ¦ jô ] ÇK ô Ç .
A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002. Part IV. Data Storage and Querying
11 11.5
– ^2 ¦ ¤_ y ] © j æ ¼l (forced output of blocks): Ð: x^ ¦2 ¤ rÕ É ª^ ¦2 ¤s §^ ÷ &# Q ½ ÉM + : n t Û ¼ß ¼\ æ ¼# t t · § ú H . Õ ª Q M : Ð H §^ ÷ &t · § ú ¸n Û ¼ß ¼\ y ] © j Ð+ É + ½
Ä â º e .
[X $ sÊ ê Ý
Ç ø m º [X $ s êX sV ê ± É¿ n R <
11.5.2
• Q !( §^ · ú ¦o 7 §_ £ 3 q& l h rn É Û ¼ß ¼] H X ` ¦þ j è o H s כ . Õ ª Q p A ] X H` ¦&
S ñ X > V8 \ ¤½ £ Éà + º\ Ü O ¼9, { ì 9 Í& ø Ü h ¼ Ðl r] > X H` ¦ Ó ½ ¼ Ü Ðp A ] X H` ¦Æ Ò8 ¤½ £ Éà + ºµ Ú\ 1 \ O .
• X <s ' Z s Û ¼ H # Q
9 { Ð ÷ © &# Qn Û ¼ß ¼\ $ ÷ © &9, s
{ [ 9 t þ r É Ð: x_ s á Ô\ Ñ \ þ O a ) . • y
{ 9 r É ¦&
ñ aß ) ¼l _ $ é © 0 ß A ^ ¦2 ¤Ü ¼ Ð r½ ì É÷ + &# Qe Ü ¼9, s é 0 ß A H$ ÷ © rë ß m 5 x_ Å é 0 ß A a ) .
• LRU: © ¸A \ 6 x a^ ) ¦2 ¤` ¦ §^ H~ Ó ½ O Z
• ô^ Ç ¦2 ¤\ H Ð: x# Q> h_ X <s ' Ó3 ½ qs l $ © a ) .
• LFU(Least Frequently Used): & © > h 6 x a^ ) ¦ ¤` 2 ¦ §^ H~ ÓZ ½ O
• _ X <s ' Ó3 ½ qs l # Q^ ¦2 ¤\ 5 g$ ÷ © & s X <s ' Ó3 ½ q` l ¦] X H l 0 Aô Çn Û ¼ß ¼{ Ø 9 ¦ § s 4 ´ § ú .
– ë] H j& : h ¸A \ H Å Ò 6 x÷ &% t 3 ë þ ß j H\ H _ 6 x÷ &t · § ú H^ ¦2 ¤ r> É 5 q Å § ÷ ^ &t · § ú H .
• X <s ' Z s Û ¼_ $ © u © ] H X 8 ¤ £ \ " f_ 3 q& l h rg É â «æ «ÿ ?Ì Áe * 7 ×n ë ÑU 5 c¡ · ´l ⣠·i ¦ ¿ ª Ð M ¿ s .
• î% r
^ ò ] j HÅ Òl % 3 u © \ ¦ ao ' ½ ÉM + : LRU ~ ÓZ ½ O ¦Å ` Ò Ð 6 xô Ç . Õ ª Q X <s ' Z s Û ¼ Hî r%
ò ] ^ j Ð H 8&
S ñ X > p A _ ] X HJ ` ¦\ V ¤½ £ 8 Éà + ºe . : ¤y £ î rp A \ @ /K " f H&
S ñ X > \ V8 ¤s £ 0 xô p Ç
Ä â º ´ § ú .
• n Û ¼ß ¼] X H` ¦þ j è o Hô Ç t ~ ÓZ ½ O r´ É § ú r É ¦2 ^ ¤` ¦Å Òl % 3 u © \ Ä »t H s כ . Õ ª Q ¸ H^ ¦2 ¤` ¦ ¸¿ ºÅ Òl % 3 u © \ Ä »t ½ Éà + º\ O . ! a( x Hn Û ¼ß ¼\ e H^ ¦2 ¤_ 4 ¤ r` : ¦Ä »t HX <s ' Z sÛ ¼ 6 x HÅ Òl % 3 u © %
% ò s i .
• \ V) 6 §õ £ ° ú r É a> ' @ /à º³ ð ³d & ` ¦ borrower ./ customer o % H _ ï× ¼(pseudocode) 6 §õ £ ° ú ¦ .
• X <s ' Z s Û ¼_ 0 Ar Û ¼ 7× % æ! Q( / Nç B _ ß ½ É + ` © { ¦Õ e þ t H 0 Ar Û ¼ 7` % ¦! a( x® h ¸ (buffer manager) ô Ç . 11.5.1
a( ! aw = k° ow P ¨ Ö
borrower_ y È Òe ¦ b customer_ y È Òe ¦ c b[ ¦Ì o"
]=c[ î ¦Ì o"
]s î D hÈ Òe ¦ x\ ¦ 6 §õ £ ° s ú &
_ ñ : x[ ¦Ì o"
]=b[ î ¦Ì o"
]; î x[@ /Ø ¦ ñ]=b[@ /Ø ¦ ñ]; x[ ¦Ì o- ¸r ]=c[ ¦Ì o- ¸r ]; x[ ¦Ì o- o ]=c[ ¦Ì o- o ]; x\ ¦ borrower ./ customer\ í Ê <
! a( aå ËP ¾
• n Û ¼ß ¼\ e H^ ¦2 ¤s 9 כ ¹ ! Q( ao ' \ > כ ¹' A` õ ¦ô Ç . כ ¹' Aô õ Ç^ ¦2 ¤s s p ! Q( \ e Ü ¼ ^ ¦2 ¤_ Å Ò è\ ¦Å Ò ¦, \ Ü O ¼ ^ ¦2 ¤` ¦! Q( \ & h F ô Ç 6 §\ £ Õ ª _ כ Å Ò è\ ¦ï r . s M : כ 9 ¹ & F h ÷ &# Qe Hl r^ > ¦2 ¤` ¦W # = Qj tà þ ºe . W # = Q æ ¼s > ÷ & H^ ¦2 ¤s n Û ¼ß ¼\ ì Í% ø
÷ ò &t · § ú rÃ É º
` ñ & ¦ t ¦e Ü ¼ W # = Qæ ¼l \ n Û ¼ß ¼\ ¦Ì t q K ô Ç .
º ¿ a> ' " f Ð r
É { \ 9 $ ÷ © &# Qe ¦ &
ñ . borrower_ ô ÇÈ Òe ¦` ¦% o % Ü i ¼ 8s Õ © ª Èe Ò ¦ r É כ 9 ¹\ O . 7 ¤, borrower_ £ ô Ç^ ¦2 ¤` ¦ ¸¿ º 6 x % Ü i ¼ 8s s © ^ ¦2 ¤ r É כ 9 ¹\ O . f borrower_ " ô Ç^ ¦2 ¤` ¦ % o Ù ¡Ü þ ¼ s ^ ¦2 ¤
• X <s ' Z s Û ¼_ ß ¼l HB Ä ºß ¼Ù ¼ Ð! Q( ao ' Hî r%
^ ò ] j_ Å Òl % 3 u © ao ' Ð 84 ¤ ¸ ô ú Çl Õ ts ü כ 9 ¹ . 1
r7 É ¤r £ §^ | cà ¨ ºe . s §^ | Ì` Ä ¦¤ ´k æ ¬ ¨W (toss-immediate) ~ ÓZ ½ s O ô Ç .
– ë H] j& h • ] j # Q§ > . ] j aY ) U ï× ¼\ ¦³ ðr rY É U ï× ¼ ÐG 0 > ô Ç . t } Y U ï× ¼ ÐG Ö ¦Ã ºe t ë s ß כ r É ¿ º> h_ ^ ¦2 ¤] X Hs כ 9 ¹ . Ð: x ] j Ð H ¶ { ú s 9 ´ §Ü ú ¼Ù ¼ Ð Y U ï× ¼ H × æ\ ¶ { ú \ 9 _ K G 0 >t ¸2 ¤ H s כ 8 | Ðf à . Õ ª Q é í ß H³ ð r HG Ö ¦0 Au \ ¦¹ Ôl 1 # Q§ l > M :ë H \ ´ òÖ ¦& s h t 3 w l . • ^ ¦2 ¤ß ¼l 40 s à Ô_ C à º m ^ ¦2 ¤
> â \ ;Y 2 U ï× ¼ rF > > a ) .
customer_ È Òe ¦ r borrower_ É È Òe ¦õ ² o ú y borrower_ È Òe ¦` ¦ % o ½ É M + : > 5 q Å 6 x a ) . 7 ¤, customer_ £ ô Ç^ ¦2 ¤ r É ¸ s ¢ a« Ñ| cM ¨ : t > 5 q Å 9 כ ¹ . Õ ª X <$ / © Nç B s ß Â Ò7 ¤ á # §^ ÷ &# Q þ © jH \ Ð Ã ¸ô Ç^ ¦2 ¤` ¦ § ^ H s כ © | Ðf à . s כ r É þ © j H \ Ð Ã ¸ô Ç^ ¦2 ¤s © × æ\ r Ð Ã ¸÷ &l M : Hs ë . s §^ | Ì` Ä ¦ MRU(Most-Recently Used) ~ ÓZ ½ s O ô Ç . • ! Q( ao ' H: x> & h « Ñ\ ¦ Ð Ã ¦½ Éà + ºe . – X <s ' Z s Û ¼\ " f H a> ' [ t\ þ @ /ô Ç Ho 7 & , Ó h to ü & Û h ¼v \ aô ' Ç&
ñ Ð\ ¦Ä »t H X <s ' (data dictionary)` ¦ ´ © §s ú ] X H ô Ç . " f! Q( ao ' HX <s ' ¦2 ^ ¤ r É §^ t · § ú H .
• 9 {ì Í& ø h ~ ÓZ ½ :
O { 9 · ¡Â ú Òì r\
{ 9 K 8\ ¦ 6 x #
{ \ 9 aô ' Ç# Q&
ñ Ð\ ¦$ © H~ ÓZ ½ O – Ð : xs K 8\ q # Qe H' Í P :Y U ï× ¼_ Au 0 ë Ä ß »t ¦, q # Qe H' Y Í U ï× ¼\ H # q Qe HÕ ª 6 §Y £ U ï× ¼_ 0 Au \ ¦Ä »t ô Ç . 7 ¤, £ o Û ¼à Ô Ðq # Qe HY U ï× ¼\ ¦ ao ' ô Ç .
• # Q 6 x #
' î Ü ¼ ÐX <s ' Z s Û ¼\ ¦ 6 x #
' ] Q(concurrency-control) 0 ¦e î j# Ar Û ¼% 7 rX É <s ' Z s Û ¼_ 9 { a$ '
` í ¦Ä »t l 0 AK : ¤& £
כ ñ ¹' A[ õ t` þ ¦t r ~ ´Ã ºe . ! Q( ao ' t aכ ) ¹' A[ õ þ t_ ? /6 x ¦ `· ú §^ · ú ¦o 7 §` £ ¦ & 6 h x½ ÉM + : ¦ 9½ ÉÃ + ºe .
– ú ¶{ כ 9 ¹' A\ õ @ /K " f Hs o Û ¼à Ô\ ¦ ¸ Ö x 6 9, q # Qe HY U ï× ¼ \ Ü O ¼
{ = 9 Q å Y \ U ï× ¼\ ¦Æ Ò ô Ç .
• z ´J 4 ¤½ ¨(crash-recovery) 0 Ar Û ¼% 7 r É §^ · ú ¦o 7 §\ £ % 3 ô Ç] j ` ¦ ô Ç . # Q ^ " ¦2 ¤s à º
÷ ñ & &% Ü 3 ¼ ! Q( ao ' Hs ^ ¦2 ¤` ¦z ´J 4 ¤½ ¨ 0 Ar Û ¼% 7 _ ) | Ì\ à s O Hn Û ¼ß ¼\ j tà þ º\ O .
11.6
11.6.2
• ß ¼l _ Y U ï× ¼\ ¦$ K © ½ É +
Ä â º – ô
Ç { 9 \ # QY U ï× ¼ { 9 ` ¦$ K © H
Ä â º
Ç
ø m ºÇ Ä k
– U Y ï× ¼? /\ s _ © 9 × ¼ ß ¼l ¦ | \ 9
Ä â º
•
{ 9 r É Ho 7 & Ü h ¼ Ð { º 9 _ Y U ï× ¼ Ð ¸f ÷ &# Q e .
– 9 × ¼_ ì Í4 ø ¤` ¦) 6 x HY U ï× ¼ { ` 9 ¦$ K © H
Ä â º: × æ° כ5 ú q$ Å
í
• Y U ï× ¼ H
{ _ 9 ^ ¦2 ¤Ü ¼ Ð © a ) . • ^2 ¦ ¤_ ß ¼l Hn Û ¼ß ¼_ Ó to ü & : h ¤$ £
\ í _ K
ñ & a ) . Õ ª Q Y U ï× ¼_ ß ¼l HX <s ' \ & s h . Ð: x a> ' rß É ¼l _ Y U ï× ¼ ¦ \ 6 xô Ç .
• V \) ô Çt & _ h > ý a&
ñ Ð\ ¦ ao ' l 0 Aô Ç ¼l ß _ Y U ï× ¼ typedef struct { char account number[10]; double balance; } account;
• Ð: x _
{ 9 \ Hú ° rß É ¼l _ Y U ï× ¼ë $ ß ô © Ç . 11.6.1
ű ì M 8 ý7 _ ©
typedef struct { char branch name[22]; account account info[]; } account-list;
w X Ëc N Ü R± M 8 ý7 _ ©
• \ V) account a> ' _ ô ÇY U ï× ¼_ &
_ ñ typedef struct { char account number[10]; char branch name[22]; double balance; } account;
l # " f account info H U ´s _ C \ s P . 11.6.2.1 l ç Ã% K á
¸ ~ Ø« Å • U Y ï× ¼_ = Q\ å Y U ï× ¼_ = Q` å ¦³ ðr , Y U ï ¼r × \ Y U ï× ¼_ U ´s \ ¦$ © H~ ÓZ ½ O
char + As þ 1 sà Ôs ¦, double + As þ 8 s à Ôs account Y U ï× ¼_ ß ¼l H 40 s à Ôs .
• é & ß h
• é © í ß Hô Ç~ ÓZ ½ : ' O 40 Í s à Ô\ ' Y Í U ï× ¼, Õ ª 6 § 40 £ s à Ô\ Õ ª 6 §Y £ U ï× ¼\ ¦$ © H~ Ó ½ . O Z
– ] j aY ) U ï× ¼_ / Nç B ` ß ¦ r 6 x l Q§ # > . é ¼ ß # o µ ÏÒ 1 tô q Ç . 2
header
records
A-102 #entries
size
free space
A-302 A-215 A-515
<Õ ªa > 11.1> _ Ë t2 þ ©` s t ½ ¨ ¸
A-305
A-444
– Y U ï× ¼\ X <s ' \ ¦Æ Ò l # Q§ > . • _ t2 þ ©` s t ½ ¨ ¸(slotted-page structure)
400 600 700 900 350
550
<Õ ªa > 11.3> í Ë H
{ \ 9 " f¶ { ú 9
– ^2 ¦ ¤_ r \ 6 § £ õ° ú r& É
ñ Ð\ ¦ Ð aô ' Ç .
• Æ Ò & Ü h ¼ Ð 6 x H Y U ï× ¼_ 9 × ¼Â Òì r` ¦] jü @ô Ç Qt / Nç B ß rz É © q a ) .
• K 8\ e HU Y ï× ¼_ pà ' Ôo _ Ã º • B /ç N _ ß å Q =0 Au • ^ ¦2 ¤\ $ ÷ © &# Qe Hy Y U ï× ¼_ 0 A ü u <ß ¼l
– ^2 ¦ ¤` ¦r ^ ¦! (anchor block)õ 3 g Å >^ Ë ¦ (overflow block)Ü 3 ! ¼ Ð ¾ º# Q 6 x H~ Ó ½ O Z
– z ´] jY U ï× ¼ H^ ¦2 ¤_ = QÂ å Ò' $ © a ) .
• r ^ ¦! \ 3 HY U ï× ¼_ ¦&
ß ñ ¼l 9 × ¼ü < 9 × ¼_ ô Ç° כë ú $ ß ô © Ç . • g Å >^ Ë ¦! \ 3 H × 9 ¼_ ° [כ ú të þ ß o Û ¼à Ô+ AI þ Ð$ ô © Ç . • r ^ ¦! õ 3 g Å >^ Ë ¦! _ 3 Y U ï× ¼ß ¼l Ø Ô .
– / Nç B ß r É 5 q Å a/ ) Nç B Ü ß ¼ Ð Ó ½ K © 8ü <$ ÷ © &# Qe H t } Y U ï× ¼ s \ Ä »t a ) . – Y U ï× ¼ ] j÷ & , ô ÇY U ï× ¼_ ß ¼l
÷ â & ^ ¦2 ¤` ¦F &
o ñ ô Ç . 11.6.2.2 §Ç Û a Sæ Ö «e Ø ¸« Å
11.7
ø
Ç5 m ; c" e7 _ © ºÇ Ä k
• n
? { 9 ¸f (heap file organization): Y U ï× ¼ H
? 9 { /\ e _ _ 0 Au \ $ | © cà ¨ ºe . Ð: x _ a> ' H _
{ \ 9 $ ô © Ç . • í H
{ 9 ¸f (sequential file organization): Y U ï ¼ × Ht &
ñ a ) × 9 ¼( Ò ov )\ ¦l ï rÜ ¼ Ð&
§ ñ =÷ > &# Q $ © a ) .
• Kr
{ 9 ¸f (hashing file organization): Y U ï× ¼ Y _
> 9 × ¼_ ° `כ ú ¦K r ÊÃ < º_ { 9 § Ü 4 ¼ Ð 6 x K # r ° `כ ú ¦> í ô ß Ç 6 §\ £ s ° `כ ú ¦l ï rÜ ¼ Ð$ © a ) . • þ 9 t QÛ ¼'
{ 9 ¸f (clustering file organization): f " Ð r É a> ' \ ¦ _
{ 9 \ $ © 9, s M : aº ' e HX <s ' H° ú r^ É ¦2 ¤\ $ © a ) .
<Õ ªa > 11.2> r Ë ^ ¦2 ¤õ g Å >^ Ë ¦2 ¤½ ¨ ¸ • [ j t ~ ÓZ ½ O
11.7.1
– ôY Ç U ï× ¼_ þ j@ /ß ¼l &
_ ñ ÷ &# Qe Ü ¼ ¸ HY U ï× ¼ s ß ¼l \ ¦ t ¸2 ¤$ © H ~ ÓZ ½ Ü O ¼ Ð, ½ É{ + ÷ © &% t 3 ë ß 6 x÷ &t · § ú H/ Nç B ß r: É ¤Ã £ º° כÜ ú ¼ ÐG Ä º Y U ï× ¼ _ = Q` å ¦ ? / H° כÜ ú ¼ ÐG î r .
Ø U Å
ø Ç m ºÇ k Ä
• í H
{ 9 ¸f r# É Q ~ " a É co Ë (search key)\ ¦l rÜ ï ¼ ÐY U ï× ¼[ ts þ &
§ ñ =÷ > &# Q$ © a ) . • Q # 5 " q$ Å
í ¸ Ò ov | cà ¨ ºe Ü ¼9, 5 q$ Å
_ í | ½ 9 Ë + s Ò ov | cà ¨ ºe . = GÅ Òv Ò ov | c ¨ כ 9 ¹ H\ O .
• / @Â Òì r_ Y U ï× ¼ þ j@ / ß ¼l \ H] X Çß ô ¼l \ ¦ | 9
Ä â º\ HÄ »6 xô Ç~ ÓZ ½ O s . • ë H] j& : / h Nç B s ß ´ §s ú z q © | cà ¨ ºe .
• ú ¶{ : Ó 9 to ü & í h H" fü < Ho 7 & í h H" f { 9 u > $ ÷ © &# Qe Ü ¼Ù ¼ Ð" ¶A é ¶ { ú ÷ 9 &# Q H0 Au \ { ú ¶ 9 l # Q§ > . s \ ¦0 AK Qt Y U ï× ¼\ ¦ ¸¿ ºs 1 x½ l Éà + ºe t ë s ß כ r$ É
0 í x8 p ¤ £ \ " f Ðf à | t · § ú . " f o Û ¼à Ô\ ¦ 6 xô Ç .
– ¦&
ñ aß ) ¼l _ U Y ï× ¼\ ¦ o Û ¼à Ô+ AI þ Ð # 6 x H~ ÓZ ½ O 3
– Á º $
] í j ¸|
Y U ï× ¼ ¶ { ú ½ 9 É0 + Au ü < © î r/ M\ B e H / Nç B \ ß ¶ { ú 9 ¦ í ' ú כ °` ¦ ¸&
ô ñ Ç .
– a ) 6 x 3 q2 l ¤ – y 6 x _ : x> &
ñ Ð
– Ó to ü & í h H" fü < Ho 7 & í h H" f ´ §s ú # # Á Q n Û ¼ß ¼{ Ø 9 ¦§ M 4 :ë H\ $
0 í xs p B Ä ºb # Q fÅ & ¼ to ü í h fü < 7 . " Òl Ü h ÐÓ & H" H o & í h H" f\ ¦{ 9 u r & Å Ò# Q ô Ç .
– J Û ¼0 >× ¼ü <° ú r É 6 x 7 x& £
ñ Ð – y a> ' \ e HÈ Òe ¦_ Ã º – y a> ' $ ÷ © &# Qe H$ ½ © ¨ ¸
• í H
{ 9 ¸f r É a> ' \ ¦: ¤& £
í ñ H" f Ð{ 9 # Q ½ É + M :¼ o # 9, | _ 9 \ ¦% o ½ ÉM + : ¸ ¸¹ §s ¡ | cà ¨ º e . 11.7.2
– y a> ' $ ÷ © &# Qe H
{ 9 – ô
Ç { 9 \ ¸ H a> ' $ ÷ © &# Qe a ' _ > y È Òe ¦s
{ ? 9 /\ # Qn \ $ ÷ © &# Q e Ht \ @ /ô Ç&
ñ Ð
z ü > [ ' [
m ø Ç ºÇ Ä k
– Ò o &
ñ Ð
• @ /Â Òì r_ a> ' + AX þ <s ' Z s Û ¼ Hy a> ' \ ¦Z > ¸
{ 9 \ $ ô © Ç . s כ ry É a> ' H Ð: x ¦
ñ & aß ) ¼l _ Y U ï× ¼\ ¦ 6 x 9, ¦&
ñ aß ) ¼l _ Y U ï× ¼ Hé í ß Hô Ç
{ 9 ¸f ` ¦s 6 x # ~ > 1 $ ½ © ÉÃ + ºe l M :ë Hs . 8½ ¨ é í ß Hô Ç
{ 9 ¸f ¦ ` 6 x s ` כ ¦ ¸ l 0 Aô Ç ï× ¼ ¸é í ß H 9, ï× ¼_ ¸ ª & h . • X <s ' Z s Û ¼_ é
u & t ¦4 ¤¸ K ú t _
{ \ 9 # Q a> ' \ ¦$ © # $
0 í x` p ¦ Ó ¾ r © v H s כ כ 9 ¹½ ɺ + Ãe . • @ /6 x| ÓX ¾ <s ' Z s Û ¼ H
{ 9 ao ' \ ¦î r%
^ ò ] j\ > _ r > t · § ú ¦, _
{ \ 9 ¸ H a> ' \ ¦$ © ¦, s
{ ` 9 ¦Û ¼Û ¼Ð ao ' ô Ç . • \ V) 6 §| £ _ 9 \ ¦¦ 9 # Ð . select > ý a ñ, ¦Ì o"
, î ¦Ì o- ¸r , ¦Ì o- o from depositor,customer where depositor. ¦Ì o"
=customer. î ¦Ì o"
î s | _ 9 H depositorü < customer\ ¦ ¸ ô Ç . " f depositor_ y È Òe ¦ ° ú r É ¦Ì o"
` î ¦ customer È Òe ¦` ¦¹ Ô 1 ô Ç . þ j _
Ä â º y Y U ï× ¼ r^ É ¦2 ¤\ 0 Au K e Ü ¼ ´ § ú rn É Û ¼ß ¼] H X s 9 כ ¹ > a ) . 9 t þ QÛ ¼'
{ 9 ¸f r depositor_ É y È Òe ¦` ¦ aº ' customer_ È Òe ¦ H % \ $ ô © Ç . " f Ð Ø Ô> Õ ªo ¦& h rn É Û ¼ß ¼] X HÜ ¼ Ð ¸ ` ¦½ Éà + ºe . Õ ª Q s X > O ¸f o÷ & # Q " ¸ r É Ø Ô> % o ½ É + à ºe t ë ß r| É 9 _ H ¸y 90 y# p Q| 9 à ºe . s ` כ ¦F G4 ¤ l 0 AK customer_ È Òe ¦[ t þ r É o Û ¼à Ô+ AI þ Ð # 6 xô Ç . • 9 t þ QÛ ¼'
{ 9 ¸f rr É Û ¼ 7\ % " f´ §s ú 6 x| c ¨ 9 | _ \ ¦l ï rÜ ¼ Ðþ j& h o÷ &# Q$ © a ) .
11.8
KT 6 ' [ Å8 ¹ ý$ [X s ê
• X <s ' \ Ä » t÷ &# Q H&
ñ Ð – a> ' _ s 2 § £ – y a> ' _ 5 q$ Å
s í 2 § £ – y 5 q$ Å
_ í ¸B j õ ß ¼l – X <s ' Z s Û ¼\ &
_ ñ a ) Ó_ s 2 §õ £ Õ ª כ _ &
_ ñ 4
c °2003, sangjin@kut.ac.kr
• × ¿a cê Ë >(secondary index): Ò o Ü ¼ Ð 6 x H Ò ov
{ \ 9 $ ÷ © &# Qe HY U ï× ¼_ í H" f < ü H rí É H" f\ ¦&
_ ñ HÒ o ` ¦´ ú 9, r É ú ´ Ðq 9 t þ QÛ ¼' Ò o (non-clustering index)s Ç ô .
2T 6 ' _9 KT Ã : ~ ¡q ç { ¡È 08 A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
12.2.1
•
{ \ 9 Y U ï× ¼ # Q " Ò ov \ ¦l ï rÜ ¼ Ð&
§ ñ = > &# ÷ Q$ ÷ © &# Qe ¦s Ò ov \ ¦ 6 x HÅ ÒÒ o s e Ü ¼ , s
{ 9 ` ¦ Ò o í H
{ 9 (indexsequential file)s ô Ç .
Part IV. Data Storage and Querying
12 12.1
• Ò o Y U ï× ¼¢ ¸ HÒ o Ó ½ r É Ò ov ° כõ ú s ° כ ú ¦ ` í Ê < HY U ï× ¼\ ¦ v H s _ © í ' н ¨$
í a ) . s í ' H
{ ? 9 /\ Y U ï× ¼ $ ÷ © &# Qe H^ ¦2 ¤_ d Z > ü <Õ ª^ ¦2 ¤? /_ ¸á Ô! Ü Ó ¼ н ¨$
í a ) .
ß t ÅÊ Ã ÝA 0Ë Å S Ä M Ø4 ] È G
•
{ 9 \ @ /ô ÇÒ o r{ É ì 9 ÍÕ ø \ þ " f 6 x HÒ o ° õ ú r¶ É " éo Ðl x 1 ô Ç .
• Ò ÅÒ o _ Ò o Y U ï× ¼ H _ í ' ë Ä ß »t s Ò o Y U ï× ¼ü <° ú r° É `כ ú ¦ t HY U ï ¼\ × @ /ô Ç ¸ H í ' \ ¦Ä »t ô Ç . _ í ë ' Ä ß »t H
Ä â º\ HÆ Ò Ðí H Ò os 9 ¹½ כ ÉÃ + ºe .
• Ò o r& É
§ ñ =÷ > &# Qe ¦, Ò o` ¦ Ø Ô> ½ Éà + ºe ¸ 2 ¤ ¸ü <Å Ò9, Õ \ þ q K @ © /& Ü h ¼ Ð& h r É s ª . • Ò o _ 7 xÀ á Ó – í" H fÒ o : &
§ ñ = > a° ) `כ ú ¦l ì Íô ø ÇÒ o – K r Ò o : K r ÊÃ < º\ ¦ s6 xô ÇÒ o
12.2.1.1 ¦ >W ÿ ?
É Ùa cê Ë > • í H" fÒ o _ 7 xÀ á Ó
• Ò o l Z ` O ¦¨
î H lï r – X ]H { : ´ 9 òÖ ¦& ] h H X s t ¶ " é÷ & H] X H_ Ä »+ A þ – ] H X r ç : : ß ¤& £
X ñ <s ' Ó3 ½ q` l ¦¹ Ô 1 HX < èכ ¹ & ÷ Hr ç ß – ¶ { ú 9 r ç : D ß h< Xs ' Ó3 ½ q` l ¦¶ { ú 9 HX < è כ ¹÷ & Hr ç ` ß ¦´ ú 9, z ´] jX <s ' \ ¦¶ { ú 9 Hr ç õ ß Ò o ` ¦Ì t q HX < o Hr ` ß ç ¦½ Ë; + 2r ç s ß . – ] jr ç : ß l rX > <s ' Ó3 ½ q` l ¦ ] j HX < èכ ¹÷ & Hr ç ` ß ¦´ ú 9, z ´] jX <s ' \ ¦ ] j Hr ç õ ß Ò o ` ¦Ì t q HX < o H r ç ` ß ¦½ Ë; + 2r ç s ß . – / Nç B ß ¸! QK × ¼: Ò o ` ¦ t HÆ Ò & / h N B ` ß ç ¦´ ú 9, & { h ô © Çà ºï r_ / Nç B ß ¸! QK × ¼ H$
0 í x p Ó ¾ ` © ¦0 AK BÒ t q H כ r u É e .
12.2
¤t ß Å Ã
– ¦W > a cê Ë >(dense index): 6 x÷ & ¦e H ¸ H Ò ov ° `כ ú ¦Ò o Ü ¼ Ð 6 x Hí H" fÒ o ` ¦ ´ ô ú Ç . ^ Å Ò Ò o (dense primary key)_ Ò o Y U ï× ¼ H Ò ov ° כõ ú Õ ª° `כ ú ¦ í Ê < H' Y Í U ï× ¼\ ¦ o v H í ' Ð ¨$ ½
í a ) . ° ú r° É `כ ú ¦ t HY U ï× ¼ H' Y Í U ï× ¼s Ê ê\ í H & Ü h ¼ Ð$ © a ) . – É
Ùa cê Ë >(sparse index): 6 x÷ & ¦e H ov Ò ° × כ ú æ { Â 9 Òë Ò ß o Ü ¼ Ð 6 x H í H fÒ " o ` ¦´ ô ú Ç . s ¨ 8
\ â " f Ò ov ° כ ú a s : ¤& £
Y ñ U ï× ¼\ ¦¹ Ô 1 ¦z ·Ü ¼ aü <° ú t ë ß © HÒ o ` ¦s 6 xô Ç . • X ] Hr ç 8 ß ¤ £ \ " f H ^ Ò o s , / Nç B ß ¸! QK ¼8 × ¤ £ \ " f H{  9 ÒÒ o s Ä »o . ¢ ¸ô Ƕ { ú 9 õ ] jr Ò o Ì t q 8 ¤ £ \ " f ¸{  9 ÒÒ o s Ä » o . • 9 {ì Í& ø Ü h ¼ Ð{  9 ÒÒ o ` ¦ 6 x 9, ô Ç^ ¦! 3 _ Ò o ` ¦ 6 xô Ç . s כ r^ É ¦2 ¤` ¦Å Òl % 3 u © \ & F h ô ÇÊ ê\ Õ ª^ ¦2 ¤` ¦í H Ò o H כ r É Ø Ô> ½ Éà + ºe l M :ë Hs .
Ø" U Å et Å Ã ß
• Ò o ½ ¨ ¸ H: ¤& £
ñ Ò ov ü < a ' a ) . • í" H fÒ o r É Ò ov _ ° `כ ú ¦&
§ ñ = > # Ä »t 9, y ° כõ ú Õ ª° כs ú í Ê÷ < &# Qe HY U ï× ¼_ 0 Au \ ¦ aK ' Z ~ H .
12.2.1.2 í N 5 a cê Ë > • 9 { ÒÒ o ~ Ód ½ ` ¦ 6 x 8 ¸´ òÖ ¦& Ü h ¼ Ð% o l \ H -Á º9 tà þ ºe .
•
{ 9 r# É Q> h_ Ò o ` ¦ | Ã 9 ºe . • Ì Áa c> Ë (primary index): Ò ê o Ü ¼ Ð 6 x H ov Ò
{ 9 \ $ ÷ © &# Qe HY U ï× ¼_ í H" f\ ¦
_ ñ & HÒ o ` ¦´ ú 9, r´ É ú Ð9 t þ QÛ ¼' Ò o (clustering index)s ô Ç .
• V \) ô Ç
{ \ 9 100,000 > h_ Y U ï× ¼ $ ÷ © &# Q Ü e ¼9, y ^ ¦! \ 3 10 > h_ Y U ï× ¼ $ © a ) ¦ &
ñ . 1
2) Ò o Y U ï× ¼ ' Í P :Y U ï× ¼_ í ' ë ` ß ¦Ä »t ½ ÉM + : rs ' Í P :Y U ï× ¼s Ò o Y U ï× ¼_ í ' \ ¦ º ¿ P :Y U ï× ¼\ ¦ o v ¸2 ¤Ì t q Ç ô . – {  9 ÒÒ o : y ^ ¦! 3 _ Ò o ` ¦Ä »t Ç ô ¦ &
ô ñ Ç . 1. Ò o \ a° `כ ú ¦ t HÒ o Y U ï× ¼ \ O Ü ¼ rë ß ] jô Ç . 2. Ò o \ a° `כ ú ¦ t HÒ o Y U ï× ¼ e Ü ¼ 1) a ° `כ ú ¦ t HY U ï× ¼ r µ Ú\ 1 \ O ¼ Ü r\ ¦ ] j ¦, a ° `כ ú ¦ t H o Ò Y U ï× ¼ HÕ ª 6 §° £ כÜ ú ¼ ÐÌ t q ô Ç . s M :Õ ª 6 §° £ \כ ú K { © HÒ o Y U ï× ¼ e Ü ¼ a° `כ ú ¦ t HÒ o Y U ï× ¼\ ¦ ] jô Ç . 2) Ò o Y U ï× ¼ ' Í P :Y U ï× ¼_ í ' ë ` ß ¦Ä »t ½ ÉM + : rs ' Í P :Y U ï× ¼s Ò o Y U ï× ¼_ í ' \ ¦ º ¿ P :Y U ï× ¼\ ¦ o v ¸2 ¤Ì t q Ç ô .
– ^! ¦ 3 _ Ò o ` ¦ Ä »t 10,000 > h_ Ò o s 9 כ ¹ . – Ò o _ ¼ ßl ô Ç
{ ^ 9 ¦2 ¤\ 100 > h _ Ò o ^ ¦2 ¤s $ © a ) ¦ . – Õ ª Q Ò o ` ¦$ © l 0 AK " f H 100 > h_ ¦2 ^ ¤s 9 כ ¹ . • Ò o s Å Òl % 3 u © \ ¸¿ ºÄ »t ½ Éà + ºe Ü ¼ Ø Ô> Ò o½ Éà + ºe . Õ ª Q 0 A\ V% ! Ò 3 o s & " f# Q^ ¦2 ¤\ ¾ º# Qn Û ¼ß ¼\ $ ÷ © & # Qe ´ § ú rn É Û ¼ß ¼] X Hs כ 9 ¹ . • Ò o s b> h^ ¦2 ¤\ $ ÷ © &# Qe H
Ä â º\ s à Ôo Ò o` ¦ 8 ¸ dlog2 (b)e1 ^ ¦2 ¤` ¦{ # 9 Q Ç ô . • é > ß Ò o : Ò o _ Ò o ` ¦ 6 x H~ Ód ½ Ü ¼ Ð n Û ¼ß ¼{ 9 Ø ¦4 §` ¦´ §s ú × ¦{ º 9 Ãe . 12.2.1.3 a cê Ë > + jé » > • # Q + " AI þ _ Ò o ` ¦ 6 x 8 ¸Y U ï× ¼ ¶ ú 9 { ÷ & ¦ ] j| cM ¨ : Ò o rÌ É t q ÷ &# Q ô Ç . • ¶ { ú 9 : ¶ { ú 9 ½ ÉY + U ï× ¼ r_ Ò ov ° כa` ú ¦s 6 x # o Ò ` ¦ Ò oô Ç .
12.2.2
º | ºt ß Å Ã
– ^ Ò o 1. a Ò o \ rF > t · §Ü ú ¼ r\ ¦& ] h X Ç0 ô Au \ ¶ { ú 9 ¦, Ò o \ a\ ¦Æ Ò Ç ô . 2. a Ò o \ rF > a. r\ ¦° ú r a\ É ¦ t HY U ï× ¼[ t+ þ '\ { ú ¶ ô 9 Ç . b. Ò o Y U ï× ¼ ° ú r É Ò ov ° `כ ú ¦ t H ¸ HY U ï× ¼_ í ' \ ¦Ä »t Ç ô s Y U ï× ¼\ í ' \ ¦Æ Ò Ç ô .
A-102 300 A-105 400 A-215 450 A-218 500 A-332 A-400
400 500 500 300 300 450
<Õ ªa > 12.1> Ë Ð ¸Ò o
– 9 {  ÒÒ o : y ^ ¦! 3 _ Ò o ` ¦Ä »t Ç ô ¦ &
ô ñ Ç .
• Ò ÅÒ o r{ É Â 9 ÒÒ o ` ¦Ä »t ½ Éà + ºe t ë ß Ð ¸Ò o r É ^ Ò o ` ¦Ä »t K ô Ç . Y U ï× ¼ H Ð ¸ o Ò ` ¦l ï rÜ ¼ Ð&
§ ñ =÷ > &# Qe t · §l ú M :ë H\ Ò ^ o ` ¦ 6 x t · §Ü ú ¼ Ò o\ ¸¹ §s ¡ ÷ &t § ú · H .
• ú ¶{ M 9 :ë H\ h D^ ¦! ` 3 ¦Ò t$ q
K í ô Ç D h^ ¦! _ 3 ' Y Í U ï× ¼_ K { © H ov Ò ° `כ ú ¦Ò o \ Æ Ò ô Ç . • ¶ { ú s 9 ^ ¦! _ 3 ' 0 Í Au \ ¶ { ú ÷ 9 &# Q ^ ¦! _ 3 Ò o ° `כ ú ¦ a ÐÌ t q ô Ç .
• Ò ÅÒ o r É _ í ' ë Ä ß »t ½ Éà + ºe t ë ß Ð ¸Ò o r° É ú r° É `כ ú ¦ t H ¸ HY U ï× ¼\ @ /ô Ç í ' \ ¦Ä »t K ô Ç .
• ] j: ] j½ ÉY + U ï× ¼ r_ Ò ov ° כa` ú ¦s 6 x # o Ò ` ¦ Ò oô Ç .
• s\ ¦0 AK Æ Ò & h ç ] ß é X > ß \ ¦ 6 x½ Éà + ºe . ¤, Ò £ 7 o Y U ï× ¼ Ðy Y U ï× ¼\ @ /ô Ç í ' ¦Ä \ »t t · § ú ¦, í ' [ t` þ ¦Ä »t HC \ ` P ¦ o . Õ ªa > 12.1 Ë Ð Ã ¸.
– ^ Ò o 1. a ú כ °` ¦ t HY U ï× ¼ r µ Ú\ 1 \ Ü O ¼ a\ ¦Ò o \ " f ] jô Ç . 2. a ° `כ ú ¦ t HY U ï× ¼ r ü @\ 8e Ü ¼ 1) Ò o Y U ï× ¼ ° ú r É Ò ov ° `כ ú ¦ t H ¸ HY U ï× ¼_ í ' \ ¦Ä »t Ç ô r_ í ' \ ¦ ] jô Ç . 1 dae:
• ú ¶{ õ 9 ] jr Ð ¸Ò o \ @ /ô ÇÌ t q rÅ É ÒÒ o " \ f ^ Ò o ` ¦ 6 x H
Ä â ºü <° ú . • Ð ¸Ò o ` ¦ 6 x Ò ov r É ` כ ¦ 6 s xK H| 9 _ \ ¦ Ø Ô> % o ½ Éà + ºe . Õ ª Q X <s ' Z s Û ¼
\ â @ /ô Ç { © ô © Ç ¸! QK ¼\ × ¦y כ © ¹ô Ç .
a Ð ß ¼ ° ú r É © r& É
à ñ º
2
B+ -² P t ß Å
Ã Ç ø m
12.3
• ¸× ¼_ Ò ov ½ É{ + ~ © ÓZ ½ O
• Ò o í H
{ 9 r
É { 9 _ ß ¼l & t & | 9 Ã º 2 ¤$
0 í xs p b # Q .
– í K 5 Ó ± ¿Þ « • ôé Ç ´ ß ú ¸× ¼\ þ j@ / n − 1> h_ Ò ov ° `כ ú ¦½ É{ + ½ © Éà + ºe . • ô Çß é´ ú ¸× ¼\ Hþ j è d(n − 1)/2e> h_ Ò ov ° `כ ú ¦ t ¦e # Q ô Ç . • y é ´ ß ú ¸× ¼\ e H Ò ov ° כ ú r× É æ^ ? o &t ÷ · § ú H . • Pn \ ¦s 6 x # é ´ ß ú ¸× ¼\ ¦ o Û ¼ à Ô+ AI þ ÐÄ »t ô Ç . s o Û ¼à Ô\ ¦s 6 x # ´ òÖ ¦& Ü h ¼ Ðí H Ò o` ¦½ Éà + ºe .
+
• B -à Ôo H ³F & V © o , 6 x÷ & HÒ o ½ ¨ ¸ s 9, Y U ï× ¼\ ¦ ] j ú ¶{ 9 8 ¸Õ ª$
í 0 x` p ¦> 5 qÄ Å »t ô Ç . • B+ -à Ôo Hç H+ AÔ þ ào (balanced tree)s . 7 ¤, À £ Ò à Ô ¸× ¼\ " f ¸ Hé ´ ß ú ¸× ¼ t _
â Ð_ U ´s ° ú . • B+ -à Ôo Ò o ¨ ½ ¸\ ¦ 6 x ¶ { ú 9 õ ] jM : ¸! QK × ¼ e ¦, / Nç B 8 ß ¤ £ \ " f ¸ ¸! QK × ¼ t e ë ß Å ÒÌ t q ÷ & H
{ 9 _
Ä â º\ H
{ 9 F
o ñ & 9 כ ¹\ l O M :ë H\ ^ & $ h
0 í x p r É ¸y 9 ~ % a . 12.3.1
– jí K 5 Ó ± ¿Þ «: é ´ ß ú ¸× ¼\ @ /ô Ç é > ß {  9 Ò o Ò % ½ i É` + ¦ô Ç . • q é ´ ß ú ¸× ¼_ ½ ¨ ¸ Hé ´ ß ú ¸× ¼ü <° ú . ë , q ß é ´ ß ú ¸× ¼_ í ' H
{ 9 _ Y U ï× ¼\ ¦ o v t · § ú ¦ ¸¿ º r É ¸× ¼\ ¦ o . • q é ´ ß ú ¸× ¼ Hþ j@ / n> h_ í ' \ ¦ 9 | à ºe Ü ¼9, þ j è dn/2e> h_ í ' \ ¦ 4 R ô Ç . • m> h_ í ' \ ¦ q é ´ ß ú ¸× ¼\ ¦ ¦ 9 # Ð . – í ' Pi (1 < i < n) H Ki Ð ¦ Ki−1 Ð H° ú H Ò ov `כ ú ° ¦ í Ê < H ¸× ¼\ ¦ o . – í ' Pm r Km−1 É Ð ß ¼ ° ú r É Ò ov ° `כ ú ¦ í Ê < H ¸× ¼\ ¦ o . – í ' P1 r K1 É Ð r É Ò ov `כ ú ° ¦ í Ê < H ¸× ¼\ ¦ o .
B+ -² P 8 ý º
P1
K1
P2
...
Pn-1
Kn-1
Pn
<Õ ªa > 12.2> B+ -à Ë Ôo _ ¸× ¼½ ¨ ¸
A-102 A-215 A-218
400 500 300
– Ç Ùç à ¿Þ « • rq É é ´ ß ú ¸× ¼ü <² o ú dn/2e> h Ð & h rÃ É º_ í ' \ ¦ | à 9 ºe . Õ ª Q þ j è¿ º> h_ í ' H 4 R ô Ç .
<Õ ªa > 12.3> n = 3 Ë B+ -à Ôo _ é ´ ß ú ¸× ¼_ \ V • B+ -à Ôo _ ¸× ¼½ ¨ ¸: Õ ªa > 12.2 Ë
• B+ -à Ôo _ \ V
– ô Ç ¸× ¼ Hþ j@ / n − 1> h_ Ò ov ° `כ ú ¦ . (K1 , K2 , . . ., Kn−1 )
– \ V) n = 3: Õ ªa > 12.4 Ë – \ V) n = 5: Õ ªa > 12.5 Ë
– ô Ç ¸× ¼ H þ j@ / n> h_ í ' \ ¦ . (P1 , P2 , . . ., Pn )
12.3.2
– ¸× ¼_ í ' à º\ ¦Õ ª ¸× ¼_ ½ Ö ©(fan out)s ô Ç .
B+ -² P ; c6 ¢Ç X ù m8 ý
• B+ -à Ôo \ ¦s 6 x # Ò ov V ¸ HY U ï× ¼ ¦¹ \ Ô 1 H~ ÓZ ½ O
– ¸× ¼? /_ Ò ov ° כ ú r É ¸2 § £ í HÜ ¼ Ð&
§ ñ = > &# ÷ Qe . 7 ¤, i < js £ Ki < K j s .
– ÿ ·4 1. À Òà Ô ¸× ¼\ ¦ Ò o # V Ð ß ¼t ß ë © r É Ò ov ° כKi \ ú ¦¹ Ô 1 H .
• é ´ ß ú ¸× ¼_ ½ ¨ ¸: Õ ªa > 12.3 Ë
• 1 ¹Ü Ô ¼ Pi \ ¦s 6 x # d ¸× ¼ Ðs 1 xô l Ç . • \ Ü O ¼ Pm ( ¸× ¼_ t } í ' )\ ¦ s 6 x # d ¸× ¼ Ðs 1 xô l Ç .
– ß é´ ú ¸× ¼_ í ' Pi H Ò ov ° כKi \ ú ¦ t HY U ï× ¼\ ¦ o v Ò ov ° כKi \ ú ¦ t H ¸ HY U ï× ¼\ @ /ô Ç í ' н ¨$
í a! ) QÖ ` ¿ ¦ o .
– ÿ ·4 2. s 1 xô l Ç ¸× ¼\ @ /K é > ß 1\ ¦ì Í4 ø ¤ Ç ô . é ´ ß ú ¸× ¼ t s 1 x½ l ÉM + : t s ` כ ¦ Í4 ø ì ¤ô Ç .
– Pn r É ¸ rA É ¤\ á e Hé ´ ß ú ¸× ¼\ ¦ o v 9, H í Ò o` ¦½ ÉM + : 6 x a ) . 3
<Õ ªa > 12.4> n = 3 Ë B+ -à Ôo _ \ V
<Õ ªa > 12.5> n = 5 Ë B+ -à Ôo _ \ V – · 4 ÿ 3. é ´ ß ú ¸× ¼\ " fVü <° ú r É Ò ov ° כ ú Ki \ ¦¹ Ô 1 H .
»t Ä ¸2 ¤Æ Ò ô Ç . Õ ª 6 §
£ { 9 \ D hY U × ï ¼\ ¦Æ Ò ¦ í ' \ ¦Ì t q ô Ç .
• 1 ¹¼ Ô Ü Pi \ ¦ s 6 x # Y U ï× ¼\ ¦ 1 ¹` Ô ¦ ºe à . • \ Ü O ¼ V ° `כ ú ¦ t HY U ï× ¼ \ O H ` כ ¦ _p ô Ç .
– ] j: Ò o` ¦ # ] j½ ÉY + U ï× ¼\ ¦¹ Ô 1
\ 9 { " f ] jô Ç . ] j aY ) U ï× ¼\ K { © H Ò ov ° `כ ú ¦ rY É U ï× ¼ \ Ü O ¼ s Ò ov ° `כ ú ¦é ´ ß ú ¸× ¼\ " f] j ô Ç .
•
{ 9 \ K> h_ Ò ov rF > À Òà Ô\ " fé ß ´ ú ¸× ¼ t _
â Ð Hþ j@ / dlogdn/2e Kes .
• ì½ r És + כ 9 ¹ô Ç
Ä â º: \ V1) Õ ªa > 12.4\ Ë “~ ÓC ½ & ” h ¦¶ ` { ú 9
• + A& þ Ü h ¼ Ðô Ç ¸× ¼ H nÛ ¼ß ¼^ ¦2 ¤_ ß ¼l ü <° ú ¸2 ¤ë ß H .
– Ò o` ¦ “~ ÓC ½ & ” h r “y É z © & ”õ h “#
î ; ”s h & e Hé ´ ß ú ¸× ¼\ ¶ { ú 9 ÷ &# Q ô Ç H ` כ ¦· à ú ºe . Õ ª Q ¶ { ú ½ 9 É/ + Nç B s ß \ O .
• Ð: xn Û ¼ß ¼^ ¦2 ¤_ ¼ ßl H 4 KBs . • Ò ov ° _כ ú ß ¼l 32 s à Ô ¦, n Û ¼ß ¼ í ' _ ß ¼l 8 s à Ô n r@ É /| Ì 100s Ä a ) .
– " fs ¸× ¼\ ¦ì r½ Éô + Ç . é ´ ß ú ¸× ¼\ ¦ì r ɽ + ½ ÉM + :\ Hn> h(l r n − 1> > h_ Ò ov ° כ ú D õ h° _)כ ú Ò ov ° ×כ ú æ\ " f dn/2e > h\ ¦l r > ¸× ¼\ ¿ º ¦ Qt \ ¦D h ¸× ¼ Ð` | .
•
{ 9 \ 1,000,000 > h_ Ò ov ° כs ú e ¦ . Õ ª Q dlog50 1, 000, 000e = 4 ¸× ¼ë ] ß X H a ) . 7 ¤, þ £ j@ /4^ ¦! ë 3 ] ß X H ¹ Ô` 1 ¦Ã ºe . 8½ ¨ À Òà Ô ¸¼ × H Ó ½ ! © Q( \ e Ü ¼Ù ¼ Ð3^ ¦ ! s 3 _ n Û ¼ß ¼] X Hë ß כ 9 ¹ . 12.3.3
– ì½ r É` + ¦ô Ç 6 §\ £ HD h ¸× ¼\ ¦à Ôo \ Æ Ò K ô Ç . D h ¸× ¼_ © r É Ò ov ° כ ú “# s
î ;& ”s h . Õ ª QÙ ¼ Ðs v ° `כ ú ¦Â Ò ¸ ¸× ¼\ Æ Ò K ô Ç . ë ß Â Ò ¸ ¸× ¼\ Æ Ò ½ É/ + Nç B s ß \ Ü O ¼ Â Ò ¸ ¸× ¼ ¸ì r½ É÷ + &# Q ô Ç .
B+ -² P ; c6 ¢n X Þ
Å Ã
– õ : Õ ªa > 12.6_ Ë (a)
• B+ -à Ôo \ " f ¶ { ú 9 õ ] j H Ò o Ð # Q§ > . ¶ { ú 9 ½ É + ¸× ¼\ / Nç B s ß \ Ü O ¼ ¸× ¼\ ¦Ñ t ü Ð ¾ º # Q ¦, ¸× ¼\ " fô Ç° `כ ú ¦ ] j # í ' _ à º dn/2e> hs Ð? / 9 ¿ º ¸× ¼\ ¦ ½ Ë + í ' \ ¦F ì rC K ô Ç . ] j½ ÉM + :\ HF ì rC Ð H ½ Ës + Ä º s 9, ½ Ë + rì É Í× ø ¼ r + A] þ j ¸× ¼ç \ ß ë ß sÀ Ò# Q .
• ì½ r És + כ 9 ¹ô Ç
Ä â º: \ V2) Õ ªa > 12.6_ Ë (a)\ “y © ¤& ¡ · ”` h ¦¶ { ú 9 – s
Ä â º\ Hé ´ ß ú ¸× ¼ç ì ß r½ É + as ) Ê ê “~ Ó ½ & C ”s h Â Ò ¸ ¸× ¼\ Æ Ò Ð¶ { ú 9 ÷ &# Q ô Ç . Õ ª Q Â Ò ¸ ¸× ¼\ Ø æì rô Ç/ Nç B s ß \ s O Ò Â ¸ ¸× ¼ ¸ì r½ É÷ + &# Q ô Ç .
• ½ Ës + ì r½ És + כ 9 ¹\ O H
Ä â º
– qé ´ ß ú ¸× ¼\ ¦ì r½ ɽ + ÉM + :\ Hn> h_ Ò o ° v ×כ ú æ\ " f dn/2e > h\ ¦D h ¸× ¼ Ð` | . ª Õ 6 §s £ × æ © r° É כ ú rD É h ¸× ¼\ " f j ] ¦Â Ò ¸ ¸× ¼ Ð` | .
– ¶ { ú 9 : Ò o` ¦ # ú ¶{ ½ 9 É + Ò ov ° כs ú í Ê÷ < &# Q Hé ´ ß ú ¸× ¼\ ¦¹ Ô 1 H . s p ov Ò ° כs ú e Ü ¼
{ 9 \ D hY U ï× ¼ë Æ ß Ò Ç ô . \ Ü O ¼ é ´ ß ú ¸× ¼\ Ò ov ° `כ ú ¦D h Ð Æ Ò ô Ç . s M : Ò ov ° כs ú &
§ ñ = > aí ) H" f\ ¦
– õ : Õ ªa > 12.6_ Ë (b) 4
<Õ ªa > 12.6> Õ Ë ªa > 12.4\ Ë “~ ÓC ½ & ” ¶ h { ú 9
– Ò o` ¦ # “ r& @ ”s h e H ¸× ¼\ " f “ r& @ ”` h ¦ ] j Õ ª ¸× ¼ H I © a ) .
– " fs ¸× ¼ Hà Ôo \ " f] j ÷ &# Q ô Ç . s ¸× ¼\ ¦] j ô Ç 6 §\ £ HÂ Ò ¸ ¸× ¼_ í ' \ ¦] j K ô Ç . s M : í ' \ ¦] j K { © ¸× ¼_ í ' à º Ø æì r t § ú · .
<Õ ªa > 12.9> ª Ë Õa > 12.6\ Ë " f “#
î ;& ” h ] j
– s
Ä â º\ H+ A] þ j ¸× ¼\ ¦ ô Ç . + A] þ j ¸ ¼\ × Ã º6 x½ É/ + Nç B s ß e Ü ¼ z r É Ò ov ° כ ú ¦+ ` A] þ j ¸× ¼ Ð` l ¦, l r > ¸× ¼ H ] j Ç ô . s ] j\ @ /K Â Ò ¸ ¸× ¼_ í ' ] j÷ & ¦ 9 כ ¹ ° ú r~ É ÓZ ½ Ü O ¼ Ð ½ Ë + Ç ô .
+
• n = 4 B à Ô o\ @ /ô Ƕ { ú 9 _ ¢ ¸ r\ É V: Õ ª > 12.7ü Ë a <Õ ªa > 12.8 Ã Ë Ð ¸. • ½ Ës + 9 כ ¹\ O H
Ä â º: V \1) Õ ªa > 12.6_ Ë (a)\ " f “#
î ;& ”` h ¦ ] j
– õ : Õ ªa > 12.10 Ë Ð Ã ¸.
– Ò o` ¦ # “#
î ;& ”s h e H ¸× ¼\ " f “#
î ;& ”` h ¦ ] j ª Õ ¸× ¼ H I © a ) .
– " fs ¸× ¼ Hà Ôo \ " f] j ÷ &# Q ô Ç . s ¸¼ ×\ ¦] j ô Ç 6 §\ £ HÂ Ò ¸ ¸× ¼_ í ' \ ¦] j K ô Ç . # l " fK { © í ' \ ¦] j K ¸ ¸× ¼\ Ø æì rô Ç í ' e Ü ¼Ù ¼ Ðs Ü כ ¼ Ð] j H¢ a« Ñ a ) .
– õ : Õ ªa > 12.9 Ë Ð Ã ¸.
<Õ ªa > 12.11> Õ Ë ªa > 12.6\ Ë " f “ r& @ ” h ] j
• ½ Ës + 9 כ ¹ô Ç
Ä â º: \ V3) Õ ªa > 12.6_ Ë (a)\ " f “ r& @ ”` h ¦ ] j
– Ò o` ¦ # “ r& @ ”s h e H ¸× ¼\ " f “ r& @ ”` h ¦ ] j Õ ª ¸× ¼ H I © a ) .
<Õ ªa > 12.10> ª Ë Õa > 12.9\ Ë " f “ r& @ ” h ] j
– " fs ¸× ¼ Hà Ôo \ " f] j ÷ & ¦, Õ ª כ  _ Ò ¸ ¸× ¼_ í ' ¸] j a ) . s õ Ò Â ¸ ¸× ¼_ í ' à º Ø æì r t · § ú .
• ½ Ës + כ 9 ¹ô Ç
Ä â º: \ V2) Õ ªa > 12.9\ Ë " f “ r @ & ”` h ¦ ] j 5
<Õ ªa > 12.7> n = 4 Ë B+ -à Ôo \ @ / ô¶ Ç { ú 9 – Õ ª Q + A] þ j¸ × ¼` ¦ # ¸Ã º6 x½ É/ + N B s ß ç \ O . + A] þ j¸ × ¼ à º6 x½ Éà + º\ Ü O ¼ y + A] þ j ¸× ¼ ° ú rÃ É º_ í ' \ ¦ t ¸ 2 ¤ í ' \ ¦F ì rC _ ° כë ú + ß A þ ] j ¸× ¼ РÒ' t ¦ r : . s F ì rC H Â Ò ¸ ¸× ¼_ Ò ov ° _כ ú
` â ¦כ ¹½ ¨ô Ç .
• B /ç N ß ¸6 Ö x ¦ ` Ð ´ òÖ ¦& Ü h ¼ Ð l 0 AK ¶ { ú õ 9 ] jr F ì rC K ¿ º ¸× ¼ ° ú rÃ É º_ Y U ï× ¼\ ¦ t ¸2 ¤ô Ç . t ë s ß 1 x÷ l & HY U ï× ¼ ´ § ú t q 6 x ¸Õ ªë ß u7 p x ô £ Ç .
12.4
– õ : Õ ªa > 12.11 Ë Ð Ã ¸. 12.3.4
ËX N X ÄA ì 0Ë Å S
• í H
{ 9 ¸f _ é & ß h rX É <s ' \ ¦ Ò o l 0 A Ò K o ½ ¨ ¸\ ¦] H X K Ù ¼ Ðn Û ¼ß ¼{ Ø 9 ¦§ 4 Æ s Ò Ð èכ ¹ a ) H s כ . K d
ç rÒ É o ½ ¨ ¸ @ \ /ô Ç] X H\ s O X <s ' \ ¦ Ò o½ ÉÃ + ºe .
B+ -² P
ø Ǻ m Ç Ä k
• Ò o ÷ rë ß m z ´] jY U ï× ¼ ¸ B+ -à Ôo + AI þ Ð
{ 9 \ $ © ¦ ao ' ½ ÉÃ + ºe . • B+ -à Ôo
{ 9 ¸f \ " f H à Ôo _ é ´ ß ú ¸× ¼\ í ' @ / \ Y U ï× ¼\ ¦ $ ô © Ç .
12.4.1
0S A
ø Ç m ºÇ k Ä
• Ð: xY U ï× ¼ H í ' Ð ß ¼l M :ë H\ é ´ ß ú ¸ × ¼\ $ ½ © ÉÃ + ºe HY U ï× ¼_ Ã º H í ' _ Ã º Ð H& h .
• Kr
{ 9 ¸f \ " f HY U ï× ¼_ Ò ov ° \כ ú @ / ÇK ô r ° `כ ú ¦> í ß # Õ ªY U ï× ¼ e Hn Û ¼ß ¼ ¦2 ^ ¤_ Å Ò è\ ¦ Ð% ` 3 ¦Ã ºe .
• Y U ï× ¼_ ¶ { ú õ 9 ] j H B+ -à Ôo Ò o ½ ¨ ¸ü < ° ú .
• Q !Ö (bucket)s ¿ ê Í ø s _ © Y U ï× ¼\ ¦$ ½ © É + ºe à H$ é © 0 ß A\ ¦´ ô ú Ç . 6
18
3
16
18
20
25
23
25
(a) before
3
35
30
32
35
44
50
32
16
18
25
18
20
35
23
25
30
32
34
35
44
40
44
50
35
44
50
(b) after inserting 34 to a, V=32, V =32 35
3
16
18
25
18
20
44
23
25
30
32
35
(c) after inserting 40 to a, V=44, V =35
25
3
16
18
23
18
20
35
23
24
25
30
32
50
(d) after inserting 24 to a, V=23, V =25
<Õ ªa > 12.8> n = 4 Ë B+ -à Ôo \ @ / ô¶ Ç { ú 9 • K ¸ H Ò ov ° _כ ú | ½ 9 Ës + ¦, B ¸ H! QÖ ¿ Å Ò è_ | 9 ½ Ës + K r Êà < º h H K\ " f B Ð_ Ê < à ºs . 7 ¤, % £ 6 §Â £ Ò' ¦&
ñ aà ) º_ ! QÖ ` ¿ ¦ 6 xô Ç .
• V \1) account a> ' \ " f “t & " h
” 5 î q$ Å
` í ¦ Ò ov Ð 6 x½ ÉM + : 26> h_ ! QÖ ` ¿ ¦ 6 x # i P :%
ò H ë \ ¦ i P :! QÖ \ ¿ 6 x HK r ÊÃ < º\ ¦ 6 x l Ð &
ñ % i . s כ rç É H{ ì 9 r í m . ‘X’ Ðr ÷ & Ht & " h
î r É _ \ l O M :ë Hs .
• Ò ov ° כs ú Ki U Y ï× ¼\ ¦¶ { ú 9 l 0 AK " f H $ h(Ki )\ ¦> í ß # ! QÖ _ ¿ Å Ò è\ ¦% 3 r É 6 § £ Õ ª! QÖ \ ¿ Y U ï× ¼\ ¦ú ¶{ ô 9 Ç . • Ò ov ° כs ú Ki Y U ï× ¼\ ¦ Ò o l 0 AK " f H $ h(Ki )\ ¦> í ß # ! QÖ _ ¿ Å Ò è\ ¦% 3 r É 6 § £ Õ ª! QÖ \ ¿ " fY U ï× ¼\ ¦ Ò oô Ç .
• V \2) “ï Ó ß o” 5 q$ Å
` í ¦ Ò ov Ð 6 x½ ÉM + :ï Ó ß o_ 0 x# p 0 3 A 1Â Ò' 100,000s . s # 0 3 A\ ¦
S ñ & X > 10 > h%
% ò Ü i ¼ Ð ¾ º ì r í ^ Hç H ì 9 { r ís t ë ï ß Ó ß os 1\ " f 10,000 s
Ä â º 90,001\ " f 100,000 s
Ä â º Ð ´ §Ü ú ¼Ù ¼ Ð ü ½ s m .
• Ò ov ° כs ú Ki Y U ï× ¼\ ¦ ] j l 0 AK " f H $ h(Ki )\ ¦> í ß # ! QÖ _ ¿ Å Ò è\ ¦% 3 r É 6 § £ Õ ª! QÖ \ ¿ " fY U ï× ¼\ ¦ Ò o # ] jô Ç .
• v° כs ú ° ú rY É U ï× ¼ ´ §Ü ú ¼ K r Êà < ºü < © a ' s O \ : ¤& £
! ñ QÖ s ¿ r! É QÖ ¿ Ð @ © /& Ü h ¼ д § ú rY É U ï× ¼\ ¦½ É{ + ~ © Î> à a ) .
12.4.1.1 B k Á þÊ Á
12.4.1.2 ! a3 i 1 Ó Ï +% h
• K r Êà < º_ Ø ¦§ _ 4 ì r í H 6 §õ £ ° ú ô Ç .
• ! QÖ ¿ g Å >s Ë µ ÏÒ 1 t q Hs Ä »
– ì r í ! C
(uniform)K ô Ç . 7 ¤, y £ ! QÖ ¿ ° ú rÃ É º_ Ò ov \ ¦½ É{ + K © ô Ç .
– Q !Ö _ ¿  Ò7 ¤: nB ! á QÖ _ ¿ 8 xà ú ºs ¦, nr s $ | © c8 ¨ xY ú U ï× ¼Ã ºs 9, fr s ! QÖ { ¿ $ © © cà ¨ | ºe HY U ï× ¼_ à ºs nB > nr /fr s Q # ô Ç . Õ ª X <8 x$ ú | © cY ¨ U ï× ¼Ã º\ ¦ V8 \ ¤ £ l ~ t 1 · § ú .
– ì r í w ñ d K ô Ç . 7 ¤, £ Ò ov ° _כ ú ì r íü < © a\ ' s O ¨
ç î H& Ü h ¼ Ðy ! QÖ \ ¿ ° ú r É Ã º_ ° כs ú ½ É{ + ÷ © &# Q ô Ç . 7
– q @ /g A(skew): # Q ! " QÖ \ ¿ r! É QÖ ¿ Ð ´ § ú rÃ É º_ Y U ï× ¼ ½ É{ + | © cà ¨ ºe . 7 ¤, £ r! É QÖ ¿ r É f / Nç B s ß z e t ë # ß Q ! " Q ¿ Ö r É g Å >s Ë µ ÏÒ 1 t½ q Éà + ºe . q @ /g As µ ÏÒ 1 t q Éà + ½ ºe Hs Ä » H 6 §õ £ ° ú .
–
{ ß 9 ¼l 7 x £ Ê\ < Å Òl & Ü h ¼ ÐK ½ r ¨ ¸\ ¦ õ H . s F ½ ¨$
í rK É r ÊÃ < º ¦D \ h\ v> × K þ 9,
{ 9 \ e H ¸ HY U ï× ¼\ @ /K K r ° `כ ú ¦> í ß #
{ 9 ¦D ` h\ v> ½ ¨$
K í ô Ç . s כ rr É ç s ß ´ § ú s èכ ¹÷ &9, s l ç 1 ß xî l \ ß H
{ ] 9 X H` ¦ ] C jK ô Ç .
• ú ° r É Ò ov ° `כ ú ¦ Y U ï× ¼ # Q he > ` ¦Ã ºe . • K r Êà < º qç H{ ì 9 r í{ à 9 ºe .
• l 1& x K h d
ç r
É { 9 _ F ½ ¨$
\ í s O X <s ' Z s Û ¼_ ¼l ß o\ ¦Ã º6 x½ Éà + ºe HK d
l ç Z s O .
• ! QÖ ¿ g Å > 0 Ë x$ p
` í ¦þ j è o l 0 AK ! QÖ _ ¿ Ã º H Ð: x 6 §õ £ ° ú s &
ñ a ) .
12.5.1
(nr /fr ) × (1 + d) # l " f d H íõ כ ¹ (fudge factor)s ô Ç . Ð : x 0.2 &
ñ ¸_ ° `כ ú ¦ 6 xô Ç .
i1 hash prefix
i
• ! QÖ ¿ g Å > Ë r É g Å >! Ë QÖ ` ¿ ¦s 6 x # K ô Ç . ! Q s ¿ Ö T ` q g Å >! Ë QÖ ` ¿ ¦ # 6 xô Ç . s ` כ ¦ Ó ¥ Ï >Ú o
' r ×ß
(overflow chaining)s ô Ç .
00 01 10 11
bucket 2
i3
bucket 3
<Õ ªa > 12.12> { Ë 9 ì ÍS ø X 0 © xK p r ½ ¨ ¸
• X <s ' Z s Û ¼ H` WK d
` ç ¦ ñô Ç . s כ r É > h~ ÓK ½ d
\ ç " f HY U ï× ¼ ] jq 6 xs B Ä º9 tà þ º e .
• l 1& x K h d
\ ç " fK r ÊÃ < º H&
& ñ K h d
õ ç ð Í ø t Ðç H{ 9 K 9, ½ü K ô Ç . Õ ª Q 1 x l K h & d ç
\ " fK r ÊÃ < º H @ © /& Ü h ¼ ÐB Ä ºH # 3 A° 0 `כ ú ¦Ò t$ q
ô í Ç . \ V\ ¦[ t# þ Qbq à Ô&
à ñ º\ ¦Ò t$ q
í 9, s q à Ô_ ° כ ú r É + A& þ Ü h ¼ Ð 32 q à Ôs .
• t F K t [ " O
ô î ÇK d ç
~ ÓZ ½ _ O ë H] j Hr Û ¼% ` 7 ¦ ½ ¨ ³½ & ÉM + :K r ÊÃ < º\ ¦ × K þ 9, s ÊÃ < º\ ¦
â l # Q§ > H s כ . s X > O ô Ç [ & O
ñ ÇK ô r ÊÃ < º\ ¦
½ â ÉÃ + º\ O H
Ä â º\ ¦Ç a B \ b s ô Ç .
• 0 xô p Ç ¸ HK r Êà < º_ ° כ ú ! QÖ ` ¿ ¦ë [ ß tt þ § ú · H . • bq à ÔK r ° ×כ ú æÕ ª _ כ { 9  Òë ß 6 xô Ç . X <s Z ' s Û ¼_ ß ¼l Ê\ < 6 x Hq à Ô º à ô Ç . # Q í " Hç \ ß 6 x H q à Ô Ã º\ ¦ i 9, i q à Ô° כ ú r! É QÖ Å ¿ Ò è_ s ^ ¦\ @ /ô Ç ¸á Ô! Ü Ó ¼ Ð 6 x a ) . Õ ªa > 12.12 Ë Ð Ã ¸.
A 0S t ß Å Ã
• K d ç
l Z O r
É { 9 ¸ f ÷ rë ß m Ò o ½ ¨ ¸\ 6 x| cà ¨ ºe . • K r Ò o ½ ¨ ¸ H Ð ¸Ò o ½ ¨ ¸\ ë ß 6 x a ) .
{ 9 ¸f ^ K r ÊÃ < º\ ¦s 6 x # ¸f ÷ &# Q Ü e ¼ Z > ¸ _Ò o s כ 9 ¹\ O .
12.5
bucket 1
i2
bucket address table
• Å g > Ë ~ ÓZ ½ ` O ¦ 6 x H K d
l ç Z ` O ¦ Z { t B b (closed hashing)s ô Ç . s õ כ q §÷ & H 5 × ' B (open hashing) b rQ É !Ö \ ¿ / Nç B s ß \ Ü O ¼ r! É QÖ ` ¿ ¦ 6 xô Ç . Ð: xÕ ª 6 §! £ QÖ ` ¿ ¦ 6 x HX <s ~ ÓZ ½ ` O ¦¤ >Ì n C f ¿ (linear probing) ÓZ ½ ~ s O ô Ç . s ü @\ K r Êà < º\ ¦ r ¢ ¸> ß í H~ ÓZ ½ ¸ O e .
12.4.2
KT 6 ' [ º
• iq à Ôë e ß Ü ¼ ! QÖ Å ¿ Ò è_ s ^ ¦_ Ó` ½ ¦¹ Ô` 1 ¦Ã º t e ë { ß 9 º _ _ s ^ ¦ Ó[ ½ ts þ ° ú r! É QÖ ` ¿ ¦ o ´Ã ~ ºe . s X > O ° ú r! É QÖ ` ¿ ¦ o v H Ó ½ r É ¸¿ º° ú rK É r ] ¿ X º (prefix)\ ¦ t 9, s ] ¿ X º H i Ð U ´s & ` h ¦Ã ºe .
ÞX Ò Ä ìA 0Å Ë S
• &
& ñ K h d ç
_ ë H] j& h
• y! QÖ õ ¿ 6 x a/ ) N: B x] ¿ X º _ U ´s \ ¦ ? / H&
à ñ º° כj` ú ¦ aô ' Ç .
–
{ 9 ß ¼l \ ¦ ÓÜ ½ ¼ ÐK r ÊÃ < º\ ¦ × þ % i X <s ' Z s Û ¼ & f \ $
0 í x p s .
• ñ &Ã
º jü < a÷ ' & H! QÖ ` ¿ ¦ ij ! QÖ jü ¿ < a÷ ' & H! QÖ Å ¿ Ò è_ s ^ ¦_ ÓÃ ½ º H 6 §õ £ ° ú .
– l @ /ô Çß ¼l \ ¦ ÓÜ ½ ¼ ÐK r ÊÃ < º\ ¦ × þ % i íl \ / Nç B z ß q © ´ § ú .
2i−ij 8
12.5.2
ù Ç m8 ýÑ ÷n Þ
Å Ã 1
• Ò ov ° כs ú Kl Y U ï× ¼\ ¦ Ò o l 0 AK " f H $ h(Kl )\ 0 © Aiq à Ô\ ¦2 [ô Ç . Õ ª 6 §K £ © { H! QÖ Å ¿ Ò è _s ^ ¦_ Ó\ ½ e H í ' \ ¦ s 6 x # ! QÖ ` ¿ ¦¹ Ô 1 ç ß .
0 1 1 A-101 A-110
• Ò ov ° כs ú Kl Y U ï× ¼\ ¦¶ { ú 9 l 0 AK " f H Ò oõ ° ú r] É X \ ¦s 6 x # Y U ï× ¼ ¶ { ú | 9 c ¨ ! QÖ ` ¿ ¦¹ Ô 1 H . s ! QÖ \ ¿ / Nç B s ß e Ü ¼ Y U ï× ¼ Hs ! QÖ \ ¿ ¶ { ú 9 a ) . ! QÖ \ ¿ / Nç B s ß \ Ü O ¼ D h ! QÖ ` ¿ ¦ ë [ ß t# þ Q l r! > QÖ \ ¿ e HY U ï× ¼\ ¦ F ì rC ô Ç . s : M 6 x H iq à Ô\ ¦7 x r £ ~ ´ 9 כ ¹ \ O Ht K ô Ç .
2 00 01 10 11
• \ V) 6 §õ £ ° ú r account É a> ' e . t& " h
î z © y & h · © y ¤& ¡ h · © y ¤& ¡ h
î # ;& h r& @ h r& @ h r& @ h z ´& h ;î & ß h
ïÓ ß o 750 500 600 700 400 900 700 700 700
h(t & " h
) î 0010 1101 1111 1011 ... 1010 0011 1010 0000 ... 1100 0111 1110 1101 ... 1111 0001 0010 0100 ... 0011 0101 1010 0110 ... 1101 1000 0011 1111 ...
0 A-217 A-101
750
500 600
2 A-101 A-110
750
500 600
700
“A-102” Y U ï× ¼_ K r ° _כ ú ' ¿ Í ºq à Ô 11s Ù ¼ “# Ð
î ;& ” Y h U ï× ¼ [ t# þ Qe H! QÖ \ ¿ ¶ { ú 9 a ) . “A-201” ¸ “A-102”ü < ð Í t ø а ú r! É QÖ ¿ [ \ t# þ Q t ë / ß Nç B s ß \ O ¦ i = i2 s Ù ¼ Ð QÖ ! ` ¿ ¦ r ì r½ Éô + Ç . õ H 6 §õ £ ° ú . 0000 1111 1010 1101 1011 0001
3 000 001 010 011 100 101 110 111
s M :! QÖ \ ¿ ¿ º> h_ Y U ï× ¼ë $ ß ½ © Éà + ºe ¦ &
½ ñ ÉM + :(z ´] jX <s ' Z s Û ¼\ " f Hô Ç! QÖ \ ¿ ´ § ú rÃ É º_ Y U ï× ¼\ ¦$ ô © Ç ), a> ' _ y È Òe ¦ ¦¶ ` { ú 9 Hõ &
ñ r É 6 §õ £ ° ú . $ “A-217”õ “A-101”` ¦¶ { ú 9 ! QÖ s ¿ T `ð q Í ø . 0
1 A-217
2 A-215
t & " h
\ î @ /ô ÇK r ° כ ú r É 6 §õ £ ° ú . t & " h
î z © y & h © ¤& ¡ · y h
î # ;& h r& @ h z ´& h ;î & ß h
“A-215” Y U ï× ¼_ K r ° _כ ú ' q Í à Ô 1s Ù ¼ Ð sY U ï× ¼ H “y · © ¤& ¡ ” Y h U ï× ¼[ ts þ [ t# þ Qe H! Q \ ¿ Ö ¶ { ú 9 ÷ &# Q ô Ç . Õ ª Q / Nç B s ß \ O ¦i = i1 s Ù ¼ Ð r ì r½ É + # ô Ç . õ H 6 §õ £ ú ° .
– i = ij : K r q à Ô_ U ´s \ ¦Z to þ ¦! QÖ ` ¿ ¦ r½ ì Éô + Ç . – i > ij : K rq à Ô_ U ´s \ ¦Z tw þ = n כ 9 ¹ \ O ¦, ! QÖ ë ¿ ì ß r½ É + a ) . Ñ ts ü _ © ! QÖ ¿ Å Ò è_ s ^ ¦ Ós ½ ° ú r! É QÖ ` ¿ ¦ o v H
â Ä ºs .
>ý a ñ A-217 A-101 A-110 A-215 A-102 A-201 A-218 A-222 A-305
1 A-217
1 A-217
2 A-101 A-110 3 A-215
3 A-102 A-201
750 500
“A-110”` ¦¶ { ú 9 ½ É/ + Nç B s ß \ Ü O ¼9, i = i0 s Ù ¼ Ð ! QÖ ` ¿ ¦ì r½ É + # ô Ç . s \ ¦0 AK K r ° _כ ú 6 x÷ & Hq à Ôà º\ ¦Z t þ 9 ô Ç . “y z © & ”\ h K { © K / '° _כ ú ' q Í à Ô 0s ¦, “y · © ¤& ¡ ”\ h K { K © / '° _כ ú ' q Í à Ô 1s Ù ¼ Ð, s ` כ ¦l ï rÜ ¼ Ðì r Éô + ½ Ç . õ H 6 §õ £ ° ú .
750
500 600
700
400 900
“A-218” r¶ É { ú 9 | c/ ¨ Nç B s ß \ O . Õ ª Q s
Ä â º \ H ¸¿ º° ú rt É & " h
` î ¦ t Ù ¼ ÐK r _ q à Ô ¦Z \ t þ 9 ¸ è6 xs \ O . s
Ä â º\ H g Å >! Ë QÖ ` ¿ ¦ 6 xK ô Ç . “A-218”õ Qt Y U ï× ¼\ ¦ ¸¿ º { ú ¶ ô 9 Ç õ H 6 §õ £ ° ú . 9
1 A-217 A-222
3 000 001 010 011 100 101 110 111
2 A-101 A-110 3 A-215 A-305 3 A-102 A-201 3 A-218
• Q !Ö ` ¿ ¦] H X l \ ! QÖ Å ¿ Ò è_ s ^ ¦` ¦] X H K ô Ç . &
& ñ K h d ç
\ " f Hs Æ Ò Ð Ã ¸ 9 ¹\ כ O . Õ ª Q s Æ Ò Ð Ã ¸_ כ 9 ¹$
í r$ É
0 í x p \ H%
ò Ó` ¾ ¦p u t · § ú H .
750 700
500 600
12.6 700 350
•
{ 9 ¸f õ Ò o l Z ` O ¦ × ½ þ ÉM + : ¦ 9 Ó ½ – Ò Ål & h Ò o ¢ ¸ HK r ¸f _ F ½ ¨$
q í xs 6 à º6 x½ Éë + ô ß Ç ? B + à Ôo Ò o ½ ¨ ¸ü < x& l 1 K h d ç
{ ½ 9 ¨ ¸ HF ½ ¨$
½ í É + 9 כ ¹ \ O .
400 900
700
– ¶ { ú õ 9 ] j_ @ © /& h ¸ H? – j þ ] H X r ç ` ß ¦ BÒ t q " f¨
ç î H] H X r ` ß ç ¦þ j& h o H s כ a ~ % r ? É
t & " h
s î “~ ÓC ½ h &” 6 §Y £ U ï× ¼\ ¦# l \ Æ Ò Ð¶ { ú 9 ½ É +
Ä â º` ¦Ò ty q # Ð .
– # Q 7 " xÀ á Ó_ | _ 9 ´ §s ú | _ 9 ÷ & H ? • \ V1) 6 §õ £ ° ú r| É 9 _ \ ¦´ §s ú ô Ç ¦ .
(“A-333”,“~ ÓC ½ & ”,300) h
select A1 , A2 , . . . , An from r where Ai = c
¢ ¸ô Ç h(“~ ÓC ½ & ”)=0101 ... 1111 s h . Õ ª Q “A-217”s [ t# þ Qe H' Í P :! QÖ \ ¿ [ t# þ Q HX </ Nç B s ß \ O ¦ i > ij s Ù ¼ ÐK r U ´s _ 7 x £ \ s O ! QÖ ë ¿ ì ß r½ Éô + Ç .
3 000 001 010 011 100 101 110 111
2 A-217 A-222 2 A-333
2 A-101 A-110 3 A-215 A-305 3 A-102 A-201 3 A-218
12.5.3
Ëc N X Çt ß Ã ÅÊ ÝA 0Ë Å S8 ýR w
Ai _ ° כs ú c Y U ï× ¼\ ¦¹ Ô 1 ô Ç . s
Ä â º\ K H r ¸f s &
§ ñ =Ò > o ½ ¨ ¸\ q K Ä ºÃ º . K r ¸f \ " f H¨
ç î H Ò or ç ß rX É <s ' Z Û s ¼ß ¼l ü <1 qw l & n s h t ë & ß
§ ñ =Ò > o ½ ¨ ¸ Hß ¼ \ l ÐÕ ªq Y Vô Ç . ë & ß
§ ñ =Ò > o ½ ¨ ¸ Hþ j r ç s ß r a> ' \ e H Ai ° _כ ú à º\ ÐÕ ªq Y V t ë K ß r ½ ¨ ¸ HÕ ªz q ª Y Vô Ç . Õ ª Q K r ¨ ½ ¸\ " f Hþ j r ç ß r É _ µ ÏÒ 1 t÷ q &t · §Ü ú ¼Ù ¼ Ð ^ & Ü h ¼ ÐK r ½ ¨ ¸ü <s ü <° ú r| É 9 _ \ 8 ºÃ Ä º .
750 700
300
500 600
• \ V2) 6 §õ £ ° ú r| É 9 _ \ ¦´ §s ú ô Ç ¦ .
700 350
select A1 , A2 , . . . , An from r where Ai ≤ c2 and Ai ≥ c1
400 900
s
Ä â º\ H# Q # " 0 3 A? /\ e H ¸ H° `כ ú ¦¹ Ô 1 ô Ç . &
§ ñ =Ò > o ½ ¨ ¸_
Ä â º\ H c2 \ ¦¹ Ô 1 r É §\ £ 6 Hí H & Ü h ¼ ÐÕ ª 6 §° £ [כ ú t` þ ¦~ > 1 ¹ Ô` 1 ¦Ã º e . Õ ª Q K r ¸f \ " f H c2 \ ¦¹ Ô 1 r É 6 §\ £ ª Õ 6 §° £ `כ ú ¦¹ Ôl 1 # Q§ > . o Û ¼à Ô\ ¦Æ Ò ÐÄ »t ½ Éà + ºe ¦Ò ty q ½ Éà + ºe t ë K ß r Êà < º H ½ü Ù ¼ ÐV o , ( 4 Re # Q´ § ú r! É QÖ ` ¿ ¦{ # 9 Q ô Ç .
700
 ¥U \ sÅ ê ÄÊ k ÝR w
• S X 0 © xK p d
_ ç & © h –
{ 9 ß ¼l 7 x £ # ¸$
0 í xs p b # Qt t · § ú H .
12.7
– p A \ ¦0 AK ! QÖ / ¿ Nç B ` ß ¦S X ÐK Z ~` ¦ כ 9 ¹ \ s O Õ ªM : 1 x& l Ü h ¼ н É{ + ½ © Éà + ºe .
SQL; c" et ß ÅX Ã Ë8 N ý
• < Xs ' Z s Û ¼r Û ¼% 7 s 1 xÜ l ¼ Ð# Q Ò " o [ t` þ ¦ »t Ä ½ Ét + &
½ ñ ÉÃ + ºe t ë Õ ß ª Q ` ¦ r É &
ñ ¦ ` H כ r~ É t 1 · § ú .
• ! QÖ Å ¿ Ò è_ s ^ ¦` ¦» Ät l 0 Aô Ç/ Nç B s ß כ 9 ¹ t ë ß 6 x HK r ° _כ ú 0 xô p Ç] ¿ X º ° כ ú _ í ' ë Ä ß »t Ù ¼ Ðq §& ß h ¼t · § ú .
• SQL ³ ðï r\ HÒ o _ Ò t$ q
õ í ] j l 0 x` p ¦j ]/ N B t · §t ú ë @ ß /Â Òì r_ X <s ' Z s Û ¼ Hs l p 0 x ¦] ` j/ Nô B Ç . 10
• Ò o _ Ò t$ q
í
| s _ 9 \ ¦ (t & " h
,ï î Ó ß o) Ò o ` ¦s 6 x # ¹ Ô 1 ¦ t & " h
s î “Perryridge” Ð ry É t & h ï Ó ß os 1000 > ý a\ ¦¹ Ô 1 ô Ç . q § m 1 x p ñe % Ü 3 ¼ (t & " h
,ï î Ó ß o) Ò o ` ¦s x 6 # ~ > 1 ¹ Ô` 1 ¦Ã ºe t ë s ß
Ä â º\ H´ § ú rn É ¼ß Û ¼{ Ø 9 ¦§ s 4 כ 9 ¹ .
create index Ò o s 2 § £ on a> ' s 2 §(< 5 £ q$ Å
3 í q2 l ¤ >) # l " f “5 q$ Å
l í q 32 ¤” r É Ò ov \ ¦ ½ ¨$
ô í Ç a> ' _ 5 q$ Å
[ í t` þ ¦´ ô ú Ç . Ò ov Ê ê Ðv e ` ¦ l 0 AK " f HÒ o ` ¦Ò t$ q
½ í ÉM + : unique\ ¦ 6 xô Ç .
12.8.3
create unique index Ò o s 2 § £ on a> ' s 2 §(< 5 £ q$ Å
3 í q2 l ¤ >)
12.8
ú ÞW n ± É¿ n < R
12.8.1
ú Þ n mø ÇW m t ß Å Ã
• \ V) account a> ' “t & " h
”õ î “ï Ó ß o”\ @ /ô ÇÒ o ` ¦y y Ä »t ô Ç ¦½ É: + M, 6 §| £ _ 9 _ % o \ ¦ ty q Ò # Ð .
grid array 4 bucket i 3 2 1
bucket j
0
select > ý a ñ from account where t & " h
=“Perryridge” and ï î Ó ß o = 1000
0
s | _ 9 H 6 §õ £ ° ú r[ É j t ~ ÓZ ½ Ü O ¼ Ð% o ½ É + Ã ºe .
1
2
3
1K
2K
5K
4
5
10K 50K
6 100K
<Õ ªa > 12.13> Õ Ë ªo × ¼
{ _ 9 \ V
– ç ( ¡ 1. “t « & " h
”\ î @ /ô ÇÒ o ` ¦s 6 x # t & " h
s î “Perryridge” ¸ HY U ï× ¼\ ¦¹ Ô 1 r É 6 §\ £ ï Ó ß os 1000 ` כ ¦¹ Ô 1 H . – ¡( ç 2. “ï « Ó ß o”\ @ /ô ÇÒ o ` ¦s 6 x # ï ß os Ó 1000 ¸ HY U ï× ¼\ ¦¹ Ô 1 r É 6 §\ £ t & " h
s î “Perryridge” ¸ HY U ï× ¼\ ¦¹ Ô 1 H . – ¡( ç 3. “t « & " h
”\ î @ /ô ÇÒ o ` ¦s 6 x # t & " h
s î “Perryridge” ¸ HY U ï× ¼_ í ' \ ¦¹ Ô 1 ¦, “ï Ó ß o”\ @ /ô ÇÒ o ` ¦s 6 x # ï Ó ß os 1000 ¸ HY U ï× ¼_ í ' \ ¦ Ô 1 ¹ ¿ º í ' | 9 ½ Ë_ + §| 9 ½ Ë` + ¦¹ Ô 1 H .
• « Üh Þ «
(grid file) rÕ É ªo × ¼C \ s P ¦ H 2 " ¶C é \ õ P ' õ \ _ P è HF K% ½ i É` + ¦ H¿ º> h _ + Aè þ HF KÜ ¼ н ¨$
í a ) . • V \) (t & " h
,ï î Ó ß o) Ò o \ @ /ô ÇÕ ªo × ¼C \ P rÕ É ª > 12.13õ Ë a ° ú . ' rt É & " h
\ î @ /ô Çè HF K% ½ i É + ¦ ` 9 \ P rï É Ó ß o\ @ /ô Çè HF K% ½ i É` + ¦ô Ç . ov Ò ° כ ú rq É ! s Ð ÷ © &9, # Qq ! ss _ ! QÖ ¿ ¦ o ` ~ ´Ã ºe . Õ ªa > 12.13\ Ë " f& h Ü ¼ г ð r a ) Òì r r° É ú r! É QÖ ` ¿ ¦ o v Hq ! s[ t` þ ¦ p · . • (“A-217”,“y z © & ”,750)_ h ¶ { ú 9 r (0,0) q É ! s Ð © a ) . y z © & h r' É 1\ ½ É{ + © a~ ) ÓC ½ & h Ð Ü ¼ ¼ Ù Ð ' 0\ ÷ © & ¦, ï Ó ß os 750s Ù ¼ Ð\ 0\ P É{ + ½ © a ) .
0 A~ ÓZ ½ × O æ~ ÓZ ½ 3ë O s ß × æÒ o _ rF > \ ¦ ¸6 Ö x Ç ô . s ~ ÓZ ½ O ¸ 6 §[ £ j t ¸| s ¸¿ º$
w í n ´ òõ & s h t l w 3 . – ÐZ 1. t Ì & " h
s î “Perryridge” Y U ï× ¼ B Ä º´ § ú . – ÐZ 2. ï Ì Ó ß os 1000 Y U ï× ¼ B Ä º´ § ú . – ÐZ 3. t Ì & " h
s î “Perryridge”s ¦ ï Ó ß os 1000 Y U ï× ¼ F G èà ºs . 12.8.2
P § ©
ø Ç m
• s Õ ªo × ¼
{ ` 9 ¦ 6 x 6 §õ £ ° ú r É Ò o ¸| \ @ /ô Ç| _ 9 \ ¦~ > 1 % o ½ ÉÃ + ºe . t & " h
< “ î r& @ ” and ï h Ó ß o = 1000 & t " h
s î r& @ h Ð r É כ r' É 0õ 1\ K { © ÷9, ï & Ó ß os 100 כ r\ É 1\ P ë K ß { © a ) . " f (0,1)õ (1,1) q ! së ß Ò o a ) .
ú ÞW n ; c6 ¢t X ß Å Ã
• “t & " h
”õ î “ï Ó ß o”\ @ /ô ÇÒ o ` ¦y y Ä »t t · § ú ¦, (t & " h
,ï î Ó ß o)\ @ /ô ÇÒ o ` ¦Ä »t ½ Éà + ºe . s Ò o _ &
§ ñ = > r É ~ Ód ½ ` ¦ 6 xô Ç .
• U Y ï× ¼[ ts þ ! q[ s t þ Ð ç H1 x p > ½ É{ + ÷ © & ¸2 ¤ è HF K `כ ú ° ¦& ] h X > × þ # ô Ç .
• \ V)
• Q !Ö s ¿ T ` q e ¦s ! QÖ ` ¿ ¦ o v Hq ! ss # Q he > Ü ¼ D h! QÖ ` ¿ ¦ë [ ß t# þ Qq ! s[ ts þ r! É QÖ ` ¿ ¦ o v ¸2 ¤ì r½ Éô + Ç . ì Í@ ø / Ð! QÖ s ¿ T ` q e ¦ ! s QÖ ` ¿ ¦ o v H! qs s \ ¢ P ¸ H ' ` ¦Z t þ 9Õ ªo × ¼
{ ` 9 ¦F ¸&
K ñ ô Ç .
select > ý a ñ from account where t & " h
< “Perryridge” and î Ó ß ï o = 1000 11
• Õ ªo × ¼
{ 9 ré É { ß 9 v\ ¦ 6 x H| 9 _ ¸´ òõ & Ü h ¼ Ð% o ½ ÉÃ + ºe . | _ 9 ¸| s 6 §õ £ ° Ü ú ¼ t & " h
= “ î ;î & ß ” h
à q Ôë s` ¦s 6 x # ´ òÖ ¦& Ü h ¼ й Ô` 1 ¦Ã ºe . s |_ 9 H “# ”\ @ /ô Çq à Ôë sõ “L2”\ @ /ô Çq à Ô s` ë ¦ Ho 7 Y L # , Õ ª õ 01000` ¦ s 6 x # 7 ß ë ¤ á HY U ï× ¼\ ¦¹ Ô` 1 ¦Ã ºe . Õ ª Q ¿ ºq Ôë à s_ Ho 7 Y L_ õ \ ´ § ú rq É à Ô 1s & ^ Ü h ¼ Ð Ò o H s כ ¸y 9´ òõ & { h à 9 ºe .
' 4ë s ß s ¸| ` ¦ë 7 ß ¤½ á Éà + ºe . " f' 4_ q ! s[ të þ ` ß ¦s 6 x # Ò o a ) . • Õ ªo × ¼
{ _ 9 ë H] j& h
• qà Ôë s r: É ¤& £
ñ ¸| ` ¦ë 7 ß ¤ á HY U ï× ¼_ à º\ ¦ í > ½ ß ÉM + :\ ¸´ òõ & s h .
– / Nç B ß ¸Z K × ¼(Õ ªo × ¼
{ s 9 B Ä º9 tà þ ºe .)
• qà Ôë s_ ¢ ¸ r É & © h r É r/ É Nç B ` ß ¦ t ô Ç H s כ .
– ¶ { ú 9 õ ] j: M$
0 í x p ¸! QK × ¼ e Ü ¼9, ¶ ú 9 { s ª Õo × ¼
{ ` 9 ¦ Å ÒF ¸&
ñ K ô Ç .
• Ð : xY U ï× ¼_ ] j\ ¦ À Òl 0 AK rF > q à Ôë s ¦Ä ` »t 9, null ° `כ ú ¦ À Òl 0 AK V ° , כq ú à Ôë s ¦Ä ` »t ô Ç .
– è HF K` ¦ &
ñ H s כ ~ t 1 · § ú .
12.9
² R ª t 0 ß Å Ã
12.9.1
R ² ª t 0 ß Å Ã º
• qà Ôà ºï r_ í ` ß ¦s 6 x # # Q| 9 _ \ ¦´ òõ Ü h & ¼ Ð% o ½ Éà + ºe . – 7 o H Y L: ¿ º ¸| ` ¦ ¸¿ ºë 7 ß ¤ á H ¸ HY U ï ¼ ×
• q à Ôë s ré É { ß v 9 \ / @ô ÇÒ o s t ë ß × æv \ @ /ô Ç| _ 9 \ ¦´ òõ & Ü h ¼ Ð% o ½ ÉÃ + ºe HÒ o ½ ¨ ¸s .
– 7 o H ½ Ë: ¿ + º ¸| × æ ë ë ß 7 ß ¤ á H ¸ H U Y ï× ¼
• é © í ß Hô Ç + AI þ _ q à Ôë s Ò o ½ ¨ ¸ H Å 5$ q
í A | 9 à ºe H ¸ H° \כ ú @ /K _ q Ô à ë s` ¦Ä »t ô Ç .
– 7 o H Â Ò&
: # ñ Q " ¸| ` ¦ë 7 ß ¤ á t · § ú H ¸ H U Y ï× ¼
• q à Ôë s r É a> ' \ e HY U ï× ¼Ã ºë ß u_ p q à Ô\ ¦ . • \ V) 6 §õ £ ° ú É r customer-info a> ' e ¦ .
0 1 2 3 4
$"
í
î John Diana Mary Peter Kathy
$Z
í > z # # z #
Å Ò è Perryridge Brooklyn Jonestown Brooklyn Perryridge
è1 qà p ºï r L1 L2 L1 L4 L3
“$
Z í ” 5 > q$ Å
\ í @ /ô Çq à Ôë s r É 6 §õ £ ° Ü ú ¼9, z
10010
#
01101
“ è1 qà p ºï r” 5 q$ Å
\ í @ /ô Çq à Ôë s r É 6 §õ £ ° ú . L1 L2
10100 01000
L3 L4
00001 00010
L5
00000
• q à Ôë s ré É { ß v 9 \ @ /ô Ç| 9 _ \ @ /K " f H ) ¸¹ §s ¡ ÷ &t · § ú H . Õ ª Q | 9 _ _ ¸| s 6 § £ ° õ ú r É × æv \@ /ô Ç s כ
Z í $ = “# > ” and è1 qà p ºï r = “L2” 12
c °2003, sangjin@kut.ac.kr
• î ¨ ~
ÓZ ½ \ O @ /ô Ç Å Ò$ s 3 ' ÷ &# Q e H a> ' /à @ º í ` ß ¦Ë è ^ «h i p á Ã(evaluation primitive) ô Ç .
2T 6 ' _9 KT Ã : ~ ¡q ç { ¡È 09
• 9 {º _ á Ôo p w Ú Ô\ ¦
jN ß Ì ((execution plan) ¸ ¢ H
+Ë N ^ Ì ((query-evaluation plan)s Ç ô .
A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
• 9 |_ _ % o HÕ ª _ כ z ´ ' > S \ \ q 6 xs ú ² . t ë z ß ´ ' > S \ r É 6 x _ Õ e þ s m ¦, r Û ¼% _ 7 Õ e þ s .
Part IV. Data Storage and Querying
13.2
Ç8 m ù ý% iP
13 13.1
Ç8 m ù ý% iP R Þ8 Ó ý ¤X Ë N
• | _ 9 q 6 x ¦ `8 ¤& £
½ ñ ÉM + : 6 x| cà ¨ ºe H¨
l î ï r
~ 4 ¿
– nÛ ¼ß ¼{ Ø 9 ¦§ à 4 º: @ /½ © ¸X <s ' Z s Û ¼\ f " H × © æכ ¹ô Çq 6 xs .
• | 9 _ % o ] X –
d ç
õ % i
– CPU r ç ß
– þ j& h o
– ì rí ¨ ß 8
_ â
Ä â º\ H: x q 6 x
– ¨
î
– 6 x² £ r ú ç ß
• SQL Ð] jr a| ) 9 _ H $ a> ' @ /Ã º+ AI þ Ð % ÷ i &# Q% o a ) .
• #l " f H 5 x Å a^ ) ¦2 ¤Ã º\ ¦> í ß # | 9 _ % o 6 q x` ¦8 ¤& £
ô ñ Ç . s M : ¸ H^ ¦2 ¤_ 5 xr Å ç ß r É ú ° ¦ &
ô ñ Ç . (z ´] j H# QÖ ¼à ÔÏ _ þ # QÖ ¼! o' l e \ Ht \ 5 xr Å ç s ß Ø Ô .) Ð &
ñ X S > 8 ¤& £
ñ l 0 AK " f H 6 §` £ ¦8 ¤& £
K ñ ô Ç .
• SQL\ @ /ô Ç
ç d r( É
{ 9 Q\ " f
d
ç H כ Ä õ » . s õ &
\ ñ " fë HZ & O h ¸À Ó\ ¦ ¦, 6 x a ) a> ' s 2 §õ £ 5 q$ Å
s í 2 §[ £ ts þ ` ¦ rt É ô Ç .
– ÐÒ Ã o rà º
• Å Ò# Q | 9 _ H ô ª Ç~ ÓZ ½ Ü O ¼ Ш
½ î ÉÃ + ºe .
– { 9 r^ É ¦2 ¤_ Ã º
– SQL\ " f H _ | 9 _ \ ¦# Q+ AI þ г ð ³½ & Éà + ºe .
– H^ ¦2 ¤_ Ã º
– SQL ë H r É ô ª Ç a> ' @ /Ã ºd Ü ¼ Ð % | i c ¨ Ã ºe .
Ð: xæ ¼l { l 9 Ð r ç s ß ´ §s ú èכ ¹ a ) .
• \ V) 6 §õ £ ° ú r SQLë É H r É
• %o q 6 x r¢ É ¸ô ÇÅ Òl % 3 u © \ Ä »t ÷ & H! Q( ß _ ¼l \ Ø Ô . # l " f Hþ j _
Ä â º\ ¦ ¦ 9 # 8 ¤& £
ô ñ Ç . 7 ¤, ô £ Ç a> ' _ ^ ¦2 ¤ ! ß ë Q( \ e ` ¦Ã ºe ¦ &
ô ñ Ç .
select ï Ó ß o from account where ï Ó ß o < 2500 6 §õ £ ° ú r¿ É º t a> ' @ /à ºd Ü ¼ Ð % | i cà ¨ º e . – σï Ó ß o<2500 (Πï Ó ß o (account))
13.3
Åy Ò Å ì m
13.3.1
Ä M Ø° ] ow P ¨ Ö
• br :
{ \ 9 e H^ ¦2 ¤Ã º
– Πï Ó ß o (σï Ó ß o<2500 (account)) • y a> ' @ /à ºd r# É Q t · ú ¦o 7 §` £ ¦s 6 x # z ´' | cà ¨ ºe . \ V\ ¦[ t# þ Q account a> ' \ ¦ o Ò # ï Ó ß os 2500 Ð rÈ É Òe ¦[ t` þ ¦¹ Ô` 1 ¦Ã º e ¦, ï Ó ß o5 q$ Å
\ í @ /ô ÇÒ o s e Ü ¼ s ` כ ¦ ¸ Ö 6 x½ ÉÃ + ºe . " f a> ' @ /Ã ºd \ y í _ ß
~ î ¨ ÓZ ½ ` O ¦ ? / HÅ Ò$ ` 3 ¦² ú ô Ç . s Å Ò $ 3 r: É ¤& £
· ñ ú ¦o 7 §` £ ¦t &
ñ 6 x½ ÉÒ + o ¦t ` &
K ñ ï r .
• ¿ º t l r
: { Û 9 ¼ p(scan) · ± ú ¦o 7 § £ – A1. ¤ >Ì n C~ f a É c: v Ë 5 q$ Å
\ í @ /ô Ç1 x1 l x p × _ þ
ç î ¨ Hq 6 x r br /2s É 9, þ j q 6 x r br s É . – A2. l ë >~ a É c: & Ë
§ ñ = > a5 ) q$ Å
\ í @ /ô Ç1 x1 l x p þ × rs É Ò o` ¦½ Éà + ºe . s
Ä â º\ q x 6 r dlog2 (br )es É . 1
13.3.2
– Â Ò&
. ñ 6 §õ £ ° ú r+ É AI þ _ | _ 9 \ ¦´ ú Ê. <
ß t à Åù §T p Þ Ó ¢ X Åy Ò
• Ò o ½ ¨ ¸ H r´ É ú Ð] X H
â Ð(access path) Ç ô .
σ¬θ (r) • 4 ¤¸ ô ú Ç × ` þ ¦% o H· ú ¦o 7 § £
• Ò o r] É X H` ¦ Ø Ô> KÅ Òt ë Ò ß o ½ ¨ ¸\ @ / ÇÆ ô Ò & h ] X Hs 9כ ¹ .
– A8. +a cê Ë >£ ·l £ ø 5 Ð µh a ¹¤ כ >f n c¥ 9 > o Ñ: ] 5 ñ H X
â Ð e H5 q$ Å
s í e Ü ¼ A2\ f A7 · " ú ¦o 7 § £ \ ¦s 6 x # × ` þ ¦ô Ç 6 §\ £ Å Òl % 3 u © \ " f Qt ¸| ` ¦ ô Ç . s M : σθi (r)_ % o q 6 xs $ © ô 4 § Ç θi ü <· ú ¦o 7 §` £ ¦ × ô þ Ç .
• Ò o ` ¦s 6 xô Ǽ Û pú ± · ¦o 7 § £ – A3. Ì Áa cê Ë >, o U c7 ø 5 â ¤ >f n 9 c: B + à Ô o \ ¦ s 6 x “à Ôo _ Z }s +1”ë ß p u_ { 9 ¦§ Ø s 4 9 כ ¹ . # l " f “+1” rz É ´] jY U ï × ¼\ ¦Æ ÒØ ¦ Hq 6 xs .
– A9. ¡ ´T ¼a Ò cê Ë >£ ·l £ ø 5 Ð µh a ¹¤ כ >f n c¥ 9 >ñ o Ñ: 5 ] h & ô X Ç4 ¤½ ËÒ + o s rF > s ` כ ¦ ¸6 Ö x Éà + ½ ºe .
– A4. Ì Áa cê Ë >, o ä >¢ ´Å 4 U ] c7 ø 5 â ¤ > n 9 f c: A3ü <_ s & h r5 É q$ Å
s í v m Ù ¼ Ð ° ú r° É `כ ú ¦ Y U ï× ¼ # Q> he ` ¦Ã ºe . Õ ª QÙ ¼Ð à Ôo _ Z }s \ Y U ï× ¼\ ¦ í Ê < H^ ¦2 ¤Ã º\ ¦ 8ô Çë ß p u_ { Ø 9 ¦§ s 4 כ 9 ¹ . " f# QY U ï× ¼\ ¦Æ ÒØ ¦K t Å ß ë ÒÒ o s Ù ¼ Ðú ° r° É `כ ú ¦ Y U ï× ¼ H 5 qK Å " f$ ÷ © &# Qe .
– A10. ïê >' a +¬ ¨
T ¼£ Ò ·l £ ø 5 Ð µh a ¹¤ כ > n c¥ 9 f >ñ o Ñ: 5 – A11. ïê >' a +T ¼ Ò
T ¼£ Ò ·l £ ø 5 Ð µh a T ¼¤ Ò > n c¥ 9 f >ñ o Ñ 5 A11 l Z ` O ¦ 6 x l 0 AK " f H ¸| \ í Ê < a ) y5 q$ Å
\ í @ /ô Ç] H X
â Ð e # Q ô Ç . A10 l O Z r{ É 9 Â Ò\ @ /ô Ç] X H
â Ðë e ß # Q ¸ 6 x½ ÉÃ + º Ü e ¼9, s M :\ H{ 9 Â Ò\ @ /ô Ç] H X
â Ð\ ¦s 6 x # í ' _ §| ½ 9 Ë` + ¦¹ Ô 1 r É 6 §\ £ ¹ Ô 1 rY É U ï ¼\ × @ /K Qt ¸| ` ¦ K ô Ç .
– A5. × ¿a cê Ë >, â ¤ >f n 9 c: v \ @ /ô Ç Ð ¸ o Ò s _ Y U ï× ¼ë Æ ß ÒØ ¦ ÷ &t v ß ë 5 q$ Å
\ í @ /ô Ç Ð ¸Ò o s # QY U ï× ¼\ ¦Æ ÒØ ¦K ô Ç . _ q 6 x r É “à Ôo Z }s + 1”s t ë Ê ß ê _ q 6 x rþ É j _
Ä â ºY U ï× ¼ n Û ¼ß ¼{ Ø 9 ¦§ s 4 èכ ¹ cà ¨ | ºe . s q6 x r É + A þ Ò o Ð 89 t þ à ºe . 13.3.3
13.4
Ëc N X Ç
• < Xs ' \ ¦&
§ ñ = > H כ r É 6 §¿ £ º t s Ä »M :ë H X \ <s ' Z s Û ¼\ " f× æכ ¹ô Ç% ½ i É` + ¦ô Ç .
R w õ § u º] ¤ K À ¥ W Åy Ò
• σA≤v (r) + AI þ _ × ` þ ¦ ¦ 9 # Ð .
– T ¤ 1. SQL | _ 9 H õ &
§ ñ =÷ > &l \ ¦כ ¹ ¨½ ½ Éà + ºe .
• Ò o ` ¦s 6 xô ÇÛ ¼ p· ± ú ¦o 7 § £
– T ¤ 2. | _ 9 % o \ " fY
t > a> ' í ß r É í ` ß ¦% o l \ X <s ' &
§ ñ =÷ > & Qe # Ü ¼ Ð ´ òõ & Ü h ¼ Ð% o ½ ÉÃ + ºe .
– A6. Ì Áa cê Ë >, j ¬ ¨¤ >f n c 9 • A > v¢ ¸ H A ≥ v: Ò o ` ¦s 6 x # A = v Y U ï× ¼\ ¦¹ Ô 1 r É 6 §\ £ é í ß H + A
þ { Û 9 ¼ p` ± ¦ô Ç . • A<v¢ ¸ H A ≤ v: Ò o ` ¦ 6 x t · § ú ¦é í ß H + A þ
{ ¼ 9 Û p` ± ¦ô Ç .
• Ò o ` ¦&
§ ñ = > aí ) H" f ÐÄ »t s Ò o ` ¦s 6 x # &
§ ñ = > aí ) H" f ÐY U ï× ¼\ ¦] H X ½ ÉÃ + ºe . Õ ª Q Y U ï× ¼ ^ Ó to ü & Ü h ¼ Ð&
§ ñ =÷ > &# Qe t §l ú · M :ë H\ ´ § ú rn É Û ¼ß ¼{ Ø 9 ¦§ s 4 9 כ ¹½ Éà + ºe .
– A7. × ¿a cê Ë >, j ¬ ¨¤ >f n c: 9 Ð ¸Ò o ` ¦s 6 x Çq ô § Hy %
% ò \ i K { © H° `כ ú ¦s 6 x # Ò o ` ¦ Ò o½ Éà + ºe . Õ ª Q s q 6 x r É + AÛ þ ¼p ± Ð ¸y 99 tà þ ºe . 13.3.4
• ñ &§
=½ > ÉM + : a> ' ^ \ ¦Å Òl % 3 u © \ & F h ½ Éà + º Ü e ¼ quicksortü < ° ú r l É r & :
§ ñ = · > ú ¦o 7 §` £ ¦ 6 x½ ÉÃ + ºe . ì Í@ ø / Ð& F h ½ ÉÃ + º\ Ü O ¼ ü @Â Ò
§ ñ & =(external sorting) ~ > ÓZ ½ ` O ¦ 6 xK ô Ç . ´ © §s ú 6 x Hü @Â Ò&
§ ñ =~ > ÓZ ½ O rü É @Â Ò½ Ë# +
& î
ñ =(external sort-merge) ~ > § ÓZ ½ s O .
×± q ¢ X Åy Ò
• 4 ¤¸ ô ú Ç × _ þ 7 xÀ á Ó
13.5
– Ho 7 Y L. 6 §õ £ ° ú r+ É AI þ _ | 9 _ \ ¦´ ú Ê <
ºß Å Ã Å ì m
• ¸ ` ¦> í ß H# Q· ú ¦o 7 §` £ ¦¨
î l 0 A K 6 §` £ ¦ 6 x 9,
σθ1 ∧θ2 ∧···∧θn (r) – Ho 7 ½ Ë. + 6 §õ £ ° ú r+ É AI þ _ | 9 _ \ ¦´ ú Ê. <
depositor ./ customer
σθ1 ∨θ2 ∨···∨θn (r)
M s :¿ º a> ' \ @ /K 6 §õ £ ° ú r & É
` ñ ¦ô Ç . 2
– customer a> ' _ Y U ï× ¼Ã º: nc = 10, 000
• q 6 x
– customer a> ' _ ^ ¦2 ¤Ã º: bc = 400
– K HÈ Òe ¦_ Ã º: nr ∗ ns
– depositor a> ' _ Y U ï× ¼Ã º: nd = 5, 000
– j þ _
Ä â º{ 9 H^ ¦2 ¤Ã º: br ∗ bs + br (! Q( y \ a> ' _ ô Ç^ ¦2 ¤ë Ä ß »t ½ Éà + ºe H
â º) Ä
– depositor a> ' _ ^ ¦2 ¤Ã º: bd = 100 13.5.1
Þ² n ú É v ¼³ ºß Å Ã
– j þ _ ©
Ä â º{ 9 H^ ¦2 ¤Ã º: br +bs (! Q( \ ¿ º a> ' _ ¸ H^ ¦2 ¤` ¦Ä »t ½ Éà + ºe H
Ä â º)
• r ./θ s\ ¦> í ß H ×^ æ ?À o Òá Ô(nested loop) ¸ · ú ¦o 7 § £
• º ¿ a> ' ¸¿ º ¸ H^ ¦2 ¤` ¦! Q( \ Ä »t ½ Éà + º\ Ü O ¼ ß ¼l r É a> ' \ ¦ü @Â Ò a> ' Ð 6 x H כ a s ~ % .
∀tr ∈ r do ∀ts ∈ s do θ\ ¦ë 7 ß ¤ á Ht (tr , ts )\ ¦ 7 ß ë ¤ á tr · ts \ ¦ õ \ Æ Ò
• depositor ü @Â Ò a> ' s ¦, customer ? /Â Ò a> ' M 9 { :_ q 6 x
• # l " f r\ ¦ü @Â Ò a> ' ¦ s\ ¦? /Â Ò a> ' ô Ç .
– j þ _
Ä â º{ 9 H^ ¦2 ¤Ã º: 100∗400+100 = 40, 100
• ¸ ` ¦> í ß l 0 AK " f H× æ4 ¤` ¦] j K ô Ç .
– þ j _ ©
Ä â º{ 9 H^ ¦2 ¤Ã º: 500 – / ? Òü <ü @Â Ò a> ' \ ¦ Ë ¨% ` 3 ¦M :þ j _
â º{ Ä 9 H^ ¦2 ¤Ã º: 400 ∗ 100 + 400 = 40, 400
• q 6 x – K HÈ Òe ¦_ Ã º: nr ∗ ns
• ×^ æ ?À o Òá Ô¢ ¸ H^ ¦2 ¤× æ^ ?À o Òá Ô· ú ¦o 7 §_ £ $
0 í x p ¦ ` Ó ¾ r © v H~ ÓZ ½ O
– j þ _
Ä â º{ 9 H^ ¦2 ¤Ã º: nr ∗ bs + br (! Q( \ y a> ' _ ô Ç^ ¦2 ¤ë Ä ß »t ½ Éà + ºe H
â Ä º)
– ¸ 5 q$ Å
s í ? /Â Ò a> ' _ v s ' { Í u 9 \ ¦ Ï| 1 µ
? / ÒÀ Òá Ô\ ¦× æé ½ ß Éà + ºe .
– j þ _ ©
Ä â º{ 9 H^ ¦2 ¤º Ã: br +bs (! Q( \ ¿ º a> ' _ ¸ H^ ¦2 ¤` ¦Ä »t ½ Éà + ºe H
Ä â º) • ß ë ¿ º a> ' × æ _ ¸ H^ ¦2 ¤` ¦! Q( \ Ä »t Éà + ½ ºe Ü ¼ s a> ' \ ¦? /Â Ò a> ' Ð 6 x H כ s a ~ % . (^ ¦2 ¤Ã º: br + bs )
– Ò Ål % 3 u © _ ! Q( M > h_ ^ ¦2 ¤` ¦Ä »t Éà + ½ ºe Ü ¼ s × æM −2^ ¦2 ¤` ¦ü @Â Ò a ' \ > ½ É{ + ½ © Éà + ºe . s X > O q 6 x r É dbr /M − 2e ∗ bs + br s a ) .
• depositor ü @Â Ò a> ' s ¦, customer ? /Â Ò a> ' 9 { M :_ q 6 x
– / ? ÒÀ Òá Ô_ ~ Ó ½ Ó` ¾ ¦B Ë ¨ n Û ¼ß ¼{ 9 ¦§ Ø _ 4 à º\ ¦× ¦{ à 9 ºe .
– K HÈ Òe ¦_ Ã º: 5000 ∗ 10000 = 5 ∗ 107
– / ? ÒÀ Òá Ô\ @ /ô ÇÒ o s rF >
{ 9 Û ¼ p@ ± / \ Ò o ` ¦ ¸6 Ö x½ ÉÃ + ºe .
– j þ _
Ä â º{ 9 H^ ¦2 ¤Ã º: 5000∗400+100 = 2, 000, 100
13.5.3
– þ j _ ©
Ä â º{ 9 H^ ¦2 ¤Ã º: 500
• ×^ æ ?À o Òá Ô ¸ \ " f? /Â Ò a> ' _ ¸ 5 q$ Å
\ í @ / ÇÒ ô o s rF >
{ Û 9 ¼ p@ ± / \ Ò o ` ¦ ¸ Ö x½ 6 ÉÃ + ºe . s X > O ¸ H· ú ¦o 7 §` £ ¦Ò o a× ) æ^ ?À o Òá Ô ¸ s ô Ç .
– ? /Â Òü < ü @Â Ò a> ' \ ¦ Ë ¨% ` 3 ¦ M : þ j _
Ä â º { 9 H ^ ¦2 ¤ Ã º: 10000 ∗ 100 + 400 = 1, 000, 400 13.5.2
ß t Åc à Rú Ü Þ² n É v ¼³ ºß à Å
• q 6 x
§ u ÷ ×ú Þ² n É v ¼³ ºß Å Ã
– ^2 ¦ ¤Ã º: br + nr ∗ c, # l " f c H s\ @ /ô Ç ¸ ¸| ` ¦s 6 xô Çé { ß 9 × q þ 6 xs .
• r ./θ s\ ¦> í ß H^ ¦2 ¤× æ^ ?À o Òá Ô ¸ · ú ¦o 7 § £
– rõ s ¸¿ º ¸ 5 q$ Å
\ í @ /ô ÇÒ o ` ¦] j/ N B È Òe ¦_ à º & h r É ` כ ¦ü @Â Ò a> ' Ð x 6 H s כ ´ òõ & s h .
r_ y ^ ¦2 ¤ Br do s_ y ^ ¦2 ¤ Bs do ∀tr ∈ Br do ∀ts ∈ Bs do θ\ ¦ë 7 ß ¤ á Ht (tr , ts )\ ¦ 7 ß ë ¤ á tr · ts \ ¦ õ \ Æ Ò
• V \) customer a> ' H ¦Ì o"
5 î q$ Å
\ í @ /ô Ç B+ à Ô ½ o ¨ ¸_ Å ÒÒ o ` ¦Ä »t ¦e ¦ &
ñ . o Ò ¸× ¼{ ¨ ©
ç î H 20> h_ Ó` ½ ¦Ä »t ô Ç cus tomer a> ' _ È Òe ¦Ã º 10,000s Ù ¼ Ðà Ôo _ Z } s H 4s . " f nd = 5000s Ù ¼ Ð8 xq ú 6 x r É 100 + 5000 ∗ 5 = 25, 100s .
• ^2 ¦ ¤× æ^ ?À o Òá Ô ¸ õ { ì 9 Í× ø æ^ ?À o Òá Ô ¸ _ s & h r{ É 9 ì Í ø rÈ É Òe ¦× æd _ ¸ s ¦, ^ ¦2 ¤ r^ É ¦ 2 ¤` ¦× æd Ü ¼ Ð ¸ . 3
13.5.4
˶ _ ä ¥ ºß Å Ã
• nh Hy ì r½ És + Å Òl % 3 u © ! Q( \ & F h | cà ¨ ºe ¸2 ¤Ø æì ry & ô Ç . nh Hþ j èô Ç dbs /M e Ð & ô Ç .
• î #½
Ë + ¸ (merge join) ¢ ¸ H&
§ ñ =-# >
½ î Ë + ¸ r É ¸ 5 q$ Å
` í ¦l ï rÜ ¼ п º a> ' ¸¿ º&
§ ñ =÷ > &% ` 3 ¦ M : 6 x½ ÉÃ + ºe . ë ß &
§ ñ =÷ > &# Qe t · §Ü ú ¼
§ ñ & =ô > ÇÊ ê\ s ú · ¦o 7 §` £ ¦ 6 x½ ÉÃ + ºe .
• U Y ï× ¼_ à º r É a> ' \ ¦½ ¨» ¤ ¡ a> ' Ð 6 x H s כ a ~ % .
• q 6 x: y
{ 9 \ @ /K ô Ç _ Û ¼ pÜ ± ¼ Ð ¸ ` ¦½ É + à ºe .
13.5.5.1 = y & T P » Ò
– ^ ¦2 ¤Ã º: br + bs ,
• ' > a \ ¦ô Ç \ ì r½ ɽ + Éà + º\ O H
Ä â º\ H# Q \ 5 gì r½ É + # ô Ç .
– ¿ º a> ' ¸ ¿ º&
§ ñ =÷ > &# Qe t · § ú &
§ ñ =q > 6 x t ¦ 9 # ¸î #½
Ë + ¸ s r É ¸ \ q K q 6 xs $ § 4 .
• 1 ì r½ ÉM + :ì r½ É + a ) ` כ ¦y y { # 9 Q r rß É ¼ _ l ì r½ É + Ðì r½ Éô + Ç . s X > O H ` כ ¦F ) ì r É(recursive partitioning)s + ½ ô Ç .
– ¸ 5 q$ Å
_ í ú כ °s ° ú r É ¸ HY U ï× ¼ ! Q( \ & F h | cº ¨ Ã\ Ü O ¼ ¸ q 6 x r7 É x ô £ Ç .
• M > nh + 1 Ð ß ¼ F ) ì r½ És + כ 9 ¹\ O .
• s Ú Ôo × ¼#
½ î Ë + ¸ · ú ¦o 7 §: ô £ Ç a> ' H ¸ 5 q$ Å
\ í @ /K &
§ ñ =÷ > &# Qe ¦, r É a> ' H&
§ ñ =÷ > & # Qe t · §t ú ë ß ¸ 5 q$ Å
\ í / @ô Ç Ð ¸Ò o ` ¦ t ¦e ` ¦M :& 6 h x½ ÉÃ + ºe H· ú ¦o 7 §s £ . s · ú ¦o 7 § £ r& É
§ ñ = > a ) a> ' ü <&
§ ñ = > a ) Ð ¸Ò o ` ¦ Ë# + ½
ô î Ç 6 §\ £ Ð ¸Ò o _ í ' ° `כ ú ¦s 6 x # ½ Ë# +
ô î Ç õ \ ¦&
§ ñ = > # ¸ ô Ç . 13.5.5
13.5.5.2 Ó % Ï h • ì½ r É i\ + @ /ô ÇK r _ s ^ ¦ g Å > Ë r Hs i \ É @ /ô ÇK Ò r o s Å Òl % 3 u © Ð 9 t þ
Ä â º\ µ ÏÒ 1 tô q Ç . •
w _ à º\ ¦ כ 9 ¹ô Ç כ Ð ´ §s ú 6 x Å >s Ë g µ ÏÒ 1 t½ q ÉS + Ò X ¦` ¦× ¦{ à 9 ºe .
A 0S ºß Å Ã
• &
ñ
• g Å >s Ë µ ÏÒ 1 t q % ` i ¦M :K ~ ÓZ ½ O
– h: ¸ 5 q$ Å
` í ¦ {0, 1, . . . , nh } Ð B i
ç # Å Ò HK r ÊÃ < º Ð" fç H{ 9 $
õ í ½ü : ¤$ £
` í ¦ ] j/ NK B ô Ç .
– Å g >K Ë ~ ÓZ ½ : O g Å >s Ë µ ÏÒ 1 tô q Çì r½ É` + ¦Æ Ò Ðì r½ É + H~ ÓZ ½ O – Å g > Ë rx ~ ÓZ ½ : O g Å >s Ë µ ÏÒ 1 t½ q Éà + º\ O ¸2 ¤ [ ß ë tM þ : Ò' ì r½ É_ + ß ¼l ¸2 ¤ì r½ Éô + Ç 6 §\ £ -Á º Ü ¼ ì r½ É` + ¦ ½ Ëô + Ç .
– Hr0 , Hr1 , . . ., Hrnh : r a> ' \ @ /ô Çì r½ É` + ¦ ? /9, íl \ H I © s . r_ y È Ò ¦ e r É ¸ 5 q$ Å
\ í @ /K K r ° `כ ú ¦½ ¨ # y r½ ì É\ + ½ É{ + © a ) .
• ú ´ § rÃ É º_ Y U ï× ¼_ ¸ 5 q$ Å
° í כs ú ° Ü ú ¼ g Å > Ë H] ë j\ ¦´ òõ & Ü h ¼ ÐK ½ ÉÃ + º\ O . s
Ä â º\ H r É ¸ ~ ÓZ ½ ` O ¦ 6 xô Ç .
– Hs0 , Hs1 , . . ., Hsnh : s a> ' \ @ /ô Çì r½ É` + ¦ ? /9, íl \ H I © s . r_ y È Ò ¦ e r É ¸ 5 q$ Å
\ í @ /K K r ° `כ ú ¦½ ¨ # y r½ ì É\ + ½ É{ + © a ) .
13.5.5.3 B k ¿ê > +j £
• s X > O ì r½ É + Hr i \ e HÈ Òe ¦ r É ¸f Hs i \ e HÈ Òe ¦ ¦ ë q ß § a ) .
• F) ì r½ És + כ 9 ¹\ O ¦ g Å >s Ë µ ÏÒ 1 t q t · § ú H ¦ &
ñ % ` i ¦M :q 6 x
• K r ¸ ] X
– y a> ' \ ¦ì r½ É + l 0 AK " f Hy a> ' \ ¦ ¸ º{ ¿ 9 r É 6 § £ r + ô Ç . " fì r½ É + 6 q x r 2(br + bs )s É .
– · 4 ÿ 1. ¿ º a> ' \ ¦K r ÊÃ < º\ ¦s 6 x # ì r Éô + ½ Ç . – · 4 ÿ 2. y ì r½ É\ + @ /K Ò o a× ) æ^ ?À o Òá Ô ¸ ` ¦ô Ç .
– y½ ¨» ¤õ ¡ ÐÒ Ã oé > ß Hy ì r½ É` + ¦ô Ç { 9 Q # Ù ¼ ÐÆ Ò Ð br + bs n Û ¼ß ¼{ Ø 9 ¦§ 4 s 9 כ ¹ . Õ ª X <
w s t H^ ¦ ¤Ã 2 º H br + bs Ð 9 tà þ ºe . þ j _
Ä â º s ¸! QK × ¼ Hy a> ' 2nh s .
• ÿ · 4 2.1. Hsi \@ /ô ÇK r Ò o ` ¦Å Òl 3 % © u\ ë ß H . s M :ì r½ ɽ + ÉM + : 6 x Ç K ô r Êà < ºü < r K É r Êà < º\ ¦ 6 x Ç ô . • · 4 ÿ 2.2. Hri \e Hy È Òe ¦\ @ /K ½ ¨ ¤ô ¡ » ÇK r Ò o ` ¦ s6 x # ¸ ô Ç . • s M : Hs i \ ¦¨ ½» ¤{ ¡ 9 § (build input)s 4 ¦, Hri \ ¦Ã Ð Ò o{ 9 § (probe input)s 4 Ç ô .
– " f8 xq ú 6 x r É 6 §õ £ ° ú . 3(br + bs ) + 4nh ª Õ X <# l " f 4nh H br + bs Ð @ © /& Ü h ¼ B Ð Ä º . " fÁ ºr ½ ÉÃ + ºe . 4
13.6
 ¥ \ Å ì m
13.6.1
Þ n ú ×< g
Π ¦Ì o"
î ./
• ç ( ¡ 1. & «
§ ñ = > # ] j ô Ç . s _ כ q 6 x r& É
§ ñ = > q 6 xõ ° ú .
σï " ß o<2500 l
• ç ( ¡ 2. K « r Êà < º\ ¦s 6 x # a> ' \ ¦ì r½ Éô + Ç 6 §\ £ y ì r½ É` + ¦{ # 9 Qy ì r½ É\ + @ /ô ÇK r Ò o ½ ¨ ¸\ ¦ë ß H . sM :× æ4 ¤` ¦] j ô Ç .
account <Õ ªa > 13.1> Ë í à ß Ôo _ \ V
• ×4 æ ¤] j q 6 xs $ § 4 t · §Ü ú ¼Ù ¼ Ð SQL H 6 x × æ4 ¤] j \ ¦¹ 'כ A½ õ É +
Ä â º\ ë × ß æ4 ¤` ¦] j ô Ç . 13.6.2
customer
ù É m¶ ¥ Å ì m
13.7
Ç8 m ù ý8 ýç Ë g
13.7.1
Ç= m ÷ k× D
• + ½| Ë 9 ½ Ë, + §| ½ 9 Ë, + | 9 ½ Ë + í ß r¿ É º a> ' \ ¦&
§ ñ =ô > Ç 6 §\ £ ¨
ô î Ç . s M : Û ¼X > O × æ4 ¤` ¦] j Ç ô .
• ' > a @ /Ã ºd _ ¨
~ î ÓZ ½ O r É í à ß Ôo \ ¦ Ð ~ 1 · > Ã ú ºe .
• ñ &§
=q > 6 x ¦ ` ¦ 9 t · §Ü ú ¼ [ j í ß ¸¿ º br + bs ë ß p u_ n Û ¼ß ¼{ 9 Ø ¦§ s 4 9 כ ¹ .
• \ V) 6 §õ £ ° ú r É a> ' @ /à ºd _ Π ¦Ì o"
((σï î " ß l o<2500 (account)) ./ customer)
• K d ç
l Z ` O ¦s 6 xô Ç| ½ 9 Ë + í _ ß % o
í à ß Ôo HÕ ªa > 13.1õ Ë ° ú .
– K r Êà < º\ ¦s 6 x # y a> ' \ ¦ì r½ Éô + Ç . – r∪s • · 4 ÿ 1. Hri \ @ / ôK Ç r Ò o ½ ¨ ¸\ ¦ Òl Å 3 % u © \ ë ß H . • · 4 ÿ 2. Hsi _ È Òe ¦s Ò o ½ ¨ ¸\ s \ p Ü O ¼ Ò o ¨ ½ ¸\ Æ Ò ô Ç . • · 4 ÿ 3. Ò o ½ ¨ ¸\ e HÈ Òe ¦` ¦ õ Æ \ Ò ô Ç . – r∩s • · 4 ÿ 1. Hri \ @ / ôK Ç r Ò o ½ ¨ ¸\ ¦ Òl Å 3 % u © \ ë ß H . • · 4 ÿ 2. Hsi _ y Ò Èe ¦ `s ¦ 6 x # Ò o ¨ ½ ¸\ ¦ ÐÒ Ã o # Ò o ½ ¨ ¸\ ° ú r É Òe È ¦ se Ü ¼ õ \ Æ Ò ô Ç . – r−s • · 4 ÿ 1. Hri \ @ / ôK Ç r Ò o ½ ¨ ¸\ ¦ Òl Å 3 % u © \ ë ß H . • · 4 ÿ 2. Hsi _ y È Òe ¦` ¦s 6 x # Ò o ¨ ½ ¸\ ¦ ÐÒ Ã o # Ò o ½ ¨ ¸\ ° ú rÈ É Ò ¦s e e Ü ¼ Ò o ½ ¨ ¸\ " f ] jô Ç . • · 4 ÿ 3. Ò o ½ ¨ ¸\ e HÈ Òe ¦` ¦ õ Æ \ Ò ô Ç . 13.6.3
• z^ ´ o~ Ód ½ r× É æç ß í _ ß õ \ ¦e r a> ' \ $ © H~ Ód ½ s . z^ Ód ¼ | 9 _ ¦¨ î A • ´ o~ ½ Ü Ðs \
© 0 ºï à r_ í Â ß Ò' r ô Ç . 0 A í à ß Ôo \ " f © 0 Aà ºï r_ í ß r É × þ í s ß . s í Â ß Ò % ' o ô Ç 6 §\ £ õ \ ¦e r a> ' \ $ ô © Ç . e s r a> ' \ ¦s 6 x # ¸ í \ ß ¦ # ¢ ¸ re É r a> ' \ $ © ¦, = QÜ å ¼ Ðs e r a> ' \ /ô @ ÇÆ ÒØ ¦ í ` ß ¦& 6 h x # | _ 9 _ õ \ ¦% 3 H . • z^ ´ o~ Ód ½ _ % o q 6 x ry É í ` ß ¦% o H 6 q xõ e r a> ' \ ¦$ © Hq 6 x_ ½ ËÜ + ¼ Ð> ß í a ) . • í ß õ _ Y U ï× ¼ H! Q( \ » ¤& ¡ ô h Ç . s ! Q( T ` q ! Q( \ ¦n Û ¼ß ¼\ l 2 ¤ô Ç . Ð: xô Ç ¦2 ^ ¤ß ¼l _ Ø ¦§ ! 4 Q( \ ¦ 6 xô Ç . 13.7.2
T
³ ß ÅM Ã 0 É n
• z^ ´ o~ Ód ½ _ $
0 í x` p ¦ Ó ¾ r © v H~ ÓZ ½ × O æ He r ÐÒ t$ q
÷ í & H
{ 9 à º\ ¦× ¦s H s כ . s ¦0 \ AK Y
> > h_ a> ' í ` ß ¦
s á Ô + AI þ Ð o % ô Ç .
ù É m4
• | 9 > ÊÃ < º_
º â Ä\ HÕ ªÒ ¨i
s ç 0 x p . t & " h
Gsum(ï î Ó ß o) (account)
• V \) Πa1 ,a2 (r ./ s)\ ¦z ´^ o~ Ód ½ Ü ¼ Ð% o $ ¸ _ õ \ ¦e r a> ' \ $ ô © Ç 6 §\ £ s ` כ ¦ r { # 9 QÆ ÒØ ¦ í ` ß ¦& 6 h xô Ç . s _ כ
0 í $ x` p ¦ Ó ¾ r © v l 0 AK ¸ _ × æç ß õ \ ¦$ © t · § ú ¦Â Òì r õ \ ÐÆ ÒØ ¦ í ` ß ¦& 6 h x Éà + ½ ºe .
• 9 | > ÊÃ < º HÕ ªÒ ¨i ç
5 q$ Å
` í ¦l ï rÜ ¼ Ð&
§ ñ = > K d
l ç Z ` O ¦ 6 x # ì r½ Éô + Ç 6 §\ £ % o ô Ç . • Õ ªÒ ¨` ¦ ë ß HÊ ê\ > í ` ß ¦ t · § ú ¦, Õ ªÒ ¨i
` ç ¦ " f> í ½ ß ÉÃ + ºe . 5
13.7.2.1
T ³ ß Ã Åý 8 ô • Õ ªa > 13.1_ Ë [ j í ß r É ¸¿ º _
s á Ô Ü ¼ н ¨$
½ í ÉÃ + ºe . × _ þ õ \ ¦ Ð ¸ ¦Õ ª 6 § £ ¸ a ) õ \ " fÆ ÒØ ¦ô Ç . •
s á Ô rs É í s ß õ \ ¦! Q( \ l 2 ¤ 6 § £ í ß rs É ! Q( \ ¦s 6 x # í ` ß ¦% o ô Ç . •
s á Ô l Z ` O ¦ 6 x í _ ß { § 9 s 4 ô Ç \ ] j/ N÷ B &t · § ú H . •
s á Ô ` ¦z ´' H¿ º t ~ ÓZ ½ O – ¡( ç 1. ¹ « ½כ ¨A 0Å Ò(demand driven) – ¡( ç 2. Ò « tí q ß A 0Å Ò(producer driven) • כ ¹½ ¨0 AÅ Ò
s á Ô l Z (pulling data up) O – 0 A í ß r É 0 © A í s ß כ ¹½ ¨ È Òe ¦` ¦ t$ q Ò
í # ² ô ú Ç . • Ò tí q ß 0 AÅ Ò
s á Ô lZ (pushing data up) O – כ ¹' A` õ ¦l o t · § ú ¦È Òe ¦` ¦Ò t$ q
ô í Ç . © 0 A í ß rØ É ¦§ ! 4 Q( \ / Nç B s ß \ ` O ¦M : t ! Q( \ t 5 q& Å Ü h ¼ ÐÈ Òe ¦` ¦Ò t$ q
í # & F h ô Ç . × æç ß í ß r{ É 9 § s 4 e Ü ¼ s כ ¦{ ` § 9 Q 4 !( \ " f] j ¦Ø ¦§ ! 4 Q( \ / N B s ß ç \ ` O ¦M : t È Òe ¦` ¦Ò t$ q
í # ! Q( \ & F h ô Ç . ¿ º
Ä â º ¸¿ º! Q( T ` q © 0 A í s ß èq ½ ÉM + : t l ; 2 . • ß é{ 9 á Ô Ð[ j" fr Û ¼% \ 7 " f H! Q( T ` q á Ô Ð[ jÛ ¼Û ¼0 Au \ ¦ô Ç . t ë ß × æá Ô Ð[ j" fr Û ¼% 7 \ " f H y í ` ß ¦1 xr l \ à º' ½ Éà + ºe . 13.7.2.1
T ³ ß Ã Åõ § u ü ¢ç X Ë ° g ow P ¨ Ö •
s á Ô l Z ` O ¦ 6 x · ú ¦o 7 § £ × \ þ ] jô Ç` ¦~ Î Ã H . • \ V) ¸ í _ ß
Ä â º\ H&
§ ñ = > a{ ) § 9 ` 4 ¦כ ¹½ ¨ H#
½ î Ë + í ` ß ¦ 6 x½ Éà + º\ O . • s M :ë H\ ¸y 9z ´^ o~ Ód ½ ` ¦ 6 x H s כ q 6 xs $ § ½ 4 ɺ + Ãe .
6
c °2003, sangjin@kut.ac.kr
• V \) > ý a A\ " f> ý a B Ð 5000" ¶ é` ¦> ý as ^ Hà Ô Ô ½ o Ti ` ¦Ò ty q # Ð . Ti
2T 6 ' _9 KT Ã : ~ ¡q ç { ¡È 10 A. Silberschatz, H. Korth, S. Sudarshan Database System Concepts, Fourth Edition, McGraw-Hill, 2002.
read(A); A := A − 5000; write(A); read(B); B := B + 5000; write(B);
• Ti \ @ /K y ACID : ¤$ £
_ í _ p \ ¦¶ ( ú R Ð .
Part V. Data Storage and Querying
– ®
Å ¸ : à ] Ô Ô ½ o ` ¦z ´ ' ô ÇÊ ê\ Aü < B_ Ës + ½ z ´' õ ° ú ô Ç . { 9 a$ '
` í ¦Ä » t H כ r6 É x6 £ xá Ô ÐÕ ªA Q_ ] s . – j x S Å : à ] Ô Ô ½ o s z ´ ' ÷ & H ¸× æ\ r Û ¼ s 7 % z ´J # × æé | ß cà ¨ ºe . s
Ä â º\ HX <s ' Z s Û ¼ { 9 a$ '
í I © u ´Ã º e . " ¶ é $
s í Ð ÷ © & à Ô ½Ô o s z ´' ¸× æ\ × æé ß # ¸ X <s ' Z s Û ¼ { 9 a '
í $ I © \ ¦ Ä »t ô Ç . s \ ¦ 0 AK à Ô Ô ½ o Ì s t q H X <s ' _ ¶ " éA ° `כ ú ¦ Ð aô ' Ç ê\ Ê × æç \ ß × æé ÷ ß & s ° `כ ú ¦ s 6 x # <s X ' Z s Û ¼\ ¦ 4 ¤¶ " éô Ç . ¶ " é $
_ í Ð © rX É <s ' Z s Û ¼_ ç Ãw dc ñ 9¤ >® h ¸ Ä ©Å ³ ] À ¿(transaction-management component) { { ô © Ç . Ð Ã ¦ Ðà Ô ½Ô o s z ´ ' ÷ & H ¸ æ\ × r Û ¼% 7 s q { 9 a$ '
í I © \ e ` ¦Ã ºe .
² v O Å Ó
15 15.1
² Ov Å4 Ó G È
• ç Ãw ñ dc 9¤ >(transaction) r# É QX <s ' Ó` ½ ¦] X H ¦Ì t q Há Ô ÐÕ ªÏ ´ þ ' z é 0 ß As . • à Ô ½Ô o r begin transactionõ É end transaction s \ z ´' ÷ & H ¸ H í Ü ß ¼ н ¨$
í a ) . • X <s ' _ Á º $
` í ¦ Ð © l 0 AK à Ô Ô ½ o r É 6 §W £ 1 t : ¤$ £
` í ¦ë 7 ß ¤K á ô Ç . – x S j Å (atomicity): à ] Ô ½Ô o _ ¸ H í ß s z ´ ' ÷ &# QX <s ' Z s Û ¼\ ] j@ / Ðì Í% ø
ò &~ ÷ m Ô à ½ Ô o _ # Q " í ß ¸Ã º ' ÷ &t · § ú ô Ç .
– m¢ ´Å 4 : à ] Ô ½Ô o s $
/ í N& B Ü h ¼ Ð ¢ a« Ñ÷ &# Q ª Õ z ´s à Ô Ô ½ o ` ¦z ´' ô Ç 6 x \ > x : Ð÷ & Õ ª õ Hr Û ¼% 7 s Ê ê\ z ´J 8 ¸> 5 qÄ Å »t ÷ &# Q ô Ç . 7 ¤, > £ ý as ^ a? ) /6 xs Õ ªÊ ê\ Hz < ´÷ & H
Ä â º \ # O Q ô Ç . ( É Ó' r Û ¼% 7 s z ´J Å Òl % 3 u © \ e H? /6 x r É Hz < ´÷ &t ë n ß Û ¼ß ¼\ e H? /6 x r É Hz < ´÷ &t · § ú H ¦ &
ô ñ Ç . s
Ä â º\ t 5 q$ Å
í r É 6 §õ £ ° ú r~ É ÓZ ½ Ü O ¼ Ð Ð © a ) .
–
® Å ¸ (consistency): à ] Ô Ô ½ o ` ¦f Ë . ÐÃ º' % ` i ¦M :ª Õ õ X <s ' Z s Û ¼_ { 9 a '
` í $ ¦Ä »t K ô Ç . – §
Å (isolation): # ] Qà Ô ½Ô o ` ¦#
' î Ü ¼ ÐÃ º ' # ¸Õ ª õ Hs [ tà þ Ô Ô ½ o ` ¦ H í & Ü h ¼ Ðz ´ ' ô Ç õ ü <° ú ô Ç .
• ç ( ¡ 1. à « Ô ½Ô o \ _ K à º' ÷ & HÌ t q r à É Ô Ô ½ o s ¢ a« Ñ÷ &l \ n Û ¼ ß ¼\ l 2 ¤÷ &# Q ô Ç . • ¡( ç 2. à « Ô ½Ô o \ _ K à º' aÌ ) t q \ aô ' Ç&
ñ Ð\ ¦ Ð a ' # r Û ¼% s 7 z ´ J ô Ç Ê ê\ r X <s ' Z s Û ¼ 1 x l & ÷ Ì t q ` ¦ r ô Ç .
– m ¢ ´Å 4 (duration): à ] Ô Ô ½ o s $
/ í N& B Ü h ¼ Ð a« ¢ Ñ÷ & Õ ªÊ ê\ r Û ¼ 7z % ´J µ ÏÒ 1 t q # ¸à Ô ½Ô o s
â ô? Ç /6 x r> É 5 q Å Ð r÷ > & # Q ô Ç . • s W 1 t : ¤$ £
` í ¦ ACID £ ¤ :$
s í ô Ç .
5 t q$ Å
_ í Ð © rm É ¬¡ ´® h ¸ Ä ©Å ³ ] À ¿(recovery-management component) { { ô © Ç .
• à Ô ½Ô o r É 6 §¿ £ º t í ` ß ¦ 6 x # X <s ' Z s Û ¼\ ] X Hô Ç ¦ &
ô ñ Ç .
– §
Å : à ] Ô Ô ½ o _ { 9 a$ '
õ í ¶ " é $
s í Ð ÷ © & 8 ¸# Qà Ô Ô ½ o ` ¦#
' î Ü ¼ Ðà º ' Õ ª[ t_ þ í [ ß ts þ | Ðf à t · § ú r É ÓZ ½ ~ Ü O ¼ Ð ° ú à º ' | cà ¨ ºe . s ë H] j ¦K \ l 0 AK à Ô Ô ½ o [ t` þ ¦í H & Ü h ¼ Ðz ´' ½ Éà + ºe . Õ ª Q #
' î Ü ¼ ÐÃ º' H s כ $
0 í x8 p ¤ £ \ " f´ § ú rs É & s h e . ¦w $ n
í r X É <s ' Z s Û ¼_ Ä j Z ßV # a Ä ©Å ] À ³ ¿(concurrency-control component) { ô © { Ç .
– read(X): X <s ' Ó X\ ½ ¦X <s ' Z s Û ¼ Ð Â Ò' t % ! i Q( Ð` | . – write(X): t % ! i Q( \ e HX <s ' Ó X\ ½ ¦ X <s ' Z s Û ¼\ H . &
. ñ Ð: xX <s ' Ó_ ½ æ ¼l H7 ¤r £ s À Ò# Qt t · § ú H . t ë # ß l " f H£ ¤ 7r s À Ò# Q ¦
ô ñ & Ç . 1
– Ô à Ô ½ o ` ¦] j (kill): à Ô ½Ô o _ ? /Â Ò H 7 o ¸À Ó\ _ K 2 [ è a )
Ä â º\ H6 x6 £ xá Ô Ð ªÏ Õ ` þ ¦ r $
K í ë H] j\ ¦K ½ ÉÃ + ºe . s
Ä â º\ Hà Ô Ô ½ o ` ¦] j ô Ç .
15.3
• Õ ªa > Ë 4 ¤ r(shadow copy) ~ : Ód ½ – s~ Ód ½ rÕ É ªa > Ë 4 ¤ rs : ¦ HX <s Z ' s Û ¼_ 4 ¤ r` : ¦Ä »t ô Ç .
<Õ ªa > 15.1> Ô Ë à Ô ½ o I © ¸
15.2
R ¦ Ì V ËÊ R ÝU ×V Ò Ë8 R ý ô
– s~ Ód ½ rô É Ç \ _ à Ô ½Ô o ë z ß ´' a ) ¦ &
ñ 9, X <s ' Z s Û ¼
{ 9 \ @ / Ç ô í ' \ ¦ Ä »t ô Ç .
² v O ÅV Ó s? ê 0
– < Xs ' Z s Û ¼\ ¦ Ì t q H à Ô ½Ô o r É X $ <s ' Z s Û ¼_ ¢ a ô Ç4 ¤ r` : ¦ë ß H 6 §\ £ Ì t q r" É ¶ é rs : s 4 ¤ r\ : s Q Ò# À .
• I © _ 7 xÀ á Ó: Õ ªa > 15.1 Ë Ð Ã ¸ – ¸$ Ö
í o I © (active): z ´' × æ I © – Â Òì r¢ a« Ñ: à Ô Ô ½ o _ t } "
§ î
# î Q z ´ ' aÊ ) ê
– à Ô Ô ½ o s 2 [ è÷ & 4 ¤ rë : ß ] j a ) . – Ô à Ô ½ o s ¢ a« Ñ÷ & D h4 ¤ r_ : ¸ H` t s n Û ¼ß ¼\ l 2 ¤÷ &% 3 Ht S X ô Ç . h4 D ¤ r_ : ¸ H` s t n Û ¼ß ¼\ l 2 ¤ & ÷ í ' 4 ¤ r` : ¦ o v ¸2 ¤ô Ç §\ £ 6 l r" > ¶ é r : r É ] j a ) .
– z ´J (failed): &
ñ & © h ´ ' z s 8s Ô © ¦ 0 x p H ` כ ¦µ Ï| 1 ô
ÇÊ ê – x ¿(aborted): à Ô Ô ½ o ¢ ¸ Hr Û ¼% 7 s z ´ J # à Ô ½Ô o s ·` c(rollback)÷ 9 &# Q à Ô ½Ô o s r l I © ÐX <s ' Z s Û ¼ 4 ¤¶ " é aÊ ) ê
– Ô à Ô ½ o s z ´J H
Ä â º: í ' Ì t q &l ÷ \ à Ô ½Ô o s z ´J " ¶ é rs : e ¼Ù Ü ¼ ÐD h4 ¤ rë : ß ] j # à Ô Ô ½ o ` ¦ [ 2 è½ ÉÃ + ºe .
– µ כ ì Ø(committed): &
ñ & © Ü h ¼ Т a« Ñ aÊ ) ê • à Ô ½Ô o s z ´J " ¶ é $
` í ¦ Ð © l 0 AK ¦Ñ \ ÷ þ &# Q ô Ç . \ ¦Ñ ô þ Ç H כ r2 É [ è aà ) Ô ½ o Ô \ _ K s À Ò# Q
` â ¦s ° כÜ ú ¼ Ð4 ¤½ ¨ H ` כ ¦´ ô ú Ç .
– rÛ ¼% s 7 z ´J H
Ä â º: í ' Ì t q ÷ & l \ r Û ¼% 7 s z ´J à Ô Ô ½ o s z ´ ô J Ç
Ä â ºü < ð Í t ø Ð" ¶ é rs : e Ü ¼Ù ¼ Ð Û r ¼% s 7 F 1 x÷ l & à Ô ½Ô o ` ¦ 2 [ è½ É + ºe à .
• à Ô ½Ô o s ¢ a« Ñ÷ & 2 [ è # Õ ª à Ô Ô ½ o s ' ô Ç
` â ¦4 ¤½ ¨½ Éà + º\ O . z ´] j4 ¤½ ¨½ É + כ 9 ¹ Ü e ¼ ¢ a« Ñà Ô ½Ô o ` ¦ Ð K © Å Ò H ×( ×ç Ãw d ñ 9¤ c >(compensating transaction)` ¦ z ´' K ô Ç .
– ú ´ § rë É H" f¼ | # 9 l èá Ôà ÔJ ?# Q s ~ Ód ½ ¦ ` 6 xô Ç . – ë] H j& : X h <s ' Z s Û ¼_ ß ¼l ß ¼ X <s Z ' s Û ¼ ^ _ 4 ¤ r` : ¦ë × ß ¼ H כ rq É òÖ ´ ¦& s h . ¢ ¸ô Çà Ô ½Ô o _ #
î ' Ã º' ` ¦ 6 ) x t · § ú H .
• à Ô ½Ô o s ¢ a« Ñ÷ & 2 [ è÷ & ¤ 4כ Ø(terminated)÷ &% 3 ¦ô Ç . • à Ô ½Ô o _ t } "
§ î
# î Q_ z ´' s = Q å à Ô ½Ô o rÂ É Òì r¢ a« Ñ I © a ) . z ´] jØ ¦§ 4 rÅ É Ò l % 3 u © \ { 9 r & Ü h ¼ Ð$ ÷ © &# Qe ` ¦Ã ºe Ü ¼ Ù ¼ Ð × ¼J ?# Q ¦ 1 © x_ p s Ä » Ð2 [ è| cà ¨ ºe . X <s ' Z s Û ¼ Hà Ô ½Ô o s  Òì r¢ a« Ñ÷ & z ´J \ ¦ 8 ¸à Ô ½Ô o \ _ K s À Ò# Q
` â ¦ r ë [ ß tà þ ºe ¸2 ¤Ø æì rô Ç&
ñ Ð\ ¦n Û ¼ß ¼ \ l 2 ¤ô Ç . s l 2 ¤s = Q å à Ô Ô ½ o r¢ É a« Ñ I © a ) .
15.4
Ë{ _ ä E ¤{ E
• # Qà Ô Ô ½ o _ #
' î Ã º' ` ¦] j/ N B Hs Ä » – % o Ö ¦õ " ¶ é 6 x´ òÖ ¦ Ó ¾ © – @ /l r ç y ß è • V \) T1 r> É ý a A\ " f B Ð 5000" ¶` é ¦s ^ Hà Ô Ô ½ o s ¦, T2 H> ý a A_ 10%` ¦> ý a B Ðs ^ Hà Ô Ô ½ o s .
• à Ô ½Ô o s 2 [ è÷ & r Û ¼% 7 r É 6 §× £ æ \ ¦ × ô þ Ç .
T1 :
– à Ô ½Ô o ` ¦F r (restart): à Ô ½Ô o _ ? / Â Ò Ho 7 ¸ À Ó × ¼J ?# Q¢ ¸ H èà Ôà Ô J ?# Q ¸À Ó\ _ K 2 [ è a )
Ä â º\ ë F ß r ÉÃ + ½ ºe . 2
read(A); A := A − 5000; write(A); read(B); B := B + 5000; write(B);
T2 :
read(A); temp := A â&#x2C6;&#x2014; 0.1; A := A â&#x2C6;&#x2019; temp; write(A); read(B); B := B + temp; write(B);
15.4.1
â&#x20AC;˘ Â&#x152; # QĂ Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? ` ÂŚ#
' ĂŽ Â?Ă&#x192; Â&#x; ÂşÂ? ' Â&#x;Ă´ Ă&#x2021; Ăľ s [ t` Ăž ÂŚĂ H & Ă&#x153; h ÂźÂ&#x2013; Ă?Ă&#x192; Âş' Â?Ă´ Â&#x; Ă&#x2021; Ăľ Ăź <°  ú Â&#x201C; ÂŚw $ n
s Ă ĂŤ Â&#x2013;7 Ă&#x; ¤ ĂĄ a ) Â? . â&#x20AC;˘ ÂŚ Â&#x201C;w $ n
_ Ă ĂŤ Â&#x2013;7 Ă&#x; ¤# ĂĄ Â&#x152;Ă&#x201A; Ă&#x2019;\ ÂŚÂ&#x201C; ÂŚ 9½ Ă&#x2030;M + :\  Â? HĂ Ă&#x201D; Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? readĂź _ < write Â&#x192; Ă Â&#x2013;ĂŤ Ă&#x; Â&#x2013;Â&#x201C; Ă&#x; ÂŚ 9Ă´ Ă&#x2021; .
Âż ºà Ă&#x201D; Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? ` ÂŚz ´' Â? Â&#x; l Â&#x201E; \  AĂź < B_ ĂŻ Â&#x2013;Ă&#x201C; Ă&#x; os Â? y Â&#x2022;y Â&#x152; Â&#x2022;ĂŤ Â&#x152; Â&#x2013;Âś Ă&#x; " ĂŠĂľ s ĂŤ Â&#x2013;Âś Ă&#x; " ĂŠs % 3 Â&#x201C; ÂŚ . Âż ºà Ă&#x201D; Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? ÂŚ T1 , T2 Ă ` HĂ&#x153; ÂźÂ&#x2013; Ă? Ă H & Ă&#x153; h ÂźÂ&#x2013; Ă? z ´Â? ' Â&#x; Â&#x20AC; Ăľ Â? H AÂ? H 4500" Âśs ĂŠ á &Â&#x201C; ÂŚ BÂ? H 25,500" Âśs ĂŠ Â? a ) . ĂŹ Ă?@ ø /Â&#x2013; Ă? T2 , T1 Ă HĂ&#x153; ÂźÂ&#x2013; Ă?Ă H & Ă&#x153; h ÂźÂ&#x2013; Ă?´ ' z Â? Â&#x; Â&#x20AC; Ăľ Â? H AÂ? H 4000" Âś ĂŠs á &Â&#x201C; ÂŚ BÂ? H 26,000" Âś ĂŠs Â? a ) .
T1 read(A); write(A);
read(B); write(B); read(B); write(B); 15.4.2
â&#x20AC;˘ T1 Ăľ T2 Ăľ 6 §þ ÂŁ °  s Ăş #
' ĂŽ Â?Âş Â&#x; Ă&#x192;' Â?á Â&#x; &% 3 Â&#x201C; ÂŚ .
Ă&#x17E;Ă´ s Ăť Ă&#x161;Ă&#x2021; v Ă&#x201E;c k Ă&#x2021;V Ă&#x2039; R
â&#x20AC;˘ Âź Ă&#x203A;H Ă&#x2014; ÂŚ S\  " fÂż ºà Ă&#x201D; Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? Ti Ăź < Tj _ "
§ Î
# ĂŽ Q Ii Ăź < Ij Â&#x192; 5 qK Ă&#x2026; " f1 x p Â&#x153;Ă´ Š Ă&#x2021; Â&#x201C; ÂŚ .
T2
â&#x20AC;&#x201C; sÂż Âş"
§ Î
# ĂŽ Q " fÂ&#x2013; Ă? Â? rX Ă&#x2030; <s ' \ ÂŚ] X H z Â&#x20AC; ´Â? ' Â&#x;Ă H" f\ ÂŚ Ă&#x2039; ¨# QÂ&#x2022; ¸ Ăľ Â? H 7 t ¡ § Ăş H Â? .
read(A); temp := A â&#x2C6;&#x2014; 0.1; A := A â&#x2C6;&#x2019; temp; write(A);
â&#x20AC;&#x201C; ÂŞ Ă&#x2022; Q Âż Âş"
§ Î
# ĂŽ Q °  Â&#x201C; Ăş rX Ă&#x2030; <s ' \ ÂŚ] X H z Â&#x20AC; ´Â? ' Â&#x;Ă H" f Ăľ \  %
Â&#x2020; ò Ă&#x201C;` ž ÂŚp } Ă&#x192; 9 Âşe Â&#x201D; .
read(B); B := B + 5000; write(B);
â&#x20AC;˘ Âż Âş"
§ Î
# ĂŽ Q °  Â&#x201C; Ăş rX Ă&#x2030; <s ' \ ÂŚ] X H½ Ă&#x2030; +
Ă&#x201E; â Âş read(B); B := B + temp; write(B);
â&#x20AC;&#x201C; Ă&#x153; # £ 1. Ii = read(Q), Ij = read(Q): Ă H" f Â&#x153;Â&#x203A; Š as ' \ 6 O §. ÂŁ â&#x20AC;&#x201C; Ă&#x153; # £ 2. Ii = read(Q), Ij = write(Q): Ă H" f " fÂ&#x2013; Ă?\  > %
Â&#x2020; ò Ă&#x201C;` ž ÂŚÂş §. ÂĄ
s Ă&#x203A; ÂźH Ă&#x2014; ÂŚ@ /Â&#x2013; Ă?z ´' Â?á Â&#x; &Â&#x20AC; T1 , T2 Ă HĂ&#x153; ÂźÂ&#x2013; Ă?Ă H & h Ă&#x153; ÂźÂ&#x2013; Ă?z ´Â? ' Â&#x; % ` i ÂŚM :Ăź < Ăľ °  ú . " fÂ&#x201C; ÂŚw n
` Ă $ ÂŚĂŤ Â&#x2013;7 Ă&#x; ¤ô ĂĄ Ă&#x2021; . t ĂŤ Â&#x2013; Ă&#x; 6 §þ ÂŁ °  s Ăş #
' ĂŽ Â?Ă&#x192; Â&#x; Âş' Â?á Â&#x; & Â&#x201C; Â&#x20AC; ÂŚw n $
` Ă ÂŚĂŤ Â&#x2013;7 Ă&#x; ¤ ĂĄ t Ăş § ¡Â? H . T1 read(A); A := A â&#x2C6;&#x2019; 5000;
T2
read(A); write(A);
â&#x20AC;˘ Ă Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? s ´ zÂ? ' Â&#x;Â? a Ă ) H" f\ ÂŚ â ÂŤX
ä ¡(schedule)s Ă´ Ă&#x2021; . Ă&#x203A; ÂźH Ă&#x2014; ÂŚÂ&#x201C; rĂ Ă&#x2030; Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? _ y Â&#x2022;" Â&#x152;
§ Î
# ĂŽ Q z ´' Â? Â&#x; aĂ ) Â? H" f\ ÂŚ ? /9, Âź Ă&#x203A;H Ă&#x2014; ÂŚÂ&#x201C; rĂ Ă&#x2030; Ă&#x201D; Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? _ ? /Ă&#x201A; Ă&#x2019; H" Ă f\ ÂŚĂ&#x201E; Âťt K Ă´ Ă&#x2021; .
T1 read(A); A := A â&#x2C6;&#x2019; 5000; write(A);
Ă&#x201E;c k Ă&#x2021; Ă&#x2021;V Ă&#x2039; R
â&#x20AC;&#x201C; Ă&#x153; #Â ÂŁ 3. Ii = write(Q), Ij = read(Q): Ă H" f " fÂ&#x2013; Ă?\ Â > %
Â&#x2020; ò Ă&#x201C;` ž ÂŚÂş §. ÂĄ â&#x20AC;&#x201C; Ă&#x153; # £ 4. Ii = write(Q), Ij = write(Q): Ă H" f " fÂ&#x2013; Ă?\  > %
Â&#x2020; ò Ă&#x201C;` ž ÂŚĂ&#x2026; Ă&#x2019;t ¡ §t Ăş ĂŤ Â&#x2013; Ă&#x; 6 §\ ÂŁ  Â&#x161; ¸ H" Â?
§ Î
# ĂŽ Q\ Â %
Â&#x2020; ò Ă&#x201C;` ž ÂŚÂş §. ÂĄ
T2
read(A); temp := A â&#x2C6;&#x2014; 0.1; A := A â&#x2C6;&#x2019; temp; write(A); read(B);
â&#x20AC;˘ Âş Âż"
§ Î
# ĂŽ Q °  Â&#x201C; Ăş rX Ă&#x2030; <s ' \ ÂŚÂ&#x203A; ¸ Â&#x2022; Â&#x152; Â&#x201C; ÂŚĂ&#x2018; tĂ&#x2014; Ăź ĂŚ writes Â&#x20AC; Âż Âş"
§ Î
# ĂŽ QÂ? H" fÂ&#x2013; Ă? ÂťÂ&#x17E; ¡(conflict)Ă´ â Ă&#x2021; Â&#x201C; ÂŚĂ´ Ă&#x2021; . â&#x20AC;˘ f "Â&#x2013; Ă?Ă&#x2DC; ĂŚ[ t t ¡ §Â? Ăş H"
§ Î
# ĂŽ QÂ? H0 Au \ ÂŚ Ă&#x2039; ¨# Qz ´ Â?½ Â&#x; ' Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; .
write(A); read(B); B := B + 5000; write(B);
â&#x20AC;˘ S0s Ă&#x203A; ÂźH Ă&#x2014; ÂŚ S\  " fĂ&#x2DC; ĂŚ[ t t ¡ §Â? Ăş H"
§ Î
# ĂŽ Q[ t_ Ăž 0 A \ u ÂŚ Ă&#x2039; ¨# QĂŤ Â&#x2013;Â&#x17D; Ă&#x; HĂ&#x203A; ÂźH Ă&#x2014; ÂŚs Â&#x20AC; Âż ÂşĂ&#x203A; ÂźH Ă&#x2014; ÂŚÂ&#x201C; r Ă&#x2030; ÂťÂ&#x17E; ¡ â
n Â&#x2122; (conflict equivalent)Ă´ Ă&#x2021; Â&#x201C; ÂŚĂ´ Ă&#x2021; .
B := B + temp; write(B);
â&#x20AC;˘ Âź Ă&#x203A;H Ă&#x2014; ÂŚ S Ă H Ă&#x203A; ÂźH Ă&#x2014; ÂŚĂľ Ă&#x2DC; ĂŚ[ t{ u 9 Â&#x20AC; ÂťÂ&#x17E; ¡ â Ă? Ă? Ă&#x2019;
Ă&#x2026; ~ (conflict serializability)` ] ÂŚ ĂŤ Â&#x2013;7 Ă&#x; ¤ô ĂĄ Ă&#x2021; Â&#x201C; ÂŚ Ă´ Ă&#x2021; .
s Ăź <°  s Ăş Ă&#x203A; ÂźH Ă&#x2014; · &t ¡ §Â&#x2022; Ăş ¸2 ¤Â&#x2DC; Â&#x; Ă? Â&#x153; Š Â? H Â&#x201C; â&#x20AC;Ť×&#x203A;â&#x20AC;Ź r# Ă&#x2030;
ĂŽ ' Â? Â&#x;] j# Q½ ¨$
â&#x20AC;Ť×&#x203A;â&#x20AC;Ź à šÂ&#x2122; è_ ]  s . 3
• \ V1) 6 §Û £ ¼H × ¦ rØ É æ[ tf § =$ >
` í ¦ë 7 ß ¤ á t · § ú H . T3 T4 read(Q); write(Q); write(Q);
15.5
• # Qà Ô Ô ½ o s #
' î Ü ¼ ÐÃ º' ÷ & ¦e ` ¦M :, _ à Ô Ô ½ o s 2 [ è÷ & Õ ª õ כ _ r > a> ' \ e H r É ¸ Hà Ô Ô ½ o ¸2 [ è÷ &# Q ô Ç . 15.5.1
• \ V2) 6 §Û £ ¼H × ¦ rØ É æ[ tf § =$ >
` í ¦ Ð © t · § ú t ë z ß ´ ' õ í H z ´' ô Ç õ כ ° ú . " fé í ß Hy { 9 l ü <¼ æl í ÷ ß rë ß m à Ô Ô ½ o \ _ K à º ' ÷ & H> í ß t ¦ 9K ô Ç . Õ ª Q > í ß t ¦ 9 H כ r4 É ¤¸ ô ú Çì r$ s 3 9 כ ¹ Ù ¼ н ¨ ³ & l # Q§ > . T1 read(A); A := A − 5000; write(A);
H > × « Ö ¢ X > ú Ú n
• \ V) 6 §õ £ ° ú rÛ É ¼H × ¦` ¦ ¦ 9 # Ð . T8 T9 read(A); write(A); read(A); read(B);
T5
T9 H read\ ¦Ã º ' ô ÇÊ ê\ Т a« Ñ÷ &% 3 ¦ . 7 ¤, T8 £ Ð $ ¢ a« Ñ % i ¦ . s M : T8 s ¢ a« Ñ l f \ 2 [ è÷ & T9 H T8 õ _ r > a> ' e Ü ¼Ù ¼ а s ú 2 [ è÷ &# Q ô Ç . Õ ª Q p s ¢ a« Ñ % Ü i ¼Ù ¼ Ð2 [ è½ Éà + º \ O .
read(B); B := B − 1000; write(B);
• s% ! 3 r4 ¤½ Éà + º\ O HÛ ¼H × ¦` ¦ r4 ¤ ¦ Ô 0 xÛ p ¼ × H ¦s ô Ç .
read(B); B := B + 5000; write(B);
• ¬ m¡ ´ æ â «X
ä ·(recoverable schedule)s ê Í Û ø ¼ × H ¦\ e H ¸ H à Ô Ô ½ o Ti ü © < Tj \ @ /K Tj Ti \ _ K l 2 ¤ aX ) <s ' \ ¦{ 9 Ü ¼ Ti _ ¢ a Ñ « í (commit operation)s ß Tj Ð · ¡" ú fe HÛ ¼ × H ¦` ¦´ ô ú Ç .
read(A); A := A + 1000; write(A); 15.4.3
H > ×V Ë R
½Ç Äc k ÇV Ë R
15.6
• ¿ ºÛ ¼H × ¦ Sü < S0s 6 §[ £ j t ¸| ` ¦Ø æ7 ¤ á É Ú
n (view equivalent)ô Ç ¦ô Ç .
• \ V) 6 §õ £ ° ú rÛ É ¼H × ¦` ¦ ¦ 9 # Ð . T10 T11 T12 read(A); read(B); write(A); read(A); write(A); read(A);
– ÐZ 1. y Ì X <s ' Ó Q\ ½ @ /K Ti Û ¼H ¦ S\ × " f Q_ íl ú כ °` ¦{ 9 H Û ¼H × ¦ S0\ " f ¸ Ti Q_ íl ° `כ ú ¦{ # 9 Q ô Ç . – ÐZ 2. y Ì X <s ' Ó Q\ ½ @ /K Ti Û ¼ H × ¦ S\ " f read(Q)\ ¦ Ã º ' ¦ s { l 9 Tj _ write(Q)\ _ K H° `כ ú ¦{ 9 H Û ¼H × ¦ S0 \" f ¸ Ti _ read(Q) H Sü <° ú r É Tj _ write(Q)\ _ K H° `כ ú ¦{ # 9 Q ô Ç .
sM : T10 s 2 [ è÷ & T11 õ T12 ¸¿ º2 [ è÷ &# Q ô Ç . s ³ & ` © ¦¥ > o t ·` 9 c(cascading rollback)s ô Ç .
– ÐZ 3. y Ì X <s ' Ó Q\ ½ @ /K Û ¼H × ¦ S\ " f write(Q)\ ¦þ j7 xÜ á ¼ Ðà º ' ô Çà Ô ½Ô o s Û ¼H × ¦ S0 \" f ¸þ j7 xÜ á ¼ Ð write(Q)\ ¦Ã º' K ô Ç .
• W\ ¦Ñ þ r É | Ðf à t · § ú r É ³ & Ü © ¼ е ÏÒ 1 t q · t § ú ô Ç .
• Û ¼H × ¦ S í H Û ¼H × ¦õ Â Ó{ u 9 É ÚÒ Ý Ï
~ (view serializability)` ] Å ¦ë 7 ß ¤ô á Ç ¦ô Ç .
• W\ ¦Ñ s þ { # 9 Q t · § ú HÛ ¼H × ¦` ¦è >¥ > o tâ «
X ·(cascadeless schedule)s ä ô Ç .
• \ V) 6 §Û £ ¼H × ¦ rÂ É Óf § =$ >
` í ¦ë 7 ß ¤ á t ë Ø ß æ[ t § f =$ >
í rë É á ß ¤ 7 t ú § · H . T3 read(Q);
T4
R Åê ì ø > ú Ú n
15.7
ô w ÉV m Ë8 R ý ô
T6
• ¼ ÛH × ¦s Ø æ[ tf § =$ >
¢ í ¸ HÂ Óf § =$ >
` í ¦ë 7 ß ¤ á ¦q WÛ ¼H × ¦s © | Ðf à .
write(Q);
• î #'
Ü ¼ ÐÃ º' ÷ & Hà Ô ½Ô o [ ts þ f § =$ >
` í ¦ë 7 ß ¤ á ¦ WÛ ¼H × ¦s ÷ & ¸2 ¤ Ð K © Å Ò H ª Ç# ô
' î ] j# Ql Z s O e .
write(Q); write(Q);
4
Ă&#x2039;{ _ ä E< g# a
16
Âż s ºà Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? _ 6 §þ ÂŁ °  s Ăş Ă&#x203A; ÂźH Ă&#x2014; ÂŚ| cĂ&#x192; ¨ Âşe Â&#x201D; .
16.1
p? c X Â&#x152; ÂŁM Â&#x2DC; m Â&#x152;Âł Â&#x17D;z ÂşÂ&#x201A; ºß Ă&#x161; Â&#x20AC;
16.1.1
X p? c Â&#x152; ÂŁ
T1 lock-X(B);
T2
CCM grant(B, T1 );
â&#x20AC;˘  Â&#x2122;F Â&#x152; KÂ&#x2014; ¸Ă&#x2014; Âź
read(B); B := B â&#x2C6;&#x2019; 5000; write(B); unlock(B);
â&#x20AC;&#x201C; / NĂ&#x201E; B  Â&#x2122;F Â&#x152; K: Ti Q\  @ /Ă´ Ă&#x2021;/ NĂ&#x201E; B  Â&#x2122;F Â&#x152; K` ÂŚS Â&#x2030;1 \ q p Â&#x20AC; Q\  @ /K 9l { ĂŤ Â&#x2013; 0 Ă&#x; x p .
lock-S(A);
â&#x20AC;&#x201C; C  Â&#x2122;F Â&#x152; K: Ti Q\  @ /Ă´ Ă&#x2021;C  Â&#x2122;F Â&#x152; K` ÂŚS Â&#x2030;1 \ q p Â&#x20AC; Q\  @ /K { l 9 Ăź <ĂŚ Âźl Â&#x2014; ¸¿ Âş 0 x p .
grant(A, T2 ); read(A); unlock(A); lock-S(B); grant(B, T2 );
â&#x20AC;˘ / NĂ&#x201E; B  Â&#x2122;F Â&#x152; KÂ&#x201C; r SÂ&#x2013; Ă&#x2030; Ă? ? /Â&#x201C; ÂŚ, C  Â&#x2122;F Â&#x152; KÂ&#x201C; r XÂ&#x2013; Ă&#x2030; Ă? p ¡ .
read(B); unlock(B); display(A + B);
â&#x20AC;˘ Ă Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? Â&#x201C; ry Ă&#x2030; Â&#x2022;X Â&#x152; <s ' \ ÂŚ] H X l Â&#x201E; \  Ă&#x2022; ÂŞX <s ' \  @ /K Ă&#x192; ÂşÂ? ' Â&#x;½ Ă&#x2030;Â&#x192; + Ă Â&#x2013;\ Ă&#x;  & ] h Ă´ X Ă&#x2021; Â&#x2122;F Â&#x152; K` ÂŚÂ&#x20AC; $ S Â&#x2030;1 \ qK p Ă´ Ă&#x2021; . s \ ÂŚ#
' ĂŽ Â?] Â&#x; j# QÂ&#x203A; ao ' \  >  Â&#x2122; Â&#x152; F K` ÂŚâ&#x20AC;Ť×&#x203A;â&#x20AC;Ź š' A Ăľ Â&#x20AC; Â&#x203A; ao ' Â? H) Â&#x2021;6 x  Ă&#x201A; Ă&#x2019;Ă´ Ă&#x2021; .
lock-X(A); grant(A, T1 ); read(A); A := A + 5000; write(A); unlock(A);
â&#x20AC;˘  ù¨ Â&#x160;$ 8
Â&#x2020; Ă Ă&#x160;Ă&#x192; < Âş
S X
S true false
X false false
Ă&#x2022; ÂŞ Q s X > O Ă&#x203A; ÂźH Ă&#x2014; · &Â&#x20AC; T1 Ăľ T2 Ă H & Ă&#x153; h Âź Â&#x2013;z Ă? ´' Â?Â? Â&#x; a ) Ăľ Ăź < Â? r Ă&#x2030; Ăľ \ ÂŚ T2 Ă&#x2DC; Τ 4 > Â? a ) . s Â&#x201C; â&#x20AC;Ť×&#x203A;â&#x20AC;Ź r T1 s Ă&#x2030; -Ă Âş{ 9 n B\ Â&#x201D;  @ /Ă´ Ă&#x2021; Â&#x2122;F Â&#x152; K` ÂŚK j ] % l i M :ĂŤ Hs .
7 ¤, / ÂŁ NĂ&#x201E; B  Â&#x2122;F Â&#x152; K sÂ? aX ) <s ' \  @ /K / NĂ&#x201E; B  Â&#x2122;F Â&#x152; Kâ&#x20AC;Ť×&#x203A;â&#x20AC;Ź š AÂ&#x201C; Ăľ ' r) Ă&#x2030; Â&#x2021;6 xá  &t ĂŤ Â&#x2013; Ă&#x; Â? rš Ă&#x2030; â&#x20AC;Ť'×&#x203A;â&#x20AC;Ź AÂ&#x201C; Ăľ r) Ă&#x2030; Â&#x2021;6 xá  &t ¡ §Â? Ăş H . ) Â&#x2021;6 xá  &t ¡ §Â? Ăş Hâ&#x20AC;Ť×&#x203A;â&#x20AC;Ź š' AÂ&#x201C; Ăľ r Ă&#x2030; ù¨ Â&#x160;á 8 &t ¡ §Â? Ăş H Â&#x2122;F Â&#x152; K` ÂŚS Â&#x2030; \ 1 q p Â&#x201C; ÂŚe Â? Â&#x201D; H Â? r¸ Ă&#x2030; Â&#x2014;Â&#x17D; HĂ Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? s  Â&#x2122;F Â&#x152; K` ÂŚK ] j Ă&#x2030;M + ½ : t @ /l > Â? a ) .
â&#x20AC;˘ V \2) 6 §þ ÂŁ °  s Ăş  Â&#x2122;F Â&#x152; KK ] j\ ÂŚĂ Ă&#x201D; Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? _ = QĂ&#x153; ĂĽ Âź Ă?t Â&#x2013; Â&#x192; r Â&#x2020; Âż Âş> h_ Ă Ă&#x201D; Â&#x2122;Ă&#x201D; ½ oÂ&#x201A; Â? s e Â&#x201D; Â&#x201C; ÂŚ .
â&#x20AC;˘ Ă Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? Â&#x201C; r Ă&#x2030; Â&#x2122;F Â&#x152; K` ÂŚS Â&#x2030;1 \ qĂ´ p Ă&#x2021;Ă&#x160; ĂŞ\  Â&#x192; ] jÂ&#x17D; Ht Ă&#x2022; ÂŞ â&#x20AC;Ť×&#x203A;â&#x20AC;Ź ÂŚK ` ] j½ Ă&#x2030;Ă&#x192; + Âşe Â&#x201D; . Ă&#x2022; ÂŞ Q Ă&#x2022; ÂŞX <s ' \ ÂŚ] X H H1 Â? xĂŽ l Â&#x2013;\ Ă&#x;   Â&#x2122;F Â&#x152; K` ÂŚ >5 qÂť Ă&#x2026; Ă&#x201E;t K Ă´ Ă&#x2021; . â&#x20AC;˘ \ V1) 6 §þ ÂŁ °  Â&#x201C; Ăş rÂż Ă&#x2030; Âş> h_ Ă Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? s e Â&#x201D; Â&#x201C; ÂŚ . T1 : lock-X(B); read(B); B := B â&#x2C6;&#x2019; 5000; write(B); unlock(B); lock-X(A); read(A); A := A + 5000; write(A); unlock(A); T2 : lock-S(A); read(A); unlock(A); lock-S(B); read(B); unlock(B); display(A + B);
T1 :
lock-X(A); read(A); A := A â&#x2C6;&#x2019; 5000; write(A); lock-X(B); read(B); B := B + 5000; write(B); unlock(A); unlock(B);
T2 :
lock-S(A); read(A); lock-S(B); read(B); display(A + B); unlock(A); unlock(B);
Âż s ºà Ă&#x201D;Â&#x2122; ½Ă&#x201D; oÂ&#x201A; Â? _ \ V1% Â&#x192;! Ă&#x203A; 3 ÂźH Ă&#x2014; ÂŚ| cĂ&#x192; ¨ Âş\ O . s X> O Â&#x20AC; Â&#x2020; Ă&#x201C; ½ Â&#x153; Š Ăľ Â? Hf § Â&#x201D; =$ >
` Ă ÂŚĂ&#x201E; Âťt Ă´ Ă&#x2021; . Ă&#x2022; ÂŞ Q 5
ë ß 6 §õ £ ° s ú Û ¼H × ¦÷ &% 3 ¦ . T1 lock-X(B);
T2
CCM grant(B, T1 );
read(B); B := B − 5000; write(B); unlock(B); lock-S(A); grant(A, T2 ); read(A); lock-S(B); lock-X(A);
s
Ä â º T2 _ B\ @ /ô Ç/ NÄ B » F K r) É 6 x| cà ¨ º\ O Ü ¼9, ì Í@ ø / Ð T1 _ A\ @ /ô Ç C F K ¸) 6 x| c ¨ à º\ O . 7 ¤, £ § Ì Ã I © µ ÏÒ 1 t q % i . § Ì Ã I © ÏÒ 1 µ t q _ à Ô Ô ½ o ` ¦\ ¦Ñ r þ & ô Ç . • § Ì Ã I © µ ÏÒ 1 t q H 9' { $ a
s í 0 AC ÷ & H כ Ð H ñ a ) . • F Kl Z _ O ¢ ¸ rë É H] j HÏ UÅ ã Òa >s Ë . _ à Ô ½Ô o s / NÄ B » F K` ¦S 1 \ q p ¦e ` ¦M : r É à Ô ½Ô o s C F K` ¦כ ¹' A õ ) 6 x½ ÉÃ + º\ O # Q@ /l > a ) . s s \ rà É Ô ½Ô o [ ts þ > 5 q/ Å NÄ B » F K` ¦כ ¹' A õ Á ºô Ç@ /l ½ ÉÃ + ºe > a ) .
6