LÜnh vùc C«ng nghÖ th«ng tin
Bµn vÒ tÝnh chuÈn hãa trong c¸c c¬ d÷ liÖu hiÖn cã
TS.Phan §¨ng
u
Khoa C«ng nghÖ tng tin I
Tãm t¾t:
ChuÈn hãa lµ mét kh¸i niÖm kh¸ quan träng trong lý thuyÕt së liÖu
quan vµ lµ mét trong nh÷ng yªu cÇu cÇn ®îc ®m b¶o khi x©y dùng mét
së d÷ liÖu (CSDL). Nãi mét ch trùc quan th× nh chuÈn hãa b¶o ®m cho
CSDL lo¹i trõ ®îc nh kh«ng nhÊt qu¸n vµ tr¸nh ®îc d ta liÖu. Tuy
nhiªn u kho s¸t mét sè CSDL hiÖn ë ViÖt nam, ta thÓ thÊy ng
k nhiÒu trêng hîp tÝnh chn hãa vi pm, u ta hiÓu tÝnh chuÈn hãa
®óng nh lý thuyÕt ®· ®Þnh nghÜa. Tuy nhiªn, bn th©n t¸c gi kh«ng phi
lµ chuyªn gia lý thuyÕt CSDL nªn môc ®Ých i viÕt nµy kh«ng nh»m phª
ph¸n thùc ®ã mµ ngîc l¹i, th«ng qua mét sè kinh nghiÖm thùc ®· tri qua,
t¸c gi muèn thuyÕt phôcc nhµ lý thuyÕt n ®äc r»ng, thùc ra trong thùc
nh chuÈn hãa nªn ®îc hiÓu mét ch mÒm dÎo h¬n: CSDL phi ®îc b¶o
®m chuÈna trong thao t¸c lý, nhng nh thøc cã t kh«ng chuÈn
a ë c nµo ®ã. ThÝ trong mét bng d÷ liÖu mµ lÆp l¹i cña tªn
nh th× kh«ng nhÊt thiÕt chØ tØnh xuÊt hiÖn nh nh chuÈn a ®ßi
i, mµ thÓ ®ång ti nh tªn nh. Trong mét sè tr êng hîp khi
CSDL ®îc b¶o tr× trong mét m«i trêng mµ ®é an toµn kh«ng cao th× ®«i khi
d ta thÓ t thµnh nh÷ng th«ng tin Ých gióp ta hiÖu chØnh kh«i pc
liÖu. NÕu vÝ von mét ch h×nh nh th× viÖc lµm nµyng gièng nh khi ta
s¾p lªn ®êng ®i ®Õn mét n¬i mµ mäi thø kh«ng dÔ mua th× nªn thªm mét sè
®å dù phßng thiÕt yÕu, thÝ dô nªn mang thªm mét chiÕc lèp xe, cho dï c¸c lèp xe
®ang dïng cßn rÊt tèt.
1. Kh¸i niÖm chuÈn hãa trong CSDL
Trong c y chóng t«i tr×nh y lîc t sè kh¸i niÖm bn liªn quan
®Õn tÝnh chn hãa trong CSDL quan hÖ.
Häc vn C«ng nghÖ BCVT
i nghÞ Khoa häc lÇn thø 5
1.1. Kh¸i niÖm thùc thÓ
Thùc thÓ lµ mét ®èi tîng thÓ tån t¹i trong thÕ gi thùc. §èi tîng nµy
thÓ lµ vËt chÊt nh×n thÊy ®îc vµ thÓ tiÕp c ®îc b»ng tay nh con ngêi, t
c¸t,t hµng; nhngng thÓ kh¸i niÖm trõu tîng nh ¸n, kÕ ho¹ch...
1.2. §Þnh nghÜa quan hÖ
Cho tËpunc phÇn tö U = {A1, A2,...,An}. Th«ng thêng Ai lµc thuéc tÝnh
cña t thùc thÓ nµo ®ã. TËp U ®îc gäi lµ tËp c thuéc tÝnh. i phÇn tö
cña Ai cña tËp U miÒn gi¸ trÞ t ¬ng øng, ta ký hiÖu lµ Di = dom(Ai) (dom =
domain, tøc lµ miÒn).
i tËp con R cña tÝch Descartes (§Ò-C¸c) cña c¸c miÒn g trÞ dom(Ai) i i =
1,2,3,..., n ®îc gäi lµ t quan hÖ trªn U vµ ®îc ký hiÖu lµ R (U) hay lµ R
(A1, A2,...,An). VËy R lµ quan trªn tËp thuéc tÝnh U nÕu:
R D1 x D2 x ... x Dn
Ta còng thÓ viÕt
R = {(d1,d2,...,dn) / di Di, i = 1,2,...,n}
C¸c pn tö t = (d1,d2,...,dn) R ®«i khi ®îc gäi lµc , khi cµi ®Æt tn y
tÝnh th× ®îc i lµ c bn ghi (record) . Pn tö t i cña t t¬ng øng i
thuéc tÝnh Ai ®îc ký hu lµ t.Ai. Nãi chung u X lµ t thuéc tÝnh
nµo ®ã trong U (tøc lµ X U) th× ta ký hiÖu t.X lµc thµnh phÇn cña t t¬ng
øng víi c thuéc tÝnh trong X. Nh vËy th×t phÇn t t kú cña R còng cã
thÓ vt lµ t.U, tuy nhiªn trong tr êng hîp nµy ®Ó ®¬n gin ta chØ viÕt lµ t.
®Þnh nghÜa trªn ta thÊy quan R lµ mét bng hai chu, trªn cét t i lµ
c g trÞ cña dom(Ai), trªn i ng cña ng lµ bé n gi¸ trÞ cña c miÒn gi¸
trÞ cña c¸c thuéc tÝnh A1, A2,..., An. Mçi dßng lµ mét pn cña quan hÖ.
Khi cho tËp thuéc tÝnh U lµ ta ®· cho bé khung cho mét tËp c quan .
vËy ngêi ta thêng gäi tËp thuéct tÝnh U lµ lîc ®å quan hÖ.
d÷ liÖu quan hÖ lµ t tËp hîp c¸c quan hÖ biÕn thiªn theo thêi
gian. nghÜa lµ sè lîng vµ i dung c trong t quan hÖ thay ®æi tïy
thuéc vµo ®èi tîng thùc tÕ mµ t.
HÖ qun trÞ d÷ liÖu quan hÖ lµ tng pn mÒm trî gióp cho ng-
êi dông trong viÖc t¹o lËp khai th¸c së liÖu quan.
Häc vn C«ng nghÖ BCVT
LÜnh vùc C«ng nghÖ th«ng tin
1.3. Khãa a t quan hÖ
Su khãa (super key) cña t quan hÖ R trªn tËp thuéc tÝnh U = {A1,
A2,...,An} lµ tËp con S U sao cho kh«ng cã hai pn tö nµo cña R trïng nhau
trªn S. ViÕtt c¸ch h×nh thøc ta: x,y R xy x.Sy.S
Ta thÊyng nÕu S lµ siªu khãa th× mäi S', sao cho S S' U ,ng lµ siªu
khãa.
u K lµ siªu khãa, nhng t kú tËp con thùc o cña ®Òu kh«ng phi
lµ siªu khãa th× K ®îc gäi lµ khãa.
1.4. P thuéc hµm
Phô thuéc hµm lµ t kh¸i niÖm b¶n ®îc y ng ®Ó t c¸c rµng
buéc liÖu trong mét d÷ liÖu.
Phô thuéc hµm trªn mét quan hÖ
Cho tËp thuéc tÝnh U vµ X, Y lµ c¸c tËp con cña U. R lµ mét quan hÖ trªn
U. Ta i r»ng Y phô thuéc hµm vµo X, ký hiÖu lµ X Y, trªn R nÕu víi
i phÇn p, q cña R mµ chóng b»ng nhau trªn tËp X th× còng b»ng nhau
trªn Y. Ta cã thÓ diÔn ®¹t ®iÒu y b»ng c¸c ký hiÖu to¸n häc nh sau: p, q
R, p.X=q.X p.Y = q.Y
Phô thuéc hµm trªn lîc ®å quan hÖ
Cho lîc ®å quan hÖ U = {A1, A2, ... An}. Ta i r»ng Y phô thuéc hµm vµo X
trªn lîc ®å quan hÖ U , nÕu X Y trªn mäi quan R tn U. NÕu sö
dông ký hiÖu ta cã:
R(U), p, q R ,p.X=q.X p.Y = q.Y
u cã mét tËp pthuéc hµm F trªnt lîc ®å quan hÖ U th× ta nãi r»ng
t ®å quan hÖ W = <U,F>.
1.5. ChuÈn hãa lîc ®å quan hÖ
Häc vn C«ng nghÖ BCVT
i nghÞ Khoa häc lÇn thø 5
D¹ng chuÈn 1NF (First Normal Form)
Mét lîc ®å U (hoÆc t ®å quan hÖ W = <U,F>) ë d¹ng chuÈn 1NF
u c¸c miÒn gi¸ trÞ cña c¸c thuéc tÝnh dÒu ®¬n trÞ . VÒ sau trong c¸c
d¹ng chuÈn 2NF, 3NF ta xÐt trªn s¬ ®å quan W = <U,F>. Tuy nhiªn i
nµo ®ã tai R th× hiÓu lµ quan bÊt kú trªn U.
D¹ng chuÈn 2NF
Gi X vµ Y lµ hai tËp con cña U. Ta i r»ng Y lµ phô thuéc hµm ®Çy
®ñ vµo X u Y p thuéc hµm vµo X nhng Y kh«ng pthuéc hµm vµo
t kú tËpp con thùc nµo cña X.
Lîc ®å quan hÖ U ®îc gäi lµ ë d¹ng chuÈn 2NF nÕu lµ 1NF vµ mçi
thuéc tÝnh kh«ng khãa cña R lµ phô thuéc hµm ®Çy ®ñ vµo khãa.
i thuéc tÝnh t kú lu«n lu«n p thuéc hµm vµo khãa. Ta thÓ pt
biÓu l¹i ®Þnh nghÜa trªn ®Ó nhÊn m¹nh h¬nn chÊt cña d¹ng chuÈn 2NF:
Lîc ®å quan hÖ U ®îc gäi lµ ë d¹ng chuÈn 2NF nÕu lµ 1NF vµ mçi
thuéc tÝnh kng khãa cña R lµ kh«ng phô thuéc hµm vµo mét phÇn
a khãa.
D¹ng chuÈn 3NF
ng chuÈn hai cho phÐp li t d thõa vÒ khãa. D¹ng chuÈn ba cho phÐp lo¹i
bá c¸c phô thuéc b¾c cÇu.
§Þnh nghÜa d¹ng chuÈn ba (Third normal form):
t®å quan W = <U,F> ®îc gäi lµ ë d¹ng chuÈn 3NF u chØ nÕu:
lµng chuÈn hai.
c thuéc tÝnh kh«ng khãa kh«ng phô thuéc hµm vµo tËp con kh«ng phi
khãa.
Cho ®å quan W = <U,F>, XU. Thuéc tÝnh A trong U ®îc i lµ phô
thuéc b¾c cÇu vµo X un t¹i tËp YU sao cho:
XY, YA, Y -/ X AXY
Trong tr êng hîp chØ cãt khãa, thÓ ®Þnh nghÜa quan ë d¹ng chuÈn ba
nh sau:
lµng chuÈn hai.
Häc vn C«ng nghÖ BCVT
LÜnh vùc C«ng nghÖ th«ng tin
C¸c thuéc tÝnh kh«ng khãa, kh«ng phô thuéc b¾c cÇu vµo khãa.
Ngêi ta y dùng nhiÒu kh¸i niÖm chuÈn hãa. Tuy nhn khi thiÕt kÕ c¸c
CSDL trong thùc tÕ t ni ta thêng chØ ® ßi hái lµ CSDL phi d¹ng chuÈn
3NF.
2. Mét CSDL kh«ng tháa tÝnh chuÈn hãa trong thùc tÕ
Sau ®©y chóng i chØ ra t tr êng hîp c CSDL kh«ng tháa tÝnh chuÈn
a. §©y lµ nh÷ng CSDL chóng t«i dÞp b¶o tr× hoÆc tham gia x©y dùng.
2.1. CSDL ngêi håi h¬ng ViÖt nam
§Çu nh÷ng n¨m 90 chóng t«i dÞp lµm viÖc trong dù ¸n trî gióp ngêi i h¬ng
ViÖt nam cña Céng ®ång ch©u ¢u (EC). t trong nng c«ng viÖc cña chóng
t«i lµ b¶o tr× CSDL ngêii h¬ng ViÖt nam. CSDL nµy do Cao ñy Liªn hîp qc
ngêi tÞ n ë Hång C«ng cung cÊp. CSDL gåm nhiÒu bng, trong ®ã ng
quan träng nhÊt lµ RETURNEE.DBF chøa danh ch nh÷ng ngêi håi h¬ng.
Danhch nµy ®îc cËp nhËt thêng xun. Cho ®Õn khi kÕt thóc dù ¸n th×ng
sè ngêi håi h¬ng khong 120 ngh×n ngêi. TÖp RETURNEE.DBF nhiÒu tr-
êng, sè cao ñy gåm 12 tù, hä n, tØnh, huyÖn, n nh, tªn
hun, ng ...DÔ thÊy r»ng c tr êng tªn nh vµ n huyÖn lµ d thõa
trong tÖp nµy ®· m· tØnh, m· huyÖn, ®ång thêi c tÖp danh ch tØnh,
danh s¸ch hun. TÖp nµy ka lµ cao ñy. Nh y ta thÓ thÊy lµ tªn
tØnh phô thuéc hµm vµo m· tØnh, tªn huyÖn p thîc hµm o m· tØnh
hun. Nh vËy CSDL nµy kh«ng tháa tÝnh chuÈn hãa 3NF. Vµo ®Çu nh÷ng
m 90 cÊu h×nh cña c¸c m¸y vi tÝnh cßn rÊt thÊp: ®Üa cøng chØ khong 40 M,
nhí trong 1 M. Nh vËy víi p ng tr¨m ngh×n bn ghi th× sù d thõa lµ rÊt
®¸ng kÓ. Ban ®Çu n th©n chóng t«i còng thÊy r»ng thiÕt kÕ nh vËy lµ kh«ng
p lý. Tuy nhiªn vÒ sau trong q tr×nh b¶o tr×, chóng t«i nhËn ra r»ng lóc
liÖu d thõa l¹i trë thµnh nh÷ng th«ng tin Ých gióp chóng t«i hiÖu chØnh
sè liÖu. Hµng th¸ng khi nhËn sè liÖu i chóng t«i phi kiÓm tra kü tr íc khi
cËp nhËt. NhiÒu lóc xy ra tr êng hîp cã ngêi trong danh s¸ch míi thùc ra ®·
trong danh s¸ch cò, nhng chØ cãt sait trong cao uû hay tØnh,
huyÖn. Lóc nµyu kiÓm trang m¾t thÓ dÔ dµng pt hiÖn ra sai sãt
n vµo th«ng tin d thõa. M· tØnh, m· huyÖn lµ c con sè kh«ng tÝnh i
nhí: 01 lµ Hµ i, 02 lµ Hi Phßng, 03 lµ Tp HCM... NÕu chØ c¨n cø vµo m· sè
th× chØ cÇnt chót sai sãt th× thÓ chuyÓn t ngêi Hµ i sang tØnh
kh¸c. Cßn u thªm th«ng tin n tØnh th× rÊt khã thÓ xÈy ra sai sãt t-
Häc vn C«ng nghÖ BCVT