Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Kỹ thuật lập trình Bài giảng cơ sở dữ liệu...

Tài liệu Bài giảng cơ sở dữ liệu

.PDF
117
339
112

Mô tả:

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

Tài liệu liên quan