Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 1
Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu
1.1 Kh¸i niÖm vÒ c¬ së d÷ liÖu (Database)
1.1.1Kh¸i niÖm vÒ c¬ së d÷ liÖu
C¬ së d÷ liÖu lµ mét tËp hîp cã cÊu tróc cña c¸c d÷ liÖu ®−îc l−u tr÷ trªn
c¸c thiÕt bÞ ghi nhí vµ cã thÓ truy xuÊt ®−äc bëi c¸c ch−¬ng tr×nh m¸y tÝnh, ®−îc
gäi lµ ch−¬ng tr×nh qu¶n trÞ c¬ së d÷ liÖu, ®Ó tho¶ m·n ®ång thêi cho nhiÒu
ng−êi sö dông.
HÖ c¬ së d÷
liÖu
H×nh 1.1HÖ c¬ së d÷ liÖu
1.1.2 Môc ®Ých cña c¸c hÖ c¬ së d÷ liÖu
Gi¶ sö ta xem xÐt mét phÇn viÖc l−u tr÷ th«ng tin ë ng©n hµng tiÕt kiÖm vÒ
c¸c kh¸ch hµng vµ c¸c tµi kho¶n mµ ®−îc l−u trong c¸c files hÖ thèng th−êng
trùc. H¬n n÷a, hÖ thèng nµy chøa mét sè c¸c ch−¬ng tr×nh øng dông cho phÐp
ng−êi sö dông thao t¸c c¸c files nµy, bao gåm c¸c ch−¬ng tr×nh:
•
•
•
•
Ch−¬ng tr×nh ghi nî hoÆc göi tiÒn vµo mét tµi kho¶n
Ch−¬ng tr×nh thªm mét tµi kho¶n míi
Ch−¬ng tr×nh quyÕt to¸n
Ch−¬ng tr×nh ph¸t sinh b¶ng thèng kª hµng th¸ng
C¸c ch−¬ng tr×nh nµy ®−îc viÕt bëi c¸c lËp tr×nh viªn hÖ thèng ®Ó ®¸p øng
c¸c nhu cÇu cña tæ chøc ng©n hµng.C¸c ch−¬ng tr×nh øng dông míi ®−îc thªm
vµo hÖ thèng khi cã nhu cÇu ph¸t sinh.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 2
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:
•
Sù d− thõa d÷ liÖu vµ sù m©u thuÉn d÷ liÖu (Data redundancy and
inconsistency).
Khi c¸c files vµ c¸c ch−¬ng tr×nh øng dông ®−îc t¹o ra bëi c¸c lËp tr×nh
viªn kh¸c nhau qua mét thêi gian dµi th× c¸c files nµy cã c¸c ®Þnh d¹ng kh¸c
nhau vµ c¸c ch−¬ng tr×nh ®−îc viÕt b»ng nhiÒu ng«n ng÷ lËp tr×nh. H¬n n÷a,
cïng mét mÉu th«ng tin cã thÓ ®−îc nh©n b¶n ë nhiÒu n¬i (files). VÝ dô ®Þa chØ
vµ sè phone cña mét kh¸ch hµng cã thÓ xuÊt hiÖn trong file chøa c¸c mÉu tin
tµi kho¶n tiÕt kiÖm vµ trong file chøa c¸c mÉu tin kiÓm tra tµi kho¶n. Sù d−
thõa nµy dÉn ®Õn kho l−u tr÷ vµ chi phÝ truy xuÊt ph¶i lín h¬n. H¬n n÷a, nã cã
thÓ dÉn ®Õn sù m©u thuÉn d÷ liÖu, do ®ã nhiÒu b¶n copies cña cïng mét d÷ liÖu
sÏ kh«ng phï hîp l©u dµi. VÝ dô mét sù thay ®æi ®Þa chØ kh¸ch hµng cã thÓ chØ
®−îc ph¶n ¸nh trong c¸c mÉu tin tµi kho¶n tiÕt kiÖm mµ kh«ng ë n¬i kh¸c
trong hÖ thèng. KÕt qu¶ dÉn ®Õn sù m©u thuÉn d÷ liÖu.
•
Sù khã kh¨n trong viÖc truy xuÊt d÷ liÖu.
Gi¶ sö mét nh©n viªn cña ng©n hµng cÇn t×m kiÕm tªn cña c¸c kh¸ch
hµng sèng t¹i thµnh phè cã m· 78733. Nh©n viªn nµy yªu cÇu phßng xö lý d÷
liÖu ®−a ra mét danh s¸ch nh− thÕ. Bëi yªu cÇu nµy kh«ng ®−îc dù ®Þnh tr−íc
khi hÖ thèng ®−îc thiÕt kÕ, nªn kh«ng cã mét ch−¬ng tr×nh øng dông nµo ®¸p
øng yªu cÇu ®ã. Tuy nhiªn cã mét ch−¬ng tr×nh ph¸t sinh danh s¸ch cña tÊt c¶
c¸c kh¸ch hµng. Ng−êi nh©n viªn lóc nµy cã hai chän lùa: mét lµ lÊy danh
s¸ch cña tÊt c¶ c¸c kh¸ch hµng råi trÝch c¸c th«ng tin cÇn thiÕt b»ng tay, hai lµ
yªu cÇu phßng xö lý d÷ liÖu viÕt mét ch−¬ng tr×nh øng dông cÇn thiÕt. C¶ hai
lùa chän ®Òu kh«ng tho¶ m·n. Gi¶ sö r»ng mét ch−¬ng tr×nh nh− thÕ ®−îc viÕt
vµ, vµi ngµy sau ®ã , chÝnh nh©n viªn ®ã cÇn läc l¹i danh s¸ch sao cho chØ chøa
nh÷ng kh¸ch hµng nµo cã tµi kho¶n lín h¬n hoÆc b»ng $10000. Mét ch−¬ng
tr×nh ph¸t sinh mét danh s¸ch nh− thÕ kh«ng cã. Mét lÇn n÷a, nh©n viªn nµy
cã hai chän lùa nh− tr−íc mµ kh«ng cã c¸i nµo tho¶ m·n.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 3
ë ®©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.
•
Sù t¸ch biÖt d÷ liÖu (data isolation).
Bëi d÷ liÖu ®−îc r¶i ë nhiÒu files, c¸c files cã thÓ ®−îc ®Þnh d¹ng kh¸c
nhau, nªn g©y khã kh¨n cho viÖc viÕt c¸c ch−¬ng tr×nh øng dông míi ®Ó t×m
kiÕm c¸c th«ng tin cÇn thiÕt.
•
Sù bÊt th−êng trong truy xuÊt ®ång thêi (Concurrent access
anomalies)
§Ó c¶i tiÕn sù thùc thi cña toµn bé hÖ thèng vµ ®¹t ®−îc thêi gian ®¸p øng
nhanh, nhiÒu hÖ thèng cho phÐp nhiÒu ng−êi sö dông cËp nhËt d÷ liÖu ®ång
thêi. Trong m«i tr−êng nh− thÕ, sù t−¬ng t¸c cña c¸c cËp nhËt ®ång thêi cã thÓ
®−a ®Õn hËu qu¶ lµ sù m©u thuÉn d÷ liÖu.
Gi¶ sö mét tµi kho¶n A cã $500. NÕu cã hai kh¸ch hµng rót tiÒn ($50 vµ
$100 t−¬ng øng) tõ tµi khoµn A ë cïng thêi ®iÓm, kÕt qu¶ cña viÖc gi¶i quyÕt
®ång thêi cã thÓ g©y ra mét sù m©u thuÉn ë tµi kho¶n nµy. Cô thÓ, tµi kho¶n
nµy cã thÓ chøa c¶ $450 hoÆc $400 thay v× $350. §Ó ®Ò phßng kh¶ n¨ng nµy,
viÖc gi¸m s¸t hÖ thèng ph¶i ®−îc duy tr×. Bëi d÷ liÖu cã thÓ ®−îc truy xuÊt bëi
c¸c ch−¬ng tr×nh øng dông kh¸c nhau mµ tr−íc ®©y kh«ng cã quan hÖ víi
nhau, nªn viÖc gi¸m s¸t cµng khã kh¨n h¬n.
•
C¸c vÊn ®Õ an toµn (security problems).
Kh«ng thÓ ®Ó mäi ng−êi sö dông ®Òu cã kh¶ n¨ng truy xuÊt tÊt c¶ d÷ liÖu.
Nh− trong hÖ thèng ng©n hµng, bé phËn lµm l−¬ng chØ cÇn thÊy mét phÇn c¬ së
d÷ liÖu lµ c¸c th«ng tin vÒ c¸c nh©n viªn cña ng©n hµng. Hä kh«ng cÇn truy
xuÊt th«ng tin tµi kho¶n cña kh¸ch hµng. Bëi c¸c ch−¬ng tr×nh øng dông ®−îc
thªm vµo hÖ thèng theo mét c¸ch kh«ng dù tÝnh tr−íc nªn nã g©y khã kh¨n
cho viÖc tu©n thñ c¸c rµng buéc an toµn nµy.
•
C¸c vÊn ®Ò toµn vÑn (Integrity problems).
C¸c gi¸ trÞ d÷ liÖu l−u tr÷ trong c¬ së d÷ liÖu ph¶i tho¶ m·n mét sè kiÓu
rµng buéc toµn vÑn. VÝ dô ng©n kho¶n kh«ng bao giê xuèng thÊp h¬n mét sè
(nh− $25). C¸c rµng buéc nµy ®−îc ®−a vµo hÖ thèng b»ng c¸ch thªm nh÷ng
m· lÖnh thÝch hîp, nã g©y khã kh¨n khi thay ®æi ch−¬ng tr×nh. VÊn ®Ò sÏ phøc
t¹p khi c¸c rµng buéc bao gåm mét sè d÷ liÖu tõ nhiÒu files kh¸c nhau.Nh÷ng
khã kh¨n nµy, mét sè kh¸c n÷a, ®· thóc ®Èy sù ph¸t triÓn c¸c hÖ qu¶n trÞ c¬ së
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 4
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.
1.2 KiÕn tróc cña mét hÖ thèng c¬ së d÷ liÖu
HÖ qu¶n trÞ c¬ së d÷ liÖu lµ tËp hîp c¸c files cã mèi quan hÖ vµ mét tËp
ch−¬ng tr×nh cho phÐp nh÷ng ng−êi sö dông truy xuÊt vµ thay ®æi c¸c files nµy.
Môc ®Ých chÝnh cña hÖ c¬ së d÷ liÖu lµ cung cÊp cho nh÷ng ng−êi sö dông mét
c¸i nh×n trõu t−îng (abstract view) vÒ d÷ liÖu. HÖ thèng sÏ dÊu mét sè chÝ tiÕt
phøc t¹p nh− lµm thÕ nµo d÷ liÖu ®−îc l−u tr÷ vµ duy tr×. Tuy nhiªn ®Ó cho hÖ
thèng cã thÓ
Khung Nh×n 2
Khung Nh×n 3
Khung Nh×n 1
Møc quan niÖm
Møc vËt lý
H×nh 1.2 KiÕn tróc hÖ c¬ së d÷ liÖu
dïng ®−îc, d÷ liÖu ph¶i ®−¬c t×m kiÕm mét c¸ch cã hiÖu qu¶. ViÖc nµy ®· dÉn
®Õn viÖc thiÕt kÕ kiÕn tróc c¬ së d÷ liÖu phøc t¹p cho sù thÓ hiÖn d÷ liÖu trong c¬
së d÷ liÖu. Bëi nhiÒu ng−êi sö dông hÖ thèng c¬ së d÷ liÖu kh«ng ph¶i lµ chuyªn
gia m¸y tÝnh nªn sù phøc t¹p ®−îc dÊu ®i d−íi mét sè møc.
•
Møc vËt lý (Physical level)
§©y lµ møc thÊp nhÊt m« t¶ d÷ liÖu ®−îc l−u tr÷ thùc sù nh− thÕ nµo. T¹i
møc vËt lý, c¸c cÊu tróc vËt lý phøc t¹p ®−îc m« t¶ chi tiÕt.
•
Møc quan niÖm (Conceptual level)
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 5
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 khung nh×n (View level)
§©y lµ møc cao nhÊt m« t¶ chØ mét phÇn c¬ së d÷ liÖu. Thay v× sö dông
l−îc ®å ®¬n gi¶n h¬n ë møc quan niÖm, mét sè l−îc ®å phøc t¹p sÏ ®−îc gi÷
l¹i do kÝch th−íc d÷ liÖu lín cña c¬ së d÷ liÖu. NhiÒu ng−êi sö dông hÖ thèng
c¬ së d÷ liÖu kh«ng quan t©m ®Õn tÊt c¶ th«ng tin nµy mµ chØ mét phÇn cña c¬
së d÷ liÖu. Do ®ã ®Ó ®¬n gi¶n hãa sù t−¬ng t¸c víi hÖ thèng, møc khung nh×n
®−îc ®Þnh nghÜa. HÖ thèng cã thÓ cung cÊp nhiÒu khung nh×n trªn cïng mét c¬
së d÷ liÖu cho c¸c ®èi t−îng sö dông kh¸c nhau.
Mèi quan hÖ gi÷a ba møc ®−îc minh häa qua h×nh1.2
Sù t−¬ng tù víi kh¸i niÖm kiÓu d÷ liÖu trong c¸c ng«n ng÷ lËp tr×nh cã thÓ
lµm s¸ng tá sù ph©n biÖt gi÷a c¸c møc. §a sè c¸c ng«n ng÷ lËp tr×nh cÊp cao ®Òu
hç trî kh¸i niÖm kiÓu mÉu tin. VÝ dô ng«n ng÷ tùa Pascal cã thÓ khai b¸o mét
mÉu tin nh− sau:
type customer = record
name: string;
street: string;
city: string;
end;
§iÒu nµy ®Þnh nghÜa mét mÉu tin míi ®−îc gäi lµ customer víi ba tr−êng.
Mçi mét tr−êng cã tªn vµ kiÓu d÷ liÖu kÌm theo. Th«ng tin ng©n hµng cã thÓ cã
vµi kiÓu mÉu tin nh− thÕ bao gåm:
• account víi tr−êng number vµ balance
• employee víi tr−êng name vµ salary
T¹i møc vËt lý, mÉu tin customer, account hoÆc employee cã thÓ ®−îc m«
t¶ nh− mét khèi ®Þnh vÞ l−u tr÷ liªn tiÕp nhau (nh− words, bytes).
ë 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
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 6
®Þ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.
1.3 HÖ qu¶n trÞ c¬ së d÷ liÖu (Database Management System : DBMS)
1.3.1 Kh¸i niÖm
HÖ qu¶n trÞ c¬ së d÷ liÖu lµ mét phÇn mÒm tøc lµ mét hÖ thèng c¸c ch−¬ng
tr×nh cho phÐp ng−êi sö dông giao tiÕp víi c¬ së d÷ liÖu nh− minh häa ë h×nh
1.3.
USER
DBMS
DATABASE
H×nh 1.3 Giao tiÕp gi÷a c¬ së d÷ liÖu víi ng−êi sö dông
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
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 7
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
Tªn nh©n viªn
Lª V¨n A
TrÇn ThÞ B
NguyÔn V¨n C
Lª Thi E
§µo T¹o
Hµnh ch¸nh
KÕ to¸n
KÕ ho¹ch
Phßng Ban
Phßng
Tr−ëng phßng
KÕ ho¹ch
KÕ to¸n
§µo T¹o
Hµnh ch¸nh
Ph¹m V¨n F
NguyÔn ThÞ G
Lª ThÞ H
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
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Select
From
Where
Trang 8
tªn nh©n viªn
nh©nviªn
nh©n viªn. phßng = ‘kÕ to¸n’
3) Qu¶n lý giao dÞch (transaction)
Cø mét lÇn truy xuÊt c¬ së d÷ liªu ®−îc gäi lµ mét giao dÞch. HÖ qu¶n trÞ
c¬ së d÷ liÖu cung cÊp c«ng cô cho phÐp nhiÒu ng−êi sö dông truy xuÊt ®ång
thêi ®Õn c¬ së d÷ liÖu.
Kho hµng A=100
Cöa hµng 1
Cöa hµng 2
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
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 9
•
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
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 10
1.3.5 Ng−êi qu¶n trÞ c¬ së d÷ liÖu
Bëi v× hÖ thèng c¬ së d÷ liÖu lµ mét hÖ thèng d÷ liÖu lín vµ ®−îc sö dông
th−êng xuyªn vµ l©u dµi do ®ã ph¶i cÇn cã mét ng−êi qu¶n lý tËp trung c¶ hÖ
thèng. Ng−êi ®ã ®−îc gäi lµ ng−êi qu¶n trÞ c¬ së d÷ liÖu. C¸c chøc n¨ng cña
ng−êi qu¶n trÞ c¬ së d÷ liÖu bao gåm:
•
X¸c ®Þnh l−îc ®å c¬ së d÷ liÖu. L−îc ®å c¬ së d÷ liÖu ®−îc t¹o ra
cho hÖ thèng sÏ ®−îc l−u tr÷ th−êng trùc trong tù ®iÓn d÷ liÖu.
•
X¸c ®Þnh ®−îc cÊu tróc l−u tr÷ d÷ liÖu vµ ph−¬ng thøc truy xuÊt c¬
së d÷ liÖu.
•
Thay ®æi l−îc ®å vµ tæ chøc vËt lý. C¸c thay ®æi l−îc ®å c¬ së d÷
liÖu hoÆc c¸c tæ chøc l−u tr÷ vËt lý mÆc dï rÊt hiÕm ph¶i ®−îc thùc hiÖn bëi
ng−êi qu¶n trÞ c¬ së d÷ liÖu th«ng qua ng«n ng÷ ®Þnh nghÜa d÷ liÖu.
•
CÊp quyÒn truy xuÊt d÷ liÖu cho ng−êi sö dông.
•
§Æc t¶ c¸c rµng buéc toµn vÑn. C¸c rµng buéc toµn vÑn ®−îc gi÷
trong mét cÊu tróc hÖ thèng ®Æc biÖt vµ ®−îc tham kh¶o bëi ng−êi qu¶n trÞ c¬
së d÷ liÖu khi cã mét sù thay ®æi trong hÖ thèng.
1.3.6 Nh÷ng ng−êi sö dông c¬ së d÷ liÖu
Môc ®Ých chÝnh cña hÖ thèng c¬ së d÷ liÖu lµ cung cÊp mét m«i tr−êng cho
viÖc t×m kiÕm th«ng tin cho nhiÒu ng−êi sö dông. Nh÷ng ng−êi sö dông c¬ së d÷
liÖu ®−îc chia thµnh 4 lo¹i sau:
•
LËp tr×nh viªn: nh÷ng ng−êi viÕt ra c¸c ch−¬ng tr×nh øng dông cho
c¬ së d÷ liÖu.
•
C¸c chuyªn viªn: Nh÷ng ng−êi nµy kh«ng dïng c¸c ch−¬ng tr×nh
øng dông ®Ó truy cËp vµo c¬ së d÷ liÖu. Hä sö dông ng«n ng÷ hái ®Ó truy cËp
trùc tiÕp vµo c¬ së d÷ liÖu.
•
Ng−êi khai th¸c: Ng−êi khai th¸c lµ ng−êi giao tiÕp víi hÖ thèng
th«ng qua c¸c ch−¬ng tr×nh øng dông.
1.3.7 CÊu tróc tæng qu¸t cña hÖ thèng qu¶n trÞ c¬ së d÷ liÖu
HÖ qu¶n trÞ c¬ së d÷ liÖu bao gåm c¸c thµnh phÇn sau:
• Bé qu¶n lý tËp tin (File manager): Bé qu¶n lý tËp tin qu¶n lý sù ®Þnh vÞ
c¸c kh«ng gian l−u tr÷ vµ c¸c cÊu tróc d÷ liÖu dïng ®Ó thÓ hiÖn c¸c th«ng tin l−u
tr÷ trªn ®Üa.
• Bé qu¶n lý c¬ së d÷ liÖu (Database manager): Cung cÊp sù giao tiÕp gi÷a
d÷ liÖu ®−îc l−u tr÷ ë møc thÊp trong c¬ së d÷ liÖu víi c¸c ch−¬ng tr×nh øng
dông.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 11
• 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.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu
Trang 12
Users
Ng−êi khai th¸c
LËp tr×nh viªn
Chuyªn viªn
Ng−êi qu¶n trÞ
CSDL
Khai th¸c øng
dông
Ch−¬ng tr×nh
øng dông
C©u hái
L−îc c¬ së
d÷ liÖu
Bé tiÒn biªn dÞch
DML
Bé xö lý c©u
truy vÊn
M· lÖnh c¸c ®èi
t−îng ch−¬ng tr×nh
øng dông
Bé tiÒn biªn dÞch
DDL
Bé qu¶n lý
c¬ së d÷ liÖu
HÖ qu¶n trÞ c¬ së d÷ liÖu
Bé qu¶n lý
file
File d÷ liÖu
Tù ®iÓn d÷ liÖu
H×nh 1.6 CÊu tróc hÖ thèng qu¶n trÞ c¬ së
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 13
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
2.1 M« h×nh d÷ liÖu (data model)
2.1.1 C¸c m« h×nh d÷ liÖu (Data models)
CÊu tróc c¬ së cña c¬ së d÷ liÖu lµ quan niÖm vÒ m« h×nh d÷ liÖu. M« h×nh
d÷ liÖu cã mét tËp c¸c c«ng cô quan niÖm cho viÖc m« t¶ d÷ liÖu, m« t¶ c¸c mèi
quan hÖ d÷ liÖu, c¸c ng÷ nghÜa d÷ liÖu vµ c¸c rµng buéc nhÊt qu¸n. NhiÒu m«
h×nh d÷ liÖu ®−îc ®−a ra, chóng ®−îc ph©n thµnh ba nhãm: c¸c m« h×nh logic
dùa trªn ®èi t−îng, c¸c m« h×nh logic dùa trªn mÉu tin vµ c¸c m« h×nh d÷ liÖu
vËt lý.
2.1.2 C¸c m« h×nh logic dùa trªn ®èi t−îng (Object-Based logical models)
C¸c m« h×nh logic dùa trªn ®èi t−îng ®−îc sö dông ®Ó m« t¶ c¸c møc quan
niÖm vµ møc tÇm nh×n. Chóng ®−îc ®Æc tr−ng bëi c¸c kh¶ n¨ng cÊu tróc hãa linh
®éng vµ cho phÐp ®Æc t¶ mét c¸c râ rµng c¸c rµng buéc d÷ liÖu. Cã nhiÒu lo¹i
m« h×nh kh¸c nhau. Mét sè c¸c m« h×nh ®−îc biÕt ®Õn réng r·i lµ:
•
•
•
•
•
M« h×nh thùc thÓ liªn kÕt
M« h×nh h−íng ®èi t−îng
M« h×nh nhÞ ph©n
M« h×nh d÷ liÖu ng÷ nghÜa
M« h×nh d÷ liÖu chøc n¨ng
ë ®©y chóng ta chØ nghiªn cøu m« h×nh thùc thÓ liªn kÕt vµ m« h×nh h−íng
®èi t−îng nh− lµ c¸c thÓ hiÖn cña líp m« h×nh logic dùa trªn ®èi t−îng.
♦ M« h×nh thùc thÓ mèi liªn kÕt (Entity
(Entity--Relationship Model)
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ä.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 14
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
name
Customer
city
number
balance
Account
CustAcc
H×nh 2.1 S¬ ®å ER
♦ M« h×nh h−íng ®èi t−îng (The Object
Object--Oriented Model)
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
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 15
®é 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 payinterest mµ th«i.
§èi t−îng bank account
Number
BiÕn
Balance
Ph−¬ng thøc
Pay_Interest
H×nh 2.2 M« h×nh mét ®èi t−îng
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ý.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 16
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Ö
Cét ⇔ thuéc tÝnh
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 17
VÝ dô : §Ó minh häa cho mÉu c¬ së d÷ liÖu thÓ hiÖn kh¸ch hµng
name
street
city
number
Lowery
Shiver
Shiver
Hodges
Hodges
Mapple
North
North
Sidehill
Sidehill
Queens
Bronx
Bronx
Brooklyn
Brooklyn
900
556
647
801
647
number
900
556
647
801
balance
55
100000
105366
10533
H×nh 2.3 Mét mÉu c¬ së d÷ liÖu quan hÖ
(customer) vµ tµi kho¶n (account) cña hä, ta cã hai b¶ng thÓ hiÖn sau (h×nh 2.3):
♦ 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
Shiver
North
Bronx
556
100000
647
105366
801
10533
Hodges
Sidehill
Brooklyn
H×nh 2.4 Mét mÉu c¬ së d÷ liÖu m¹ng
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 18
♦ M« h×nh ph©n cÊp
M« h×nh ph©n cÊp t−¬ng tù nh− m« h×nh m¹ng, nã còng thÓ hiÖn d÷ liÖu
b»ng c¸c mÉu tin cßn c¸c quan hÖ b»ng c¸c liªn kÕt. Nã kh¸c m« h×nh m¹ng lµ
c¸c mÉu tin ®−îc tæ chøc nh− lµ mét tËp hîp c¸c c©y h¬n lµ mét ®å thÞ bÊt kú.
H×nh 2.5 thÓ hiÖn mét mÉu c¬ së d÷ liÖu ph©n cÊp víi th«ng tin nh− h×nh 2.4.
Lowery
Maple
Queens
Shiver
556
900
100000
55
Hodges
North
647
Sidehill
Brooklyn
Bronx
105366
647
105366
801
10533
H×nh 2.5 Mét mÉu c¬ së d÷ liÖu ph©n cÊp
2.2
M« h×nh thùc thÓ mèi liªn kÕt (Entity
(Entity Relationship Model)
M« h×nh thùc thÓ lµ m« h×nh ban ®Çu ®Ó tõ ®ã ng−êi ta biÕn ®æi nã thµnh
mét trong 3 m« h×nh d÷ liÖu, nã cho phÐp m« t¶ s¬ ®å ý niÖm cña thÕ giíi thùc
mµ kh«ng quan t©m ®Õn hiÖu qu¶ hoÆc thiÕt kÕ c¬ së d÷ liÖu vËt lý. S¬ ®å thùc
thÓ mèi liªn kÕt (Entity Relationship Mode Diagram) sau nµy sÏ ®−îc biÕn ®æi
thµnh mét s¬ ®å quan niÖm cña mét trong ba m« h×nh d÷ liÖu dùa theo mÉu tin ë
trªn. Trong gi¸o tr×nh nµy ta chØ nghiªn cøu tíi viÖc biÕn ®æi m« h×nh thùc thÓ
mèi liªn kÕt thµnh m« h×nh quan hÖ.
M« h×nh thùc thÓ mèi liÖn kÕt gåm cã 2 thµnh phÇn : thùc thÓ vµ liªn kÕt
2.2.1 Thùc thÓ (Entity)
Thùc thÓ lµ 1 sù vËt hay sù viÖc mµ ta cã thÓ ph©n biÖt ®−îc, tån t¹i trong
thÕ giíi kh¸ch quan mµ ta cã thÓ liªn kÕt thùc thÓ nµy víi 1 thùc thÓ kh¸c. Thùc
thÓ cã thÓ lµ mét thùc thÓ cô thÓ hoÆc trõu t−îng. Mçi thùc thÓ ®−îc m« t¶ bëi
mét sè thuéc tÝnh.
VÝ dô : - Sinh viªn lµ 1 thùc thÓ cô thÓ. Ta cã thÓ ph©n biÖt sinh viªn nµy
víi sinh viªn kh¸c dùa vµo m· sè, ta cã thÓ liªn kÕt sinh viªn nµy víi sinh viªn
kia dùa vµo mèi liªn kÕt cïng líp.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 19
- 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Ó.
hîp.
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æ
- 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.
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu
Trang 20
con ng−êi
sinh viªn
c«ng nh©n
Ta nãi:
A
Isa
B ⇔ ∀a ∈ A th× a ∈ B vµ ∃b ∈ B sao cho a = b
TÝnh chÊt cña hÖ ph©n cÊp Isa:
•
•
•
A thõa h−ëng mäi thuéc tÝnh cña B.
A cã nh÷ng thuéc tÝnh mµ B kh«ng cã.
B cã tån t¹i 1 thùc thÓ mµ kh«ng t−¬ng øng 1 thùc thÓ trong A.
VÝ dô : Sinh viªn chøa mäi thuéc tÝnh cña Con ng−êi, khi ®ã thuéc tÝnh
khãa cña Con Ng−êi còng sÏ lµ thuéc tÝnh khãa cña Sinh viªn, vµ c¸c thuéc tÝnh
riªng cña Sinh viªn trong ®ã cã thuéc tÝnh nhËn d¹ng thùc thÓ sinh viªn. Vµ
trong Con ng−êi ch¾c ch¾n tån t¹i thùc thÓ kh«ng ph¶i lµ Sinh viªn mµ lµ C«ng
nh©n.
2.2.5 Mèi liªn kÕt
Mét mèi liªn kÕt gi÷a c¸c tËp thùc thÓ lµ 1 danh s¸ch cã thø tù cña c¸c tËp
thùc thÓ. Mét tËp thùc thÓ cã thÓ xuÊt hiÖn nhiÒu lÇn trong 1 danh s¸ch. Danh
s¸ch c¸c tËp thùc thÓ lµ 1 kh¸i niÖm ë møc s¬ ®å thÓ hiÖn mét mèi liªn kÕt. NÕu
cã 1 mèi liªn kÕt R gi÷a c¸c tËp thùc thÓ E1, E2,... Ek th× 1 minh häa cña R lµ 1
tËp hîp c¸c bé k.Ta gäi 1 tËp hîp nh− thÕ lµ 1 tËp mèi liªn kÕt.
Mét bé k (e1,e2, ..., ek) trong 1 tËp mèi liªn kÕt R gåm c¸c thùc thÓ
(e1,e2, ..., ek víi ei ∈ Ei, i = 1 ... k).
VÝ dô : XÐt mèi liªn kÕt gi÷a tËp thùc thÓ Sinh viªn vµ m«n häc.
R = ®· häc
Sinh viªn
m«n häc
§· häc (sinh viªn, m«n häc)
Bé (x, y) : x ®· häc m«n y
x thuéc sinh viªn
y thuéc m«n häc
Khoa CNTT 2
N¨m 2000
Bµi Gi¶ng C¬ Së D÷ LiÖu
- Xem thêm -