You are on page 1of 8

Ch−¬ng 3.

Kh¸i niÖm c¬ b¶n


vÒ c¬ së d÷ liÖu quan hÖ

C«ng nghÖ c¬ së d÷ liÖu quan hÖ hiÖn ®ang chiÕm −u thÕ trªn thÞ tr−êng c¬ së
d÷ liÖu. Nã cho phÐp con ng−êi thÓ hiÖn vμ xö lý d÷ liÖu theo c¸ch ®¬n gi¶n, cung
cÊp nÒn t¶ng lý thuyÕt hoμn chØnh. Ch−¬ng nμy ®Ò cËp c¸c khÝa c¹nh chÝnh cña m«
h×nh quan hÖ. Qua c¸c ®Þnh nghÜa vμ thÝ dô ®¬n gi¶n, ch−¬ng sÏ tr×nh bμy :
‰ M« t¶ c¸c ®Æc tÝnh chÝnh cña c¬ së d÷ liÖu quan hÖ;
‰ Gi¶i thÝch c¸c thμnh phÇn chÝnh cña lý thuyÕt quan hÖ, cÊu tróc d÷ liÖu
quan hÖ, xö lý d÷ liÖu quan hÖ vμ tÝnh toμn vÑn d÷ liÖu;
‰ Giíi thiÖu s¬ l−îc vÒ mét sè thuËt ng÷ liªn quan ®Õn c¬ së d÷ liÖu quan
hÖ.

3.1. CÊu tróc d÷ liÖu quan hÖ

Trong c¬ së d÷ liÖu quan hÖ tÊt c¶ c¸c d÷ liÖu ®−îc ghi trong c¸c b¶ng hai chiÒu
gäi lμ quan hÖ. C¸c b¶ng ®Òu cã c¸c hμng, cét. Cã thÓ xem b¶ng quan hÖ nh− mét
thùc thÓ trong l−îc ®å thùc thÓ quan hÖ E/R.

Nh©n viªn M· sè Tªn §¬n vÞ BËc


1 Tutu B¸n hμng 4
2 Titi KÕ to¸n 6
3 Toto B¸n hμng 2

H×nh 3.1. Mét quan hÖ cã dßng vμ cét.

‰ §Þnh nghÜa Quan hÖ (relation)


Quan hÖ lμ b¶ng d÷ liÖu hai chiÒu, ®−îc ph©n biÖt b»ng tªn b¶ng

1
Th«ng qua b¶ng, ng−êi ta thÓ hiÖn c¸c khÝa c¹nh cña c¬ së d÷ liÖu. C¸c khÝa
c¹nh cïng c¸c ®Æc tÝnh d÷ liÖu sÏ ®−îc ghi trong cïng mét quan hÖ. C¸c ®Æc tÝnh d÷
liÖu ®−îc thÓ hiÖn qua c¸c cét cña b¶ng. Ch¼ng h¹n (m· nh©n viªn, tªn nh©n viªn,
®¬n vÞ, bËc) cho biÕt cÊu tróc th«ng tin vÒ nh©n viªn. C¸c thÓ hiÖn cô thÓ cña nh©n
viªn ®−îc thÓ hiÖn qua mét dßng, víi c¸c th«ng tin øng víi tõng cét. Mét thÓ hiÖn
cô thÓ nh− (002, Tutu, phßng kÕ to¸n, 3) nh− lμ mét b¶n ghi d÷ liÖu. LÝ thuyÕt quan
hÖ dïng thuËt ng÷ “thuéc tÝnh” ®Ó chØ cét, “bé” ®Ó chØ dßng.

3.1.1. Tªn vμ néi dung cña b¶ng quan hÖ

1. Tªn quan hÖ
TÊt c¶ c¸c quan hÖ ®Òu cã tªn. §Ó biÕt vÒ quan hÖ, ng−êi ta coi tªn ®Çy ®ñ, hay
nhan ®Ò cña quan hÖ lμ tªn quan hÖ vμ tªn cña c¸c cét trong quan hÖ ®ã. Mçi cét
cña quan hÖ øng víi mét thuéc tÝnh, nªn tªn cét ph¶i kh¸c nhau. Sè c¸c cét x¸c
®Þnh bËc cña quan hÖ, tuy nhiªn th«ng sè nμy Ýt ®−îc dïng. LÝ thuyÕt quan hÖ
kh«ng h¹n chÕ sè cét, nh−ng trong thùc tÕ ng−êi ta cÇn tu©n theo quy −íc vÒ sè
l−îng h¹n chÕ tèi ®a ®èi víi sè cét. Sè cét Ýt nhÊt còng lμ 1, kh«ng thÓ b¶ng quan hÖ
kh«ng cã cét nμo.

2. Néi dung cña quan hÖ


C¸c dßng cña quan hÖ t¹o nªn néi dung cña quan hÖ, tøc lμ c¸c bé, hay n_bé.
Mét bé lμ mét danh s¸ch c¸c gi¸ trÞ cã thø tù. NghÜa cña tõng gi¸ trÞ tïy thuéc vμo
vÞ trÝ cña nã øng víi cét nμo. Ch¼ng h¹n trong thÝ dô trªn, cét thø nhÊt øng víi m·
sè, cét cuèi cïng øng víi ng¹ch bËc c«ng chøc. Sè c¸c dßng x¸c ®Þnh h¹ng cña b¶ng
quan hÖ, tuy r»ng th«ng sè nμy Ýt dïng ®Õn. Sè dßng kh«ng nhÊt ph¶i cã; mét b¶ng
quan hÖ cã thÓ kh«ng cã dßng d÷ liÖu nμo.

Nh©n viªn M· sè tªn §¬n vÞ BËc


1 Tutu B¸n hμng 4
2 Titi KÕ to¸n 6
3 Toto B¸n hμng 2
5 Tata B¸n hμng 4

H×nh 3.2. Thªm mét dßng míi.

2
Mét ®iÓm ®¸ng l−u ý lμ vÞ trÝ c¸c dßng kh«ng quan träng, cã nghÜa tËp c¸c bé
cña quan hÖ lμ tËp kh«ng s¾p thø tù cña c¸c phÇn tö kh¸c biÖt. Kh«ng cã hai dßng
gièng nhau. Ng−êi ta cã thÓ liÖt kª c¸c dßng theo thø tù l−u tr÷ dßng trong b¶ng.
ViÖc bæ sung mét dßng míi vμo gi÷a tËp hay cuèi tËp c¸c dßng ®Òu nh− nhau.

3.1.2. MiÒn gi¸ trÞ


§èi víi mçi thuéc tÝnh ng−êi ta ®Òu h¹n chÕ vÒ gi¸ trÞ d÷ liÖu mμ thuéc tÝnh cã
thÓ nhËn. Ph¹m vi gi¸ trÞ cã thÓ dïng cho mét thuéc tÝnh ®−îc gäi lμ miÒn, hay
miÒn gi¸ trÞ. MiÒn t−¬ng tù vÒ mÆt kh¸i niÖm víi kiÓu d÷ liÖu trong lËp tr×nh. Còng
nh− kiÓu d÷ liÖu, miÒn kh«ng chØ x¸c ®Þnh tËp c¸c gi¸ trÞ g¸n cho thuéc tÝnh, mμ
cßn x¸c ®Þnh c¸c thao t¸c ®−îc phÐp sö dông trªn c¸c d÷ liÖu. Ch¼ng h¹n ®èi víi d÷
liÖu sè ng−êi ta míi cã thÓ dïng c¸c phÐp to¸n sè häc, céng trõ nh©n chia... NÕu
nh×n theo khÝa c¹nh kh¸c, miÒn cã ý nghÜa ng÷ nghÜa. Ch¼ng h¹n c©n nÆng vμ
chiÒu cao cña mét ng−êi ®Òu nhËn gi¸ trÞ sè, nh−ng hai sè nμy kh«ng thÓ so s¸nh
víi nhau ®−îc.
‰ §Þnh nghÜa MiÒn (domain)
MiÒn gi¸ trÞ cña b¶ng quan hÖ lμ miÒn x¸c ®Þnh c¸c gi¸ trÞ cña thuéc tÝnh
trong b¶ng quan hÖ.
Khi x¸c ®Þnh mét thuéc tÝnh ng−êi ta cÇn tÝnh ®Õn tªn vμ miÒn cña thuéc tÝnh.
C¸c gi¸ trÞ g¸n cho thuéc tÝnh cÇn tho¶ m·n c¸c rμng buéc vÒ miÒn. Ch¼ng h¹n tuæi
cña mét ng−êi ®−îc thÓ hiÖn b»ng sè, vμ nhËn gi¸ trÞ tõ 1 ®Õn 300. HÇu hÕt c¸c s¶n
phÈm c¬ së d÷ liÖu quan hÖ ®Òu yªu cÇu c¸c miÒn tæng qu¸t víi gi¸ trÞ theo kiÓu d÷
liÖu c¬ b¶n. Còng cã c¬ së d÷ liÖu cho phÐp ng−êi dïng x¸c ®Þnh c¸c kiÓu d÷ liÖu
riªng cho miÒn.
Mét nÐt quan träng ®èi víi tÊt c¶ miÒn quan hÖ lμ miÒn cÇn ®¬n gi¶n, nhËn gi¸
trÞ ®¬n. NÕu m« t¶ thuéc tÝnh ®Þa chØ, gåm sè nhμ vμ tªn phè th× ®Þa chØ nhËn gi¸ trÞ
kÐp, vμ miÒn ®Þa chØ lμ miÒn ®a gi¸ trÞ. Khi ®ã nªn t¸ch thuéc tÝnh nμy ra nhiÒu
thuéc tÝnh nhá ®Ó ®¶m b¶o gi¸ trÞ thuéc tÝnh ®¬n. §ã lμ yªu cÇu ®èi víi mét b¶ng
chuÈn. NÕu ph¸t hiÖn thÊy thùc thÓ cã thuéc tÝnh nhËn ®a gi¸ trÞ, ng−êi ta cÇn t¹o
quan hÖ phô ®Ó gi¶i quyÕt t×nh tr¹ng ®a gi¸ trÞ nμy.
ThÝ dô
C¸c nh©n viªn ®−îc ®¸nh gi¸ b»ng thuéc tÝnh “n¨ng lùc” ®a gi¸ trÞ. Thuéc tÝnh
nμy gäi lμ thuéc tÝnh kh«ng ®¬n gi¶n, hay kh«ng bÐ nhÊt. Thuéc tÝnh nh− vËy cã
3
thÓ ®−îc chia thμnh c¸c thuéc tÝnh nhá ®Ó miÒn trong c¬ së d÷ liÖu ph¶i nhËn gi¸
trÞ ®¬n. Ng−êi ta chia b¶ng d÷ liÖu thμnh hai b¶ng.

Nh©n M· sè Tªn §¬n vÞ BËc N¨ng lùc


viªn
1 Tutu B¸n hμng 4 {vi tÝnh}
2 Titi KÕ to¸n 6 {®¸nh m¸y, vi tÝnh, qu¶n lý }
3 Toto B¸n hμng 2 {tiÕng Anh, qu¶n lý}

H×nh 3.3. Kh«ng chÊp nhËn miÒn lÊy c¸c gi¸ trÞ kh«ng bÐ nhÊt.

Nh©n viªn M· sè Tªn §¬n vÞ BËc


1 Tutu B¸n hμng 4
2 Titi KÕ to¸n 6
3 Toto B¸n hμng 2

N¨ng lùc M· sè kh¶ n¨ng


1 vi tÝnh
2 ®¸nh m¸y
2 vi tÝnh
2 qu¶n lý
3 tiÕng Anh
3 qu¶n lý

H×nh 3.4. Quan hÖ bæ sung ®Ó t¹o nªn hai quan hÖ chÊp nhËn ®−îc.

Mçi dßng cña b¶ng n¨ng lùc chØ mang mét gi¸ trÞ vÒ n¨ng lùc cña nh©n viªn.
Trong b¶ng ban ®Çu, nÕu ng−êi nμo cã ba kh¶ n¨ng th× hä ®−îc thÓ hiÖn b»ng ba
dßng trong b¶ng n¨ng lùc.

3.1.3. Gi¸ trÞ rçng


Gi¶ sö ng−êi ta muèn bæ sung mét nh©n viªn vμo c¬ së d÷ liÖu, nh−ng ch−a râ
4
hä thuéc vμo ®¬n vÞ nμo. Ng÷ nghÜa cña c¬ së d÷ liÖu cho phÐp thªm dßng nh− vËy
vμo b¶ng. Dßng míi øng víi m· sè ph©n biÖt ®−îc víi c¸c dßng kh¸c, nh−ng cã gi¸
trÞ rçng, hay NULL t¹i thuéc tÝnh ®¬n vÞ.

Nh©n viªn M· sè Tªn §¬n vÞ BËc


1 Tutu B¸n hμng 4
2 Titi KÕ to¸n 6
3 Toto B¸n hμng 2
5 Tata 4

H×nh 3.5. Bæ sung mét bé víi gi¸ trÞ rçng.

‰ §Þnh nghÜa Gi¸ trÞ rçng (null)


Gi¸ trÞ rçng lμ gi¸ trÞ cã thÓ g¸n cho mét thuéc tÝnh khi kh«ng dïng gi¸ trÞ
kh¸c ®−îc, hay khi ng−êi ta ch−a biÕt gi¸ trÞ cÇn g¸n
NULL lμ gi¸ trÞ ®Æc biÖt, víi nghÜa “kh«ng gièng bÊt cø gi¸ trÞ nμo”, thËm chÝ
kh«ng gièng c¶ gi¸ trÞ rçng kh¸c. Hai nh©n viªn t¹i ®¬n vÞ cã gi¸ trÞ rçng cã thÓ
kh«ng cïng ®¬n vÞ. Ng−êi ta nãi r»ng c¸c nh©n viªn ®· cã gi¸ trÞ x¸c ®Þnh lμ “kh«ng
rçng”, hay kh«ng NULL.
Khi x¸c ®Þnh mét thuéc tÝnh, ng−êi ta kh«ng chØ tÝnh ®Õn miÒn gi¸ trÞ mμ cßn
xem miÒn ®ã cã gi¸ trÞ rçng kh«ng. NÕu miÒn kh«ng dïng gi¸ trÞ rçng th× tÊt c¶ c¸c
bé trong quan hÖ cÇn nhËn gi¸ trÞ thuéc vμo miÒn x¸c ®Þnh, t¹i nh÷ng thuéc tÝnh
t−¬ng øng víi miÒn nμy. ThËt ra c¸c thuéc tÝnh dïng ®Ó ®Þnh tªn duy nhÊt mét bé
kh«ng bao giê ®−îc phÐp nhËn gi¸ trÞ rçng, ch¼ng h¹n m· sè nh©n viªn. Mét sè
thuéc tÝnh cã thÓ nhËn gi¸ trÞ rçng tïy thuéc vμo yªu cÇu vÒ ng÷ nghÜa cña c¬ së d÷
liÖu.

Ng−êi b¸n hμng Tªn NÆng


Tutu 56
Toto NULL
Mç nÆng c©n
Tata ~ 60

H×nh 3.6. NhiÒu lo¹i d÷ liÖu trong b¶ng quan hÖ.

5
Liªn quan ®Õn gi¸ trÞ rçng cña mét gi¸ trÞ thuéc tÝnh, ng−êi ta cßn xÐt ®Õn gi¸
trÞ x¸c ®Þnh nh−ng kh«ng ch¾c ch¾n, gi¸ trÞ sÏ ®−îc x¸c ®Þnh sau, gi¸ trÞ mê...
Nh÷ng lo¹i gi¸ trÞ ®ã khiÕn c¬ së d÷ liÖu trë thμnh c¬ së d÷ liÖu mang th«ng tin
kh«ng ®Çy ®ñ.

3.1.4. Quan hÖ c¬ b¶n vμ c¸c khung nh×n


Ng−êi ta dïng thuËt ng÷ “quan hÖ c¬ b¶n” ®Ó chØ møc ®é thÊp nhÊt cña thÓ
hiÖn d÷ liÖu ®èi víi ng−êi dïng. TÊt c¶ d÷ liÖu trong c¬ së d÷ liÖu quan hÖ sÏ ®−îc
l−u tr÷ theo tËp c¸c quan hÖ c¬ b¶n. D÷ liÖu cã thÓ ®−îc truy cËp vμ xö lý theo c¸ch
nh×n nhËn riªng, ®Æc biÖt gäi lμ “khung nh×n”. Khung nh×n lμ quan hÖ logic, t−¬ng
øng trùc tiÕp hay gi¸n tiÕp víi quan hÖ c¬ b¶n.
‰ §Þnh nghÜa Khung nh×n (view)
Khung nh×n lμ quan hÖ, liªn kÕt logic cho phÐp liªn kÕt hai hay nhiÒu quan hÖ
b»ng c¸ch trùc tiÕp hay gi¸n tiÕp.
Mét khung nh×n cã thÓ lμ tËp con ®¬n gi¶n cña mét quan hÖ c¬ b¶n. H×nh vÏ
cho thÊy khung nh×n b¸n hμng lμ tËp con cña b¶ng nh©n viªn.

Nh©n viªn M· sè Tªn §¬n vÞ BËc


1 Tutu B¸n hμng 4
2 Titi KÕ to¸n 6
3 Toto B¸n hμng 2
5 Tata B¸n hμng 4

H×nh 3.7. Mét khung nh×n ®¬n gi¶n.

B¸n hμng M· sè Tªn BËc


1 Tutu 4
3 Toto 2
5 Tata 4

H×nh 3.8. Khung nh×n ®· ®−îc tinh gi¶n, lμm mÞn.

Khung nh×n ban ®Çu cã thÓ cã nhiÒu th«ng tin trïng lÆp, ch¼ng h¹n khi t×m
mét sè th«ng tin vÒ nh©n viªn ng−êi ta kh«ng cÇn thiÕt t×m tªn ®¬n vÞ cña nh©n
6
viªn, huèng hå tªn ®¬n vÞ nμy l¹i lÆp l¹i. Do vËy ng−êi ta lμm mÞn h¬n ®Ó ®−îc
khung nh×n kh«ng d− thõa th«ng tin, râ h¬n.
C¸c khung nh×n cho phÐp nhiÒu ng−êi dïng kh¸c nhau nh×n cïng c¬ së d÷ liÖu
theo c¸c gãc ®é kh¸c nhau, víi c¸c yªu cÇu kh¸c nhau vÒ d÷ liÖu. HÖ thèng ®¶m b¶o
ng−êi dïng nμo còng c¶m thÊy chØ mét m×nh hä truy cËp c¬ së d÷ liÖu.
C¸c khung nh×n cã thÓ kÕt hîp d÷ liÖu tõ mét hay nhiÒu b¶ng d÷ liÖu. Ch¼ng
h¹n kÕt hîp thuéc tÝnh tªn nh©n viªn cña b¶ng nh©n viªn víi nh÷ng bé cña b¶ng
n¨ng lùc ®Ó ®−îc b¶ng chØ gåm c¸c th«ng tin vÒ c¸c nh©n viªn dïng m¸y vi tÝnh.

Dïng vi tÝnh M· sè Tªn


1 Tutu
2 Titi

H×nh 3.9. Khung nh×n t¹o tõ hai b¶ng c¬ b¶n.

Cã thÓ t¹o khung nh×n kh¸c b»ng c¸ch kÕt hîp d÷ liÖu tõ b¶ng “b¸n hμng” víi
d÷ liÖu trong b¶ng “dïng vi tÝnh” ®Ó chØ ra nh÷ng nh©n viªn b¸n hμng sö dông m¸y
tÝnh.

B¸n hμng dïng vi tÝnh M· sè Tªn


1 Tutu

H×nh 8.10. Mét khung nh×n rót ra tõ hai khung kh¸c.

Khung nh×n Nh©n sù kinh doanh

B¶ng B¶ng
Nh©n sù Kinh doanh
Khung nh×n Tr×nh ®é c¸n bé
B¶ng B¶ng
Tr×nh ®é XuÊt nhËp

B¶ng
Kh¶ n¨ng

C¬ së d÷ liÖu C¬ së d÷ liÖu
Nh©n sù Qu¶n lÝ kinh doanh

7
H×nh 3.11. Khung nh×n ®−îc t¹o tõ nhiÒu b¶ng quan hÖ.

Ng−êi ta cã thÓ xem khung nh×n nh− c¸c b¶ng c¬ b¶n trong c¬ së d÷ liÖu quan
hÖ vμ dïng chóng trong c¸c phÐp xö lý. PhÐp xö lý trong c¬ së d÷ liÖu ®−îc x¸c ®Þnh
gåm phÐp thªm, bít hoÆc thay ®æi th«ng tin cña c¸c bé, hay phÐp thay ®æi cÊu tróc
cña b¶ng, nh− thªm, bít c¸c cét cña b¶ng hay khung nh×n d÷ liÖu.
§Ó thùc hiÖn c¸c yªu cÇu nμy ®èi víi khung nh×n, ng−êi ta cÇn ®¶m b¶o mét sè
rμng buéc vÒ d÷ liÖu. ViÖc x¸c ®Þnh khung nh×n ngÇm x¸c ®Þnh c¸c b¶ng c¬ b¶n
tham gia vμo khung nh×n. Khi mét b¶ng c¬ b¶n chuyÓn sang c¬ së d÷ liÖu kh¸c,
kh«ng nhÊt thiÕt thay ®æi khung nh×n, mμ chØ chuyÓn tham chiÕu sang c¬ së d÷ liÖu
míi.

You might also like