117
Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 1 Khoa CNTT 2 N¨m 2000 Bμi Gi¶ng C¬ Së D÷ LiÖu Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu 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 Kh¸i niÖm vÒ c¬ së d÷ liÖu (Database) 1.1 Kh¸i niÖm vÒ c¬ së d÷ liÖu (Database) 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×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. HÖ c¬ së d÷ liÖu

Giáo trình Cơ Sở Dữ Liệu

Embed Size (px)

Citation preview

Page 1: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 1

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu 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 Kh¸i niÖm vÒ c¬ së d÷ liÖu (Database)1.1 Kh¸i niÖm vÒ c¬ së d÷ liÖu (Database)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×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.

HÖ c¬ së d÷ liÖu

Page 2: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 2

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö 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:

• 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.

Page 3: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 3

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

ë ®©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ë

Page 4: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 4

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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 1.2 KiÕn tróc cña mét hÖ thèng c¬ së d÷ liÖu 1.2 KiÕn tróc cña mét hÖ thèng c¬ së d÷ liÖu 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Ó

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)

Khung Nh×n 1

Møc quan niÖm

Møc vËt lý

Khung Nh×n 2 Khung Nh×n 3

Page 5: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 5

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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

Page 6: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 6

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

®Þ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 HÖ qu¶n trÞ c¬ së d÷ liÖu (Database Management System : DBMS)1.3 HÖ qu¶n trÞ c¬ së d÷ liÖu (Database Management System : DBMS)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.

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

USERUSERUSERUSER DBMS DATABASEDATABASEDATABASEDATABASE

Page 7: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 7

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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ªnNh©n viªnNh©n viªnNh©n viªn Phßng BanPhßng BanPhßng BanPhßng Ban Tªn nh©n viªnTªn nh©n viªnTªn nh©n viªnTªn nh©n viªn PhßngPhßngPhßngPhßng PhßngPhßngPhßngPhßng Tr−ëng phßngTr−ëng phßngTr−ëng phßngTr−ë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

Page 8: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 8

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Select tªn nh©n viªn From nh©nviªn Where 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.

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

Kho hµng A=100

Cöa hµng 1 Cöa hµng 2

Page 9: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 9

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö 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

Page 10: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 10

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

Page 11: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 11

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• 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.

Page 12: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 1 §¹i C−¬ng C¸c HÖ C¬ Së D÷ LiÖu Trang 12

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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

M· lÖnh c¸c ®èi t−îng ch−¬ng tr×nh

øng dông

Bé xö lý c©u truy vÊn

Bé tiÒn biªn dÞch DDL

Bé tiÒn biªn dÞch DML

Bé qu¶n lý c¬ së d÷ liÖu

HÖ qu¶n trÞ c¬ së d÷ liÖu

File d÷ liÖu

Tù ®iÓn d÷ liÖu

Bé qu¶n lý file

H×nh 1.6 CÊu tróc hÖ thèng qu¶n trÞ c¬ së

Page 13: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 13

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖuCh−¬ng 2 C¸c M« H×nh D÷ LiÖuCh−¬ng 2 C¸c M« H×nh D÷ LiÖuCh−¬ng 2 C¸c M« H×nh D÷ LiÖu

2.1 M« h×nh d÷ liÖu (data model)2.1 M« h×nh d÷ liÖu (data model)2.1 M« h×nh d÷ liÖu (data model)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 (EntityM« h×nh thùc thÓ mèi liªn kÕt (EntityM« h×nh thùc thÓ mèi liªn kÕt (EntityM« h×nh thùc thÓ mèi liªn kÕt (Entity----Relationship Model)Relationship Model)Relationship Model)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ä.

Page 14: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 14

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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

♦ M« h×nh h−íng ®èi t−îng (The ObjectM« h×nh h−íng ®èi t−îng (The ObjectM« h×nh h−íng ®èi t−îng (The ObjectM« h×nh h−íng ®èi t−îng (The Object----Oriented Model)Oriented Model)Oriented Model)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

Customer

name street

city

CustAcc Account

number balance

H×nh 2.1 S¬ ®å ER

Page 15: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 15

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

®é 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.

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ý.

BiÕnBiÕnBiÕnBiÕn Ph−¬ng thøcPh−¬ng thøcPh−¬ng thøcPh−¬ng thøc

§èi t−îng bank account NumberNumberNumberNumber

BalanceBalanceBalanceBalance

H×nh 2.2 M« h×nh mét ®èi t−îng

Pay_Interest

Page 16: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 16

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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ÖM« h×nh quan hÖ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

Page 17: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 17

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

VÝ dô : §Ó minh häa cho mÉu c¬ së d÷ liÖu thÓ hiÖn kh¸ch hµng

(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¹ngM« h×nh m¹ngM« h×nh m¹ngM« 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.

H×nh 2.4 Mét mÉu c¬ së d÷ liÖu m¹ng

name street city number Lowery Mapple Queens 900 Shiver North Bronx 556 Shiver North Bronx 647

Hodges Sidehill Brooklyn 801 Hodges Sidehill Brooklyn 647

number balance

900 55 556 100000 647 105366 801 10533

H×nh 2.3 Mét mÉu c¬ së d÷ liÖu quan hÖ

Lowery Maple Queens 900 55 Shiver North Bronx 556 100000 647 105366 Hodges Sidehill Brooklyn 801 10533

Page 18: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 18

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

♦ M« h×nh ph©n cÊpM« h×nh ph©n cÊpM« h×nh ph©n cÊpM« 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 Hodges Sidehill Brooklyn Shiver North Bronx 556 100000 647 105366 900 55 647 105366 801 10533

H×nh 2.5 Mét mÉu c¬ së d÷ liÖu ph©n cÊp

2.2 2.2 2.2 2.2 M« h×nh thùc thÓ mèi liªn kÕt (EntitM« h×nh thùc thÓ mèi liªn kÕt (EntitM« h×nh thùc thÓ mèi liªn kÕt (EntitM« h×nh thùc thÓ mèi liªn kÕt (Entity Relationship Model)y Relationship Model)y Relationship Model)y 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.

Page 19: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 19

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

- 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.

Page 20: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 20

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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

Page 21: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 21

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

VÝ dô : XÐt mèi liªn kÕt gi÷a tËp thùc thÓ SV :

R = cïng líp

Sinh viªn sinh viªn

Cïng líp (sinh viªn, sinh viªn) Bé (n, m) ⇔ n ë cïng líp víi m.

VÝ dô : XÐt mèi liªn kÕt gi÷a m«n häc, gi¶ng viªn, líp.

gi¶ng viªn m«n häc

d¹y

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.

Page 22: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 22

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

TËp thùc thÓ Thuéc tÝnh X khãa Mèi liªn kÕt 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¸ n−íc sx mÆt hµng b¸n 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. n−ícsx mÆt hµng b¸n gi¸ tiÒn m·mh tªnmh

VÝ dô : Mét c«ng ty cã nhiÒu bé phËn. Mçi bé phËn cã nhiÒu nh©n viªn, nh−ng nh©n viªn chØ lµm viÖc ë 1 bé phËn. Mçi bé phËn cã 1 ng−êi qu¶n lý vµ ng−êi qu¶n lý chØ qu¶n lý 1 bé phËn mµ th«i. H·y tr×nh bµy s¬ ®å thùc thÓ mèi liªn kÕt c«ng ty trªn.

TËp thùc thÓ Thuéc tÝnh Mèi liªn kÕt TËp thùc thÓ Bé phËn - tªn bé phËn

- sè phßng cã (nhiÒu) bÞ qu¶n lý (bëi 1)

Nh©n viªn Ng−êi qu¶n lý

Nh©n viªn m· NV hä tªn l−¬ng

lµm viÖc (t¹i 1) Bé phËn

Ng−êi qu¶n lý hä tªn sè phone

qu¶n lý (1) Bé phËn

Page 23: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 23

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

l−¬ng tªn bé phËn 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

- sè bµy (nhiÒu) mÆt hµng

MÆt hµng - tªn - gi¸ - m· hµng

b¸n ( ë mét ) víi mét gi¸ (thuéc tÝnh riªng)

quÇy hµng

QuÇy hµng MÆt hµ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.

Page 24: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 24

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Gi¶ng viªn d¹y m«n häc

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

2.2.7 TÝnh hµm cña mèi liªn kÕt

Ta cÇn ph¶i ph©n lo¹i c¸c mèi liªn kÕt dùa vµo tÝnh chÊt lµ 1 thùc thÓ cña tËp thùc thÓ liªn kÕt ®−îc víi bao nhiªu thùc thÓ cña tËp kia do ®ã gi¸ trÞ cña tÝnh chÊt hµm chØ cã 2 gi¸ trÞ ®ã lµ 1 hoÆc nhiÒu.

2.2.7.1 Mèi liªn kÕt 1-1 :

Mèi liªn kÕt 1-1Lµ mèi liªn kÕt gi÷a 2 tËp thùc thÓ mµ øng víi 1 thùc thÓ cña tËp nµy liªn kÕt nhiÒu nhÊt víi 1 thùc thÓ cña tËp kia vµ ng−îc l¹i.

1 1

E1 E2

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î

Page 25: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 25

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

- Mèi liªn kÕt isa còng lµ mèi liªn kÕt 1-1

1 1 sinh viªn Isa con ng−êi

VÝ dô : Cø 1 sinh viªn th× ch¾c ch¾n lµ 1 ng−êi vµ ng−îc l¹i.

Nh©n viªn nÕu lµ 1 ng−êi qu¶n lý th× nh©n viªn chÝnh lµ ng−êi qu¶n lý.

1 1 nh©n isa ng−êi qu¶n lý 2.2.7.2 Mèi liªn kÕt nhiÒu -1 :

XÐt mèi liªn kÕt nhiÒu -1 tõ tËp thùc thÓ E1 vµ tËp thùc thÓ E2 th× 1 thùc thÓ cña tËp thùc thÓ E2 liªn kÕt víi 0 hoÆc nhiÒu thùc thÓ cña tËp E1 nh−ng ng−îc l¹i, 1 thùc thÓ cña tËp E1 chØ liªn kÕt nhiÒu nhÊt víi 1 thùc thÓ cña tËp E2.

n 1 E1 E2 VÝ dô : XÐt tËp thùc thÓ cha mÑ vµ con c¸i.

Cha mÑ cã thÓ cã nhiÒu con c¸i, nh−ng con c¸i chØ cã 1 cÆp cha mÑ.

♦ Kh¸i niÖm vÒ mèi liªn kÕt nhiÒu -1 :

Tõ 2 tËp thùc thÓ cã thÓ ®−îc tæng qu¸t ho¸ thµnh nhiÒu mèi liªn kÕt nhiÒu -1 víi k tËp thùc thÓ (k >2)

NÕu cã 1 mèi liªn kÕt gi÷a c¸c tËp thùc thÓ E1, E2, E3, ..., Ek gäi lµ R øng víi c¸c thùc thÓ e1, e2, ei-1, ei+1, ..., ek còa c¸c tËp thùc thÓ E1, E2, ... Ei-1, Ei+1, ..., Ek th× kiªn kÕt víi nhiÒu nhÊt 1 thùc thÓ ei cña tËp Ei th× ta nãi R lµ mèi liªn kÕt nhiÒu 1.

Chó ý :

• 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.

Page 26: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 26

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ng−êi cung mÆt hµng cung cÊp gi¸

VÝ dô : Cã 3 tËp thùc thÓ líp häc, giê häc vµ phßng häc.

Líp häc giê häc Häc Phßng häc

2.2.7.3 Mèi liªn hÖ nhiÒu - nhiÒu

Mét mèi liªn kÕt ®−îc gäi lµ nhiÒu - nhiÒu gi÷a c¸c tËp thùc thÓ nÕu nh− kh«ng cã 1 giíi h¹n nµo ®ã vÒ sè l−îng cña c¸c tËp thùc thÓ tham gia trong mèi liªn kÕt nghÜa lµ 1 thùc thÓ cña tËp thÓ nµy cã thÓ liªn kÕt ®−îc víi 0 hoÆc nhiÒu thùc thÓ cña tËp thùc thÓ kia vµ ng−îc l¹i.

VÝ dô : Ng−êi cung cÊp vµ mÆt hµng :

Ng−êi cung cÊp cung cÊp mÆt hµng

2.2.8 VÝ dô vÒ s¬ ®å thùc thÓ mèi liªn kÕt (ERD)

VÝ dô 1: X©y dùng 1 s¬ ®å ERD cña siªu thÞ.

Mét siªu thÞ cã nhiÒu nh©n viªn. Th«ng tin vÒ nh©n viªn gåm cã tªn nh©n viªn vµ tiÒn l−¬ng. Mçi nh©n viªn lµm viÖc ë 1 bé phËn, 1 bé phËn cã thÓ cã nhiÒu nh©n viªn. Th«ng tin vÒ bé phËn gåm cã tªn bé phËn vµ m· sè bé phËn. Trong nh÷ng nh©n viªn cã ng−êi lµm qu¶n lý, 1 ng−êi chØ qu¶n lý tèi ®a 1 bé phËn, 1 bé phËn chØ cã 1 ng−êi lµm qu¶n lý. ë 1 bé phËn cã nhiÒu mÆt hµng nh−ng 1 mÆt hµng chØ ®−îc ®Æt ë 1 bé phËn mµ th«i. Th«ng tin vÒ mÆt hµng gåm cã tªn mÆt hµng vµ m· sè mÆt hµng. MÆt hµng do nhiÒu ng−êi cung cÊp b¸n,

Page 27: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 27

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

n. viªn lµm viÖc bé phËn bµy b¸n mÆt hµng isa Qlý gåm ccÊp NgQ Sl−îng Gi¸ Ncc k.hµng cã §¬n ®Æt hµng

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 líp häc m«n cã Phßng d¹y gi¸oviªn phôtr¸ch gåm bém«n

Page 28: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 28

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

2.3 M« h×nh d÷ liÖu quan hÖ.2.3 M« h×nh d÷ liÖu quan hÖ.2.3 M« h×nh d÷ liÖu quan hÖ.2.3 M« h×nh d÷ liÖu quan hÖ.

2.3.1 C¸c kh¸i niÖm c¬ b¶n.

2.3.1.1 Thuéc tÝnh

• Mçi ®èi t−îng ®−îc kh¶o s¸t ®Òu cã nh÷ng ®Æc tÝnh. Nh÷ng ®Æc tÝnh nµy ®−îc gäi lµ thuéc tÝnh.

• Mçi thuéc tÝnh ®Òu thuéc mét kiÓu d÷ liÖu. • Mçi thuéc tÝnh chØ lÊy gi¸ trÞ trong mét tËp con cña kiÓu d÷ liÖu

®−îc gäi lµ miÒn (domain) gi¸ trÞ cña thuéc tÝnh, ký hiÖu lµ Dom (A) víi A lµ thuéc tÝnh.

• MiÒn gi¸ trÞ cã thÓ chøa thªm mét gi¸ trÞ ®Æc biÖt gäi lµ gi¸ trÞ rçng (NULL).

2.3.1.2 L−îc ®å quan hÖ

• Mét l−îc ®å quan hÖ ®−îc ®Æc tr−ng bëi mét tªn ph©n biÖt (Q) vµ mét tËp hîp h÷u h¹n c¸c thuéc tÝnh cña l−îc ®å quan hÖ ®ã.

• TËp hîp c¸c thuéc tÝnh cña l−îc ®å quan hÖ Q, ký hiÖu lµ Q+ = { }N21 A.....A,A ; víi c¸c miÒn gi¸ trÞ DOM (Ai).

• Sè ph©n tö cña Q+, ký hiÖu Card (Q+ ) ®−îc gäi lµ sè ng«i cña l−îc ®å quan hÖ.

• Thø tù c¸c thuéc tÝnh trong kh«ng quan träng. • Mét l−îc ®å quan hÖ Q víi tËp thuéc tÝnh Q+ = { }N21 A.....A,A , còng

cã thÓ viÕt gän thµnh Q(A1, A2,.. .,An). • T©n tõ cña l−îc ®å quan hÖ Q, ký hiÖu ||Q|| dïng ®Ó m« t¶ ý nghÜa

(ng÷ nghÜa) cña l−îc ®å quan hÖ Q.

VÝ dô : SINH VI£N(MASV,HOSV, TENSV, NGSINH, MAKHOA, HOCBONG).

T©n tõ ||SINH VI£N||: Mçi sinh viªn ®−îc nhËn diÖn qua MASV, ph¶i cã hä, tªn, ngµy sinh, khoa x¸c ®Þnh vµ cã thÓ/kh«ng häc bæng.

KETQUA( MASV, MAMH, LANTHI, DIEM).

T©n tõ ||KET QUA||: Mçi sinh viªn cã thÓ dù thi c¸c m«n ®· ®¨ng ký. Mçi m«n ®−îc thi tèi ®a 2 lÇn.

• L−îc ®å quan hÖ cã thÓ biÓu diÔn cho mét lo¹i thùc thÓ cô thÓ hoÆc trõu t−îng.

• Mét l−îc ®å c¬ së d÷ liÖu C bao gåm nhiÒu l−îc ®å quan hÖ con : C = { Qi} i : 1->n

Page 29: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 29

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

T Q = { q = (a1, a2,...an) / ai ∈ Dom (Ai) vµ q tho¶ || q || }

Mét quan hÖ cßn ®−îc gäi lµ b¶ng.

VÝ dô : Quan hÖ Sinh viªn

MASV HOSV TENSV NGSINH MAKHOA HOCBONG

C981001 NguyÔn V¨n Anh 12/8/1976 VT C981002 Lª V¨n Anh 1/5/1977 VT 100000 C981003 TrÇn ThÞ BÐ 6/7/1976 VT 100000

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

Cho quan hÖ T Q . TËp con K ⊂ Q+ ®−îc gäi :

Page 30: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 30

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• 1/ Lµ siªu kho¸ cña Q nÕu ∀ t , t' ∈ T Q ta cã t (K) = t’ (K) => t = t'. Trong ®ã t(K) lµ bé t nh−ng chØ xÐt c¸c thuèc tÝnh K.

• 2/ Lµ 1 khãa cña Q nÕu K lµ siªu kho¸ vµ kh«ng cã tËp con thËt sù nµo cña K tho¶ tÝnh chÊt nµy. K cßn ®−îc gäi lµ kho¸ dù tuyÓn (candidate key) hay khãa néi.

VÝ dô : SINHVIEN (MASV, HOTEN, TENSV, NGSINH, HOCBONG)

L−îc ®å quan hÖ SINHVIEN cã c¸c siªu kho¸ sau : S1 = {MASV} S2 = {MASV, HOSV, TENSV} S3 = {MASV, NGSINH} Trong ®ã S1 lµ khãa cßn S2, S3 lµ siªu khã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.

♦ X©y dùng quan hÖ thùc thÓ :X©y dùng quan hÖ thùc thÓ :X©y dùng quan hÖ thùc thÓ :X©y dùng quan hÖ thùc thÓ :

Page 31: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 31

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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ó ýChó ýChó ý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 Quan hÖ E (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.X©y dùng quan hÖ liªn kÕt.X©y dùng quan hÖ liªn kÕt.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.

Page 32: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 32

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

hätªn Gi¸oviªn d¹y m«n häc tªn m«n Magv líp m·m«n m·líp sØsèlíp

Quan hÖ liªn kÕt D¹y cã l−îc ®å quan hÖ sau: D¹y(MAGV,MAMON,MALOP)

C¸c kho¸ cña quan hÖ.C¸c kho¸ cña quan hÖ.C¸c kho¸ cña quan hÖ.C¸c kho¸ cña quan hÖ. Quy t¾c x¸c ®Þnh khãa : §Ó x¸c ®Þnh khãa cña 1 quan hÖ ta ph¶i dùa vµo ý nghÜa cña quan hÖ ®ã chø

kh«ng nªn dùa vµo minh häa cña quan hÖ. Tõ ý nghÜa cña c¸c quan hÖ thùc thÓ, quan hÖ liªn kÕt mét-mét, nhiÒu-mét, nhiÒu-nhiÒu, ta rót ra ®−îc 1 sè nguyªn t¾c sau :

• NÕu 1 quan hÖ ®−îc x¸c ®Þnh tõ 1 tËp thùc thÓ th× tËp c¸c thuéc tÝnh khãa cña tËp thùc thÓ còng chÝnh lµ tËp c¸c thuéc tÝnh khãa cña quan hÖ.

• NÕu 1 quan hÖ ®−îc x¸c ®Þnh tõ 1 mèi liªn kÕt nhiÒu-nhiÒu th× khãa dïng cho quan hÖ liªn kÕt lµ tÊt c¶ c¸c thuéc tÝnh cña nã.

VÝ dô : XÐt mèi quan hÖ:

MH l−utr÷ kho Mamh Makho l−utr÷ (m·mh,m·kho) Magv GV gi¸otr×nh sèhiÖu Thamkh¶o m«nhäc Mamon Tham kh¶o (m·gv,m·m«n,sèhiÖu)

• Khãa cña mèi liªn kÕt tõ quan hÖ mét-mét.

Page 33: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 33

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

ng−êiqlý qlý béphËn hätªn tªnbéphËn Qlý (hätªn , tªnbéphËn)

• Khãa cña mèi liªn kÕt nhiÒu-mét.

Mét quan hÖ ®−îc x¸c ®Þnh tõ mèi liªn kÕt nhiÒu- mét tõ c¸c tËp E1, E2, ..., Ek-1 vµo tËp Ek th× khãa cña quan hÖ lµ c¸c thuéc tÝnh khãa cña c¸c quan hÖ thùc thÓ nhiÒu.

tªncc ng−êicc mÆthµng m·mh cungcÊp gi¸ CungcÊp (tªncc, m·mh, gi¸)

KÕt luËn :KÕt luËn :KÕt luËn :KÕt luËn : Khãa cña c¸c quan hÖ liªn kÕt lµ khãa cña c¸c quan hÖ thùc thÓ nhiÒu.

♦ Tæ hîp c¸c quan hÖ cã khãa chung Tæ hîp c¸c quan hÖ cã khãa chung Tæ hîp c¸c quan hÖ cã khãa chung Tæ hîp c¸c quan hÖ cã khãa chung

Khi 2 quan hÖ cã chung 1 khãa vµ t©n tõ cã ý nghÜa cã thÓ g¾n liÒn víi nhau th× ta cã thÓ tæ hîp c¸c thuéc tÝnh cña 2 quan hÖ nµy thµnh 1 quan hÖ cã tËp c¸c thuéc tÝnh lµ hîp cña 2 tËp thuéc tÝnh cña 2 quan hÖ kia.

VÝ dô : Tinh chÕ l−îc ®å c¬ së d÷ liÖu Qu¶n lý Siªu thÞ:

Page 34: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 34

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Quan hÖ thùc thÓ Quan hÖ liªn kÕt Nh©nviªn (tªnnv, l−¬ng) lµmviÖc (tªnnv, tªnbéphËn) Ng−êiqlý (tªnnv) qu¶nlý (tªnnv, m·béphËn) BéphËn (tªnbéphËn, m·béphËn) bµyb¸n (m·béphËn, m·mh) Ng−êicc (tªncc, ®ÞachØ) CungcÊp (m·mh, tªncc, gi¸) MÆthµng (tªnmh, m·mh) cã (tªnkh, sèhiÖu) §¬n®Æthµng (sèhiÖu, ngµy) Gåm (sèhiÖu, sèl−îng, m·mh) Kh¸chhµng (tªnkh, ®ÞachØ, sèd−)

Qu¸ tr×nh tæ hîp c¸c l−îc ®å quan hÖ:

Ng−êiqlý (tªnnv) + Qlý (tªnnv, m·béphËn) => Qlý1 (tªnnv, m·béphËn) Qlý1 (tªnnv, m·béphËn) + BéphËn (tªnbéphËn, m·béphËn) => QlýbéphËn (tªnbéphËn, m·béphËn, tªnnv) (1) Nh©nviªn (tªnnv, l−¬ng) + LµmviÖc (tªnnv, tªnbéphËn) => Nh©nviªnlµmviÖc (tªnnv, tªnbéphËn. l−¬ng) (2) MÆthµng (tªnmh, m·mh) + Bµy (m·béphËn, m·mh) => MÆthµngbµyb¸n (m·mh, tªnmh, m·béphËn) (3) §¬n®Æthµng (sèhiÖu, ngµy) + §Æt (sèhiÖu, tªnkh) => §¬n®Æthµng (sèhiÖu, ngµy, tªnkh) (4) C¸c l−îc ®å quan hÖ kh«ng thÓ tæ hîp ®−îc : Ng−êicc (tªncc, ®ÞachØ) (5) Kh¸chhµng (tªnkh, ®ÞachØ, sèd−) (6) CungcÊp (tªncc, m·mh, gi¸) (7) Chøa (m·mh, sèhiÖu, sèl−îng) (8)

2.3.3 C¸c phÐp to¸n ®¹i sè trong m« h×nh d÷ liÖu quan hÖ

2.3.3.1 C¸c phÐp to¸n ®¹i sè quan hÖ c¬ b¶n. ♦ To¸n h¹ng :

To¸n h¹ng cña c¸c phÐp to¸n ®¹i sè lµ h»ng hay lµ biÕn cã kiÓu quan hÖ ♦ C¸c phÐp to¸n :

PhÐp hîp, hiÖu, tÝch ®Ò c¸c, chiÕu vµ chän • PhÐp hîp :

PhÐp hîp cña 2 quan hÖ R vµ S lµ tËp hîp c¸c bé thuéc K hoÆc thuéc S víi ®iÒu kiÖn R vµ S cã cïng bËc.

PhÐp hîp ®−îc ký hiÖu R U S = { t | t∈ R v t∈ S }

VÝ dô

Page 35: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 35

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

R(A,B,C) U S (A,B,C) = R U S a b c a b d a b c a e f a e f a e f c b d c b d a b d

• PhÐp hiÖu :

PhÐp hiÖu cña 2 quan hÖ lµ tËp hîp c¸c bé thuéc R mµ kh«ng thuéc S víi ®iÒu kiÖn R vµ S cã cïng bËc.

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.

R x S = Q(r1,r2,...,rk1,s1,s2, ...,sk2) ={ t | t(R+) ∈ R ∧ t(S+) ∈ S}

VÝ dô R xS =

a b c a b d a b c a e f a e f a b d a e f a e f c b d a b d c b d a e f

• PhÐp chiÕu :

VÝ dô :

Masv Hosv Tªnsv QQ 001 NguyÔn Anh Sg 002 TrÇn B×nh Hn 003 Lª Cóc Sg 004 NguyÔn Minh Sg 005 Vò ThÞ §n

{Gi¶ sö ta chiÕu lªn QQ ⇒ Sg, Hn, §n}

Page 36: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 36

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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 a c

b e b

• PhÐp chän lùa :

VÝ dô : Chän lùa c¸c sinh viªn cã quª qu¸n ë Sµi Gßn. Víi l−îc ®å quan hÖ Sinhvien(Masv,hosv,tensv,quan)

σqquan = 'Sg' (Sinhvien)

001 003 004

NguyÔn Lª NguyÔn

Anh Cóc Minh

Sg Sg Sg

Cho 1 quan hÖ R, phÐp chän lùa trong quan hÖ R theo 1 c«ng thøc F lµ tËp hîp c¸c bé µ trong R mµ c¸c thµnh phÇn cña bé nµy tho¶ ®−îc c«ng thøc F.

_ C«ng thøc F bao gåm :

• C¸c to¸n h¹ng lµ nh÷ng h»ng hoÆc sè hiÖu thµnh phÇn. Thµnh phÇn thø i ®−îc ký hiÖu lµ $i.

• C¸c phÐp to¸n so s¸nh =, < >, >, <, <=. >= • C¸c phÐp to¸n luËn lý and, not, or (∧, , ∨ ) • PhÐp chän lùa ®−îc ký hiÖu lµ σ F (R)

VÝ dô : σσσσ $1 > $2 (R)

c b d

♦ C¸c phÐp to¸n kh¸c :

• 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.

Page 37: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 37

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

V= π 1, 2, r - s (T x S - R)

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 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) T x S - R

a b b c c b b c e d

b c

R ÷ S

Page 38: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 38

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

T - V

R ÷ S = T - V

T x S a b c d a b e f 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 1050 Cs30 1050 1021 Cs30 1070 1070 Cs30

T = π1 (R) T x S T x S - R

1080 1080 Cs10 1080 Cs10 1050 1080 Cs20 1080 Cs20 1070 1080 Cs30 1021 Cs30 1021 1050 Cs10 1050 Cs20 1050 Cs30 1070 Cs10 1070 Cs20 1070 Cs30 1080 1021 Cs10 1021 1021 Cs20

1021 Cs10

ýýýý nghÜa cña phÐp chia: nghÜa cña phÐp chia: nghÜa cña phÐp chia: nghÜa cña phÐp chia:

PhÐp chia ®−îc dïng ®Ó tr¶ lêi cho c©u truy vÊn th«ng tin “ ®Çy ®ñ “

VÝ dô 1 Cho hai l−îc ®å quan hÖ : cungcÊp (tªncc, m·mh, gi¸) MÆthµng (tªnmh, m·mh)

πtªncc (cungcÊp) → tªn ng−êi cung cÊp Ýt nhÊt 1 mÆt hµng.

V = π1 (T x S - R)

Page 39: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 39

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

B < D

πm·mh (cungcÊp) → m· mÆt hµng cã Ýt nhÊt 1 ng−êi cung cÊp.

πm·mh (mÆthµng) → tÊt c¶ c¸c mÆt hµng.

CungcÊp ÷ πm·mh (mÆthµng) → tªn ng−êi cung cÊp tÊt c¶ c¸c mÆt hµng.

VÝ dô 2: Cho hai l−îc ®å quan hÖ :

M«n®¹t (m·sv, m·mh, ®iÓm). M«nThiTN (m·mh, ...... ). Cho biÕt sinh viªn tèt nghiÖp (víi ®iÒu kiÖn thi ®¹t hÕt c¸c m«n tèt

nghiÖp)? π m·sv, m·mh (m«n®¹t) ÷ π m·mh (m«nthiTN)

• PhÐp kÕt nèi

PhÐp kÕt nèi R vµ S trªn c¸c thµnh phÇn i vµ j ®−îc ký hiÖu lµ : R l><l S i θ j trong ®ã θ lµ phÐp to¸n so s¸nh ®−îc ®Þnh nghÜa lµ

R l><l S = σ $10 $ (r + j) (R xS) i θ j

víi r lµ bËc quan hÖ cña R. VÝ dô : R S

A B C D E 1 2 3 3 1 4 5 6 6 2 7 8 9

R l><l S

A B C D E 1 2 3 3 1 1 2 3 6 2 4 5 6 6 2

• PhÐp kÕt nèi tù nhiªn

PhÐp kÕt nèi tù nhiÖn gi÷a 2 quan hÖ R vµ S ®−îc ký hiÖu lµ R l><l S trong ®ã R vµ S cã1 c¸c thuéc tÝnh cïng tªn th× sÏ ®−îc tÝnh nh− sau.

- TÝnh R x S - §èi víi c¸c thuéc tÝnh chung A1, A2, ..., Ak th× ta sÏ cã. R l><l S = π i 1, i 2,...,im (σR x A1= S x A1 ∧ R x A2= S x A2 ∧_ R x Ak = S x Ak = S x Ak (R x S)) It ≠ S.Aj (t : 1 .. m ; j = 1 .. k)

VÝ dô :

Page 40: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 40

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

A B C B C D A E D

b b e

c c f

b k e

c e f

g f k

R x S

A R.B R.C S.B S.C D a a a e e e d d d

b b b b b b e e e

c c c c c c f f f

b k e b k e b k e

c e f c e f c e f

g f k g f k g f k

R l><l S = σ R . B = S.. B ∧ R. C = S. C (R x S)

A B C D a e d

b b e

c c f

g g k

VÝ dô : Cho hai l−îc ®å quan hÖ: phßngban (m·pb, tªnpb) Qu¶nlý (tªnng−êi, m·pb) Tªn ng−êi tr−ëng phßng qu¶n lý phßng nµo vµ m· ? Phßngban l><l qu¶nlý Tªn ng−êi qu¶n lý khoa 'CNTT' πtªnng−êi (σm·ph = 'CNTT' (phßngban l><l qu¶nlý)) VÝ dô: Cho hai l−îc ®å sau: sinhviªn (m·sv, häsv, tªnsv,...) ®¨ngký (m·sv, m·mh) Cho biÕt hä tªn sinh viªn ®¨ng ký m«n 'CSDL' πhäsv, tªnsv (σm·mh = 'CSDL' (sinhviªn l><l ®¨ngký)) kÕt qu¶ (m·mh, m·sv, ®iÓm,...) sinhviªn (m·sv, häsv, tªnsv,...) m«nhäc (tªnmh, m·mh)

Page 41: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 41

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Cho biÕt c¸c sinh viªn ®· thi ®Ëu m«n ‘NNLT’ ? C¸ch 1: σtªnmh = 'NNLT' (m«nhäc) S = σ®iÓm >= 5 (kÕtqu¶ l><l σtªnmh = 'NNLT' (m«nhäc) πhäsv, tªnsv (sinhviªn l><l S) C¸ch 2: πhäsv, tªnsv (σtªnmh = 'NNLT' ∧ ®iÓm >= 5 ((sinhviªn l><l kÕtqu¶) l><l

m«mhäc))

• PhÐp n÷a kÕt nèi

PhÐp n÷a kÕt lµ phÐp kÕt nèi tù nhiªn nh−ng chØ chiÕu trªn c¸c thuéc tÝnh cña R: R l>< S = πR (R l><l S)

• 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

• X¸c ®Þnh c¸c tËp thùc thÓ :

Ta cã 1 sè gîi ý sau :

- NÕu cã th«ng tin m« t¶ 1 ®èi t−îng th× ®èi t−îng nµy ®−îc xem nh− 1 thùc thÓ.

VÝ dô : §Ó m« t¶ 1 thµnh phè ng−êi ta cã c¸c thuéc tÝnh nh− d©n sè, sè quËn huyÖn, tªn thµnh phè. Tõ ®ã ta xem thµnh phè nh− 1 thùc thÓ

Page 42: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 42

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

- 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 002 003 004

HCM CT

HUE §N

Nam Trung B¾c

V× vËy ta t¸ch thµnh phè thµnh 1 tËp thùc thÓ

Kho Thµnh phè TiÓu bang

- 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

Page 43: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 43

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

- H¹n chÕ sö dông mèi liªn kÕt 3

VÝ dô : mét sinh viªn cã thÓ tham gia nhiÒu ®Ò ¸n vµ 1 gi¶ng viªn cã thÓ h−íng dÉn nhiÒu sinh viªn ë bÊt kú ®Ò ¸n nµo.

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

- Ta chØ nªn x©y dùng 3 lo¹i mèi liªn kÕt.

Liªn kÕt 1 ng«i Liªn kÕt 2 ng«i Liªn kÕt 3 ng«i

• Liªn kÕt 1 ng«i :

VÝ dô : Mçi ng−êi tËp sù chØ cã 1 ng−êi tËp sù kh¸c lµ céng sù viªn cña m×nh trong c«ng viÖc

Ng−êi tËp sù VÝ dô : mäi ®Ò ¸n ®Òu cã sù liªn hÖ víi nhau §Ò ¸n

• Mèi liªn kÕt 2 ng«i

VÝ dô : mét ng−êi tËp sù chØ cã 1 h−íng dÉn viªn vµ h−íng dÉn viªn chØ h−íng dÉn 1 ng−êi tËp sù

Page 44: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 44

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ng−êi tËp sù H−íng dÉn viª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

Page 45: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 45

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

- C¸c kü s− sö dông c¸c kü n¨ng cho mçi ®Ò ¸n mµ hä tham gia

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)

Page 46: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu Trang 46

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

- 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

⇒ Thamgia (m·ks, m·kn, sè®Ò¸n)

2.2.4.3 ChuÈn hãa c¸c quan hÖ :

ChuÈn hãa quan hÖ lµ tiÕn hµnh kiÓm tra vµ xö lý sao cho c¸c l−îc ®å quan hÖ ®Òu ®¹t tèi thiÓu ë d¹ng chuÈn 3. PhÇn nµy sÏ ®−îc nghiªn cøu ë ch−¬ng 5.

Page 47: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 47

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ch−¬ng 3 Ng«n Ng÷ SQLCh−¬ng 3 Ng«n Ng÷ SQLCh−¬ng 3 Ng«n Ng÷ SQLCh−¬ng 3 Ng«n Ng÷ SQL

3.1 Giíi thiÖu3.1 Giíi thiÖu3.1 Giíi thiÖu3.1 Giíi thiÖu

Ng«n ng÷ SQL (Structured Query Language) ®−îc ph¸t triÓn tõ ng«n ng÷ SEQUEL (Structured English Query Language) lµ s¶n phÈm cña nhãm nghiªn cøu t¹i trung t©m nghiªn cøu cña IBM t¹i San Jose, California, USA. Ngay sau khi ra ®êi vµo nh÷ng n¨m ®Çu cña thËp niªn 70, ng«n ng÷ nµy ®−îc øng dông réng r·i vµ nhanh chãng trë thµnh ng«n ng÷ chuÈn trong l·nh vùc khai th¸c c¬ së d÷ liÖu quan hÖ trªn m¸y lín còng nh− trªn m¸y vi tÝnh sau nµy. HiÖn nay, hÇu hÕt c¸c hÖ qu¶n trÞ c¬ së d÷ liÖu ®Òu cã ng«n ng÷ SQL.

Ng«n ng÷ SQL lµ mét ng«n ng÷ truy vÊn dùa trªn ®¹i sè quan hÖ vµ lµ ng«n ng÷ phi thñ tôc. Ng«n ng÷ SQL ®−îc chia thµnh c¸c phÇn sau:

• Ng«n ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language DDL): Cung cÊp c¸c lÖnh ®Þnh nghÜa l−îc ®å quan hÖ, xãa quan hÖ, t¹o chØ môc thay ®æi l−îc ®å quan hÖ, t¹o khung nh×n (view)

• Ng«n ng÷ thao t¸c d÷ liÖu (Data Manipulation Language DML): gåm ng«n ng÷ truy vÊn dùa trªn ®¹i sè quan hÖ vµ c¸c lÖnh thªm, xo¸, söa c¸c bé trong c¬ së d÷ liÖu.

• Ng«n ng÷ thao t¸c d÷ liÖu ®−îc nhóng (Embedded Data Manipulation Language): D¹ng nhóng cña ng«n ng÷ SQL trong c¸c ng«n ng÷ lËp tr×nh nh− Pascal, C, Cobol, Fortran ...

• Ng«n ng÷ ®iÒu khiÓn d÷ liÖu (Data Control Language DCL) chøa c¸c lÖnh b¾t ®Çu, kÕt thóc, phôc håi giao t¸c vµ kho¸ d÷ liÖu cho viÖc truy xuÊt ®ång thêi.

• Rµng buéc toµn vÑn (Integrity Constrainst) vµ ph©n quyÒn (Authorization) chøa c¸c lÖnh ®Æc t¶ c¸c rµng buéc toµn vÑn vµ c¸c lÖnh ph©n quyÒn truy xuÊt c¸c quan hÖ vµ c¸c khung nh×n.

3.2 Ng«n 3.2 Ng«n 3.2 Ng«n 3.2 Ng«n ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language DDL)ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language DDL)ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language DDL)ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language DDL)

3.2.1 T¹o cÊu tróc b¶ng

Có ph¸p: CREATE TABLE < tªn_b¶ng>CREATE TABLE < tªn_b¶ng>CREATE TABLE < tªn_b¶ng>CREATE TABLE < tªn_b¶ng> ( <Thuéc tÝnh > <KiÓu> [<KÝch th−íc>][NOT NULL], ...( <Thuéc tÝnh > <KiÓu> [<KÝch th−íc>][NOT NULL], ...( <Thuéc tÝnh > <KiÓu> [<KÝch th−íc>][NOT NULL], ...( <Thuéc tÝnh > <KiÓu> [<KÝch th−íc>][NOT NULL], ... PRIMARY KEY (<kho¸ chÝnh>)PRIMARY KEY (<kho¸ chÝnh>)PRIMARY KEY (<kho¸ chÝnh>)PRIMARY KEY (<kho¸ chÝnh>) [UNIQUE (<kho¸>), ...][UNIQUE (<kho¸>), ...][UNIQUE (<kho¸>), ...][UNIQUE (<kho¸>), ...] [FOREIGN KEY (<kho¸ ngo¹i>) REFEREN[FOREIGN KEY (<kho¸ ngo¹i>) REFEREN[FOREIGN KEY (<kho¸ ngo¹i>) REFEREN[FOREIGN KEY (<kho¸ ngo¹i>) REFERENCE <tªn_b¶ng> ,...]CE <tªn_b¶ng> ,...]CE <tªn_b¶ng> ,...]CE <tªn_b¶ng> ,...] [ CHECK <®iÒu kiÖn rµng buéc>, ...][ CHECK <®iÒu kiÖn rµng buéc>, ...][ CHECK <®iÒu kiÖn rµng buéc>, ...][ CHECK <®iÒu kiÖn rµng buéc>, ...] ))))

Page 48: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 48

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

C¸c kiÓu d÷ liÖu:

char(n) : KiÓu chuçi ký tù gåm n ký tù smallint : KiÓu sè nguyªn 1 byte integer: KiÓu sè nguyªn 2 bytes decimal(n,t): KiÓu sè thùc cã n ch÷ sè víi t ch÷ sè thËp ph©n. real: KiÓu thùc dÊu chÊm ®éng date: kiÓu ngµy d−¬ng lÞch boolean: KiÓu luËn lý (§óng, Sai)

C¸c tõ kho¸:

NOT NULL: thuéc tÝnh kh«ng lÊy gi¸ trÞ rçng PRIMARY KEY (<kho¸ chÝnh>): Khai b¸o kho¸ chÝnh cña b¶ng UNIQUE KEY (<kho¸>) : Khai b¸o c¸c kho¸ chØ ®Þnh kh¸c. FOREIGN KEY (<kho¸ ngo¹i>) : Khai b¸o c¸c kho¸ ngo¹i cña b¶ng CHECK <®iÒu kiÖn rµng buéc> : M« t¶ c¸c rµng buéc kh¸c.

VÝ dô : T¹o lËp quan hÖ cung cÊp(Tªncc,Mamh,gia)

Create Table cungcÊp (Tencc char (30) FOREIGN KEY REFERENCE NguoiCC, Mamh char (5) FOREIGN KEY REFERENCE mathang, Gia Num (7) NOT NULL, PRIMARY KEY (tencc,mamh), CHECK gia >0 )

3.2.2 Thay ®æi cÊu tróc b¶ng

Có ph¸p: ALTER TABLE <tªn_b¶ng>ALTER TABLE <tªn_b¶ng>ALTER TABLE <tªn_b¶ng>ALTER TABLE <tªn_b¶ng> ADD <thuéc tÝnh > <kiÓu> [(<kÝch th−íc>)][NOT NULL],...ADD <thuéc tÝnh > <kiÓu> [(<kÝch th−íc>)][NOT NULL],...ADD <thuéc tÝnh > <kiÓu> [(<kÝch th−íc>)][NOT NULL],...ADD <thuéc tÝnh > <kiÓu> [(<kÝch th−íc>)][NOT NULL],... DRODRODRODROP <thuéc tÝnh>, ...P <thuéc tÝnh>, ...P <thuéc tÝnh>, ...P <thuéc tÝnh>, ...

VÝ dô : Thªm thuéc tÝnh NGAYGH , SOCMND vµo b¶ng cungcÊp

ALTER TABLE cungcÊp ADD ngaggh date not null, socmnd char(9) not null

VÝ dô: Lo¹i bá thuéc tÝnh SOCMND

ALTER TABLE cungcÊp DROP socmnd

Chó ý: Thao t¸c hñy lµ kh«ng hîp lÖ nÕu thuéc tÝnh bÞ hñy lµ thuéc tÝnh kho¸.

Page 49: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 49

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

3.2.3 Hñy bá mét b¶ng

Có ph¸p: DROP TABLE <b¶ng>DROP TABLE <b¶ng>DROP TABLE <b¶ng>DROP TABLE <b¶ng>

VÝ dô DROP TABLE cungcÊp

3.2.4. T¹o khung nh×n (view)

Có ph¸p: CREATE VIEW <tªn_khung_nh×n> [<thuéc tÝnh>,...}CREATE VIEW <tªn_khung_nh×n> [<thuéc tÝnh>,...}CREATE VIEW <tªn_khung_nh×n> [<thuéc tÝnh>,...}CREATE VIEW <tªn_khung_nh×n> [<thuéc tÝnh>,...} AS [<tªn_b¶ng>] | [<c©u truy vÊn Select ...>]AS [<tªn_b¶ng>] | [<c©u truy vÊn Select ...>]AS [<tªn_b¶ng>] | [<c©u truy vÊn Select ...>]AS [<tªn_b¶ng>] | [<c©u truy vÊn Select ...>]

VÝ dô Danh s¸ch tªn nhµ cung cÊp c¸c mÆt hµng

CREATE VIEW danhsachcc AS SELECT tencc, tªnmh FROM cungcap , mathang WHERE cungcap.mamh = mathang.mamh

3.2.5 Xo¸ khung nh×n

Có ph¸p: DROP VIEW DROP VIEW DROP VIEW DROP VIEW <tªn_khung_nh×n><tªn_khung_nh×n><tªn_khung_nh×n><tªn_khung_nh×n>

VÝ dô: Xo¸ khung nh×n danhsachcc

DROP VIEW danhsachcc

3.3 Ng«n ng÷ thao t¸c d÷ liÖu (Data Manupilation Language DML)3.3 Ng«n ng÷ thao t¸c d÷ liÖu (Data Manupilation Language DML)3.3 Ng«n ng÷ thao t¸c d÷ liÖu (Data Manupilation Language DML)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: INSERTINSERTINSERTINSERT INTO <tªn_b¶ng>INTO <tªn_b¶ng>INTO <tªn_b¶ng>INTO <tªn_b¶ng> VALUESVALUESVALUESVALUES (V1, V2, ..., Vn)(V1, V2, ..., Vn)(V1, V2, ..., Vn)(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: UPDATEUPDATEUPDATEUPDATE <tªn_b¶ng><tªn_b¶ng><tªn_b¶ng><tªn_b¶ng> SETSETSETSET A1 = V1, A2 = V2, ..., An = VnA1 = V1, A2 = V2, ..., An = VnA1 = V1, A2 = V2, ..., An = VnA1 = V1, A2 = V2, ..., An = Vn [WHERE[WHERE[WHERE[WHERE §K]§K]§K]§K]

Thuéc tÝnh Ai cã gi¸ trÞ Vi

Page 50: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 50

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

VÝ dô : T¨ng gi¸ cña c¸c mÆt hµng lªn 10% UPDATE cungcÊp SET gi¸ = gi¸ + gi¸.10%

VÝ dô : Gi¸ b¸n c¸c mÆt hµng cña «ng NguyÔn Minh TuÊn gi¶m 5%

UPDATE cungcÊp SET gi¸ = gi¸ - gi¸.5% Where tªncc = 'NguyÔn Minh TuÊn'

3.3.3 Hñy bá c¸c bé:

Có ph¸p: DELETEDELETEDELETEDELETE From <tªn_b¶ng>From <tªn_b¶ng>From <tªn_b¶ng>From <tªn_b¶ng> [WHERE[WHERE[WHERE[WHERE §K]§K]§K]§K]

VÝ dô : Hñy bá tÊt c¶ c¸c bé mµ «ng NguyÔn Minh TuÊn cung cÊp

DELETE From cungcÊp WHERE tªncc = 'NguyÔn Minh TuÊn'

Chó ý: NÕu kh«ng cã ®iÒu kiÖn th× sÏ xo¸ toµn bé c¸c bé

3.3.4 Ph¸t biÓu truy 3.3.4 Ph¸t biÓu truy 3.3.4 Ph¸t biÓu truy 3.3.4 Ph¸t biÓu truy vÊn SELECTvÊn SELECTvÊn SELECTvÊn SELECT

• Có ph¸p: SELECTSELECTSELECTSELECT RRRRi1i1i1i1.A.A.A.A1 1 1 1 [, R[, R[, R[, Ri2i2i2i2 .A .A .A .A2222, ..., R, ..., R, ..., R, ..., Rikikikik.A.A.A.Annnn]]]] FROMFROMFROMFROM RRRR1111[, R[, R[, R[, R2222, ..., R, ..., R, ..., R, ..., Rn]n]n]n] [WHERE[WHERE[WHERE[WHERE §K]§K]§K]§K] [ORDER BY <thuéc tÝnh >,...][ORDER BY <thuéc tÝnh >,...][ORDER BY <thuéc tÝnh >,...][ORDER BY <thuéc tÝnh >,...] [INTO TABLE <tªn_b¶ng míi][INTO TABLE <tªn_b¶ng míi][INTO TABLE <tªn_b¶ng míi][INTO TABLE <tªn_b¶ng míi] [GROUP BY <thuéc tÝnh>,... [HAVING <§K>]][GROUP BY <thuéc tÝnh>,... [HAVING <§K>]][GROUP BY <thuéc tÝnh>,... [HAVING <§K>]][GROUP BY <thuéc tÝnh>,... [HAVING <§K>]] ⇔ π Ri1. A1, Ri2. A2 , ..., Rik .An Ri1. A1, Ri2. A2 , ..., Rik .An Ri1. A1, Ri2. A2 , ..., Rik .An Ri1. A1, Ri2. A2 , ..., Rik .An((((σσσσ§k§k§k§k (R1 x R2 x ... x Rn )) (R1 x R2 x ... x Rn )) (R1 x R2 x ... x Rn )) (R1 x R2 x ... x Rn ))

VÝ dô 1 : H·y cho biÕt tªn kh¸ch hµng cã sè d− ©m.

Select tªnkh From kh¸chhµng Where sèd− < 0 ⇔ πtªnkh (σσσσ sèd− < 0 (kh¸chhµng))

VÝ dô 2 : H·y cho biÕt tÊt c¶ th«ng tin cña nh÷ng kh¸ch hµng cßn sè d−.

Select tªnkh, ®ÞachØ, sèd− // or * From kh¸chhµng Where sèd− < 0 ⇔ πtªnkh, ®ÞachØ, sèd− (σσσσ sèd− < 0 (kh¸chhµng))

VÝ dô 3 : H·y cho biÕt tªn ng−êi cung cÊp b¸n mÆt hµng coca-cola

Page 51: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 51

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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ªnNCCDISTINCT TªnNCCDISTINCT TªnNCCDISTINCT 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))

Chó ý : §Ó chØ xuÊt 1 bé trong c¸c bé gièng nhau ta dïng tõ khãa 'DISTINCT''DISTINCT''DISTINCT''DISTINCT'

• BiÕn kiÓu bé :BiÕn kiÓu bé :BiÕn kiÓu bé :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Ö.

FromFromFromFrom QhÖ 1 Q1 , QhÖ 2 Q2QhÖ 1 Q1 , QhÖ 2 Q2QhÖ 1 Q1 , QhÖ 2 Q2QhÖ 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

Page 52: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 52

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

ø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 :So trïng mÉu :So trïng mÉu :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 :

WhereWhereWhereWhere biÕn ký tùbiÕn ký tùbiÕn ký tùbiÕn ký tù LIKE 'LIKE 'LIKE 'LIKE 'chuçi so trïngchuçi so trïngchuçi so trïngchuçi so trïng''''

VÝ dô : H·y cho biÕt tªn c¸c mÆt hµng ®−îc b¸n cã tªn b¾t ®Çu b»ng ch÷ E

Select tªnmh From mÆthµng Where tªnmh like 'E%'

VÝ dô : H·y cho biÕt toµn bé c¸c th«ng tin vÒ ®¬n ®Æt hµng cã sè hiÖu tõ 1000 ->1999

Select * From ®¬n®Æthµng Where sèhiÖu like '1_ _ _'

• C¸c phÐp to¸n trong mÖnh ®Ò WHEREC¸c phÐp to¸n trong mÖnh ®Ò WHEREC¸c phÐp to¸n trong mÖnh ®Ò WHEREC¸c phÐp to¸n trong mÖnh ®Ò WHERE::::

Ø Trong mÖnh ®Ò WHERE th× cã c¸c phÐp so s¸nh Ø Trong mÖnh ®Ò WHERE cã thÓ chøa c¶ ph¸t biÓu SELECT, FROM,

WHERE. Ø KÕt qu¶ cña lÖnh SELECT lµ 1 quan hÖ do ®ã mÖnh ®Ò WHERE

chøa lÖnh Select, From, Where ph¶i cã c¸c phÐp to¸n trªn quan hÖ IN ⊆ NOT IN ∉ ANY ∃ ALL ∀ [NOT] EXIST ∃phÇn tö trong tËp

Page 53: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 53

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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 C¸c hµm dïng trong SELECT C¸c hµm dïng trong SELECT 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

Page 54: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 54

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

SUM ( ) Tæng gi¸ trÞ

VÝ dô : H·y cho biÕt sè d− trung b×nh cña kh¸ch hµng

Select AVGAVGAVGAVG (sèd−) From kh¸chhµng VÝ dô : Cho biÕt cã bao mhiªu ng−êi cung cÊp mÆt hµng. Select COUNT (DISTINCT (TENCC)) From cungcÊp

VÝ dô : H·y cho biÕt cã bao nhiªu ng−êi cung cÊp mÆt hµng coca-cola.

Select COUNT (tªncc) From cungcÊp, mÆthµng Where tªnmh = 'coca-cola' And cungcÊp.m·mh = mÆthµng.m·mh

• Ph©n nhãm cña SELECT Ph©n nhãm cña SELECT Ph©n nhãm cña SELECT Ph©n nhãm cña SELECT

Group byGroup byGroup byGroup by AAAA1111, A, A, A, A2222, ..., A, ..., A, ..., A, ..., Akkkk HavingHavingHavingHaving §K §K §K §K

Ghi sau lÖnh WHERE dïng ®Ó gåm nhãm theo c¸c thuéc tÝnh A1, A2,..., Ak

VÝ dô : H·y cho biÕt tªn c¸c mÆt hµng vµ ®¬n gi¸ b¸n trung b×nh

Select tªnmh, AVG (gi¸) From mÆthµng MH, cungcÊp CC Where CC.m·mh = MH. m·mh Group by tªnmh

VÝ dô : H·y cho biÕt tªn c¸c mÆt hµng, ®¬n gi¸ b¸n trung b×nh vµ ®iÒu kiÖn nh÷ng mÆt hµng nµy cã nhiÒu h¬n 1 ng−êi cung cÊp

Select tªnmh, AVG (gi¸) From mÆthµng MH, cungcÊp CC Where CC.m·mh = MH.m·mh Group by tªnmh Having Count (*) > 1

VÝ dô : H·y cho biÕt tªn c¸c mÆt hµng, ®¬n gi¸ b¸n trung b×nh vµ ®iÒu kiÖn mÆt hµng cã 2 ®¬n gi¸ kh¸c nhau trë lªn:

Select tªnmh, AVG (gi¸) From mÆthµng MH, cungcÊp CC Where CC.m·mh = MH.m·mh Group by tªnmh Having Count (DISTINCT gi¸) > 1

Page 55: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 55

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• ChuyÓn kÕt qu¶ vµo mét b¶ng :ChuyÓn kÕt qu¶ vµo mét b¶ng :ChuyÓn kÕt qu¶ vµo mét b¶ng :ChuyÓn kÕt qu¶ vµo mét b¶ng :

INTO TABLE <tªn_b¶ng> INTO TABLE <tªn_b¶ng> INTO TABLE <tªn_b¶ng> INTO TABLE <tªn_b¶ng>

VÝ dô: L−u l¹i danh s¸ch c¸c mÆt hµng víi ®¬n gi¸ trung b×nh vµo b¶ng MH_TRUNGBINH

Select tªnmh, AVG (gi¸) From mÆthµng MH, cungcÊp CC Where CC.m·mh = MH. m·mh Group by tªnmh Into Table MH_TRUNGBINH

• S¾p xÕp d÷ liÖu xuÊtS¾p xÕp d÷ liÖu xuÊtS¾p xÕp d÷ liÖu xuÊtS¾p xÕp d÷ liÖu xuÊt

ORDER BY <thuéc tÝnh>[, ...]ORDER BY <thuéc tÝnh>[, ...]ORDER BY <thuéc tÝnh>[, ...]ORDER BY <thuéc tÝnh>[, ...]

VÝ dô: H·y cho biÕt tªn c¸c mÆt hµng vµ ®¬n gi¸ b¸n trung b×nh theo thø tù tªn mÆt hµng.

Select tªnmh, AVG (gi¸) From mÆthµng MH, cungcÊp CC Where CC.m·mh = MH.m·mh Group by tªnmh Order by tªnmh

• C¸c phÐp to¸n trªn tËp hîpC¸c phÐp to¸n trªn tËp hîpC¸c phÐp to¸n trªn tËp hîpC¸c phÐp to¸n trªn tËp hîp

C¸c phÐp to¸n trªn tËp hîp gåm cã phÐp héi UNION, phÐp giao INTERSECT, phÐp hiÖu MINUS

Có ph¸p :

Ph¸t biÓu SELECT 1 <phÐp to¸n trªn tËp hîp> Ph¸t biÓu SELECT 2Ph¸t biÓu SELECT 1 <phÐp to¸n trªn tËp hîp> Ph¸t biÓu SELECT 2Ph¸t biÓu SELECT 1 <phÐp to¸n trªn tËp hîp> Ph¸t biÓu SELECT 2Ph¸t biÓu SELECT 1 <phÐp to¸n trªn tËp hîp> Ph¸t biÓu SELECT 2

víi ®iÒu kiÖn c¸c ph¸t biÓu select ph¶i cïng d¹ng kÕt xuÊt.

VÝ dô Select Tenmh From Mathang mh, cungcap cc Where mh.mamh=cc.mamh and gia=10.000 IntersectIntersectIntersectIntersect Select Tenmh From Mathang mh, cungcap cc Where mh.mamh=cc.mamh and gia=20.000

Page 56: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 56

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

3.4 Nhóng ng«n ng÷ SQL trong ng«n ng÷ chñ3.4 Nhóng ng«n ng÷ SQL trong ng«n ng÷ chñ3.4 Nhóng ng«n ng÷ SQL trong ng«n ng÷ chñ3.4 Nhóng ng«n ng÷ SQL trong ng«n ng÷ chñ

§Ó nhËn d¹ng ng«n ng÷ SQL ®−îc nhóng trong ng«n ng÷ chñ ng−êi ta dïng ph¸t biÓu tiÒn xö lý sau:

EXEC SQL < khèi lÖnh SQL ®−îc nhóng> END EXECEXEC SQL < khèi lÖnh SQL ®−îc nhóng> END EXECEXEC SQL < khèi lÖnh SQL ®−îc nhóng> END EXECEXEC SQL < khèi lÖnh SQL ®−îc nhóng> END EXEC

Khèi lÖnh SQL ®−îc nhóng cã d¹ng nh− sau:

EXEC SQLEXEC SQLEXEC SQLEXEC SQL [DECLARE <tªn_cursor> CURSOR FOR[DECLARE <tªn_cursor> CURSOR FOR[DECLARE <tªn_cursor> CURSOR FOR[DECLARE <tªn_cursor> CURSOR FOR <ng«n ng÷ thao t¸c d÷ liÖu>]<ng«n ng÷ thao t¸c d÷ liÖu>]<ng«n ng÷ thao t¸c d÷ liÖu>]<ng«n ng÷ thao t¸c d÷ liÖu>] [OPEN <tªn_cursor>[OPEN <tªn_cursor>[OPEN <tªn_cursor>[OPEN <tªn_cursor>]]]] [FETCH <tªn_cursor> INTO :<tªn_biªn cña ng«n ng÷ chñ>[,...] ][FETCH <tªn_cursor> INTO :<tªn_biªn cña ng«n ng÷ chñ>[,...] ][FETCH <tªn_cursor> INTO :<tªn_biªn cña ng«n ng÷ chñ>[,...] ][FETCH <tªn_cursor> INTO :<tªn_biªn cña ng«n ng÷ chñ>[,...] ] [CLOSE <tªn_cursor> ][CLOSE <tªn_cursor> ][CLOSE <tªn_cursor> ][CLOSE <tªn_cursor> ] END EXECEND EXECEND EXECEND EXEC

Ph¸t biÓu DECLARE CURSOR dïng ®Ó khai b¸o mét c©u lÖnh DML, nã ch−a ®−îc thùc thi ngay. KÕt qu¶ cña c©u lÖnh sÏ ®¹t ®−îc khi dïng lÖnh OPEN hay FETCH.

BiÕn cursor cña truy vÊn ®−îc dïng ®Ó nhËn d¹ng c©u truy vÊn nµo khi dïng ph¸t biÓu OPEN ®Ó thùc thi c©u truy vÊn.

VÝ dô EXEC SQL DECLARE c CURSOR FOR SELECT tencc,tenmh FROM cungcap cc, mathang mh WHERE cc.mamh=mh.mamh and gia > :giamh END EXEC

§Ó thùc thi ph¸t biÓu trªn, ta dïng lÖnh OPEN

EXEC SQL OPEN c ENDEXEC

§Ó chuyÓn kÕt qu¶ mét bé vµo biÕn ng«n ng÷ chñ ncc, nmh:

EXEC SQL FETCH c INTO :ncc, :nmh END EXEC

§Ó ®ãng c©u truy vÊn: EXEC SQL CLOSE c END EXEC

3.5 Ng«n ng÷ ®iÒu khiÓn d÷ liÖu (3.5 Ng«n ng÷ ®iÒu khiÓn d÷ liÖu (3.5 Ng«n ng÷ ®iÒu khiÓn d÷ liÖu (3.5 Ng«n ng÷ ®iÒu khiÓn d÷ liÖu (Data Control Language)Data Control Language)Data Control Language)Data Control Language)

Ng«n ng÷ ®iÒu khiÓn d÷ liÖu chøa c¸c lÖnh ®Ó ®iÒu khiÓn giao t¸c vµ kho¸ d÷ liÖu.

Page 57: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 3 Ng«n Ng÷ SQL Trang 57

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

C¸c lÖnh ®iÒu khiÓn giao t¸c :

COMMIT [work] COMMIT [work] COMMIT [work] COMMIT [work]

SAVE POINT <tªn_®iÓm>SAVE POINT <tªn_®iÓm>SAVE POINT <tªn_®iÓm>SAVE POINT <tªn_®iÓm>

ROLLBACK [work] TO <tªn ®iÓm>ROLLBACK [work] TO <tªn ®iÓm>ROLLBACK [work] TO <tªn ®iÓm>ROLLBACK [work] TO <tªn ®iÓm>

• COMMIT [work]COMMIT [work]COMMIT [work]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>SAVE POINT <tªn ®iÓm>SAVE POINT <tªn ®iÓm>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>]ROLLBACK [work] [TO <tªn ®iÓm>]ROLLBACK [work] [TO <tªn ®iÓm>]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

Kho¸ d÷ liÖu: Kho¸ d÷ liÖu: Kho¸ d÷ liÖu: Kho¸ d÷ liÖu: LOCK TABLE <tªn_b¶ng>,...LOCK TABLE <tªn_b¶ng>,...LOCK TABLE <tªn_b¶ng>,...LOCK TABLE <tªn_b¶ng>,... In <locking_mode> [NOWAIT>In <locking_mode> [NOWAIT>In <locking_mode> [NOWAIT>In <locking_mode> [NOWAIT>

Locking_mode lµ c¸c chÕ ®é kho¸:

Ø EXCLUSIVE (X): ChØ cho phÐp truy vÊn trªn b¶ng.

Ø SHARE (S): Cho phÐp truy vÊn nh−ng kh«ng ®−îc cËp nhËt.

Ø ROW SHARE (RS): Cho phÐp truy xuÊt ®ång thêi trªn b¶ng nh−ng cÊm ng−êi sö dông kh¸c kho¸ toµn bé b¶ng kiÓu EXCLUSIVE.

Ø ROW EXCLUSIVE (RX): T−¬ng tù nh− ROW SHARE nh−ng cÊm kho¸ kiÓu SHARE MODE. Kho¸ nµy ®−îc dïng khi cËp nhËt, thªm vµ xo¸ d÷ liÖu.

Page 58: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 58

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ch−¬ng 4 Phô Thuéc HµmCh−¬ng 4 Phô Thuéc HµmCh−¬ng 4 Phô Thuéc HµmCh−¬ng 4 Phô Thuéc Hµm

4.1 Phô Thuéc hµm (Functional Dependency)4.1 Phô Thuéc hµm (Functional Dependency)4.1 Phô Thuéc hµm (Functional Dependency)4.1 Phô Thuéc hµm (Functional Dependency)

4.1.1§Þnh nghÜa phô thuéc hµm (FD)

Cho R (U) lµ mét l−îc ®å quan hÖ víi U = {A1 , A2 , . . . ,An} lµ tËp thuéc tÝnh. X vµY lµ tËp hîp con cña U.

Ta nãi X ->Y (®äc lµ X x¸c ®Þnh hµm Y hoÆc Y phô thuéc hµm X), nÕu r lµ mét thÓ hiÖn cña quan hÖ x¸c ®Þnh trªn R(U) sao cho bÊt kú 2 bé t1, t2 ∈ r mµ t1[X] = t2[X] th× t1[Y] = t2[Y].

4.1.2 §Þnh nghÜa phô thuéc hµm ®Çy ®ñ (Full Functional Dependency "FFD")

Cho thÓ hiÖn r tho¶ phô thuéc hµm X ->Y vµ nÕu kh«ng tån t¹i X' ⊂ X sao cho X' ->Y ta nãi X x¸c ®Þnh ®Çy ®ñ Y trong r hay Y phô thuéc hµm ®Çy ®ñ X trong r .

4.1.3 MÖnh ®Ò

Cho thÓ hiÖn quan hÖ r cña l−îc ®å R. a) X ->Y lµ phô thuéc hµm trªn r nÕu vµ chØ nÕu X lµ siªu kho¸ cña r [XY]. b) X ->Y lµ phô thuéc hµm ®Çy ®ñ trªn r nÕu vµ chØ nÕu X lµ kho¸ cña r[XY].

4.1.4 Gi¶i thuËt kiÓm tra phô thuéc hµm

a) Gi¶i thuËt kiÓm tra phô thuéc hµm:

SATISFY (r , f).

Vµo: ThÓ hiÖn quan hÖ r vµ f : X ->Y.

Ra: § , S.

Ph−¬ng ph¸p: 1. r' = r [ XY ].

2. Return (card(r’[x]) = card(r’))

b) Gi¶i thuËt kiÓm tra phô thuéc hµm ®Çy ®ñ:

SATISFYFULL (r , f)

Page 59: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 59

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Vµo: ThÓ hiÖn quan hÖ r vµ f : X ->Y.

Ra : § , S.

Ph−¬ng ph¸p: 1. For ∀ A ∈ X DO.

If SATISFY (r, X - A ->Y) Then return (FALSE)

2. Return (true).

VÝ dô: Cho quan hÖ r (ABCD).

r ( A B C D ) víi f : AC ->B

a1 b1 c1 d1 xem xÐt r cã tho¶ f ? a1 b1 c1 d2 a2 b1 c3 d2 a3 b2 c1 d1

TÝnh r' = r [ ABC ]

r' ( A B C )

a1 b1 c1 a2 b1 c3 a3 b2 c1

- r' tho¶ m·n kho¸ AC nªn r tho¶ f = AC ->B.

- Tuy nhiªn AC lµ siªu kho¸ v× A lµ kho¸ nªn f kh«ng ®Çy ®ñ trong r .

4.1.5 TËp phô thuéc hµm

Cho thÓ hiÖn quan hÖ r ( R) , F lµ tËp c¸c phô thuéc hµm. Quan hÖ r ®−îc gäi lµ tho¶ F nÕu r tho¶ f víi ∀f ∈ F.

VÝ dô cho quan hÖ r ( ABCDE ).

r ( A B C D E )

a1 b1 c1 d1 e1 a1 b2 c2 d2 e1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1

F = {A ->D , AB ->D , C ->BDE , E ->A , A ->E }.

Page 60: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 60

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

r kh«ng tho¶ A ->D nªn r kh«ng tho¶ F.

4.1.6 BiÓu diÔn tËp phô thuéc hµm b»ng ®å thÞ cã h−íng.

♦ C¸c nót trong ®å thÞ chia thµnh 2 lo¹i :

• 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.

♦ C¸c cung gåm 2 lo¹i :

• 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}.

4.2 HÖ luËt dÉn ARMSTRONG4.2 HÖ luËt dÉn ARMSTRONG4.2 HÖ luËt dÉn ARMSTRONG4.2 HÖ luËt dÉn ARMSTRONG

R (U) lµ 1 l−îc ®å quan hÖ víi U = {A1, A2, .. ., An } lµ tËp thuéc tÝnh.

XÐt X, Y, Z, W ⊂ U, hÖ luËt dÉn Armstrong.

1/ LuËt ph¶n x¹.

Y ⊆ X ⇒ X ->Y.

A 1 B C E 2 3 D G

H×nh 4.1 §å thÞ phô thuéc hµm

Page 61: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 61

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

2/ LuËt thªm vµo.

X ->Y vµ Z ⊆W ⇒ XW ->YZ. X ->Y th× XZ ->YZ (t¨ng tr−ëng).

3/ LuËt b¾c cÇu :

X ->Y vµ Y ->Z ⇒ X ->Z.

4/ LuËt tùa b¾c cÇu.

X ->Y vµ WY ->Z ⇒ XW ->Z.

5/ LuËt ph©n r·.

X ->Y vµ Z ⊆ Y ⇒ X ->Z.

6/ LuËt hîp.

X ->Y vµ X ->Z ⇒ X ->YZ.

VÝ dô: AB ->C , C ->A

Chøng minh: BC ->ABC a) C ->A gt. b) B ∈U , C ->A ⇒ BC -> AB (t¨ng tr−ëng) c) C ∈ U , BC -> AB ⇒ BC -> ABC (t¨ng tr−ëng).

4.3 Bao §ãng.4.3 Bao §ãng.4.3 Bao §ãng.4.3 Bao §ãng.

4.3.1 §Þnh nghÜa phô thuéc hµm suy dÉn

Cho tËp c¸c phô thuéc hµm, F, X, Y lµ 2 tËp thuéc tÝnh cña R. Ta nãi:

f : X ->Y lµ phô thuéc hµm suy dÉn tõ F nÕu nã ®−îc suy tõ F b»ng c¸c luËt dÉn cña hÖ tiÒn ®Ò Armstrong. Ký hiÖu F | = f.

TËp F+ = {f / F | = f } ®−îc gäi lµ bao ®ãng cña F.

4.3. 2 MÖnh ®Ò.

Cho tËp F c¸c phô thuéc hµm ta cã :

a) F ⊆ F+

b) Víi f lµ phô thuéc hµm tïy ý, f lµ hÖ qña cña F ⇔ F |= f ⇔ f ∈ F+.

VÝ dô: Cho l−îc ®å quan hÖ Q(A B C D E G) víi :

Page 62: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 62

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

F = {f1 : AE ->C , f2 : CG ->A f3 : BD ->G , f4 : GA ->E }

Chøng minh BDC ->Q+ ∈ F+

1) BD ->G 2) BDC ->GC (t¨ng tr−ëng) (a) 3) GC -> A ⇒ GC -> AG (t¨ng tr−ëng) 4) Tõ 3 vµ 2 ⇒ BDC -> AG (b¾c cÇu) 5) AG -> E vµ 4 ⇒ BDC -> E (b¾c cÇu) 6) Tõ 2,4,5, BDC -> BDC ⇒ BDC -> Q+

4.3.3 Bao ®ãng cña tËp thuéc tÝnh.

• §Þnh nghÜa

Cho l−îc ®å quan hÖ Q víi tËp FD F= {f1, f2,.. ., fn}. Gi¶ sö X ⊆ Q+ Bao ®ãng cña X dùa trªn F ký hiÖu XF

+ = { Y ∈ Q+ / X -> Y ∈ F+}

NhËn xÐt :

• X ⊆ X+ • f: X -> Y ∈ F+ ⇔ Y ⊆ XF

+

• Gi¶i thuËt tÝnh XF+

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

if W⊂X then X = XUZ

}

3. Return (X)

Page 63: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 63

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

VÝ dô: F = {A ->D, AB ->E, BI ->E, CD ->I, E ->C }

X= AE th× X+ = A C D E I.

VÝ dô: F = { B ->A, DA ->CF, D ->H, GH ->C, AC ->D }

BDF+= B D A C E H ; ACF

+ = A C D E H

4.3.4 Bµi to¸n thµnh viªn :

_ Cho tËp FD F , f : X ->Y tïy ý , f ∈ F+ ⇔ Y ⊂ X+.

_ Gi¶i thuËt Thµnh viªn (f , F)

Vµo: F , f : X ->Y ∈ F+

Ra : § , S

Ph−¬ng ph¸p : Return (Y ⊂ XF+ )

VÝ dô: F = {A ->D , AB ->E , BI ->E , CD ->I , E ->C}

XÐt F : AE ->DI ∈ F+

AEF+ = A E D C I , DI ⊆ AEF

+ nªn f ∈ F+

4.4 Kho¸ cña quan hÖ4.4 Kho¸ cña quan hÖ4.4 Kho¸ cña quan hÖ4.4 Kho¸ cña quan hÖ

4.4.1 X¸c ®Þnh kho¸

b1. T×m c¸c nót gèc b2. TÝnh bao ®ãng cña c¸c nót gèc X NÕu XF

+ = U th× X lµ kho¸ Ng−îc l¹i X = X U Y víi Y ∈ U Quay l¹i b−íc 2. VÝ dô: Cho R (A B C D E H) F = { AB ->C , CD ->E , EC ->A , CD ->H , H ->B }

T×m 1 kho¸ cña R

B1. Nót gèc = {vÕ tr¸i} - {vÕ ph¶i} = {A B C D E H} - {C E A H B} X = { D } B2. X = { D } X = DC ; DC+

F = {C D E A H B} Nªn CD lµ kho¸.

tung9493
Replace
tung9493
Replace
CE
Page 64: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 64

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

4.4.2 X¸c ®Þnh tÊt c¶ kho¸.

NhËn xÐt : NÕu K lµ kho¸ cña Q th× K chøa tÊt c¶ c¸c thuéc tÝnh nguån vµ kh«ng chøa bÊt kú thuéc tÝnh ®Ých nµo.

B1. TËp gèc N = {vÕ tr¸i} - {vÕ ph¶i} TËp trung gian L = U - N X©y dùng 2 K tËp con cña L : L1, L2,.. .,Lk b»ng Ph−¬ng ph¸p

®−êng ch¹y nhÞ ph©n. B2. X©y dùng tËp K chøa siªu kho¸. K := Ø For i = 1 to 2 K do. Begin

Xi : = N U Li . TÝnh bao ®ãng (Xi )

+F

if (Xi )+

F = Q+ theo K = K U Xi End B3. Lo¹i bá dÇn c¸c siªu kho¸ lín trong tËp hîp C¸c siªu kho¸ K = { K1, K2, .. . , K3} VÝ dô. Q (A B C D E G) F = { f1 : AE -> C, f2 : CG -> A, f3 : BD -> G, f4 : GA -> E } X¸c ®Þnh tÊt c¶ kho¸ cña Q B1. N = {A E C G B D} - {A C G E} = { BD } L = {A C E G}

A C E G LI X = N U LI +

FIX 0 0 0 0 1 0 0 0 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1

A C AC E AE CE ACE G AG CG ACG

BD BDA BDC BDAC BDE BDAE BDCE BDACE BDG BDAG BDCG BDACG

BDG Q+ Q+ / BDE / / / BDG / / /

Page 65: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 65

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

0 0 1 1 0 1 1 1 1 1 1 1 1 0 1 1

EG CEG ACEG AEG

BDEG BDCEG BDACEG BDAEG

BDEG / / /

4.5 Phñ tèi thiÓu cña tËp phô thuéc hµm.4.5 Phñ tèi thiÓu cña tËp phô thuéc hµm.4.5 Phñ tèi thiÓu cña tËp phô thuéc hµm.4.5 Phñ tèi thiÓu cña tËp phô thuéc hµm.

4.5.1 §Þnh nghÜa: Hai tËp phô thuéc hµm F vµ G.

a) Ta nãi F suy ra G ký hiÖu lµ F |= G nÕu G+ ⊆ F+

b) Ta nãi F t−¬ng d−¬ng G ký hiÖu lµ F ≡ G nÕu F |= G vµ G |= F

Cho tËp phô thuéc hµm F. XÐt tËp phô thuéc hµm G nÕu G |= F ta nãi G lµ mét phñ cña F (vµ ng−îc l¹i).

VÝ dô: F = {A ->B , B ->C , A ->C , AB ->C , B ->BC} G = {A ->B , B ->C}

Ta thÊy F ≡ G tuy nhiªn ta cÇn nãi G lµ 1 phñ cña F theo nghÜa lµ G tèt h¬n F v× Ýt phô thuéc hµm h¬n.

Chó ý : Ta cã c¸c mÖnh ®Ò sau 1. F ⊂ F+ 2. F ⊂ G -> F+ ⊂ G+ 3. (F+)+ = F+

4. C¸ch CM F+ ⊂ G+

Ta chøng minh F ⊂ G+ nghÜa lµ víi ∀FD X ->Y ∈ F ta chøng minh Y ⊆ XG

+

4.5.2 §Þnh NghÜa: Phñ tèi thiÓu.

Mét tËp phô thuéc hµm F ®−îc gäi lµ phñ tèi thiÓu nÕu tho¶ :

a) ∀f , f ∈ F , f cã d¹ng X ->A, A chØ cã 1 thuéc tÝnh. b) Kh«ng tån t¹i phô thuéc hµm f: X -> A vµ Z ⊂ X sao cho F ≡ F-{X ->A}U{Z->A} c) Kh«ng tån t¹i phô thuéc hµm f: X -> A ®Ó F - {X ->A} cßn t−¬ng ®−¬ng víi F. TÝnh chÊt (c) b¶o ®¶m kh«ng d− thõa. TÝnh chÊt (b) b¶o ®¶m kh«ng cã phô thuéc hµm kh«ng ®Çy ®ñ. TÝnh chÊt (a) b¶o ®¶m kh«ng cã thuéc tÝnh nµo cña vÕ ph¶i lµ tæ hîp.

4.5.3 Gi¶i thuËt t×m phñ tèi thiÓu.

Page 66: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 66

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Vµo : TËp phô thuéc hµm F.

Ra: Phñ tèi thiÓu cña F.

Ph−¬ng ph¸p :

a) G := Ø

b) For ∀f ∈ F , f : X ->Y Do G = G U {X ->A , A ∈Y}.

c) For ∀f : X ->A ∈ G Do.

While ∃ Z ⊂ X , Z ≠ X , G ≡ G \ {f} U {Z ->A} Do

G = G – {f} U {Z ->A}

d) For ∀f : X -> A∈ G Do

If G \ {f} ≡ G then G = G - {f}

VÝ dô : Cho tËp phô thuéc hµm F:

F = { AB -> C, C -> A, BC -> D, ACD -> B, D ->EG, BE -> C, CG -> BD, CE -> AG} T×m phñ tèi thiÓu cña F ?

Thùc hiÖn gi¶i thuËt trªn ta cã:

Sau b−íc 1,2: G = { AB ->C, C -> A, BC -> D, ACD -> B, D -> E, D -> G, BE -> C, CG -> B, CG ->D,CE -> A,CE -> G } Sau b−íc 3: G = { AB ->C, C -> A, BC -> D, CD -> B, D -> E, D -> G, BE -> C, CG -> B, CG ->D,CE -> G } Sau b−íc 4: G = { AB ->C, C -> A, BC -> D,

D -> E, D -> G, BE -> C, CG -> B, CE -> G }

4.6. PhÐp t¸ch c¸c l−îc ®å quan hÖ4.6. PhÐp t¸ch c¸c l−îc ®å quan hÖ4.6. PhÐp t¸ch c¸c l−îc ®å quan hÖ4.6. PhÐp t¸ch c¸c l−îc ®å quan hÖ

4.6.1 §Þnh nghÜa

Ph©n r· (decomposition) 1 l−îc ®å quan hÖ R = {A1, A2,..., An} lµ thay ®æi R b»ng 1 tËp hîp ρ = {R1, R2,..., RK} víi Ri lµ c¸c l−îc ®å con cña R sao cho R1

+ U R2

+ U...U RK+ = R+ trong ®ã R kh«ng nhÊt thiÕt ph¶i rêi nhau. Môc tiªu cña

Page 67: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 67

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

r = � (r) >< � (r) >< …... >< � (r) R1 R2 RK

Page 68: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 68

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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

do ®ã phÐp kÕt nèi kh«ng mÊt m¸t th«ng tin.

• §Þnh lý Delobel§Þnh lý Delobel§Þnh lý Delobel§Þnh lý Delobel

NÕu ρ ( R1 , R2 ) lµ 1 phÐp t¸ch cña R vµ F, th× ρ lµ t¸ch kh«ng mÊt m¸t th«ng tin ®èi víi F khi vµ chØ khi.

R1 ∩ R2 ->R1 - R2 hoÆc R1 ∩ R2 ->R2 - R1 .

Chó ý: C¸c phô thuéc hµm nªu trªn kh«ng nhÊt thiÕt ph¶i thuéc tËp F ban ®Çu nh−ng ph¶i thuéc F + .

4.6.3 Ph©n r· b¶o toµn phô thuéc

4.6.3.1 §Þnh nghÜa phô thuéc hµm ®−îc bao trong mét l−îc ®å quan hÖ

• 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 ®å quan hÖ R nÕu XY ⊂ R+

Page 69: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 69

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• 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.

Gi¶i thuËt Eclosure(X,F, ρ)

Vµo: tËp thuéc tÝnh X, TËp phô thuéc hµm F, ph©n r· ρ

Ra : X+F

Ph−¬ng ph¸p:

Page 70: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 70

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

1. Y := Ø

2. While Y <> X do

Begin Y:=X;

for ∀Rj ∈ ρ do

X := X U ((X ∩ Ri)+

F ∩ Ri);

End;

3. Return X;

Gi¶i thuËt Enforce(F, ρ)

Vµo : T©p phô thuéc hµm F, ph©n r· ρ

Ra : ®óng, Sai

Ph−¬ng ph¸p:

1. For ∀f∈F, f kh«ng ®−îc bao trong ρ, f: X->Y do

if Not Y ⊂ Eclosure(X,F, ρ) then return False;

2. Return true;

VÝ dô Cho F = { A->B, B ->C, C -> D, D -> A } vµ ph©n r· ρ ={(AB),(BC),(CD)}. KiÓm tra ph©n r· ρ cã b¶o toµn phô thuéc F kh«ng?

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)?

TÝnh to¸n ta ®−îc Eclosure(D)=ABCD tøc A ⊂ Eclosure (D). Suy ra ph©n r· ρ b¶o toµn phô thuéc trong F.

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

Page 71: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 4 Phô Thuéc Hµm Trang 71

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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)

Vµo: TËp phô thuéc hµm F, ph©n r· ρ, Ri ⊂ ρ

Ra: Fi = πRi(F)

Ph−¬ng ph¸p:

1. Fi := ∅;

2. For ∀f:X ->Y ∈ F, X ⊂ Ri do

Fi := Fi U { X -> (X+F – X)∩Ri };

3. Return (Fi);

VÝ dô Cho tËp phô thuéc hµm F = { A->C, B -> C} vµ ph©n r· ρ={AC,AB}. TÝnh F1 = πAC(F) F1 := ∅; A+ = AC suy ra F1 = { A->C} TÝnh F2 = πAC(F) F2 := ∅; A+ = AC mµ (AC - A) ∩ AB = ∅ nªn kh«ng bæ sung A-> C vµo F2

B+ = BC mµ (BC - B) ∩ AB = ∅ nªn kh«ng bæ sung B-> C vµo F2 Suy ra F2 = ∅

Page 72: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 72

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ch−¬ng 5 ChuÈn Hãa C¬ Së D÷ LIÖU Ch−¬ng 5 ChuÈn Hãa C¬ Së D÷ LIÖU Ch−¬ng 5 ChuÈn Hãa C¬ Së D÷ LIÖU Ch−¬ng 5 ChuÈn Hãa C¬ Së D÷ LIÖU

5.1 C¸c d¹ng chuÈn 5.1 C¸c d¹ng chuÈn 5.1 C¸c d¹ng chuÈn 5.1 C¸c d¹ng chuÈn

Môc ®Ých cña d¹ng chuÈn lµ lo¹i bá d− thõa d÷ liÖu mµ c¸c phô thuéc hµm cã thÓ g©y ra trong l−îc ®å c¬ së d÷ liÖu vµ nh÷ng bÊt th−êng x¶y ra khi thao t¸c d÷ liÖu (thªm, xãa d÷ liÖu).

C¸c d¹ng chuÈn ®−îc ®−a ra cã tÝnh thõa kÕ nh− sau:

D÷ liÖu th« ch−a chuÈn hãa (ban ®Çu) D¹ng chuÈn 1 D¹ng chuÈn 2 D¹ng chuÈn 3 D¹ng chuÈn 4

5.2 D¹ng chuÈn 1 : 1NF (Normal Form)5.2 D¹ng chuÈn 1 : 1NF (Normal Form)5.2 D¹ng chuÈn 1 : 1NF (Normal Form)5.2 D¹ng chuÈn 1 : 1NF (Normal Form)

• §Þnh nghÜa§Þnh nghÜa§Þnh nghÜa§Þnh nghÜa: Mét quan hÖ R ®−îc xem ë d¹ng chuÈn 1 nÕu vµ chØ nÕu tÊt c¶ thuéc tÝnh trong R ®Òu chøa c¸c gi¸ trÞ nguyªn tè (gi¸ trÞ kh«ng t¸ch ra ®−îc n÷a)

VÝ dô : Ta xÐt quan hÖ ng−êi cung cÊp b¸n c¸c mÆt hµng.

Page 73: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 73

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

S# PO P# OTY

S1 P1 P2 P3 P4 P5 P6

300 200 400 200 100 100

S2 P1 P2

300 400

S3 P2 200 S4 P2

P4 P5

200 300 400

S5 ⊥ (Null) ⊥

- R (S#, PO) kh«ng ph¶i lµ 1NF - NÕu lµ 1NF ph¶i t¸ch PQ → P#, QTY

• Nh−îc ®iÓm cña d¹ng 1NFNh−îc ®iÓm cña d¹ng 1NFNh−îc ®iÓm cña d¹ng 1NFNh−îc ®iÓm cña d¹ng 1NF

- Söa 1 m· ph¶i söa tÊt c¶ c¸c m· nªn tèn thêi gian. Cßn nÕu kh«ng söa hÕt th× m©u thuÉn d÷ liÖu. T−¬ng tù khi xãa th× ta ph¶i xãa tÊt c¶.

VÝ dô : Ng−êi cung cÊp mÆt hµng víi 1 sè l−îng, ng−êi cung cÊp ë 1 thµnh phè nµo ®ã vµ mçi thµnh phè chØ cã 1 chØ sè thµnh phè.

S# Status City P# Qty S1 S1 S1 S1 S1 S2 S2 S3 S4

20 20 20 20 20 10 10 10 20

London London London London London

Paris Paris Paris

London

P1 P2 P3 P4 P5 P1 P2 P3 P2

300 200 400 200 100 300 400 200 200

• Nguyªn nh©nNguyªn nh©nNguyªn nh©nNguyªn nh©n : : : : Cã c¸c thuéc tÝnh kh«ng khãa kh«ng phô thuéc hµm ®Çy ®ñ vµo khãa chÝnh.

Page 74: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 74

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

5.3 D¹ng chuÈn 2NF 5.3 D¹ng chuÈn 2NF 5.3 D¹ng chuÈn 2NF 5.3 D¹ng chuÈn 2NF

Nh¾c l¹i kh¸i niÖm phô thuéc hµm ®Çy ®ñ :

NÕu 1 thuéc tÝnh Y phô thuéc hµm ®Çy ®ñ vµo thuéc tÝnh X th× Y phô thuéc hµm vµo X vµ kh«ng phô thuéc hµm vµo tËp con bÊt kú nµo cña X.

QTY S# CITY P# Khãa Status

• §Þnh nghÜa:§Þnh nghÜa:§Þnh nghÜa:§Þ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 S1 S1 S1 S1 S2 S2 S3 S4

P1 P2 P3 P4 P5 P1 P2 P3 P2

300 200 400 200 100 300 400 200 200

S1 S2 S3 S4

20 10 10 20

London Paris Paris London

• Nh−îc ®iÓm Nh−îc ®iÓm Nh−îc ®iÓm 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 :Nguyªn nh©n :Nguyªn nh©n :Nguyªn nh©n :

Cã sù phô thuéc hµm b¾c cÇu vµo khãa chÝnh.

Page 75: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 75

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

5.4. D¹ng chuÈn 3NF5.4. D¹ng chuÈn 3NF5.4. D¹ng chuÈn 3NF5.4. D¹ng chuÈn 3NF

5.4.1 §Þnh nghÜa

Mét quan hÖ R ë d¹ng 3NF nÕu R ®· ë d¹ng chuÈn 2NF vµ mçi thuéc tÝnh kh«ng khãa kh«ng phô thuéc hµm b¾c cÇu vµo khãa chÝnh.

VÝ dô

S# CITY Status R21 R22

S# City City Status S1 S2 S3 S4

London Paris Paris London

London Paris

20 10

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ÓmNh−îc ®iÓmNh−îc ®iÓmNh−î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 Nguyªn nh©n Nguyªn nh©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 ®å ®ã.

Page 76: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 76

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

5.5. D¹ng chuÈn 3 : BCNF (Boyce Codd Normal Form) 5.5. D¹ng chuÈn 3 : BCNF (Boyce Codd Normal Form) 5.5. D¹ng chuÈn 3 : BCNF (Boyce Codd Normal Form) 5.5. D¹ng chuÈn 3 : BCNF (Boyce Codd Normal Form)

5.5.1 §Þnh nghÜa

Mét quan hÖ R ë d¹ng chuÈn BCNF nÕu mäi ®Þnh thuéc ®Òu lµ khãa.

Page 77: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 77

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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æ ®Ò 1Bæ ®Ò 1Bæ ®Ò 1Bæ ®Ò 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æ ®Ò 2Bæ ®Ò 2Bæ ®Ò 2Bæ ®Ò 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 BCNFGi¶i thuËt ph©n r· b¶o toµn th«ng tin thµnh d¹ng chuÈn BCNFGi¶i thuËt ph©n r· b¶o toµn th«ng tin thµnh d¹ng chuÈn BCNFGi¶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 ®å

Page 78: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 78

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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)

if R1 ≠ ∅ then Bæ sung R1 vµo ph©n r· ;

T := R2;

until R1 = ∅;

Bæ sung T vµo ph©n r· .

Ch−¬ng tr×nh con Decompose(T,R1,R2)

if T kh«ng chøa cÆp thuéc tÝnh{A,B}sao cho A ∈ (T -AB)+F Then

Tr¶ l¹i R1 := ∅; R2 := T; // T §· ë d¹ng BCNF

else Begin

Chän ra cÆp {A,B} nh− vËy; // A ∈ (T -AB)+F

R1 := T -B; // R1 = XA vµ tho¶ X ->A nh−ng ch−a ch¾c ë BCNF

While R1 cßn chøa cÆp thuéc tÝnh{A,B}sao cho A ∈ (T -AB)+F Do

R1 := R1 - B;

Return R1, R2 := T-A;

end;

VÝ dô: XÐt l−îc ®å quan hÖ R(CTHRSG) vµ tËp phô thuéc hµm F F = {C -> T, CS ->G, HR -> C, HS -> R, HT -> R}

Page 79: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 79

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

5.6 D¹ng chuÈn 4NF :5.6 D¹ng chuÈn 4NF :5.6 D¹ng chuÈn 4NF :5.6 D¹ng chuÈn 4NF :

5.6.1 Phô thuéc ®a trÞ

Mét thuéc tÝnh X x¸c ®Þnh ®a trÞ thuéc tÝnh Y ký hiÖu lµ X —» Y ë trong R nÕu víi mäi r cña R (r lµ 1 minh häa) vµ 2 bé µ vµ ν ë trong r víi µ[x] = ν[x] th× trong R còng cã 2 bé lµ φ, ψ sao cho tho¶ m·n ®ång thêi 3 ®iÒu kiÖn sau :

1 φ [x] = ψ [x] = µ [x] 2 φ [x] = µ [x] vµ φ [R-X-Y] = γ [R-X-Y] 3 ψ [Y] = ν [Y] vµ ψ [R-X-Y] = µ [R-X-Y]

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ªn th× 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

µ ν φ ψ

Page 80: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 5 ChuÈn Ho¸ C¬ Së D÷ LiÖu Trang 80

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

5.6.2 D¹ng chuÈn 4NF

Qui t¾c: Mét quan hÖ R ë d¹ng chuÈn 4NF nÕu vµ chØ nÕu thuéc tÝnh B phô thuéc ®a trÞ vµo thuéc tÝnh A th× c¸c thuéc tÝnh cßn l¹i cña R phô thuéc hµm vµo A.

R (MH , GV , GT) R1 (MH , GV) R2 (MH , GT)

MH GV MH GT Physics Physics

Green Brown

Physics Physics

Basic mechanic Principle of optics

Page 81: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 81

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

ch−¬ng 6 TÝnh toµn vÑn d÷ liÖuch−¬ng 6 TÝnh toµn vÑn d÷ liÖuch−¬ng 6 TÝnh toµn vÑn d÷ liÖuch−¬ng 6 TÝnh toµn vÑn d÷ liÖu

§Ó 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 Rµng buéc toµn vÑn (Integrity Constraints)6.1 Rµng buéc toµn vÑn (Integrity Constraints)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".

∀sv ∈ Tsinhvien , ∀sv2 ∈ Tsinhvien

sv1 < > sv2 -> sv1. MASV < > sv2. MASV

Cuèi ∀

R2 :"Mçi sv ph¶i ®¨ng ký vµo 1 khoa cña tr−êng".

π MAKHOA (sinhvien ) ⊆ π MAKHOA(khoa)

R3 : "Mçi sv chØ cã thÓ thi tèi ®a 2 lÇn cho mçi m«n häc".

∀sv ∈ Tsinhvien

Card (σMASV = SV.MASV ∧ MAMH=’X’ (KETQUA)) ≤ 2.

Cuèi ∀

• Bèi c¶nh

Page 82: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 82

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

• B¶ng tÇm ¶nh h−ëng

Nh»m x¸c ®Þnh thêi ®iÓm cÇn kiÓm tra c¸c rµng buéc trän vÑn ®ã ®/v ba thao t¸c thªm , söa , xo¸.

Quy −íc : DÊu + cÇn kiÓm tra rµng buéc toµn vÑn R.

DÊu - kh«ng cÇn kiÓm tra rµng buéc toµn vÑn R.

VÝ dô: C¸c b¶ng tÇm ¶nh h−ëng t−¬ng øng víi c¸c rµng buéc toµn vÑn trªn.

R1 Thªm Xo¸ Söa

Tsinhvien + -

*

DÊu (*) Quy −íc kh«ng ®−îc söa m· khoa.

R2 Thªm Xo¸ Söa

Tkhoa - + * Tsinhvien + - +

R3 Thªm Xo¸ Söa

Tketqua + - *

(*) Quy −íc kh«ng ®−îc söa MASV, MAMH.

B¶ng tÇm ¶nh h−ëng tæng hîp cña 3 rµng buéc toµn vÑn trªn nh− sau:

Page 83: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 83

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Rµng buéc Tsinhvien Tkhoa Tketqua toµn vÑn T S X T S X T S X

R1 + * - R2 + + - - * + R3 + * -

• 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 vÒ miÒn gi¸ trÞ :

VÝ dô: Trong l−îc ®å quan hÖ Ketqua, ta cã MGT (DIEM) = [0, 10]

§iÓm cã ®é chÝnh x¸c = 0.25 ∀ kq ∈ Tketqua (kq DIEM *4) mod 2 = 1 Cuèi ∀

NHANVIEN(MANV, MUCLUONG, NG_XEP_LG)

Gäi f lµ phÐp söa ®æi l−¬ng (ngµy xÕp l−¬ng vµ møc l−¬ng).

f : Tnhanvien -> Tnhanvien.

Ta cã : ∀nv ∈ Tnhanvien nv. NGXEP_LG < f (nv). NG_XEP_LG.

Cuèi ∀

• Rµng buéc toµn vÑn liªn thuéc tÝnh

Page 84: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 84

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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

card (πmasv(Sinhvien)) = card (Sinhvien)

VÝ dô: Rµng buéc toµn vÑn trªn quan hÖ MUONSACH cña mét ®éc gi¶ lµ kh«ng ®−îc m−în qu¸ 5 quyÓn s¸ch

MUONSACH(Madg,Masach,ngmuon,ngtra)

∀m ∈T Muonsach card(σmadg=m.madg(Muonsach))<= 5 Cuèi ∀

6.1.3.2 Rµng buéc cã bèi c¶nh gåm nhiÒu quan hÖ

• Rµng buéc toµn vÑn vÒ phô thuéc tån t¹i.

Rµng buéc toµn vÑn vÒ phô thuéc tån t¹i cßn ®−îc gäi lµ rµng buéc vÒ kho¸ ngo¹i

VÝ dô: Tketqua , sù tån t¹i cña 1 bé.

Kq = (masv1 , mamh1 , lanthi1 , diem ) ∈ Tketqua

Page 85: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 85

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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].

TËp hîp KQ gäi lµ kho¸ ngo¹i cña R.

• Rµng buéc toµn vÑn liªn bé liªn quan hÖ

Rµng buéc toµn vÑn liªn bé liªn quan hÖ cã t¸c dông ®èi víi tõng nhãm c¸c bé cña nhiÒu quan hÖ kh¸c nhau mµ th«ng th−êng lµ 2 quan hÖ.

VÝ dô: XÐt 2 l−îc ®å quan hÖ sau:

DOCGIA(madg,tendg,diachi,sosachmuon,ngaydk) MUONSACH(madg,mash,ngmuon,ngtra)

Ta cã rµng buéc sè s¸ch m−în cña mét ®éc gi¶ ph¶i b»ng sè bé trong MUONSACH cã cïng m· ®éc gi¶ ®ã mµ ngµy tr¶ lµ NULL

∀d ∈ Tdocgia d.sosachmuon = card(σmadg=d.madg(MUONSACH)) cuèi ∀

• Rµng buéc toµn vÑn liªn thuéc tÝnh liªn quan hÖ

Rµng buéc toµn vÑn liªn thuéc tÝnh liªn quan hÖ lµ rµng buéc toµn vÑn gi÷a c¸c thuéc tÝnh trong nhiÒu quan hÖ.

VÝ dô: Ta xÐt rµng buéc toµn vÑn ngµy m−în s¸ch ph¶i lín h¬n hoÆc b»ng ngµy ®¨ng ký.

Page 86: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 86

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

∀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 >) CREATE ASSERTION <tªn rµng buéc toµn vÑn > CHECK ( <®iÒu kiÖn >) CREATE ASSERTION <tªn rµng buéc toµn vÑn > CHECK ( <®iÒu kiÖn >) 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>DROP ASSERTION < tªn rµng buéc toµn vÑn>DROP ASSERTION < tªn rµng buéc toµn vÑn>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.

Page 87: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 87

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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.

Page 88: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 88

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

6.2 Ph©n quyÒn truy xuÊt6.2 Ph©n quyÒn truy xuÊt6.2 Ph©n quyÒn truy xuÊt6.2 Ph©n quyÒn truy xuÊt

ViÖc ph©n quyÒn truy xuÊt lµ do ng−êi qu¶n trÞ c¬ së d÷ liÖu quyÕt ®Þnh. Nã bao gåm viÖc t¹o ra quyÒn account cho mét ng−êi sö dông (user name vµ password) vµ c¸c quyÒn truy xuÊt cho ng−êi ®ã:

- QuyÒn truy vÊn trªn mét b¶ng.

- QuyÒn t¹o mét b¶ng míi , xo¸ b¶ng, thay ®æi b¶ng.

- QuyÒn chÌn, cËp nhËt vµ xo¸.

Trong SQL ph¸t biÓu GRANT vµ REVOKE ®−îc dïng ®Ó cÊp quyÒn vµ t−íc quyÒn truy xuÊt cña mét user.

Có ph¸p:

GRANT <quyÒn> ON <®èi t−îng> TO <users> [WITH GRANT OPTION] GRANT <quyÒn> ON <®èi t−îng> TO <users> [WITH GRANT OPTION] GRANT <quyÒn> ON <®èi t−îng> TO <users> [WITH GRANT OPTION] GRANT <quyÒn> ON <®èi t−îng> TO <users> [WITH GRANT OPTION]

§èi t−îng th−êng lµ b¶ng.

MÖnh ®Ò WITH GRANT OPTION ®Ó cho phÐp users cã quyÒn cÊp quyÒn truy xuÊt cho user kh¸c.

REVOKE [GRANT OPTION FOR] <quyÒn> ON <®èi t−îng> FROM REVOKE [GRANT OPTION FOR] <quyÒn> ON <®èi t−îng> FROM REVOKE [GRANT OPTION FOR] <quyÒn> ON <®èi t−îng> FROM REVOKE [GRANT OPTION FOR] <quyÒn> ON <®èi t−îng> FROM <users> <users> <users> <users> { RESTRICT | CASCADE}{ RESTRICT | CASCADE}{ RESTRICT | CASCADE}{ RESTRICT | CASCADE}

MÖnh ®Ò GRANT OPTION FOR chØ t−íc bá quyÒn cÊp quyÒn truy xuÊt cho user kh¸c.

Tõ kho¸ CASCADE dïng ®Ó xo¸ quyÒn cña user ®ã vµ c¸c users kh¸c mµ user ®ã ®· cÊp quyÒn.

Tõ kho¸ RESTRICT dïng ®Ó chØ xo¸ quyÒn cña user ®ã mµ th«i.

VÝ dô: User U1:

GRANT SELECT ON TABLE S TO U2 WITH GRANT OPTION

User U2:

GRANT SELECT ON TABLE S TO U3 WITH GRANT OPTION

User U3:

Page 89: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 6 TÝnh Toµn VÑn D÷ LiÖu Trang 89

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

GRANT SELECT ON TABLE S TO U4 WITH GRANT OPTION

User U1

REVOKE SELECT ON TABLE TO U2 CASCADE

Lóc ®ã U2, U3, U4 sÏ bÞ mÊt quyÒn SELECT trªn b¶ng S

User U1

REVOKE SELECT ON TABLE TO U2 RESTRICT

Lóc ®ã chØ cã U2 mÊt quyÒn SELECT

Page 90: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 90

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

Ch−¬ng 7 Phôc håi d÷ liÖu vµ tÝnh nguyªn tèCh−¬ng 7 Phôc håi d÷ liÖu vµ tÝnh nguyªn tèCh−¬ng 7 Phôc håi d÷ liÖu vµ tÝnh nguyªn tèCh−¬ng 7 Phôc håi d÷ liÖu vµ tÝnh nguyªn tè

7.1 Ph©n lo¹i háng hãc7.1 Ph©n lo¹i háng hãc7.1 Ph©n lo¹i háng hãc7.1 Ph©n lo¹i háng hãc

7.1.1 C¸c lo¹i l−u tr÷

C¸c lo¹i l−u tr÷ truyÒn thèng ®−îc ph©n biÖt bëi tèc ®é, dung l−îng vµ kh¶ n¨ng phôc håi háng hãc. Chóng ®−îc ph©n lo¹i nh− sau:

• L−u tr÷ biÕn ®éng:

_ L−u tr÷ vµo bé nhí chÝnh _ Kh¶ n¨ng truy xuÊt nhanh _ Kh«ng thÓ cøu l¹i th«ng tin nÕu hÖ thèng cã sù cè

• L−u tr÷ bÊt biÕn:

_ L−u tr÷ trªn ®Üa hoÆc b¨ng tõ _ §Üa cã ®é tin cËy h¬n bé nhí chÝnh nh−ng kÐm h¬n b¨ng tõ.

_ Th«ng tin vÉn tån t¹i vµ cã thÓ cøu ®−îc khi hÖ thèng cã sù cè. _ Nã lµ ®èi t−îng háng hãc g©y nªn sù mÊt m¸t th«ng tin

_ Tèc ®é truy xuÊt chËm h¬n bé nhí chÝnh.

• L−u tr÷ v÷ng ch¾c:

_ Th«ng tin chøa trªn kiÓu l−u tr÷ æn ®Þnh kh«ng bao giê (æn ®Þnh) bÞ mÊt.

_ Nh©n b¶n (d÷ liÖu) th«ng tin vµo nhiÒu ®Üa l−u tr÷.

7.1.2 C¸c kiÓu háng hãc .

_ Lçi luËn lý : Giao t¸c kh«ng thÓ tiÕp tôc do 1 sè ®iÒu kiÖn nh− d÷ liÖu nhËp sai, d÷ liÖu kh«ng t×m thÊy, trµn, giíi h¹n tµi nguyªn ...

_ Lçi hÖ thèng : HÖ thèng ®i vµo 1 tr¹ng th¸i kh«ng mong muèn nh− deadlock (kho¸ chÕt). KÕt qu¶ lµ giao t¸c kh«ng thÓ tiÕp tôc. Tuy nhiªn hÖ thèng cã thÓ ®−îc thùc thi l¹i sau 1 thêi gian.

_ HÖ thèng háng : MÊt th«ng tin trong bé nhí chÝnh nh−ng trong ®Üa cßn nguyªn.

_ Háng ®Üa : MÊt th«ng tin trªn ®Üa.

7.2 Sù ph©n cÊp l−u tr÷.7.2 Sù ph©n cÊp l−u tr÷.7.2 Sù ph©n cÊp l−u tr÷.7.2 Sù ph©n cÊp l−u tr÷.

- HÖ CSDL th−êng tró trªn ®Üa. CSDL ®−îc ph©n chia vµo c¸c ®¬n vÞ l−u tr÷ kÝch th−íc cè ®Þnh ®−îc gäi lµ blocks.

Page 91: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 91

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

- 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.

H×nh 7.1C¸c phÐp to¸n l−u tr÷ khèi

- 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 If If 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:

A

B

A

B

Input A

Input B

Disk Main memory

Page 92: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 92

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

1/ IfIfIfIf 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.7.3 M« h×nh giao t¸c.7.3 M« h×nh giao t¸c.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

Page 93: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 93

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

_ Bé nhí chÝnh chøa buffer block cña A nh−ng kh«ng cã B. _ Sù cè x¶y ra sau khi output (A) ®· thùc hiÖn nh−ng output(B) ch−a thùc hiÖn.

7.3.2 TÝnh ®óng ®¾n vµ tÝnh nguyªn tè.

Ø TÝnh ®óng ®¾n : Mçi 1 giao t¸c ph¶i lµ 1 ch−¬ng tr×nh b¶o vÖ tÝnh nhÊt qu¸n d÷ liÖu.

Ø 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.

• Active : tr¹ng th¸i khëi ®éng.

Page 94: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 94

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• 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.

• Committed : sau khi giao t¸c hoµn thµnh tèt

Sù chuyÓn ®æi gi÷a c¸c tr¹ng th¸i ®−îc minh häa bëi h×nh 7.5

Partially committed committed active killed ransaction failed aborted restart transaction

H×nh 7.2 S¬ ®å tr¹ng th¸i cña mét giao t¸c

7.4 Phôc håi dùa vµo nhËt ký (Lo7.4 Phôc håi dùa vµo nhËt ký (Lo7.4 Phôc håi dùa vµo nhËt ký (Lo7.4 Phôc håi dùa vµo nhËt ký (Log g g g ---- based recovery) based recovery) based recovery) based recovery)

_ Trë l¹i vÝ dô 7.3.1. Khi ®ã néi dung trong bé nhí bÞ mÊt, cã 2 kh¶ n¨ng phôc håi c¸c thñ tôc:

* Thùc thi l¹i T : §iÒu nµy sÏ cã kÕt qu¶ gi¸ trÞ A lµ 900 h¬n 950. V× thÕ hÖ thèng chuyÓn vµo tr¹ng th¸i kh«ng nhÊt qu¸n.

* Kh«ng thùc thi l¹i T: Tr¹ng th¸i hiÖn t¹i cña hÖ thèng A = $950 , B = $2000. V× thÕ hÖ thèng chuyÓn vµo tr¹ng th¸i kh«ng nhÊt qu¸n.

_ §Ó thùc thi tÝnh nguyªn tè cña giao t¸c nh−ng còng ph¶i ghi nhËn l¹i c¸c thay ®æi trong bé l−u tr÷ æn ®Þnh chø kh«ng vµo c¬ së d÷ liÖu tøc lµ vµo nhËt ký.

7.4.1 NhËt ký c¬ së d÷ liÖu .

_ Mçi thay ®æi trong c¬ së d÷ liÖu ®−îc ghi nhËn trong nhËt ký. Mçi bé (mÉu tin) nhËt ký m« t¶ 1 thao t¸c ghi vµo c¬ së d÷ liÖu vµ cã c¸c tr−êng sau :

Page 95: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 95

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• Tªn giao t¸c. • Tªn mÉu d÷ liÖu. • Gi¸ trÞ cò. • Gi¸ trÞ míi.

_ Mét mÉu tin ®Æc biÖt kh¸c ghi nhËn c¸c sù kiÖn trong suèt qu¸ tr×nh xö lý giao t¸c tõ khi b¾t ®Çu giao t¸c ®Õn khi giao t¸c ®−îc commit hoÆc abort. Cã nhiÒu lo¹i mÉu tin nhËt ký nh− sau:

* < Ti start >.

* < Ti , X1 ,V1 ,V2 > Xj mÉu d÷ liÖu , V1 gi¸ trÞ cò , V2 gi¸ trÞ míi

* < Ti commit >

7.4.2 Kü thuËt thay ®æi CSDL ®−îc ho·n l¹i (Deferred database modification)

Kü thuËt ho·n thay ®æi d÷ liÖu b¶o ®¶m tÝnh nguyªn tè giao t¸c b»ng c¸ch ghi nhËn sù thay ®æi CSDL trong 1 nhËt ký, Sù ho·n l¹i thùc thi cña ∀ phÐp to¸n ghi (write) cña giao t¸c cho ®Õn khi giao t¸c x¸c nhËn tõng phÇn partially commit.

Khi 1 giao t¸c ®−îc partially commit , th«ng tin trªn nhËt ký g¾n liÒn víi giao t¸c ®−îc sö dông ®Ó thùc thi c¸c lÖnh write bÞ ho·n l¹i. NÕu hÖ thèng bÞ háng tr−íc khi giao t¸c hoµn tÊt c¸c lÖnh thùc thi cña nã hoÆc giao t¸c bÞ aborts th× th«ng tin trªn nhËt ký ®−îc bá qua.

Sù thùc thi 1 thao t¸c diÔn ra nh− sau:

_ Tr−íc khi Ti b¾t ®Çu thùc thi c¸c lÖnh cña nã, 1 mÉu tin < Ti start > ®−îc ghi vµo nhËt ký.

_ 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

Page 96: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 96

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

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 >

2050B950Aoutput

=

= →←

< T1 starts > < T1 , C , 600 > < T1 commits >

600Coutput = →←

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 )

NhËt ký: ><

><

><

2050,B,T950,A,T

startsT

o

o

o

kh«ng cã commit → kh«ng phôc håi

Gi¶ sö hÖ thèng háng sau mÉu tin nhËt ký write (C , C1 )

Page 97: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 97

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

><

><

><

><

commitsT

BT

AT

startsT

o

o

o

o

2050,,

950,,

,

phÐp to¸n redo (To) → < To commits >

< T1 starts > < T1 , C, 600 >

7.4.3 Kü thuËt thay ®æi c¬ së d÷ liÖu tøc kh¾c

Kü thuËt thay ®æi c¬ së d÷ liÖu tøc kh¾c cho phÐp c¸c thay ®æi trong c¬ së d÷ liÖu ®−îc ghi vµo c¬ së d÷ liÖu ngay khi giao t¸c cßn trong tr¹ng th¸i active. C¸c thay ®æi c¬ së d÷ liÖu ®−îc ghi bëi c¸c giao t¸c active ®−îc gäi lµ c¸c thay ®æi ch−a ®−îc x¸c nhËn. Khi cã sù cè x¶y ra hoÆc khi giao t¸c bÞ thÊt b¹i, tr−êng chøa gi¸ trÞ cò trong c¸c mÉu tin c¬ së d÷ liÖu ®−îc m« t¶ ë phÇn 7.4.1 ®−îc sö dông ®Ó phôc håi c¸c mÉu d÷ liÖu bÞ thay ®æi trë vÒ gi¸ trÞ ban ®Çu. §iÒu nµy ®−îc th−c hiÖn bëi phÐp to¸n UNDO .

Tr−íc khi mét giao t¸c Ti b¾t ®Çu thùc thi, mét mÉu tin <Ti start> ®−îc ghi vµo nhËt ký. Trong qu¸ tr×nh thùc thi, bÊt kú phÐp to¸n write(X,xj) trong Ti th× mét mÉu tin míi t−¬ng øng ®−îc ghi vµo nhËt ký. Khi Ti partially commit, th× mét mÉu tin <Ti commit> ®−îc ghi vµo nhËt ký.

Bëi th«ng tin trong nhËt ký ®−îc sö dông ®Ó phôc håi l¹i tr¹ng th¸i cña c¬ së d÷ liÖu, nªn kh«ng cho phÐp mét cËp nhËt vµo c¬ së d÷ liÖu ®−îc thùc hiÖn tr−íc khi mét mÉu tin nhËt ký t−¬ng øng ®· ®−îc ghi vµo bé l−u tr÷ æn ®Þnh. V× thÕ chóng ta ph¶i −u tiªn ghi mÉu tin lªn nhËt ký tr−íc khi thùc hiÖn phÐp to¸n output(X) t−¬ng øng.

VÝ dô: Sö dông l¹i vÝ dô ë phÇn 7.4.3 ta cã c¸c mÉu tin nhËt ký sau:

< To starts > < To , A , 1000,950 >

< To , B ,2000, 2050 >2050B950Aoutput

=

= →←

< To commits > < T1 starts > < To , C , 700, 600 > 600Coutput = →← < T1 commits >

Nhê vµo nhËt ký, hÖ thèng cã thÓ kh¾c phôc bÊt kú háng hãc nµo dÉn ®Õn sù mÊt m¸t th«ng tin trªn ®Üa. ViÖc phôc håi d÷ liÖu sö dông hai thñ tôc asu:

Kh«ng thùc hiÖn redo

Page 98: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 98

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• 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 )

NhËt ký: ><

><

><

2050,2000,,

950,1000,,

BT

AT

startsT

o

o

o

kh«ng cã commit → phôc håi b»ng undo

Gi¶ sö hÖ thèng háng sau mÉu tin nhËt ký write (C , C1 )

><

><

><

><

commitsT

BT

AT

startsT

o

o

o

o

2050,2000,,

950,1000,,

< T1 starts >

< T1 , C , 700, 600 >

7.4.4 §iÓm kiÓm tra (check point)

Khi mét háng hãc hÖ thèng x¶y ra th× cÇn ph¶i tham kh¶o nhËt ký ®Ó x¸c ®Þnh c¸c giao t¸c nµo cÇn ph¶i redo hoÆc undo. VÒ nguyªn t¾c, toµn bé nhËt ký ®−îc dïng ®Ó x¸c ®Þnh c¸c giao t¸c nµy. §iÒu nµy cã hai khã kh¨n:

Cã c¶ starts, commit -> thùc hiÖn redo T0

Kh«ng cã commit -> undo T1

Page 99: Giáo trình Cơ Sở Dữ Liệu

Ch−¬ng 7 Phôc Håi D÷ LiÖu vµ TÝnh Nguyªn Tè Trang 99

K ho a CNTT 2 N¨ m 2 00 0 B µ i G i ¶ ng C¬ Së D÷ L i Ö u

• Qu¸ tr×nh t×m kiÕm sÏ tèn thêi gian

• 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 tÊt c¶ c¸c buffer blocks bÞ thay ®æi vµo ®Üa.

• 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)

Page 100: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 100

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

BBBBµi tËp tæng hîp µi tËp tæng hîp µi tËp tæng hîp µi tËp tæng hîp ---- ®Ò thi mÉu ®Ò thi mÉu ®Ò thi mÉu ®Ò thi mÉu

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 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 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 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Õty hµng kh«ng d©n dông quèc tÕty hµng kh«ng d©n dông quèc tÕ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.

Page 101: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 101

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

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Þ 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Þ 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Þ 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:sau:sau:sau:

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.

Lo¹i mÆt hµng

Gåm

QuÇy hµng

Gi¸ù

Phôc vô

Nh©n viªn

Tr−ëng QuÇy

Phô tr¸ch

Bµy b¸n

MÆt hµng

Baùn

§−îc mua

Sè l−îng Ngµy

Isa

Page 102: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 102

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

- 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 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 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 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 viÖn sau viÖn sau 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Ý.

Page 103: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 103

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

- 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 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 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 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 ®¹i häc ®¹i häc ®¹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.

Page 104: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 104

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

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 Bµi 5 Bµi 5 Bµi 5 TTTThiÕt kÕ m« h×nh d÷ liÖu quan niÖm qu¶n lý th− viªnhiÕt kÕ m« h×nh d÷ liÖu quan niÖm qu¶n lý th− viªnhiÕt kÕ m« h×nh d÷ liÖu quan niÖm qu¶n lý th− viªnhiÕ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ñ.

Page 105: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 105

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

- 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.

Page 106: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 106

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

®Ò thi m«n c¬ së d÷ liÖu®Ò thi m«n c¬ së d÷ liÖu®Ò thi m«n c¬ së d÷ liÖu®Ò thi m«n c¬ së d÷ liÖu

Líp C98 A1 + C98 A4Líp C98 A1 + C98 A4Líp C98 A1 + C98 A4Líp C98 A1 + C98 A4

Thêi gian 120 phót

C©u 1: Cho mét thÓ hiÖn cña l−îc ®å quan hÖ sau:

R(A B C D E) a1 b1 c1 d1 e1 a1 b2 c1 d2 e1 a2 b1 c2 d3 e1 a2 b1 c2 d1 e1 a3 b2 c2 d2 e2

1. Cho biÕt c¸c phô thuéc hµm nµo sau ®©y tho¶ r? Gi¶i thÝch b»ng thuËt to¸n. A -> B, AB -> C, BC -> D 2. Tr×nh bµy gi¶i thuËt ph¸t hiÖn khãa dùa trªn thÓ hiÖn cña r. Cho biÕt c¸c khãa cã thÓ cã cña r.

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µng 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 nhau. ]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)

Page 107: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 107

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

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.

Page 108: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 108

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

®Ò thi m«n c¬ së d÷ liÖu®Ò thi m«n c¬ së d÷ liÖu®Ò thi m«n c¬ së d÷ liÖu®Ò thi m«n c¬ së d÷ liÖu

Líp C98 A2 + C98 A3Líp C98 A2 + C98 A3Líp C98 A2 + C98 A3Líp C98 A2 + C98 A3

Thêi gian 120 phót

C©u 1: Cho F = { AB -> C, B -> D, CD -> E, CE -> GH, G -> A, D -> C }

1. Chøng minh BG -> H b»ng hÖ tiªn ®Ò Armstrong

2. Cho biÕt gi¶i thuËt REPUGNANT(G) víi G lµ tËp phô thuéc hµm sau cã cho ra ®−îc phñ tèi thiÓu kh«ng? Gi¶i thÝch?

REPUGNANT(G)

begin

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)

Page 109: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 109

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

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.

Page 110: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 110

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

§Ò sè 1

®Ò thi tèt nghiÖp m«n c¬ së d÷ liÖu®Ò thi tèt nghiÖp m«n c¬ së d÷ liÖu®Ò thi tèt nghiÖp m«n c¬ së d÷ liÖu®Ò thi tèt nghiÖp m«n c¬ së d÷ liÖu

Líp Trung CÊp Tin Häc KLíp Trung CÊp Tin Häc KLíp Trung CÊp Tin Häc KLíp Trung CÊp Tin Häc Kho¸ 1ho¸ 1ho¸ 1ho¸ 1

C©u 1 ChuÈn hãa vµ rµng buéc toµn vÑn c¬ së d÷ liÖu

Cho c¬ së d÷ liÖu qu¶n lý s¶n xuÊt cña c¸c c«ng nh©n trong nhµ m¸y :

1. CONGNHAN(MACN,HOTENCN,DIACHI,SOTO,MAMAY)

MACN ®−îc dïng ®Ó ph©n biÖt c¸c c«ng nh©n. Mçi c«ng nh©n cã hä tªn

(HOTEN), ®Þa chØ x¸c ®Þnh (DIACHI) vµ thuéc mét tæ (SOTO). Mçi c«ng nh©n ®−îc giao phô tr¸ch lu«n mét m¸y nh−ng mét m¸y ®−îc nhiÒu c«ng nh©n phô tr¸ch tïy theo ca lµm viÖc cña hä.

2. LUONG(MACN,HOTENCN,LUONG,THANG)

L−¬ng c«ng nh©n (MACN) cã hä tªn (HOTENCN) ®−îc tÝnh theo kho¸n s¶n phÈm vµ ®−îc tr¶ vµo cuèi th¸ng (THANG).

3. TO(SOTO,TOTRUONG,SOTOVIEN).

SOTO cho biÕt sè cña tæ ®−îc dïng ®Ó ph©n biÖt c¸c tæ. Mçi tæ cã mét tæ tr−ëng (TOTRUONG) còng lµ c«ng nh©n trong tæ. SOTOVIEN cho biÕt sè tæ viªn trong tæ.

4. SANXUAT(MACN,MAMAY,MASP,NGAY,CA,SOLUONGSP)

Quan hÖ SANXUAT cho biÕt c«ng nh©n (MACN) ®øng ë m¸y (MAMAY) trong ca (CA) lµm viÖc cña ngµy (NGAY) ®· thùc hiÖn s¶n phÈm (masp) víi sè l−îng s¶n phÈm lµ (SOLUONGSP).

5. DINHMUC(MAMAY,MASP,TENSANPHAM,CHITIEU)

Page 111: Giáo trình Cơ Sở Dữ Liệu

Bµi TËp Tæng Hîp Trang 111

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

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?

Page 112: Giáo trình Cơ Sở Dữ Liệu

Tµi LiÖu Tham Kh¶o Trang 112

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

tµi liÖu tham kh¶otµi liÖu tham kh¶otµi liÖu tham kh¶otµi liÖu tham kh¶o

1. Database System Concepts Henry F.Korth 1991 Sö dông trong c¸c ch−¬ng 1, 2, 3, 4, 7

2. Gi¸o tr×nh nhËp m«n c¬ së d÷ liÖu NguyÔn An TÕ (§H KHTN)1996 Sö dông trong c¸c ch−¬ng 2, 4, 5,6

3. Guide to The SQL Standard C. J. Date 1993 Sö dông trong c¸c ch−¬ng 3, 6

4. Nguyªn lý c¸c hÖ c¬ së d÷ liÖu TËp 2 J. D. Ullman 1999 Sö dông trong ch−¬ng 4

5. The Theory of relational databases David Maier 1983 Sö dông trong ch−¬ng 4

Page 113: Giáo trình Cơ Sở Dữ Liệu

Môc Lôc Trang 113

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

môc lôcmôc lôcmôc lôcmôc lôc

Ch−¬ng 1 : §¹i c−¬ng vÒ c¸c hÖ c¬ së d÷ liÖu 1

1.1 Kh¸i niÖm vÒ c¬ së d÷ liÖu (Database)..............................................................1

1.1.1Kh¸i niÖm vÒ c¬ së d÷ liÖu ..........................................................................1

1.1.2 Môc ®Ých cña c¸c hÖ c¬ së d÷ liÖu..............................................................1

1.2 KiÕn tróc cña mét hÖ thèng c¬ së d÷ liÖu..........................................................4

1.3 HÖ qu¶n trÞ c¬ së d÷ liÖu (Database Management System : DBMS).................6

1.3.1 Kh¸i niÖm....................................................................................................6

1.3.2 C¸c chøc n¨ng cña hÖ qu¶n trÞ c¬ së d÷ liÖu...............................................6

1.3.3 Kh¸i niÖm vÒ sù ®éc lËp d÷ liÖu vµ ch−¬ng tr×nh .......................................9

1.3.4 Bé qu¶n lý c¬ së d÷ liÖu..............................................................................9

1.3.5 Ng−êi qu¶n trÞ c¬ së d÷ liÖu......................................................................10

1.3.6 Nh÷ng ng−êi sö dông c¬ së d÷ liÖu ..........................................................10

1.3.7 CÊu tróc tæng qu¸t cña hÖ thèng qu¶n trÞ c¬ së d÷ liÖu ............................10

Ch−¬ng 2 C¸c M« H×nh D÷ LiÖu 13

2.1 M« h×nh d÷ liÖu (data model)..........................................................................13

2.1.1 C¸c m« h×nh d÷ liÖu (Data models) ..........................................................13

2.1.2 C¸c m« h×nh logic dùa trªn ®èi t−îng (Object-Based logical models).....13

2.1.3 C¸c m« h×nh dùa trªn mÉu tin (Record-Based Logical Models) ..............15

2.2 M« h×nh thùc thÓ mèi liªn kÕt (Entity Relationship Model)..........................18

2.2.1 Thùc thÓ (Entity).......................................................................................18

2.2.2 TËp thùc thÓ (Entity set) : .........................................................................19

2.2.3 C¸c thuéc tÝnh vµ c¸c kho¸ : .....................................................................19

2.2.4 HÖ ph©n cÊp isa hay sù tæng qu¸t ho¸ - chuyªn biÖt hãa..........................19

2.2.5 Mèi liªn kÕt...............................................................................................20

Page 114: Giáo trình Cơ Sở Dữ Liệu

Môc Lôc Trang 114

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

2.2.6 S¬ ®å thùc thÓ mèi liªn kÕt ......................................................................21

2.2.7 TÝnh hµm cña mèi liªn kÕt ........................................................................24

2.2.8 VÝ dô vÒ s¬ ®å thùc thÓ mèi liªn kÕt (ERD) .............................................26

2.3 M« h×nh d÷ liÖu quan hÖ. ................................................................................28

2.3.1 C¸c kh¸i niÖm c¬ b¶n................................................................................28

2.3.2 Sù chuyÓn hãa tõ s¬ ®å ER sang m« h×nh d÷ liÖu quan hÖ......................30

2.3.3 C¸c phÐp to¸n ®¹i sè trong m« h×nh d÷ liÖu quan hÖ................................34

2.2.4 ThiÕt kÕ c¬ së d÷ liÖu quan hÖ .................................................................41

Ch−¬ng 3 Ng«n Ng÷ SQL 47

3.1 Giíi thiÖu :.......................................................................................................47

3.2 Ng«n ng÷ ®Þnh nghÜa d÷ liÖu (Data Definition Language DLL).....................47

3.2.1 T¹o cÊu tróc b¶ng......................................................................................47

3.2.2 Thay ®æi cÊu tróc b¶ng .............................................................................48

3.2.3 Hñy bá mét b¶ng ......................................................................................49

3.2.4. T¹o khung nh×n (view).............................................................................49

3.2.5 Xo¸ khung nh×n.........................................................................................49

3.3 Ng«n ng÷ thao t¸c d÷ liÖu (Data Manupilation Language DML)...................49

3.3.1 Thªm bé míi vµo quan hÖ.........................................................................49

3.3.2 CËp nhËt: ...................................................................................................49

3.3.3 Hñy bá c¸c bé: ..........................................................................................50

3.4 Nhóng ng«n ng÷ SQL trong ng«n ng÷ chñ .....................................................56

3.5 Ng«n ng÷ ®iÒu khiÓn d÷ liÖu (Data Control Language)..................................56

Ch−¬ng 4 Phô Thuéc Hµm 58

4.1 Phô Thuéc hµm (Functional Dependency)......................................................58

4.1.1§Þnh nghÜa phô thuéc hµm (FD)................................................................58

4.1.2 §Þnh nghÜa phô thuéc hµm ®Çy ®ñ (Full Functional Dependency "FFD")...........................................................................................................................58

Page 115: Giáo trình Cơ Sở Dữ Liệu

Môc Lôc Trang 115

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

4.1.3 MÖnh ®Ò ....................................................................................................58

4.1.4 Gi¶i thuËt kiÓm tra phô thuéc hµm ..........................................................58

4.1.5 TËp phô thuéc hµm ...................................................................................59

4.1.6 BiÓu diÔn tËp phô thuéc hµm b»ng ®å thÞ cã h−íng. ................................60

4.2 HÖ luËt dÉn ARMSTRONG ............................................................................60

4.3 Bao §ãng.........................................................................................................61

4.3.1 §Þnh nghÜa phô thuéc hµm suy dÉn .........................................................61

4.3. 2 MÖnh ®Ò. ..................................................................................................61

4.3.3 Bao ®ãng cña tËp thuéc tÝnh.....................................................................62

4.3.4 Bµi to¸n thµnh viªn : .................................................................................63

4.4 Kho¸ cña quan hÖ ...........................................................................................63

4.4.1 X¸c ®Þnh kho¸ ...........................................................................................63

4.4.2 X¸c ®Þnh tÊt c¶ kho¸. ................................................................................64

4.5 Phñ tèi thiÓu cña tËp phô thuéc hµm. ..............................................................65

4.5.1 §Þnh nghÜa: Hai tËp phô thuéc hµm F vµ G. ............................................65

4.5.2 §Þnh NghÜa: Phñ tèi thiÓu. ........................................................................65

4.5.3 Gi¶i thuËt t×m phñ tèi thiÓu......................................................................65

4.6. PhÐp t¸ch c¸c l−îc ®å quan hÖ ......................................................................66

4.6.1 §Þnh nghÜa ...............................................................................................66

4.6.2 Ph©n r· b¶o toµn th«ng tin ........................................................................67

4.6.3 Ph©n r· b¶o toµn phô thuéc.......................................................................68

4.6.4 TÝnh c¸c phô thuéc hµm ®−îc bao trong mét l−îc ®å con cña ρ..............70

Ch−¬ng 5 ChuÈn Hãa C¬ Së D÷ LIÖU 72

5.1 C¸c d¹ng chuÈn ...............................................................................................72

5.2 D¹ng chuÈn 1 : 1NF (Normal Form)...............................................................72

5.3 D¹ng chuÈn 2NF..............................................................................................74

5.4. D¹ng chuÈn 3NF ...........................................................................................75

Page 116: Giáo trình Cơ Sở Dữ Liệu

Môc Lôc Trang 116

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

5.4.1 §Þnh nghÜa ................................................................................................75

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.............75

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...........................................................................................................................76

5.5. D¹ng chuÈn 3 : BCNF (Boyce Codd Normal Form) .....................................76

5.5.1 §Þnh nghÜa ................................................................................................76

5.5.2 Gi¶i thuËt ph©n r· b¶o toµn th«ng tin thµnh d¹ng chuÈn BCNF ..............77

5.6 D¹ng chuÈn 4NF : ...........................................................................................79

5.6.1 Phô thuéc ®a trÞ .........................................................................................79

5.6.2 D¹ng chuÈn 4NF .......................................................................................80

ch−¬ng 6 TÝnh toµn vÑn d÷ liÖu 81

6.1 Rµng buéc toµn vÑn (Integrity Constraints) ....................................................81

6.1.1 §Þnh nghÜa : ..............................................................................................81

6.1.2 C¸c yÕu tè cña rµng buéc toµn vÑn : .........................................................81

6.1.3 Ph©n lo¹i rµng buéc toµn vÑn :..................................................................83

6.1.4 LÖnh SQL ®èi víi rµng buéc toµn vÑn ......................................................86

6.2 Ph©n quyÒn truy xuÊt.......................................................................................88

Ch−¬ng 7 Phôc håi d÷ liÖu vµ tÝnh nguyªn tè 90

7.1 Ph©n lo¹i háng hãc ..........................................................................................90

7.1.1 C¸c lo¹i l−u tr÷ .........................................................................................90

7.1.2 C¸c kiÓu háng hãc . ..................................................................................90

7.2 Sù ph©n cÊp l−u tr÷. .........................................................................................90

7.3 M« h×nh giao t¸c..............................................................................................92

7.3.1 VÝ dô .........................................................................................................92

7.3.2 TÝnh ®óng ®¾n vµ tÝnh nguyªn tè. .............................................................93

7.3.3 C¸c tr¹ng th¸i cña giao t¸c........................................................................93

7.4 Phôc håi dùa vµo nhËt ký (Log - based recovery)...........................................94

Page 117: Giáo trình Cơ Sở Dữ Liệu

Môc Lôc Trang 117

K h oa CN TT 2 N ¨ m 2 0 0 0 B µ i G i ¶n g C¬ S ë D÷ L i Ö u

7.4.1 NhËt ký c¬ së d÷ liÖu . ..............................................................................94

7.4.2 Kü thuËt thay ®æi CSDL ®−îc ho·n l¹i (Deferred database modification)...........................................................................................................................95

7.4.3 Kü thuËt thay ®æi c¬ së d÷ liÖu tøc kh¾c ..................................................97

7.4.4 §iÓm kiÓm tra (check point) .....................................................................98

Bµi tËp tæng hîp - ®Ò thi mÉu 100

Tµi liÖu tham kh¶o 112

Môc lôc 113