Académique Documents
Professionnel Documents
Culture Documents
HÖ c¬ së d÷
liÖu
Gi¶ sö c¸c ®iÒu lÖ míi cña chÝnh phñ cho phÐp ng©n hµng tiÕt kiÖm cung
cÊp c¸c th«ng tin kiÓm tra c¸c tµi kho¶n. Nh− thÕ mét sè c¸c files th−êng trùc
míi sÏ ®−îc t¹o ra ®Ó chøa c¸c th«ng tin vÒ tÊt c¶ c¸c kiÓm tra tµi kho¶n hiÖn cã
trong ng©n hµng vµ c¸c ch−¬ng tr×nh øng dông míi cÇn ®−îc viÕt ra. V× thÕ theo
thêi gian nhiÒu files nhiÒu ch−¬ng tr×nh øng dông ®−îc thªm vµo hÖ thèng.
HÖ thèng xö lý file (file-processing system) m« t¶ ë trªn ®−îc hç trî bëi
mét hÖ ®iÒu hµnh. NhiÒu mÉu tin th−êng trùc ®−îc l−u tr÷ trong nhiÒu files vµ
mét sè c¸c ch−¬ng tr×nh øng dông kh¸c nhau còng ®−îc viÕt ra ®Ó trÝch hoÆc
thªm c¸c mÉu tin vµo c¸c files thÝch hîp. L−îc ®å nµy cã mét sè bÊt lîi chÝnh:
ë ®©y c¸c m«i tr−êng xö lý file quy −íc kh«ng cho phÐp d÷ liÖu cÇn thiÕt
®−îc t×m kiÕm mét c¸ch hîp lý vµ hiÖu qu¶. C¸c hÖ thèng t×m kiÕm th«ng tin
tèt h¬n ph¶i ®−îc ph¸t triÓn cho viÖc sö dông chung.
d÷ liÖu. Sau nµy, chóng ta sÏ thÊy c¸c quan niÖm vµ c¸c thuËt to¸n mµ ®· ®−îc
ph¸t triÓn cho c¸c hÖ c¬ së d÷ liÖu ®Ó gi¶i quyÕt c¸c vÊn ®Ò ®· bµn ë trªn.
Khung Nh×n 1
Møc vËt lý
Møc quan niÖm lµ møc cao tiÕp theo, nã m« t¶ mét m« h×nh d÷ liÖu ph¶n
¸nh thÕ giíi thùc mµ ta cÇn l−u tr÷ trong c¬ së d÷ liÖu. ë ®©y toµn bé c¬ së d÷
liÖu ®−îc m« t¶ nh− lµ mét sè l−îc ®å quan hÖ ®¬n gi¶n. MÆc dï viÖc hiÖn thùc
c¸c l−îc ®å quan hÖ nµy ë møc quan niÖm cã thÓ bao gåm nhiÒu cÊu tróc phøc
t¹p ë møc vËt lý, ng−êi sö dông ë møc quan niÖm kh«ng cÇn quan t©m ®Õn
chóng. Møc quan niÖm ®−îc dïng cho ng−êi qu¶n trÞ c¬ së d÷ liÖu vµ c¸c lËp
tr×nh viªn, hä ph¶i quyÕt ®Þnh nh÷ng th«ng tin nµo ®−îc gi÷ l¹i trong c¬ së d÷
liÖu vµ lËp tr×nh nh− thÕ nµo.
ë møc quan niÖm, mçi mÉu tin ®−îc m« t¶ nh− mét ®Þnh nghÜa kiÓu, ®−îc
minh häa ë trªn, vµ c¸c mèi quan hÖ gi÷a c¸c kiÔu mÉu tin nµy còng ph¶i ®−îc
®Þnh nghÜa. Cuèi cïng ë møc khung nh×n, mét vµi khung nh×n cña c¬ së d÷ liÖu
®−îc ®Þnh nghÜa. VÝ dô nh÷ng ng−êi thu ng©n chØ thÊy mét phÇn c¬ së d÷ liÖu lµ
th«ng tin vÒ tµi kho¶n kh¸ch hµng. Hä kh«ng thÓ truy xuÊt tíi th«ng tin liªn quan
®Õn tiÒn l−¬ng cña nh©n viªn.
HÖ qu¶n trÞ c¬ së d÷ liÖu cho phÐp ta tæ chøc c¬ së d÷ liÖu, l−u tr÷ nã trªn
thiÕt bÞ ghi nhí vµ cung cÊp cho chóng ta c¸c thñ tôc ®Ó söa ®æi cÊu tróc c¬ së d÷
liÖu, cËp nhËt d÷ liÖu vµ truy vÊn trªn c¸c d÷ liÖu.
1.3.2 C¸c chøc n¨ng cña hÖ qu¶n trÞ c¬ së d÷ liÖu
C¸c hÖ qu¶n trÞ c¬ së d÷ liÖu cung cÊp cho chóng ta nh÷ng chøc n¨ng sau:
1) Hç trî mét m« h×nh d÷ liÖu ®Ó tæ chøc c¬ së d÷ liÖu nghÜa lµ mét c«ng
cô ®Ó trõu t−îng hãa mét c¸ch toµn häc thÕ giíi thùc cÇn qu¶n lý vµ th«ng qua
®ã ng−êi sö dông cã thÓ thÊy ®−îc c¸c d÷ liÖu cña thÕ giíi thùc nµy.
VÝ dô: Tæ chøc th«ng tin vÒ Sinh viªn gåm c¸c th«ng tin:
M· sinh viªn
Hä tªn
§Þa chØ
N¨m sinh
Líp
M« h×nh d÷ liÖu quan hÖ cho ta thiÕt lËp mét l−îc ®å quan hÖ :
Sinh viªn (msv, hä tªn, ®Þa chØ, n¨m sinh , líp).
T−¬ng tù, ®Ó tæ chøc th«ng tin vÒ m«n häc gåm c¸c th«ng tin:
m· m«n häc
Tªn m«n
sè tiÕt
Häc kú
Ta ®−îc l−îc ®å quan hÖ sau: M«n häc ( m· m«n häc, tªn m«n häc, tiÕt,
häc kú)
2) Hç trî cho mét vµi ng«n ng÷ lËp tr×nh cÊp cao cho phÐp ng−êi sö dông
®Þnh nghÜa cÊu tróc d÷ liÖu, truy xuÊt d÷ liÖu. Ngoµi ra cßn cung cÊp mét ng«n
ng÷ ®Ó thao t¸c d÷ liÖu vµ truy vÊn d÷ liÖu. C¸c ng«n ng÷ ®ã ®−îc gäi lµ ng«n
ng÷ hái (Query Language), trong ®ã ng«n ng÷ ®−îc sö dông réng r·i nhÊt lµ
ng«n ng÷ SQL (Structured Query Language )
VÝ dô: Gi¶ sö ta cã m« h×nh d÷ liÖu quan hÖ gåm hai l−îc ®å quan hÖ sau:
Nh©nviªn ( tªnnh©nviªn ,Phßng)
Phßngban ( Phßng, Tr−ëngphßng )
Th«ng tin cña hai l−îc ®å quan hÖ ®−îc m« t¶ ë h×nh 1.4
Nh©n viªn Phßng Ban
Tªn nh©n viªn Phßng Phßng Tr−ëng phßng
Lª V¨n A §µo T¹o KÕ ho¹ch Ph¹m V¨n F
TrÇn ThÞ B Hµnh ch¸nh KÕ to¸n NguyÔn ThÞ G
NguyÔn V¨n C KÕ to¸n §µo T¹o Lª ThÞ H
Lª Thi E KÕ ho¹ch Hµnh ch¸nh Vâ V¨n T
H×nh 1.4 B¶ng thÓ hiÖn l−îc ®å quan hÖ
* Ai lµ tr−ëng phßng cña nh©n viªn Lª V¨n A ?
¸p dông c©u lÖnh cña ng«n ng÷ SQL ta tr¶ lêi c©u hái trªn nh− sau::
Select tr−ëngphßng
From nh©nviªn, phßngban
Where nh©nviªn.tªn nh©n viªn = ‘Lª V¨n A ‘ and
nh©nviªn. phßng = phßngban.phßng
* Cho biÕt danh s¸ch nh©nviªn cña tr−ëng phßng Lª ThÞ H ?
¸p dông c©u lÖnh cña ng«n ng÷ SQL ta tr¶ lêi c©u hái trªn nh− sau::
Select Tªnnh©nviªn
From Nh©nviªn, phßngban
Where Phßngban.tr−ëngphßng = ‘Lª ThÞ H’ and
nh©n viªn . phßng = phßngban. phßng
* Cho biÕt tªn nh÷ng ng−êi thuéc phßng kÕ to¸n
H×nh 1.5 Giao t¸c gi÷a cöa hµng víi kho hµng
VÝ dô: Gi¶ sö cïng lóc hai cöa hµng giao dÞch víi kho hµng vµ cÇn cung
cÊp 90 mÆt hµng A cho cöa hµng 1 vµ 30 cho cöa hµng B. NÕu kh«ng qu¶n lý
chÆt chÏ th× kho hµng cã thÓ ®ång ý cÊp cho c¶ 2 cöa hµng. Do ®ã ph¶i thùc hiÖn
xong giao dÞch cña mét cöa hµng th× giao dÞch cña cöa hµng cßn l¹i míi ®−îc
thùc hiÖn. khi cã mét giao dÞch thay ®æi mét d÷ liÖu th× hÖ qu¶n trÞ c¬ së d÷ liÖu
sÏ ng¨n c¶n mäi giao dÞch kh¸c truy xuÊt ®Õn d÷ liÖu nµy cho ®Õn khi giao dÞch
tr−íc ®ã ®· kÕt thóc.
4) Kh¶ n¨ng b¶o vÖ vµ phôc håi d÷ liÖu : HÖ qu¶n trÞ c¬ së d÷ liÖu cã kh¶
n¨ng b¶o vÖ vµ phôc håi d÷ liÖu tõ c¸c hÖ thèng bÞ h− háng do c¸c t¸c nh©n:
- Virus
- Ch−¬ng tr×nh kh«ng hoµn chØnh, thiÕu an toµn nªn bÞ háng bëi
chÝnh ng−êi sö dông.
- §Üa h−
C¬ chÕ b¶o vÖ d÷ liÖu lµ backup, nÐn l¹i d÷ liÖu l¹i th−êng xuyªn vµ cÊt
chóng vµo mét thiÕt bÞ l−u tr÷ an toµn ®ång thêi l−u tr÷ mäi giao dÞch vµo mét
nhËt ký. Ngoµi ra khi hÖ thèng bÞ háng hÖ qu¶n trÞ c¬ së d÷ liÖu cho phÐp phôc
håi l¹i phÇn nµo c¸c d÷ liÖu bÞ mÊt dùa vµo nhËt ký giao dÞch ®ã.
5) §iÒu khiÓn truy xuÊt: HÖ qu¶n trÞ c¬ së d÷ liÖu cã kh¶ n¨ng giíi h¹n
quyÒn truy xuÊt d÷ liÖu cña ng−êi sö dông vµ h¬n n÷a cßn kiÓm tra tÝnh hîp lÖ
cña d÷ liÖu khi ®−a vµo c¬ së d÷ liÖu
• QuyÒn truy xuÊt: HÖ qu¶n trÞ c¬ së d÷ liÖu cho phÐp cÊp hoÆc lÊy ®i
c¸c quyÒn th©m nhËp vµ truy xuÊt c¬ së d÷ liÖu cho nh÷ng ng−êi sö dông nh−
c¸c quyÒn:
- Kh«ng ®−îc xem d÷ liÖu
- §−îc xem nh−ng kh«ng ®−îc söa d÷ liÖu
- §−îc xem vµ ®−îc söa d÷ liÖu
Mçi ng−êi sö dông ®−îc cÊp cho mét quyÒn truy xuÊt vµ quyÒn ®ã ®−îc l−u
tr÷ trong 1 b¶ng ph©n quyÒn.
• KiÓm tra tÝnh hîp lÖ cña d÷ liÖu: hÖ qu¶n trÞ c¬ së d÷ liÖu cho phÐp
rµng buéc c¸c d÷ liÖu nhÊt lµ c¸c d÷ liÖu nhËp ®Ó thÓ hiÖn tÝnh toµn vÑn cña d÷
liÖu.
1.3.3 Kh¸i niÖm vÒ sù ®éc lËp d÷ liÖu vµ ch−¬ng tr×nh
Trong phÇn 1.2 chóng ta ®· ®Þnh nghÜa kiÕn tróc cña hÖ c¬ së d÷ liÖu. KiÕn
tróc ba líp nµy cho phÐp thay ®æi cÊu tróc ë mét líp mµ kh«ng ¶nh h−ëng ®Õn
líp cao h¬n kÕ nã. §iÒu nµy ®−îc gäi lµ ®éc lËp d÷ liÖu. §éc lËp d÷ liÖu vµ
ch−¬ng tr×nh lµ cÊu tróc d÷ liÖu dï cã thay ®æi nh−ng ch−¬ng tr×nh vÉn kh«ng
thay ®æi.
Ta cã 2 lo¹i ®éc lËp d÷ liÖu:
* §éc lËp d÷ liÖu vËt lý: lµ tr−êng hîp s¬ ®å vËt lý bÞ thay ®æi (nghÜa lµ
®−ßng ®Þa chØ th− môc d÷ liÖu bÞ thay ®æi, c¸c cÊu tróc tËp tin bÞ thay ®æi nh−ng
s¬ ®å ý niÖm kh«ng thay ®æi vµ nh− vËy c¸c ch−¬ng tr×nh øng dông còng kh«ng
ph¶i thay ®æi. §Ó lµm ®−îc ®iÒu nµy ta ph¶i thay ®æi c¸c phÐp biÕn ®æi tõ s¬ ®å
vËt lý
* §éc lËp d÷ liÖu luËn lý: lµ khi s¬ ®å ý niÖm thay ®æi nh−ng s¬ ®å ngoµi
kh«ng thay ®æi nghÜa lµ c¸c ch−¬ng tr×nh øng dông kh«ng cÇn ph¶i viÕt l¹i,
tõ ®ã ta ph¶i thay ®æi c¸c phÐp biÕn ®æi tõ s¬ ®å ngoµi ®Õn s¬ ®å ý niÖm.
1.3.4 Bé qu¶n lý c¬ së d÷ liÖu
Bé qu¶n lý c¬ së d÷ liÖu lµ mét module ch−¬ng tr×nh cung cÊp sù giao tiÕp
gi÷a d÷ liÖu ë møc thÊp ®−îc l−u tr÷ trong c¬ së d÷ liÖu víi c¸c ch−¬ng tr×nh øng
dông. Bé qu¶n lý c¬ së d÷ liÖu cã nhiÖm vô thùc hiÖn c¸c chøc n¨ng ®−îc tr×nh
bµy ë phÇn 1.3.2
• Bé xö lý c©u truy vÊn (Query processor): Bé nµy biªn dÞch c¸c ph¸t biÓu
trong ng«n ng÷ hái thµnh c¸c c©u lÖnh ë møc thÊp sao cho bé qu¶n lý c¬ së d÷
liÖu cã thÓ hiÓu ®−îc. H¬n n÷a nã cßn tèi −u ho¸ c©u truy vÊn sao cho viÖc thùc
thi c©u hái ®−îc nhanh h¬n.
• Bé tiÒn biªn dÞch DML (DML precompiler): Bé tiÒn biªn dÞch DML dÞch
c¸c ph¸t biÓu cña ng«n ng÷ hái ®−îc nhóng trong ng«n ng÷ chñ thµnh c¸c m·
lÖnh thÝch hîp.
• Bé biªn dÞch DDL (DDL compiler): Biªn dÞch c¸c ph¸t biÓu DDL thµnh
mét tËp c¸c b¶ng.
• C¸c files d÷ liÖu: l−u tr÷ chÝnh c¬ së d÷ liÖu.
• Tù ®iÓn d÷ liÖu: Chøa c¸c d÷ liÖu ®Þnh nghÜa d÷ liÖu tøc toµn bé c¸c ®Þnh
nghÜa cña c¬ së d÷ liÖu.
• C¸c chØ môc: Cung cÊp viÖc truy xuÊt nhanh c¸c mÉu d÷ liÖu.
Toµn bé hÖ thèng qu¶n trÞ c¬ së d÷ liÖu ®−îc m« t¶ trong h×nh 1.6.
Users
Ng−êi khai th¸c LËp tr×nh viªn Chuyªn viªn Ng−êi qu¶n trÞ
CSDL
Bé qu¶n lý
file
File d÷ liÖu
Tù ®iÓn d÷ liÖu
(Entity--Relationship Model)
♦ M« h×nh thùc thÓ mèi liªn kÕt (Entity
M« h×nh thùc thÓ mèi liªn kÕt (ER) dùa trªn sù nhËn thøc vÒ thÕ giíi thùc
bao gåm mét tËp c¸c ®èi t−îng c¬ b¶n ®−îc gäi lµ thùc thÓ (entity) vµ c¸c mèi
liªn kÕt (relationship) gi÷a c¸c ®èi t−îng nµy. Mét thùc thÓ lµ mét ®èi t−îng mµ
ph©n biÖt ®−îc víi nh÷ng ®èi t−îng kh¸c bëi mét tËp thuéc tÝnh ®Æc t¶.
VÝ dô c¸c thuéc tÝnh number vµ balance m« t¶ mét sè tµi kho¶n cô thÓ trong
ng©n hµng vµ ng©n kho¶n cña nã. Mét mèi liªn kÕt lµ mèi quan hÖ gi÷a c¸c thùc
thÓ.
VÝ dô mèi liªn kÕt CustAcct liªn kÕt kh¸ch hµng víi mçi tµi kho¶n cña hä.
TËp tÊt c¶ c¸c thùc thÓ cïng kiÓu vµ tËp c¸c mèi liªn kÕt cã cïng kiÓu ®−îc
gäi lµ tËp thùc thÓ vµ tËp mèi liªn kÕt t−¬ng øng.
Bæ sung cho c¸c thùc thÓ vµ c¸c liªn kÕt, m« h×nh thùc thÓ mèi liªn kÕt ER
thÓ hiÖn mét vµi rµng buéc mµ néi dung d÷ liÖu trong c¬ së d÷ liÖu ph¶i tu©n
theo. Mét trong c¸c rµng buéc quan träng lµ rµng buéc sè phÇn tö ¸nh x¹
(mapping cardinalities), nã biÓu diÔn sè l−îng c¸c thùc thÓ cña tËp thùc thÓ nµy
cã thÓ liªn kÕt sè thùc thÓ cña tËp thùc thÓ kia.
CÊu tróc logic cña toµn bé c¬ së d÷ liÖu cã thÓ d−îc biÓu diÔn mét c¸ch ®å
häa b»ng mét s¬ ®å thùc thÓ mèi liªn kÕt ER (ER diagram) bao gåm c¸c thµnh
phÇn sau:
• H×nh ch÷ nhËt thÓ hiÖn tËp thùc thÓ.
• H×nh Elip thÓ hiÖn c¸c thuéc tÝnh.
• H×nh thoi thÓ hiÖn mèi liªn kÕt gi÷a c¸c tËp thùc thÓ.
• §−êng nèi liªn kÕt c¸c thuéc tÝnh víi tËp thùc thÓ vµ tËp thùc thÓ
víi mèi liªn kÕt.
Mçi thµnh phÇn ®Òu cã tªn mµ thùc thÓ vµ mèi liªn kÕ thÓ hiÖn chóng.§Ó
minh häa, ta xÐt mét phÇn hÖ thèng c¬ së d÷ liÖu ng©n hµng bao gåm c¸c kh¸ch
hµng vµ c¸c tµi kho¶n cña hä. S¬ ®å ER t−¬ng øng ®−îc minh häa ë h×nh 2.1
street city
name
number balance
H×nh 2.1 S¬ ®å ER
Object--Oriented Model)
♦ M« h×nh h−íng ®èi t−îng (The Object
T−¬ng tù m« h×nh ER, m« h×nh h−íng ®èi t−îng còng dùa trªn mét tËp c¸c
®èi t−îng. Mét ®èi t−îng chøa c¸c gi¸ trÞ ®−îc l−u trong c¸c biÕn riªng (instance
variables) bªn trong ®èi t−îng. Kh«ng nh− c¸c m« h×nh h−íng mÉu tin, c¸c gi¸
trÞ nµy tù nã lµ c¸c ®èi t−îng. Do ®ã, c¸c ®èi t−îng chøa c¸c ®èi t−îng ®Õn mét
®é s©u lång vµo nhau tïy ý. Mét ®èi t−îng còng chøa phÇn m· lÖnh ®Ó ®iÒu hµnh
®èi t−îng. C¸c phÇn m· lÖnh nµy ®−îc gäi lµ ph−¬ng thøc (method).
C¸c ®èi t−îng chøa cïng kiÓu gi¸ trÞ vµ cïng kiÓu ph−¬ng thøc ®−îc gom
l¹i trong mét líp (class). Mét líp cã thÓ ®−îc xem nh− mét ®Þnh nghÜa kiÓu cho
c¸c ®èi t−îng.
Mét c¸ch duy nhÊt mµ mét ®èi t−îng cã thÓ truy xuÊt d÷ liÖu cña mét ®èi
t−îng kh¸c lµ gäi mét ph−¬ng thøc cña ®èi t−îng ®ã. §iÒu nµy ®−îc gäi lµ gëi
th«ng b¸o ®Õn ®èi t−îng.
§Ó minh häa m« h×nh h−íng ®èi t−îng, ta xÐt mét ®èi t−îng thÓ hiÖn tµi
kho¶n ng©n hµng (bank account). §èi t−îng nµy chøa c¸c biÕn number vµ
balance thÓ hiÖn sè tµi kho¶n vµ ng©n kho¶n cña nã. §èi t−îng nµy còng chøa
ph−¬ng thøc chi tr¶ l·i (pay-interest) (xem h×nh 2.2).
Gi¶ sö tr−íc ®©y ng©n hµng chi tr¶ l·i 6% cho tÊt c¶ c¸c tµi kho¶n nh−ng
nay ng©n hµng thay ®æi c¸ch chi tr¶ l·i nh− sau: tr¶ l·i 5% ®èi víi c¸c tµi kho¶n
cã ng©n kho¶n nhá h¬n $1000 vµ 6% ®èi víi c¸c tµi kho¶n cã ng©n kho¶n lín
h¬n hay b»ng $1000. §èi víi hÇu hÕt c¸c m« h×nh, sù thay ®æi nµy dÉn ®Õn viÖc
thay ®æi m· lÖnh trong mét hoÆc nhiÒu ch−¬ng tr×nh øng dông. Nh−ng trong m«
h×nh h−íng ®èi t−îng th× ®iÒu nµy chØ cÇn thay ®æi trong ph−¬ng thøc pay-
interest mµ th«i.
Balance
Ph−¬ng thøc Pay_Interest
2.1.3 C¸c m« h×nh dùa trªn mÉu tin (Record-Based Logical Models)
C¸c m« h×nh dùa trªn mÉu tin ®−îc sö dông ®Ó m« t¶ d÷ liÖu ë c¸c møc
quan niÖm vµ khung nh×n. Ng−îc l¹i víi c¸c m« h×nh dùa trªn ®èi t−îng, chóng
®−îc dïng cho viÖc ®Æc t¶ toµn bé cÊu tróc logic cña c¬ së d÷ liÖu vµ cung cÊp
mét m« t¶ møc cao h¬n cho viÖc hiÖn thùc c¬ së d÷ liÖu vËt lý.
C¸c m« h×nh d−îc gäi lµ m« h×nh dùa trªn mÉu tin v× c¬ së d÷ liÖu ®−îc x©y
dùng theo d¹ng c¸c mÉu tin x¸c ®Þnh. Mçi kiÓu mÉu tin dÞnh nghÜa mét sè c¸c
tr−êng hoÆc c¸c thuéc tÝnh vµ mçi tr−êng th−êng cã chiÒu dµi cè ®Þnh.
C¸c m« h×nh dùa trªn mÉu tin kh«ng chøa mét c¬ chÕ cho viÖc thÓ hiÖn c¸c
m· lÖnh trùc tiÕp trong c¬ së d÷ liÖu. V× thÕ nã cã hai ng«n ng÷ riªng rÏ nh−ng
g¾n liÒn víi m« h×nh ®Ó biÓu diÔn c¸c truy vÊn c¬ së d÷ liÖu vµ cËp nhËt c¬ së
d÷ liÖu.
Ba m« h×nh d÷ liÖu dùa trªn mÉu tin ®−îc chÊp nhËn réng r·i nhÊt lµ m«
h×nh quan hÖ, m« h×nh m¹ng vµ m« h×nh ph©n cÊp. M« h×nh quan hÖ lµ mé h×nh
dµnh ®−îc sù −a chuéng h¬n hai m« h×nh kia trong nh÷ng n¨m gÇn ®©y, nã sÏ
®−îc nghiªn cøu s©u trong gi¸o tr×nh nµy. M« h×nh m¹ng vµ m« h×nh ph©n cÊp
chØ cßn ®−îc sö dông trong mét sè c¸c c¬ së d÷ liÖu cò.
♦ M« h×nh quan hÖ
M« h×nh quan hÖ thÓ hiÖn d÷ liÖu vµ mèi quan hÖ gi÷a chóng b»ng mét tËp
c¸c b¶ng. Mçi b¶ng chøa mét sè cét víi tªn duy nhÊt.
§Ó biÓu diÔn m« h×nh d÷ liÖu quan hÖ víi ng−êi dïng b¶ng, trong ®ã:
1 cét th× t−¬ng øng víi mét thuéc tÝnh.
1 hµng th× t−¬ng øng víi 1 bé (record).
1 b¶ng th× t−¬ng øng víi 1 quan hÖ (file).
B¶ng ⇔ quan hÖ
number balance
900 55
556 100000
647 105366
801 10533
♦ M« h×nh m¹ng
D÷ liÖu trong m« h×nh m¹ng ®−îc thÓ hiÖn bëi mét tËp c¸c mÉu tin vµ mèi
quan hÖ gi÷a c¸c d÷ liÖu ®−îc thÓ hiÖn bëi c¸c liªn kÕt (links)mµ ta cã thÓ xem
nh− c¸c con trá (pointers). C¸c mÉu tin trong c¬ së d÷ liÖu ®−îc tæ chøc thµnh
c¸c ®å thÞ tïy ý. H×nh 2.4 thÓ hiÖn mét mÉu c¬ së d÷ liÖu d¹ng m« h×nh m¹ng
víi c¸c th«ng tin nh− h×nh 2.3.
Lowery Maple Queens 900 55
647 105366
- M«n häc lµ 1 thùc thÓ trõu t−îng, ta cã thÓ ph©n biÖt m«n häc nµy
víi m«n häc kh¸c dùa vµo tªn m«n häc, ta cã thÓ liªn kÕt m«n häc nµy víi m«n
häc kia dùa vµo liªn kÕt m«n häc nµo lµ c¬ së cña m«n häc kia.
2.2.2 TËp thùc thÓ (Entity set) :
TËp thùc thÓ lµ mét tËp bao gåm nh÷ng thùc thÓ gièng nhau.
VÝ dô : - NhiÒu thùc thÓ sinh viªn hîp l¹i thµnh tËp thÓ sinh viªn.
- NhiÒu m«n häc hîp l¹i t¹o ra tËp thÓ m«n häc.
2.2.3 C¸c thuéc tÝnh vµ c¸c kho¸ :
Thuéc tÝnh: C¸c tËp thùc thÓ th× cã nh÷ng ®Æc tÝnh, nh÷ng ®Æc tÝnh nµy gäi
lµ thuéc tÝnh.
VÝ dô : TËp thùc thÓ MÆt hµng cã c¸c thuéc tÝnh: tªn mÆt hµng, sè l−îng.
Mçi thuéc tÝnh cã mét kiÖu d÷ liÖu (sè nguyªn, sè thùc, c¸c chuçi ký tù .. .)
vµ cã gi¸ trÞ trong mét miÒn.
VÝ dô : M· vËt t− lµ mét chuçi c¸c ký tù.
- Sè l−îng lµ 1 sè nguyªn.
- Khèi l−îng lµ 1 sè thùc.
Khãa lµ mét thuéc tÝnh hoÆc lµ mét tËp c¸c thuéc tÝnh mµ gi¸ trÞ cña nã
®−îc dïng ®Ó x¸c ®Þnh duy nhÊt 1 thùc thÓ trong mét tËp thùc thÓ.
VÝ dô : §Ó ph©n biÖt c¸c sinh viªn ng−êi ta cã thÓ dïng khãa sau:
- M· sinh viªn cã 1 thuéc tÝnh mµ ng−êi ta gäi lµ khãa ®¬n (single key).
- Dïng hä tªn vµ n¨m sinh cã nhiÒu thuéc tÝnh, khãa nµy gäi lµ khãa tæ
hîp.
- Dïng m· sinh viªn vµ hä tªn ®Ó lµm khãa th× kho¸ nµy ®−îc gäi lµ siªu
kho¸ (supper key). Siªu khãa lµ 1 khãa mµ cã tËp con c¸c thuéc tÝnh khãa cña nã
l¹i lµ khãa.
2.2.4 HÖ ph©n cÊp isa hay sù tæng qu¸t ho¸ - chuyªn biÖt hãa
Ta nãi A isa B ®−îc ®äc lµ “A lµ B” nghÜa lµ nÕu tËp thùc thÓ B lµ sù tæng
qu¸t hãa cña tËp thùc thÓ A hay nãi c¸ch kh¸c ®i A lµ 1 lo¹i riªng biÖt cña B.
VÝ dô : Sinh viªn Isa con ng−êi.
con ng−êi
Ta nãi:
líp
d¹y (gi¶ng viªn, m«n häc, líp)
Bé (l, m, p) ⇔ gv l d¹y m«n häc m ë líp p)
Mèi liªn kÕt sÏ chøa c¸c thuéc tÝnh khãa cña c¸c c¸c tËp thùc thÓ tham gia
liªn kÕt (cßn gäi lµ thuéc tÝnh khãa vay m−în) vµ c¸c thuéc tÝnh riªng ®Æc t¶ cho
mèi liªn kÕt ®ã.
VÝ dô: C¸c thuéc tÝnh khãa vay m−în:
Sinh viªn cã khãa lµ m· SV.
M«n häc cã khãa lµ m· MH.
Mèi liªn kÕt “§· häc” liªn kÕt hai tËp thùc thÓ Sinh viªn vµ M«n häc sÏ
cã khãa lµ m· SV vµ m· MH. VËy khãa cña chóng lµ khãa vay m−în cña c¸c tËp
thùc thÓ Sinh viªn vµ M«n häc.
2.2.6 S¬ ®å thùc thÓ mèi liªn kÕt
Qui −íc :
- H×nh ch÷ nhËt t−¬ng øng víi tËp thùc thÓ.
- H×nh trßn t−¬ng øng víi thuéc tÝnh.
- H×nh trßn mµ trong ®ã cã g¹ch d−íi ta gäi ®ã lµ thuéc tÝnh khãa.
- H×nh thoi dïng ®Ó thÓ hiÖn mèi liªn kÕt.
- G¹ch nèi gi÷a h×nh ch÷ nhËt vµ h×nh thoi cã thÓ cã h−íng hoÆc kh«ng
h−íng.
Thuéc tÝnh
X khãa
Kh«ng h−íng
Cã h−íng
§Æc biÖt : nÕu 1 tËp thùc thÓ chØ cã mét thuéc tÝnh th× ta nªn gäi tªn tËp
thùc thÓ b»ng tªn thuéc tÝnh vµ tËp thùc thÓ ®ã ®−îc ghi trong h×nh trßn.
VÝ dô: MÆt hµng ®−îc b¸n víi nhiÒu gi¸
m·mh tªnmh
- Gi¸ chØ cã 1 thuéc tÝnh lµ ®¬n gi¸ nªn ta vÏ h×nh ch÷ thµnh h×nh trßn.
m·mh tªnmh
sè phßng
hä tªn nh©n viªn lµm viÖc bé phËn
m·nv
qlý
hätªn
ng−êiqlý
sèphone
VÝ dô : Mét cöa hµng bµy b¸n mÆt hµng trong nhiÒu quÇy hµng. Mét quÇy
hµng th× b¸n nhiÒu lo¹i mÆt hµng nh−ng 1 mÆt hµng chØ ®−îc bµy b¸n ë 1 quÇy
hµng víi 1 gi¸ cè ®Þnh.
TËp thùc thÓ Thuéc tÝnh Mèi liªn kÕt TËp thùc thÓ
QuÇy hµng - tªn bµy (nhiÒu) mÆt hµng
- sè
MÆt hµng - tªn b¸n ( ë mét ) quÇy hµng
- gi¸ víi mét gi¸
- m· hµng (thuéc tÝnh
riªng)
Bµy b¸n
Gi¸
VÝ dô : Mét tr−êng cã nhiÒu gi¶ng viªn, c¸c gi¶ng viªn d¹y nhiÒu m«n häc,
m«n häc cã thÓ ®−îc nhiÒu gi¶ng viªn d¹y. Mçi gi¶ng viªn d¹y m«n häc th× sö
dông nhiÒu gi¸o tr×nh.
sö dông
Gi¸o tr×nh
C©u hái : Cho biÕt thÇy H¹nh d¹y m«n c¬ së d÷ liÖu th× sö dông gi¸o tr×nh
g× th× m« h×nh trªn sÏ kh«ng tr¶ lêi ®−îc c©u hái trªn. Ph¶i sö dông m« h×nh liªn
kÕt 3.
Gi¶ng viªn m«n häc
sö dông
Gi¸o tr×nh
VÝ dô : TËp thùc thÓ chång vµ tËp thùc thÓ vî lµ liªn kÕt 1-1 theo quan ®iÓm
hiÖn ®¹i.
Chång 1 1 vî
• Khi ta x©y dùng 1 mèi liªn kÕt gi÷a k tËp thùc thÓ ®iÒu ®ã chøng tá
r»ng ta chØ x¸c ®Þnh ®−îc 1 thùc thÓ ei nµo ®ã nÕu ®· biÕt ek-1 cña c¸c tËp thùc
thÓ kia.
VÝ dô : Gi÷a ng−êi cung cÊp mÆt hµng. H·y x¸c ®Þnh mèi liªn kÕt trªn.
cung cÊp
gi¸
Häc
Phßng häc
nh−ng 1 ng−êi cung cÊp b¸n 1 mÆt hµng víi 1 gi¸. Th«ng tin vÒ ng−êi b¸n hµng
gåm cã tªn ng−êi b¸n hµng vµ ®Þa chØ.
Siªu thÞ cã nhiÒu kh¸ch hµng. Th«ng tin vÒ kh¸ch hµng gåm cã tªn kh¸ch
hµng, ®Þa chØ kh¸ch hµng vµ sè d−. Mçi kh¸ch hµng cã nhiÒu ®¬n ®Æt hµng nh−ng
1 ®¬n ®Æt hµng th× chØ cã 1 kh¸ch hµng mµ th«i. Th«ng tin vÒ ®¬n ®Æt hµng gåm
cã sè hiÖu ®¬n, ngµy ®Æt hµng. Mçi ®¬n ®Æt hµng bao gåm nhiÒu mÆt hµng ®Æt
mua víi 1 sè l−îng duy nhÊt.
VÝ dô 2: Mét tr−êng cã nhiÒu líp, mét líp häc cã nhiÒu m«n, mçi m«n chØ
cã 1 ng−êi d¹y, 1 m«n cã thÓ häc ë nhiÒu buæi vµ 1 m«n häc ë 1 buæi chØ häc ë 1
phßng. Mét tr−êng cã nhiÒu bé m«n, mét bé m«n th× cã nhiÒu gi¸o viªn nh−ng 1
gi¸o viªn chØ ë 1 bé m«n.
1 bé m«n th× ®¶m nhËn nhiÒu m«n häc vµ 1 m«n häc chØ thuéc 1 bé m«n.
Mét gi¸o viªn cã kh¶ n¨ng d¹y nhiÒu m«n, mét m«n th× cã thÓ cã nhiÒu gi¸o
viªn. H·y tr×nh bµy m« h×nh ERD ë tr−êng trªn.
th×häc buæi
d¹y
gi¸oviªn
phôtr¸ch
gåm
bém«n
2.3.1.3. Bé (tuple)
• Mét bé lµ c¸c th«ng tin cña 1 ®èi t−îng thuéc 1 l−îc ®å quan hÖ.
Nã cßn ®−îc gäi lµ 1 mÉu tin hay b¶n ghi.
• VÒ mÆt h×nh thøc mét bé q lµ 1 vect¬ gåm n thµnh phÇn thuéc tËp
con cña tÝch Descartes gi÷a c¸c miÒn gi¸ trÞ cña c¸c thuéc tÝnh vµ tho¶ m·n t©n
tõ ||Q||.
q = (a1, a2,...an) ∈ Dom (A1) × Dom (A2) × ... × Dom (An).
2.3.1.4. Quan hÖ (Relation)
Mét quan hÖ T Q ®Þnh nghÜa trªn 1 l−îc ®å quan hÖ Q lµ 1 thÓ hiÖn (hay 1
t×nh tr¹ng) cña l−îc ®å quan hÖ Q ë 1 thêi ®iÓm nµo ®ã. Khi ®ã TQ chøa c¸c bé q
tho¶ t©n tõ cña l−îc ®å quan hÖ Q.
Mét l−îc ®å c¬ së d÷ liÖu C = {QI}, tËp hîp c¸c l−îc ®å quan hÖ con . T Qi
®Þnh nghÜa trªn nh÷ng l−îc ®å quan hÖ con Qi t¹i 1 thêi diÓm gäi lµ t×nh tr¹ng
cña l−îc ®å c¬ së d÷ liÖu C vµ ký hiÖu lµ T C = {TQi}
2.3.1.5. Siªu kho¸ - Kho¸ chØ ®Þnh.
♦ Kh¸i niÖm
Mét tËp con S cña Q+ ®−îc gäi lµ siªu kho¸ cña l−îc ®å quan hÖ Q nÕu S cã
thÓ dïng lµm c¬ së ®Ó ph©n biÖt 2 bé kh¸c nhau tïy ý trong 1 quan hÖ T Q bÊt kú
®−îc ®Þnh nghÜa trªn l−îc ®å quan hÖ Q.
♦ §Þnh nghÜa
Trong tr−êng hîp l−îc ®å quan hÖ Q cã nhiÒu kho¸ chØ ®Þnh, ng−êi sö dông
sÏ chän mét trong c¸c kho¸ chØ ®Þnh nµy dÓ t¹o chØ môc. Khi ®ã kho¸ chØ ®Þnh
nµy ®−îc gäi lµ kho¸ chÝnh (primary key), c¸c kho¸ cßn l¹i gäi lµ kho¸ t−¬ng
®−¬ng.
C¸c thuéc tÝnh tham gia vµo kho¸ ®−îc gäi lµ thuéc tÝnh kho¸ vµ khi liÖt kª
khãa trong 1 l−îc ®å quan hÖ sÏ ®−îc g¹ch d−íi, ng−îc l¹i lµ thuéc tÝnh kh«ng
kho¸.
Quy −íc : - Kho¸ kh«ng chøa gi¸ trÞ rçng.
- Kh«ng ®−îc phÐp söa ®æi gi¸ trÞ cña thuéc tÝnh kho¸.
• Gi¶i thuËt kiÓm tra khãa cña mét thÓ hiÖn T Q
Gi¶i thuËt : Satisfy_key (T Q, K)
Vµo : TQ vµ kho¸ K ⊂ Q+
Ra : §óng hoÆc sai
C¸c b−íc :
1. T'Q :={t(K)| t ∈ T Q }
2. Return Card(T Q )= card(T'Q ).
2.3.2 Sù chuyÓn hãa tõ s¬ ®å ER sang m« h×nh d÷ liÖu quan hÖ.
§Ó biÕn ®æi biÓu ®å ERD thµnh c¸c quan hÖ th× ta ph¶i x¸c ®Þnh c¸c lo¹i
quan hÖ. Cã 2 lo¹i quan hÖ : quan hÖ thùc thÓ vµ quan hÖ mèi liªn kÕt.
Mét tËp thùc thÓ E cã thÓ ®−îc biÓu diÔn bëi 1 quan hÖ mµ l−îc ®å quan
hÖ bao gåm tÊt c¶ c¸c thuéc tÝnh cña tËp thùc thÓ. Quan hÖ nµy lµ quan hÖ thùc
thÓ.
VÝ dô : TËp thùc thÓ kh¸ch hµng (Tªnkh, Dchi, Sodu) suy ra quan hÖ
thùc thÓ kh¸ch hµng gåm cã c¸c thuéc tÝnhtªnkh, chi, sodu.
* Chó ý : NÕu E lµ tËp thùc thÓ chuyªn biÖt hãa bëi tËp thùc thÓ F nµo
®ã th× l−îc ®å quan hÖ cña E cã chøa c¸c thuéc tÝnh cña F mµ chóng ®−îc dïng
lµm khãa.
VÝ dô :
F E
L−¬ng NV isa ng−êiqlý
Hätªn
F E
Nsinh ng−êi isa SV
Hätªn
SV (hätªn, n¨msinh ,...)
♦ X©y dùng quan hÖ liªn kÕt.
Mét mèi liªn kÕt R gi÷a c¸c tËp thùc thÓ E1, E2,...En ®−îc biÓu diÔn b»ng
quan hÖ mµ s¬ ®å quan hÖ bao gåm c¸c thuéc tÝnh dïng trong khãa cho mçi tËp
E1, E2, ..., En.
VÝ dô : Cho c¸c thùc thÓ:
Giaovien(MAGV,TENGV),
MonHoc(MAMON,TENMON,SOTIET)
Lop(MALOP,SISOLOP)
- Gi¸o viªn X d¹y m«n Y cho líp Z.
Magv líp
m·m«n
m·líp
sØsèlíp
MH l−utr÷ kho
Mamh Makho
l−utr÷ (m·mh,m·kho)
Thamkh¶o
m«nhäc Mamon
NÕu 1 quan hÖ ®−îc x¸c ®Þnh tõ mèi liªn kÕt mét-mét gi÷a c¸c tËp thùc
thÓ E vµ F th× khãa dïng chung cho E vµ F lµ nh÷ng khãa dïng cho quan hÖ (1
trong 2 khãa ®ã lµ khãa)
VÝ dô : Gi÷a Qu¶nLý vµ BéPhËn.
hätªn tªnbéphËn
Qlý (hätªn , tªnbéphËn)
gi¸
VÝ dô: R -S = { t | t∈ R ∧ t∉ S}
a b c
c b d
• TÝch ®Ò c¸c :
Cho 2 quan hÖ R vµ S cã bËc K1 vµ K2, lµ tËp hîp tÊt c¶ c¸c bé K1 + k2
vµ k1 thµnh phÇn ®Çu tiªn thuéc R vµ K2 thµnh phÇn cuèi thuéc S.
Cho 1 quan hÖ cã bËc K, phÐp chiÕu cña R trªn c¸c thµnh phÇn (thuéc tÝnh)
y1, y2, ..., ym lµ tËp hîp c¸c bé m (a1, a2, ..., am) sao cho cã 1 bé b nµo ®ã cña
R lµ b(b1, b2,..., bk) mµ aj = bj (j ch¹y tõ 1 ®Õn m).
Ký hiÖu cã phÐp chiÕu cña R trªn c¸c thµnh phÇn i1, i2, ...im lµ
π i1, i2,..., im (R) = Q(i1, i2, ...,im) = {t(Q+)| t ∈ R}
VÝ dô : π A,B (R)
a b
a e
c b
• PhÐp giao
Cho 2 quan hÖ R vµ S cã cïng bËc, phÐp giao R vµ S lµ c¸c bé võa thuéc R
vµ võa thuéc S.
Ký hiÖu lµ R ∩ S = { t| t∈ R ∧ t∈S}
Ta cã ®Þnh nghÜa phÐp giao th«ng qua phÐp hiÖu : R ∩ S = R - (R - S)
VÝ dô : R ∩ S
a e f
• PhÐp chia
Cho 2 quan hÖ R vµ S cã bËc r vµ s vµ r > s, s ≠ 0. PhÐp chia R cho S ký
hiÖu R ÷S lµ tËp hîp c¸c bé r - s ( a1, a2,... ar -s ) sao cho ®èi víi tÊt c¶ bé s(ar -s +1,
... , ar) trong quan hÖ S th× tån t¹i bé r (a1, a2 ..., ar) ë trong R
VÝ dô : R(A, B, C, D) S (C, D)
a b c d c d
a b e f e f
b c e f
e d c d R÷S
e d e f a b
a b d e e d
§Ó tÝnh R ÷ S ta lµm nh− sau :
- T = π 1, 2, ..., r - s (R)
- TÝnh T x S - R
- TÝnh V = π 1, 2, r - s (T x S - R)
-R÷S=T-V
VÝ dô: T = π 1, 2, (R) TxS-R
a b b c c b
b c V= π 1, 2, r - s (T x S
e d - R) b c
TxS
a b c d
a b e f T-V
b c e d a b
b c e f e d
e d c d
e d e f
VÝ dô :
R (A, B) S(B)
1018 Cs30 Cs10
1050 Cs10 Cs20
1070 Cs10 Cs30
1050 Cs20
1070 Cs20
1021 Cs10 R÷S=T-V
1050 Cs30 1050
1021 Cs30 1070
1070 Cs30
A B C B C D
A b c b c g
E b c k e f
D e f e f k
RxS
A R.B R.C S.B S.C D
a b c b c g
a b c k e f
a b c e f k
e b c b c g
e b c k e f
e b c e f k
d e f b c g
d e f k e f
d e f e f k
R l><l S = σ R . B = S.. B ∧ R. C = S. C (R x S)
A B C D
a b c g
e b c g
d e f k
• NhËn xÐt :
§¹i sè quan hÖ lµ 1 ng«n ng÷ hái ta cã thÓ sö dông c¸c phÐp to¸n cña ®¹i sè
quan hÖ ®Ó tr¶ lêi 1 sè c©u hái.
VÝ dô : Ta cã quan hÖ cung cÊp trong m« h×nh siªu thÞ
cungcÊp(tªncc,m·mh, gi¸). Cho biÕt c¸c mÆt hµng vµ gi¸ cña ng−êi cung cÊp cã
tªn lµ ‘ABC’
πtªnmh, gi¸ (σtªncc = 'ABC' (cungcÊp))
H·y cho biÕt tªn c¸c mÆt hµng cã ng−êi cung cÊp
πtªnmh (cungcÊp)
2.2.4 ThiÕt kÕ c¬ së d÷ liÖu quan hÖ
§Ó thiÕt kÕ c¬ së d÷ liÖu, ta tiÕn hµnh theo c¸c b−íc sau :
• X¸c ®Þnh c¸c tËp thùc thÓ vµ c¸c mèi liªn kÕt gi÷a c¸c tËp thùc thÓ
®Ó tõ ®ã x©y dùng s¬ ®å ER
• BiÕn ®æi s¬ ®å ER thµnh c¸c quan hÖ dù tuyÓn
• ChuÈn hãa c¸c quan hÖ dù tuyÓn
2.2.4.1 X¸c ®Þnh c¸c tËp thùc thÓ vµ c¸c mèi liªn kÕt
- NÕu cã nhiÒu h¬n 1 gi¸ trÞ 1 thuéc tÝnh m« t¶ t−¬ng øng víi 1 gi¸ trÞ cña
danh hiÖu th× thuéc tÝnh m« t¶ nµy nªn ®−îc xem lµ thùc thÓ
VÝ dô : kÝch th−íc gåm cã chiÒu cao, réng... cña c¨n nhµ nªn ta coi kÝch
th−íc nh− 1 thùc thÓ.
Trong c¸c thuéc tÝnh th× cã 2 lo¹i thuéc tÝnh:
• Thuéc tÝnh m« t¶
• Thuéc tÝnh danh hiÖu (khãa)
- NÕu 1 thuéc tÝnh m« t¶ cña 1 thùc thÓ cã mèi liªn kÕt nhiÒu-mét víi thùc
thÓ kh¸c th× nªn xem thuéc tÝnh m« t¶ nµy lµ 1 thùc thÓ
VÝ dô : Ta cã tËp thùc thÓ : kho (m·kho, tªnthµnhphè, tiÓubang (sètb)
Kho tiÓu bang
M· kho T - phè M·TB
001 HCM Nam
002 CT Trung
003 HUE B¾c
004 §N
- Nªn g¸n c¸c thuéc tÝnh cho tËp thùc thÓ mµ chóng m« t¶ trùc tiÕp nhÊt
VÝ dô : Ta cã 2 tËp thùc thÓ lµ c«ng nh©n vµ phßng ban, (th× ng−êi qu¶n lý
n»m trong phßng ban)
- Nªn tr¸nh c¸c khãa tæ hîp trong c¸c tËp thùc thÓ.
• X©y dùng c¸c mèi liªn kÕt :
- Nªn lo¹i bá c¸c mèi liªn kÕt d− thøa th−êng x¶y ra khi ta dïng mèi liªn
kÕt b¾c cÇu.
VÝ dô : Ta cã 3 tËp thùc thÓ SV, líp, tr−êng
SV líp
D− tr−êng
GV SV §Ò ¸n
Mçi sinh viªn cã thÓ tham gia ®Ò ¸n vµ cã nhiÒu gi¸o viªn h−íng dÉn nh−ng
ë 1 ®Ò ¸n mµ sinh viªn tham gia chØ cã 1 gi¸o viªn h−íng dÉn.
GV SV
§Ò ¸n
§Ò ¸n
• Mèi liªn kÕt 3 ngéi : d−îc thiÕt lËp khi ph¶i cÇn 2 thùc thÓ míi suy ra
®−îc thùc thÓ cßn l¹i.
VÝ dô : Mét kü s− chØ sö dông I sè s¸ch cho 1 ®Ò ¸n. C¸c kü s− kh¸c nhau
sö dông c¸c s¸ch kh¸c nhau cho cïng 1 ®Ò ¸n. Kh«ng kü s− nµo sö dông cïng 1
s¸ch cho c¸c ®Ò ¸n kh¸c nhau.
Kü s−
S¸ch §Ò ¸n
M« h×nh 1
- C¸c nh©n viªn cã thÓ tham gia nhiÒu ®Ò ¸n nh−ng chØ cã thÓ tham gia
nhiÒu nhÊt vµo 1 ®Ò ¸n ë vÞ trÝ ®· cho.
Nh©n viªn
VÞ trÝ §Ò ¸n
M« h×nh 2
- Ng−êi tËp sù lµm viÖc trong c¸c ®Ò ¸n d−íi sù chØ dÉn cña ng−êi h−íng
dÉn. Mét ng−êi h−íng dÉn chØ cã thÓ h−íng dÉn nhiÒu nhÊt 1 ®Ò ¸n cho 1 ng−êi
tËp sù nµo ®ã. Mét ng−êi tËp sù tham gia vµo 1 ®Ò ¸n nµo ®ã d−íi sù chØ dÉn cña
nhiÒu nhÊt 1 ng−êi h−íng dÉn.
TËp sù
H−íng dÉn §Ò ¸n
M« h×nh 3
Kü s−
Kü n¨ng §Ò ¸n
M« h×nh 4
2.2.4.2 X©y dùng c¸c quan hÖ dù tuyÓn tõ m« h×nh ER
- BiÕn ®æi quan hÖ thùc thÓ thµnh mèi liªn kÕt thùc thÓ víi khãa cña quan
hÖ thùc thÓ còng chÝnh lµ khãa.
- BiÕn ®æi mèi liªn kÕt thµnh quan hÖ liªn kÕt.
+ NÕu lµ mèi liªn kÕt 1-1 th× khãa cña quan hÖ liªn kÕt nµy sÏ lµ 1 trong 2
khãa cña 2 hoÆc 3 tËp thùc thÓ tham gia vµo mèi liªn kÕt.
+ NÕu lµ mèi liªn kÕt nhiÒu-1 th× quan hÖ cña liªn kÕt nµy cã khãa lµ khãa
cña tËp thùc thÓ phÝa nhiÒu.
+ NÕu lµ mèi liªn kÕt nhiÒu-nhiÒu th× khãa cña quan hÖ nµy sÏ lµ tÊt c¶ c¸c
khãa cña c¸c ®èi t−îng tËp thùc thÓ.
Chó ý : Trong mèi liªn kÕt 3 ng«i v× ph¶i cã 2 ®èi t−îng ®Ó x¸c ®Þnh ®èi
t−îng cßn l¹i do ®ã cÇn ph¶i cã 2 khãa cña 2 ®èi t−îng nµy ®Ó suy ra ®èi t−îng
cßn l¹i.
VÝ dô : Theo m« h×nh sè 1 ta cã :
Küs− (m·ks, ...)
S¸ch (m·s¸ch, ...)
§Ò¸n (sè®Ò¸n, ...)
Thamgia(m·ks, m·s¸ch, sè®Ò¸n)
- Theo m« h×nh 2 ta cã :
Nh©nviªn (m·nv, ...)
VÞtrÝ (m·pb, ...)
§Ò¸n (sè®Ò¸n, ...)
Thamgia (m·nv, m·pb, sè®Ò¸n)
- Theo m« h×nh sè 3
TËpsù (m·ts, ...)
H−íngdÉn (m·nv....)
§Ò¸n (sè®Ò¸n, ...)
Thamgia (m·nv, m·ts , sè®Ò¸n)
- Theo m« h×nh sè 4
3.3 Ng«n ng÷ thao t¸c d÷ liÖu (Data Manupilation Language DML)
3.3.1 Thªm bé míi vµo quan hÖ
Có ph¸p: INSERT INTO <tªn_b¶ng>
VALUES (V1, V2, ..., Vn)
V1, V2 ,... Vn : lµ c¸c gi¸ trÞ cña c¸c thuéc tÝnh t−¬ng øng ®−îc ®−a vµo
b¶ng.
VÝ dô : Thªm 1 bé míi vµo quan hÖ cung cÊp cã tªn ng−êi cung cÊp =
'NguyÔn Mai Chi’
INSERT into cungcÊp
VALUES ('NguyÔn mai chi', '007',10)
3.3.2 CËp nhËt:
Có ph¸p: UPDATE <tªn_b¶ng>
SET A1 = V1, A2 = V2, ..., An = Vn
[WHERE §K]
Thuéc tÝnh Ai cã gi¸ trÞ Vi
Select tªnNCC
From cungcÊp, bµymÆthµng
Where bµymÆthµng.tªnmh = 'coca-cola' and
BµymÆthµng. m·mh = cungcÊp. m·mh
⇔ πtªnNCC (σ
σbµymÆthµng, tªnmh = 'coca-cola' .and (cungcÊp x bµymÆthµng))
bµymÆthµng, m¶mh = cungcÊp, m·m
VÝ dô 4 : H·y cho biÕt tªn vµ ®Þa chØ cña ng−êi cung cÊp mÆt hµng coca-
cola.
Select nguoi.CCtªnNCC, ®ÞachØ
From cungcÊp, bµymÆthµng, ng−êiCC
Where bµymÆthµng.m·mh = cungcÊp.m·mh and
CungcÊp.tªnNCC = ng−êiCC.tªnCC and
Tenmh= ‘Coca-cola’
⇔ π tªnNCC, ®ÞachØ(σbµymÆthµng, m·mh =cungcÊp, m·mh, and cungcÊp, tªnNCC = ng−êiCC, tªnNCC.
(cungcÊp x bµymÆthµng x ng−êiCC))
VÝ dô 5 : H·y cho biÕt tªn cña ng−êi cung cÊp mÆt hµng ®−îc ®Æt mua bëi
kh¸ch hµng NguyÔn Minh TuÊn.
Select DISTINCT TªnNCC
From cungcÊp, ®¬n®Æthµng, chøa
Where tªnKH = 'NguyÔn Minh TuÊn' .and.
§¬n®Æthµng.sèhiÖu = chøa. sèhiÖu and
cunggcap.mamh =chua.mamh
⇔ πtªnNCC, ®ÞachØ (σ
σ tªnKH = 'NguyÔn Minh TuÊn' .and ®¬n®Æthµng, sèhiÖu = chøa, sèhiÖu ,and chøa,
n·mh = cungcÊp, m·mh (cungcÊp x ®¬n®Æthµng x chøa))
• BiÕn kiÓu bé :
BiÕn kiÓu bé lµ 1 biÕn mµ gi¸ trÞ cña nã lµ 1 bé cña quan hÖ, vËy biÕn cña
bé thùc chÊt lµ 1 biÕn Record.
C¸ch ®Æt biÕn kiÓu bé cho 1 quan hÖ.
From QhÖ 1 Q1 , QhÖ 2 Q2
C¸ch sö dông gièng nh− 1 biÕn cña Record
VÝ dô : QhÖ ( hä, tªn, ®ÞachØ, ngµysinh) Q1
Truy xuÊt Q1.Hä ; Q1.Tªn; Q1.Ngµysinh
øng dông:
- §Ó thay thÕ tªn quan hÖ
- So s¸nh c¸c bé trong cïng 1 quan hÖ.
VÝ dô : H·y cho biÕt tªn vµ ®Þa chØ cña kh¸ch hµng cã sè d− nhá h¬n sè d−
cña kh¸ch hµng NguyÔn Minh TuÊn.
Select K2.tªnKH, K2.®ÞachØ, K2.sèd−
From kh¸chhµng K1, kh¸chhµng K2
Where K1.tªnKH = 'NguyÔn Minh TuÊn'
And K1.sèd− > K2.sèd−
• So trïng mÉu :
Mét sè ký tù ®Æc biÖt dïng ®Ó so trïng mÉu.
% : bÊt ký chuçi ký tù nµo còng ®−îc
_ : bÊt kú ký tù nµo còng ®−îc.
- C¸ch sö dông :
VÝ dô : H·y cho biÕt tªn ng−êi cung cÊp c¸c mÆt hµng ®−îc ®Æt mua bëi
«ng NguyÔn Minh TuÊn.
CungcÊp (tªncc, m·mh, gi¸)
§¬n®Æthµng (sèhiÖu, tªnkh, ngµy)
Chøa (m·mh, sèhiÖu, sèl−îng)
Select tªncc
From cungcÊp
Where m·mh in ( select m·mh
From chøa
Where sèhiÖu in (Select sèhiÖu
From ®¬n®Æthµng
Where tªnkh = 'NguyÔn Minh TuÊn'))
VÝ dô : H·y cho biÕt tªn vµ ®Þa chØ cña kh¸ch hµng cã sè d− lín h¬n sè d−
cña kh¸ch hµng ' NguyÔn Minh TuÊn'
Select tªnkh, ®ÞachØ
From kh¸chhµng
Where sèd− > ALL (Select sèd−
From kh¸chhµng
Where tªnkh = 'NguyÔn Minh TuÊn'
VÝ dô : H·y cho biÕt tªn mÆt hµng ®−îc b¸n víi gi¸ cao nhÊt
Select tªnmh
From mÆthµng MH, cungcÊp CC
Where gi¸ > = ALL ( Select gi¸
From cungcÊp)
And CC.m·mh = MH.m·mh
VÝ dô: H·y cho biÕt c¸c mÆt hµng cã gi¸ do «ng NguyÔn Minh TuÊn cung
cÊp.
Select mamh, tenmh
From mathang
Where Exist( Select mamh
From cungcap
Where tencc= ‘NguyÔn Minh TuÊn’)
• C¸c hµm dïng trong SELECT
AVG ( ) Gi¸ trÞ trung b×nh
COUNT ( ) §Õm sè bé
MAX ( ) Gi¸ trÞ lín nhÊt
MIN ( ) Gi¸ trÞ nhá nhÊt
• COMMIT [work]
Cã chøc n¨ng:
- T¹o c¸c thay ®æi cña giao t¸c hiÖn hµnh
- Xo¸ tÊt c¶ c¸c ®iÓm dõng kiÓm tra
- KÕt thóc giao t¸c
• SAVE POINT <tªn ®iÓm>
- Dïng ®Ó ®¸nh dÊu c¸c ®iÓm kiÓm tra trong giao t¸c
- C¸c ®iÓm nµy cho phÐp phôc håi l¹i tr¹ng th¸i tr−íc ®ã
• ROLLBACK [work] [TO <tªn ®iÓm>]
- Phôc håi l¹i tr¹ng th¸i tíi ®iÓm dõng <tªn ®iÓm>
- NÕu kh«ng cã <tªn ®iÓm> th× nã sÏ:
- KÕt thóc giao t¸c
- Phôc håi l¹i tÊt c¶ c¸c thay ®æi cña giao t¸c hiÖn hµnh
- Xo¸ mäi ®iÓm dõng
• Nót thuéc tÝnh: biÓu diÔn b»ng dÊu 'x' vµ tªn thuéc tÝnh.
• Nót phô thuéc hµm: biÓu diÔn b»ng h×nh trßn cã sè thø tù cña phô thuéc
hµm.
• Cung ®Õn phô thuéc hµm xuÊt ph¸t tõ c¸c thuéc tÝnh ë vÕ tr¸i cña c¸c phô
thuéc hµm.
• Cung ra phô thuéc hµm h−íng ®Õn c¸c thuéc tÝnh ë vÕ ph¶i cña c¸c phô
thuéc hµm.
VÝ dô: r (ABCDEG) víi F = {f1 : A ->B , f2 : CD ->E , f3 : E ->G}.
A 1 B
C E
2 3
D G
Y ⊆ X ⇒ X ->Y.
X ->Y vµ Z ⊆ Y ⇒ X ->Z.
6/ LuËt hîp.
Vµo : F vµ X⊆ Q+
Ra : XF+
Ph−¬ng ph¸p :
1. Temp = 0
2. While temp < > X DO
{ Temp = X
for ∀f = W ->Z ∈ F Do
Vµo: F , f : X ->Y ∈ F+
Ra : § , S
0000 BD BDG
1000 A BDA Q+
0100 C BDC Q+
1100 AC BDAC /
0010 E BDE BDE
1010 AE BDAE /
0110 CE BDCE /
1110 ACE BDACE /
0001 G BDG BDG
1001 AG BDAG /
0101 CG BDCG /
1101 ACG BDACG /
a) G := Ø
d) For ∀f : X -> A∈ G Do
phÐp t¸ch chñ yÕu lµ ®Ó n©ng cao chÊt l−îng quan hÖ sao cho ®¹t d¹ng chuÈn cao
h¬n.
VÝ dô: Cho l−îc ®å quan hÖ ng−êi cung cÊp:
S = (SNAME , ADD , PRO , PRICE)
SNAME -> ADD
SNAME , PRO ->PRICE
S ®−îc thay thÕ b»ng 2 l−îc ®å con kh¸c.
S1 ( SNAME , ADD)
S2 ( SNAME , PRO , PRICE)
C¸c tÝnh chÊt cña mét ph©n r· mµ ta cÇn quan t©m ®Õn lµ:
• Ph©n r· b¶o toµn th«ng tin
• Ph©n r· b¶o toµn phô thuéc
• TÝnh c¸c phô thuéc hµm ®−îc bao trong mét l−îc ®å con cña ρ.
4.6.2 Ph©n r· b¶o toµn th«ng tin
• NÕu R lµ 1 l−îc ®å quan hÖ ®−îc t¸ch thµnh c¸c l−îc ®å con R1,
R2,..., RK vµ D lµ tËp c¸c phô thuéc hµm. Ta nãi r»ng phÐp t¸ch lµ t¸ch kÕt nèi
kh«ng mÊt m¸t th«ng tin ®èi víi D, nÕu víi mçi quan hÖ r trªn R tho¶ D:
• KiÓm tra phÐp kÕt nèi kh«ng mÊt m¸t th«ng tin.
Vµo: L−îc ®å quan hÖ R , tËp FD F vµ phÐp t¸ch P = (R1,..., RK).
Ra: KÕt luËn phÐp t¸ch P cã mÊt m¸t th«ng tin ?
Ph−¬ng ph¸p:
a) ThiÕt lËp 1 b¶ng víi n cét vµ K hµng.
Cét thø j øng víi thuéc tÝnh Aj .
Hµng thø i øng víi l−îc ®å Ri .
T¹i hµng i vµ cét j ®iÒn ký hiÖu aj nÕu Aj ∈ Ri+ , nÕu kh«ng th× ®iÒn bij.
b) XÐt c¸c phô thuéc hµm tõ F ¸p dông cho b¶ng trªn.
XÐt X ->Y ∈ F, xÐt c¸c hµng nÕu cã gi¸ trÞ b»ng nhau trªn thuéc tÝnh X th×
lµm b»ng nhau trªn thuéc tÝnh Y.
Chó ý: Khi lµm b»ng gi¸ trÞ trªn Y, nÕu 1 trong 2 gi¸ trÞ lµ aj th× −u tiªn lµm
b»ng ký hiÖu aj . Ngoµi ra lµm chóng b»ng 1 trong c¸c ký hiÖu bij .
TiÕp tôc ¸p dông phô thuéc hµm cho b¶ng (kÓ c¶ viÖc lËp l¹i c¸c phô thuéc
hµm ®· ®−îc ¸p dông) cho tíi khi kh«ng cßn ¸p dông ®−îc n÷a.
NÕu xuÊt hiÖn 1 hµng gåm ký hiÖu (a1, a2,...,an) th× phÐp kÕt nèi kh«ng mÊt
m¸t th«ng tin.
VÝ dô: S ( SNAME , ADD , PRO , PRICE).
S1 ( SNAME , ADD)
S2 ( SNAME , PRO , PRICE)
SNAME ->ADD
SNAME , PRO ->PRICE
SNAME ADD PRO PRICE
S1 a1 a2 b13 b14
S2 a1 b22 a3 a4
¸p dông SNAME ->ADD ë hµng 2 (S2)
Ta cã hµng 2: a1 a2 a3 a4
• §Þnh lý Delobel
• Mét phô thuéc hµm f: X->Y d−îc gäi lµ phô thuéc hµm ®−îc bao
trong l−îc ®å c¬ së d÷ liÖu D = { R1, R2,..., Rp} nÕu f ®−îc bao trong Rj, i∈
[1..p].
4.6.3.2 §Þnh nghÜa phô thuéc hµm bÞ Ðp tho¶ trong l−îc ®å c¬ së d÷ liÖu
• Gäi G lµ tËp tÊt c¶ c¸c phô thuéc hµm ®−îc bao trong D th×
∀f ∈ G+, f ®−îc gäi lµ bÞ Ðp tho¶ trong l−îc ®å c¬ së d÷ liÖu
D.
∀f ∈ (F+ - G+), f ®−îc gäi lµ kh«ng bÞ Ðp tho¶ trong l−îc ®å
c¬ së d÷ liÖu D.
• Gäi G lµ tËp tÊt c¶ c¸c phô thuéc hµm ®−îc bao trong D ta nãi tËp
phô thuéc hµm F ®−îc gäi lµ bÞ Ðp tho¶ trong D nÕu F≡G.
VÝ dô: Cho D= { R1, R2, R3 } víi R1(A,B,C), R2(B,C,D), R3(D,E)
XÐt F ={ A -> BC, C -> A, A -> D, D -> E, A -> E}
Ta nhËn thÊy phô thuéc hµm A->D vµ A->E kh«ng ®−îc bao trong D nh−ng
F bÞ Ðp tho¶ trong D v× ta t×m ®−îc tËp G={ A-> BC, C ->A, D->E, C -> D} gåm
c¸c phô thuéc hµm ®−îc bao trong D vµ G ≡ F.
4.6.3.3 §iÒu kiÖn ph©n r· b¶o toµn phô thuéc
Mét ph©n r· ρ lµ b¶o toµn phô thuéc F nÕu F bÞ Ðp tho¶ trong ρ víi t− c¸ch
lµ mét l−îc ®å c¬ së d÷ liÖu.
4.6.3.4 Gi¶i thuËt kiÓm tra ph©n r· ρ cã b¶o toµn phô thuéc
Cho l−îc ®å quan hÖ R, tËp phô thuéc hµm F ®Þnh nghÜa trªn R vµ ph©n r·
ρ= {Rj} j =1.. n.
1. Y := Ø
2. While Y <> X do
Begin Y:=X;
for ∀Rj ∈ ρ do
Ra : ®óng, Sai
Ph−¬ng ph¸p:
Ta nhËn thÊy chØ cã phô thuéc hµm D -> A kh«ng ®−îc bao trong ρ. ¸p
dông gi¶i thuËt Enforce(F, ρ) ta kiÓm tra Y cã chøa trong Eclosure(D)?
4.6.4 TÝnh c¸c phô thuéc hµm ®−îc bao trong mét l−îc ®å con cña ρ
• §Þnh nghÜa chiÕu cña tËp phô thuéc hµm trªn l−îc ®å con
Cho l−îc ®å quan hÖ R, tËp phô thuéc hµm F vµ ph©n r· ρ. XÐt mét l−îc ®å
con Ri ∈ ρ, ta ®Þnh nghÜa chiÕu cña tËp phô thuéc hµm trªn l−îc ®å con πRi(F) =
{ f ∈ F+ | f ®−îc bao trong Ri}
• NhËn xÐt:
XÐt X ⊂ R, nÕu:
1. Kh«ng tån t¹i f ∈ F, vÕ tr¸i(f) ⊂ X th× X+F = X
2. Tån t¹i f ∈ F, vÕ tr¸i (f) ⊂ F th× X -> vÕ ph¶i (f) lµ mét phô
thuéc hµm kh«ng ®Çy ®ñ.
• Gi¶i thuËt tÝnh πRi(F)
Ra: Fi = πRi(F)
Ph−¬ng ph¸p:
1. Fi := ∅;
D¹ng chuÈn 1
D¹ng chuÈn 2
D¹ng chuÈn 3
D¹ng chuÈn 4
S# PO
P# OTY
S1 P1 300
P2 200
P3 400
P4 200
P5 100
P6 100
S2 P1 300
P2 400
S3 P2 200
S4 P2 200
P4 300
P5 400
S5 ⊥ (Null) ⊥
QTY S# CITY
P#
Khãa
Status
• §Þnh nghÜa: Mét quan hÖ R ë 2NF nÕu R ë 1NF vµ c¸c thuéc tÝnh kh«ng
khãa, phô thuéc hµm ®Çy ®ñ vµo khãa chÝnh.
R1 R2
S# P# Qty S# Status City
S1 P1 300 S1 20 London
S1 P2 200 S2 10 Paris
S1 P3 400 S3 10 Paris
S1 P4 200 S4 20 London
S1 P5 100
S2 P1 300
S2 P2 400
S3 P3 200
S4 P2 200
• Nh−îc ®iÓm :
- Kh«ng thÓ thªm 1 thµnh phè míi nÕu ch−a cã ng−êi cung cÊp.
- Kh«ng thÓ thªm NewYork, m· sè 15 nÕu ch−a cã S#
VÝ dô : Khi söa Status cña London thµnh 25 sÏ tèn thêi gian
• Nguyªn nh©n :
Cã sù phô thuéc hµm b¾c cÇu vµo khãa chÝnh.
Status
R21 R22
S# City City Status
S1 London London 20
S2 Paris Paris 10
S3 Paris
S4 London
Trong 3NF cã thÓ cã nhiÒu khãa chÝnh chø kh«ng ph¶i 1 khãa chÝnh.
VÝ dô : R (S#, P#, Sname, Qty)
S#
QTY
P#
Sname
• Nh−îc ®iÓm: Quan hÖ nµy bÞ d− thõa do S# vµ Sname lËp l¹i nhiÒu lÇn.
• Nguyªn nh©n : cã sù phô thuéc hµm lÉn nhau.
5.4.2 Gi¶i thuËt ph©n r· b¶o toµn phô thuéc hµm thµnh d¹ng chuÈn 3
Vµo : L−îc ®å quan hÖ R, tËp phô thuéc hµm F, chóng ta gi¶ sö F lµ phñ tèi
thiÓu.
Ra : Mét ph©n r· ρ b¶o toµn phô thuéc cña R sao cho mçi l−îc ®å quan hÖ
con ®Òu cã d¹ng chuÈn 3 øng víi chiÕu cña F trªn l−îc ®å ®ã.
Ph−¬ng ph¸p:
1. NÕu cã c¸c thuéc tÝnh cña R kh«ng liªn quan tíi mét phô
thuéc hµm nµo trong F, c¶ ë vÕ tr¸i lÉn vÕ ph¶i, th× vÒ nguyªn t¾c c¸c
thuéc tÝnh nµy cã thÓ nhãm l¹i thµnh mét quan hÖ vµ ta cã thÓ t¸ch ra
khái R.
2. NÕu cã mét phô thuéc hµm nµo liªn quan ®Õn toµn bé c¸c
thuéc tÝnh trong R th× R kh«ng ph©n chia n÷a vµ kÕt qu¶ lµ chÝnh R.
3. Ng−îc l¹i, chóng ta ph©n r· R thµnh c¸c l−îc ®å quan hÖ XA
øng víi mçi phô thuéc hµm X->A trong F. Tuy nhiªn nÕu X->A1,
X->A2,,..., X -> An lµ c¸c phô thuéc hµm trong F th× ta sö dông l−îc ®å
XA1A2...An thay cho n l−îc ®å XA1, XA2, ... , XAn
VÝ dô: XÐt l−îc ®å R = CTHRSG víi tËp phô thuéc hµm F nh− sau:
F = {C -> T, CS ->G, HR -> C, HS -> R, HT -> R}
Gi¶i thuËt trªn sinh ra tËp c¸c l−îc ®å quan hÖ CT, CGS, HRC, HSR, HTR
b¶o toµn phô thuéc hµm .
5.4.3 Ph©n r· thµnh d¹ng chuÈn 3 b¶o toµn phô thuéc hµm vµ b¶o toµn th«ng tin
VÊn ®Ò ®Æt ra lµ ta cã thÓ ph©n r· mét l−îc ®å quan hÖ vÒ d¹ng chuÈn 3
trong ®ã võa b¶o toµn phô thuéc hµm võa b¶o toµn th«ng tin kh«ng? C©u tr¶ lêi
lµ lu«n lu«n lµm ®−îc ®iÒu nµy b»ng c¸ch ghÐp ρ víi mét l−îc ®å quan hÖ X lµ
kho¸ cña R theo ®Þnh lý sau:
§Þnh lý : Gäi ρ lµ mét ph©n r· d¹ng chuÈn 3 cña R b»ng gi¶i thuËt ph©n r·
b¶o toµn phô thuéc hµm thµnh d¹ng chuÈn 3 vµ X lµ kho¸ cña R ThÕ th× τ = ρ U
{X} lµ mét ph©n r· cña R mµ tÊt c¶ c¸c l−îc ®å quan hÖ ®Òu cã d¹ng chuÈn 3;
ph©n r· nµy cã ®Æc tÝnh b¶o toµn phô thuéc hµm vµ b¶o toµn th«ng tin.
VÝ dô: Sö dông l¹i vÝ dô ë phÇn 5.4.2 víi SH lµ kho¸ cña R th× ph©n r· thµnh
c¸c l−îc ®å quan hÖ (CT, CGS, HRC, HSR, HTR) võa b¶o toµn phô thuéc hµm
vµ b¶o toµn th«ng tin v× t×nh cê HS n»m trong l−îc ®å quan hÖ HSR.
Thuéc tÝnh X ®−îc gäi lµ ®Þnh thuéc nÕu X ®Þnh trÞ hµm 1 thuéc tÝnh kh¸c
nghÜa lµ X cã phô thuéc hµm víi thuéc tÝnh kh¸c.
VÝ dô : R (S#, P# , SNAME, QTY)
S#, P# ⇒ QTY
SNAME, P# ⇒ QTY
S# ⇒ SNAME
SNAME ⇒ S#
⇒ R kh«ng ph¶i d¹ng chuÈn BCNF
NÕu muèn ®¹t d¹ng chuÈn BCNF ta ph¶i t¸ch R thµnh 2 quan hÖ R1 vµ R2:
R1 (S#, P# , Qty)
R2 (S# , Sname)
5.5.2 Gi¶i thuËt ph©n r· b¶o toµn th«ng tin thµnh d¹ng chuÈn BCNF
• Bæ ®Ò 1
Gi¶ sö R lµ mét l−îc ®å quan hÖ víi tËp phô thuéc hµm F. Gäi ρ =(R1,R2,
..., Rn) lµ mét ph©n r· cña R b¶o toµn th«ng tin t−¬ng øng víi F vµ gi¶ sö σ =(S1,
S2) lµ mét ph©n r· cña R1 b¶o toµn th«ng tin t−¬ng øng víi πR1(F). Khi ®ã ph©n
r· cña R thµnh tËp (S1, S2, R2, ... ,Rn) lµ b¶o toµn th«ng tin t−¬ng øng víi F.
• Bæ ®Ò 2
Mäi quan hÖ cÊp 2 ( ChØ cã hai thuéc tÝnh) ®Òu ë d¹ng chuÈn BCNF
NÕu R kh«ng ë d¹ng chuÈn BCNF, ta sÏ t×m ®−îc 2 thuéc tÝnh A,B
trong R sao cho (R-AB) -> A hay (R -AB) ->B
• Gi¶i thuËt ph©n r· b¶o toµn th«ng tin thµnh d¹ng chuÈn BCNF
Vµo: L−îc ®å quan hÖ R vµ tËp phô thuéc hµm F
Ra: Mét ph©n r· b¶o toµn th«ng tin sao cho c¸c l−îc ®å quan hÖ con nhËn
®−îc ë d¹ng chuÈn BCNF øng víi h×nh chiÕu cña F trªn l−îc ®å nµy.
Ph−¬ng ph¸p: Träng t©m cña gi¶i thuËt lµ ph©n r· l−îc ®å quan hÖ R thµnh
hai l−îc ®å quan hÖ. Mét l−îc ®å quan hÖ cã tËp thuéc tÝnh XA, nã cã d¹ng
BCNF vµ phô thuéc hµm X -> A lµ ®óng. L−îc ®å quan hÖ thø hai R-A, do ®ã
ph©n r· R-A, XA lµ b¶o toµn th«ng tin. Thùc hiÖn ®Ö qui thñ tôc ph©n r· víi R-A
cho ®Õn khi ®¹t ®−îc l−îc ®å quan hÖ ®¸p øng víi ®iÒu kiÖn bæ ®Ò 2b ®Ó l−îc ®å
quan hÖ nµy ë d¹ng BCNF. ThÕ th× bæ ®Ò 1 b¶o ®¶m r»ng l−îc ®å quan hÖ nµy
céng víi c¸c l−îc ®å quan hÖ BCNF ®−îc t¹o ra tõ mçi ®Ö qui lµ b¶o toµn th«ng
tin.
Ch−¬ng tr×nh chÝnh
Z := R; // T lµ phÇn cßn l¹i cña R sau mçi ®ît ph©n r·
Repeat
decompose((T,R1,R2); //T ®−îc ph©n r· thµnh R1=XA vµ R2=T-A (X->A)
until R1 = ∅;
Bæ sung T vµo ph©n r· .
Ch−¬ng tr×nh con Decompose(T,R1,R2)
R (MH , GV , GT)
µ Physics Green Basic mechanics
ν Physics Brown Principle of optics
φ Physics Brown Basic mechanics
ψ Physics Green Principle of optics
* Mét ®Þnh nghÜa kh¸c
Mét thuéc tÝnh Y phô thuéc ®a trÞ vµo c¸c thuéc tÝnh X nÕu víi mäi quan hÖ
r cña R cã 2 bé cã cïng thµnh
phÇn khi ta ho¸n ®æi 2 bé víi nhau vµ c¸c thµnh
phÇn cßn l¹i vÉn gi÷ nguyªnth× ta sÏ ®−îc 2 bé míi cïng ë trong r.
MH —» GT MH phô thuéc ®a trÞ vµo GT
GV —» GT GV phô thuéc ®a trÞ vµo GT
R (MH , GV , GT)
§Ó b¶o ®¶m cho d÷ liÖu trong c¬ së d÷ liÖu ®−îc toµn vÑn ta ph¶i thùc hiÖn:
- Rµng buéc toµn vÑn d÷ liÖu
- Ph©n quyÒn truy xuÊt
6.1 Rµng buéc toµn vÑn (Integrity Constraints)
6.1.1 §Þnh nghÜa :
• Rµng buéc toµn vÑn lµ c¸c quy t¾c bÊt biÕn ®èi víi c¸c quan hÖ
trong c¬ së d÷ liÖu nh»m lµm cho c¸c d÷ liÖu ®−îc nhÊt qu¸n, hîp lý.
• Quy t¾c ë ®©y lµ 1 vÞ tõ ∀x, p(x) ®óng trong ®ã x cã thÓ lµ 1 quan
hÖ, 1 bé.
6.1.2 C¸c yÕu tè cña rµng buéc toµn vÑn :
• §iÒu kiÖn.
Ng−êi ta biÓu diÔn ®iÒu kiÖn cña rµng buéc toµn vÑn
R1 :"Mçi sv cã 1 m· sè riªng , kh«ng trïng víi 1 sv nµo kh¸c".
Cuèi ∀
R2 :"Mçi sv ph¶i ®¨ng ký vµo 1 khoa cña tr−êng".
∀sv ∈ Tsinhvien
Cuèi ∀
• Bèi c¶nh
Bèi c¶nh cña 1 rµng buéc trän vÑn R lµ nh÷ng quan hÖ mµ rµng buéc ®ã
cã hiÖu lùc.
VÝ dô: Bèi c¶nh rµng buéc R1 chØ lµ 1 quan hÖ Tsinhvien.
Bèi c¶nh rµng buéc R2 chØ lµ 2 quan hÖ Tsinhvien vµ Tkhoa.
• C¸c hµnh ®éng cÇn chän lùa khi rµng buéc toµn vÑn bÞ vi ph¹m:
Ng¨n c¶n vµ th«ng b¸o lý do kh«ng cho phÐp hµnh ®éng ®−îc
thùc thi.
C¶nh b¸o hËu qu¶ g©y ra nÕu cè t×nh thùc hiÖn hµnh ®éng ®ã.
VÝ dô: Khi xo¸ bá mét bé trong quan hÖ KHOA th× c¸c hËu qu¶ cã thÓ x¶y
ra trong quan hÖ SINHVIEN ®èi víi rµng buéc toµn vÑn R2 lµ:
- Xo¸ toµn bé c¸c sinh viÖn cã m· kho¸ ®ã.
- Thuéc tÝnh kho¸ trong c¸c bé sinh viªn cã m· kho¸ ®ã trë thµnh NULL
tøc sinh viªn ch−a thuéc khoa nµo c¶.
6.1.3 Ph©n lo¹i rµng buéc toµn vÑn :
6.1.3.1 Rµng buéc toµn vÑn cã bèi c¶nh lµ 1 quan hÖ.
Rµng buéc toµn vÑn liªn thuéc tÝnh lµ mèi liªn hÖ gi÷a c¸c thuéc tÝnh
trong 1 quan hÖ.
VÝ dô : Hoa_don (SOHD, NGAYHD, SODH, TRIGIA_HD,
NGAYXUAT)
Rµng buéc "Hµng ho¸ chØ ®−îc xuÊt kho khi ®· lËp ho¸ ®¬n"
∀hd ∈ T hoadon
hd.NGAYHD <= hd.NGAYXUAT.
Cuèi ∀
VÝ dô: Ctiet_hd (SOHD, MAHH, GIABAN, SL_BAN, THANHTIEN)
Rµng buéc THANHTIEN = SLBAN*GIABAN
∀cthd ∈ Tctiet_hd
cthd.THANHTIEN = cthd.SLBAN * cthd.GIABAN
cuèi ∀
• Rµng buéc toµn vÑn liªn bé
Lµ sù rµng buéc gi÷a c¸c bé trong quan hÖ nã th−êng ®−îc biÓu diÔn b»ng
phô thuéc hµm, ®Æc biÖt lµ rµng buéc toµn vÑn vÒ kho¸ néi.
VÝ dô: Rµng buéc toµn vÑn vÒ kho¸ chÝnh trong quan hÖ Sinhvien
Hoµn toµn phô thuéc vµo sù tæn h¹i cña 1 bé sv ∈ Tsinhvien sao cho
sv.MASV = kq.Masv = masv1 , nÕu kh«ng tån t¹i bé sv nh− thÕ th× bé kq kh«ng
®−îc phÐp tån t¹i trong Tketqua.
VÝ dô: Trong quan hÖ Tsinhvien, sù tån t¹i cña bé sv =(' 91023',...,
C'NTT',...) ∈ Tsinhvien hoµn toµn phô thuéc vµo sù tån t¹i bé k ∈ Tkhoa sao cho
K.MAKHOA = ‘CNTT.’
Tæng qu¸t :
Gi¶ sö cã 2 l−îc ®å quan hÖ Q vµ R. Hai tËp hîp KQ , KR lÇn l−ît lµ c¸c
kho¸ cña Q vµ R . Ta cã 2 dÊu hiÖu cña phô thuéc tån t¹i nh− sau :
NÕu KQ ⊆ KR th× cã 1 phô thuéc tån t¹i cña R vµo Q ký hiÖu : R[KQ]⊆
Q[KQ]
NÕu KQ ⊆ R+ th× cã 1 phô thuéc tån t¹i cña R vµo Q ký hiÖu : R[KQ] ⊆
Q[KQ].
∀d ∈ Tdocgia
∀m ∈ Tmuonsach : d.madg =m.madg th× d.ngaydk<=m.ngmuon
cuèi ∀m
Cuèi ∀d
• Rµng buéc toµn vÑn vÒ thuéc tÝnh tæng hîp (thèng kª)
Rµng buéc toµn vÑn vÒ thuéc tÝnh tæng hîp ®−îc x¸c ®Þnh trong tr−êng
hîp mét thuéc tÝnh A trong l−îc ®å quan hÖ Q ®−îc tÝnh to¸n gi¸ trÞ tõ c¸c
thuéc tÝnh cña c¸c l−îc ®å quan hÖ kh¸c.
6.1.4 LÖnh SQL ®èi víi rµng buéc toµn vÑn
Trong lÖnh CREATE TABLE ta cã thÓ t¹o ra c¸c rµng buéc toµn vÑn (xem
ch−¬ng 3)
Ngoµi ra ta cã thÓ t¹o ra c¸c rµng buéc toµn vÑn b»ng lÖnh CREATE
ASSERTION
Có ph¸p:
CREATE ASSERTION <tªn rµng buéc toµn vÑn > CHECK ( <®iÒu kiÖn >)
VÝ dô : XÐt 2 l−îc ®å quan hÖ sau:
DOCGIA(madg,tendg,diachi,sosachmuon,ngaydk)
Rµng buéc toµn vÑn sè s¹ch m−în ch−a tr¶ lµ kh«ng qu¸ 5
CREATE ASSERTION rb_so_sach_muon CHECK
(NOT EXISTS (SELECT * FROM DOCGIA
WHERE SOSACHMUON > 5)
)
Ta cã thÓ bá mét rµng buéc toµn vÑn b»ng lÖnh DROP ASSERTION
Có ph¸p: DROP ASSERTION < tªn rµng buéc toµn vÑn>
VÝ dô: Bá rµng buéc toµn vÑn rb_so_sach_muon
DROP ASSERTION rb_so_sach_muon
• C¸c hµnh ®éng tham kh¶o khi rµng buéc toµn vÑn vÒ kho¸ ngo¹i bÞ
vi ph¹m.
Gi¶ sö cã hai quan hÖ T1 vµ T2, trong ®ã T2 chøa kho¸ ngo¹i lµ kho¸ chØ
®Þnh trong T1
Tr−êng hîp xo¸ d÷ liÖu
MÖnh ®Ò ON DELETE ®Þnh nghÜa luËt xo¸ cho b¶ng “cha” T1 nÕu cè g¾ng
xo¸ mét bé trong T1 mµ cã mét sè bé trong T2 chøa kho¸ ngo¹i nµy. C¸c hµnh
®éng cã thÓ chän lùa lµ:
1. NO ACTION: bá qua hoµn toµn mÖnh ®Ò ON DELETE
2. CASCADE: ViÖc xo¸ mét bé trong T1 sÏ xo¸ tÊt c¶ c¸c bé
trong T2 cã kho¸ ngo¹i t−¬ng øng.
3. SET DEFAULT: ViÖc xo¸ mét bé trong T1 sÏ cµi ®Æt l¹i
mét gi¸ trÞ mÆc nhiªn trong kho¸ ngo¹i t−¬ng øng c¸c bé trongT2.
Trong tr−êng hîp nµy trong T1 ph¶i chøa mét dßng mµ kho¸ chØ
®Þnh cña nã chøa gi¸ trÞ mÆc nhiªn.
4. SET NULL: khi mét bé trong T1 bÞ xo¸ th× kho¸ ngo¹i
t−¬ng øng cña c¸c bé trong T2 sÏ cã gi¸ trÞ NULL
Tr−êng hîp cËp nhËt
MÖnh ®Ò ON UPDATE ®Þnh nghÜa luËt cËp nhËt cho kho¸ chØ ®Þnh
trong T1 t−¬ng øng víi kho¸ ngo¹i nµy. Nã x¸c ®Þnh ®iÒu g× sÏ x¶y ra khi
cËp nhËt l¹i kho¸ chØ ®Þnh nµy mµ cã mét sè bé trong T2 cã kho¸ ngo¹i
t−¬ng øng. C¸c hµnh ®éng cã thÓ chän lùa lµ:
1. NO ACTION : bá qua hµnh ®éng cËp nhËt
2. CASCADE: CËp nhËt l¹i kho¸ ngo¹i cho tÊt c¶ c¸c bé t−¬ng
øng trong T2
3. SET DEFAULT: ViÖc cËp nhËt l¹i kho¸ chØ ®Þnh trong T1 sÏ
cµi ®Æt l¹i mét gi¸ trÞ mÆc nhiÖn trong kho¸ ngo¹i t−¬ng øng c¸c bé
trongT2. Trong tr−êng hîp nµy trong T1 ph¶i chøa mét dßng mµ
kho¸ chØ ®Þnh cña nã chøa gi¸ trÞ mÆc nhiªn.
4. SET NULL: khi cËp nhËt l¹i kho¸ chØ ®Þnh trong T1 th× kho¸
ngo¹i t−¬ng øng cña c¸c bé trong T2 sÏ cã gi¸ trÞ NULL.
- QuyÒn t¹o mét b¶ng míi , xo¸ b¶ng, thay ®æi b¶ng.
- C¸c thao t¸c (phÐp to¸n) xuÊt nhËp ®−îc thùc hiÖn trªn c¸c ®¬n vÞ
blocks.
- C¸c blocks th−êng tró trªn ®Üa ®−îc gäi lµ blocks vËt lý trong khi
c¸c blocks th−êng tró t¹m trªn bé nhí chÝnh ®−îc gäi lµ buffer blocks.
- Mét block cã thÓ chøa nhiÒu mÉu d÷ liÖu. Ta gi¶ sö kh«ng cã mÉu
d÷ liÖu d−îc l−u tr÷ trªn 2 hay nhiÒu blocks.
- Sù di chuyÓn block gi÷a ®Üa vµ bé nhí chÝnh ®−îc thùc hiÖn qua 2
phÐp to¸n sau (h×nh 7.1):
Input (x) : chuyÓn block vËt lý chøa mÉu d÷ liÖu X vµo bé nhí chÝnh.
Output (x) : ng−îc l¹i.
Input A
A
A
B B
Input B
- C¸c giao t¸c t−¬ng t¸c víi hÖ c¬ së d÷ liÖu bëi sù chuyÓn d÷ liÖu tõ
c¸c biÕn ch−¬ng tr×nh vµo c¬ së d÷ liÖu vµ ng−îc l¹i. Sù chuyÓn d÷ liÖu nµy
®−îc thùc hiÖn bëi 2 phÐp to¸n sau :
• Read (X, xI) : g¸n gi¸ trÞ cña mÉu d÷ liÖu X vµo biÕn côc bé xi .
PhÐp to¸n ®−îc thùc hiÖn nh− sau:
1/ If block chøa X kh«ng th−êng tró trªn bé nhí chÝnh then input (x).
2/ xi : = X tõ buffer block
• Write (X, xi): g¸n gi¸ trÞ biÕn côc bé xi vµo mÉu d÷ liÖu X trªn
buffer block. PhÐp to¸n ®−îc thùc hiÖn nh− sau:
1/ If block chøa X kh«ng th−êng tró trªn bé nhí chÝnh then input (x).
2/ X : = xi trong buffer block.
- Cuèi cïng buffer block còng ®−îc ghi vµo ®Üa v× cÇn kh«ng gian bé
nhí hoÆc do hÖ thèng c¬ së d÷ liÖu quyÕt ®Þnh b»ng thao t¸c output (x).
- Khi 1 thao t¸c cÇn truy xuÊt mÉu d÷ liÖu X lÇn ®Çu tiªn , nã ph¶i thùc
hiÖn read (X, xi). ∀ cËp nhËt X ®Òu ®−îc thÓ hiÖn trªn xi . Cuèi cïng giao
t¸c ph¶i thùc hiÖn write (X, xi) ®Ó ph¶n ¶nh sù thay ®æi trong CSDL.
- Thao t¸c Output (x) kh«ng cÇn thùc hiÖn ngay sau lÖnh Write (X, xi),
v× X vÉn cßn ®−îc truy xuÊt do ®ã thao t¸c Output ®−îc thùc hiÖn sau.
NÕu hÖ thèng háng sau khi Write (X, xi) ®−îc thùc hiÖn nh−ng tr−íc
Output (X) th× gi¸ trÞ míi cña X kh«ng bao giê ®−îc ghi lªn ®Üa.
7.3 M« h×nh giao t¸c.
Mét giao t¸c lµ 1 ®¬n vÞ ch−¬ng tr×nh mµ truy xuÊt vµ cã thÓ cËp nhËt
lªn c¸c mÉu d÷ liÖu.
Mçi mÉu d÷ liÖu ®−îc ®äc chÝnh x¸c 1 lÇn bëi 1 giao t¸c vµ ®−îc ghi 1
lÇn nÕu nã cËp nhËt d÷ liÖu ®ã.
C¸c giao t¸c kh«ng ®−îc vi ph¹m c¸c rµng buéc toµn vÑn . NÕu c¬ së
d÷ liÖu nhÊt qu¸n khi giao t¸c b¾t ®Çu th× c¬ së d÷ liÖu ph¶i nhÊt qu¸n sau khi
giao t¸c kÕt thóc thµnh c«ng. Tuy nhiªn trong qu¸ tr×nh thùc thi giao t¸c th× cho
phÐp d÷ liÖu kh«ng nhÊt qu¸n. Sù nhÊt qu¸n t¹m thêi cã thÓ dÉn ®Õn khã kh¨n
khi 1 háng hãc x¶y ra.
7.3.1 VÝ dô
Mét giao t¸c T chuyÓn $50 tõ account A → account B.
T : read (A, a1 )
a1 : = a1 - 50
write (A, a1 )
read (B, b1 )
b1 : = b1 + 50
write (B, b1 )
Ta cã rµng buéc toµn vÑn : A + B = const
Gi¶ sö: _ Ban ®Çu A = $1000
B = $2000
TÝnh nguyªn tè : ∀ phÐp to¸n trong 1 giao t¸c ph¶i ®−îc thùc thi
®Çy ®ñ hoÆc kh«ng cã c¸i nµo ®−îc thùc thi.
- B¶o ®¶m tÝnh ®óng ®¾n lµ nhiÖm vô cña lËp tr×nh viªn
- B¶o ®¶m tÝnh nguyªn tè lµ tr¸ch nhiÖm cña hÖ thèng qu¶n trÞ c¬ së d÷
liÖu ®Æc biÖt lµ thµnh phÇn qu¶n lý giao t¸c.
NÕu kh«ng cã sù cè th× tÝnh nguyªn tè ®−îc thùc hiÖn dÔ dµng, nh−ng
kh«ng ph¶i giao t¸c nµo còng hoµn tÊt. Giao t¸c kh«ng hoµn tÊt ®−îc gäi lµ giao
t¸c bÞ bá dë (aborted). §Ó ®¶m b¶o tÝnh nguyªn tè, 1 giao t¸c bÞ bá dë kh«ng
®−îc g©y ¶nh h−ëng lªn tr¹ng th¸i cña c¬ së d÷ liÖu. V× thÕ, tr¹ng th¸i cña c¬ së
d÷ liÖu ph¶i ®−îc phôc håi trë l¹i (restored) ®Õn tr¹ng th¸i ban ®Çu tøc phôc håi
nguyªn tr¹ng ngay tr−íc khi giao t¸c trong c©u hái ®−îc b¾t ®Çu thùc hiÖn.
Chóng ta gäi giao t¸c nh− thÕ ®−îc lµ giao t¸c ®−îc quay lïi l¹i (rolled back).
Thao t¸c quay lui lµ chøc n¨ng cña qu¸ tr×nh phôc håi d÷ liÖu ®Ó qu¶n lý c¸c giao
t¸c bÞ bá dë.
_ Mét giao t¸c hoµn thµnh tèt ®−îc gäi lµ giao t¸c ®−îc x¸c nhËn
(committed). Mét giao t¸c ®−îc x¸c nhËn mµ thÓ hiÖn c¸c cËp nhËt sÏ chuyÓn
tr¹ng th¸i cña c¬ së d÷ liÖu ®Õn 1 tr¹ng th¸i nhÊt qu¸n míi.
_ ¶nh h−ëng cña 1 giao t¸c ®−îc x¸c nhËn kh«ng thÓ lµm l¹i (undo)
bëi 1 giao t¸c bÞ bá dë. Nã chØ ®−îc hñy bëi 1 giao t¸c ®Òn bï. Sù b¾t ®Çu cña 1
giao t¸c nh− thÕ th−êng lµ tr¸ch nhiÖm cña ng−êi sö dông chø kh«ng ph¶i cña hÖ
thèng c¬ së d÷ liÖu.
7.3.3 C¸c tr¹ng th¸i cña giao t¸c.
_ §Ó lµm râ ý nghÜa cña 1 giao t¸c hoµn thµnh tèt, chóng ta thiÕt lËp 1
m« h×nh giao t¸c trõu t−îng (abstract). Mét giao t¸c ph¶i n»m trong c¸c tr¹ng
th¸i sau.
• Partially committed : tr¹ng th¸i sau khi ph¸t biÓu cuèi cïng ®−îc
thùc hiÖn.
• Failed : Sau khi ph¸t hiÖn 1 thùc thi th«ng th−êng kh«ng thÓ
®−îc thùc thi l©u h¬n.
• Aborted : Sau khi giao t¸c ®−îc quay lui (rolled back) vµ c¬ së
d÷ liÖu ®−îc phôc håi tr¹ng th¸i ban ®Çu.
active
killed
ransaction
failed aborted
restart transaction
_ PhÐp to¸n write (X, xj ) thùc hiÖn trong Ti ↔ 1 mÉu tin míi trong
nhËt ký.
_ Ti partially commits, 1 mÉu tin <Ti commit> ®−îc ghi vµo nhËt
ký.
VÝ dô : To : Account A $
50
→ Account B, T1 : TrÝch $100 khái account C
To : T1 :
read (A, a1 ) read (C , c1 )
A1 : = a1 - 50 c1 : = c1 - 100
Write (A, a1 ) write (C , c1 )
Read(B, b1)
B1 : = b1 + 50
Write (B , b1 )
Gi¶ sö: . To thùc thi xong tíi T1 .
. A = $100 ; B = $2000 ; C = $700
. Trong nhËt ký :
< To starts >
< To , A , 950 >
< To , B , 2050 >
< To commits >
output A = 950
← →
B = 2050
B»ng c¸ch sö dông nhËt ký, hÖ thèng cã thÓ ®iÒu chØnh bÊt kú háng hãc nµo
mµ kÕt qu¶ lµm mÊt th«ng tin trªn bé l−u tr÷ bÊt biÕn. L−îc ®å phôc håi sö dông
thñ tôc phôc håi sau :
_ redo (Ti ) ph¶i lµ Idempotent nghÜa lµ, thùc thi nã 1 vµi lÇn ⇔ thùc thi
nã mét lÇn. Giao t¸c Ti cÇn thùc hiÖn l¹i nÕu vµ chØ nÕu trong nhËt ký chøa c¶
hai mÉu tin <Ti starts > vµ <Ti commits > . V× thÕ nÕu hÖ thèng háng sau khi
giao t¸c hoµn thµnh c¸c lÖnh cña nã, th«ng tin trong nhËt ký ®−îc sö dông ®Ó
phôc håi hÖ thèng ®Õn tr¹ng th¸I nhÊt qu¸n tr−íc ®ã.
VÝ dô : Gi¶ sö hÖ thèng háng sau mÉu tin nhËt ký cho lÖnh write (B , b1 )
< Tostarts>
NhËt ký: < To , A,950> kh«ng cã commit → kh«ng phôc håi
< To , B,2050>
• Undo(Ti): Phôc håi l¹i c¸c gi¸ trÞ ®· thay ®æi bëi giao t¸c Ti trong c¸c
mÉu d÷ liÖu b»ng c¸c gi¸ trÞ cò.
• Redo(Ti): ghi c¸c gi¸ trÞ míi vµo c¸c mÉu d÷ liÖu ®· thay ®æi b»ng bëi
giao t¸c Ti
C¸c phÐp to¸n trªn còng ph¶i cã tÝnh chÊt idempotent ®Ó b¶o ®¶m tÝnh ®óng
®¾n khi cã sù cè x¶y ra trong qu¸ tr×nh phôc håi d÷ liÖu.
Sau khi cã mét háng hãc x¶y ra, qui tr×nh phôc håi tham kh¶o vµo nhËt ký
®Ó x¸c ®Þnh gi¸o t¸c nµo cÇn redo hoÆc cÇn undo.
§iÒu kiÖn ®Ó thùc thi c¸c phÐp to¸n ®ã nh− sau:
• Giao t¸c Ti cÇn undo nÕu trong nhËt ký chøa mÉu tin <Ti start> nh−ng
kh«ng cã mÉu tin <Ti commit>
• Giao t¸c Ti cÇn redo nÕu trong nhËt ký chøa mÉu tin <Ti start> vµ
<Ti commit>
VÝ dô : Gi¶ sö hÖ thèng háng sau mÉu tin nhËt ký cho lÖnh write (B , b1 )
< Tostarts >
NhËt ký: < To , A,1000,950 > kh«ng cã commit → phôc håi b»ng undo
< To , B,2000,2050 >
• HÇu hÕt c¸c giao t¸c trong gi¶i thuËt cña chóng ta cÇn ®−îc redo mÆc
dÇu viÖc redo kh«ng g©y thiÖt h¹i nµo nh−ng nã sÏ kÐo dµi thêi gian cña qu¸
tr×nh phôc håi.
§Ó gi¶m c¸c khã kh¨n trªn, chóng ta ®−a ra kh¸i niÖm ®iÓm kiÓm tra. Trong
qu¸ tr×nh thùc thi, hÖ thèng duy tr× nhËt ký b»ng mét trong hai kü thuËt m« t¶ ë
phÇn 7.4.2 vµ 7.4.3. H¬n n÷a, hÖ thèng sÏ ®Þnh kú ghi c¸c ®iÓm kiÓm tra vµo nhËt
ký víi ®iÒu kiÖn mét d·y thao t¸c sau ®−îc x¶y ra:
• XuÊt tÊt c¶ c¸c mÉu tin nhËt ký hiÖn hµnh th−êng tró trong bé nhí
chÝnh vµo bé l−u tr÷ æn ®Þnh.
• XuÊt mét mÉu tin nhËt ký <check point> vµo bé l−u tr÷ æn ®Þnh.
Sù hiÖn diÖn cña mÉu tin <checkpoint> trong nhËt ký cho phÐp hÖ thèng
tæ chøc tèt h¬n thñ tôc phôc håi. Trong mét giao t¸c, mÉu tin < Ti commit>
ph¶i xuÊt hiÖn trong nhËt ký tr−íc mÉu tin <checkpoint>. BÊt kú sù thay ®æi c¬
së d÷ liÖu nµo còng ph¶i ®−îc ghi tr−íc mÉu tin <checkpoint>.
Sau khi cã mét háng hãc x¶y ra, quy tr×nh phôc håi xem xÐt trong nhËt ký
®Ó x¸c ®Þnh giao t¸c Ti cuèi cïng ®−îc b¾t ®Çu thùc hiÖn tr−íc khi cã ®iÓm
kiÓm tra. Giao t¸c nh− thÕ ®−îc t×m ra b»ng c¸ch dß ng−îc nhËt ký ®Ó t×m
®iÓm kiÓm tra ®Çu tiªn sau ®ã t×m mÉu tin <Ti start>.
Mçi mét giao t¸c t×m thÊy sÏ ®−îc phôc håi b»ng phÐp to¸n redo hoÆc
undo, ®iÒu nµy phôc thuéc vµo kü thuËt phôc håi d÷ liÖu. Gi¶ sö ta xÐt kü thuËt
thay ®æi c¬ së d÷ liÖu tøc kh¾c th× c¸c phÐp to¸n ®−îc thùc hiÖn nh− sau:
• Víi mäi giao t¸cTk trong T khi cã mÉu tin <Tk commit> th× thùc hiÖn
phÐp to¸n redo(Tk)
• Víi mäi giao t¸cTk trong T khi kh«ng cã mÉu tin <Tk commit> th×
thùc hiÖn phÐp to¸n undo(Tk)
Bµi 1 ThiÕt kÕ m« h×nh d÷ liÖu quan niÖm qu¶n lý cë së d÷ liÖu cho mét c«ng
ty hµng kh«ng d©n dông quèc tÕ
a/ ThiÕt kÕ s¬ ®å thùc thÓ mèi liªn kÕt cho c¬ së d÷ liÖu cho mét c«ng ty hµng
kh«ng d©n dông quèc tÕ :
- C«ng ty cã nhiÒu m¸y bay. Th«ng tin vÒ m¸y bay gåm cã m· sè m¸y bay
®−îc dïng ®Ó ph©n biÖt c¸c m¸y bay trong c«ng ty, tªn lo¹i m¸y bay, c«ng dông,
søc chøa.
- Hµng kh¸ch ®i c¸c chuyÕn bay cña c«ng ty ph¶i ®¨ng ký mua vÐ. Mçi vÐ
chØ dïng cho mét kh¸ch hµng.
-Th«ng tin vÒ hµnh kh¸ch gåm cã sè giÊy th«ng hµnh, hä tªn hµnh kh¸ch.
- Th«ng tin cña vÐ gåm cã sè vÐ dïng ®Ó ph©n biÖt víi c¸c vÐ kh¸c, vÞ trÝ chç
trong m¸y bay, n−íc ®i, n−íc ®Õn. Mçi vÐ chØ sö dông cho mét chuyÕn bay.
- Th«ng tin vÒ chuyÕn bay cã m· chuyÕn bay dïng ®Ó ph©n biÖt c¸c chuyÕn
bay kh¸c nhau, ngµy giê cÊt c¸nh. Mét chuyÕn bay ph¶i khëi hµnh t¹i mét s©n bay
x¸c ®Þnh vµ kÕt thóc còng ë mét s©n bay x¸c ®Þnh.
- Th«ng tin vÒ s©n bay gåm cã tªn s©n bay, tªn n−íc, vÞ trÝ.
- Mçi hµnh kh¸ch cã thÓ cã hµng hãa. Th«ng tin vÒ hµng hãa gåm cã m· sè
hµng hãa, träng l−îng, kÝch th−íc, ®Æc tÝnh cña hµng hãa. Hµng hãa cã thÓ ®i theo
chuyÕn bay cña kh¸ch hµng hoÆc trªn mét chuyÕn bay kh¸c.
- Lé tr×nh cña mét chuyÕn bay cã thÓ qu¸ c¶nh nhiÒu s©n bay ®Ó tiÕp nhiªn
liÖu nh−ng ph¶i ®¸p xuèng s©n bay ®ã trong kho¶ng thêi gian x¸c ®Þnh.
b/ Tõ s¬ ®å thùc thÓ mèi liªn kÕt ®· thiÕt kÕ ë c©u a/ h·y x©y dùng m« h×nh
logic sao cho ®¹t d¹ng chuÈn 3.
c/ Dùa vµo c¬ së d÷ liÖu ë c©u b/ h·y tr¶ lêi c¸c c©u hái sau b»ng ng«n ng÷
SQL.
1. H·y cho biÕt danh s¸ch (sè giÊy th«ng hµnh, hä tªn) c¸c hµnh kh¸ch ®i
chuyÕn bay cã m· ‘A01’ xuÊt ph¸t ë ‘ViÖt Nam’ xuèng ë s©n bay qu¸ c¶nh t¹i
‘Th¸i Lan’.
2. H·y cho biÕt s©n bay nµo ®−îc qu¸ c¶nh nhiÒu nhÊt.
3. H·y cho biÕt chuyÕn bay nµo cã lé tr×nh dµi nhÊt.
Bµi 2 Cho m« h×nh thùc thÓ mèi liªn kÕt ®Ó qu¶n lý viÖc b¸n hµng ë siªu thÞ
sau:
Lo¹i mÆt hµng
Nh©n viªn
Bµy b¸n
Phôc vô
Gåm
QuÇy hµng Isa
MÆt hµng
Phô tr¸ch
§−îc mua
Baùn
Tr−ëng QuÇy
X©y dùng c¸c quan hÖ d÷ liÖu (m« h×nh logic) tõ m« h×nh ER trªn, biÕt:
- Th«ng tin vÒ mÆt hµng gåm cã m· mÆt hµng,tªn hµng, tªn nhµ s¶n xuÊt
- Th«ng tin vÒ lo¹i mÆt hµng gåm cã m· lo¹i mÆt hµng, tªn mÆt hµng
- Th«ng tin vÒ quÇy hµng th× cã sè quÇy
- Th«ng tin vÒ nh©n viªn cã hä tªn, ®i¹ chØ, m· nh©n viªn
- Th«ng tin vÒ ngµy gåm cã ngµy, th¸ng, n¨m.
Cho biÕt c¸c c©u hái sau ®©y ®óng sai, gi¶i thÝch.
- Mçi quÇy hµng b¸n mét mÆt hµng víi gi¸ kh¸c nhau.
- Mét mÆt hµng chØ ®−îc b¸n ë mét quÇy hµng duy nhÊt.
Tr¶ lêi c¸c c©u hái sau b»ng ng«n ng÷ SQL vµ cÊt kÕt qu¶ vµo mét b¶ng t¹m.
- Cho biÕt quÇy hµng vµ tªn tr−êng quÇy nµo cã doanh thu cao nhÊt trong th¸ng
8/1999.
- Cho biÕt lo¹i mÆt hµng nµo ®−îc tiªu thô Ýt nhÊt trong th¸ng 8/1999.
Bµi 3 ThiÕt kÕ m« h×nh d÷ liÖu quan niÖm ®Ó qu¶n lý bÖnh nh©n cña mét bÖnh
viÖn sau
1/ ThiÕt kÕ s¬ ®å thùc thÓ mèi liªn kÕt cho c¬ së d÷ liÖu ®Ó qu¶n lý bÖnh nh©n
cña mét bÖnh viÖn sau :
- BÖnh viÖn cã nhiÒu khoa. Th«ng tin vÒ khoa cã m· khoa, tªn khoa, sè phone, sè
bÖnh nh©n tèi ®a cã thÓ phôc vô.
- Trong bÖnh viÖn cã nhiÒu phßng bÖnh. Th«ng tin vÒ phßng bÖnh cã sè phßng,
vÞ trÝ, lo¹i phßng, gi¸ phßng.
- Mçi phßng cã nhiÒu gi−êng bÖnh. C¸c gi−êng bÖnh ®−îc ®¸nh sè riªng biÖt
vµ theo thø tù t¨ng dÇn.
- Mçi khoa phô tr¸ch nhiÒu phßng bÖnh nh−ng mét phßng bÖnh chØ do mét
khoa ®¶m nhiÖm.
- Mçi khoa cã nhiÒu nh©n viªn nh−ng mét nh©n viªn chØ thuéc mét khoa.
Th«ng tin vÒ nh©n viªn cã m· nh©n viªn, hä tªn nh©n viªn, chøc danh (b¸c sÜ, y t¸,
hé lý). Mçi khoa cã mét tr−ëng khoa lµ b¸c sÜ cña khoa ®ã.
- Mçi bÖnh nh©n n»m ë mét gi−êng cè ®Þnh. Th«ng tin vÒ bÖnh nh©n gåm cã
hä tªn bÖnh nh©n (gi¶ sö cã thªm th«ng tin phô ®Ó ph©n biÖt c¸c bÖnh nh©n cïng hä
tªn), ®Þa chØ, b¶o hiÓm y tÕ (cã hoÆc kh«ng), ngµy nhËp viÖn, ngµy xuÊt viÖn. Mçi
bÖnh nh©n cã mét hå s¬ bÖnh ¸n riªng do mét b¸c sÜ theo dâi. Th«ng tin vÒ hå s¬
bÖnh ¸n gåm cã m· hå s¬, lo¹i bÖnh, träng l−îng, kÕt qu¶ xÐt nghiÖm, c¸ch ch÷a trÞ,
thuèc sö dông, chi phÝ.
- ViÖc kh¸m/ ch÷a bÖnh ®−îc tæ chøc theo buæi, trong mét buæi kh¸m/ ch÷a
bÖnh mét bÖnh nh©n ®−îc mét b¸c sÜ – y t¸ kh¸m/ch÷a. Ngoµi ra trong mét buæi
cã mét b¸c sÜ trùc ®Ó gi¶i quyÕt c¸c sù cè cã thÓ x¶y ra.
2/ Tõ s¬ ®å thùc thÓ mèi liªn kÕt ë trªn h·y x©y dùng m« h×nh logic sao cho
®¹t d¹ng chuÈn 3.
3/ Tr¶ lêi mét sè c©u hái sau b»ng SQL
a/ Cho biÕt bÖnh nh©n cã tªn X ®ang n»m ë khoa, phßng, gi−êng nµo? §ang bÞ
bÖnh g×? Vµ do b¸c sÜ nµo trùc tiÕp theo dâi bÖnh ¸n?
b/ Cho biÕt lo¹i bÖnh nµo ®ang ®−îc ch÷a ch¹y nhiÒu nhÊt ?
c/ Cho biÕt b¸c sÜ cña khoa nµo kh¸m bÖnh cho nhiÒu bÖnh nh©n nhÊt ?
Bµi 4 ThiÕt kÕ m« h×nh d÷ liÖu quan niÖm qu¶n lý sinh viªn cña mét tr−êng
®¹i häc
Cho c¸c th«ng tin qu¶n lý sinh viªn cña mét tr−êng ®¹i häc sau:
Th«ng tin vÒ sinh viªn gåm cã m· sinh viªn dïng ®Ó ph©n biÖt c¸c sinh viªn,
hä tªn sinh viªn , ®i¹ chØ, ngµy sinh, n¨m b¾t ®Çu vµo häc.
Th«ng tin vÒ líp gåm cã m· líp dïng ®Ó ph©n biÖt c¸c líp vµ tªn líp. Mét
sinh viªn th× ë mét líp, mét líp th× cã tèi ®a lµ 50 sinh viªn.
Mét líp cã mét gi¸o viªn chñ nhiÖm.
Th«ng tin vÒ gi¶ng viªn gåm m· gi¶ng viªn dïng ®Ó ph©n biÖt c¸c gi¶ng viªn,
tªn gi¶ngviªn, häc vÞ, chuyªn m«n.
Th«ng tin vÒ m«n häc gåm m· m«n häc dïng ®Ó ph©n biÖt c¸c m«n häc, tªn
m«n, sè tiÕt.
Líp ®−îc häc m«n häc do mét gi¶ng viªn d¹y.
Líp ®−îc häc m«n häc b¾t ®Çu ë mét thêi ®iÓm (ngµy, th¸ng, n¨m) nhÊt ®Þnh.
Sinh viªn khi theo häc m«n nµo còng sÏ bÞ ®iÓm danh theo tõng buæi häc. NÕu
sinh viªn v¾ng qu¸ 1/3 buæi häc sÏ bÞ cÊm thi. Mét buæi häc ®−¬c tÝnh 4 tiÕt.
Líp ®−îc tæ chøc cho thi m«n häc vµo mét thêi ®iÓm x¸c ®Þnh.
Sinh viªn thi m«n häc nµo th× cã mét kÕt qu¶. KÕt qu¶ cho biÕt lÇn thi ®ã sinh
viªn ®−îc bao nhiªu ®iÓm. Sè lÇn thi cho mét m«n tèi ®a lµ 2 lÇn.
C©u hái
1. ThiÕt kÕ s¬ ®å ER
2. X©y dùng c¸c quan hÖ d÷ liÖu (m« h×nh logic)tõ s¬ ®å ER trªn.
3. Cho biÕt c¸ch t¹o ra c¸c quan hÖ t¹m (b¶ng t¹m) sau b»ng ng«n ng÷ SQL:
- Danh s¸ch sinh viªn ®ñ ®iÒu kiÖn dù thi m«n häc X lÇn 1.
- Danh s¸ch sinh viªn thi lÇn 2 m«n häc X .
Bµi 5 ThiÕt kÕ m« h×nh d÷ liÖu quan niÖm qu¶n lý th− viªn
Cho th«ng tin ®Ó qu¶n lý th− viªn sau:
- Th«ng tin vÒ s¸ch gåm m· s¸ch dïng ®Ó ph©n biÖt c¸c s¸ch, tªn s¸ch, khæ
s¸ch, sè trang, t×nh tr¹ng s¸ch, gi¸,sè b¶n s¸ch (lµ sè s¸ch gièng nh− nhau).
- Th«ng tin vÒ t¸c gi¶ gåm tªn t¸c gi¶, ®Þa chØ.
- Th«ng tin vÒ nhµ xuÊt b¶n gåm tªn nhµ xuÊt b¶n, ®Þa chØ.
- Th«ng tin vÒ thÓ lo¹i s¸ch gåm m· thÓ lo¹i dïng ®Ó ph©n biÖt c¸c thÓ lo¹i, tªn
thÓ lo¹i.
- Th«ng tin vÒ ®äc gi¶ gåm m· ®éc gi¶ dïng ®Ó ph©n biÖt c¸c ®éc gi¶, tªn ®éc
gi¶, ®Þa chØ.
- Th«ng tin vÒ ng¨n tñ gåm vÞ trÝ, sè luîng s¸ch cã thÓ chøa vµo ng¨n ®ã.
- C¸c quyÓn s¸ch cïng b¶n ®−îc cÊt vµo mét ng¨n tñ.
- Mét quyÓn s¸ch th× cã thÓ cã nhiÒu t¸c gi¶ vµ mét t¸c gi¶ cã thÓ viÕt nhiÒu
s¸ch.
- Mét s¸ch th× do mét nhµ xuÊt b¶n in Ên.
- Mét s¸ch thuéc mét lo¹i thÓ lo¹i.
- Mét ®éc gi¶ chØ cã thÓ m−în vÒ nhµ hai s¸ch ë mét thêi ®iÓm. Mét s¸ch chØ
cho m−în tèi ®a 30 ngµy vµ kh«ng ®−îc m−în qu¸ 5 quyÓn. Mét s¸ch chØ cã thÓ
cho m−în nÕu sè b¶n cña nã lín h¬n 1.
C©u hái
- ThiÕt kÕ s¬ ®å ER
- X©y dùng c¸c quan hÖ d÷ liÖu (m« h×nh logic)tõ s¬ ®å ER trªn.
- Cho biÕt c¸ch t¹o ra c¸c quan hÖ t¹m (b¶ng t¹m) sau b»ng ng«n ng÷ SQL:
- Danh s¸ch ®éc gi¶ kh«ng ®ñ ®iÒu kiÖn m−în s¸ch.
- Danh s¸ch tªn nhµ xuÊt b¶n cã sè l−îng s¸ch ®−îc m−în theo thø tù gi¶m
dÇn.
Mçi mét chi tiÕt cña ®¬n ®Æt hµng cña mét kh¸ch hµng liªn quan ®Õn mét mÆt
hµng. T−¬ng øng víi mçi chi tiÕt ta biÕt ®−îc l−îng ®Æt (LG_DAT).
5. GIAO_GH(MDDH,MKH,MGH,NGAY)
Mçi ®ît giao hµng liªn quan ®Õn mét ®¬n ®Æt hµng cña mét kh¸ch hµng. §¬n
giao hµng cã mét m· sè (MGH) dïng ®Ó ph©n biÖt víi nh÷ng ®ît giao kh¸c nhau.Ta
biÕt ngµy giao (NGAY) cña ®ît ®ã.
6. CHI_TIET_GH(MDDH,MKH,MGH,MHG,LG_GIAO)
Mçi chi tiÕt cña mét ®ît giao hµng (MGH) liªn quan ®Õn c¸c mÆt hµng (MHG)
vµ sè l−îng giao mÆt hµng ®−îc cho ®¬n ®Æt hµng (MDDH) cña kh¸ch hµng
(MKH).
C©u hái
1/ X¸c ®Þnh kho¸ vµ c¸c phô thuéc hµm cña c¸c quan hÖ.
2/ ChuÈn ho¸ l−îc ®å c¬ së d÷ liÖu trªn ®Õn tèi thiÓu d¹ng chuÈn 3.
3/ Cho biÕt c¸c rµng buéc toµn vÑn cña c¬ së d÷ liÖu trªn (kh«ng xÐt rµng
buéc vÒ khãa vµ miÒn gi¸ trÞ).
4/ Tr¶ lêi c©u hái d−íi ®©y b»ng SQL hoÆc ®¹i sè quan hÖ
- Danh s¸ch nh÷ng m· hµng cña ®¬n ®Æt hµng sè 26 cña kh¸ch hµng sè 12 ®·
®−îc giao lµm ba ®ît.
F := ∅;
For mçi X -> Y trong G do
if MEMBER(G- {X-> Y}, X->Y) then F := F U {X -> Y}
return (G- F)
end.
Cho vÝ dô minh häa víi F theo gi¶i thuËt REPUGNANT vµ so s¸nh víi phñ tèi
thiÓu thËt sù.
C©u 2: Cho mét c¬ së d÷ liÖu qu¶n lý ®¬n ®Æt hµng cña mét ®¬n vÞ kinh doanh
sau:
1. KHACH_HANG(MKH,DC,DT,TEN_KH)
Mét kh¸ch hµnh cã m· sè (MKH) dïng ®Ó ph©n biÖt víi nh÷ng kh¸ch hµng
kh¸c, cã ®Þa chØ (DC), sè ®iÖn tho¹i (DT), tªn kh¸ch hµng (TEN_KH).
2. MAT_HANG(MHG,TEN_HG,DONGIA, NGAY)
Mçi mÆt hµng cã m· sè (MHG) dïng ®Ó ph©n biÖt víi nh÷ng mÆt hµng kh¸c vµ
cã mét tªn gäi (TEN_HG) cã ®¬n gi¸ (DONGIA) ®−îc thiÕt lËp tõ ngµy (NGAY).
3. DDH(MDDH,MKH,SO_HG,NGAYDH)
Mçi ®¬n ®Æt hµng cña mét kh¸ch hµng cã mét m· ®¬n dïng ®Ó ph©n biÖt víi
nh÷ng ®¬n ®Æt hµng kh¸c cña cïng mét kh¸ch hµng. øng víi mçi ®¬n ®Æt hµng ta
biÕt sè lo¹i c¸c mÆt hµng (SO_HG) ®−îc ®Æt vµo ngµy ®Æt hµng(NGAYDH).
4. CHI_TIET_DDH(MDDH,MKH,MHG,LG_DAT)
Mçi mét chi tiÕt cña ®¬n ®Æt hµng cña mét kh¸ch hµng liªn quan ®Õn mét mÆt
hµng. T−¬ng øng víi mçi chi tiÕt ta biÕt ®−îc l−îng ®Æt (LG_DAT).
5. GIAO_GH(MDDH,MKH,MGH,NGAY)
Mçi ®ît giao hµng liªn quan ®Õn mét ®¬n ®Æt hµng cña mét kh¸ch hµng. §¬n
giao hµng cã mét m· sè (MGH) dïng ®Ó ph©n biÖt víi nh÷ng ®ît giao kh¸c nhau.Ta
biÕt ngµy giao (NGAY) cña ®ît ®ã.
6. CHI_TIET_GH(MDDH,MKH,MGH,MHG,LG_GIAO)
Mçi chi tiÕt cña mét ®ît giao hµng (MGH) liªn quan ®Õn c¸c mÆt hµng (MHG)
vµ sè l−îng giao mÆt hµng ®−îc cho ®¬n ®Æt hµng (MDDH) cña kh¸ch hµng
(MKH).
C©u hái
1/ X¸c ®Þnh kho¸ vµ c¸c phô thuéc hµm cña c¸c quan hÖ.
2/ ChuÈn ho¸ l−îc ®å c¬ së d÷ liÖu trªn ®Õn tèi thiÓu d¹ng chuÈn 3.
3/ Cho biÕt c¸c rµng buéc toµn vÑn cña c¬ së d÷ liÖu trªn (kh«ng xÐt rµng
buéc vÒ khãa vµ miÒn gi¸ trÞ).
4/ Tr¶ lêi c©u hái d−íi ®©y b»ng SQL hoÆc ®¹i sè quan hÖ
- Danh s¸ch nh÷ng m· hµng cña ®¬n ®Æt hµng sè 26 cña kh¸ch hµng sè 12 ®·
®−îc giao lµm ba ®ît.
§Ò sè 1
Quan hÖ DINHMUC cho biÕt chØ tiªu (CHITIEU) vÒ sè s¶n phÈm cña s¶n
phÈm cã m· (MASP), tªn s¶n phÈm (TENSANPHAM) vµ cña mét m¸y (MAMAY)
x¸c ®Þnh trong mét ngµy.
6. SANPHAM(MASP, TENSANPHAM, GIACONGDONVI)
MASP cho biÕt m· cña s¶n phÈm vµ cã mét tªn (TENSANPHAM) víi gi¸
c«ng cña mét s¶n phÈm (GIACONGDONVI)
C©u hái
1/X¸c ®Þnh khãa cña c¸c quan hÖ trªn.
2/ Cho biÕt c¸c quan hÖ cña c¬ së d÷ liÖu trªn ë d¹ng chuÈn mÊy ? NÕu ch−a
®¹t d¹ng chuÈn 3 th× chuÈn hãa tiÕp ®Ó ®¹t ®−îc.
3/ Cho biÕt c¸c c©u hái sau ®©y ®óng hay sai , t¹i sao?
- Mét c«ng nh©n chØ chuyªn lµm ra mét lo¹i s¶n phÈm.
- Mçi m¸y cã chØ tiªu riªng cho tõng lo¹i s¶n phÈm.
4/ Cho biÕt c¸c rµng buéc toµn vÑn cña c¬ së d÷ liÖu trªn.
5/ Tr¶ lêi c©u hái b»ng ng«n ng÷ SQL hoÆc b»ng ®¹i sè quan hÖ
- Cho biÕt tiÒn l−¬ng cña c«ng nh©n cã tªn “NguyÔn V¨n Hïng” vµo th¸ng
10/1998.
- Cho biÕt tiÒn l−¬ng trung b×nh cña tæ cã SOTO =2 vµo th¸ng 10/1998.
- Cho biÕt tæ nµo (SOTO) vµ tªn tæ tr−ëng cña tæ ®ã mµ lµm ra nhiÒu s¶n phÈm
nhÊt trong n¨m võa råi?
- Cho biÕt m¸y nµo cã thÓ lµm ra ®ñ c¸c s¶n phÈm?
môc lôc