Cơ Sở Dữ Liệu Quan Hệ Và Công Nghệ Phân Tích
Transcript of Cơ Sở Dữ Liệu Quan Hệ Và Công Nghệ Phân Tích
TS. LÊ VĂN PHÙNG
CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CÔNG NGHỆ
PHÂN TÍCH - THIẾT KẾ
NHÀ XUẤT BẢN THÔNG TIN VÀ TRUYỀN THÔNG
KS 02 HM 10
Lêi nãi ®Çu
C¬ së d÷ liÖu (CSDL) lµ mét trong nh÷ng m«n häc chuyªn ngµnh quan träng cña chuyªn ngµnh c«ng nghÖ th«ng tin. Môc ®Ých cña cuèn s¸ch nh»m gióp b¹n ®äc n¾m b¾t nhanh nh÷ng vÊn ®Ò cèt lâi nhÊt vÒ mÆt lý thuyÕt CSDL quan hÖ, trªn c¬ së ®ã vËn dông vµo thùc tÕ trong viÖc thiÕt kÕ c¬ së d÷ liÖu logic còng nh− thiÕt kÕ hÖ thèng th«ng tin nãi chung. Do ®ã, néi dung tµi liÖu kh«ng ®i s©u vµo viÖc chøng minh c¸c ®Þnh lý mµ chó träng ®Õn viÖc lµm s¸ng tá ý nghÜa thùc tÕ cña c¸c c«ng thøc ®Ó tõ ®ã h−íng dÉn häc viªn c¸ch tiÕp cËn t− duy logic, n¾m v÷ng kü thuËt tÝnh to¸n còng nh− c¸c b−íc triÓn khai gi¶i quyÕt c¸c bµi to¸n thùc tÕ trªn khÝa c¹nh c«ng nghÖ.
Víi môc ®Ých cung cÊp nh÷ng kiÕn thøc c¬ b¶n vÒ c¬ së d÷ liÖu quan hÖ cho sinh viªn, häc viªn ngµnh c«ng nghÖ th«ng tin vµ c¸c ngµnh kü thuËt kh¸c, Nhµ xuÊt b¶n Th«ng tin vµ TruyÒn th«ng tr©n träng giíi thiÖu cuèn s¸ch “C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ” do TS. Lª V¨n Phïng, ViÖn C«ng nghÖ th«ng tin, ViÖn Khoa häc vµ C«ng nghÖ ViÖt Nam biªn so¹n.
Néi dung s¸ch ®−îc biªn so¹n sau nhiÒu n¨m thÓ nghiÖm gi¶ng d¹y t¹i c¸c tr−êng ®¹i häc, cao ®¼ng vµ Trung t©m ®µo t¹o tin häc t¹i nhiÒu tØnh thµnh trong c¶ n−íc. Cuèn s¸ch gåm 3 ch−¬ng:
Ch−¬ng 1 - Tæng quan vÒ c¬ së d÷ liÖu: trÝch läc nh÷ng kh¸i niÖm c¬ b¶n nhÊt vÒ d÷ liÖu, c¬ së d÷ liÖu, hÖ thèng xö lý d÷ liÖu, hÖ qu¶n trÞ CSDL, c¸c ph−¬ng tiÖn diÔn t¶ d÷ liÖu, tõ ®iÓn d÷ liÖu, còng nh− nh÷ng kh¸i niÖm cèt lâi vÒ m« h×nh d÷ liÖu sÏ ®−îc sö dông trong qu¸ tr×nh ph©n tÝch, thiÕt kÕ CSDL.
Ch−¬ng 2 - M« h×nh c¬ së d÷ liÖu quan hÖ: tr×nh bµy nh÷ng kh¸i niÖm c¬ b¶n nhÊt vÒ m« h×nh d÷ liÖu quan hÖ cña E.F.Codd, chóng ®−îc dïng nhiÒu trong viÖc thiÕt kÕ c¸c hÖ qu¶n trÞ CSDL hiÖn nay. Ch−¬ng nµy còng giíi thiÖu nh÷ng thuËt to¸n quan träng trong CSDL nh− c¸c
thuËt to¸n tÝnh bao ®ãng vµ kho¸ tèi tiÓu trªn 1 quan hÖ còng nh− trªn 1 s¬ ®å quan hÖ… Néi dung ch−¬ng cßn ®Æc biÖt quan t©m ®Õn c¸c d¹ng chuÈn vµ c¸c thuËt to¸n cã liªn quan. ViÖc chuÈn ho¸ c¸c quan hÖ còng nh− c¸c s¬ ®å quan hÖ ®ãng mét vai trß quan träng trong viÖc thiÕt kÕ c¸c hÖ qu¶n trÞ c¬ së d÷ liÖu trªn m« h×nh d÷ liÖu cña E.F.Codd. Bªn c¹nh ®ã, ch−¬ng 2 cßn tËp trung h−íng dÉn ¸p dông c¸c kh¸i niÖm vµ ph−¬ng ph¸p tiªn tiÕn ®Ó chuÈn ho¸ c¸c quan hÖ ®Õn 3NF (3NF) trong c¸c hÖ qu¶n trÞ CSDL hiÖn h÷u.
Ch−¬ng 3 - Quy tr×nh ph©n tÝch thiÕt kÕ CSDL: ®−îc tr×nh bµy mét c¸ch hÖ thèng toµn bé quy tr×nh ph©n tÝch, thiÕt kÕ mét CSDL, bao gåm c¸c giai ®o¹n chñ chèt nh− ph©n tÝch yªu cÇu d÷ liÖu, ph¸t triÓn m« h×nh ph©n tÝch d÷ liÖu, thiÕt kÕ CSDL møc logic vµ møc vËt lý, thiÕt kÕ an toµn b¶o mËt cho CSDL. Qu¸ tr×nh ph©n tÝch, thiÕt kÕ nh»m x©y dùng vµ qu¶n trÞ CSDL ®−îc tr×nh bµy ë ®©y tËp trung vµo CSDL quan hÖ, mét lo¹i CSDL ®−îc x©y dùng dùa trªn m« h×nh d÷ liÖu quan hÖ cã lý thuyÕt to¸n häc v÷ng ch¾c nhÊt. Ngoµi ra, ®©y còng lµ lo¹i CSDL phæ biÕn nhÊt, ®−îc sö dông hÇu hÕt trong c¸c hÖ qu¶n trÞ CSDL th«ng dông trªn thÕ giíi.
C¸c néi dung ®−îc gãi gän trong 3 ch−¬ng trªn lµ nh÷ng kiÕn thøc thùc hµnh cÇn thiÕt cho bÊt cø b¹n ®äc nµo yªu vµ say mª víi c«ng nghÖ th«ng tin.
Hy väng cuèn s¸ch sÏ thùc sù h÷u Ých ®èi víi c¸c kü s−, kü thuËt viªn, c¸n bé gi¶ng d¹y vµ sinh viªn ngµnh C«ng nghÖ Th«ng tin, khi thùc hiÖn c¸c ®Ò tµi, ®å ¸n, c¸c dù ¸n, còng nh− trong gi¶ng d¹y, häc tËp vµ vËn hµnh c¸c hÖ thèng th«ng tin. Ngoµi ra, cuèn s¸ch còng lµ tµi liÖu tham kh¶o bæ Ých cho b¹n ®äc quan t©m tíi lÜnh vùc nµy.
Nhµ xuÊt b¶n xin tr©n träng giíi thiÖu cïng b¹n ®äc vµ rÊt mong nhËn ®−îc ý kiÕn ®ãng gãp cña quý vÞ. Mäi ý kiÕn ®ãng gãp xin göi vÒ Nhμ xuÊt b¶n Th«ng tin vμ TruyÒn th«ng - 18 NguyÔn Du, Hµ Néi hoÆc göi trùc tiÕp cho t¸c gi¶ theo ®Þa chØ: [email protected].
Tr©n träng c¶m ¬n./.
nxb th«ng tin vμ truyÒn th«ng
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
5
Tõ viÕt t¾t
CSDL C¬ së d÷ liÖu DBMS HÖ qu¶n trÞ c¬ së d÷ liÖu E_R Thùc thÓ - mèi quan hÖ KT_XH Kinh tÕ - X· héi NSD Ng−êi sö dông PC M¸y tÝnh c¸ nh©n PT_TK Ph©n tÝch vµ thiÕt kÕ RBTV Rµng buéc toµn vÑn
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
6
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
7
Ch−¬ng 1
tæng quan vÒ c¬ së d÷ liÖu
1.1. c¸c Kh¸i niÖm c¬ b¶n
1.1.1. D÷ liÖu
Trong m¸y tÝnh, thuËt ng÷ d÷ liÖu ®−îc xem nh− lµ c¸c ®Æc tÝnh ®−îc biÕt ®Õn mµ cã thÓ ghi l¹i vµ l−u tr÷ trªn c¸c thiÕt bÞ ghi nhí cña m¸y tÝnh. D÷ liÖu lµ nh÷ng m« t¶ vÒ sù vËt, con ng−êi vµ sù kiÖn trong thÕ giíi thùc.
D÷ liÖu bao gåm sè, kÝ tù, v¨n b¶n, h×nh ¶nh, ®å häa, ©m thanh, ®o¹n phim,… cã mét gi¸ trÞ nμo ®ã ®èi víi ng−êi sö dông (NSD) chóng vμ ®−îc l−u tr÷, xö lý trong m¸y tÝnh.
VÝ dô:
- D÷ liÖu vÒ kh¸ch: tªn, ®Þa chØ, ®iÖn tho¹i, thÎ tÝn dông
- D÷ liÖu vÒ xe « t« cña kh¸ch: h·ng xe, ®êi xe, n¨m s¶n xuÊt
- D÷ liÖu vÒ nhËt ký söa ch÷a: ngµy phôc vô, tªn thî söa ch÷a, sè tiÒn thanh to¸n
Trong ho¹t ®éng kinh tÕ x· héi (KT_XH) cña con ng−êi, ng−êi ta th−êng chia ra hai lo¹i d÷ liÖu lµ lo¹i d÷ liÖu ph¶n ¸nh cÊu tróc néi bé cña c¬ quan (nh©n sù, nhµ x−ëng, thiÕt bÞ,… d÷ liÖu Ýt biÕn ®éng) vµ lo¹i d÷ liÖu ph¶n ¸nh ho¹t ®éng cña tæ chøc (s¶n xuÊt, mua b¸n, giao dÞch,…). Trong doanh nghiÖp, kh«ng kÓ con ng−êi vµ thiÕt bÞ, d÷ liÖu cïng víi xö lý lµ 2 thµnh phÇn c¬ b¶n cña hÖ thèng: d÷ liÖu th−êng dïng ®Ó ghi nhËn thùc tr¹ng.
D÷ liÖu cã thÓ ®−îc chia thμnh nhiÒu cÊp theo kiÓu c©y ph©n cÊp l−u tr÷ d÷ liÖu (Data storage hierarchy)
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
8
Database - c¬ së d÷ liÖu
File - tÖp
Record - b¶n ghi
Field- tr−êng
Character or byte - Ký tù hoÆc byte
bit
Bit (binary digit) lµ mét sè cã 1 ký tù sè (digit), ®−îc biÓu diÔn b»ng sè 0/1. §©y lµ ®¬n vÞ l−u tr÷ nhá nhÊt trong m¸y tÝnh.
Mét ký tù (character) hoÆc byte lµ mét tæ hîp 8 bit liªn tôc nhau
Ký tù gåm cã:
- ký tù ch÷ c¸i A - Z, a - z
- ký tù sè 0 - 9
- ký tù ®Æc biÖt (+, %, $,...)
CÊu tróc bit nhá nhÊt cho 1 ký tù lµ 0000 0000
CÊu tróc bit lín nhÊt cho 1 ký tù lµ 1111 1111
Nh− vËy cã 256 byte biÓu diÔn 28 = 256 ký tù kh¸c nhau
Cã 2 hÖ thèng m· ®Ó chuyÓn ®æi m· 8 bit thμnh c¸c ký tù:
- Extended binary coded decimal interchange code (dïng cho m¸y mainframe vµ m¸y IBM lín)
- American standard code for information interchange (dïng cho m¸y mini vµ m¸y vi tÝnh)
ViÖc chuyÓn ®æi d÷ liÖu ë d¹ng m· nµy sang d¹ng m· kia nhê vµo nh÷ng tr×nh tiÖn Ých
Søc chøa ë bé nhí chÝnh vμ bé nhí phô ®−îc tÝnh b»ng:
- Kilobyte (K) 1K = 1024 byte
- Megabyte (M) 1M = 1024K
- Gigabyte (G) 1G = 1024M
- Tªtabyte (T) 1T = 1024G
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
9
PhÇn lín m¸y PC (personal computer) thêi kú ®Çu ®Òu dùa trªn chip 8086/8088 lµ lo¹i cã dung l−îng 16 bit.
PC míi hiÖn nay dïng chip cã dung l−îng lín nh− 32, 64 bit.
Field (Tr−êng) lµ tËp c¸c byte cã liªn quan
VÝ dô: tªn ng−êi cã thÓ ®−îc cÊu t¹o tõ c¸c tr−êng tªn, tªn lãt, hä
Tr−êng lµ ®¬n vÞ d÷ liÖu nhá nhÊt cã nghÜa ®èi víi NSD
Tr−êng cã thÓ chØ chøa 1 ký tù F (female)/M (male)
Tr−êng sè cã thÓ cã dÊu chÊm (.) vµ cã dÊu (©m/d−¬ng). Mét sè phÇn mÒm kh«ng ®−îc phÐp sö dông sè ©m vµ dÊu chÊm thËp ph©n.
Tr−êng ph¶i ®−îc khai b¸o tr−íc
Record (b¶n ghi) lµ tËp c¸c tr−êng cã liªn hÖ víi nhau
B¶n ghi vÒ hîp ®ång thuª nh©n c«ng cã thÓ cã tr−êng tªn, ®Þa chØ, sè giê lµm viÖc trong tuÇn. Tr−êng trong b¶n ghi ®−îc ph©n lo¹i (type) x¸c ®Þnh ®é dµi tèi ®a (size). Nhê vËy b¶n ghi x¸c ®Þnh ®−îc sè byte tæng céng ®−îc chøa trong mét vïng liªn tôc trong bé nhí.
File (tÖp) lµ tËp c¸c b¶n ghi chøa c¸c d÷ liÖu cã quan hÖ víi nhau ®−îc l−u vµo thiÕt bÞ nhí thø cÊp (®Üa mÒm, ®Üa cøng, b¨ng caset).
C¸c ph−¬ng ph¸p chñ yÕu ®Ó tæ chøc l−u tr÷ vµ ®äc c¸c tÖp trªn ®Üa hoÆc c¸c thiÕt bÞ l−u tr÷ gåm:
- Tæ chøc tÖp kiÓu tuÇn tù: c¸c b¶n ghi ®−îc l−u theo thø tù
- Tæ chøc tÖp truy xuÊt ngÉu nhiªn (trùc tiÕp): l−u c¸c tÖp tin theo thø tù ngÉu nhiªn.
- Tæ chøc tÖp theo chØ môc: tæ chøc mét tr−êng kho¸ trong mçi b¶n ghi nªn cã thÓ truy xuÊt b¶n ghi nµy theo kiÓu tuÇn tù hoÆc ngÉu nhiªn.
PhÐp b¨m (hashing) lμ mét kü thuËt ®−îc sö dông ®Ó tÝnh ®Þa chØ cña mét b¶n ghi trªn thiÕt bÞ vËt lý (®Üa tõ). Cßn tÖp ®−îc t¹o ra theo kü thuËt nμy ®−îc gäi lμ tÖp b¨m (hash file).
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
10
Database (c¬ së d÷ liÖu) lµ hÖ thèng tÝch hîp cña c¸c tÖp, ®−îc thiÕt kÕ nh»m môc ®Ých lµm gi¶m thiÓu sù trïng lÆp c¸c d÷ liÖu. Ngoµi ra chóng cßn cã mét cÊu tróc cã thø tù ®Ó kÕt nèi c¸c tÖp l¹i víi nhau. Theo nghÜa phæ th«ng, CSDL lµ tËp hîp d÷ liÖu vÒ mét ®¬n vÞ tæ chøc nµo ®ã, l−u trªn m¸y, cã c¸ch tæ chøc qu¶n lý theo mét kiÓu m« h×nh nµo ®ã. Trªn thùc tÕ, ng−êi ta ®· ®−a ra mét ®Þnh nghÜa CSDL ®Çy ®ñ h¬n d−íi ®©y.
1.1.2. C¬ së d÷ liÖu
§Þnh nghÜa: CSDL ®−îc x¸c ®Þnh nh− lμ mét bé s−u tËp c¸c d÷ liÖu cã liªn quan logic víi nhau; nã ®−îc tæ chøc s¾p xÕp theo mét c¸ch nμo ®ã vμ ®−îc c¸c hÖ øng dông cña mét ®¬n vÞ/c¬ quan cô thÓ nμo ®ã sö dông.
VÝ dô: mét CSDL cña cöa hµng söa ch÷a xe « t« cã thÓ chøa c¸c d÷ liÖu vÒ kh¸ch hµng (bao gåm c¸c kho¶n môc d÷ liÖu nh− tªn kh¸ch hµng, ®Þa chØ, sè ®iÖn tho¹i, thÎ tÝn dông), c¸c d÷ liÖu vÒ xe « t« cña kh¸ch hµng (bao gåm c¸c kho¶n d÷ liÖu nh− h·ng xe, ®êi xe, n¨m s¶n xuÊt) vµ nhËt ký c¸c lÇn söa ch÷a cho mçi chiÕc xe (nh− ngµy ph¸t sinh phôc vô, tªn thî söa, lo¹i h×nh söa ch÷a vµ sè tiÒn ®· thanh to¸n).
CSDL th−êng ®−îc sö dông víi nh÷ng øng dông cµi ®Æt riªng lÎ trong m¸y tÝnh c¸ nh©n, hoÆc d−íi d¹ng mét CSDL tËp trung trªn m¹ng LAN, hoÆc d−íi d¹ng mét CSDL ph©n t¸n trªn m¹ng WAN.
C¸c thµnh phÇn cña m«i tr−êng sö dông CSDL bao gåm:
- TÖp vµ CSDL,
- PhÇn cøng vµ hÖ ®iÒu hµnh,
- CÊu tróc d÷ liÖu vµ ph−¬ng ph¸p truy xuÊt d÷ liÖu.
1.1.3. HÖ thèng xö lý d÷ liÖu
Tõ khi cã m¸y tÝnh, ng−êi ta ®· t×m c¸ch l−u tr÷ d÷ liÖu vµ xö lý
chóng, mét trong nh÷ng hÖ thèng xö lý d÷ liÖu ®Çu tiªn ®ã lµ c¸c “hÖ thèng xö lý tÖp”. MÆc dï ngµy nay nh÷ng hÖ thèng xö lý tÖp nµy kh«ng
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
11
cßn ®−îc sö dông réng r·i nh−ng nã vÉn tån t¹i trong mét sè lÜnh vùc hÑp. §Ó cã thÓ thÊy ®−îc nh÷ng −u nh−îc ®iÓm cña hÖ thèng xö lý tÖp còng nh− cã thÓ hiÓu s©u h¬n t¹i sao ng−êi ta l¹i mong muèn x©y dùng nh÷ng CSDL víi c¸c −u ®iÓm cña c¸ch tiÕp cËn dùa trªn hÖ thèng xö lý tÖp, chóng ta sÏ xem xÐt mét c¸ch kh¸i qu¸t c¸c kh¸i niÖm quan träng.
a. C¸c hÖ thèng xö lý tÖp truyÒn thèng
Khi ch−a cã CSDL, c¸c m¸y tÝnh cña chóng ta ph¶i xö lý d÷ liÖu th«ng qua c¸c hÖ thèng xö lý tÖp truyÒn thèng. Ngµy nay, khi kh¶ n¨ng cña c¸c m¸y tÝnh ®· t¨ng lªn mét c¸ch ®¸ng kÓ, cã thÓ gi¶i quyÕt c¸c bµi to¸n lín, ®ßi hái xö lý nh÷ng khèi d÷ liÖu ®å sé, phøc t¹p th× c¸c hÖ thèng xö lý tÖp truyÒn thèng tá ra kh«ng cßn thÝch hîp vµ dÇn dÇn nã ®−îc thay thÕ bëi c¸c hÖ thèng xö lý d÷ liÖu dùa trªn CSDL. Tuy nhiªn sù hiÓu biÕt vÒ c¸c hÖ thèng xö lý tÖp vÉn lµ cÇn thiÕt bëi hai lý do c¬ b¶n sau:
- Ngµy nay c¸c hÖ thèng xö lý tÖp vÉn cßn ®−îc sö dông trong mét sè hÖ thèng, ®Æc biÖt lµ c¸c hÖ thèng phôc vô sao l−u CSDL.
- HiÓu ®−îc c¸c vÊn ®Ò còng nh− c¸c giíi h¹n cña c¸c hÖ thèng xö lý tÖp sÏ gióp chóng ta thiÕt kÕ c¸c CSDL tèt h¬n.
VÝ dô vÒ mét øng dông dùa trªn hÖ thèng xö lý tÖp:
Mét c«ng ty chuyªn s¶n xuÊt c¸c ®å dïng b»ng gç ®· tiÕn hµnh tin häc ho¸ c¸c nghiÖp vô cña m×nh trªn m¸y tÝnh. Tho¹t ®Çu, mçi mét øng dông trong c«ng ty ®Òu ®−îc x©y dùng theo c¸ch tiÕp cËn xö lý tÖp truyÒn thèng. Víi c¸ch tiÕp cËn nµy, c¸c hÖ thèng th«ng tin ®Òu tËp trung vμo viÖc xö lý d÷ liÖu cña mçi mét phßng ban ®¬n lÎ, trong ®ã c¸c hÖ thèng cè g¾ng ®¸p øng c¸c yªu cÇu cña tõng nhãm ng−êi cô thÓ. Do vËy, nh×n toµn bé vµo hÖ thèng th«ng tin cña toµn c«ng ty th× kh«ng cã mét m« h×nh còng nh− kÕ ho¹ch hay s¬ ®å tæng thÓ nµo ®Ó cã thÓ ho¹ch ®Þnh ®−îc cho viÖc ph¸t triÓn tiÕp theo cña c¸c øng dông. HÖ thèng øng dông dùa trªn c¸ch tiÕp cËn xö lý tÖp nµy ®−îc minh häa
nh− trong h×nh 1.1, ®ã lµ c¸c hÖ thèng t¹o lËp ®¬n hµng (order Filling
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
12
System), hÖ thèng xö lý ho¸ ®¬n (Invoice System) vµ hÖ thèng qu¶n lý l−¬ng cho nh©n viªn (Payroll System). Nh×n vµo h×nh vÏ chóng ta thÊy r»ng, c¸c tÖp d÷ liÖu ®−îc kÕt nèi trùc tiÕp víi mçi ch−¬ng tr×nh øng dông, mçi tÖp lµ mét tËp c¸c b¶n ghi liªn quan. VÝ dô, víi hÖ thèng
order Filling System cã 3 tÖp: Kh¸ch hµng (Customer), Nhµ cung cÊp
(Inventory Master) vµ Ho¸ ®¬n (order). Chóng ta nhËn thÊy r»ng cã thÓ cã nh÷ng tÖp ®−îc l−u lÆp l¹i vμ sö dông bëi c¸c øng dông kh¸c nhau (nh− Customer), ®©y chÝnh lµ mét trong nh÷ng nh−îc ®iÓm cña c¸c hÖ thèng dùa trªn viÖc xö lý tÖp.
H×nh 1.1. Mét hÖ thèng xö lý tÖp truyÒn th«ng
C¸c nh−îc ®iÓm cña c¸c hÖ thèng xö lý tÖp:
- TÝnh phô thuéc gi÷a ch−¬ng tr×nh vμ d÷ liÖu: C¸c m« t¶ vÒ tÖp d÷ liÖu ®−îc l−u trong mçi mét ch−¬ng tr×nh øng dông sö dông tÖp ®ã. Nh− vÝ dô trªn, ch−¬ng tr×nh Program A truy nhËp c¶ hai tÖp Inventory Master vµ Customer, do vËy ch−¬ng tr×nh nµy sÏ chøa c¸c m« t¶ chi tiÕt cña c¶ 2 tÖp nµy. §iÒu nµy dÉn ®Õn, khi cã bÊt cø mét thay ®æi nµo ®Õn cÊu tróc tÖp sÏ ®ßi hái còng ph¶i cã c¸c thay ®æi t−¬ng øng ®Õn
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
13
c¸c m« t¶ trong c¸c ch−¬ng tr×nh øng dông sö dông tÖp ®ã. Ngoµi ra, nh− trong h×nh 1.1, nÕu tÖp Customer bÞ söa ®æi th× c¶ hai hÖ thèng
order System vµ Invoice system ®Òu bÞ ¶nh h−ëng.
- L−u tr÷ trïng lÆp d÷ liÖu: Trong h×nh 1.1 chóng ta nhËn thÊy r»ng, hÖ thèng Order Filling cã chøa mét tÖp Inventory Master, trong khi ®ã hÖ thèng Invoice còng chøa mét tÖp lµ Inventory Pricing. Râ rµng gi÷a hai tÖp nµy sÏ cã sù l−u tr÷ trïng lÆp d÷ liÖu, vÝ dô c¸c th«ng tin vÒ m« t¶ s¶n phÈm, gi¸ mçi s¶n phÈm còng nh− sè l−îng ®ang cã trong kho. ViÖc l−u tr÷ d− thõa d÷ liÖu nµy g©y ra rÊt nhiÒu bÊt cËp vµ ®ßi hái kh«ng gian l−u tr÷ lín, nã rÊt dÔ vi ph¹m tÝnh toµn vÑn cña d÷ liÖu.
- ViÖc chia sÎ d÷ liÖu bÞ h¹n chÕ: Trong c¸ch tiÕp cËn xö lý tÖp nµy, mçi mét øng dông cã c¸c tÖp d÷ liÖu riªng cña nã vµ do vËy gi÷a nh÷ng ng−êi sö dông, hä cã Ýt c¬ héi ®Ó cã thÓ chia sÎ d÷ liÖu cho nhau nÕu kh«ng sö dông chung mét ph©n hÖ øng dông. Nh− trong h×nh 1.1, c¸c nh©n viªn trong phßng kÕ to¸n (Accounting Department) chØ cã thÓ truy nhËp ®−îc nh÷ng tÖp trong øng dông cña c¸c phßng xö lý ®¬n hµng (Order Department) hay phßng qu¶n lý tiÒn l−¬ng (Payroll Department). Do vËy, khi ng−êi l·nh ®¹o muèn t¹o ra nh÷ng b¸o c¸o tæng hîp liªn phßng th× v« cïng khã kh¨n bëi d÷ liÖu ®−îc l−u riªng lÎ còng nh− cã thÓ kh«ng thèng nhÊt gi÷a c¸c phßng.
- Tèn thêi gian x©y dùng: Víi mçi mét øng dông míi, ng−êi ph¸t triÓn ch−¬ng tr×nh ph¶i b¾t ®Çu l¹i tõ ®Çu víi viÖc x©y dùng c¸c tÖp, m« t¶ chóng còng nh− x©y dùng c¸c m«-®un ch−¬ng tr×nh ®Ó truy nhËp tíi c¸c tÖp ®ã. Qu¸ tr×nh nµy tèn kh¸ nhiÒu thêi gian mÆc dï nã lu«n lÆp l¹i gi÷a c¸c hÖ thèng.
- Chi phÝ cho b¶o tr× ch−¬ng tr×nh lín: Trªn thùc tÕ, cã ®Õn 80% chi phÝ ®−îc dµnh cho giai ®o¹n b¶o tr× ch−¬ng tr×nh ®èi víi nh÷ng øng dông dùa trªn c¸c hÖ thèng xö lý tÖp truyÒn thèng nµy.
Tuy nhiªn chóng ta còng cÇn ph¶i l−u ý r»ng, nh÷ng nh−îc ®iÓm ®èi víi c¸ch tiÕp cËn dùa trªn c¸c hÖ thèng xö lý tÖp truyÒn thèng nµy
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
14
còng cã thÓ gÆp ph¶i trong c¸ch tiÕp cËn dùa trªn CSDL (sÏ ®−îc tr×nh bµy d−íi ®©y), nÕu nh− CSDL kh«ng ®−îc thiÕt kÕ tèt, còng nh− chóng ®−îc x©y dùng mét c¸ch riªng rÏ, kh«ng thèng nhÊt.
b. C¸ch tiÕp cËn CSDL
C¸ch tiÕp cËn CSDL nhÊn m¹nh ®Õn tÝnh chia sÎ vµ tÝch hîp cña d÷ liÖu trong toµn bé ho¹t ®éng cña mét tæ chøc. Theo c¸ch tiÕp cËn nµy, d÷ liÖu ®−îc l−u tr÷ cã tæ chøc, tËp trung d−íi d¹ng mét CSDL vµ gi÷a c¸c d÷ liÖu cã sù liªn kÕt logic víi nhau.
C¸c −u ®iÓm mµ c¸ch tiÕp cËn dùa trªn CSDL mang l¹i so víi c¸ch tiÕp cËn dùa trªn c¸c hÖ thèng xö lý tÖp truyÒn thèng:
- Tèi thiÓu ho¸ d− thõa d÷ liÖu: Môc ®Ých thiÕt kÕ trong c¸ch tiÕp cËn CSDL chÝnh lµ cè g¾ng tÝch hîp c¸c tÖp d÷ liÖu riªng rÏ (vµ còng lµ d− thõa) trong m« h×nh xö lý tÖp tr−íc ®©y vµo mét cÊu tróc logic duy nhÊt. Mçi mét sù kiÖn cô thÓ sÏ ®−îc l−u tr÷ t¹i mét vÞ trÝ quy ®Þnh trong CSDL. Còng cÇn l−u ý r»ng, c¸ch tiÕp cËn CSDL cã thÓ kh«ng lo¹i bá hoµn toµn vÊn ®Ò d− thõa d÷ liÖu, nh−ng nã ®· cho phÐp ng−êi thiÕt kÕ kiÓm so¸t ®−îc vÊn ®Ò nµy. VÝ dô, ®èi víi mçi ®¬n hµng trong b¶ng ORDER cã chøa mét tr−êng Customer_id ®Ó biÓu diÔn mèi liªn kÕt gi÷a n©ng cao hiÖu qu¶ truy vÊn cña CSDL, chóng ta cã thÓ chÊp nhËn h×nh thøc l−u tr÷ d− thõa d÷ liÖu.
- TÝnh ®éc lËp ch−¬ng tr×nh - d÷ liÖu: TÝnh ®éc lËp víi d÷ liÖu ®−îc thÓ hiÖn ë sù t¸ch biÖt râ rµng gi÷a ch−¬ng tr×nh øng dông vµ c¸c m« t¶ d÷ liÖu (siªu d÷ liÖu), do vËy nã cho phÐp d÷ liÖu cña mét doanh nghiÖp ®−îc phÐp söa ®æi (trong mét giíi h¹n nµo ®ã) mµ kh«ng ph¶i thay ®æi l¹i ch−¬ng tr×nh thao t¸c trªn c¸c d÷ liÖu ®ã.
- N©ng cao tÝnh nhÊt qu¸n d÷ liÖu: Víi viÖc lo¹i bá tÝnh d− thõa d÷ liÖu, c¸ch tiÕp cËn CSDL ®· gi¶m bít ®−îc ®¸ng kÓ tÝnh kh«ng nhÊt qu¸n cña d÷ liÖu. VÝ dô, nÕu ®Þa chØ cña kh¸ch hµng ®−îc l−u tr÷ duy nhÊt, khi ®ã, nÕu kh¸ch hµng thay ®æi ®Þa chØ, chóng ta chØ viÖc lµm mét ®éng t¸c lµ ®¬n gi¶n söa ®æi l¹i ®Þa chØ cña kh¸ch hµng ë vÞ trÝ duy nhÊt ®ã, c¸c truy vÊn liªn quan ®Õn gi¸ trÞ nµy sÏ ®−îc tù ®éng nhËn
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
15
gi¸ trÞ míi khi ®−îc thùc hiÖn. Nh− vËy, vÊn ®Ò vÒ cËp nhËt, söa ®æi d÷ liÖu rÊt ®¬n gi¶n vµ nhÊt qu¸n. Mét ®iÓm quan träng h¬n, c¸ch tiÕp cËn CSDL sÏ lµm gi¶m ®¸ng kÓ kh«ng gian nhí so víi ph−¬ng ph¸p l−u tr÷ d÷ liÖu trong c¸c hÖ thèng xö lý tÖp truyÒn thèng.
- N©ng cao tÝnh chia sÎ d÷ liÖu: CSDL ®−îc thiÕt kÕ nh»m môc ®Ých chia sÎ d÷ liÖu. Mçi ng−êi sö dông hîp ph¸p ®−îc g¸n nh÷ng quyÒn sö dông CSDL kh¸c nhau, ®èi víi mçi ng−êi (hoÆc nhãm ng−êi) sö dông sÏ ®−îc cung cÊp nh÷ng khung nh×n sö dông kh¸c nhau, do vËy hä cã thÓ chñ ®éng trong viÖc chia sÎ d÷ liÖu th«ng qua c¸c quyÒn kiÓm so¸t d÷ liÖu.
- N©ng cao tÝnh s¶n phÈm cña øng dông: Mét lîi thÕ ®¸ng kÓ cña c¸ch tiÕp cËn CSDL ®ã lµ gi¶m ®¸ng kÓ chi phÝ vµ thêi gian cho viÖc ph¸t triÓn nh÷ng øng dông nghiÖp vô.
- ¸p ®Æt dÔ dμng c¸c tiªu chuÈn: Víi c¸ch tiÕp cËn CSDL, c¸c tiªu chuÈn nh− quy −íc ®Æt tªn, sö dông quy tr×nh thèng nhÊt trong viÖc truy nhËp, cËp nhËt vµ b¶o vÖ d÷ liÖu dÔ dµng ®−îc thùc hiÖn. C¸c chøc n¨ng qu¶n trÞ CSDL th−êng cung cÊp mét lo¹t c¸c c«ng cô nh»m ®¶m b¶o nh÷ng tiªu chuÈn nµy lu«n ph¶i ®−îc tho¶ m·n. TÝnh chÊt nµy lµm cho viÖc b¶o tr× vµ trao ®æi d÷ liÖu trë nªn dÔ dµng vµ thuËn lîi h¬n.
- N©ng cao chÊt l−îng d÷ liÖu: Víi c¸ch tiÕp cËn CSDL, ng−êi thiÕt kÕ cã thÓ x©y dùng c¸c rµng buéc toµn vÑn nh»m ®¶m b¶o d÷ liÖu khi ®−îc ®−a vµo CSDL ph¶i tho¶ m·n mét sè quy t¾c nµo ®ã. HoÆc ®èi víi nh÷ng CSDL lín nh− kho d÷ liÖu, th× th«ng th−êng d÷ liÖu ®−îc lµm s¹ch tr−íc khi ®−îc ®−a vµo kho d÷ liÖu.
- N©ng cao kh¶ n¨ng truy xuÊt d÷ liÖu: Víi c¸c CSDL quan hÖ, ng−êi sö dông kh«ng cÇn biÕt kü n¨ng vÒ lËp tr×nh còng cã thÓ dÔ dµng t×m kiÕm vµ hiÓn thÞ d÷ liÖu th«ng qua mét ng«n ng÷ hái ®¸p d÷ liÖu rÊt th©n thiÖn ®· ®−îc tiªu chuÈn ho¸.
- Gi¶m chi phÝ b¶o tr× ch−¬ng tr×nh: TÝnh chÊt nµy lµ hÖ qu¶ cña tÝnh ®éc lËp ch−¬ng tr×nh - d÷ liÖu. TÝnh ®éc lËp ch−¬ng tr×nh - d÷ liÖu cho phÐp x©y dùng ch−¬ng tr×nh t¸ch biÖt khái d÷ liÖu ë møc ®é nhÊt
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
16
®Þnh, do vËy khi cã sù söa ®æi, chóng ta chØ viÖc söa ®æi mét sè m«-®un thao t¸c trªn d÷ liÖu mµ kh«ng nhÊt thiÕt ph¶i söa ®æi l¹i toµn bé ch−¬ng tr×nh. ChÝnh ®iÒu nµy ®· dÉn ®Õn viÖc gi¶m bít ®−îc chi phÝ b¶o tr× ch−¬ng tr×nh.
Trªn ®©y lµ nh÷ng −u ®iÓm mµ c¸ch tiÕp cËn CSDL mang l¹i. Mét CSDL th−êng ®−îc tÝch hîp vµo trong mét hÖ qu¶n trÞ CSDL (®ã lµ mét ch−¬ng tr×nh m¸y tÝnh hay chÝnh x¸c h¬n lµ mét bé c¸c ch−¬ng tr×nh m¸y tÝnh ®−îc x©y dùng ®Ó qu¶n lý mét CSDL).
1.1.4. Sù kh¸c biÖt gi÷a d÷ liÖu vμ th«ng tin
Hai thuËt ng÷ d÷ liÖu vµ th«ng tin liªn quan chÆt chÏ víi nhau, trªn thùc tÕ chóng th−êng ®−îc sö dông thay ®æi cho nhau. Tuy nhiªn, gi÷a chóng còng cã sù kh¸c biÖt vµ chóng ta nªn ph©n biÖt gi÷a d÷ liÖu vµ th«ng tin.
Chóng ta quan niÖm th«ng tin lμ nh÷ng g× ®−îc t¹o nªn nh»m gi¶m sù kh«ng x¸c ®Þnh. Th«ng tin th−êng ®−îc chiÕt xuÊt tõ d÷ liÖu. Nãi c¸ch kh¸c chóng ta cã thÓ hiÓu th«ng tin nh− lµ d÷ liÖu ®· ®−îc xö lý theo c¸ch mµ chóng cã thÓ lµm t¨ng hµm l−îng tri thøc cho NSD nã.
VÝ dô:
Ho¸ ®¬n N0- 852 cña nhµ cung cÊp A cÇn ph¶i thanh to¸n chËm nhÊt lµ vµo ngµy 01/10/2005 ®ã lµ mét th«ng tin.
§Ó thÓ hiÖn th«ng tin ng−êi ta sö dông d÷ liÖu. Th«ng tin ®−îc thÓ hiÖn qua c¸c gi¸ trÞ cña d÷ liÖu. Víi vÝ dô trªn, th«ng tin toµn bé ®−îc thÓ hiÖn qua 3 lo¹i d÷ liÖu: STT ho¸ ®¬n, tªn nhµ cung cÊp, ngµy giíi h¹n thanh to¸n.
Cã d÷ liÖu nh−ng ch−a thÓ hiÖn ®−îc th«ng tin.
VÝ dô:
Mai Linh 240685
§«ng Lan 060980
Minh Ph−¬ng 211279
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
17
§Ó chuyÓn d÷ liÖu thµnh th«ng tin, cÇn tãm l−îc chóng l¹i hoÆc xö lý vµ tr×nh bµy chóng d−íi c¸c d¹ng trùc quan h¬n nh− b¶ng, ®å thÞ hay biÓu ®å (®Æt danh s¸ch trong mét ng÷ c¶nh, bæ sung thªm mét vµi d÷ liÖu vµ cÊu tróc cña c¸c d÷ liÖu ®ã hoÆc tãm l−îc vµ biÓu diÔn d−íi d¹ng trùc quan - d¹ng th«ng tin ®å thÞ):
B¶ng 1.1. Danh s¸ch líp Tin c¬ b¶n
Tªn Ngμy th¸ng n¨m sinh M· sinh viªn
Mai Linh 240685
§«ng Lan 060980
Minh Ph−¬ng 211279
Cã mét sè c¸ch diÔn t¶ d÷ liÖu nh− b»ng ®å thÞ h×nh b¸nh hoÆc ®å thÞ h×nh cét. §å thÞ h×nh b¸nh biÓu diÔn c¬ cÊu giíi tÝnh. §å thÞ h×nh cét biÓu diÔn t¨ng tr−ëng GDP b×nh qu©n ®Çu ng−êi,...
H×nh 1.2. C¸c c¸ch diÔn t¶ d÷ liÖu
1.1.5. Siªu d÷ liÖu
D÷ liÖu chØ trë nªn h÷u Ých khi chóng ®−îc ®Æt trong mét ng÷ c¶nh nµo ®ã. C¬ chÕ chÝnh cung cÊp ng÷ c¶nh cho d÷ liÖu ®ã chÝnh lµ siªu d÷ liÖu, do vËy chóng ta cã thÓ hiÓu siªu d÷ liÖu lμ d÷ liÖu m« t¶ c¸c tÝnh chÊt hoÆc ®Æc tr−ng cña d÷ liÖu. C¸c tÝnh chÊt nµy cã thÓ lµ c¸c d÷ liÖu vÒ ®Þnh nghÜa, vÒ cÊu tróc d÷ liÖu, vÒ c¸c luËt hay c¸c rµng buéc.
Siªu d÷ liÖu cho phÐp ng−êi thiÕt kÕ CSDL vµ NSD biÕt cã d÷ liÖu g×, tån t¹i ë ®©u, c¸c kho¶n môc d÷ liÖu kh¸c nhau ë ®iÓm g×. ViÖc
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
18
qu¶n lý siªu d÷ liÖu còng quan träng nh− viÖc qu¶n lý d÷ liÖu liªn quan víi nã, bëi d÷ liÖu nÕu kh«ng ®−îc ph©n biÖt râ rµng sÏ g©y ra nhÇm lÉn, sai sãt vµ kh«ng thÓ diÔn gi¶i næi. Trong CSDL, siªu d÷ liÖu th−êng ®−îc l−u tr÷ trong mét vïng quy ®Þnh mµ chóng ta th−êng gäi lµ tõ ®iÓn d÷ liÖu (Data Dictionary).
D÷ liÖu t¹o nªn néi dung cña CSDL, tuy nhiªn nã kh«ng quyÕt ®Þnh tÝnh hiÖu qu¶ cña CSDL. Bëi tÝnh hiÖu qu¶ ®−îc thÓ hiÖn qua viÖc thiÕt kÕ vµ khai th¸c CSDL.
B¶ng 1.2. VÝ dô vÒ mét siªu d÷ liÖu cho b¶ng kÕt qu¶ häc tËp
Data item Value
Name Type Length
Min max Description
Course Char 30 Course_id vμ tªn
Section Integer 1 1 9 Sè hiÖu häc phÇn
Semester Char 10 Häc kú vμ n¨m
Name Char 30 Tªn Sinh viªn
ID Integer 9 Sè hiÖu sinh viªn
Major Char 4 M«n häc
GPA Decimal 3 0.0 10.0 §iÓm m«n häc
CÇn ph©n biÖt râ d÷ liÖu vµ siªu d÷ liÖu: siªu d÷ liÖu lµ phÇn ®−îc t¸ch khái d÷ liÖu, siªu d÷ liÖu m« t¶ c¸c tÝnh chÊt cña d÷ liÖu, siªu d÷ liÖu kh«ng bao gåm d÷ liÖu.
1.1.6. KiÓu thùc thÓ vμ b¶ng d÷ liÖu
a. Thùc thÓ
Thùc thÓ lµ mét kh¸i niÖm ®−îc sö dông th−êng xuyªn trong qu¸ tr×nh ph©n tÝch, thiÕt kÕ CSDL. Chóng ta cÇn n¾m v÷ng b¶n chÊt cña thùc thÓ.
Chóng ta nhËn thÊy r»ng trong thÕ giíi thùc, tån t¹i rÊt nhiÒu c¸c ®èi t−îng kh¸c nhau, vÝ dô nh− mét ng−êi trong tæ chøc, mét sinh viªn
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
19
trong mét tr−êng ®¹i häc, hay thËm chÝ mét phßng ban trong mét viÖn nghiªn cøu, tÊt c¶ nh÷ng ®èi t−îng ®ã ®Òu ®−îc coi lµ c¸c thùc thÓ kh¸c nhau. Ngoµi ra nh÷ng ®èi t−îng trõu t−îng nh− “mét ngμnh khoa häc” còng cã thÓ ®−îc coi lµ mét thùc thÓ.
VËy ta cã thÓ ®Þnh nghÜa: thùc thÓ nh− lμ mét ®èi t−îng cô thÓ hay trõu t−îng trong thÕ giíi thùc mμ nã tån t¹i vμ cã thÓ ph©n biÖt víi c¸c ®èi t−îng kh¸c.
b. KiÓu thùc thÓ
Tõ ®Þnh nghÜa vÒ thùc thÓ nªu trªn, chóng ta nhËn thÊy r»ng trong thÕ giíi thùc cã rÊt nhiÒu c¸c thùc thÓ gièng nhau ë mét sè khÝa c¹nh nµo ®ã.
Nh− vËy, chóng ta cã thÓ coi mét nhãm c¸c thùc thÓ gièng nhau h×nh thµnh lªn mét kiÓu thùc thÓ hay cßn gäi lµ tËp thùc thÓ.
VÝ dô:
TÊt c¶ c¸c sinh viªn trong mét tr−êng ®¹i häc t¹o thµnh mét kiÓu thùc thÓ lµ STUDENT.
Tuy nhiªn chóng ta còng nhËn thÊy r»ng kh¸i niÖm “thùc thÓ gièng nhau” kh«ng ®−îc x¸c ®Þnh mét c¸ch chÝnh x¸c vµ ng−êi ta cã thÓ ®−a ra rÊt nhiÒu c¸c tÝnh chÊt kh¸c nhau ®Ó h×nh thµnh lªn mét kiÓu thùc thÓ, ®iÒu nµy phô thuéc vµo nhu cÇu qu¶n lý cña bµi to¸n.
VËy chóng ta cã thÓ hiÓu mét kiÓu thùc thÓ nh− lμ mét nhãm c¸c thùc thÓ gièng nhau ë mét sè ®iÓm nhÊt ®Þnh nμo ®ã mμ chóng ta cÇn quan t©m.
Mét trong c¸c b−íc chÝnh trong qu¸ tr×nh ph©n tÝch, thiÕt kÕ CSDL ®ã lµ: x©y dùng mét m« h×nh ®Æc t¶ thÕ giíi thùc, nãi mét c¸ch cô thÓ h¬n tøc lµ lùa chän vµ m« t¶ c¸c kiÓu thùc thÓ còng nh− c¸c mèi quan hÖ gi÷a c¸c kiÓu thùc thÓ ®ã.
Chóng ta cÇn ph¶i ph©n biÖt sù kh¸c nhau gi÷a kiÓu thùc thÓ vµ thÓ hiÖn cña kiÓu thùc thÓ (hay thùc thÓ):
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
20
- Mét kiÓu thùc thÓ lµ mét tËp c¸c thùc thÓ cã chung mét sè tÝnh chÊt hoÆc ®Æc tr−ng nµo ®ã. Mçi mét kiÓu thùc thÓ ph¶i ®−îc ®Æt mét tªn duy nhÊt kh«ng trïng víi c¸c kiÓu thùc thÓ ®· cã.
- Cßn thÓ hiÖn cña thùc thÓ lµ mét tËp gi¸ trÞ cô thÓ cña kiÓu thùc thÓ.
VÝ dô:
B¶ng 1.3. KiÓu thùc thÓ EMPLOYEE vμ 2 thÓ hiÖn cña nã
KiÓu thùc thÓ: EMPLOYEE
C¸c thuéc tÝnh:
Emp_id
Emp_name
Address
Date_hired
Char(10)
Char(50)
Char(50)
Date
Vμ hai thÓ hiÖn:
642 - 17 - 125
Kim LuyÕn
10A T©y Hå
01/01/2007
781 - 78 - 157
Ngäc Lan
2 Hμ §«ng
01/06/2008
Khi ph©n tÝch thiÕt kÕ mét CSDL, mét kiÓu thùc thÓ chØ ®−îc m« t¶ mét lÇn (sö dông siªu d÷ liÖu), trong khi ®ã c¸c thÓ hiÖn cña kiÓu thùc thÓ ®ã l¹i ®−îc biÓu diÔn bëi d÷ liÖu l−u trong CSDL.
§Ó ®Æt tªn cho kiÓu thùc thÓ, chóng ta dïng c¸c danh tõ viÕt liÒn víi c¸c ch÷ c¸i ®−îc viÕt hoa, bao quanh bëi mét h×nh ch÷ nhËt:
H×nh 1.3. KiÓu thùc thÓ
C¸c kiÓu thùc thÓ ®−îc ®Æc t¶ bëi mét tËp c¸c ®Æc tr−ng mµ chóng ta quy −íc gäi lµ c¸c thuéc tÝnh. Do vËy muèn thµnh lËp mét kiÓu thùc thÓ ®ßi hái ph¶i x¸c ®Þnh ®−îc tËp c¸c thuéc tÝnh chung nhÊt.
c. B¶ng d÷ liÖu hay quan hÖ
Trong qu¸ tr×nh ph©n tÝch CSDL, kh¸i niÖm kiÓu thùc thÓ ®−îc sö dông ®Ó minh häa cho mét líp c¸c thùc thÓ gièng nhau. B¶ng d÷ liÖu
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
21
chÝnh lµ h×nh thøc thÓ hiÖn cô thÓ cña kiÓu thùc thÓ khi x©y dùng CSDL, vµ b¶ng d÷ liÖu ®−îc sö dông ®Ó l−u d÷ liÖu vÒ c¸c thùc thÓ trong líp thùc thÓ ®ã.
Chóng ta cã thÓ h×nh dung b¶ng d÷ liÖu lµ mét tËp c¸c bé d÷ liÖu, hay b¶n ghi d÷ liÖu, mçi bé cã cïng mét sè l−îng thuéc tÝnh nh− nhau nh−ng cã thÓ kh¸c nhau vÒ miÒn gi¸ trÞ. B¶ng d÷ liÖu trong c¸ch tiÕp cËn CSDL quan hÖ, ®−îc hiÓu chÝnh x¸c bëi côm tõ quan hÖ. Mét quan hÖ bao gåm mét l−îc ®å quan hÖ vµ mét thÓ hiÖn cét cña b¶ng ®ã. Trong mét quan hÖ kh«ng thÓ tån t¹i hai bé d÷ liÖu gièng nhau ë tÊt c¶ c¸c thuéc tÝnh. H×nh d−íi ®©y minh häa cho mét b¶ng d÷ liÖu, c¸c cét cña b¶ng t−¬ng øng víi c¸c thuéc tÝnh hay c¸c tr−êng d÷ liÖu, c¸c hµng cña b¶ng t−¬ng øng víi c¸c b¶n ghi hay c¸c bé d÷ liÖu.
Tr−êng d÷ liÖu (hay thuéc tÝnh, cét d÷ liÖu)
B¶ng 1.4. D÷ liÖu hay quan hÖ
Tªn tr−êng
Bé d÷ liÖu (hay b¶n ghi, dßng d÷ liÖu)
§«i khi chóng ta cã thÓ biÓu diÔn c¸c b¶ng d−íi d¹ng l−îc ®å quan hÖ lo¹i bá c¸c d÷ liÖu vµ chØ ®−a ra tªn b¶ng cïng c¸c tªn cét nh− sau:
AUTHOR (Au_id, Au_iname, Au_fname, Address, City, Country)
TITLE (Title_id, Title, Type, Price, Pub_id)
PUBLISHER (Pub_id, Pub_name, City)
AUTHOR_TITLE (Au_id, Title_id)
Mçi b¶ng muèn trë thμnh quan hÖ cÇn cã mét sè tÝnh chÊt sau:
Emp_id Emp_name Address Date_hired Birth_date
784-123 Hång §μo 10K NguyÔn Tr·i
01/01/2008 12/04/1982
123-541 Thanh H»ng 45 Hμm Long 01/06/2007 15/03/1983
145-458 Thu Hoa 18A §−êng L¸ng
01/01/2008 14/08/1984
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
22
- C¸c d÷ liÖu trong b¶ng lµ c¸c gi¸ trÞ ®¬n, ®−îc hiÓu theo nghÜa lµ c¸c gi¸ trÞ kh«ng cÇn chia nhá h¬n n÷a mµ vÉn ®¸p øng ®−îc nhu cÇu nghiÖp vô.
- C¸c gi¸ trÞ trong cïng mét cét d÷ liÖu ph¶i cã cïng mét kiÓu.
- Mçi mét hµng trong b¶ng lµ duy nhÊt. Trong b¶ng kh«ng thÓ tån t¹i hai hµng cã cïng gi¸ trÞ ë tÊt c¶ c¸c cét.
- Thø tù liÖt kª c¸c cét trong b¶ng kh«ng quan träng.
- Thø tù liÖt kª c¸c hµng trong b¶ng kh«ng quan träng.
- Mçi mét cét d÷ liÖu trong b¶ng ph¶i cã mét tªn duy nhÊt.
Nh− vËy mét quan hÖ lµ mét b¶ng hai chiÒu gåm c¸c gi¸ trÞ, ®ã lµ tËp hîp c¸c bé cña quan hÖ t¹i mét thêi ®iÓm nµo ®ã. Tuy nhiªn, quan hÖ l¹i th−êng ®−îc cËp nhËt (bæ sung, lo¹i bá, ®iÒu chØnh c¸c bé), do ®ã quan hÖ cã tÝnh chÊt lµ thay ®æi theo thêi gian.
Tuy thay ®æi vÒ gi¸ trÞ th«ng qua viÖc cËp nhËt, song quan hÖ vÉn ph¶i gi÷ mét sè ®Æc ®iÓm vÒ ng÷ nghÜa, hay nãi mét c¸ch kh¸c nã ph¶i tu©n thñ mét l−îc ®å quan hÖ nhÊt ®Þnh nh− qui −íc sè tr−êng trong quan hÖ, kiÓu d÷ liÖu trong quan hÖ,…
d. Thuéc tÝnh vμ tr−êng d÷ liÖu
Thuéc tÝnh
Nh− trong kh¸i niÖm vÒ kiÓu thùc thÓ chóng ta ®· biÕt, mét kiÓu thùc thÓ ®−îc m« t¶ b»ng c¸ch sö dông mét tËp c¸c thuéc tÝnh. TÊt c¶ c¸c thùc thÓ trong mét kiÓu thùc thÓ ®· ®−îc x¸c ®Þnh ®Òu cã cïng sè l−îng c¸c thuéc tÝnh ®ã.
Mçi mét kiÓu thùc thÓ lu«n cã mét tËp c¸c thuéc tÝnh ®i kÌm. D−íi ®©y lµ vÝ dô vÒ hai kiÓu thùc thÓ vµ c¸c thuéc tÝnh ®i kÌm víi chóng:
STUDENT: Student_id, Student_name, Address, Tel_no, Class
EMPLOYEE: Emp_id, Emp_name, Address, Skill, Start_date
Víi mçi thuéc tÝnh trong kiÓu thùc thÓ, chóng ta ph¶i x¸c ®Þnh miÒn gi¸ trÞ cña thuéc tÝnh ®ã. VÝ dô miÒn gi¸ trÞ cho thuéc tÝnh
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
23
Emp_name cña kiÓu thùc thÓ EMPLOYEE cã thÓ lµ mét x©u ký tù cã ®é dµi kh«ng qu¸ 30 ký tù.
ThÓ hiÖn cña thuéc tÝnh chÝnh lµ c¸c gi¸ trÞ. VÝ dô “T©n HuÖ” lµ mét gi¸ trÞ cho thuéc tÝnh tªn nh©n viªn Emp_name.
§Ó ®Æt tªn cho c¸c thuéc tÝnh, chóng ta dïng c¸c danh tõ viÕt liÒn víi ch÷ c¸i ®Çu tiªn ®−îc viÕt hoa, nÕu mét thuéc tÝnh cã tªn gåm 2 tõ th× chóng ta sö dông dÊu g¹ch d−íi ®Ó nèi 2 tõ ®ã l¹i. Chóng ta sö dông h×nh ElÝp ®Ó biÓu diÔn cho mét thuéc tÝnh vµ mét ®−êng th¼ng kÕt nèi thuéc tÝnh ®ã víi kiÓu thùc thÓ mµ nã m« t¶.
VÝ dô:
H×nh 1.4. Thuéc tÝnh vμ kiÓu thùc thÓ
Tr−êng d÷ liÖu
Còng nh− gi÷a b¶ng d÷ liÖu vµ kiÓu thùc thÓ, khi ph©n tÝch CSDL, chóng ta sö dông c¸c thuéc tÝnh ®Ó m« t¶ cho c¸c kiÓu thùc thÓ, cßn khi x©y dùng CSDL, chóng ta sö dông c¸c tr−êng d÷ liÖu ®Ó x©y dùng lªn c¸c quan hÖ. Do vËy chóng ta cã thÓ hiÓu tr−êng d÷ liÖu nh− lµ ®¬n vÞ nhá nhÊt cã tªn gäi cña d÷ liÖu l−u tr÷ trong CSDL. Tr−êng d÷ liÖu cßn ®−îc gäi lµ cét d÷ liÖu khi chóng ta sö dông víi kh¸i niÖm b¶ng d÷ liÖu.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
24
Qua ®ã chóng ta cã thÓ ¸nh x¹ c¸c kh¸i niÖm trong kh©u ph©n tÝch CSDL vµ c¸c kh¸i niÖm ®−îc sö dông trong kh©u thiÕt kÕ, x©y dùng CSDL:
- Tõ kiÓu thùc thÓ chóng ta x©y dùng ®−îc lªn c¸c quan hÖ hay b¶ng d÷ liÖu.
- Tõ c¸c thuéc tÝnh chóng ta x©y dùng ®−îc lªn c¸c tr−êng hay cét d÷ liÖu.
e. Liªn kÕt gi÷a c¸c thùc thÓ
Mét liªn kÕt lµ mét kÕt nèi gi÷a c¸c thÓ hiÖn cña mét hoÆc nhiÒu kiÓu thùc thÓ. VÝ dô, chóng ta cã mét liªn kÕt c¸c nh©n viªn Minh Ph−¬ng, §«ng Lan, Phong Huª víi c¸c phßng kinh doanh, kÕ to¸n.
Chóng ta còng cã thÓ sö dông c¸c thuéc tÝnh ®Ó m« t¶ cho liªn kÕt. C¸c thuéc tÝnh m« t¶ ®−îc sö dông ®Ó l−u l¹i c¸c th«ng tin vÒ mèi liªn kÕt h¬n lµ nh÷ng th«ng tin vÒ c¸c thùc thÓ tham gia vµo liªn kÕt ®ã. VÝ dô, chóng ta cã thÓ ghi l¹i nh©n viªn §«ng Lan lµm viÖc ë phßng kinh doanh tõ ngµy 27/4/2006 th«ng qua mét thuéc tÝnh Start_date ®−îc ®Æt bªn c¹nh liªn kÕt Works_in nh− trong h×nh 1.5.
Minh Phương
Đông Lan
Phong Huê
04/12/06
27/4/06
16/6/06
01/01/08
Phòng kinh doanh
Phòng kế toán
EMPLOYEE
Works_in
DEPARTMENT
Ngμy tham gia
H×nh 1.5. Liªn kÕt gi÷a c¸c thùc thÓ
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
25
Mét liªn kÕt ph¶i ®−îc x¸c ®Þnh duy nhÊt bëi c¸c thùc thÓ tham gia liªn kÕt mµ kh«ng cÇn ph¶i tham chiÕu ®Õn c¸c thuéc tÝnh m« t¶. Nh− h×nh 1.5, mçi mét liªn kÕt trong Work_in ®−îc x¸c ®Þnh duy nhÊt bëi viÖc kÕt hîp thuéc tÝnh ®¹i diÖn Emp_name cña kiÓu thùc thÓ EMPLOYEE vµ thuéc tÝnh ®¹i diÖn Dept_name cña kiÓu thùc thÓ DEPARTMENT. Do vËy víi mçi cÆp nh©n viªn - phßng ban trªn chóng ta kh«ng thÓ cã h¬n mét kÕt nèi.
Chó ý: Trong vÝ dô trªn chóng ta gi¶ thiÕt r»ng gi÷a c¸c thùc thÓ cña kiÓu thùc thÓ cã thÓ ph©n biÖt duy nhÊt víi nhau th«ng qua c¸c gi¸ trÞ trong c¸c thuéc tÝnh Emp_name vµ Dept_name t−¬ng øng víi hai kiÓu thùc thÓ EMPLOYEE vµ DEPARTMENT.
Mét nhãm c¸c liªn kÕt cïng kiÓu, h×nh thµnh lªn mét tËp liªn kÕt. Khi dïng víi kh¸i niÖm kiÓu thùc thÓ, chóng ta dïng thuËt ng÷ liªn kÕt ®Ó m« t¶ cho sù kÕt nèi gi÷a chóng thay v× sö dông thuËt ng÷ tËp liªn kÕt.
§Ó ®Æt tªn cho liªn kÕt, chóng ta dïng c¸c ®éng tõ viÕt liÒn víi ch÷ c¸i ®Çu tiªn ®−îc viÕt hoa, nÕu mét ®éng tõ cã tªn gåm 2 tõ th× chóng ta sö dông dÊu g¹ch d−íi ®Ó nèi 2 tõ ®ã l¹i. Chóng ta sö dông h×nh thoi ®Ó biÓu diÔn cho mét liªn kÕt vµ c¸c ®−êng nèi liªn kÕt ®ã víi c¸c kiÓu thùc thÓ tham gia vµo liªn kÕt. Mét vÝ dô vÒ mèi liªn kÕt ®−îc ®Æc t¶ nh− sau:
H×nh 1.6. Liªn kÕt gi÷a kiÓu thùc thÓ
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
26
Liªn kÕt ®Æt mua “Orders” gi÷a hai kiÓu thùc thÓ lµ kh¸ch hµng CUSTOMER vµ mÆt hµng PRODUCT ®−îc ®Æc t¶ víi ý nghÜa: mçi kh¸ch hµng cã thÓ ®Æt mua mét hoÆc nhiÒu mÆt hµng, ng−îc l¹i mçi mét mÆt hµng còng cã thÓ ®−îc mua bëi nhiÒu kh¸ch hµng kh¸c nhau.
1.1.7. Kh¸i niÖm toμn vÑn d÷ liÖu
Nh− ®· tr×nh bµy trong phÇn ®Çu, mét trong nh÷ng −u ®iÓm cña c¸ch tiÕp cËn CSDL ®ã lµ d÷ liÖu khi ®−îc ®−a vµo CSDL sÏ ph¶i tu©n theo mét sè quy ®Þnh nµo ®ã. Nh÷ng quy ®Þnh nµy ®−îc xem lµ nh÷ng rµng buéc trªn d÷ liÖu vµ nã ®¶m b¶o tÝnh toµn vÑn cña d÷ liÖu. TÝnh toµn vÑn d÷ liÖu gióp cho NSD cã thÓ tin cËy Ýt nhÊt vÒ mÆt nguyªn t¾c ®èi víi c¸c d÷ liÖu trong CSDL.
a. Rμng buéc toμn vÑn
Rμng buéc toμn vÑn (RBTV) là một điều kiện bất biến không được vi phạm trong một CSDL.
RBTV cßn ®−îc gäi lµ quy t¾c qu¶n lý (Rule) ®−îc ¸p ®Æt lªn trªn c¸c ®èi t−îng cña thÕ giíi thùc.
VÝ dô:
- Mçi líp häc ph¶i cã 1 m· sè duy nhÊt ®Ó ph©n biÖt víi mäi líp häc kh¸c trong tr−êng
- Mçi líp ph¶i thuéc 1 khoa trong tr−êng
- Mçi häc sinh ph¶i cã mét m· sè riªng biÖt, kh«ng trïng nhau trong tr−êng
- Mçi häc viªn ph¶i thuéc 1 líp …
Trong mét CSDL, RBTV cÇn ®−îc ng−êi ph©n tÝch thiÕt kÕ m« t¶ ®Çy ®ñ vµ chÝnh x¸c râ rµng trong hå s¬ ph©n tÝch thiÕt kÕ (PT_TK).
RBTV ®−îc xem nh− 1 c«ng cô ®Ó diÔn ®¹t ng÷ nghÜa cña CSDL ®ã. Trong qu¸ tr×nh khai th¸c CSDL, c¸c RBTV ®Òu ph¶i ®−îc tho¶ m·n ë bÊt kú thêi ®iÓm nµo nh»m ®¶m b¶o cho CSDL lu«n ë tr¹ng th¸i an toµn vµ nhÊt qu¸n vÒ d÷ liÖu.
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
27
C¸c hÖ qu¶n trÞ th−êng cã c¸c c¬ chÕ tù ®éng kiÓm tra RBTV vÒ miÒn gi¸ trÞ cña kho¸, gi¸ trÞ NOT NULL qua c¸c khai b¸o cÊu tróc c¸c b¶ng (M« h×nh d÷ liÖu quan hÖ) hoÆc th«ng qua nh÷ng thñ tôc kiÓm tra vµ xö lý vi ph¹m RBTV (do ng−êi PT_TK cµi ®Æt).
ViÖc kiÓm tra cã thÓ tiÕn hμnh vμo 1 trong 2 thêi ®iÓm sau:
- KiÓm tra ngay sau khi thùc hiÖn mét thao t¸c cËp nhËt CSDL (thªm, söa, xo¸). Thao t¸c cËp nhËt chØ ®−îc coi lµ hîp lÖ nÕu nã kh«ng vi ph¹m bÊt kú RBTV nµo. NÕu vi ph¹m RBTV nghÜa lµ kh«ng hîp lÖ vµ sÏ bÞ hÖ thèng huû bá.
- KiÓm tra ®Þnh kú hay ®ét xuÊt, nghÜa lµ viÖc kiÓm tra ®éc lËp víi thao t¸c cËp nhËt d÷ liÖu. NÕu vi ph¹m RBTV, hÖ thèng cã nh÷ng xö lý ngÇm ®Þnh hoÆc yªu cÇu NSD xö lý.
b. C¸c yÕu tè cña RBTV
Cô thÓ, xÐt trong mét c¬ së quan hÖ, chóng ta thÊy lu«n tån t¹i nhiÒu mèi quan hÖ ¶nh h−ëng qua l¹i lÉn nhau gi÷a c¸c thuéc tÝnh cña 1 quan hÖ, gi÷a c¸c b¶n ghi trong 1 quan hÖ vµ gi÷a c¸c thuéc tÝnh cña c¸c b¶n ghi trong c¸c quan hÖ víi nhau.
Khi x¸c ®Þnh mét RBTV cÇn chØ râ:
- Néi dung RBTV vµ c¸ch biÓu diÔn thÝch hîp
- Bèi c¶nh x¶y ra RBTV: trªn 1 hay nhiÒu quan hÖ, cô thÓ c¸c quan hÖ nµo
- Ph¹m vi ¶nh h−ëng cña RBTV. Kh¶ n¨ng tÝnh toµn vÑn d÷ liÖu bÞ vi ph¹m.
- C¸c ph−¬ng ¸n xö lý khi ph¸t hiÖn RBTV bÞ vi ph¹m
Néi dung RBTV lµ m« t¶ quy t¾c ph¶i tu©n theo. ViÖc biÓu diÔn nã cã thÓ b»ng ng«n ng÷ tù nhiªn, thuËt gi¶i (ng«n ng÷ cã cÊu tróc), ng«n ng÷ ®¹i sè tËp hîp, ®¹i sè quan hÖ hoÆc b»ng phô thuéc hµm.
HOADON (sèhd, sè chñng lo¹i mÆt hμng, tæng trÞ gi¸)
HANG (M· hμng, tªn hμng, ®v tÝnh)
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
28
CHITIETHOADON (sèhd, m· hμng, SL, ®¬n gi¸, trÞ gi¸)
RBTV1: mçi ho¸ ®¬n cã mét sè riªng biÖt kh«ng trïng víi c¸c ho¸ ®¬n kh¸c
∀hd1,hd2 ∈ HOADON, hd1 ≠ hd2 ⇒ hd1.sohd ≠ hd2.sohd
Bèi c¶nh cã thÓ ®Þnh nghÜa trªn 1 c¬ së quan hÖ hay nhiÒu c¬ së quan hÖ. §ã lµ nh÷ng quan hÖ mµ RBTV ®−îc ¸p dông trªn ®ã:
- Bèi c¶nh RBTV1 (mçi ho¸ ®¬n cã mét sè riªng biÖt kh«ng trïng víi c¸c ho¸ ®¬n kh¸c) chØ trong 1 quan hÖ HOADON
- Bèi c¶nh RBTV2 (sè chñng lo¹i mÆt hµng b»ng sè bé cña CHITIETHOADON cã cïng sè ho¸ ®¬n) trong 2 quan hÖ HOADON vµ CHITIETHOADON
Mét RBTV cã thÓ liªn quan ®Õn mét sè quan hÖ, chØ khi cã thao t¸c cËp nhËt (chÌn, söa, xo¸) míi cã nguy c¬ vi ph¹m RBTV, do vËy cÇn chØ râ thao t¸c nµo dÉn ®Õn viÖc cÇn ph¶i kiÓm tra RBTV.
Trong qu¸ tr×nh ph©n tÝch thiÕt kÕ, ng−êi ph©n tÝch cÇn lËp b¶ng x¸c ®Þnh ph¹m vi ¶nh h−ëng cho mçi RBTV nh»m x¸c ®Þnh khi nµo ph¶i tiÕn hµnh kiÓm tra c¸c RBTV ®ã. Sau khi x©y dùng c¸c b¶ng ¶nh h−ëng cña tõng RBTV trªn c¸c quan hÖ liªn quan, cÇn tæng hîp b»ng c¸ch x©y dùng b¶ng tæng hîp c¸c RBTV nh»m x¸c ®Þnh tÊt c¶ c¸c RBTV cÇn ph¶i kiÓm tra trªn tõng quan hÖ.
CÇn cã hµnh ®éng thÝch hîp khi vi ph¹m RBTV. Th−êng cã 2 gi¶i ph¸p:
- §−a th«ng b¸o vµ yªu cÇu söa ch÷a d÷ liÖu cña c¸c thuéc tÝnh cho phï hîp víi quy t¾c ®¶m b¶o tÝnh nhÊt qu¸n d÷ liÖu. Th«ng b¸o cÇn ®Çy ®ñ, th©n thiÖn víi NSD. Gi¶i ph¸p nµy phï hîp víi viÖc xö lý thêi gian thùc.
- Tõ chèi thao t¸c cËp nhËt. Gi¶i ph¸p nµy phï hîp víi viÖc xö lý theo l«. ViÖc tõ chèi còng ph¶i ®−îc th«ng b¸o ®Çy ®ñ râ rµng v× sao thao t¸c bÞ tõ chèi vµ cÇn söa d÷ liÖu nµo.
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
29
c. Ph©n lo¹i RBTV
Trong CSDL quan hÖ, ng−êi ta th−êng chia RBTV thµnh 2 lo¹i chÝnh theo bèi c¶nh RBTV lµ trªn 1 quan hÖ c¬ së hay trªn nhiÒu quan hÖ c¬ së.
RBTV trªn bèi c¶nh 1 quan hÖ c¬ së cã c¸c lo¹i rµng buéc vÒ miÒn gi¸ trÞ, liªn thuéc tÝnh, liªn bé, liªn thuéc tÝnh.
VÝ dô:
KQUATHI (m·hv, m· m«n, lÇn thi, ngμy thi, ®iÓm thi)
∀ kq ∈ KQUATHI: 0<= kq.lÇn thi <=3
∀ kq ∈ KQUATHI: 0<= kq.®iÓm thi <=10
RBTV liªn thuéc tÝnh cã liªn quan tíi nhiÒu thuéc tÝnh cña 1 quan hÖ. Th«ng th−êng ®ã lµ c¸c phô thuéc tÝnh to¸n hoÆc mét suy diÔn tõ gi¸ trÞ cña 1 hay nhiÒu thuéc tÝnh trong cïng mét bé gi¸ trÞ:
CHITIETHOADON (sè hd, m· hμng, SL, ®¬n gi¸, TrÞ gi¸)
∀ cthd ∈ CHITIETHOADON, cthd.trÞ gi¸ = cthd.SL* cthd.®¬n gi¸
KQUATHI (m·hv, m· m«n, lÇn thi, ngμy thi, ®iÓm thi)
∀ kq ∈ KQUATHI, nÕu kq.lÇn thi = 1 th× 0 <= kq.®iÓm thi <=10.0
hoÆc: nÕu kq.lÇn thi >1
th× ∃kq’ ∈ KQUATHI: kq’.lÇn thi = kq.lÇn thi - 1 vµ kq’.®iÓm thi < 5
Cã 2 tr−êng hîp RBTV phô thuéc tån t¹i (phô thuéc vÒ kho¸ ngo¹i):
- Cã sù hiÖn diÖn cña kho¸ ngo¹i
- Cã sù lång kho¸ gi÷a c¸c quan hÖ
VÝ dô:
RBTV1: mçi líp häc ph¶i thuéc 1 khoa nhÊt ®Þnh
KHOA (m· khoa, tªn khoa)
LOPHOC (m· líp, tªn líp, niªn kho¸, sè häc viªn, m· khoa)
∀ lh ∈ LOPHOC, ∃kh ∈ KHOA: lh.m· khoa=kh.m· khoa
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
30
RBTV2: mçi bé cña chi tiÕt ho¸ ®¬n ph¶i cã 1 ho¸ ®¬n víi sè ho¸ ®¬n t−¬ng øng
HOADON (sèhd, sè chñng lo¹i mÆt hμng, tæng trÞ gi¸)
CHITIETHOADON (sè hd, m· hμng, SL, ®¬n gi¸)
∀ cthd ∈ CHITIETHOADON, ∃hd∈ HOADON: cthd.sohd=hd.sohd
Khi cã sù hiÖn diÖn cña 1 thuéc tÝnh mang tÝnh tæng hîp hay trung gian (tÝnh ®−îc nhê gi¸ trÞ cña nhiÒu thuéc tÝnh kh¸c trªn 1 hay nhiÒu quan hÖ kh¸c nhau trong CSDL) hay phô thuéc tån t¹i lång kho¸ th× cã RBTV liªn bé, liªn quan hÖ:
Víi mäi bé gi¸ trÞ cña LOPHOC, nÕu sè l−îng häc viªn > 0 th× sè l−îng nµy ph¶i b»ng tæng sè bé gi¸ trÞ ®Õm ®−îc cña c¸c häc viªn cã cïng m· líp.
LOPHOC (m· líp, tªn líp, niªn kho¸, sè häc viªn, m· khoa)
HOCVIEN (m· häc viªn, tªn häc viªn, m· líp)
∀ lh ∈ LOPHOC: nÕu lh.sè häc viªn > 0:
lh.sè häc viªn = COUNT (hv ∈ HOCVIEN, hv.m· líp = lh.m· líp)
e. BiÓu diÔn RBTV b»ng phô thuéc hμm (function dependency)
Phô thuéc hµm (PTH) cã tÇm quan träng rÊt lín trong viÖc ph©n tÝch vµ thiÕt kÕ m« h×nh d÷ liÖu. Phô thuéc hµm lµ mét trong nh÷ng kh¸i niÖm cèt lâi nhÊt trong m« h×nh c¬ së d÷ liÖu quan hÖ sÏ ®−îc tr×nh bµy chi tiÕt sau.
Chóng ta còng cÇn l−u ý toµn vÑn d÷ liÖu cã thÓ ®¶m b¶o tÝnh hîp lÖ cña d÷ liÖu khi ®−îc l−u trong CSDL, nh−ng l¹i khã cã thÓ kiÓm tra mçi mét gi¸ trÞ nh− vËy vÒ tÝnh ®óng. VÝ dô, khi nhËp gi¸ trÞ giê lµm viÖc cña mét nh©n viªn trong tuÇn, kh«ng cã c¸ch nµo cã thÓ ph¸t hiÖn sù kiÖn lµ mét gi¸ trÞ vµo b»ng 35 lµ sai, trong khi ®ã thùc sù ph¶i lµ gi¸ trÞ 38. Tuy nhiªn, nÕu mét gi¸ trÞ lµ 350 ®èi víi giê lµm viÖc râ rµng lµ sai vµ hÖ thèng sÏ kh«ng chÊp nhËn gi¸ trÞ ®ã, bëi mét tuÇn kh«ng thÓ cã 350 giê.
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
31
Gi÷ g×n tÝnh toµn vÑn cña CSDL cã thÓ xem lµ sù b¶o vÖ d÷ liÖu trong CSDL chèng l¹i sù cËp nhËt hay ph¸ huû kh«ng cã c¨n cø. Chó ý, chóng ta còng ph¶i ph©n biÖt tÝnh toµn vÑn d÷ liÖu, víi tÝnh an toµn d÷ liÖu dï r»ng hai kh¸i niÖm nµy quan hÖ rÊt mËt thiÕt víi nhau vµ thùc sù cã thÓ dïng chung mét c¬ chÕ ®Ó thùc hiÖn b¶o vÖ c¶ hai ë mét møc ®é nµo ®ã.
Nãi chung mçi mét b¶ng d÷ liÖu trong CSDL quan hÖ ®Òu cã mét tËp c¸c rµng buéc toµn vÑn ®i kÌm víi nã. C¸c rµng buéc toµn vÑn nµy còng ®−îc l−u tr÷ trong tõ ®iÓn d÷ liÖu.
1.1.8. HÖ qu¶n trÞ CSDL (DBMS)
HÖ qu¶n trÞ CSDL lµ hÖ thèng bao gåm nhiÒu phÇn mÒm cho phÐp m« t¶, l−u gi÷, thao t¸c c¸c d÷ liÖu trªn 1 CSDL. Nã ®¶m b¶o tÝnh an toµn, bÝ mËt cña d÷ liÖu trong m«i tr−êng nhiÒu ng−êi sö dông.
Cã thÓ ®−a ra ®Þnh nghÜa HÖ qu¶n trÞ CSDL râ rµng h¬n. VÝ dô nh− lµ:
- PhÇn mÒm qu¶n lý CSDL, gióp cho viÖc thùc hiÖn c¸c thao t¸c nh− chÌn, söa, xãa vµ t×m kiÕm d÷ liÖu
- HÖ thèng bao gåm nhiÒu phÇn mÒm cho phÐp m« t¶, l−u gi÷, thao t¸c c¸c d÷ liÖu trªn mét CSDL, ®¶m b¶o an toµn, bÝ mËt cña d÷ liÖu trong m«i tr−êng nhiÒu NSD
- Bé phÇn mÒm vµ nh÷ng c«ng cô cã s½n do mét sè nhµ s¶n xuÊt phÇn mÒm cung cÊp ®Ó t¹o lËp vµ qu¶n lý CSDL
HiÖn nay, chóng ta th−êng gÆp c¸c hÖ qu¶n trÞ CSDL cì võa vµ nhá nh− Foxpro, Access, cì lín nh− SQL Server, Oracle.
1.1.9. Kho d÷ liÖu
Nh− chóng ta ®· biÕt, CSDL ®· ®−îc sö dông tõ nh÷ng n¨m 60 vµ chóng ngµy cµng chøng tá lµ nh÷ng thµnh phÇn kh«ng thÓ thiÕu trong c¸c ho¹t ®éng cña doanh nghiÖp. Mét xu h−íng míi ®· xuÊt hiÖn vµ ph¸t triÓn kh¸ nhanh trong c¸c hÖ CSDL ®ã lµ c¸c CSDL hç trî viÖc ph©n tÝch vµ khai th¸c d÷ liÖu, ng−êi ta gäi ®ã lµ nh÷ng kho d÷ liÖu,
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
32
chóng chñ yÕu ®−îc phôc vô cho c¸c øng dông hç trî ra quyÕt ®Þnh DSS (Decision Support System). Kho d÷ liÖu cã nh÷ng ®Æc ®iÓm c¬ b¶n sau:
- TÝnh tÝch hîp: d÷ liÖu tËp hîp trong kho ®−îc thu thËp tõ nhiÒu nguån vµ ®−îc tÝch hîp víi nhau t¹o thµnh mét thÓ thèng nhÊt.
- TÝnh h−íng chñ ®Ò: C¸c d÷ liÖu ®−îc thu thËp, trÝch läc vµ lµm s¹ch ®Ó ®−a vµo kho theo nh÷ng chñ ®Ò nhÊt ®Þnh.
- G¾n thêi gian: Mçi hµng th«ng tin trong kho d÷ liÖu ®Òu chøa mét yÕu tè thêi gian nh− mét phÇn cña kho¸ chÝnh ®Ó ®¶m b¶o tÝnh ®¬n nhÊt cña mçi hµng vµ cung cÊp mét ®Æc tr−ng vÒ thêi gian cho d÷ liÖu.
- TÝnh lÞch sö: C¸c th«ng tin trong kho d÷ liÖu ®−îc tËp trung theo thêi gian vµ thÓ hiÖn mét khung nh×n vÒ mét lÜnh vùc chñ ®Ò trong mét giai ®o¹n dµi.
- TÝnh chØ ®äc: d÷ liÖu trong kho lµ d÷ liÖu chØ ®äc vµ kh«ng thÓ bÞ söa ®æi.
- TÝnh bÊt biÕn: d÷ liÖu ®−îc l−u tr÷ l©u dµi trong kho, mÆc dï nh÷ng d÷ liÖu míi vÉn bÞ söa ®æi, ®iÒu ®ã cho phÐp cung cÊp th«ng tin vÒ mét kho¶ng thêi gian dµi, ®ñ sè liÖu cÇn thiÕt cho c¸c m« h×nh nghiÖp vô ph©n tÝch, dù b¸o.
- Bao gåm c¶ d÷ liÖu tæng hîp vμ chi tiÕt: d÷ liÖu chi tiÕt lµ th«ng
tin møc thÊp nhÊt ®−îc l−u tr÷ trong kho. d÷ liÖu tæng hîp ®−îc tÝch hîp l¹i qua nhiÒu giai ®o¹n kh¸c nhau.
1.2. C¸c ph−¬ng tiÖn diÔn t¶ d÷ liÖu
1.2.1. Kh¸i niÖm diÔn t¶ d÷ liÖu
DiÔn t¶ d÷ liÖu ®−îc xem nh− viÖc x¸c ®Þnh tªn, d¹ng d÷ liÖu vµ tÝnh chÊt cña d÷ liÖu; nã kh«ng phô thuéc vµo ng−êi sö dông ®ång thêi kh«ng phô thuéc vµo yªu cÇu t×m kiÕm vµ thay ®æi th«ng tin.
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
33
Chóng ta tËp trung ®Ò cËp ®Õn c¸c ph−¬ng tiÖn vµ m« h×nh diÔn t¶ d÷ liÖu. §ã lµ c¸c th«ng tin ®−îc quan t©m ®Õn trong qu¶n lý; nã ®−îc l−u tr÷ l©u dµi, ®−îc xö lý vµ sö dông trong hÖ thèng kinh doanh.
Cã nhiÒu c«ng cô ®Ó diÔn t¶ d÷ liÖu, ®ã lµ c¸c c¸ch trõu t−îng ho¸ d÷ liÖu, ®Æc biÖt lµ mèi quan hÖ cña d÷ liÖu nh»m phæ biÕn nh÷ng c¸i chung nhÊt mµ ng−êi ta cã thÓ trao ®æi lÉn nhau.
Cã nhiÒu c«ng cô diÔn t¶ d÷ liÖu, ë ®©y chóng ta ®Ò cËp tíi 4 c«ng cô chñ yÕu:
- M· ho¸ d÷ liÖu (coding)
- Tõ ®iÓn d÷ liÖu (Data Dictionary)
- M« h×nh thùc thÓ liªn kÕt E- R (Entity_Relationship)
- M« h×nh c¬ së d÷ liÖu quan hÖ (Relational Data Base Modeling)
1.2.2. M· ho¸
a. Kh¸i niÖm m· ho¸
M· lµ tªn viÕt t¾t g¾n cho mét ®èi t−îng nµo ®ã hay nãi c¸ch kh¸c mçi ®èi t−îng cÇn cã tªn vµ vÊn ®Ò ®Æt ra ta sÏ ®Æt tªn cho ®èi t−îng nh− thÕ nµo. Trong mçi ®èi t−îng gåm nhiÒu thuéc tÝnh kh¸c nhau th× yªu cÇu m· ho¸ cho c¸c thuéc tÝnh còng lµ yªu cÇu cÇn thiÕt. Ngoµi ra m· ho¸ cßn lµ h×nh thøc chuÈn ho¸ d÷ liÖu ®Æc biÖt trong c¸c hÖ thèng th«ng tin xö lý b»ng m¸y tÝnh.
Mét sè vÝ dô vÒ m· ho¸:
Khi ta cÇn x¸c ®Þnh mét c«ng d©n th× sè chøng minh th− hoÆc sè hé chiÕu lµ m· cña c«ng d©n ®ã. Khi cÇn x¸c ®Þnh xe « t« hay xe m¸y th× biÓn sè xe lµ m· cña xe ®ã.
b. ChÊt l−îng cña viÖc m· ho¸
Trong thùc tÕ ta gÆp rÊt nhiÒu ®èi t−îng cÇn m· ho¸ nh− m· ho¸ c¸c ngµnh nghÒ ®µo t¹o, m· ho¸ c¸c bÖnh, m· sè ®iÖn tho¹i, m· thÎ sinh viªn, thÎ b¶o hiÓm y tÕ. Chóng ta cã nhiÒu ph−¬ng ph¸p m· kh¸c
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
34
nhau. Do vËy, cÇn x¸c ®Þnh mét sè tiªu chÝ ®Ó ®¸nh gi¸ chÊt l−îng cña viÖc m· ho¸:
- M· kh«ng ®−îc nhËp nh»ng: ThÓ hiÖn ¸nh x¹ 1_1 gi÷a m· ho¸ vµ gi¶i m·, mçi ®èi t−îng ®−îc x¸c ®Þnh râ rµng víi mét m· nhÊt ®Þnh.
- ThÝch øng víi ph−¬ng thøc sö dông: ViÖc m· cã thÓ tiÕn hµnh b»ng thñ c«ng nªn dÔ hiÓu ®Ó gi¶i m·, viÖc m· ho¸ b»ng m¸y ®ßi hái có ph¸p chÆt chÏ.
- Cã kh¶ n¨ng më réng m·:
+ Thªm phÝa cuèi (sau) cña c¸c m· ®· cã.
+ Xen m· míi vµo gi÷a c¸c m· ®· cã, th−êng m· xen ph¶i dïng ph−¬ng ph¸p cãc nh¶y, nh¶y ®Òu ®Æn dùa vµo thèng kª ®Ó tr¸nh t×nh tr¹ng “bïng næ” m·.
- M· ph¶i ng¾n gän lµm gi¶m kÝch cì cña m·, ®©y còng lµ môc tiªu cña m· ho¸. Tuy nhiªn ®iÒu nµy ®«i khi m©u thuÉn víi kh¸i niÖm më réng m· sau nµy.
- Cã tÝnh gîi ý: TÝnh ng÷ nghÜa cña m·; §«i khi tÝnh gîi ý lµ yªu cÇu ®èi víi m· c«ng khai, lµm cho viÖc m· ho¸ thuËn tiÖn dÔ dµng
c. C¸c kiÓu m· ho¸
M· ho¸ kiÓu liÖt kª: dïng c¸c sè nguyªn liªn tiÕp 000,001,002... ®Ó m· ho¸.
¦u ®iÓm:
+ Kh«ng nhËp nh»ng
+ §¬n gi¶n
+ Thªm phÝa sau
Nh−îc ®iÓm:
+ Kh«ng xen ®−îc
+ ThiÕu tÝnh gîi ý, cÇn ph¶i cã b¶ng t−¬ng øng
+ Kh«ng ph©n theo nhãm
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
35
M· hãa theo l¸t: dïng c¸c sè nguyªn nh−ng ph©n ra tõng l¸t (líp) cho tõng lo¹i ®èi t−îng, trong mçi l¸t dïng m· liªn tiÕp.
VÝ dô: M· ho¸ Ngò kim
Vïng 1 0001 - 0999 ngò kim bÐ
Vïng 2 0010 - 0099 vÝt
Vïng 3 0100 - 0299 ª cu
0300 - 0499 bul«ng
0500- 0599 ®inh
Vïng 4 1000- 1999 chi tiÕt kim lo¹i
1000- 1099 s¾t U
¦u ®iÓm:
+ Kh«ng nhËp nh»ng
+ §¬n gi¶n
+ Më réng xen thªm ®−îc
Nh−îc ®iÓm: ThiÕu gîi ý
M· ph©n ®o¹n: B¶n th©n m· ph©n thµnh nhiÒu ®o¹n, mçi ®o¹n
mang mét ý nghÜa riªng.
VÝ dô: Sè ®¨ng ký xe m¸y
BiÓn sè xe m¸y nhµ «ng P lµ 29 Y1 366 lµ biÓn ®¨ng ký t¹i Hµ Néi t−¬ng øng víi sè 29, nhãm Y1, sè thø tù 366.
M· sinh viªn: A # ## ### cho biÕt hÖ ®µo t¹o (chÝnh quy, t¹i chøc, v¨n b»ng 2, tõ xa), ngµnh (hiÖn t¹i ch−a qu¸ 9 ngµnh), n¨m nhËp häc, sè thø tù.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
36
¦u ®iÓm:
+ Kh«ng nhËp nh»ng
+ Më réng xen thªm ®−îc
+ §−îc dïng kh¸ phæ biÕn
+ Cho phÐp thiÕt lËp c¸c ph−¬ng thøc kiÓm tra gi¸n tiÕp ®èi víi m· cña c¸c ®èi t−îng.
Nh−îc ®iÓm:
+ Qu¸ dµi → thao t¸c nÆng nÒ
+ Kh«ng cè ®Þnh
+ Cã thÓ bÞ b·o hoµ
M· ph©n cÊp: C¸c ®èi t−îng bÞ m· ho¸ theo chÕ ®é ph©n cÊp c¸c chi tiÕt nhá dÇn. Mét h×nh ¶nh kh¸ quen thuéc cña m· ph©n cÊp lµ ®¸nh sè ch−¬ng, tiÕt, môc trong mét quyÓn s¸ch.
1. Ch−¬ng 1
1.1. Bµi 1
1.2. Bµi 2
2. Ch−¬ng 2
2.1. Bµi 3
2.1.1. Môc 1
2.1.2. Môc 2
2.2. Bµi 4
2.3. Bµi 5
¦u ®iÓm: Gièng nh− ph©n ®o¹n
T×m kiÕm dÔ dµng
Nh−îc ®iÓm:
Gièng ph©n ®o¹n
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
37
VÝ dô:
H×nh 1.7. CÊu tróc cña m· ph©n cÊp
M· diÔn nghÜa: G¾n víi mét tªn ng¾n gän nh−ng hiÓu ®−îc cho mét ®èi t−îng.
VÝ dô: §éi bãng c¸c n−íc tham gia SEA GAMES ®−îc m· b»ng c¸ch lÊy 3 ký tù ®Çu nh− sau:
VIE: Vietnam, THA: Thailand, SIN: Singapore, IND: Indonesia, MAL: Malaysia...
¦u ®iÓm: tiÖn dông cho NSD trong xö lý c«ng viÖc hµng ngµy.
Nh−îc ®iÓm: cµng dµi nÕu sè l−îng thµnh phÇn tham gia m· ho¸ cµng lín.
M· v¹ch - m· sè hμng ho¸ (bar code):
M· sè hµng hãa lµ mét d·y c¸c con sè ®−îc ghi ë d−íi m· v¹ch dïng ®Ó ph©n ®Þnh s¶n phÈm hµng hãa. Mçi d·y sè nh− vËy sÏ ®Æc tr−ng cho mét lo¹i hµng hãa cña c¬ së s¶n xuÊt vµ cña quèc gia s¶n xuÊt lo¹i hµng hãa ®ã. M· sè sÏ t¹o thuËn lîi cho qu¶n lý trong qu¸ tr×nh vËn chuyÓn, l−u kho, mua, b¸n. Bao giê m· sè vµ m· v¹ch ®−îc in trªn bao b× s¶n phÈm th× s¶n phÈm ®ã míi coi lµ ®ñ tiªu chuÈn ®Ó nhËp khÈu vµo mét n−íc nµo ®ã. HiÖn nay, ë ViÖt Nam tæ chøc m· sè, m· v¹ch ®−îc thµnh lËp ngµy 29/3/1995 gäi t¾t lµ EAN- VN (tªn tiÕng Anh lµ Europe Article Numberring). ViÖt Nam lµ thµnh viªn cña Héi
1
1.1 1.2
1.3.1.1 1.2.1.31.2.1.2
1.3.1
1.2.1.1
1.2.31.2.21.2.1 1.1.1
1.3
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
38
m· sè, m· v¹ch Quèc tÕ (EAN International). Nh− vËy, c¸c s¶n phÈm cña c¸c nhµ s¶n xuÊt ViÖt Nam muèn xuÊt khÈu sang n−íc ngoµi cã thÓ ®¨ng ký m· sè, m· v¹ch do EAN- VN cÊp.
HiÖn nay, m· sè quèc gia cña ViÖt Nam ®−îc cÊp (3 sè ®Çu) lµ 893, nhãm sè tiÕp sau chØ m· cña nhµ s¶n xuÊt vµ nhãm sè tiÕp n÷a lµ m· cña s¶n phÈm, sè cuèi cïng lµ sè kiÓm tra.
M· sè cña ViÖt Nam hiÖn nay sö dông cã thÓ lµ 8 hoÆc 13 ch÷ sè viÕt t¾t lµ EAN- 8 vµ EAN- 13. EAN- 8 dïng cho s¶n phÈm cã chñng lo¹i Ýt vµ EAN- 13 dïng cho s¶n phÈm cã chñng lo¹i nhiÒu.
M· v¹ch lµ mét d·y c¸c v¹ch ®en tr¾ng dïng ®Ó thÓ hiÖn m· sè d−íi d¹ng ký hiÖu mµ m¸y quÐt cã thÓ ®äc ®−îc, ®Ó l−u vµo bé nhí cña hÖ thèng m¸y tÝnh hay m¸y tÝnh tiÒn mét c¸ch nhanh chãng vµ chÝnh x¸c. D·y c¸c v¹ch ®en tr¾ng nµy cã ®é chÝnh x¸c tíi 1/100mm vµ ®−îc in b»ng chÊt liÖu ®Æc biÖt ®Ó chèng lµm gi¶.
VÝ dụ:
H×nh 1.8
M· sè cña mét s¶n phÈm trong h×nh trªn lµ 893 5025 33457 6, trong ®ã 893 lµ ViÖt Nam, 5025 lµ m· tªn ®¬n vÞ s¶n xuÊt - C«ng ty Trµ vµ Cµ phª T©m Ch©u, 33457 lµ m· cña s¶n phÈm - cµ phª pha phin, 6 lµ m· kiÓm tra.
d. C¸ch lùa chän sù m· ho¸
Cã nhiÒu ph−¬ng ph¸p m· ho¸ kh¸c nhau, cã thÓ sö dông kÕt hîp nhiÒu kiÓu ®Ó ®¹t chÊt l−îng m· tèt nhÊt. ViÖc lùa chän m· ho¸ cÇn dùa vµo nh÷ng yÕu tè sau:
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
39
- Nghiªn cøu viÖc sö dông m· sau nµy
- Nghiªn cøu sè l−îng c¸c ®èi t−îng m· ho¸ ®Ó l−êng tr−íc ®−îc sù ph¸t triÓn.
- Nghiªn cøu sù ph©n bè thèng kª c¸c ®èi t−îng ®Ó ph©n bæ theo líp.
- T×m xem ®· cã nh÷ng m· ho¸ nµo ®−îc dïng tr−íc ®ã cho c¸c ®èi t−îng nµy ®Ó kÕ thõa.
- Tho¶ thuËn ng−êi dïng.
- Thö nghiÖm tr−íc khi dïng chÝnh thøc.
1.2.3. Tõ ®iÓn d÷ liÖu
Tõ ®iÓn d÷ liÖu (cßn gäi tõ ®iÓn yªu cÇu) lµ bé phËn cña t− liÖu trong PT_TK, nã lµ v¨n ph¹m gi¶ h×nh thøc m« t¶ néi dung cña c¸c sù vËt, ®èi t−îng theo ®Þnh nghÜa cã cÊu tróc. Trong biÓu ®å luång d÷ liÖu c¸c chøc n¨ng xö lý, kho d÷ liÖu, luång d÷ liÖu chØ m« t¶ ë møc kh¸i qu¸t th−êng lµ tËp hîp c¸c kho¶n môc riªng lÎ. C¸c kh¸i qu¸t nµy cÇn ®−îc m« t¶ chi tiÕt ho¸ h¬n qua c«ng cô tõ ®iÓn d÷ liÖu.
CÊu t¹o tõ ®iÓn: Tõ ®iÓn d÷ liÖu lµ sù liªn kÕt cã tæ chøc c¸c phÇn
tö d÷ liÖu thuéc hÖ thèng, liÖt kª c¸c môc tõ chØ tªn gäi theo mét thø tù nµo ®ã vµ gi¶i thÝch c¸c tªn mét c¸ch chÝnh x¸c, chÆt chÏ, ng¾n gän ®Ó cho c¶ ng−êi dïng vµ ng−êi ph©n tÝch hiÓu chung c¸i vµo, c¸i ra, c¸i lu©n chuyÓn.
C¸c môc tõ t−¬ng øng víi mét tªn gäi kÌm theo c¸c gi¶i thÝch.
Tªn gäi cã thÓ ®i cïng víi tªn ®ång nghÜa nh− “ho¸ ®¬n” (ho¸ ®¬n
kiªm phiÕu thu). C¸c gi¶i thÝch bao gåm gi¶i thÝch vÒ cÊu tróc (®¬n gi¶n hay phøc t¹p), vÒ b¶n chÊt (liªn tôc hay rêi r¹c), vÒ chi tiÕt (miÒn
gi¸ trÞ, ®¬n vÞ ®o, ®é chÝnh x¸c,…), còng nh− vÒ mèi liªn hÖ víi c¸c
thuËt ng÷ kh¸c. Néi dung c¸c môc tõ th−êng thay ®æi theo lo¹i ®èi t−îng: luång d÷ liÖu (ho¸ ®¬n), kho/tÖp d÷ liÖu (nh©n viªn), phÇn tö d÷
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
40
liÖu hoÆc thuéc tÝnh (ngµy më tµi kho¶n), chøc n¨ng xö lý (kiÓm tra ®¬n hµng). Ngoµi ra, trong néi dung c¸c môc tõ cã c¶ phÇn ®Þnh nghÜa d÷ liÖu.
Ký ph¸p m« t¶ néi dung cho tõ ®iÓn d÷ liÖu tu©n theo b¶ng 1.5:
B¶ng 1.5. B¶ng ký ph¸p trong tõ ®iÓn d÷ liÖu
KÕt cÊu d÷ liÖu Ký ph¸p
ý nghÜa
TuÇn tù
TuyÓn chän
LÆp
=
+
[/]
*
hoÆc
{ }n
()
* *
®−îc t¹o tõ
vμ
hoÆc
LÆp
hoÆc
LÆp n lÇn
D÷ liÖu tuú chän
Giíi h¹n chó thÝch
C¸c d¹ng biÓu thÞ tõ ®iÓn:
1. D¹ng thuéc tÝnh
B¶ng 1.6. VÝ dô tõ ®iÓn d÷ liÖu d¹ng thuéc tÝnh
STT Tªn gäi KiÓu Cì LÜnh vùc Quy t¾c, rμng buéc vμ khu«n d¹ng
1 Sè phiÕu xuÊt Ký tù 7 KÕ to¸n, kho Ch÷ hoa hoÆc sè
2 Ngμy xuÊt Ngμy th¸ng
8 KÕ to¸n, kho Ngμy/th¸ng/n¨m
3 Tªn hμng Ký tù 25 KÕ to¸n, kho Ch÷ hoa + sè
4 Gi¸ xuÊt Sè 8 KÕ to¸n §¬n vÞ: ngh×n ®ång
5 Sè l−îng xuÊt Sè 5 Kho §¬n vÞ: chiÕc
6 Sè tiÒn Sè 12 KÕ to¸n Hai sè lÎ sau dÊu ph¶y
7 M· kho Ký tù 4 Kho Ch÷ hoa + sè
2. D¹ng thùc thÓ
Gi¶ sö cã tê ho¸ ®¬n b¸n hµng nh− sau:
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
41
C«ng ty: Hoµng Hµ
Ho¸ ®¬n b¸n hμng Sè H§: 1199 Ngμy: 01- 01- 2009
Tªn kh¸ch hμng: H−¬ng Giang Tμi kho¶n: KMB§1111983
§Þa chØ: §−êng Ngùa Vμng Tel: (043) 8460201
Lo¹i tiÒn thanh to¸n: USD Tû gi¸: 18780
B¶ng 1.7. VÝ dô tõ ®iÓn d÷ liÖu d¹ng thùc thÓ
M· thiÕt bÞ Tªn thiÕt bÞ M« t¶ §¬n gi¸ Kho
CPUSK478P30 Bé vi xö lý Pentium 4
Pentium IV 3.0C GHz (Box/512Kb/Bus800)
240 A
ASUSP4V533MX Bo m¹ch chñ Pentium 4
VIA chipset/SK478/Bus533 VGA/Sound/NIC onboard, support DDRAM, Huper threading cã AGP më réng
54 B
VGA8 Card mμn h×nh
VGA 8Mb (2X) Ati 10 C
Tæng tiÒn thanh to¸n 304
Ng−êi nhËn KÕ to¸n Thñ kho
Ta cã mét phÇn tõ ®iÓn d÷ liÖu sau:
X¸c ®Þnh mét tê ho¸ ®¬n nh− sau:
Ho¸ ®¬n = Sè H§ + Ngµy + Tªn kh¸ch hµng + Tµi kho¶n + §Þa chØ + Telephone + Lo¹i tiÒn thanh to¸n + Tû gi¸ + M· thiÕt bÞ* + tªn thiÕt bÞ* + m« t¶* + ®on gi¸* + kho* + tæng tiÒn thanh to¸n + Ng−êi nhËn + KÕ to¸n + Thñ kho.
X¸c ®Þnh th«ng tin vÒ kh¸ch hμng
Kh¸ch hµng = Tªn kh¸ch hµng + Tµi kho¶n + §Þa chØ + Telephone
X¸c ®Þnh th«ng tin vÒ tõng lo¹i thiÕt bÞ
ThiÕt bÞ = M· thiÕt bÞ + tªn thiÕt bÞ + m« t¶+ ®on gi¸
Hä tªn kh¸ch cÇn ®−îc t¸ch tªn ®Ó thuËn tiÖn cho TiÕng ViÖt
Tªn kh¸ch hµng = Hä ®Öm + Tªn
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
42
3. D¹ng ®Æc t¶
Tõ ®iÓn x¸c ®Þnh thuª bao di ®éng gäi dÞch vô cè ®Þnh:
Sè ®iÖn tho¹i = 0 + m· vïng + m· dÞch vô
M· vïng = [76/64/281/75/56/62/26/71/50/…]
*76 - AnGiang,64 - BµRÞaVòngTµu, 281 - B¾c K¹n,…*
M· dÞch vô = 1 + sè hiÖu dÞch vô
Sè hiÖu dÞch vô = [01/02/03/04/05/…/20]
*01 - ®¨ng ký ®iÖn tho¹i ®−êng dµi trong n−íc, 113 - gäi c¶nh s¸t, 114 - gäi cøu ho¶, 115 - gäi cÊp cøu y tÕ,….*
4. D¹ng ®å thÞ
Địa chỉ
Số nhà Ngõ/ngách Đường phố Quận/huyện Tỉnh/thành phố
H×nh 1.9. VÝ dô d¹ng ®å thÞ cña tõ ®iÓn d÷ liÖu
5. D¹ng tÖp: bao gåm tªn tÖp, m« t¶, tõ ®ång nghÜa, tõ hîp thµnh, c¸ch tæ chøc (tuÇn tù, nhÞ ph©n, hµm b¨m) vµ c¸c xö lý.
6. D¹ng chøc n¨ng xö lý: bao gåm Vµ c¸c m« t¶, tõ ®ång nghÜa, c¸i vµo, c¸i ra, tªn chøc n¨ng: vÝ dô nh− kiÓm tra ®¬n hµng.
L−u ®å thÓ hiÖn chøc n¨ng xö lý nh− h×nh 1.10.
H×nh 1.10. L−u ®å thÓ hiÖn chøc n¨ng xö lý
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
43
1.3. M« h×nh d÷ liÖu
1.3.1. Kh¸i niÖm m« h×nh d÷ liÖu
M« h×nh d÷ liÖu lµ c¸ch biÓu diÔn c¸c cÊu tróc d÷ liÖu cho mét CSDL d−íi d¹ng c¸c kh¸i niÖm. C¸c cÊu tróc d÷ liÖu bao gåm c¸c ®èi t−îng d÷ liÖu, mèi liªn hÖ gi÷a c¸c d÷ liÖu, ng÷ nghÜa cña d÷ liÖu vµ c¸c rµng buéc trªn c¸c ®èi t−îng d÷ liÖu ®ã.
M« h×nh d÷ liÖu kh«ng phô thuéc vµo c¸c rµng buéc vÒ c¶ phÇn cøng vµ phÇn mÒm. Nã tËp trung vµo viÖc m« t¶ c¸c d÷ liÖu vµ c¸ch tæ chøc chóng nh− thÕ nµo, kh«ng tËp trung vµo c¸c thao t¸c sÏ ®−îc thùc hiÖn trªn c¸c d÷ liÖu ®ã (viÖc nµy ®−îc thùc hiÖn bëi m« h×nh chøc n¨ng). ViÖc tËp trung vµo viÖc biÓu diÔn d÷ liÖu gióp cho NSD cã thÓ “nh×n thÊy” ®−îc chóng trong thÕ giíi thùc.
1.3.2. C¸c lo¹i m« h×nh CSDL
Cã 3 lo¹i m« h×nh CSDL:
1. M« h×nh CSDL quan niÖm
- Lµ m« h×nh m« t¶ d÷ liÖu cña thÕ giíi thùc g¾n víi ho¹t ®éng nghiÖp vô cña tæ chøc sö dông nã.
- M« t¶ c¸c cÊu tróc vµ mèi liªn hÖ gi÷a c¸c ®¬n vÞ th«ng tin c¬ b¶n.
- Lµ ph−¬ng tiÖn ®Ó giao tiÕp víi NSD nh»m x¸c ®Þnh ®óng ®¾n vµ ®Çy ®ñ c¸c yªu cÇu th«ng tin cña hÖ thèng.
- Hoµn toµn ®éc lËp víi mäi hÖ qu¶n trÞ d÷ liÖu vµ c¸ch thøc sö dông nã.
- Cung cÊp c¸c kh¸i niÖm g¾n liÒn víi c¸ch c¶m nhËn d÷ liÖu cña NSD. Nã tËp trung vµo b¶n chÊt logic cña biÓu diÔn d÷ liÖu, quan t©m ®Õn c¸i ®−îc biÓu diÔn, chø kh«ng quan t©m ®Õn c¸ch biÓu diÔn.
- M« h×nh kh¸i niÖm c¬ b¶n nh− m« h×nh E_R. M« h×nh E_R dïng ®Ó m« t¶ cÊu tróc logic tæng thÓ (l−îc ®å) cña mét CSDL b»ng h×nh ¶nh (®Æc t¶). Ng−êi ta quan niÖm thÕ giíi thùc bao gåm tËp c¸c E
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
44
vµ R. Trong ®ã, E - “sù vËt’’/”®èi t−îng’’ tøc lµ thùc thÓ trong thÕ giíi thùc vµ ph¶i ph©n biÖt ®−îc, cßn R lµ mèi quan hÖ (Relationship) gi÷a mét nhãm c¸c thùc thÓ.
VÝ dô: ng−êi, tµi kho¶n ng©n hµng,…
Thùc thÓ ®−îc m« t¶ trong CSDL b»ng tËp c¸c thuéc tÝnh. Thuéc tÝnh ®Þnh danh dïng ®Ó x¸c ®Þnh duy nhÊt mét b¶n thÓ/thÓ hiÖn/dßng d÷ liÖu.
- M« h×nh E_R chñ yÕu x¸c ®Þnh cÊu tróc d÷ liÖu h¬n lµ diÔn ®¹t c¸c quy t¾c nghiÖp vô (1. Toμn vÑn thùc thÓ: trong mét b¶n thÓ tån t¹i ®Þnh danh duy nhÊt vμ duy nhÊt, 2. Toμn vÑn tham chiÕu, 3. Thuéc cïng miÒn gi¸ trÞ, 4. C¸c ho¹t ®éng kÝch ho¹t: thùc hiÖn c¸c rμng buéc ®óng cho c¸c gi¸ trÞ c¸c thuéc tÝnh thuéc c¸c thùc thÓ cã quan hÖ víi nhau khi tiÕn hμnh c¸c thao t¸c d÷ liÖu).
2. M« h×nh CSDL logic: cung cÊp kh¸i niÖm cho NSD cã thÓ hiÓu ®−îc vµ kh«ng xa so víi c¸ch tæ chøc d÷ liÖu trong m¸y tÝnh. Chóng che dÊu mét sè chi tiÕt vÒ viÖc l−u tr÷ d÷ liÖu nh−ng cã thÓ cµi ®Æt trùc tiÕp trªn hÖ thèng m¸y tÝnh. M« h×nh d÷ liÖu logic cho 1 hÖ qu¶n trÞ CSDL:
+ M« t¶ c¸c d÷ liÖu b»ng c¸ch sö dông c¸c kÝ hiÖu t−¬ng øng víi m« h×nh d÷ liÖu mµ 1 hÖ qu¶n trÞ CSDL x©y dùng trªn nã.
+ Cã 4 lo¹i m« h×nh d÷ liÖu logic: m« h×nh d÷ liÖu ph©n cÊp, m¹ng, quan hÖ, h−íng ®èi t−îng.
+ HiÖn nay, ®−îc tæ chøc theo m« h×nh d÷ liÖu quan hÖ lµ chñ yÕu. 3. M« h×nh CSDL vËt lý: cung cÊp c¸c kh¸i niÖm m« t¶ chi tiÕt vÒ
viÖc c¸c d÷ liÖu ®−îc l−u tr÷ trong m¸y nh− thÕ nµo.
1.3.3. M« h×nh d÷ liÖu m¹ng vμ m« h×nh d÷ liÖu ph©n cÊp
Trong m« h×nh m¹ng (network) vµ m« h×nh ph©n cÊp (hierarchy), c¸c thùc thÓ ®−îc biÓu diÔn d−íi d¹ng c¸c b¶n ghi vµ c¸c liªn kÕt ®−îc biÓu diÔn bëi c¸c mãc nèi hay con trá. VÒ c¬ b¶n, c¸c mãc nèi cã kh¶
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
45
n¨ng biÓu diÔn c¸c liªn kÕt gi÷a mét thùc thÓ vµ nhiÒu thùc thÓ cña c¸c kiÓu thùc thÓ liªn quan. Tuy nhiªn, víi c¸ch nh×n d÷ liÖu theo kiÓu ph©n cÊp bëi cÊu tróc c©y, c¸c b¶n ghi d÷ liÖu chØ cã ý nghÜa khi nã ®−îc xem xÐt trong cÊu tróc c©y nÕu kh«ng cã phÇn tö bËc trªn nã. Tuy nhiªn, víi m« h×nh ph©n cÊp, chóng ta cã mét c¸ch rÊt tù nhiªn ®Ó m« h×nh ho¸ nh÷ng cÊu tróc ph©n cÊp thùc sù cña thÕ giíi thùc. CÊu tróc biÓu diÔn mèi quan hÖ cña CSDL theo kiÓu c©y ph©n cÊp tån t¹i trªn m¸y lín Mainframe.
M« h×nh d÷ liÖu m¹ng cã cÊu tróc tæng qu¸t h¬n so víi m« h×nh d÷ liÖu ph©n cÊp bëi mét b¶n ghi d÷ liÖu ®· cho cã thÓ cã mét sè bÊt kú c¸c phÇn tö bËc trªn trùc tiÕp còng nh− mét sè bÊt kú c¸c phÇn tö phô thuéc trùc tiÕp. CÊu tróc néi t¹i cña m« h×nh m¹ng phøc t¹p h¬n so víi m« h×nh ph©n cÊp nh−ng m« h×nh m¹ng l¹i ®èi xøng h¬n m« h×nh ph©n cÊp. §iÓm bÊt lîi chñ yÕu cña m« h×nh nµy ®ã lµ sù qu¸ phøc t¹p trong b¶n th©n m« h×nh vµ trong c¸c thao t¸c xö lý d÷ liÖu. Do vËy, nh÷ng NSD vµ ng−êi viÕt ch−¬ng tr×nh sÏ ph¶i hao tæn nhiÒu thêi gian vµo viÖc gi¶i quyÕt nh÷ng vÊn ®Ò n¶y sinh trong qu¸ tr×nh ph¸t triÓn vµ b¶o tr× ch−¬ng tr×nh. Cïng víi cÊu tróc quan hÖ, cÊu tróc m¹ng ®−îc sö dông trªn c¶ m¸y Mainframe vµ PC.
VÒ ph−¬ng diÖn cÊu tróc CSDL, mèi liªn hÖ gi÷a c¸c d÷ liÖu cã mèi quan hÖ chÆt chÏ víi sù liªn hÖ cña thùc thÓ víi thùc thÓ:
- NÕu mçi kho¸ cã mét b¶n ghi duy nhÊt ®i kÌm víi nã vµ nÕu víi mçi b¶n ghi cã mét gi¸ trÞ kho¸ chÝnh duy nhÊt th× mèi liªn hÖ gi÷a c¸c d÷ liÖu ®−îc gäi lµ 1-1. VÝ dô: sè chøng minh th− (CMT) vµ c«ng d©n cã mèi quan hÖ 1-1
- NÕu mçi gi¸ trÞ kho¸ cã nhiÒu b¶n ghi duy nhÊt ®i kÌm, mèi liªn hÖ nµy lµ 1-N. Tr−êng hä cã nhiÒu b¶n ghi ®i kÌm, mçi b¶n ghi chØ cã mét kho¸
- NÕu lµ mèi liªn hÖ kh«ng duy nhÊt cho c¶ kho¸ vµ b¶n ghi, nã ®−îc xem lµ mèi liªn hÖ N-N. VÝ dô mèi quan hÖ gi÷a nam sinh vµ n÷ sinh.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
46
Nh− vËy, trong cÊu tróc c©y ph©n cÊp: cã mèi liªn hÖ 1-1/1-N
(kh«ng cã mèi liªn hÖ N-N nh− c¸c cÊu tróc kh¸c). ë ®©y kh«ng nhãm d÷ liÖu vµo b¶n ghi mµ nhãm thµnh segment. Mçi Segment cã 1/n tr−êng. Quan hÖ gi÷a c¸c segment lµ quan hÖ cha - con, con phô thuéc cha. V× vËy ph¶i truy xuÊt segment cha t−¬ng øng tr−íc khi truy xuÊt ®Õn con (truy xuÊt segment gèc ®Çu tiªn). Trong cÊu tróc CSDL m¹ng: cã mèi quan hÖ N-N. Quan hÖ cha con gäi lµ quan hÖ chñ vµ thµnh viªn. Trong cÊu tróc nµy cã c¸c b¶n ghi. V× vËy truy xuÊt b¶n ghi chñ tr−íc, xong míi ®Õn thµnh viªn. Trong CSDL m¹ng, cÇn t¹o ra kho¸/chØ môc trªn c¸c b¶n ghi thµnh viªn vµ truy xuÊt chóng nhê kho¸/chØ môc.
Chóng ta thÊy 2 lo¹i cÊu tróc trªn béc lé mét sè nh−îc ®iÓm sau:
- Kh«ng cã kh¸i niÖm cho phÐp NSD t¹o lËp, x©y dùng vµ thay ®æi c¸c b¶n ghi trong CSDL
- NSD phô thuéc hoµn toµn vµo nhãm ph¸t triÓn hÖ thèng ®Ó hiÖu chØnh vµ t¹o b¸o c¸o. Ng−êi lËp tr×nh ph¶i cã nhiÒu kü n¨ng ®Ó viÕt nh÷ng ch−¬ng tr×nh truy xuÊt CSDL
- Trong m« h×nh c©y ph©n cÊp: c¸c c©u vÊn tin ®ßi hái ng−êi lËp tr×nh ph¶i cã nhiÒu kinh nghiÖm
- Trong CSDL m¹ng, nhiÒu CSDL kh«ng cã tiÖn Ých vÊn tin dµnh cho NSD hoÆc nÕu cã th× còng rÊt h¹n chÕ.
1.3.4. M« h×nh d÷ liÖu quan hÖ vμ m« h×nh d÷ liÖu h−íng ®èi t−îng
M« h×nh d÷ liÖu quan hÖ ®−îc Codd ®Ò xuÊt n¨m 1970. Nã ®· t¹o ra mét cuéc c¸ch m¹ng míi trong lÜnh vùc CSDL vµ nhanh chãng thay thÕ c¸c m« h×nh d÷ liÖu tr−íc ®ã.
M« h×nh d÷ liÖu quan hÖ t−¬ng ®èi ®¬n gi¶n vµ dÔ hiÓu. M« h×nh d÷ liÖu quan hÖ lµ m« h×nh d÷ liÖu mµ cèt lâi cña nã lµ CSDL quan hÖ. Mét CSDL quan hÖ lµ mét tËp cña mét hoÆc nhiÒu quan hÖ, trong ®ã mçi mét quan hÖ lµ mét b¶ng. M« h×nh quan hÖ sö dông mét tËp c¸c
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
47
b¶ng ®Ó biÓu diÔn c¶ d÷ liÖu vµ mèi liªn hÖ gi÷a nh÷ng d÷ liÖu nµy. B¶ng cã n cét vµ mçi cét cã mét tªn duy nhÊt.
C¸c −u ®iÓm c¬ b¶n cña m« h×nh d÷ liÖu quan hÖ so víi c¸c m« h×nh kh¸c:
- §−îc xem lµ m« h×nh cã c¬ së to¸n häc v÷ng ch¾c nhÊt.
- §ang gi÷ vai trß thèng trÞ vµ lµ nÒn t¶ng cho hµng lo¹t c¸c hÖ qu¶n trÞ CSDL næi tiÕng vµ phæ biÕn nh− Oracle, DB2, MS SQL server, Access.
- T−¬ng ®èi ®¬n gi¶n dÔ hiÓu, mét CSDL quan hÖ lµ mét tËp quan hÖ, biÓu diÔn ®¬n gi¶n b»ng b¶ng gåm c¸c cét vµ hµng gióp NSD míi lµm quen víi CSDL cã thÓ hiÓu ®−îc néi dung CSDL.
- Cung cÊp c¸c kh¸i niÖm chÆt chÏ ®−îc h×nh thøc ho¸ cao, cho phÐp ¸p dông c¸c c«ng cô to¸n häc, c¸c thuËt to¸n tèi −u trªn d÷ liÖu.
- Tuy ®−îc trõu t−îng ho¸ cao nh−ng chØ dõng ë møc logic, nghÜa lµ ®éc lËp víi møc vËt lý - møc cµi ®Æt, víi c¸c thiÕt bÞ l−u tr÷ nªn ®¶m b¶o ®−îc tÝnh ®éc lËp gi÷a d÷ liÖu vµ ch−¬ng tr×nh øng dông.
- Nhê biÓu diÔn d÷ liÖu thèng nhÊt, nã cã thÓ cho phÐp sö dông c¸c ng«n ng÷ thao t¸c d÷ liÖu ë møc cao, dÔ sö dông vµ dÔ chuÈn ho¸.
- NSD cã thÓ t¹o vµ söa c¸c b¶n ghi trong CSDL, cã thÓ t¹o b¸o c¸o, ®éc lËp víi nhãm ph¸t triÓn phÇn mÒm.
- CSDL ®−îc l−u trong b¶ng (øng víi tÖp) chøa c¸c hµng (øng víi c¸c b¶n ghi) vµ c¸c cét (øng víi c¸c tr−êng).
- T¹o ra c¸c b¶ng vµ c¸c cét b»ng c¸ch sö dông ng«n ng÷ ®Þnh nghÜa d÷ liÖu (DDL - Data Definition Languages). NSD cã thÓ häc dÔ dµng ®−îc ng«n ng÷ nµy trong thêi gian ng¾n cïng víi viÖc cã thÓ t¹o vµ söa b¶n ghi, t¹o b¸o c¸o, söa ®æi cÊu tróc, trÝch rót d÷ liÖu. Nhê vËy NSD cã thÓ lµm viÖc ®éc lËp víi nhãm lËp tr×nh.
- Nh÷ng CSDL quan hÖ th«ng dông nhÊt ®Òu sö dông ng«n ng÷ SQL (Structured Query Language).
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
48
M« h×nh d÷ liÖu h−íng ®èi t−îng so víi c¸c m« h×nh d÷ liÖu kh¸c lµ mét m« h×nh cho phÐp biÓu diÔn c¸c ®èi t−îng kh¸ tù nhiªn vµ s¸t víi thùc tÕ h¬n c¶. C¸c ®èi t−îng phøc t¹p vµ c¸c liªn kÕt gi÷a chóng ®−îc ph¶n ¸nh ®Çy ®ñ vµ giµu ng÷ nghÜa. Do cã kh¶ n¨ng biÓu diÔn d÷ liÖu kh¸ tèt, nªn m« h×nh d÷ liÖu h−íng ®èi t−îng còng hç trî c¸c ng«n ng÷ thao t¸c d÷ liÖu h−íng ®èi t−îng m¹nh, cho phÐp ng−êi sö dông dÔ dµng biÓu diÔn c¶ c¸c truy vÊn kh¸ phøc t¹p. Tuy nhiªn, cho ®Õn nay, ch−a cã mét sù thèng nhÊt vµ chuÈn ho¸ ®èi víi c¸c kh¸i niÖm cña m« h×nh h−íng ®èi t−îng còng nh− ch−a cã mét c¬ së to¸n häc tèt h×nh thøc ho¸ ë møc cao, chÆt chÏ ®èi víi m« h×nh nµy, do vËy nã vÉn ®−îc tiÕp tôc nghiªn cøu vµ ph¸t triÓn trong t−¬ng lai.
Ngµy nay, ng−êi ta ®· nghÜ ®Õn mét m« h×nh d÷ liÖu kÕt hîp gi÷a m« h×nh d÷ liÖu quan hÖ vµ m« h×nh d÷ liÖu h−íng ®èi t−îng gäi t¾t lµ m« h×nh d÷ liÖu quan hÖ - h−íng ®èi t−îng nh»m tËn dông ®−îc c¸c −u ®iÓm cña mçi m« h×nh trªn. Nh−ng ®©y thùc sù lµ mét vÊn ®Ò kh¸ khã kh¨n nªn m« h×nh nµy vÉn ®ang trong giai ®o¹n nghiªn cøu vµ thö nghiÖm.
1.3.5. Ph−¬ng ph¸p x©y dùng m« h×nh d÷ liÖu
Cã hai quy tr×nh chÝnh ®−îc sö dông ®Ó t¹o nªn hai m« h×nh d÷ liÖu møc kh¸i niÖm vµ møc logic dùa trªn c¸ch tiÕp cËn thùc thÓ - liªn kÕt vµ ph−¬ng ph¸p m« h×nh ho¸ ®èi t−îng.
Quy tr×nh ph¸t triÓn 1 m« h×nh kh¸i niÖm d÷ liÖu
C¸c b−íc x©y dùng theo ph−¬ng ph¸p m« h×nh:
1. ChÝnh x¸c ho¸ d÷ liÖu,
2. X¸c ®Þnh c¸c thùc thÓ,
3. X¸c ®Þnh c¸c mèi quan hÖ,
4. VÏ m« h×nh kh¸i niÖm d÷ liÖu,
5. ChuÈn ho¸ (lo¹i c¸c thuéc tÝnh lÆp) vµ thu gän (thùc thÓ treo cã 1 thuéc tÝnh n»m ë phÝa 1 trong mèi quan hÖ 1-N)
Ch−¬ng 1: Tæng quan vÒ c¬ së d÷ liÖu
49
Quy tr×nh ph¸t triÓn 1 m« h×nh d÷ liÖu logic
1. ChuyÓn m« h×nh kh¸i niÖm d÷ liÖu sang m« h×nh d÷ liÖu logic- M« h×nh quan hÖ (dùa vµo 3 quy t¾c chuyÓn m« h×nh kh¸i niÖm d÷ liÖu sang hÖ l−îc ®å quan hÖ),
2. ChuÈn ho¸ ®Õn 3NF vµ hîp nhÊt c¸c quan hÖ (nÕu cÇn),
3. VÏ s¬ ®å E_R t−¬ng øng víi m« h×nh quan hÖ ®· ®¹t 3NF
Trong qu¸ tr×nh ph©n tÝch, thiÕt kÕ vµ x©y dùng CSDL, cã thÓ nãi qu¸ tr×nh x©y dùng m« h×nh d÷ liÖu chiÕm nhiÒu thêi gian vµ c«ng søc nhÊt. Bëi môc ®Ých cña nã lµ ®¶m b¶o ch¾c ch¾n r»ng tÊt c¶ c¸c ®èi t−îng d÷ liÖu trong bµi to¸n ph¶i ®−îc tr×nh bµy ®Çy ®ñ vµ chÝnh x¸c. Ng−êi thiÕt kÕ CSDL cã thÓ sö dông m« h×nh d÷ liÖu nh− mét b¶n thiÕt kÕ chi tiÕt cã thÓ tiÕn hµnh thiÕt kÕ mét CSDL møc vËt lý.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
51
Ch−¬ng 2
m« h×nh c¬ së d÷ liÖu quan hÖ
2.1. C¸c kh¸i niÖm c¬ b¶n
2.1. 1. §Þnh nghÜa quan hÖ
Cho R ={a1, a2,.., an} lµ mét tËp h÷u h¹n, kh«ng rçng c¸c thuéc
tÝnh.
Mçi thuéc tÝnh ai cã mét miÒn gi¸ trÞ lµ Dai. Khi ®ã r - mét tËp c¸c bé {h1, h2,.., hm} ®−îc gäi lµ mét quan hÖ trªn R, víi hj (j =1, 2,..,m) lµ
mét hµm: i
j aia Rh : R D
∈→ ∪ sao cho: hj (ai) ∈ Dai
Cã thÓ biÓu diÔn quan hÖ r ë d¹ng b¶ng:
B¶ng 2.1. BiÓu diÔn quan hÖ d¹ng b¶ng
a1 a2 ... an
h1 h1 (a1) h1 (a2) ... h1 (an)
h2 h2 (a1) h2 (a2) ... h2 (an)
...
hm hm (a1) hm (a2) ... hm (an)
NhËn xÐt:
- §Þnh nghÜa nµy lµ quan träng. Toµn bé lý thuyÕt c¬ së d÷ liÖu dùa trªn ®Þnh nghÜa nµy. Nã ®−îc coi lµ h¹t nh©n cña c¬ së d÷ liÖu quan hÖ.
- V× h1, h2,.., hm lµ c¸c thµnh phÇn trong tËp hîp quan hÖ trong r. Trong m« h×nh quan hÖ, kh«ng chÊp nhËn hai b¶n ghi trïng nhau trong mét file d÷ liÖu.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
52
VÝ dô
§Ó l−u gi÷ th«ng tin vÒ c¸c mÆt hµng, cÇn sö dông b¶ng thiÕt bÞ nh− sau:
B¶ng 2.2. BiÓu diÔn quan hÖ THIETBI
M· thiÕt bÞ Tªn thiÕt bÞ M« t¶ §¬n gi¸ Kho
CPUSK478P30 Bé vi xö lý Pentium 4
Pentium IV 3.0C GHz (Box/512Kb/Bus800)
240 A
ASUSP4V533MX Bo m¹ch chñ Pentium 4
VIA chipset/SK478/Bus533 VGA/Sound/NIC onboard, support DDRAM, Huper threading cã AGP më réng
54 B
VGA8 Card mμn h×nh
VGA 8Mb (2X) Ati 10 C
HDDQ30 æ ®Üa cøng Maxtor Quantum 30Gb 5400rpm
53 D
Cã thÓ quy ®Þnh kÝch th−íc cho c¸c thuéc tÝnh (c¸c tr−êng) nh− sau:
B¶ng 2.3. B¶ng thuéc tÝnh cña quan hÖ THIETBI
Tªn thuéc tÝnh KiÓu KÝch th−íc
M· thiÕt bÞ Ký tù 15
Tªn thiÕt bÞ Ký tù 30
M« t¶ Ký tù 100
§¬n gi¸ Sè 5
Kho Ký tù 2
Cã nghÜa lµ chóng ta x¸c ®Þnh miÒn gi¸ trÞ cho c¸c thuéc tÝnh:
- M· thiÕt bÞ lµ mét x©u ký tù cã ®é dµi kh«ng qu¸ 15
- Tªn thiÕt bÞ lµ mét x©u ký tù cã ®é dµi kh«ng qu¸ 30
- M« t¶ lµ mét x©u ký tù cã ®é dµi kh«ng qu¸ 100
- §¬n gi¸ lµ mét sè nguyªn kh«ng qu¸ 5
- Kho lµ mét x©u ký tù kh«ng qu¸ 2
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
53
Nh− vËy ta cã tËp thuéc tÝnh:
thiÕt bÞ = {M· thiÕt bÞ, Tªn thiÕt bÞ, M« t¶, §¬n gi¸, Kho}
ë ®©y:
- DM· thiÕt bÞ lµ tËp c¸c x©u ký tù ®é dµi kh«ng qu¸ 15
- DTªn thiÕt bÞ lµ tËp c¸c x©u ký tù ®é dµi kh«ng qu¸ 30
- DM« t¶ lµ tËp c¸c x©u ký tù ®é dµi kh«ng qu¸ 100
- D§¬n gi¸ lµ tËp c¸c sè cã ®é dµi kh«ng qu¸ 5
- DKho lµ tËp c¸c x©u ký tù ®é dµi kh«ng qu¸ 2
Khi ®ã chóng ta cã c¸c quan hÖ r = {h1, h2, h3, h4}, ë ®©y ®èi víi b¶n ghi thø nhÊt (dßng thø nhÊt) chóng ta cã:
h1(M· thiÕt bÞ) = CPUSK478P30
h1(Tªn thiÕt bÞ) = Bé vi xö lý Pentium 4
h1(M« t¶) = Pentium IV 3.0C GHz (Box/512Kb/Bus800)
h1(§¬n gi¸) = 240
h1(Kho) = A
Khi viÕt R(a1,a2,…,an) ta cã mét l−îc ®å quan hÖ R
2.1.2. §Þnh nghÜa phô thuéc hμm Kh¸i niÖm vÒ phô thuéc hµm trong mét quan hÖ lµ rÊt quan träng
trong viÖc thiÕt kÕ m« h×nh d÷ liÖu. N¨m 1970 E.F Codd ®· m« t¶ phô thuéc hµm trong m« h×nh d÷ liÖu quan hÖ, nh»m gi¶i quyÕt viÖc ph©n r· kh«ng mÊt th«ng tin.
Cho R = {a1, a2,.., an} lµ tËp c¸c thuéc tÝnh, r = {h1, h2,.., hm} lµ
mét quan hÖ trªn R, vµ A, B ⊆ R (A, B lµ tËp cét hay tËp thuéc tÝnh). Khi ®ã ta nãi A x¸c ®Þnh hµm cho B hay B phô thuéc hµm vµo A trong
r (ký ph¸p f
rA B→ ) nÕu: (∀ hi, hj ∈ r) ((∀a ∈ A) (hi(a) = hj(a))
⇒ (∀b ∈ B) (hi(b) = hj(b))) nghÜa lµ ®èi sè trïng nhau th× hµm cã cïng
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
54
gi¸ trÞ. §Æt Fr = {(A, B): A, B ⊆ R,f
rA B→ }. Lóc ®ã Fr ®−îc gäi lµ hä
®Çy ®ñ c¸c phô thuéc hµm cña r.
NhËn xÐt:
Ta cã thÓ thÊy r»ng B mµ phô thuéc hµm vµo A, nÕu hai dßng bÊt kú mµ c¸c gi¸ trÞ cña tËp thuéc tÝnh A mµ b»ng nhau tõng cÆp mét, th× kÐo theo c¸c gi¸ trÞ trªn tËp thuéc tÝnh B còng ph¶i b»ng nhau tõng cÆp mét.
VÝ dô:
XÐt quan hÖ:
B¶ng 2.4. Quan hÖ thisinh
sbd Hoten §iachi Tinh Khuvùc
P§711001 NguyÔn Th¸i B×nh 12 B¶n Nhμn L¹ng S¬n 0
P§711002 TrÇn Nam Ninh 3 Kim M· Hμ Néi 3
P§711003 Lª Thanh Hoa 53 Hai Bμ Tr−ng Hμ Néi 3
P§711004 Vò Thóy Hång 89 §ång §¨ng L¹ng S¬n 0
P§711005 Ph¹m Nh− Em 40 TrÇn H−ng §¹o H¶i D−¬ng 2
Trong quan hÖ THisINH, dùa vµo ®Þnh nghÜa phô thuéc hµm cña quan hÖ ta cã:
{tinh} → {khuvuc}
{sbd} → {hoten, diachi, tinh, khuvuc}
ý nghÜa: Kh¸i niÖm phô thuéc hµm miªu t¶ mét lo¹i rµng buéc (phô thuéc d÷ liÖu) x¶y ra tù nhiªn nhÊt gi÷a c¸c tËp thuéc tÝnh.
2.1.3. HÖ tiªn ®Ò Armstrong
Gäi F lµ tËp x¸c ®Þnh c¸c phô thuéc hµm ®èi víi l−îc ®å quan hÖ
R vµ X → Y lµ mét phô thuéc hµm. X, Y ⊆ R. Nãi r»ng X → Y ®−îc
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
55
suy diÔn logic tõ F nÕu mèi quan hÖ r trªn R ®Òu tho¶ m·n phô thuéc
hµm cña F th× còng tho¶ m·n X → Y. Ch¼ng h¹n F ={A → B, B → C}
th× A → C suy ra tõ F. Gäi F+ lμ bao ®ãng (closure) cña F, tøc lµ tËp tÊt c¶ c¸c phô thuéc hµm ®−îc suy diÔn logic tõ F. NÕu F = F+ th× F lµ hä ®Çy ®ñ (full family) cña c¸c phô thuéc hµm.
§Ó cã thÓ x¸c ®Þnh kho¸ cña mét l−îc ®å quan hÖ vµ c¸c suy diÔn logic gi÷a c¸c phô thuéc hµm cÇn thiÕt ph¶i tÝnh ®−îc F+ tõ F. Do ®ã ®ßi hái ph¶i cã c¸c hÖ tiªn ®Ò. TËp c¸c quy t¾c cña hÖ tiªn ®Ò ®−îc Armstrong (1974) ®−a ra, th−êng ®−îc gäi lµ hÖ tiªn ®Ò Armstrong.
HÖ tiªn ®Ò Armstrong (Armstrong�s Axioms):
Cho R = {a1,...,an} lµ tËp c¸c thuéc tÝnh. X, Y, Z ⊆ R.
HÖ tiªn ®Ò Armstrong cã 3 tÝnh chÊt c¬ b¶n sau:
- A1 (ph¶n x¹): NÕu Y ⊆ X th× X → Y
- A2 (t¨ng tr−ëng): NÕu Z ⊆ R vµ X → Y th× XZ → YZ.
Trong ®ã ký hiÖu XZ lµ hîp cña hai tËp X vµ Z thay cho ký hiÖu X ∪ Z.
- A3 (b¾c cÇu): NÕu X → Y vµ Y → Z th× X → Z.
Bæ ®Ò 1:
HÖ tiªn ®Ò Armstrong lµ ®óng. Cã nghÜa F lµ tËp c¸c phô thuéc
hµm ®óng trªn quan hÖ r. NÕu X → Y lµ tËp c¸c phô thuéc hµm ®−îc
suy diÔn tõ F nhê hÖ tiªn ®Ò Armstrong th× X → Y lµ ®óng trªn quan hÖ r.
Bæ ®Ò 2:
HÖ tiªn ®Ò Armstrong cã thÓ ®−îc më réng thµnh:
1. TÝnh ph¶n x¹ (Reflexivity):
Y⊆ X ⊆ R ⇒ X → Y (phô thuéc tÇm th−êng: trivial dependency)
2. TÝnh t¨ng tr−ëng (augmentation):
X → Y, Z ⊆ R ⇒ XZ → YZ
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
56
3. TÝnh “b¾c cÇu”:
X → Y, Y → Z ⇒ X → Z
4. TÝnh hîp (union rule):
X → Y, X → Z ⇒ X → YZ
5. TÝnh “në tr¸i”:
X → Y; X,Y,Z ∈ R ⇒ XZ → Y
6. TÝnh ph©n r·/t¸ch (decomposition rule) (thu ph¶i):
X → Y, Z ⊆ Y ⇒ X → Z
7. TÝnh “hîp däc”:
X → Y, P → Q ⇒ XP → YQ
8. TÝnh tùa b¾c cÇu:
X → Y, WY → Z ⇒ WX → Z
9. TÝnh t¸ch vµ hîp
Cho A1, A2,..., Ap ⊆ R. X → A1A2...Ap ⇔ X→ Ai
10. TÝnh tÝch luü
X → YZ, Z → AV ⇒ X → YZA
NhËn xÐt:
- Ng−êi ta cßn viÕt (A, B) hay A → B thay cho f
rA B→ .
- Lóc ®ã tËp hîp tÊt c¶ (A,B) nh− thÕ x¸c ®Þnh mét hä f trªn R khi chóng tháa m·n hÖ tiªn ®Ò Armstrong.
- Fr lµ mét hä f trªn R. Armstrong ®· chøng minh mét kÕt qu¶ rÊt quan träng nh− sau: nÕu Y lµ mét hä f bÊt kú th× tån t¹i mét quan hÖ r trªn R sao cho Fr = Y.
- ViÖc nghiªn cøu phô thuéc hµm kh«ng lÖ thuéc vµo c¸c quan hÖ (b¶ng) cô thÓ. V× vËy, ¸p dông ®−îc c¸c c«ng cô to¸n nh»m s¸ng tá cÊu tróc logic cña m« h×nh d÷ liÖu quan hÖ
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
57
- Cã nhiÒu quan hÖ kh¸c nhau nh−ng c¸c hä ®Çy ®ñ c¸c phô thuéc hµm cña chóng l¹i nh− nhau
VÝ dô:
Cho r1, r2 lµ c¸c quan hÖ (b¶ng 2.5):
B¶ng 2.5
r1 r2
A B A B
0 0 0 0
1 1 1 1
2 1 2 1
3 2 3 1
Cã thÓ thÊy r»ng r1 vµ r2 kh¸c nhau nh−ng Fr1 = Fr2 v× chØ cã A → B
2.1.4. §Þnh nghÜa hμm ®ãng
Mét hµm L: P(R) → P(R), (P(R) lµ tËp c¸c tËp con cña R) ®−îc
gäi lµ hµm ®ãng trªn R nÕu víi mäi A, B ∈ P(R):
- A ⊆ L(A)
- NÕu A ⊆ B th× L(A) ⊆ L(B)
- L (L(A)) = L (A).
§Þnh lý:
NÕu F lµ mét hä f vµ chóng ta ®Æt LF(A) = {a: a ∈R: (A,{a}) ∈F} th× LF lµ mét hµm ®ãng. Ng−îc l¹i nÕu L lµ mét hµm ®ãng th× tån t¹i duy nhÊt mét hä f: F trªn R sao cho L = LF.
ë ®©y, F = {(A, B): A, B ⊆ R, B ⊆ L(A)}.
Nh− vËy, chóng ta thÊy cã sù t−¬ng øng 1-1 gi÷a líp c¸c hµm ®ãng vµ líp c¸c hä f. Sù t−¬ng øng nµy ®−îc minh häa b»ng h×nh 2.1:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
58
Líp c¸c hä phô thuéc hμm Líp c¸c hμm ®ãng
H×nh 2.1.
Chóng ta cã thÓ dÔ dµng chøng minh ®−îc 3 tÝnh chÊt sau cña hµm ®ãng:
+ L(X)L(Y) ⊆ L(XY)
+ L(X∩Y) ⊆ L(X) ∩ L(Y)
+ L(L(X)Y) = L(XL(Y)) = L(XY)
2.1.5. §Þnh nghÜa s¬ ®å quan hÖ
Cho tr−íc R = {a1, a2,.., an} lµ tËp c¸c thuéc tÝnh.
Khi ®ã s lµ mét s¬ ®å quan hÖ, s = < R, F >
1 1
2 2
t t
A BA B
F ......A B
→⎧⎪ →⎪⎪= ⎨⎪⎪
→⎪⎩
ë ®©y Ai, Bi ⊆ R (i = 1,...,t) vµ Ai → Bi lµ phô thuéc hµm
VÝ dô: Cho s¬ ®å quan hÖ s = < R, F >, víi R = {a1, a2, a3, a4}
1 3 4
2 3
3 4
{a } {a ,a }{a } {a }
F ......{a } {a }
→⎧⎪ →⎪⎪= ⎨⎪⎪
→⎪⎩
cét 1 x¸c ®Þnh hµm víi cét 3, cét 4
cét 2 x¸c ®Þnh hµm víi cét 3
cét 3 x¸c ®Þnh hµm víi cét 4
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
59
2.1.6. §Þnh nghÜa bao ®ãng
a. §Þnh nghÜa bao ®ãng cña tËp thuéc tÝnh trªn s¬ ®å quan hÖ
Gi¶ sö F lµ tËp c¸c phô thuéc hµm trªn s¬ ®å quan hÖ s = < R, F >. Gäi F+ lµ tËp tÊt c¶ c¸c phô thuéc hµm cã thÓ suy diÔn logic tõ F bëi c¸c luËt cña hÖ tiªn ®Ò Armstrong.
Gi¶ sö A ⊆ R, ký hiÖu A+ = {a: A →{a} ∈ F+}. A+ ®−îc gäi lµ bao ®ãng cña A trªn s.
ý nghÜa: A+ lµ tËp tÊt c¶ c¸c thuéc tÝnh a mµ phô thuéc hµm
A →{a} cã thÓ suy diÔn logic tõ F nhê hÖ tiªn ®Ò Armstrong.
MÖnh ®Ò A → B ∈ F+ nÕu vµ chØ nÕu B ⊆ A+ ®óng nhê vµo bæ ®Ò d−íi ®©y.
Bæ ®Ò
X → Y suy diÔn tõ hÖ tiªn ®Ò Armstrong khi vµ chØ khi Y ⊆ X+.
Chøng minh:
§iÒu kiÖn ®ñ: Gi¶ sö Y = A1... An víi A1,..., An lµ tËp c¸c thuéc tÝnh vµ Y ⊆ X+.
Tõ ®Þnh nghÜa X+ cã X → Ai. ¸p dông tiªn ®Ò Armstrong cho mäi i, luËt hîp suy ra X → Y. Ng−îc l¹i, gi¶ sö cã X → Y, ¸p dông hÖ tiªn ®Ò Armstrong cho mçi i cã X → Ai, Ai ∈ Y nhê luËt t¸ch. Tõ ®ã suy ra Y ⊆ X+.
Chóng ta cã thÓ dÔ dµng chøng minh ®−îc mÖnh ®Ò quan träng sau:
MÖnh ®Ò
PhÐp lÊy bao ®ãng cña tËp thuéc tÝnh lµ mét hµm ®ãng tho¶ m·n c¸c tÝnh chÊt sau:
1. TÝnh ph¶n x¹: X ⊆ X+
ThËt vËy, Tõ a∈ X suy ra X → a ∈ F+ suy ra a ∈ X+
2. TÝnh ®¬n ®iÖu: nÕu X ⊆ Y th× X+ ⊆ Y+
ThËt vËy, theo thuËt to¸n tÝnh bao ®ãng
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
60
3. TÝnh luü ®¼ng: X++ = X+
ThËt vËy, theo thuËt to¸n tÝnh bao ®ãng
4. X+Y+ ⊆ (XY)+
ThËt vËy, dùa vµo L(X)L(Y) ⊆ L(XY)
5. (X+Y)+ = (XY+)+ = (XY)+
ThËt vËy, dùa vµo L(L(X)Y) = L(XL(Y)) = L(XY)
6. X → Y khi vµ chØ khi Y⊆ X+ (bæ ®Ò)
7. X → Y khi vµ chØ khi Y+⊆ X+
ThËt vËy:
§iÒu kiÖn cÇn:
+ X → Y theo tÝnh chÊt 6 suy ra Y ⊆ X+,
+ dùa theo tÝnh chÊt 2 suy tiÕp ra Y+ ⊆ X++
+ dùa theo tÝnh chÊt 3 suy ra Y+ ⊆ X++ = X+ tøc lµ Y+ ⊆ X+
§iÒu kiÖn ®ñ:
Y+ ⊆ X+, dùa theo tÝnh chÊt 1 suy ra Y ⊆ Y+ ⊆ X+, tøc lµ Y ⊆ X+
8. X→ X+, X+→ X
ThËt vËy: X→ X+ (theo ®Þnh nghÜa bao ®ãng)
X+→ X (theo tÝnh chÊt 1)
9. X+ = Y+ khi vµ chØ khi X → Y vµ Y → X
ThËt vËy:
§iÒu kiÖn cÇn:
X ⊆ X+ = Y+ suy ra X ⊆ Y+ suy ra Y → X
Y ⊆ Y+ = X+ suy ra Y ⊆ X+ suy ra X → Y
§iÒu kiÖn ®ñ:
Y → X suy ra X ⊆ Y+ suy ra X+ ⊆ Y++ = Y+ suy ra X+ ⊆ Y+ (1)
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
61
MÆt kh¸c X → Y suy ra Y ⊆ X+ suy ra Y+ ⊆ X++ = X+
suy ra Y+ ⊆ X+ (2)
KÕt hîp (1) vµ (2) suy ra X+ = Y+
b. §Þnh nghÜa bao ®ãng cña mét tËp thuéc tÝnh trªn mét quan hÖ
Gi¶ sö r = {h1, h2,.., hm} lµ mét quan hÖ trªn R = {a1, a2,..., an}.
Ta ®Æt: f
r rA {a : A {a}}+ = →
rA+ ®−îc gäi lµ bao ®ãng cña A trªn r.
2.1.7. §Þnh nghÜa kho¸ cña quan hÖ, s¬ ®å quan hÖ, hä F
a. §Þnh nghÜa kho¸
Gi¶ sö r = {h1, h2,.., hm} lµ mét quan hÖ, s = < R, F > lµ mét s¬ ®å quan hÖ, trong ®ã R = {a1, a2,..., an} lµ tËp c¸c thuéc tÝnh, F lµ tËp x¸c
®Þnh c¸c phô thuéc hµm trªn R. Gäi Y lµ mét hä f trªn R vµ A ⊆ R. Khi Êy A lµ mét kho¸ cña r (t−¬ng øng lµ mét kho¸ cña s, mét khãa
cña Y) nÕu: r
A R→ (A → R ∈ F+, (A, R) ∈ Y), nghÜa lµ A ph¶i tho¶
m·n c¸c tÝnh chÊt sau ®©y:
- Víi bÊt kú hai bé h1, h2 ∈ r ®Òu tån t¹i mét thuéc tÝnh a ∈ A sao
cho h1(a) ≠ h2(a). Nãi c¸ch kh¸c, kh«ng tån t¹i hai bé mµ cã gi¸ trÞ b»ng nhau trªn mäi tËp thuéc tÝnh cña A. §iÒu kiÖn nµy cã thÓ viÕt
t1(A) ≠ t2(A). Do vËy, mçi gi¸ trÞ cña A x¸c ®Þnh lµ duy nhÊt. Khi biÕt gi¸ trÞ thuéc tÝnh trong A sÏ biÕt ®−îc c¸c gi¸ trÞ cña thuéc tÝnh kh¸c.
- Theo ®Þnh nghÜa cña Codd: NÕu cã hai dßng b»ng nhau trªn c¸c gi¸ trÞ cña kho¸ A th× sÏ kÐo theo b»ng nhau trªn tÊt c¶ c¸c cét cßn l¹i. Nh− vËy sÏ cã hai cét b»ng nhau, ®iÒu nµy kh«ng thÓ cã ®−îc vµ nÕu cã th× ®Êy lµ d÷ liÖu nhÇm lÉn.
- DÔ dµng thÊy r»ng, víi l−îc ®å R(A,B,C,D) mµ A -> C, B -> D th× tËp hîp c¸c thuéc tÝnh ë vÕ tr¸i cña phô thuéc hµm {A,B} chÝnh lµ kho¸ v× tÊt c¶ c¸c thuéc tÝnh cña l−îc ®å ®Òu cã mÆt trªn phô thuéc hµm.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
62
b. Kho¸ tèi tiÓu
Chóng ta gäi A (A ⊆ R) lµ mét kho¸ tèi tiÓu cña r (t−¬ng øng cña s, cña Y) nÕu:
+ A lµ mét kho¸ cña r (s,Y) tøc A → R
+ BÊt kú mét tËp con thùc sù cña A kh«ng lµ kho¸ cña r (s, Y) hay
kh«ng tån t¹i A' lµ tËp con thùc sù cña A (A' ⊂ A) mµ A' → R.
NhËn xÐt:
Kho¸ chÝnh lµ h×nh ¶nh cña cét m· sè hay sè thø tù (v× sè thø tù kh«ng thÓ trïng nhau ®−îc).
Khãa ®ãng mét vai trß rÊt quan träng v× nhê cã nã ng−êi ta míi t×m kiÕm ®−îc (t×m kiÕm b¶n ghi). PhÐp to¸n t×m kiÕm b¶n ghi trong file d÷ liÖu lµ phÐp to¸n quan träng nhÊt v× chØ sau khi t×m kiÕm xong th× ng−êi ta míi tiÕn hµnh lo¹i bá b¶n ghi Êy hoÆc bæ sung mét b¶n ghi míi vµo tr−íc hoÆc sau b¶n ghi mµ ta ®· t×m ®−îc.
Dï r»ng dÔ thÊy A cã thÓ chÝnh b»ng R nh−ng ng−êi ta vÉn ph¶i ®i t×m khãa tèi tiÓu, tøc lµ khãa nhá nhÊt mµ kh«ng thÓ nhá h¬n ®−îc n÷a ®Ó viÖc so s¸nh c¸c gi¸ trÞ khãa víi nhau trong qu¸ tr×nh t×m kiÕm b¶n ghi lµ nhanh nhÊt.
Mét s¬ ®å quan hÖ cã thÓ cã nhiÒu khãa, thËm chÝ cßn cã nhiÒu kho¸ tèi tiÓu.
VÝ dô:
B¶ng 2.6. Quan hÖ BAN_HANG
M·hμng Tªn hμng Sè l−îng (chiÕc)
VT0001 V« tuyÕn 1000
TL0002 Tñ l¹nh 500
RA2012 Radio 2000
Trong b¶ng trªn m· sè mÆt hµng (M·hµng) lµ kho¸ vµ lµ kho¸ tèi tiÓu. Mçi gi¸ trÞ m· hµng ®Òu x¸c ®Þnh duy nhÊt mét lo¹i mÆt hµng trong quan hÖ BAN_HANG.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
63
c. HÖ Sperner
Ký hiÖu Kr, Ks, Ky lµ tËp tÊt c¶ c¸c kho¸ tèi tiÓu cña r (s, Y).
Ta gäi K (víi K-tËp con cña P(R)) lµ mét hÖ Sperner trªn R nÕu
víi ∀A, B ∈ K ⇒ ¬ (A⊆ B),
DÔ thÊy Kr, Ks, KY lµ hÖ Sperner trªn R.
d. TËp ph¶n kho¸
Gi¶ sö K = {K1, K2,.., Kt} lµ mét hÖ Sperner trªn R = {a1, a2,.., an}. Ta ®Þnh nghÜa tËp c¸c ph¶n kho¸ cña K ký hiÖu K-1 nh− sau:
K-1 = {A ⊂ R: (B ∈ K) ⇒ (B ⊄ A) vμ (A ⊂ C) ⇒ (∃B ∈ K) (B ⊆ C)}
(tøc lµ kh«ng chøa tËp con thuéc K vµ níi réng nã ra sÏ cã 1 phÇn tö cña K lät vµo)
TËp ph¶n khãa ®ãng vai trß quan träng trong qu¸ tr×nh nghiªn cøu cÊu tróc logic cña c¸c hä phô thuéc hµm, khãa, d¹ng chuÈn, quan hÖ Armstrong, ®Æc biÖt ®èi víi c¸c bµi to¸n tæ hîp trong m« h×nh d÷ liÖu quan hÖ.
NhËn xÐt:
NÕu K ®ãng vai trß lµ mét tËp c¸c kho¸ tèi tiÓu cña mét s¬ ®å quan hÖ nµo ®ã th× theo ®Þnh nghÜa K-1 lµ tËp tÊt c¶ c¸c tËp kh«ng ph¶i lµ kho¸ lín nhÊt.
- DÔ thÊy r»ng K-1 còng lµ hÖ Sperner trªn R.
- ë ®©y ta lu«n gi¶ thiÕt r»ng nÕu mét hÖ Sperner ®ãng vai trß tËp c¸c kho¸ tèi tiÓu (tËp c¸c ph¶n khãa), th× hÖ Sperner nµy kh«ng rçng (Kh«ng chøa R).
- Demertovics.J. ®· chøng tá r»ng nÕu K lµ mét hÖ Sperner tuú ý, th× tån t¹i mét s¬ ®å quan hÖ s sao cho Ks = K vµ tån t¹i quan hÖ r ®Ó Kr = K.
2.1.8. HÖ b»ng nhau
Gi¶ sö r = {h1, h2,.., hm} lµ mét quan hÖ trªn R = {a1, a2,.., an}
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
64
§Æt Er = {Eij: 1 ≤ i<j ≤ | r |} trong ®ã Eij = {a ∈ R: hi(a) = hj(a)}, | r | = m, Er ®−îc gäi lµ hÖ b»ng nhau cña r
Gi¶ sö Mr = {Er/Eij víi Eij: ∃ Epq: Eij⊂ Epq}. Khi ®ã Mr ®−îc gäi lµ hÖ b»ng nhau cùc ®¹i cña r.
NhËn xÐt:
HÖ b»ng nhau vµ hÖ b»ng nhau cùc ®¹i ®ãng mét vai trß quan träng trong c¸c thuËt to¸n thiÕt kÕ còng nh− mèi quan hÖ gi÷a c¸c líp quan hÖ vµ líp c¸c phô thuéc hµm trong qu¸ tr×nh nghiªn cøu cÊu tróc logic cña líp c¸c phô thuéc hµm.
VÝ dô: Cho quan hÖ r (b¶ng 2.7).
B¶ng 2.7: Quan hÖ r
a1 a2 a3 a4 a5
1 1 0 1 0
1 0 0 3 0
3 1 1 3 1
5 1 0 3 0
{ }{ }{ }{ }{ }{ }
12 1 3 5
13 2
14 2 3 5r
23 4
24 3 4 5
34 2 4
E a , a , a
E a
E a , a ,aE
E a
E a , a ,a
E a , a
=⎧⎪
=⎪⎪ =⎪= ⎨
=⎪⎪ =⎪⎪ =⎩
{ }{ }{ }
1 3 5
2 4r
2 3 5
3 4 5
{a ,a ,a }a ,a
Ma ,a ,a
a ,a ,a
⎧⎪⎪= ⎨⎪⎪⎩
VËy Mr lµ hÖ b»ng nhau cùc ®¹i cña r.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
65
2.2. Mét sè thuËt to¸n liªn quan ®Õn Kho¸
2.2.1. Mét sè thuËt to¸n liªn quan ®Õn bao ®ãng
Mét vÊn ®Ò th−êng xuyªn x¶y ra lµ ®èi víi mét s¬ ®å quan hÖ cho
tr−íc (s = <R, F>), vµ mét phô thuéc hµm A → B, chóng ta muèn biÕt
A → B cã lµ phÇn tö cña F+ hay kh«ng. §Ó tr¶ lêi c©u hái nµy chóng ta cÇn tÝnh bao ®ãng F+ cña tËp c¸c phô thuéc hµm F.
Tuy nhiªn tÝnh F+ trong tr−êng hîp tæng qu¸t lµ rÊt khã kh¨n vµ tèn kÐm thêi gian v× c¸c tËp phô thuéc hµm thuéc F+ lµ rÊt lín cho dï F cã
thÓ lµ nhá. Ch¼ng h¹n, F = {A → B1, A → B2,.... A → Bn}, khi ®ã F+ bao
gåm c¶ nh÷ng phô thuéc hµm A → Y víi Y ⊆ {B1 ∪ B2 ∪... ∪ Bn}, nh− vËy ta sÏ cã 2n tËp con Y. Trong khi ®ã viÖc tÝnh bao ®ãng cña tËp thuéc tÝnh A l¹i kh«ng khã. Theo kÕt qu¶ ®· tr×nh bµy ë trªn th× viÖc kiÓm tra
A → B ∈ F+ sÏ ®−îc thÕ bëi viÖc tÝnh A+.
ThuËt to¸n 1: TÝnh bao ®ãng cña mét tËp c¸c thuéc tÝnh ®èi víi tËp c¸c phô thuéc hμm trªn s¬ ®å quan hÖ
Vμo: s = < R, F > lµ mét s¬ ®å quan hÖ
trong ®ã:
R = (a1, a2,.., an) lµ tËp h÷u h¹n c¸c thuéc tÝnh.
F lµ tËp c¸c phô thuéc hµm vµ A ⊆ R
Ra: A+ lµ bao ®ãng cña A ®èi víi F.
Nhí r»ng A+ = {a: A →{a} ∈ F+}.
A → B ∈ F+ nÕu vµ chØ nÕu B ⊆ A+.
Ph−¬ng ph¸p:
LÇn l−ît tÝnh c¸c tËp thuéc tÝnh A0, A1 nh− sau:
1. A0 = A
2. Ai = Ai-1 ∪ {a} nÕu ∃ (C → D) ∈ F, {a} ∈ D vµ C ⊆ Ai-1
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
66
3. Râ rµng A = A0 ⊆ A1 ⊆... ⊆ Ai ⊆ R vµ R h÷u h¹n nªn tån t¹i i sao cho Ai = Ai+1
Khi Êy thuËt to¸n dõng vµ Ai chÝnh lµ A+
VÝ dô:
XÐt s¬ ®å quan hÖ s = < R, F >
trong ®ã:
{c} {t} R {c, t, h, r,s,g}{h, r} {c}
F {h, t} {r}{c,s} {g}{h,s} {r}
→ =⎧⎪ →⎪⎪= →⎨⎪ →⎪
→⎪⎩
TÝnh {h, r}+?
A0 = {h, r}
A1 = {h, r, c} do {h, r}→ {c}∈ F
A2 = {h, r, c, t} do {c}→ {t}∈ F
A3 = {h, r, c, t} = A2
VËy {h, r}+ = {h, r, c, t}
ThuËt to¸n 2: TÝnh bao ®ãng cho mét tËp bÊt kú trªn quan hÖ r
Vμo: r = {h1, h2,.., hm} lµ mét quan hÖ trªn R = {a1, a2,.., an}, A ⊆ R
Ra: A+r
B−íc 1: Tõ r x©y dùng mét tËp Er = {Eij: 1 ≤ i < j ≤ m}
Eij = {a: a ∈ R vµ hi(a) = hj(a)}
B−íc 2: Tõ Er x©y dùng mét tËp
M = {B ∈ P(R): Tån t¹i Eij ∈ Er: Eij = B}
ë ®©y P(R) lµ tËp c¸c tËp con cña R
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
67
B−íc 3: A+r ®−îc tÝnh nh− sau:
r
BA
R
+
∩⎧⎪= ⎨⎪⎩
Cã thÓ thÊy r»ng Eij = ∅ (trong tr−êng hîp hai dßng i vµ j kh«ng cã cét nµo trïng nhau vÒ gi¸ trÞ, tøc lµ chóng kh¸c nhau hoµn toµn.
Kh«ng bao giê cã Eij = R (cã nghÜa r»ng Eij = toµn bé kh«ng gian), v× nÕu x¶y ra th× cã hai dßng trïng nhau, theo ®Þnh nghÜa quan hÖ th× kh«ng cho phÐp cã hai dßng trïng nhau.
VÝ dô: XÐt quan hÖ r (b¶ng 2.8)
B¶ng 2.8
A B C D E
1 1 0 0 0
0 1 0 1 1
0 0 2 0 0
2 0 2 0 1
TÝnh {B, C}+r
E12 ={B, C}, E13 = {D, E}, E14 = {D}
E23 = {A}, E24 ={E}
E34 = {B, C, D}
M = {{A}, {B, C}, {B, C, D}, {D}, {D, E}, {E}}
VËy {B, C}+r = {B, C} ∩ {B, C, D} ={B, C}
2.2.2. Mét sè thuËt to¸n liªn quan ®Õn kho¸
Khi gi¶i quyÕt c¸c bµi to¸n th«ng tin qu¶n lý, ng−êi ta th−êng sö dông c¸c hÖ qu¶n trÞ c¬ së d÷ liÖu mµ trong ®ã chøa c¬ së d÷ liÖu quan hÖ. C¸c phÐp xö lÝ ®èi víi bµi to¸n nµy th−êng lµ t×m kiÕm b¶n ghi sau ®ã thªm b¶n ghi míi, thay ®æi néi dung b¶n ghi hoÆc xo¸ b¶n ghi.
nÕu tån t¹i B ∈ M: A ⊆ B, (giao cña tÊt c¶ c¸c
tËp A ⊆ B trong M chøa nã (A))
ng−îc l¹i
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
68
Trong c¸c thao t¸c trªn, viÖc t×m kiÕm b¶n ghi lµ rÊt quan träng. Muèn t×m ®−îc b¶n ghi trong file d÷ liÖu th× chóng ta ph¶i x©y dùng kho¸ cña file d÷ liÖu ®ã.
Cã hai thuËt to¸n t×m kho¸ cña quan hÖ vµ l−îc ®å quan hÖ. T×m kho¸ ë ®©y chÝnh lµ t×m kho¸ tèi tiÓu.
ThuËt to¸n 3: T×m kho¸ tèi tiÓu cña mét quan hÖ
Vμo: r = {h1,.., hm} lµ mét quan hÖ trªn tËp thuéc tÝnh R = {a1,..,an}
Ra: K lµ mét kho¸ tèi tiÓu cña r.
Ph−¬ng ph¸p:
B−íc1: TÝnh Er = {A1, A2....} trong ®ã Er lµ c¸c hÖ b»ng nhau.
B−íc 2: TÝnh Mr lµ c¸c hÖ b»ng nhau cùc ®¹i.
B−íc 3: LÇn l−ît tÝnh c¸c thuéc tÝnh K0, K1,.., Kn theo qui t¾c:
K0 = R = {a1,.., an} hoÆc K0 lµ mét kho¸ ®· biÕt.
i 1 i
i
i 1
K {a }
K
K
−
−
−⎧⎪⎪= ⎨⎪⎪⎩
B−íc 4: §Æt K = Kn. Khi ®ã K lµ kho¸ tèi tiÓu.
NhËn xÐt: NÕu ta thay ®æi thø tù c¸c thuéc tÝnh cña r b»ng thuËt to¸n nµy chóng ta cã thÓ t×m ®−îc mét kho¸ tèi tiÓu kh¸c.
VÝ dô: Cho quan hÖ r (b¶ng 2.9):
B¶ng 2.9
A B C D E
1 1 0 1 0
1 0 0 1 1
2 1 1 0 2
1 0 1 1 0
nÕu: kh«ng tån t¹i A ∈ Mr: Ki-1- { a i}⊆ A
(bao Ki)
trong tr−êng hîp ng−îc l¹i
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
69
B−íc 1: E12 = {A,C,D} E13 = {B} E14 = {A,D,E}
E23 = ∅ E24 = {A,B,D} E34 = {C}
B−íc 2: Mr = {{A, C, D}, {A, D, E},{A, B, D}}
B−íc 3: (KH: P(Mr) - phÇn tö cña Mr)
K0 = {A, B, C, D, E}
XÐt K1 = K0 - {A} = {B, C, D, E} ⊄ P(Mr) ⇒ K1 ={B, C, D, E}
XÐt K2 = K1 - {B} = {C, D, E} ⊄ P(Mr) ⇒ K2 = {C, D, E}
XÐt K3 = K2 - {C} = {D, E} ⊂ P(Mr) ⇒ K3 = {C, D, E}
XÐt K4 = K3 - {D} = {C, E} ⊄ P(Mr) ⇒ K4 ={C, E}
XÐt K5 = K4 - {E} = {C} ⊂ P(Mr) ⇒ K5 ={C, E}
VËy {C, E} lµ mét kho¸ tèi tiÓu cña r.
Còng vÝ dô trªn nh−ng ta thay ®æi tËp thuéc tÝnh theo thø tù lµ: A, C, E, B, D}. Ta ®i t×m kho¸ tèi tiÓu cña r.
B−íc 1 vµ b−íc 2 gièng nh− trªn
B−íc 3:
K0 ={A, C, E, B, D}
XÐt K1 = K0 - {A} = {C, E, B, D} ⊄ P(Mr) ⇒ K1={C, E, B, D}
XÐt K2 = K1 - {C} = {E, B, D} ⊄ P(Mr) ⇒ K2 ={E, B, D}
XÐt K3 = K2 - {E} = {B, D} ⊂ P(Mr) ⇒ K3 = K2 ={E, B, D}
XÐt K4 = K3 - {B} = {E, D}⊂ P(Mr) ⇒ K4 = K3 = {E, B, D}
XÐt K5 = K4 - {D} = {B, E} ⊄ P(Mr) ⇒ K5 = {E, B}
VËy kho¸ tèi tiÓu cña r lµ{E, B}.
Nh− vËy thay ®æi thø tù cña c¸c thuéc tÝnh, ta sÏ cã nh÷ng tËp kho¸ tèi tiÓu kh¸c nhau.
VÝ dô: Cho quan hÖ r (b¶ng 2.10):
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
70
B¶ng 2.10
A B C D E
2 2 1 4 1
1 2 1 2 2
1 1 2 2 1
3 1 3 1 2
B−íc 1: E12 ={B, C} E13 ={E} E14 = ∅
E23 ={A, D} E24 ={E} E34 ={B}
B−íc 2: Mr ={{B, C}, {E},{A, D}}
B−íc 3:
* C¸c thuéc tÝnh ®−îc lÊy theo thø tù r1 ={A, B, C, D, E}
K0 = R = {A, B, C, D, E}
XÐt K1 = K0 - {A}= {B, C, D, E} ⊄ P(Mr) ⇒ K1 = B, C, D, E}
XÐt K2 = K1 - {B}= {C, D, E} ⊄ P(Mr) ⇒ K2 = {C, D, E}
XÐt K3 = K2 - {C}= {D, E} ⊄ P(Mr) ⇒ K3 = {D, E}
XÐt K4 = K3 - {D}= {E}⊂ P(Mr) ⇒ K4 = K3 = {D, E}
XÐt K5 = K4 - {E}= {D}⊂ P(Mr) ⇒ K5 = K4 = {D, E}
VËy kho¸ tèi tiÓu cña r lµ {D, E}.
* C¸c thuéc tÝnh ®−îc lÊy theo thø tù r2 ={E, D, C, B, A}
K0 = R = {E, D, C, B, A}
XÐt K1 = K0 - {E} = {D, C, B, A} ⊄ P(Mr) ⇒ K1 = {D, C, B, A}
XÐt K2 = K1 - {D} = {C, B, A} ⊄ P(Mr) ⇒ K2 = {C, B, A}
XÐt K3 = K2 - {C} = {B, A} ⊄ P(Mr) ⇒ K3 = {B, A}
XÐt K4 = K3 - {B} = {A}⊂ P(Mr) ⇒ K4 = K3 = {B, A}
XÐt K5 = K4 - {A} = {B}⊂ P(Mr) ⇒ K5 = K4 = {B, A}
VËy kho¸ tèi tiÓu kh¸c cña quan hÖ lµ {B, A}.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
71
ThuËt to¸n 4: T×m kho¸ tèi tiÓu cho mét s¬ ®å quan hÖ
Vμo: s¬ ®å quan hÖ s = <R, F>
trong ®ã: F lµ tËp c¸c phô thuéc hµm
R ={a1,.., an}lµ tËp c¸c thuéc tÝnh
Ra: K lµ tèi tiÓu cña s
Ph−¬ng ph¸p:
TÝnh liªn tiÕp c¸c tËp thuéc tÝnh K0, K1,.., Kn nh− sau:
K0 = R = {a1,.., an}
i 1
i
i 1 i
KK
K {a }
−
−
⎧⎪= ⎨−⎪⎩
K = Kn lµ kho¸ tèi tiÓu.
Ta cã thÓ dïng c«ng thøc t−¬ng ®−¬ng:
i 1 i
i
i 1
K {a }K
K
−
−
−⎧⎪= ⎨⎪⎩
NhËn xÐt:
- Thay ®æi thø tù c¸c thuéc tÝnh cña R b»ng thuËt to¸n trªn chóng ta cã thÓ t×m ®−îc mét kho¸ tèi tiÓu kh¸c.
- NÕu nh− ®· biÕt A lµ mét kho¸ nµo ®ã th× cã thÓ ®Æt K0 = A, ta vÉn t×m ra ®−îc kho¸ tèi tiÓu vµ thêi gian t×m nhanh h¬n.
VÝ dô: Gi¶ sö s = < F, R > lµ mét l−îc ®å quan hÖ trong ®ã:
R = {a, b, c, d}
F = {{a, b}→{d},{c}→{b}}
T×m kho¸ tèi tiÓu cña s¬ ®å quan hÖ.
¸p dông thuËt to¸n trªn ta cã:
+ K0 = R ={a, b, c, d}
+ TÝnh K1
Ki-1 nÕu K i-1 −{ ai}→ R ∉ F+
Ki-1−{ a i} nÕu ng−îc l¹i.
nÕu {Ki-1 − ai}+ = R
nÕu ng−îc l¹i.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
72
XÐt K1 = K0 − {a} ={b, c, d}
{b, c, d}+ = {b, c, d} ≠ R
VËy K1 ={a, b, c, d}. (K1 = K0)
+ TÝnh K2
XÐt K2 = K1−{b} = {a, c, d}
{a, c, d}+ = {a, b, c, d} = R
VËy K2 ={a, c, d}
+ TÝnh K3
XÐt K3 = K2 −{c} = {a, d}
{a, d}+ = {a, d}≠ R
VËy K3 ={a, c, d} (K3 = K2)
+ TÝnh K4
XÐt K4 = K3 −{d} = {a, c}
{a, c}+ = {a, b, c, d} = R
VËy K4 = {a, c}
VËy kho¸ tèi tiÓu lµ {a, c}.
2.2.3. ThuËt to¸n x¸c ®Þnh c¸c thuéc tÝnh c¬ b¶n
Gi¶ sö r lµ mét quan hÖ trªn R vµ Kr lµ tËp tÊt c¶ c¸c kho¸ tèi tiÓu cña r. Ta nãi a lµ thuéc tÝnh c¬ b¶n cña r nÕu tån t¹i mét kho¸ tèi tiÓu
K (K∈ Kr) ®Ó a lµ mét phÇn tö cña K.
NÕu a kh«ng lµ thuéc tÝnh c¬ b¶n, a sÏ ®−îc gäi lµ thuéc tÝnh thø cÊp.
§èi víi l−îc ®å quan hÖ, ta còng cã ®Þnh nghÜa t−¬ng tù.
ThuËt to¸n 5: T×m tÊt c¶ c¸c thuéc tÝnh c¬ b¶n cña mét quan hÖ trªn R
Vμo: r ={h1,..,hm} lµ mét quan hÖ trªn R.
Ra: V lµ tËp tÊt c¶ c¸c thuéc tÝnh c¬ b¶n cña r.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
73
Ph−¬ng ph¸p:
B−íc 1: Tõ r ta x©y dùng mét tËp Er = {E i j: m ≥ j > i ≥1}
Trong ®ã E i j ={a∈R: hi(a) = h j (a)}
B−íc 2: Tõ Er ta x©y dùng tËp
M ={B ∈ P(R): ∃ E i j ∈ Er: E i j = B}
B−íc 3: Tõ M ta x©y dùng tËp
Mr = {B ∈M: ∀B’ ∈M: B ⊄ B’}
(chØ lÊy tÖp nµo trong M mµ kh«ng cã tËp kh¸c bao nã, tøc lµ bá bít tËp con thùc sù)
B−íc 4: X©y dùng tËp V = R- ∩ B mµ B ∈ Mr.
VÝ dô:
XÐt quan hÖ (b¶ng 2.11)
B¶ng 2.11
A B C D
1 2 1 1
2 2 1 0
1 1 0 0
2 1 0 1
B−íc 1: TÝnh Er
E12 ={B,C} E13 ={A} E14 ={D}
E23 ={D} E24 ={A} E34 ={B,C}
B−íc 2: TÝnh M ={{B,C},{A},{D}}
B−íc 3: TÝnh Mr ={{B,C},{A},{D}}. V× giao cña c¸c tËp con trong Mr b»ng rçng nªn sang,
B−íc 4: V = R- φ ={A,B,C,D}.
2.3. C¸c phÐp to¸n xö lý file d÷ liÖu
Cho 2 file d÷ liÖu sau (b¶ng 2.12):
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
74
B¶ng 2.12
File r File t
A B C A D E
a b c a b c
a a d b c d
a d c a d c
a g f
2.3.1. PhÐp hîp (r ∪ t) (Union)
Gi¶ sö r, t lµ 2 file d÷ liÖu cã cïng sè cét n khi ®ã file d÷ liÖu lµ
hîp 2 file r vµ t ký ph¸p lµ r ∪ t, gåm n cét bao gåm c¸c b¶n ghi, c¸c
dßng cña c¶ file r vµ file t. Nh÷ng dßng gièng nhau chØ lÊy mét lÇn. NÕu r vµ t lµ c¸c file cã tªn c¸c cét kh¸c nhau th× cét cña quan hÖ hîp kh«ng cã tªn.
VÝ dô:
Víi r vµ t nh− trªn ta cã r ∪ t lµ (b¶ng 2.13):
B¶ng 2.13
a b c
a a d
a d c
b c d
a g f
2.3.2. PhÐp trõ (r-t) (Difference)
Gi¶i sö r vµ t lµ 2 file d÷ liÖu cã cïng n cét.
File d÷ liÖu gäi lµ hiÖu, ký ph¸p r-t lµ mét file d÷ liÖu n cét bao gåm c¸c b¶n ghi cña r nh−ng kh«ng cã mÆt trong t. NÕu r vµ t cã tªn c¸c cét kh¸c nhau th× file d÷ liÖu hiÖu kh«ng cã tªn c¸c cét.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
75
VÝ dô: B¶ng 2.14
B¶ng 2.14
r-t=
a a d
2.3.3. PhÐp giao (r∩t) (Intersection)
Gi¶ sö r vµ t lµ 2 file d÷ liÖu cïng n cét. File d÷ liÖu giao r∩t bao
gåm file d÷ liÖu cã n cét gåm c¸c b¶n ghi cã c¶ trong t vµ r. NÕu file d÷ liÖu cã c¸c cét kh¸c nhau th× file d÷ liÖu giao kh«ng cã tªn c¸c cét.
VÝ dô:
Víi r vµ t cho tr−íc ta cã b¶ng 2.15.
B¶ng 2.15
r∩t=
a b C
a d c
2.3.4. PhÐp tÝch §Ò-c¸c (r x t) (Cartesian product)
Cho r lµ file d÷ liÖu trªn R1 = {a1, a2,..., an}
t lµ file d÷ liÖu trªn R2 = {b1, b2,..., bm}
Khi ®ã file d÷ liÖu tÝch §Ò-c¸c ký ph¸p r x t lµ file d÷ liÖu gåm n + m cét. §ã lµ n cét cña r vµ m cét cña t. C¸c dßng cña tÝch §Ò-c¸c cã
d¹ng x1, x2,..., xn, y1, y2,..., ym. ë ®©y x1, x2,..., xn ∈ r vµ y1, y2,..., ym ∈ t.
Sè l−îng c¸c dßng cña tÖp tÝch r x t b»ng sè l−îng dßng cña r
nh©n víi sè l−îng dßng cña t. Ký hiÖu: | r x t | = |r| x |t|
Víi r vµ t nh− tr−íc ta cã b¶ng 2.16:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
76
B¶ng 2.16
r x t =
rA B C tA D E
a b c a b c
a b c b c d
a b c a d c
a b c a g f
a a d a b c
a a d b c d
a a d a d c
a a d a g f
a d c a b c
a d c b c d
a d c a d c
a d c a g f
2.3.5. PhÐp chiÕu (Projection)
Gi¶ sö r lµ file d÷ liÖu cã tËp cét lµ R={a1,a2,...,an} khi ®ã phÐp
chiÕu ký hiÖu lµ Π lªn tËp r lµ Πi1,i2,...,ip(r), i lµ sè thø tù lÊy trong tËp tõ 1 ®Õn n. j = 1,2,...,p (chØ sè p <= n)
Khi ®ã ta thùc hiÖn phÐp chiÕu nh− sau: Gi÷ l¹i p cét cã sè hiÖu lµ i1,i2,...,ip vµ lo¹i bá c¸c dßng trïng nhau.
VÝ dô:
Víi r vµ t cho tr−íc ta cã b¶ng 2.17:
B¶ng 2.17
Π1,2(r)=
A B
a b
a a
a d
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
77
2.3.6. PhÐp chän (Restriction)
Gi¶ sö r lµ file d÷ liÖu trªn R={a1,a2,...,an} phÐp chän h×nh thµnh
file d÷ liÖu ký ph¸p δF(r) ®ã lµ file d÷ liÖu cã cïng sè cét nh− r nh−ng sè dßng chØ bao gåm c¸c dßng cña r tho¶ m·n ®iÒu kiÖn F.
ë ®©y F lµ biÓu thøc cã ®iÒu kiÖn gåm:
- C¸c to¸n h¹ng (tªn cét vµ h»ng)
- C¸c phÐp to¸n quan hÖ sè häc (<,=,=,>,=,?)
- C¸c phÐp to¸n logic (^,v,¬ lµ phÐp vµ, hoÆc, phñ ®Þnh)
- H»ng ®−îc ®Æt trong dÊu nh¸y.
VÝ dô: Víi r ®· cho tr−íc (trong b¶ng 2.12)
F lµ ®iÒu kiÖn A =‘a’ ∧ B = ‘b’
khi ®ã δF(r) lµ phÐp chän ®−îc thùc hiÖn b»ng c¸ch rót ra c¸c b¶n ghi tho¶ m·n F tõ r vµ lo¹i bá c¸c b¶n ghi dßng trïng nhau.
B¶ng 2.18
A B C
a b c
2.3.7. PhÐp chia (Division)
Gi¶ sö r lµ file d÷ liÖu n cét
t lµ file d÷ liÖu m cét, trong ®ã n > m vµ t ≠ φ
File d÷ liÖu th−êng ký ph¸p lµ: r÷t ®−îc t¹o ra nh− sau:
A1 = Π1,...,n-m(r)
A2 = A1 x t
A3 = A2-r
A4 = Π1,2,...,n-m(A3)
r÷t = A1 - A4
Nh− vËy: r÷t = Π1,...,n-m(r) - Π1,...,n-m ((Π1,...,n-m(r) x t)-r)
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
78
PhÐp chia lµ phÐp phøc t¹p nhÊt mµ Codd ®Ò ra, b¶n chÊt cña phÐp nµy lµ sµng läc trong n-m cét ®Çu cña file d÷ liÖu bÞ chia (chÝnh lµ r) mµ kh«ng bÞ rµng buéc bëi file d÷ liÖu chia (t). Cã thÓ thÊy r»ng c¸ch tÝnh file d÷ liÖu th−êng chØ dïng phÐp chiÕu vµ phÐp tÝch §Ò-c¸c.
VÝ dô:
Cho file r nh− trong b¶ng 2.19:
B¶ng 2.19
A B C D
a b c d
a b e f
b c e f
e d c d
e d e f
a b d c
b b b b
B¶ng 2.20: file d÷ liÖu t B¶ng 2.21: file d÷ liÖu r ÷ t
2.3.8. PhÐp nèi ®iÒu kiÖn 2 file d÷ liÖu (Joinθ)
Gi¶ sö r lµ file d÷ liÖu n cét
t lµ file d÷ liÖu m cét
θ lµ mét trong nh÷ng quan hÖ sè häc: <, ≤, >, ≥, ≠. Khi ®ã ký ph¸p
phÐp nèi 2 file d÷ liÖu r vµ t cã ®iÒu kiÖn lµ r >< t
Khi ®ã kÕt qu¶ cña phÐp nèi θ cña 2 file d÷ liÖu r vµ t lµ file d÷ liÖu cã n+m cét bao gåm c¸c b¶n ghi cña tÝch §Ò c¸c r x t, trong ®ã c¸c b¶n ghi nμy tho¶ m·n quan hÖ sè häc θ.
VÝ dô: Víi r vµ t ®· cho, ta cã phÐp nèi θ:
E F
c d
e f
E F
a b
e d
θ
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
79
B¶ng 2.22
r.A = t.A
r.A B C t.A D E
a b c a b c
a b c a d c
a b c a g f
a a d a b c
a a d a d c
a a d a g f
a d c a b c
a d c a d c
a d c a g f
2.3.9. PhÐp nèi 2 file d÷ liÖu (Join)
Gi¶ sö r lµ file d÷ liÖu n cét
t lµ file d÷ liÖu m cét vµ cã q cét cã tªn trïng nhau A1,...,Aq, ta ký
ph¸p phÐp nèi r víi t nh− sau: r >< t
PhÐp nèi ®−îc thùc hiÖn nh− sau:
1. TÝnh r x t
2. Thùc hiÖn chän trong tÝch §Ò-c¸c lÊy ra c¸c b¶n ghi tho¶ m·n ®iÒu kiÖn c¸c cét cã tªn trïng nhau th× cã cïng gi¸ trÞ.
3. Dïng phÐp chiÕu lo¹i bá q cét (tªn gièng nhau), mçi cÆp gièng nhau chØ gi÷ l¹i mét
Nh− vËy sè cét cña phÐp nèi lµ n+m-q
r >< t = Π i1i2...in+m-q(δrA1=tA1 ∧... ∧ rAq =tAq(r x t))
VÝ dô:
B¶ng 2.23: file r B¶ng 2.24: file t
A B C
0 1 0
1 1 1
0 1 1
D A E
0 0 0
1 1 0
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
80
B¶ng 2.25
r x t=
rA B C D tA E
0 1 0 0 0 0
0 1 0 1 1 0
1 1 1 0 0 0
1 1 1 1 1 0
0 1 1 0 0 0
0 1 1 1 1 0
B¶ng 2.26 B¶ng 2.27
(δrA1 = tA1 ∧... ∧ rAq=t.Aq) = Δ Π(Δ) =
rA B C D tA E
0 1 0 0 0 0
1 1 1 1 1 0
0 1 1 0 0 0
rA B C D E
0 1 0 0 0
1 1 1 1 0
0 1 1 0 0
2.3.10. VÝ dô ¸p dông
Cã b¶ng tæng kÕt b¸n hµng ®å ch¬i
Ngμy th¸ng M· hμng Tªn hμng §¬n gi¸ Sè l−îng
2905 MH1
MH2
MH6
Tñ l¹nh
Qu¹t ®iÖn
BÕp ga
2
5
2
2
3
2
Thμnh tiÒn
§· thanh to¸n
23
7
Tõ ®©y, x©y dùng b¶ng øng víi l−îc ®å quan hÖ sau:
BANHANG (Ngµy th¸ng, M· hµng, Tªn hµng, §¬n gi¸, Sè l−îng, tæng theo ngµy, thanh to¸n).
Kho¸ tèi tiÓu lµ {ngµy th¸ng, m· hµng}
Ng−êi ta t¸ch ®−îc thµnh c¸c b¶ng chuÈn 3 nh− sau:
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
81
1. KHOILUONG
Ngμy th¸ng M· hμng Sè l−îng
2905
2905
2905
MH1
MH3
MH6
2
3
2
3005 MH2 3
3105
3105
3105
MH1
MH4
MH9
4
3
2
2. DOANHSO
Ngμy th¸ng Tæng Thanh to¸n
2905 23 7
3005 12 3
3105 32 21
3. HANG
M· hμng Tªn hμng
MH1
MH3
MH6
MH2
MH4
MH9
Tñ l¹nh
Qu¹t ®iÖn
BÕp ga
Bμn lμ
Xe m¸y
Nåi c¬m ®iÖn
4. MATHANG
Tªn hμng §¬n gi¸
Tñ l¹nh
Qu¹t ®iÖn
BÕp ga
Bμn lμ
Xe m¸y
Nåi c¬m ®iÖn
2
5
2
4
6
3
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
82
1. T×m l¹i BANHANG?
BANHANG = khèi l−îng >< Doanh sè >< Hµng >< MÆt hµng
Ngμy th¸ng
M· hμng
Tªn hμng §¬n gi¸ Sè l−îng
Tæng theo ngμy
Thanh to¸n
2905
2905
2905
MH1
MH3
MH6
Tñ l¹nh
Qu¹t ®iÖn
BÕp ga
2
5
2
2
3
2
23
23
23
7
7
7
3005 MH2 Bμn lμ 4 3 12 3
3105
3105
3105
MH1
MH4
MH9
Tñ l¹nh
Xe m¸y
Nåi c¬m ®iÖn
2
6
3
4
3
2
32
32
32
21
21
21
2. Cho biÕt doanh sè b¸n ra sau ngµy 29 th¸ng 5?
Πngµy th¸ng, tæng(σngµy th¸ng > ‘2905’(DOANHSO))
Ngμy th¸ng Tæng
3005
3105
12
32
3. Cho biÕt tªn hμng vµ sè l−îng ®· b¸n trong ngµy 29 th¸ng 5?
Πtªn hµng, sè l−îng(σngµy th¸ng = �2905’(KHOILUONG) >< HANG)
Tªn hμng Sè l−îng
Tñ l¹nh
Qu¹t ®iÖn
BÕp ga
2
3
2
4. Cho biÕt c¸c ngμy mµ trong ®ã nh÷ng ngµy nµy doanh sè b¸n ra Ýt nhÊt lµ 20?
Πngµy th¸ng(σtæng >= ‘20’(DOANHSO)
Ngμy th¸ng
2905
3105
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
83
5. Cho biÕt m· hμng vµ ®¬n gi¸ cña nh÷ng mÆt hµng b¸n ra trong ngµy 31/5?
Πm·hµng(σngµy th¸ng = �3105’(KHOILUONG)) Πm·hµng, ®¬n gi¸(HANG MATHANG)
M· hμng §¬n gi¸
MH1
MH4
MH9
2
6
3
6. Cho biÕt m· hμng vµ tªn hμng mµ ®¬n gi¸ cña nã nhá h¬n 4?
Π tªn hµng, m·hµng(σ®¬n gi¸<‘4’(MATHANG) HANG)
Tªn hμng M· hμng
Tñ l¹nh
BÕp ga
Nåi c¬m ®iÖn
MH1
MH6
MH9
7. T×m tªn hμng vµ ®¬n gi¸ cña m· hµng MH1 vµ sè l−îng b¸n ra cña mÆt hµng nµy trong ngµy 31/5?
Π tªn hµng,§¬n gi¸, sè l−îng(Π m· hµng, sè l−îng (σngµy th¸ng= ‘3105’, m· hµng = MH1(KHOILUONG))
>< HANG >< MATHANG)
Tªn hμng §¬n gi¸ Sè l−îng
Tñ l¹nh 2 4
NhËn xÐt:
§Ó t¨ng tèc ®é truy vÊn d÷ liÖu, chóng ta cÇn thùc hiÖn theo tr×nh tù sau:
- X¸c ®Þnh c¸c b¶ng tham gia
- Gi¶m ®é lín cña mét tÖp tr−íc khi ghÐp nèi (b»ng c¸ch −u tiªn phÐp chän cã ®iÒu kiÖn ®−îc thùc hiÖn tr−íc, thùc hiÖn phÐp chiÕu ngay nÕu thÊy kh«ng ¶nh h−ëng ®Õn kÕt qu¶ bµi to¸n)
2.3.11. C¸c chiÕn l−îc tèi −u tæng qu¸t
V× sao mét sè c©u hái truy vÊn l¹i thùc hiÖn qu¸ l©u nh− vËy?
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
84
Trong c¸c ng«n ng÷ hái dùa trªn ®¹i sè quan hÖ, c¸c c©u hái liªn quan ®Õn phÐp tÝnh tÝch §Ò-c¸c vµ phÐp kÕt nèi lµ rÊt tèn kÐm thêi gian. Cã thÓ vÝ dô, cã 2 quan hÖ r1 vµ r2 (coi hai quan hÖ nµy lµ 2 tÖp d÷ liÖu). TÖp r1 cã n b¶n ghi, tÖp r2 cã m b¶n ghi. TÝch §Ò-c¸c cña r1xr2 thu ®−îc cã nxm b¶n ghi. PhÐp tÝnh trªn kh«ng nh÷ng tèn kÐm vÒ thêi gian mµ cßn tèn c¶ vÒ « nhí n÷a.
Dùa vµo vÝ dô sau, chóng ta sÏ lµm râ h¬n t− t−ëng cÇn thiÕt ph¶i thao t¸c ra sao ®Ó gi¶m thêi gian xö lý c©u hái, ®Æc biÖt cÇn thiÕt nhÊt lµ ph¶i gi¶m thêi gian xö lý c©u hái, gi¶m tíi møc cã thÓ ®èi víi c¸c truy xuÊt ngoµi (tøc lµ c¸c thao t¸c víi bé nhí thø cÊp nh− b¨ng, ®Üa tõ)
Cho c©u hái trªn l−îc ®å R(A,B) vµ S(C,D) d−íi d¹ng ng«n ng÷ ®¹i sè quan hÖ: A B C D 100( (AB x CD))= Λ =Π σ
NÕu ®−a phÐp chän D = 100 vµo bªn trong phÐp tÝch §Ò-c¸c sÏ ®−îc: A B C D 100( (AB x (CD))= =Π σ σ
Vµ sau ®ã chuyÓn phÐp chän σ B=C cña tÝch §Ò-c¸c thµnh phÐp
“kÕt nèi b»ng” sÏ ®−îc: A D 100B C(AB (CD))==
Π σ><
Râ rµng phÐp tÝnh cuèi cïng sÏ ®ì tèn kÐm thêi gian h¬n rÊt nhiÒu.
Do vËy, viÖc tæ chøc l¹i c©u hái nh− vÝ dô nªu trªn lµ mét minh häa râ rµng cho thÊy sè lÇn cÇn truy nhËp tíi bé nhí thø cÊp sÏ gi¶m ®i rÊt nhiÒu. Tr×nh tù thùc hiÖn c¸c phÐp tÝnh sÏ ®ãng mét vai trß quan träng trong qu¸ tr×nh tæ chøc c©u hái
Ullman J.D trong c¸c kÕt qu¶ nghiªn cøu c«ng bè lÇn ®Çu tiªn cña m×nh ®· tr×nh bµy 6 chiÕn l−îc tæng quan cho viÖc tèi −u ho¸, c©u hái nh− sau:
1. Thùc hiÖn phÐp chän sím nh− cã thÓ.
BiÕn ®æi c©u hái ®Ó ®−a phÐp chän vµo thùc hiÖn tr−íc nh»m lµm gi¶m bít kÝch cì cña kÕt qu¶ trung gian vµ do vËy chi phÝ ph¶i tr¶ gi¸ cho viÖc truy nhËp bé nhí thø cÊp còng nh− l−u tr÷ cña bé nhí chÝnh sÏ nhá ®i.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
85
2. Tæ hîp nh÷ng phÐp chän x¸c ®Þnh víi phÐp tÝch §Ò-c¸c thμnh
phÐp kÕt nèi
Nh− ®· biÕt, phÐp kÕt nèi, ®Æc biÖt lµ phÐp kÕt nèi b»ng cã thÓ
thùc hiÖn ®−îc “rΔ h¬n lµ thùc hiÖn phÐp tÝch §Ò-c¸c trªn cïng c¸c
quan hÖ. NÕu kÕt qu¶ cña tÝch §Ò-c¸c RxS lµ ®èi sè cña phÐp chän vµ
phÐp chän liªn quan tíi c¸c phÐp so s¸nh gi÷a c¸c thuéc tÝnh cña R vµ
S th× râ rµng phÐp tÝch §Ò-c¸c lµ phÐp kÕt nèi.
3. Tæ hîp d·y c¸c phÐp tÝnh mét ng«i nh− c¸c phÐp chän vμ phÐp
chiÕu.
Mét d·y c¸c phÐp mét ng«i nh− phÐp chän hoÆc phÐp chiÕu mµ
kÕt qu¶ cña chóng phô thuéc vµo c¸c bé cña mét quan hÖ ®éc lËp th×
cã thÓ nhãm c¸c phÐp tÝnh ®ã l¹i
4. T×m c¸c biÓu thøc con chung trong mét biÓu thøc
NÕu kÕt qu¶ cña mét biÓu thøc con chung (biÓu thøc xuÊt hiÖn
h¬n mét lÇn) lµ mét quan hÖ kh«ng lín vµ nã cã thÓ ®−îc ®äc tõ bé
nhí thø cÊp víi Ýt thêi gian th× nªn tÝnh to¸n tr−íc biÓu thøc ®ã chØ mét
lÇn. BiÓu thøc con chung cã liªn quan tíi mét phÐp kÕt nèi th× trong
tr−êng hîp tæng qu¸t kh«ng thÓ ®−îc thay ®æi nhê viÖc ®Èy phÐp chän
vµo trong.
§iÒu ®¸ng quan t©m lµ c¸c biÓu thøc con chung cã tÇn sè xuÊt hiÖn lín ®−îc biÓu diÔn trong c¸c view (khung nh×n) cña ng−êi sö
dông v× ®Ó thùc hiÖn c¸c c©u hái ®ã cÇn thay thÕ mét biÓu thøc cè ®Þnh
cho khung nh×n.
5. Xö lý c¸c tÖp tr−íc
Cã hai vÊn ®Ò cÇn xö lý tr−íc quan träng cho c¸c tÖp sè lµ s¾p xÕp tr−íc c¸c tÖp vµ thiÕt lËp c¸c tÖp chØ sè. Nh− vËy, râ rµng khi thùc
hiÖn c¸c phÐp tÝnh cã liªn quan tíi 2 tÖp (phÐp tÝnh 2 ng«i) sÏ nhanh
h¬n rÊt nhiÒu.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
86
6. §¸nh gi¸ tr−íc khi thùc hiÖn tÝnh to¸n
Mét khi cÇn chän tr×nh tù thùc hiÖn c¸c phÐp tÝnh trong biÓu thøc hoÆc chän mét trong hai ®èi sè cña mét phÐp hai ng«i cÇn tÝnh to¸n xem chi phÝ thùc hiÖn c¸c phÐp tÝnh ®ã (th−êng lµ sè phÐp tÝnh, thêi
gian, dung tÝch bé nhí theo mét tû lÖ gi÷a kÝch cì c¸c quan hÖ …). Tõ
®ã sÏ cã ®−îc c¸c chi phÝ (gi¸ thµnh) ph¶i tr¶ cho c¸c c¸ch kh¸c nhau ®Ó thùc hiÖn c¸c c©u hái.
2.4. C¸c d¹ng chuÈn vμ c¸c thuËt to¸n liªn quan
2.4.1. C¸c ®Þnh nghÜa chuÈn ho¸
§Þnh nghÜa 1 (D¹ng chuÈn 1 - 1NF)
Gi¶ sö r = {h1, h2,.., hm} lµ file d÷ liÖu trªn tËp cét R = {a1, a2,.., an}
Khi ®ã r lµ 1NF nÕu c¸c gi¸ trÞ hi(aj) lµ s¬ cÊp víi mäi i, j
Kh¸i niÖm s¬ cÊp hiÓu ë ®©y lµ gi¸ trÞ hi(aj) (i = 1,...,m ; j = 1,...n) kh«ng ph©n chia ®−îc n÷a.
VÝ dô:
XÐt quan hÖ - Tr×nh ®é ngo¹i ng÷
B¶ng 2.28. Quan hÖ TDNN
MNS Hoten Ngoaingu
A199001 Hoμng DiÖu Anh, NhËt
A199002 Quèc Trung Anh, Trung
A199003 ChÝ HiÕu Anh, §øc
A199004 Lan Anh Anh
A199005 Ph−¬ng Lan Anh, Hμn
A199006 B¶o Quúnh Ph¸p, Nga, Anh
Cã thÓ thÊy r»ng thuéc tÝnh NGOAINGU cßn cã thÓ ®−îc chia nhá h¬n ra thµnh tõng ngo¹i ng÷ mét vµ sau ®ã cã thÓ ph©n thµnh hai bé phËn lµ tªn ngo¹i ng÷ vµ tr×nh ®é ngo¹i ng÷. Do vËy quan hÖ ngo¹i ng÷ ch−a ë d¹ng chuÈn 1.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
87
§Þnh nghÜa 2 (D¹ng chuÈn 2 - 2NF)
Quan hÖ r ®−îc gäi lµ d¹ng chuÈn 2 nÕu:
- Quan hÖ r lµ d¹ng chuÈn 1
- Víi mäi kho¸ tèi tiÓu K:
A →{a}∉ Fr víi A ⊂ K vµ a lµ thuéc tÝnh thø cÊp.
§Þnh nghÜa 3 (D¹ng chuÈn 3 - 3NF)
Quan hÖ r lµ d¹ng chuÈn 3 nÕu:
A →{a}∉ Fr ®èi víi A mµ A+ ≠ R, a ∉ A, a ∉ ∪ K
Cã nghÜa lµ:
- K lµ mét khãa tèi tiÓu
- a lµ thuéc tÝnh thø cÊp
- A kh«ng lµ khãa
- A → {a} kh«ng ®óng trong r.
§Þnh nghÜa 4 (D¹ng chuÈn Boyce-Codd - BCNF)
Quan hÖ r = {h1, h2,..., hm} ®−îc gäi lµ d¹ng chuÈn Boyce-Codd
nÕu: A→ {a} ∉ Fr, ®èi víi nh÷ng tËp thuéc tÝnh A mµ A+ ≠ R, a ∉ A.
NhËn xÐt:
Qua ®Þnh nghÜa ta cã thÓ thÊy d¹ng chuÈn BCNF lµ 3NF vµ 3NF lµ 2NF. Chóng ta cã thÓ ®−a ra c¸c vÝ dô chøng tá quan hÖ lµ 2NF nh−ng kh«ng lµ 3NF vµ cã quan hÖ lµ 3NF nh−ng kh«ng lµ BCNF.
Nãi c¸ch kh¸c lµ líp c¸c quan hÖ BCNF lµ líp con thùc sù cña líp c¸c quan hÖ 3NF vµ líp c¸c quan hÖ 3NF nµy l¹i lµ líp con thùc sù cña líp c¸c quan hÖ 2NF.
§èi víi s = < R, F > th× c¸c d¹ng chuÈn 2NF, 3NF, BCNF trong ®ã ta thay Fr = F+.
Chó ý: §èi víi s¬ ®å quan hÖ chóng ta kh«ng cã d¹ng chuÈn 1NF.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
88
VÝ dô 1:
Cho s = < R, F > lµ s¬ ®å quan hÖ, víi R = (a1, a2, a3, a4)
F = {{a1}→ {a2},{a3} → {a4},{a2} → {a1, a3, a4}}
DÔ thÊy a1, a2 lµ c¸c khãa tèi tiÓu cña s, a3, a4 lµ thuéc tÝnh thø cÊp. Do ®ã, s lµ 2NF, nh−ng kh«ng lµ 3NF.
VÝ dô 2:
Cho t = < R, F > lµ s¬ ®å quan hÖ, víi R = (a1, a2, a3)
F = {{a1, a2} →{a3},{a3}→ {a2}}
Ta nhËn thÊy {a1, a2} lµ mét khãa tèi tiÓu cña t. HiÓn nhiªn t lµ
3NF. V× cã: {a3}→ {a2}, a3 kh«ng thuéc kho¸, a2 c¬ b¶n, nªn t kh«ng lµ BCNF.
Nh− vËy viÖc ph©n líp c¸c d¹ng chuÈn cã thÓ ®−îc thÓ hiÖn qua h×nh 2.2:
H×nh 2.2. Ph©n líp c¸c d¹ng chuÈn
2.4.2. Mét sè ®Æc tr−ng d¹ng chuÈn 2NF
B©y giê chóng ta nªu ra lo¹i phô thuéc hµm ®Æc biÖt, mµ phô thuéc d÷ liÖu nµy ®ãng vai trß quan träng trong d¹ng chuÈn 2.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
89
§Þnh nghÜa 5 (phô thuéc hoμn toμn, phô thuéc bé phËn)
Mét phô thuéc hµm A → B ®−îc gäi lµ s¬ cÊp nÕu kh«ng tån t¹i
mét tËp hîp A'⊂A sao cho A' → B. Trong tr−êng hîp nµy ta còng nãi
B phô thuéc hoμn toμn vµo A. Nh− vËy nÕu A lµ mét thuéc tÝnh s¬ cÊp
th× phô thuéc hµm A → B còng lµ s¬ cÊp. Trong tr−êng hîp ng−îc l¹i, ta nãi B phô thuéc bé phËn vµo A.
Trªn c¬ së ®Þnh lý nµy, ng−êi ta ®−a ra hai mÖnh ®Ò quan träng sau:
MÖnh ®Ò 1:
Cho r lµ mét quan hÖ trªn R. Khi ®ã r lµ 2NF khi vµ chØ khi:
- r lµ 1NF
- Mçi thuéc tÝnh thø cÊp cña r ®Òu phô thuéc hoµn toµn vµo mäi khãa tèi tiÓu.
V× s¬ ®å quan hÖ kh«ng cã d¹ng chuÈn 1NF, tõ ®Þnh nghÜa 2 ta cã mÖnh ®Ò sau:
MÖnh ®Ò 2:
Cho s lµ mét s¬ ®å quan hÖ trªn R. Khi ®ã s lµ 2NF khi vµ chØ khi mäi thuéc tÝnh thø cÊp cña s ®Òu phô thuéc hoµn toµn vµo khãa tèi tiÓu bÊt kú.
Cã thÓ thÊy, b¶n chÊt d¹ng chuÈn 2NF lµ lo¹i bá c¸c phô thuéc bé phËn gi÷a c¸c thuéc tÝnh thø cÊp víi c¸c khãa tèi tiÓu.
2.4.3. Mét sè ®Æc tr−ng d¹ng chuÈn 3NF
Trong môc nµy cã kh¸i niÖm quan träng m« t¶ d¹ng 3NF.
§Þnh nghÜa 6
Mét phô thuéc hµm A → C ®−îc gäi lµ trùc tiÕp nÕu kh«ng cã B
(B ≠ A vµ B ≠ C) sao cho A → B vµ B → C (tøc lµ B kh«ng phô thuéc hµm vµo A hoÆc C kh«ng phô thuéc hµm vµo B). Trong tr−êng hîp nÕu
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
90
cã B nh− vËy th× B ®−îc gäi lµ tËp thuéc tÝnh b¾c cÇu vµ A → C lµ phô
thuéc b¾c cÇu.
Trªn c¬ së ®Þnh nghÜa nµy, ng−êi ta ®−a ra hai mÖnh ®Ò quan träng sau:
MÖnh ®Ò 3
Gi¶ sö r = {h1, h2,.., hm} lµ mét quan hÖ trªn R = {a1, a2,..., an}. Khi Êy r ë d¹ng chuÈn 3NF nÕu vµ chØ nÕu:
- Quan hÖ r ®· ë d¹ng chuÈn 2NF.
- Kh«ng cã thuéc tÝnh thø cÊp nµo cña r phô thuéc b¾c cÇu vµo mét kho¸ tèi tiÓu.
MÖnh ®Ò 4
Gi¶ sö s lµ mét s¬ ®å quan hÖ trªn R. Khi ®ã s lµ 3NF nÕu vµ chØ nÕu:
- s lµ 2NF
- Mäi thuéc tÝnh thø cÊp cña s phô thuéc trùc tiÕp vµo mçi kho¸ tèi tiÓu.
Trong d¹ng chuÈn 3NF chóng ta lo¹i bá c¸c phô thuéc bé phËn, phô thuéc b¾c cÇu gi÷a c¸c thuéc tÝnh thø cÊp víi c¸c kho¸ tèi tiÓu.
2.4.4. Mét sè ®Æc tr−ng d¹ng chuÈn BCNF
§Þnh nghÜa 7 (tËp sinh)
Gi¶ sö r lµ mét quan hÖ trªn R, cßn A, B ⊆ R vµ A → B. Khi ®ã ta nãi A lµ tËp sinh cña B nÕu:
- |A| < |B|,
- Kh«ng tån t¹i tËp con thùc sù cña A mµ x¸c ®Þnh hµm cho B
TËp C lµ tËp sinh cña quan hÖ r nÕu cã mét tËp D nµo ®ã ®Ó C lµ tËp sinh cña D.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
91
Trªn c¬ së ®Þnh nghÜa nµy, ng−êi ta ®−a ra c¸c mÖnh ®Ò quan träng sau:
MÖnh ®Ò 5
Gi¶ sö r lµ quan hÖ trªn R. Khi ®ã r lµ BCNF khi vµ chØ khi mäi tËp sinh cña r ®Òu lµ khãa.
MÖnh ®Ò 6
Gi¶ sö r lµ mét quan hÖ trªn R. Khi ®ã r lµ BCNF nÕu vµ chØ nÕu
víi mäi B ∈ Mr, a ∈ B th× {B - a}r+ = B - a, ë ®©y Mr lµ hÖ b»ng nhau
cùc ®¹i cña quan hÖ r.
Gi¶ sö A → B lµ mét phô thuéc hµm. Chóng ta gäi phô thuéc hµm
nµy lµ tÇm th−êng nÕu B ⊆ A. Ng−îc l¹i trong tr−êng hîp nµy, chóng ta gäi nã lµ phô thuéc hµm kh«ng tÇm th−êng.
MÖnh ®Ò 7
Gi¶ sö s = < R, F > lµ mét s¬ ®å quan hÖ trªn R. Khi ®ã s lµ BCNF
nÕu vµ chØ nÕu víi mäi A → B ∈ F vµ A → B kh«ng tÇm th−êng th× A+ = R.
2.4.5. C¸c thuËt to¸n
ThuËt to¸n 1 (kiÓm tra mét quan hÖ r cã lμ BCNF hay kh«ng)
Vμo: r = {h1, h2,.., hm} lµ mét quan hÖ trªn R = {a1, a2,..., an}.
Ra: r cã ph¶i lµ BCNF hay kh«ng?
Ph−¬ng ph¸p:
B−íc 1: Tõ r ta x©y dùng tËp Er: Er = {Eij: 1 ≤ i < j ≤ m}.
trong ®ã Eij = {a ∈ R: hi(a) = hj (a)}
B−íc 2: Tõ Er x©y dùng tËp M.
M = {B ∈ P(R): Tån t¹i Eij ∈ Er: Eij = B}
B−íc 3: Tõ M x©y dùng tËp Mr, Mr ={B ∈ M: ∀B' ∈ M: B ⊄ B'}
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
92
B−íc 4: NÕu víi ∀B ∈ Mr, ∀a ∈ B ta cã: {B - a}r+ = B – a, ta kÕt
luËn r ®· ë BCNF, ng−îc l¹i r ch−a ë BCNF.
VÝ dô:
B¶ng 2.29: Quan hÖ r
A B C D E
1 0 1 0 1
2 1 0 1 1
2 0 1 1 0
1 1 3 1 3
Khi ®ã: E12 = {E}, E13 = {B, C}, E14 = {A}
E23 ={A, D}, E24 ={B, D}, E34 = {D}
M = {{E}, {A},{D}, {B, C}, {A, D}, {B, D}}
Mr = {{B, C},{A, D},{E},{B, D}}
Ta cã thÓ kiÓm tra r»ng {B, C} - B = C vµ {C}r+ = {B, C}. V× vËy r
kh«ng lµ BCNF.
ThuËt to¸n 2 (KiÓm tra mét s¬ ®å quan hÖ s cã lμ BCNF hay kh«ng)
Vμo: s = < R, F >, R= {a1, a2,..., an} vµ 1 1
i i
m m
A BF ... A , B R
A B
→⎧⎪= ⊆⎨⎪ →⎩
Ra: s cã lµ BCNF hay kh«ng?
B−íc 1: NÕu A1 → B1 lµ phô thuéc hµm kh«ng tÇm th−êng (Bi ⊆ Ai)
vµ A1+ ≠ R th× dõng vµ kÕt luËn s kh«ng lµ BCNF, ng−îc
l¹i chuyÓn sang b−íc sau.
...
B−íc m: Gièng b−íc 1 nh−ng ®èi víi Am → Bm
B−íc m+1: s lµ BCNF.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
93
VÝ dô:
Cho s¬ ®å quan hÖ s = < R, F >, víi R = {a1, a2, a3, a4,a5, a6}
1 2
1 2 3 4
4 5 6
{a } {a }F {a ,a } {a ,a }
{a } {a ,a }
→⎧⎪= →⎨⎪ →⎩
(nhËn xÐt: m = 3 phô thuéc hμm kh«ng tÇm th−êng)
B−íc 1: XÐt phô thuéc hµm thø nhÊt, cã bao ®ãng vÕ tr¸i:
{a1}+ = {a1, a2, a3, a4, a5, a6} = R.
B−íc 2: XÐt phô thuéc hµm thø 2, cã bao ®ãng vÕ tr¸i:
{a1,a2}+ = {a1, a2, a3, a4, a5, a6} = R.
B−íc 3: XÐt tiÕp phô thuéc hµm thø 3, cã bao ®ãng vÕ tr¸i:
{a4}+ = {a4, a5, a6} ≠ R.
Nh− vËy t¹i b−íc 3 (m = 3) ph¶i dõng vµ kÕt luËn: s kh«ng lµ BCNF.
2.4.6. ChuÈn ho¸ mét quan hÖ
Nh− ta ®· biÕt, thùc thÓ lµ h×nh ¶nh t−îng tr−ng cho mét ®èi t−îng cô thÓ hay mét kh¸i niÖm trõu t−îng nh−ng cã mÆt trong thÕ giíi thùc; cßn kiÓu thùc thÓ lµ mét nhãm c¸c thùc thÓ cã chung nhau mét sè ®Æc tÝnh mµ chóng ta quan t©m. VÝ dô nh− dù ¸n, con ng−êi, s¶n phÈm,...
Trong thùc tÕ, ®Ó ®¬n gi¶n ho¸, ng−êi ta th−êng dïng kh¸i niÖm thùc thÓ thay cho kh¸i niÖm kiÓu thùc thÓ. V× vËy, tõ ®©y trë ®i, chóng ta sÏ dïng kh¸i niÖm “ thùc thÓ” thay v× kh¸i niÖm “kiÓu thùc thÓ”.
Do vËy, trong mét hÖ th«ng tin, cÇn lùa chän mét sè tÝnh chÊt ®Æc tr−ng ®Ó diÔn t¶ mét thùc thÓ, c¸c tÝnh chÊt nµy ®−îc gäi lµ thuéc tÝnh cña thùc thÓ ®−îc m« t¶ vµ ®©y còng chÝnh lµ c¸c lo¹i th«ng tin d÷ liÖu cÇn qu¶n lý.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
94
Gi¸ trÞ c¸c thuéc tÝnh cña mét thùc thÓ cho phÐp diÔn t¶ mét tr−êng hîp cô thÓ cña thùc thÓ, gäi lµ mét thÓ hiÖn cña thùc thÓ ®ã.
VÝ dô:
(Lª Thanh Hµ, 53 Hai Bµ Tr−ng - Hµ Néi, 1-5-1978) lµ mét thÓ
hiÖn cña ‘sinh viªn’. (M¸y in, LASER SHOT, LBP_1120) lµ mét
thÓ hiÖn cña s¶n phÈm.
Mét thuéc tÝnh lμ s¬ cÊp khi ta kh«ng cÇn ph©n tÝch nã thµnh
nhiÒu thuéc tÝnh kh¸c, tuú theo nhu cÇu xö lý trong hÖ th«ng tin ®èi víi mét thùc thÓ.
Th«ng th−ßng mét thùc thÓ øng víi mét b¶ng (hay mét quan hÖ cña Codd).
Mçi thùc thÓ ph¶i cã Ýt nhÊt mét thuéc tÝnh mµ mçi gi¸ trÞ cña nã võa ®ñ cho phÐp nhËn diÖn mét c¸ch duy nhÊt mét thÓ hiÖn cña thùc thÓ gäi lµ thuéc tÝnh nhËn d¹ng hay lµ kho¸. Cã nhiÒu tr−êng hîp chóng ta ph¶i dïng mét tËp c¸c thuéc tÝnh ®Ó nhËn diÖn thùc thÓ. Khi mét thùc thÓ cã nhiÒu kho¸, ng−êi ta chän mét trong sè ®ã lµm kho¸ chÝnh (kho¸ tèi tiÓu). Gi¸ trÞ cña mét kho¸ lu«n lu«n ®−îc x¸c ®Þnh.
VÝ dô:
Sè ho¸ ®¬n lµ thuéc tÝnh nhËn d¹ng cña thùc thÓ Ho¸ ®¬n.
Kh«ng thÓ cã hai hay nhiÒu ho¸ ®¬n cã cïng sè ho¸ ®¬n trong cïng mét hÖ th«ng tin.
Trªn c¬ së ®¬n gi¶n ho¸ nh− vËy, chóng ta xÐt c¸c d¹ng chuÈn ®ang hiÖn hµnh trªn thùc tÕ sau ®©y.
2.4.6.1. ChuÈn ho¸ quan hÖ ë d¹ng chuÈn 1
Ta nãi r»ng mét thùc thÓ hay quan hÖ ë d¹ng chuÈn 1 nÕu tÊt c¶ gi¸ trÞ c¸c thuéc tÝnh cña nã ®Òu lμ s¬ cÊp. §iÒu kiÖn rµng buéc gièng
nh− 1NF ë trªn. §Þnh nghÜa d¹ng chuÈn 1 mang tÝnh m« t¶.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
95
B¶ng 2.30. Quan hÖ BANHANG
Ngμy th¸ng
M· hμng Tªn hμng §¬n
gi¸
Sè l−îng Tæng tiÒn
theo ngμy
Thanh
to¸n
210397 M1 Radio 1000 1 10 000 6 000
210397 M3 Tv 4000 2 10 000 6 000
210397 M6 Xe ®¹p 1000 1 10 000 6 000
220397 M2 M¸y giÆt 7500 2 15 000 6 000
230397 M1 Radio 1000 3 15 000 11 000
230397 M4 Video 5000 2 15 000 11 000
230397 M9 M¸y ¶nh 2000 1 15 000 11 000
Chóng ta x¸c ®Þnh ®−îc mét kho¸ chÝnh (kho¸ tèi tiÓu) cho thùc
thÓ B¸n hµng lµ tËp {Ngµy th¸ng, M· hµng}.
2.4.6.2. ChuÈn ho¸ quan hÖ ë d¹ng chuÈn 2
Mét thùc thÓ hay quan hÖ 1NF ®−îc xem lμ d¹ng chuÈn 2 nÕu tÊt
c¶ phô thuéc hμm gi÷a kho¸ chÝnh vμ c¸c thuéc tÝnh kh¸c cña nã ®Òu
lμ hoμn toμn.
Chó ý r»ng ®Þnh nghÜa d¹ng chuÈn 2 trong phÇn tr−íc chÆt h¬n v× ®iÒu kiÖn phô thuéc hoµn toµn liªn quan ®Õn mäi kho¸ tèi tiÓu, chø kh«ng chØ liªn quan ®Õn mét kho¸ tèi tiÓu ®−îc chän lµm kho¸ chÝnh.
Trong vÝ dô trªn thùc thÓ B¸n hµng ®· lµ 1NF ta nhËn thÊy ®èi
víi kho¸ chÝnh {Ngµy th¸ng, M· hµng} c¸c thuéc tÝnh Tæng vµ Thanh to¸n phô thuéc hµm vµo thuéc tÝnh ngµy th¸ng; c¸c thuéc tÝnh tªn hµng, ®¬n gi¸ phô thuéc hµm vµo thuéc tÝnh M· hµng. Ngµy th¸ng, M· hµng lµ hai thuéc tÝnh cña kho¸ chÝnh. Do ®ã dÉn ®Õn trïng lÆp d÷
liÖu. Thùc thÓ b¸n hµng kh«ng lµ 2NF, ta ph¶i t¸ch nã ra lµm 3
thùc thÓ riªng biÖt:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
96
B¶ng 2.31. Hμng ho¸
M· hμng Tªn hμng §¬n gi¸
M1 Radio 1000
M2 M¸y giÆt 7500
M3 Tv 4000
M4 Video 5000
M6 Xe ®¹p 1000
M9 M¸y ¶nh 2000
Ta x¸c ®Þnh ®−îc kho¸ chÝnh cña thùc thÓ hµng ho¸ lµ M· hµng.
B¶ng 2.32. Khèi l−îng
Ngμy th¸ng M· hμng Sè L−îng
210397 M1 1
210397 M3 2
210397 M6 1
220397 M2 2
230397 M1 3
230397 M4 2
230397 M9 1
Ta dÔ dµng x¸c ®Þnh ®−îc kho¸ chÝnh (kho¸ tèi tiÓu) cho thùc thÓ
khèi l−îng lµ {Ngµy th¸ng, M· hµng},
B¶ng 2.33. Doanh sè
Ngμy th¸ng Tæng Thanh to¸n
210397 10 000 6000
220397 15 000 6 000
230397 15 000 11 000
Kho¸ chÝnh lµ Ngµy th¸ng.
Cã thÓ thÊy thùc thÓ khèi l−îng → thùc thÓ hµng ho¸
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
97
2.4.6.3. ChuÈn ho¸ quan hÖ ë d¹ng chuÈn 3
Mét thùc thÓ (hay quan hÖ) ®· lμ 2NF ®−îc xem lμ d¹ng chuÈn 3NF nÕu tÊt c¶ c¸c phô thuéc hμm gi÷a kho¸ chÝnh vμ c¸c thuéc tÝnh kh¸c cña nã ®Òu trùc tiÕp. Hay nãi c¸ch kh¸c, mäi thuéc tÝnh kh«ng n»m trong kho¸ chÝnh ®Òu kh«ng phô thuéc hµm vµo mét thuéc tÝnh kh«ng ph¶i lµ kho¸ chÝnh.
Ta cã nhËn xÐt: Mét thùc thÓ cã nhiÒu kho¸ nhËn d¹ng dÔ cã thÓ kh«ng tho¶ m·n d¹ng chuÈn 3NF. MÆt kh¸c ®Þnh nghÜa 3NF trong ch−¬ng tr−íc chÆt h¬n v× ®iÒu kiÖn phô thuéc hoµn toµn vµ phô thuéc trùc tiÕp liªn quan ®Õn mäi kho¸ tèi tiÓu, chø kh«ng chØ liªn quan ®Õn mét kho¸ tèi tiÓu ®−îc chän lµm kho¸ chÝnh.
Trong thùc thÓ hµng ho¸ lµ 2NF ë trªn, ta thÊy trªn ®å thÞ cña c¸c phô thuéc hµm cã hai con ®−êng ®Ó ®i tõ ‘M· hµng’ ®Õn ‘§¬n gi¸’ hoÆc ®i qua thuéc tÝnh ‘Tªn hµng’.
H×nh 2.3. Rμng buéc phô thuéc hμm gi÷a ba thuéc tÝnh
§iÒu nµy chøng tá thùc thÓ hµng ho¸ ch−a ®¹t 3NF, dÉn ®Õn trïng lÆp ®¬n gi¸ cña tªn hµng. §Ó ®¹t 3NF ta t¸ch nã thµnh 2 thùc thÓ riªng biÖt:
B¶ng 2.34. HANG
M· hμng Tªn hμng
M1 Radio
M2 M¸y giÆt
M3 Tv
M4 Video
M6 Xe ®¹p
M9 M¸y ¶nh
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
98
B¶ng 2.35. MATHANG
Tªn hμng §¬n gi¸
Radio 1000
M¸y giÆt 7500
Tv 4000
Video 5000
Xe ®¹p 1000
M¸y ¶nh 2000
Kho¸ chÝnh lµ {Tªn hµng}
Cã thÓ thÊy thùc thÓ hµng → thùc thÓ MÆt hµng
2.4.6.4. ChuÈn ho¸ quan hÖ ë d¹ng chuÈn Boyce-Codd
D¹ng chuÈn 3NF cho phÐp mét thuéc tÝnh thµnh phÇn cña kho¸ chÝnh phô thuéc hµm vµo mét thuéc tÝnh kh«ng ph¶i lµ kho¸.
VÝ dô:
B¶ng 2.36. Quan hÖ LOP - MON - THAY
Líp M«n ThÇy
12 To¸n A
11 To¸n B
10 To¸n A
12 §Þa C
11 §Þa C
10 Sö D
Thùc thÓ nµy tho¶ m·n d¹ng 3NF. Kho¸ chÝnh cña nã bao gåm c¸c thuéc tÝnh ‘Líp’ vµ ‘M«n’.
Nh−ng do quy t¾c ‘Mçi thÇy chØ d¹y mét m«n’ ta thÊy cã sù phô thuéc hµm cña M«n (lµ mét thµnh phÇn cña kho¸ chÝnh) vµo ThÇy (lµ mét thuéc tÝnh b×nh th−êng): ‘ThÇy’ → ‘M«n’
Ta nãi r»ng thùc thÓ tho¶ m·n d¹ng chuÈn Boyce-Codd (BCNF) khi tÊt c¶ c¸c phô thuéc hμm cña nã ®Òu thuéc d¹ng K → a, trong ®ã K lμ kho¸ chÝnh cßn a lμ mét thuéc tÝnh bÊt kú.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
99
§Ó tho¶ d¹ng BCNF, ta cã thÓ t¸ch thùc thÓ LOP - MON - THAY thµnh hai thùc thÓ riªng biÖt:
B¶ng 2.37. Thùc thÓ ‘Líp’ vμ �thÇy�
ThÇy Líp ThÇy M«n
A 12 A To¸n
B 11 B To¸n
A 10 C §Þa
C 12 D Sö
C 11
D 10
Thùc thÓ ‘Líp’ cã kho¸ chÝnh lµ {ThÇy, líp} vµ “thÇy” cã kho¸ chÝnh lµ {ThÇy}
2.4.7. ChuÈn ho¸ mét s¬ ®å quan hÖ
2.4.7.1. PhÐp ph©n r· mét s¬ ®å quan hÖ
2.4.7.1. 1. §Þnh nghÜa phÐp ph©n r· mét s¬ ®å quan hÖ s=<R,F>
PhÐp ph©n r· mét s¬ ®å quan hÖ s = <R,F> trªn tËp thuéc tÝnh R = {a1, a2,..., an} lµ viÖc thay thÕ s¬ ®å quan hÖ ®ã b»ng tËp c¸c s¬ ®å quan hÖ con s1,s2,...sk t−¬ng øng trªn R1, R2,...,Rk, trong ®ã Ri ⊆ R, (i = 1,...,k) vµ R = ∪i=1..,kRi, ë ®©y kh«ng ®ßi hái c¸c Ri ph¶i ph©n biÖt nhau, cßn Fi lµ phÐp chiÕu cña F trªn Ri.
Môc ®Ých cña phÐp ph©n r· nh»m lo¹i bá c¸c file d÷ liÖu d− thõa (redundancy) vµ lo¹i bá c¸c dÞ th−êng: Kh«ng nhÊt qu¸n, dÞ th−êng khi thªm dßng, dÞ th−êng khi xo¸ dßng cña quan hÖ, khi thùc hiÖn phÐp cËp nhËt (söa, thªm xo¸).
VÝ dô: XÐt quan hÖ HANG (tªn_h·ng, ®Þa_chØ, mÆt_hμng, ®¬n_gi¸) ta thÊy:
a. D− thõa d÷ liÖu: Khi cã tªn h·ng th× l¹i cã ®Þa chØ cña h·ng ®ã trong quan hÖ (d− thõa)
a’. Kh«ng nhÊt qu¸n (inconsistency), lμ hÖ qu¶ cña (a): Gi¶ sö trong quan hÖ cã nhiÒu tªn h·ng, ®Þa_chØ th× ®Þa chØ cña h·ng thay ®æi
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
100
nÕu ta chØ söa ®Þa chØ trong mét b¶n ghi (dßng) th× ®Þa chØ trong b¶n ghi kh¸c kh«ng thay ®æi dÉn ®Õn 1 nhµ cung cÊp kh«ng cã ®Þa chØ duy nhÊt. DÞ th−êng nµy xuÊt hiÖn khi söa d÷ liÖu.
b. DÞ th−êng khi thªm dßng (insertion anomalies): Mét h·ng khi ch−a cÊp mÆt hµng nµo th× ch−a thÓ thªm dßng øng víi h·ng ®ã ®−îc, v× nÕu ta thªm mét dßng víi h·ng ®ã th× ta kh«ng thÓ ®−a mÆt hµng vµ ®¬n gi¸ vµo dßng ®ã ®−îc.
b’) DÞ th−êng khi xo¸ b¶n ghi, lμ vÊn ®Ò ng−îc l¹i cña (b): Kh«ng thÓ xo¸ tÊt c¶ c¸c mÆt hµng ®−îc cung cÊp bëi 1 h·ng nµo ®ã v× mÆt hµng ®ã cã thÓ ®−îc cung cÊp bëi nhiÒu h·ng.
Ng−êi ta cã thÓ ph©n r· quan hÖ trªn thµnh mét tËp quan hÖ. §Ó tr¸nh c¸c nh−îc ®iÓm nãi trªn, nh−ng ®¶m b¶o kh«ng mÊt th«ng tin theo nghÜa d−íi ®©y:
2.4.7.1.2. PhÐp ph©n r· kh«ng mÊt th«ng tin
§Þnh nghÜa
Gi¶ sö s¬ ®å quan hÖ s = <R, F> ®· ®−îc ph©n r· thµnh c¸c s¬ ®å con s1, s2,...,sk víi si = <Ri, Fi>, (i = 1,..,k), Ri ⊆ R, Fi lµ phÐp chiÕu cña F trªn Ri. Khi ®ã ta nãi r»ng, phÐp ph©n r· trªn lµ kh«ng mÊt th«ng tin ®èi víi F nÕu ®èi víi mçi quan hÖ r trªn R tho¶ m·n F:
r =ΠR1(r) ΠR2(r) ... ΠRk(r)
tøc lµ r ®−îc t¹o nªn tõ phÐp kÕt nèi tù nhiªn cña c¸c h×nh chiÕu cña nã trªn c¸c Ri, (i =1,...,k).
ThuËt to¸n kiÓm tra phÐp ph©n r· kh«ng mÊt th«ng tin
Vμo: s=<R, F>, phÐp ph©n r· p =(s1, s2,..., sk), si= <Ri, Fi>.
Ra: KÕt luËn phÐp ph©n r· p cã mÊt th«ng tin hay kh«ng?
Ph−¬ng ph¸p:
B−íc 1: ThiÕt lËp mét b¶ng víi n cét vµ k hµng, hµng i øng víi l−îc ®å quan hÖ Ri cét j øng víi thuéc tÝnh aj. T¹i « (i,j) ®iÒn Aj nÕu aj ∈ Ri, ng−îc l¹i ®iÒn ký hiÖu bij.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
101
B−íc 2: xÐt phô thuéc hµm lµ F ¸p dông cho b¶ng võa thiÕt lËp ®−îc. Gi¶ sö X -> Y ∈ F, xÐt c¸c dßng cã gi¸ trÞ b»ng nhau trªn thuéc tÝnh X th× lµm b»ng gi¸ trÞ cña chóng trªn thuéc tÝnh Y theo c¸ch sau: NÕu thÊy mét gi¸ trÞ t−¬ng øng víi Y lµ Aj th× chuyÓn c¸c gi¸ trÞ bij thµnh Aj.
B−íc 3: TiÕp tôc ¸p dông c¸c phô thuéc hµm cho b¶ng (kÓ c¶ viÖc lËp l¹i phô thuéc hµm ®· ®−îc ¸p dông) cho ®Õn khi kh«ng cßn ¸p dông ®−îc n÷a.
B−íc 4: Cuèi cïng xem b¶ng kÕt qu¶: NÕu xuÊt hiÖn mét hµng cã ®ñ A1,A2,...,An th× phÐp ph©n r· trªn lµ kh«ng mÊt th«ng tin, ng−îc l¹i lµ phÐp ph©n r· bÞ mÊt th«ng tin.
VÝ dô:
Cho mét s¬ ®å quan hÖ s = <R, F> víi R = {a,b,c,d,e,g},
PhÐp t¸ch p = {s1,s2,...,s5} víi:
R1 = {a, b}, F1: a → b
R2 = {a,c,d}, F2: cd → a
R3= {b,c,d}, F3: bc → d
R4= {a,e,g}, F4: ae → g
R5= {c,d,e}, F5: ce → d
KiÓm tra xem phÐp ph©n r· trªn cã mÊt th«ng tin kh«ng?
- LËp b¶ng:
B¶ng 2.38. B¶ng xuÊt ph¸t
a b c d e g
S1 A1 A2 b13 b14 b15 b16
S2 A1 b22 A3 A4 b25 b26
S3 b31 A2 A3 A4 b35 b36
S4 A1 b42 b43 b44 A5 A6
S5 b51 b52 A3 A4 A5 b56
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
102
XÐt phô thuéc hµm a → b cã b¶ng sau (c¸c hµng 1, 2, 4 b»ng nhau trªn cét a = A1) nªn ë cét b chóng ®−îc lµm b»ng vµ b»ng A2.
B¶ng 2.39.
a b c d e g
S1 A1 A2 b13 b14 b15 b16
S2 A1 A2 A3 A4 b25 b26
S3 b31 A2 A3 A4 b35 b36
S4 A1 A2 b43 b44 A5 A6
S5 b51 b52 A3 A4 A5 b56
XÐt phô thuéc hµm cd → a ta cã b¶ng sau (hai hµng 2 vµ 5 b»ng nhau trªn cét cd (b»ng A3, A4) nªn trªn cét a chóng ®−îc lµm b»ng vµ b»ng A1).
B¶ng 2.40.
A b c d e g
S1 A1 A2 b13 b14 b15 b16
S2 A1 A2 A3 A4 b25 b26
S3 A1 A2 A3 A4 b35 b36
S4 A1 A2 b43 b44 A5 A6
S5 A1 b52 A3 A4 A5 b56
T−¬ng tù xÐt tiÕp phô thuéc hµm bc → d b¶ng kh«ng thay ®æi
XÐt phô thuéc hµm ae → g, ta cã b¶ng sau:
B¶ng 2.41.
a b C d e g
S1 A1 A2 b13 b14 b15 b16
S2 A1 A2 A3 A4 b25 b26
S3 A1 A2 A3 A4 b35 b36
S4 A1 A2 b43 b44 A5 A6
S5 A1 b52 A3 A4 A5 A6
- XÐt phô thuéc hµm ce → d b¶ng kh«ng thay ®æi.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
103
- Quay l¹i xÐt phô thuéc hµm a → b ta cã b¶ng sau: (b¶ng 2.42):
B¶ng 2.42.
a b c d e g
S1 A1 A2 b13 b14 b15 b16
S2 A1 A2 A3 A4 b25 b26
S3 A1 A2 A3 A4 b35 b36
S4 A1 A2 b43 b44 A5 A6
S5 A1 A2 A3 A4 A5 A6
- TiÕp tôc xÐt phô thuéc hµm cd → a, bc → d, ae → g, ce → d, cßn l¹i ta thÊy b¶ng kh«ng thay ®æi. VËy b¶ng kÕt qu¶ lµ b¶ng 2.42. Ta nhËn thÊy trong b¶ng nµy hµng thø 5 cã ®ñ A1,A2,...,A6 nªn ta kÕt luËn phÐp ph©n r· p trong vÝ dô lµ kh«ng mÊt th«ng tin.
2.4.7.2. S¬ ®å quan hÖ d¹ng chÝnh t¾c
2.4.7.2.1. C¸c ®Þnh nghÜa
Phô thuéc hμm ®Çy ®ñ/phô thuéc hoμn toμn
Gi¶ sö s = <R, F> lµ mét s¬ ®å quan hÖ trªn tËp thuéc tÝnh R vµ
A, B ∈ P(R) - tËp c¸c tËp con cña R, khi ®ã B ®−îc gäi lµ phô thuéc hµm ®Çy ®ñ vµo A nÕu B phô thuéc hµm A nh−ng kh«ng phô thuéc hµm vµo bÊt kú tËp con nµo cña A.
Thuéc tÝnh d− thõa (vÕ tr¸i cña phô thuéc hμm)
Mét thuéc tÝnh cña vÕ tr¸i mét phô thuéc hµm ®−îc gäi lµ d− thõa nÕu lo¹i bá nã khái vÕ tr¸i kh«ng lµm thay ®æi bao ®ãng cña tËp phô
thuéc hµm, tøc lµ: NÕu X →Y∈F, a∈X, a lµ d− thõa nÕu {X- a}
→Y∈F+.
TËp phô thuéc hμm kh«ng d− thõa
Phô thuéc hµm A →B ®−îc gäi lµ d− thõa trong tËp phô thuéc
hµm F cña s¬ ®å quan hÖ s = <R, F> nÕu: F+ = {F - {A → B}}+
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
104
TËp phô thuéc hµm F kh«ng chøa mét phô thuéc hµm d− thõa nµo trong nã ®−îc gäi lµ tËp phô thuéc hµm kh«ng d− thõa.
Phñ cña phô thuéc hμm
Gäi F vµ G lµ c¸c tËp cña phô thuéc hµm. Nãi r»ng F vµ G lµ t−¬ng ®−¬ng nÕu F+= G+. NÕu F vµ G lµ t−¬ng ®−¬ng, ®«i khi còng nãi F phñ G (hoÆc G phñ F).
Phñ kh«ng d− thõa
G lµ phñ kh«ng d− thõa cña F, nÕu G+ = F+ vµ kh«ng chøa mét phô thuéc hµm d− thõa nµo.
§Þnh nghÜa phô thuéc hμm tèi thiÓu
TËp phô thuéc hµm F ®−îc gäi lµ tèi thiÓu nÕu:
a. Mçi vÕ ph¶i cña phô thuéc hµm thuéc F chØ cã mét thuéc tÝnh.
b. Kh«ng tån t¹i mét phô thuéc hµm X → A thuéc F mµ:
F+ = {F - {X → A}}+
c. Kh«ng tån t¹i mét phô thuéc hµm X → A thuéc F vµ tËp con
thùc sù (Z) cña X mµ F+ = (F - {X → A} ∪ {Z → A})+
Thùc vËy, ®iÒu kiªn b ®¶m b¶o cho tËp F kh«ng cã mét phô thuéc hµm nµo lµ d− thõa vµ ®iÒu kiÖn c b¶o ®¶m kh«ng cã mét thuéc tÝnh nµo tham gia phÝa tr¸i cña phô thuéc hµm lµ d− thõa. VÕ ph¶i cña phô thuéc hµm ë ®iÒu kiÖn a chØ cã mét thuéc tÝnh b¶o ®¶m ch¾c ch¾n kh«ng cã mét thuéc tÝnh nµo bªn vÕ ph¶i lµ d− thõa.
§Þnh nghÜa chÝnh t¾c (S¬ ®å quan hÖ d¹ng chÝnh t¾c)
Chóng ta nãi mét s¬ ®å quan hÖ s = <R,F> lµ chÝnh t¾c nÕu F lµ tèi thiÓu, nghÜa lµ F tho¶ m·n ®ång thêi 3 tiªu chuÈn sau ®©y:
a. Mçi vÕ ph¶i cña phô thuéc hµm thuéc F chØ cã mét thuéc tÝnh.
b. Kh«ng cã X → a nµo ë trong tËp F ®Ó F – {X → a} t−¬ng
®−¬ng víi F theo nghÜa {F – {X → a}}+ = F+ (kh«ng cã phô thuéc hµm nµo d− thõa).
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
105
c. Kh«ng cã X → a vµ mét tËp con thùc sù (Z) cña X ®Ó:
F - {X → a} ∪ {Z → a} t−¬ng ®−¬ng víi F (tËp X ®−îc gäi lµ tèi −u).
2.4.7.2.2. C¸c thuËt to¸n
ThuËt to¸n lo¹i bá thuéc tÝnh d− thõa ë vÕ tr¸i trªn mçi phô thuéc hμm cña F
Cho s¬ ®å quan hÖ s = <R, F>, thuËt to¸n sau ®©y sÏ lo¹i bá thuéc tÝnh d− thõa ë vÕ tr¸i trªn mçi phô thuéc hµm cña F (®¶m b¶o c¸c phô thuéc hµm lµ ®Çy ®ñ). Ng−êi ta th−êng gäi ®ã lµ thuËt to¸n tèi −u trªn tËp F cña s¬ ®å quan hÖ
ThuËt to¸n tèi −u trªn tËp F cña s¬ ®å quan hÖ s = <R,F>
trong ®ã F = {A*1 → B1,...,A*m → Bm}.
Vμo: A → B ∈ F+, A lµ mét trong nh÷ng A*i (i=1,...,m)
Ra: A’ → B ∈ F+
trong ®ã: A’ ⊆ A vµ kh«ng tån t¹i A” ⊂ A’ vµ A” → B ∈ F+.
B−íc 0:
0 1 2 tA A {a ,a ,..., a }′ ′ ′= =
B−íc 1:
0 11
0
A {a }A
A′−⎧
= ⎨⎩
B−íc i:
i 1 ii
i 1
A {a }A
A−
−
′−⎧= ⎨
⎩
NhËn xÐt: Gièng nh− thuËt to¸n t×m kho¸ tèi tiÓu, ë ®©y kh«ng x¸c
®Þnh hµm víi R mµ x¸c ®Þnh hµm víi B. Dïng A → B ∈ F+ ⇔ B ∈ A+
ThuËt to¸n t×m tËp phô thuéc hμm kh«ng d− thõa
Vμo: S¬ ®å quan hÖ s = <R,F>
NÕu 0 1A {a } B F+′− → ∈
NÕu ng−îc l¹i
NÕu i 1 iA {a } B F (i 2,..., t)+− ′− → ∈ =
NÕu ng−îc l¹i
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
106
F = {A1 → B1,..., Am → Bm}
Bj chØ gåm mét thuéc tÝnh (j =1,..., m).
Ra: S¬ ®å quan hÖ s* = <R,F*> trong ®ã F* kh«ng d− thõa.
B−íc 1: §Æt F - {A1 → B1} = G1
KiÓm tra: F+ = G1+
QuyÕt ®Þnh 11
GF
F⎧
= ⎨⎩
...
B−íc i: KiÓm tra (i = 2,...,m)
{Fi - 1 - {Ai Bi}}+ = F+ (1)
i 1 i i1
i 1
F {A B }F
F−
−
− →⎧= ⎨
⎩
§Æt F* = Fm
NhËn xÐt:
- HÇu hÕt c¸c s¬ ®å quan hÖ cho tr−íc phÇn lín lµ d− thõa v× nã l−u tr÷ c¸c phô thuéc hµm dÉn xuÊt tõ c¸c phô thuéc hµm kh¸c.
- C¸c phô thuéc hµm ®−îc xÕp theo c¸c thø tù kh¸c nhau sÏ cã thÓ cho kÕt qu¶ kh¸c nhau.
Bæ ®Ò 1
Mçi tËp phô thuéc hµm F ®Òu ®−îc phñ b»ng c¸c phô thuéc hµm G cã vÕ ph¶i bao gåm kh«ng qu¸ mét thuéc tÝnh.
Chøng minh:
Gäi G lµ tËp c¸c phô thuéc hµm X → a sao cho víi X → Y thuéc
F th× a ∈Y. Tõ X → Y suy ra X → a (theo luËt t¸ch).
Do vËy G ⊆ F+.
Ng−îc l¹i, cã F ⊆ G+ v× nÕu Y = a1,...an th× X → Y ®−îc suy ra tõ
X → a1,..., X → an nhê luËt hîp.
NÕu F G+ +=
NÕu F G+ +≠
NÕu (1) tháa m·n
NÕu (1) kh«ng tháa m·n
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
107
§Þnh lý 1
Mçi tËp phô thuéc hµm F ®Òu t−¬ng ®−¬ng víi tËp F’ tèi thiÓu.
Chøng minh:
Theo bæ ®Ò trªn, gi¶ sö r»ng kh«ng vÕ ph¶i nµo cña c¸c phô thuéc hµm cña F cã nhiÒu h¬n mét thuéc tÝnh. §Ó kiÓm tra ®iÒu kiÖn b trong
®Þnh nghÜa chÝnh t¾c, xÐt (X → Y) ∈ F.
NÕu (F - {X → Y})+ = F+ lo¹i bá X → Y khái F.
Chó ý r»ng c¸c phô thuéc hµm F ®−îc s¾p xÕp theo mét thø tù kh¸c nhau th× sÏ cho kÕt qu¶ kh¸c nhau.
VÝ dô (lo¹i bá c¸c hµm d− thõa)
Cho tËp F gåm:
A → B A → C B → C
B → A C → A
Cã thÓ lo¹i bá khái F: B → A vµ A → C hoÆc lo¹i bá B → C nh−ng kh«ng thÓ ®ång thêi lo¹i bá c¶ ba phô thuéc hµm.
Nh− vËy ®iÒu kiÖn b ®−îc tho¶ m·n. CÇn kiÓm tra ®iÒu kiÖn c cho
tËp phô thuéc cßn l¹i cña F. ë ®©y còng cÇn l−u ý tíi thø tù c¸c thuéc tÝnh xuÊt hiÖn bªn vÕ tr¸i cña c¸c phô thuéc hµm.
Lo¹i bá c¸c thuéc tÝnh vÕ tr¸i cña c¸c phô thuéc hµm sao cho tËp c¸c thuéc tÝnh vÉn lµ t−¬ng ®−¬ng. Qu¸ tr×nh tiÕp tôc cho tíi khi kh«ng thÓ lo¹i bá ®−îc thuéc tÝnh nµo n÷a. Nh− vËy tËp c¸c phô thuéc cßn l¹i cña F sÏ t¹o nªn F’ vµ tho¶ m·n ba ®iÒu kiÖn cña mét tËp tèi thiÓu.
VÝ dô:
Cho tËp F
AB → C D → E CG → D
C → A D → G CE → A
BC → D BE → C CE → G
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
108
ACD → B CG → B
¸p dông thuËt to¸n tÝnh bao ®ãng cña tËp c¸c thuéc tÝnh ®èi víi
tËp F theo thø tù tõ ph¶i qua tr¸i vµ tõ d−íi lªn trªn. Râ rµng CE → A
lµ d− thõa v× cã thÓ suy ra tõ C → A. CG → B lµ d− thõa v× CG → D,
C →A vµ ACD → B suy ra CG → B.
Tõ ®ã dÔ dµng tÝnh ®−îc (CG)+ vµ kh«ng cßn phô thuéc hµm nµo
lµ d− thõa. ACD → B cã thÓ thay thÕ bëi CD → B v× C → A.
Tõ ®ã cã tËp tèi thiÓu lµ:
AB → C
C → A
BC → D
CD → B
D → E
D → G
BE → C
CG → D
CE → G
NÕu lo¹i bá CE → A, CG → D vµ ACD → B sÏ cã mét tËp tèi thiÓu kh¸c:
AB → C D → G
C → A BE → C
BC → D CG → B
D → E CE → G
ThuËt to¸n x¸c ®Þnh s¬ ®å d¹ng chÝnh t¾c
Cho s¬ ®å quan hÖ s = <R,F>
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
109
Vμo: F = <A1 → B1,..., Am → Bm>
Ra: s* = <R, F*> chÝnh t¾c.
B−íc 1: Nhê bæ ®Ò trªn, cã s = <R, F’> sao cho:
A → B ∈ F cã d¹ng {A → {b}}
B−íc 2: Nhê kÕt qu¶ trªn, ta tèi −u tõng phô thuéc hµm cña F’
Gi¶ sö F” = {C1 →{b1},..., Ct → {bt}}
Ci tèi −u ∈ R vµ bi ∈ R, i = (1,...,t)
B−íc 3: Còng nhê kÕt qu¶ trªn ta lo¹i bá c¸c hµm d− thõa, ta thu ®−îc:
Fi = {D1 → {e1},..., Dt → {et}}
Di ⊂ R vµ ei ∈ R, i = (1,..., p), trong ®ã p ≤ t.
2.4.7.3. PhÐp t¸ch mét s¬ ®å quan hÖ thμnh hÖ l−îc ®å ®¹t 3NF
ThuËt to¸n t¸ch mét s¬ ®å quan hÖ thμnh hÖ l−îc ®å ®¹t 3NF
Vμo: S¬ ®å quan hÖ R, tËp c¸c phô thuéc hµm F, kh«ng lµm mÊt tÝnh tæng qu¸t, ®−îc gi¶ sö lµ phô thuéc hµm tèi thiÓu.
Ra: PhÐp t¸ch kh«ng mÊt th«ng tin trªn R b¶o toµn c¸c phô thuéc hµm sao cho mçi s¬ ®å con ®Òu ë 3NF.
Ph−¬ng ph¸p:
i - Lo¹i bá tÊt c¶ c¸c thuéc tÝnh cña R nÕu c¸c thuéc tÝnh ®ã kh«ng liªn quan ®Õn phô thuéc hµm nµo cña F, hoÆc vÕ tr¸i, hoÆc vÕ ph¶i.
ii - NÕu cã mét phô thuéc hµm nµo cña F mµ liªn quan tíi tÊt c¶ c¸c thuéc tÝnh cña R th× kÕt qu¶ ra chÝnh lµ R.
iii - Ngoµi ra, phÐp t¸ch p ®−a ra c¸c s¬ ®å gåm c¸c thuéc tÝnh XA
cho phô thuéc hµm X → A thuéc F, nÕu X → A1, X → A2,..., X → An
thuéc F th× thay thÕ tËp thuéc tÝnh XA1A2...An cho XAi (1≤ i ≤ n). Qu¸ tr×nh tiÕp tôc.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
110
Chó ý: T¹i mçi b−íc kiÓm tra s¬ ®å R, nÕu mçi thuéc tÝnh ngoµi kho¸ kh«ng phô thuéc b¾c cÇu vµo kho¸ chÝnh, khi ®ã R sÏ ë 3NF, ng−îc l¹i cÇn ¸p dông b−íc (iii) ®Ó t¸ch tiÕp.
VÝ dô:
Cho l−îc ®å quan hÖ R(CTHRSG) víi tËp phô thuéc hµm tèi
thiÓu: C → T, HR → C, HT → R, CS → G vµ HS → R.
Dïng thuËt to¸n trªn cho tËp l−îc ®å ë d¹ng chuÈn thø 3:
R1(CT), R2(CHR), R3(HRT), R4(CGS) vµ R5(HRS)
§Þnh lý:
ThuËt to¸n trªn tho¶ m·n lµ mét phÐp t¸ch kh«ng mÊt th«ng tin, b¶o toµn c¸c phô thuéc hµm vµ c¸c l−îc ®å ®Ých ë d¹ng chuÈn 3.
2.4.7.4. PhÐp t¸ch mét s¬ ®å quan hÖ thμnh hÖ l−îc ®å ®¹t BCNF
Bæ ®Ò 2:
a. Gi¶ sö R lµ mét l−îc ®å quan hÖ víi tËp phô thuéc hµm F.
Gäi p = (R1, R2,..., Rk) lµ mét phÐp t¸ch kh«ng mÊt th«ng tin cña R ®èi víi F. Gäi Fi lµ h×nh chiÕu cña F trªn Ri (i = 1,..., k), tøc lµ tËp
cña (X → Y) ∈ F+ sao cho: X ⊆ Ri vµ Y ⊆ Ri
Gäi @ = (s1,..., sm) lµ phÐp t¸ch kh«ng mÊt th«ng tin cña Ri, ®èi víi Fi. Khi ®ã phÐp t¸ch cña R thµnh (R1,..., Ri - 1, S1,...,Sm, Ri+1,..., Rk) ®èi víi F lµ kh«ng mÊt th«ng tin.
b. Gi¶ sö R, F vµ p nh− ë môc (a); gäi t = (R1,...,Rk, Rk + 1,..., Rn) lµ mét phÐp t¸ch cña R thµnh tËp c¸c l−îc ®å bao gåm c¶ p th× t còng lµ phÐp t¸ch kh«ng mÊt th«ng tin ®èi víi F.
ThuËt to¸n t¸ch mét l−îc ®å quan hÖ thμnh hÖ l−îc ®å ®¹t BCNF
Vμo: L−îc ®å quan hÖ R vµ tËp phô thuéc hµm F
Ra: PhÐp t¸ch cña R kh«ng mÊt th«ng tin sao cho mçi l−îc ®å quan hÖ trong phÐp t¸ch ®Òu ë BCNF ®èi víi phÐp chiÕu cña F trªn l−îc ®å ®ã.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
111
Ph−¬ng ph¸p:
CÊu tróc phÐp t¸ch p trªn R theo ph−¬ng ph¸p lÆp liªn tiÕp. T¹i mçi b−íc phÐp t¸ch p lµ b¶o ®¶m kh«ng mÊt th«ng tin ®èi víi F.
B−íc ®Çu: p chØ bao gåm R
C¸c b−íc tiÕp: nÕu S lµ mét s¬ ®å thuéc p, S ch−a ë BCNF: chän
X → A lµ phô thuéc hµm tho¶ m·n trªn S, trong ®ã X kh«ng chøa
kho¸ cña S, A ∈ X. Râ rµng cÇn ph¶i cã mét sè thuéc tÝnh kh¸c cña S võa kh«ng ph¶i A, võa kh«ng thuéc X hoÆc nÕu kh«ng th× X ph¶i chøa mét kho¸ cña S. Thay thÕ S trong p bëi S1 vµ S2 víi S1 = XA, S2 = S - A
Theo ®Þnh lý tr−íc phÐp t¸ch s thµnh S1 vµ S2 lµ kh«ng mÊt th«ng tin
®èi víi tËp phô thuéc hµm trªn S v× r»ng: S1 ∩ S2 = X, X → S1 - S2 = A.
Theo bæ ®Ò trªn phÇn (a), p ®−îc thay S b»ng S1 vµ S2 lµ kh«ng mÊt th«ng tin. Mçi s¬ ®å S1, S2 ®Òu cã sè thuéc tÝnh Ýt h¬n S.
Qu¸ tr×nh tiÕp tôc cho tíi khi tÊt c¶ c¸c l−îc ®å ®Òu ë BCNF. Chó ý t¹i mäi thêi ®iÓm p lu«n b¶o ®¶m kh«ng mÊt th«ng tin, v× r»ng p ban ®Çu lµ R, mµ b−íc thay ®æi p ®Òu b¶o toµn tÝnh chÊt ®ã.
VÝ dô:
Cho l−îc ®å R(CTHRSG), trong ®ã C: Gi¸o tr×nh, T: thÇy gi¸o, H: giê, R: phßng häc, S: sinh viªn, G: líp.
TËp c¸c phô thuéc hµm F:
C → T: Mçi gi¸o tr×nh cã mét thÇy d¹y
HR → C: ChØ mét m«n häc (Gi¸o tr×nh) ë mét phßng häc t¹i mét thêi ®iÓm
HT → R: T¹i mçi thêi ®iÓm mçi thÇy gi¸o chØ cã thÓ d¹y ë mét phßng häc.
CS → G: Mçi sinh viªn chØ ë mét líp theo häc mçi gi¸o tr×nh
HS → R: Mçi sinh viªn chØ cã thÓ ë mét phßng häc t¹i mçi thêi ®iÓm.
Kho¸ cña R lµ HS.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
112
T¸ch l−îc ®å R thμnh c¸c l−îc ®å ®¹t BCNF:
XÐt CS → G cho R. Vi ph¹m ®iÒu kiÖn BCNF v× CS kh«ng chøa kho¸. Do vËy, t¸ch thµnh R1(CSG) vµ R2(CTHRS). B−íc tiÕp cÇn tÝnh F+ vµ chiÕu xuèng R1 vµ R2, sau ®ã kiÓm tra c¸c l−îc ®å ®· ë BCNF ch−a. Cã thÓ biÓu diÔn qu¸ tr×nh t¸ch qua s¬ ®å sau:
H×nh 2.4. S¬ ®å t¸ch
PhÐp t¸ch cuèi cïng ®−îc R = (R1, R21, R221, R222).
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
113
2.4.7.5. ChuÈn ho¸ b»ng phÐp tæng hîp
Trong phÇn chuÈn ho¸ trªn ®· xem xÐt qu¸ tr×nh chuÈn ho¸ mét l−îc ®å quan hÖ thµnh 3NF nhê phÐp t¸ch kh«ng mÊt m¸t th«ng tin ®èi víi tËp c¸c phô thuéc hµm. PhÇn nµy sÏ tr×nh bµy qu¸ tr×nh chuÈn ho¸ nhê phÐp tæng hîp. §iÒu kh¸c c¬ b¶n cña phÐp tæng hîp so víi phÐp t¸ch lµ th«ng tin ban ®Çu gåm tËp c¸c thuéc tÝnh (hiÓu theo nghÜa ng−êi sö dông chØ biÕt tªn c¸c thuéc tÝnh) vµ c¸c tËp phô thuéc hµm, cßn trong ph−¬ng ph¸p t¸ch, th«ng tin ban ®Çu lµ mét l−îc ®å cô thÓ. Qua phÐp tæng hîp (hoÆc phÐp t¸ch) kÕt qu¶ ®Òu cho mét tËp c¸c l−îc ®å ®Òu ë 3NF.
Gäi F vµ G lµ c¸c tËp cña c¸c phô thuéc hµm. Nãi r»ng F vµ G lµ t−¬ng ®−¬ng nÕu F+ = G+. NÕu F vµ G t−¬ng ®−¬ng ®«i khi cßn nãi F phñ G hoÆc ng−îc l¹i G phñ F.
ThuËt to¸n kiÓm tra F vμ G cã hay kh«ng t−¬ng ®−¬ng víi nhau
Ph−¬ng ph¸p kiÓm tra:
LÊy mçi phô thuéc hµm Y → Z thuéc F, kiÓm tra xem liÖu Y → Z
cã thuéc G+ kh«ng? dïng thuËt to¸n tÝnh bao ®ãng cña tËp c¸c thuéc
tÝnh ®èi víi tËp G ®Ó tÝnh Y+ vµ kiÓm tra liÖu Z ⊆ Y+ kh«ng? NÕu tån
t¹i 1 phô thuéc hµm Y → Z thuéc F mµ kh«ng thuéc G+ th× F+ ≠ G+.
NÕu mçi phô thuéc hµm thuéc F còng thuéc G+ th× mçi phô thuéc
hµm V → W thuéc F+ còng thuéc G+.
§Ó kiÓm tra mçi phô thuéc G lµ thuéc F+, qu¸ tr×nh lµm hoµn toµn t−¬ng tù. Do ®ã F vµ G lµ t−¬ng ®−¬ng khi vµ chØ khi mçi phô thuéc hµm thuéc F lµ thuéc G+ vµ mçi phô thuéc hµm thuéc G lµ thuéc F+.
ThuËt to¸n tæng hîp thμnh c¸c l−îc ®å 3NF
Vμo: TËp c¸c thuéc tÝnh R= {a1, a2,.., an}, tËp phô thuéc hµm F.
Ra: TËp c¸c l−îc ®å quan hÖ ë 3NF.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
114
Ph−¬ng ph¸p:
- T×m phñ kh«ng d− thõa H cña F (tøc lµ t×m phñ cña F vµ lo¹i bá c¸c hµm d− thõa).
- Lo¹i bá c¸c thuéc tÝnh d− thõa trong F
- Ph©n chia phô thuéc H thµnh c¸c nhãm sao cho c¸c phô thuéc trong mét nhãm lµ cã cïng vÕ tr¸i.
- Mçi cÆp nhãm, vÝ dô H1 vµ H2 cã vÕ tr¸i lµ X vµ Y tån t¹i song
¸nh (X → Y) ∈ H+ (tøc lµ X → Y vµ Y → X) th× hoµ hai nhãm ®ã l¹i
víi nhau víi A∈Y. NÕu X →A ∈ H th× lo¹i bá nã khái H. T−¬ng tù
cho mçi (Y → B)∈H víi B∈X, ë mçi nhãm ®¹t ®−îc l−îc ®å quan hÖ bao gåm tÊt c¶ c¸c thuéc tÝnh xuÊt hiÖn trong nhãm ®ã. Mçi thuéc tÝnh xuÊt hiÖn trong vÕ tr¸i cña mét phô thuéc hµm trong nhãm lµ mét kho¸ cña l−îc ®å quan hÖ. C¸c kho¸ t×m ®−îc gäi lµ kho¸ tæng hîp. Mçi tËp ®−îc cÊu tróc nh− l−îc ®å quan hÖ.
VÝ dô:
Cho tËp thuéc tÝnh {A, B1, B2, C1, C2, D, E, I1, I2, I3, J}, tËp hîp phô thuéc hµm F:
A → B1B2C1C 2DEI 1I 2 I3J
B1B2C1 → AC2 DEI1I2 I3J
B 1B2 C2 →AC1 DEI1 I2I3J
E → I1I2I3
C1D → j
C2D → J
I1I2 → I3
I2I3 → I1
I1I3 →I2
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
115
Râ rµng F lµ ch−a tèi thiÓu v× d− thõa. Dïng c¸c thuËt to¸n ®· biÕt ®Ó ®¶m b¶o c¸c phô thuéc hµm trong F lµ kh«ng d− thõa vµ lo¹i bá c¸c thuéc tÝnh ë vÕ tr¸i phô thuéc hµm trong H ®Ó kh«ng d− thõa:
H ={A → B 1 B2 C1 C2 D E
B1 B2 C1 → A
B1B 2C2 →A v× A cã thÓ suy ra C1C2 DE I1I2 I3J
E →I1I2
C1D → J
C2 D → J
I1 I2 →I3
I2I3 → I1
I1I3 → I2}
ë ®©y cã 9 nhãm phô thuéc hµm. Hoµ c¸c nhãm ®−îc:
H = {(A, B1 B2 C1, B1 B2 C2) → D E (Hoµ 3 nhãm ®Çu)
(E) → I 1I2
(C1D) → J
(C2D) → J
(I1I2, I2I3, I1I3) → I1, I2, I3} (Hoµ 3 nhãm cuèi)
ThiÕt lËp c¸c l−îc ®å:
R1=AB1 B2C1C2DE víi kho¸ K1= {A,B1B2C1,B1B2C2} (3 kho¸)
R2=EI1I2 K2={E}
R3= C1DJ K3=[C1D}
R4=C2DJ K4={C2D}
R5=I1I2I3 K5={I1I2, I2I3, I1I3}
Nh− vËy ®−îc tËp c¸c l−îc ®å: R={R1R2R3R4R5} ®Òu ë 3NF
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
116
§Þnh lý 2:
L−îc ®å quan hÖ R(A1....An) ®−îc tæng hîp qua thuËt to¸n trªn tõ tËp hîp phô thuéc hµm F ®¹t 3NF. Nãi c¸ch kh¸c, kh«ng mét thuéc tÝnh ngoµi kho¸ nµo cña R lµ phô thuéc hµm b¾c cÇu vµo mét kho¸ chÝnh cña R.
2.5. Mèi quan hÖ (Relationship)
Khi x©y dùng m« h×nh d÷ liÖu, c¸c thùc thÓ th−êng ®−îc biÓu diÔn b»ng nh÷ng h×nh ch÷ nhËt:
H×nh 2.5. BiÓu diÔn thùc thÓ SANPHAM
Chóng ta cã thÓ biÓu diÔn mét thùc thÓ b»ng mét trong hai c¸ch “truyÒn thèng” hay “®å ho¹”:
H×nh 2.6. BiÓu diÔn thùc thÓ HOADON
2.5.1. §Æc t¶ mèi quan hÖ
Kh¸i niÖm quan hÖ ë môc nµy (kh¸c víi kh¸i niÖm quan hÖ cña Codd) ®−îc dïng ®Ó nhãm häp hai hay nhiÒu thùc thÓ víi nhau nh»m biÓu hiÖn mét mèi liªn quan tån t¹i trong thÕ giíi thùc gi÷a c¸c thùc thÓ nµy. (NÕu sî nhÇm lÉn, chóng ta cã thÓ dïng thuËt ng÷ “mèi quan hÖ” ®Ó ph©n biÖt víi thuËt ng÷ “quan hÖ” cña Codd).
KÝch th−íc cña mét quan hÖ lµ sè thùc thÓ cÊu thµnh nªn quan hÖ.
S¶n phÈm
Ho¸ ®¬n
Sè ho¸ ®¬nM· kh¸ch
Ngμy
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
117
Trong mét m« h×nh d÷ liÖu c¸c quan hÖ ®−îc biÓu diÔn b»ng h×nh thoi hoÆc h×nh trßn hoÆc elÝp.
Trong mçi thùc thÓ bao giê chóng ta còng x¸c ®Þnh ®−îc Ýt nhÊt mét thuéc tÝnh, cßn mèi quan hÖ cã thÓ kh«ng cã thuéc tÝnh. Trong mét sè tr−êng hîp, mèi quan hÖ còng cã thÓ cã nh÷ng thuéc tÝnh riªng (nÕu cã th× c¸c thuéc tÝnh riªng ®ã lµ rÊt quan träng, kh«ng thÓ bá sãt).
VÝ dô:
Ho¸ ®¬n dïng ®Ó thanh to¸n mét sè lo¹i s¶n phÈm b¸n ra. Mçi dßng ho¸ ®¬n cho biÕt sè l−îng vµ gi¸ cña tõng lo¹i s¶n phÈm. §©y lµ mét quan hÖ cã kÝch th−íc lµ 2 (cã 2 thùc thÓ tham gia vµo mèi quan hÖ), cßn gäi lµ quan hÖ nhÞ nguyªn.
H×nh 2.7. §Æc t¶ mèi quan hÖ DONGHOADON
2.5.2. C¸c ®Æc tr−ng cña mèi quan hÖ
XÐt R lµ mét tËp c¸c quan hÖ vµ E lµ mét thùc thÓ cÊu thµnh cña R, mçi cÆp (E,R) ®−îc biÓu thÞ trªn s¬ ®å kh¸i niÖm d÷ liÖu b»ng mét ®o¹n th¼ng. Víi thùc thÓ E, ta cã thÓ x¸c ®Þnh ®−îc:
- X lµ sè tèi thiÓu c¸c thÓ hiÖn t−¬ng øng víi E mµ R cã thÓ cã trong thùc tÕ. Gi¸ trÞ X nh− vËy chØ cã thÓ b»ng 0 hay 1.
- Y lµ sè tèi ®a c¸c thÓ hiÖn t−¬ng øng víi E mµ R cã thÓ cã trong thùc tÕ. Gi¸ trÞ cña Y cã thÓ b»ng 1 hay mét sè nguyªn N >1.
CÆp sè (X,Y) ®−îc ®Þnh nghÜa lµ b¶n sè cña ®o¹n th¼ng (E,R) vµ cã thÓ lÊy c¸c gi¸ trÞ sau: (0,1), (1,1), (0,N), hay (1,N), víi N >1.
§èi víi lo¹i quan hÖ nhÞ nguyªn R liªn kÕt gi÷a hai thùc thÓ A vµ B, ta ph©n thµnh ba lo¹i quan hÖ c¬ b¶n sau:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
118
- Quan hÖ 1-1 (mét-mét): mçi thÓ hiÖn cña thùc thÓ A ®−îc kÕt hîp víi 0 hay 1 thÓ hiÖn cña B vµ ng−îc l¹i.
H×nh 2.8. §Æc t¶ mèi quan hÖ 1-1
X,Y cã thÓ lÊy c¸c gi¸ trÞ 0 vµ 1.
VÝ dô:
Mçi c«ng d©n tr−ëng thµnh ®Òu ®−îc cÊp mét sè chøng minh th−. Mçi mét sè CMT chØ dµnh cho 1 c«ng d©n tr−ëng thµnh.
- Quan hÖ 1-N (mét nhiÒu): Mçi thÓ hiÖn cña thùc thÓ A ®−îc kÕt hîp víi 0,1 hay nhiÒu thÓ hiÖn cña B vµ mçi thÓ hiÖn cña B ®−îc kÕt hîp víi mét thÓ hiÖn duy nhÊt cña A. §©y lµ mét lo¹i quan hÖ th«ng dông vµ ®¬n gi¶n nhÊt.
H×nh 2.9. §Æc t¶ mèi quan hÖ 1-N
X cã thÓ lÊy c¸c gi¸ trÞ 0 vµ 1
VÝ dô:
Mét kh¸ch hµng cã thÓ cã nhiÒu ho¸ ®¬n
Mét ho¸ ®¬n chØ mang tªn mét kh¸ch hµng.
Ch−¬ng 2: M« h×nh c¬ së d÷ liÖu quan hÖ
119
- Quan hÖ N-P (nhiÒu-nhiÒu): Mçi thÓ hiÖn cña mét thùc thÓ A ®−îc kÕt hîp víi 0,1 hay nhiÒu thÓ hiÖn cña B vµ ng−îc l¹i, mçi thÓ hiÖn cña B ®−îc kÕt hîp víi 0, 1 hay nhiÒu thÓ hiÖn cña A.
H×nh 2.10. §Æc t¶ mèi quan hÖ N-N
X vµ Y cã thÓ lÊy gi¸ trÞ 0, 1
VÝ dô:
Mét ho¸ ®¬n dïng ®Ó thanh to¸n mét hay nhiÒu lo¹i s¶n phÈm.
Mét lo¹i s¶n phÈm cã thÓ xuÊt hiÖn trong 1 hay nhiÒu ho¸ ®¬n.
Th«ng th−êng quan hÖ N-N chøa c¸c thuéc tÝnh (vÝ dô nh− sè l−îng, gi¸). Chóng ta biÕn ®æi lo¹i quan hÖ nµy thµnh c¸c thùc thÓ vµ thùc thÓ nµy cÇn ®−îc nhËn d¹ng bëi mét kho¸ chÝnh (gåm mét nhãm c¸c thuéc tÝnh).
2.5.3. M« h×nh kh¸i niÖm d÷ liÖu
M« h×nh kh¸i niÖm d÷ liÖu lµ kÕt qu¶ cña qu¸ tr×nh ph©n tÝch d÷ liÖu mµ chóng ta sÏ nghiªn cøu kü trong ch−¬ng 3. M« h×nh nµy ®−îc x©y dùng tõ thùc thÓ vµ c¸c mèi quan hÖ gi÷a c¸c thùc thÓ ®· ®−îc x¸c ®Þnh b»ng c¸ch l¾p ghÐp c¸c ®Æc t¶ mèi quan hÖ l¹i víi nhau thµnh m¹ng.
VÝ dô
Nh− trong bµi to¸n qu¶n lý th− viÖn ®¬n gi¶n:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
120
Danh s¸ch c¸c thùc thÓ vµ thuéc tÝnh t−¬ng øng:
Ng−êi ®äc: Sè thÎ, Hä tªn, Ngµy sinh, §Þa chØ, Thêi h¹n hÕt gi¸ trÞ, Sè chøng minh th−, Sè ®iÖn tho¹i, Ngµy lµm thÎ
B¶n s¸ch: Sè hiÖu l−u tr÷, Ngµy nhËp vÒ, Lo¹i (cho m−în vÒ nhµ/®äc t¹i chç)
S¸ch: Sè xuÊt b¶n, Tªn s¸ch, Tªn t¸c gi¶ (chñ biªn), Tªn ®ång t¸c gi¶, TËp, LÇn xuÊt b¶n, Sè trang, Gi¸ tiÒn, §a ng÷, N¨m xuÊt b¶n.
Nhµ xuÊt b¶n: Tªn NXB, §Þa chØ NXB
Chuyªn ngµnh: M· ph©n lo¹i chuyªn ngμnh, Tªn ph©n lo¹i chuyªn ngµnh
Ng«n ng÷: M· lo¹i ng«n ng÷, Tªn lo¹i ng«n ng÷ (tiÕng ViÖt,
tiÕng Anh, …)
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
121
Ch−¬ng 3
QUY TR×NH ph©n tÝch thiÕt kÕ csdl
ViÖc ph©n tÝch thiÕt kÕ CSDL bao gåm nh÷ng giai ®o¹n c¬ b¶n sau:
1. Ph©n tÝch yªu cÇu
2. Ph©n tÝch d÷ liÖu vµ x©y dùng m« h×nh kh¸i niÖm d÷ liÖu
3. ThiÕt kÕ CSDL møc logic
4. ThiÕt kÕ CSDL møc vËt lý
5. ThiÕt kÕ an toµn b¶o mËt cho CSDL
3.1. Ph©n tÝch yªu cÇu
3.1.1. Môc ®Ých cña viÖc ph©n tÝch yªu cÇu Trong qu¸ tr×nh ph©n tÝch vµ thiÕt kÕ CSDL th× ph©n tÝch yªu cÇu
lµ c«ng viÖc ph¶i thùc hiÖn ®Çu tiªn.
Chóng ta quan t©m ®Õn nh÷ng vÊn ®Ò sau:
- C¸c d÷ liÖu nµo sÏ ®−îc l−u gi÷ trong CSDL, trong ®ã c¸c d÷ liÖu nµo lµ kh«ng thÓ thiÕu?
- C¸c øng dông nµo cã thÓ sÏ ®−îc ph¸t triÓn mµ cã thÓ khai th¸c ®−îc CSDL ®· x©y dùng?
- C¸c thao t¸c g× sÏ ®−îc thùc hiÖn trªn nh÷ng d÷ liÖu ®· l−u gi÷?
§Ó ®¸p øng ®−îc nh÷ng vÊn ®Ò nµy chóng ta cÇn ph¶i t×m hiÓu hiÖn tr¹ng, ph©n tÝch c¸c yªu cÇu cña ®èi t−îng sö dông tõ nh÷ng ng−êi thõa hµnh, ®Õn ng−êi qu¶n lý vµ l·nh ®¹o v× ng−êi thõa hµnh cã thÓ cung cÊp c¸c th«ng tin chi tiÕt vÒ mét c«ng viÖc cô thÓ, ng−êi qu¶n lý cung cÊp c¸c nhiÖm vô, mét lÜnh vùc trong hÖ thèng, cßn ng−êi l·nh
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
122
®¹o cung cÊp c¸c th«ng tin tæng thÓ cïng c¸c môc tiªu tr−íc m¾t vµ l©u dµi cña toµn hÖ thèng.
Cã nhiÒu kü thuËt vµ c«ng cô nh− pháng vÊn trùc tiÕp, phiÕu ®iÒu tra, b¶ng hái, tµi liÖu,…®−îc sö dông riªng lÎ hay tÝch hîp trong giai ®o¹n nµy tuú thuéc vµo ®iÒu kiÖn cô thÓ khi x©y dùng CSDL.
Môc ®Ých chÝnh cña kh©u ph©n tÝch yªu cÇu:
1. X¸c ®Þnh yªu cÇu d÷ liÖu cña CSDL: danh s¸ch c¸c thuéc tÝnh cÇn qu¶n lý vµ gép chóng theo c¸c ®èi t−îng
2. Ph©n lo¹i vµ m« t¶ th«ng tin vÒ c¸c ®èi t−îng ®ã
3. X¸c ®Þnh mèi liªn kÕt gi÷a c¸c ®èi t−îng
4. X¸c ®Þnh c¸c giao dÞch sÏ ®−îc thùc hiÖn trªn c¸c ®èi t−îng d÷ liÖu ®ã
5. X¸c ®Þnh c¸c quy t¾c nghiÖp vô (luËt) ®¶m b¶o tÝnh toµn vÑn cña d÷ liÖu
ViÖc ph©n tÝch yªu cÇu ®−îc tiÕn hµnh th«ng qua ph−¬ng ph¸p m« h×nh ho¸ víi møc trõu t−îng logic hay kh¸i niÖm. KÕt qu¶ cña viÖc ph©n tÝch yªu cÇu vµ ph©n tÝch d÷ liÖu lµ x©y dùng ®−îc m« h×nh kh¸i niÖm d÷ liÖu. Trong qu¸ tr×nh x©y dùng m« h×nh nµy, vai trß cña NSD rÊt quan träng. Hä cã thÓ bæ sung cho chóng ta nh÷ng khiÕm khuyÕt cña hÖ thèng hiÖn t¹i. Nhê vËy, chóng ta sÏ cã c¬ së ®Ó hoµn thiÖn m« h×nh víi c¸c d÷ liÖu ®Çy ®ñ vµ chÝnh x¸c h¬n.
Mét sè l−u ý khi ph©n tÝch yªu cÇu cña NSD:
1. Khi trao ®æi víi NSD, cÇn sö dông c¸c thuËt ng÷ trong thÕ giíi thùc cho dÔ trao ®æi vµ gîi më ®−îc nhiÒu chi tiÕt nghiÖp vô
2. T×m hiÓu kü quy tr×nh nghiÖp vô ®ñ chi tiÕt ®Ó m« h×nh ho¸ nã mét c¸ch ®Çy ®ñ vµ chÝnh x¸c nhÊt
3. Pháng vÊn ®Çy ®ñ c¸c ®èi t−îng sö dông v× ®©y lµ nh÷ng ng−êi ®−îc thõa h−ëng vµ ph¸t huy ®−îc hiÖu qu¶ sö dông CSDL
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
123
3.1.2. Néi dung ph©n tÝch yªu cÇu
ViÖc ph©n tÝch yªu cÇu vÒ d÷ liÖu cho hÖ thèng gåm nh÷ng néi dung sau:
3.1.2.1. X¸c ®Þnh d÷ liÖu cÇn l−u gi÷
§èi víi hÖ thèng CSDL, mÊu chèt vÊn ®Ò lµ x¸c ®Þnh ®óng vµ ®ñ danh s¸ch thuéc tÝnh cÇn qu¶n lý. Danh s¸ch nµy quyÕt ®Þnh thµnh c«ng cña viÖc x©y dùng CSDL.
§èi víi mçi d÷ liÖu trong danh s¸ch, cÇn m« t¶ ®Çy ®ñ c¸c chØ môc d÷ liÖu:
- Tªn d÷ liÖu (s¸t víi thùc tÕ)
- §Þnh nghÜa (ng−êi dïng hiÓu ®−îc)
- KiÓu d÷ liÖu (chØ râ kiÓu cña d÷ liÖu lµ ký tù, sè, ngµy th¸ng, logic,…vµ kÝch cì cña chóng)
- Lo¹i d÷ liÖu (s¬ cÊp: kh«ng thÓ chia nhá ®−îc n÷a, tÝch hîp/kÕt nèi: ®−îc gép l¹i tõ viÖc ghÐp nhiÒu d÷ liÖu víi nhau, tÝnh to¸n: ®−îc suy ra tõ mét sè d÷ liÖu kh¸c)
- §Þnh l−îng (sè c¸c gi¸ trÞ kh¸c nhau mµ d÷ liÖu cã thÓ nhËn)
- Ghi chó thªm: cho phÐp chóng ta dïng h×nh thøc diÔn ®¹t tù do ®Ó cã thÓ nªu thªm c¸c d÷ kiÖn bæ sung cho d÷ liÖu.
VÝ dô: Tªn: Tªn nhµ cung cÊp
§Þnh nghÜa: dïng ®Ó ®Æt tªn, th−êng tãm t¾t, cho phÐp x¸c ®Þnh nhµ cung cÊp
CÊu tróc: kiÓu ký tù C(30)
Lo¹i: s¬ cÊp
§Þnh l−îng: kho¶ng 50
VÝ dô: C«ng ty L¦¥NG THùC THùC PHÈM I
§Þnh nghÜa: C«ng ty L−¬ng thùc thùc phÈm ë phu vùc phÝa B¾c (t−¬ng øng II - miÒn Trung, III - miÒn Nam)
Ghi chó: cã thÓ chØ sö dông 15 ký tù.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
124
3.1.2.2. X¸c ®Þnh øng dông sÏ ®−îc cμi ®Æt trªn CSDL
ViÖc x¸c ®Þnh øng dông sÏ ®−îc cµi ®Æt trªn CSDL lµ rÊt quan träng v× ®ã lµ c¬ së x¸c ®Þnh tÝnh ®óng vµ ®ñ cña c¸c d÷ liÖu vµ gióp cho viÖc nh×n nhËn tæng qu¸t h¬n vÒ CSDL sÏ ®−îc x©y dùng.
3.1.2.3. X¸c ®Þnh c¸c thao t¸c th−êng xuyªn ®−îc thùc hiÖn
ViÖc x¸c ®Þnh c¸c thao t¸c th−êng xuyªn ®−îc thùc hiÖn trªn d÷ liÖu ®ãng vai trß quan träng. YÕu tè nµy ®«i khi l¹i quyÕt ®Þnh tÝnh thµnh c«ng cña mét CSDL. Nhê cã yÕu tè nµy mµ viÖc thiÕt kÕ mét CSDL míi ®−îc coi lµ ®Çy ®ñ.
Trªn thùc tÕ, khi l−îng d÷ liÖu t¨ng lªn th× thêi gian thùc hiÖn c¸c thao t¸c trªn d÷ liÖu còng t¨ng lªn. Do vËy, nÕu trong kh©u kh¶o s¸t, ph©n tÝch yªu cÇu, chóng ta kh«ng x¸c ®Þnh ®−îc c¸c thao t¸c th−êng xuyªn ®−îc thùc hiÖn th× chóng ta kh«ng thÓ ®−a ra ®−îc thiÕt kÕ hiÖu qu¶, kh«ng thÓ t¹o ra nh÷ng chØ môc phï hîp, c¸ch ph©n chia d÷ liÖu hîp lý.
§Æc biÖt, viÖc x¸c ®Þnh c¸c thao t¸c th−êng xuyªn ®−îc thùc hiÖn trªn d÷ liÖu rÊt cã Ých trong qu¸ tr×nh tinh chØnh s¬ ®å CSDL logic còng nh− thiÕt kÕ CSDL vËt lý.
3.1.3. C¸c kü thuËt ph©n tÝch yªu cÇu
Mét sè kü thuËt ph©n tÝch yªu cÇu:
3.1.3.1. Pháng vÊn trùc tiÕp
Tr−íc hÕt, chóng ta ph¶i chän lùa ®óng ®èi t−îng cÇn pháng vÊn. Sau ®ã tiÕn hµnh pháng vÊn theo cÊu tróc ph©n cÊp: ban l·nh ®¹o, c¸c bé phËn nghiÖp vô phßng ban, vµ sau cïng lµ c¸c ®¬n vÞ c¬ së (c¸c vÞ trÝ lµm viÖc). Trong qu¸ tr×nh pháng vÊn, chóng ta cè g¾ng thu ®−îc ®Çy ®ñ c¸c mÉu hå s¬ d÷ liÖu (®Çu vµo, trung gian), c¸c b¸o c¸o thèng kª (®Çu ra). ViÖc pháng vÊn ban l·nh ®¹o nh»m môc ®Ých t×m hiÓu c¸c chØ tiªu tæng thÓ mang tÝnh chiÕn l−îc cña c¶ tæ chøc, trong tõng lÜnh vùc, tõng bé phËn. ViÖc pháng vÊn c¸c phßng ban nghiÖp vô nh»m
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
125
môc ®Ých thu thËp c¸c chØ tiªu träng yÕu, cÇn thiÕt cho mäi ho¹t ®éng cña tæ chøc mµ hä th−êng dïng ®Ó theo dâi, qu¶n lý c¸c ho¹t ®éng nghiÖp vô vµ chØ ®¹o trong tæ chøc. ViÖc pháng vÊn c¸c vÞ trÝ lµm viÖc nh»m tiÕp nhËn c¸c th«ng tin cô thÓ, chi tiÕt cho tõng ho¹t ®éng nghiÖp vô trong tõng lÜnh vùc cô thÓ, tõng bé phËn nhá trong ph¹m vi bao qu¸t cña c¸c chØ tiªu ®· thu ®−îc tõ pháng vÊn l·nh ®¹o vµ c¸c ban ngµnh chøc n¨ng. Chóng ta cÇn chi tiÕt tõng xö lý, t−¬ng øng c¸c d÷ liÖu ®Çu vµo, nguån d÷ liÖu cung cÊp, c¸c d÷ liÖu ®Çu ra, n¬i göi th«ng tin ®Õn. Chóng ta cã thÓ tiÕn hµnh pháng vÊn c¸ nh©n tham gia trùc tiÕp vµo tõng c«ng viÖc cô thÓ. §Ó cã thÓ liÖt kª vµ m« t¶ toµn bé c«ng viÖc ph¶i thùc hiÖn, ®èi víi mçi c«ng viÖc cÇn n¾m b¾t c¸c sù kiÖn khëi ®éng, chu kú thùc hiÖn, thêi l−îng thùc hiÖn, nh÷ng d÷ liÖu cã liªn quan, khèi l−îng cña chóng, c¸c quy t¾c cÇn ¸p dông ®Ó thùc hiÖn c«ng viÖc, quan s¸t sù lu©n chuyÓn d÷ liÖu gi÷a c¸c vÞ trÝ c«ng viÖc.
§Ó n©ng cao chÊt l−îng vµ tèc ®é pháng vÊn, chóng ta cã thÓ dïng c¸c phiÕu pháng vÊn ®· chuÈn bÞ s½n. Sau khi pháng vÊn cÇn tæng hîp, hiÖu chØnh d÷ liÖu thu thËp ®−îc, s¾p xÕp chóng d−íi d¹ng c¸c hå s¬ kh¶o s¸t vµ x¸c ®Þnh c¸c d÷ liÖu cßn ch−a chÝnh x¸c, c¸c d÷ liÖu cßn thiÕu, cÇn thu thËp tiÕp.
PhiÕu pháng vÊn bao gåm c¸c th«ng tin vÒ dù ¸n, ng−êi ®−îc pháng vÊn, néi dung cÇn pháng vÊn (th«ng qua c©u hái chuÈn bÞ tr−íc), ®¸nh gi¸ sau pháng vÊn, lÞch biÓu tiÕp tôc (tho¶ thuËn), thêi gian pháng vÊn, tªn ng−êi pháng vÊn.
Khi pháng vÊn, chóng ta cÇn:
+ VÏ L−u ®å c«ng viÖc nh»m x¸c ®Þnh ®Çy ®ñ c¸c hå s¬ d÷ liÖu:
Dù ¸n: TiÓu dù ¸n: QL kho Trang:
Lo¹i:
L−u ®å
NhiÖm vô:
LËp ®¬n hμng
Ngμy:
Thñ kho Ng−êi qu¶n lý Bªn ngoμi
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
126
Phiếu vật tư D1 Sổ thực đơn D2
Sổ đặt hàng D4
Đơn hàng D3
Phiếu giao hàng D5
Bảng giá D6
Sổ đặt hàng D4
Hoạt động
Hồ sơ dữ liệu
Tác nhân ngoài
Nhà cung cấp
Nhà cung cấp
Tiếp nhận, nhận hàng T3
Tiếp nhận, nhận hàng T3
Tiếp nhận, kiểm phiếu T2
Lập và chuyển đơn
hàng T1
H×nh 3.1. L−u ®å c«ng viÖc bμi to¸n qu¶n lý kho
+ LËp B¶ng tæng hîp hå s¬ (Rót tõ c¸c phiÕu pháng vÊn, tµi liÖu
thu thËp) nh»m m« t¶ quan hÖ gi÷a xö lý vµ d÷ liÖu vµ dïng ®Ó phôc vô cho viÖc tæng hîp d÷ liÖu sau nµy.
B¶ng 3.1. B¶ng tæng hîp hå s¬
M·
tμi liÖu
Tªn - Vai trß C«ng viÖc liªn quan
(m· chøc n¨ng/nhiÖm vô)
D1
D2
D3
D4
D5
...
PhiÕu vËt t−: ghi hμng ho¸ xuÊt hay nhËp
Sæ thùc ®¬n: §Þnh møc hμng ho¸ lμm
s¶n phÈm
§¬n ®Æt hμng: Theo mÉu nhμ cung cÊp
Sæ ®Æt hμng: tËp hîp c¸c ®¬n hμng
PhiÕu giao hμng: Nhμ cung cÊp ph¸t ra
T1
T1
T1
T1,T2
T2,T3
...
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
127
+ LËp B¶ng tæng hîp c«ng viÖc (rót ra tõ phiÕu pháng vÊn) nh»m phôc vô cho viÖc tæng hîp xö lý sau nµy.
B¶ng 3.2. B¶ng tæng hîp c«ng viÖc
STT M« t¶ c«ng viÖc VÞ trÝ lμm viÖc
TÇn suÊt Hå s¬ vμo
Hå s¬ ra
T1 LËp ®¬n hμng: XuÊt ph¸t tõ nhu cÇu cung øng, thùc ®¬n s¶n xuÊt, b¸o gi¸, ®¬n hμng lËp vμ chuyÓn ®i b»ng ®iÖn tho¹i (80%), viÕt (20%) s¾p c¸c ®¬n hμng vμo sæ ®Æt ®Ó ®èi chiÕu, theo dâi
Qu¶n lý kho hμng
4-5 ®¬n/ngμy
5-10 dßng/®¬n
D1
D2
D6
D3
D4
T2
+ LËp B¶ng m« t¶ chi tiÕt tμi liÖu (tõ ®iÓn d÷ liÖu) nh»m phôc vô cho viÖc x©y dùng b¶ng tæng hîp tõ ®iÓn d÷ liÖu sau nµy.
B¶ng 3.3. B¶ng m« t¶ chi tiÕt tμi liÖu
Dù ¸n: TiÓu dù ¸n: LËp ®¬n hμng Trang
Lo¹i: ph©n tÝch hiÖn tr¹ng M« t¶ d÷ liÖu Sè TT:
Ngμy:
§Þnh nghÜa:
Tªn d÷ liÖu: Nhμ cung cÊp
Dïng ®Ó chØ nh÷ng ng−êi cung cÊp hμng th−êng xuyªn. Nã cho phÐp x¸c ®Þnh mçi nhμ cung cÊp
CÊu tróc:
KiÓu ký tù, ®é dμi 20-30 ký tù, mét sè ch÷ ®Çu viÕt hoa
Lo¹i: S¬ cÊp
Sè l−îng: 50 nhμ cung cÊp
VÝ dô: C«ng ty NETNAM
Lêi b×nh: Tªn cã thÓ viÕt ®Çy ®ñ hoÆc viÕt t¾t
Sau pháng vÊn, chóng ta cÇn tæng hîp kh¶o s¸t:
- Mét tæ chøc lín, phøc t¹p th−êng kh«ng thÓ quan s¸t tÊt c¶ mét lóc, b»ng c¸ch ph©n tÝch vµ t¸ch nhá ®Ó quan s¸t, thu thËp th«ng tin. Lóc nµy cÇn l¾p ghÐp l¹i ®Ó cã ®−îc mét c¸ch nh×n tæng thÓ
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
128
- Thùc hiÖn tæng hîp hai lo¹i
+ Tæng hîp xö lý: ®Ó thÊy ®−îc tæng thÓ c¸c xö lý diÔn ra trong tæ chøc vµ ph¸t hiÖn xö lý nµo kh«ng thay ®æi trong mäi tr−êng hîp
+ Tæng hîp c¸c d÷ liÖu: ®¶m b¶o tÝnh phï hîp vµ chÆt chÏ cña d÷ liÖu ®· sö dông
Tæng hîp d÷ liÖu
Môc tiªu: liÖt kª ra tÊt c¶ c¸c d÷ liÖu cã liªn quan ®Õn miÒn kh¶o s¸t cña tæ chøc vµ sµng läc ®Ó thu ®−îc nh÷ng d÷ liÖu ®Çy ®ñ, chÝnh x¸c vµ g¸n cho tªn gäi thÝch hîp mµ mäi ng−êi tham gia dù ¸n ®ång ý.
Sμng läc d÷ liÖu:
- LiÖt kª c¸c th«ng tin thu ®−îc, tiÕn hµnh so s¸nh, ®èi chiÕu, xem xÐt sù phï hîp cña nã vÒ mÆt néi dung, còng nh− tªn gäi.
Sù kh«ng phï hîp cña d÷ liÖu th−êng x¶y ra khi:
+ D÷ liÖu ®ång nghÜa: hai tªn kh¸c nhau nh−ng chØ cïng mét lo¹i d÷ liÖu.
VÝ dô:
§¬n gi¸ vµ gi¸ ®¬n vÞ.
+ D÷ liÖu ®ång danh/®a nghÜa: cïng mét tªn gäi nh−ng l¹i chØ nhiÒu lo¹i d÷ liÖu kh¸c nhau.
VÝ dô:
Tµi kho¶n ë mét chç cã nghÜa lµ sè cña mét tµi kho¶n, ë chç kh¸c cã nghÜa lµ tªn ®Çy ®ñ cña mét tµi kho¶n thanh to¸n. Ngµy (xuÊt/nhËp), Gi¸ (b¸n/mua), Sè l−îng (nhËp/xuÊt)
- Lo¹i bá tªn trïng, cho tªn kh¸c nhau víi c¸c d÷ liÖu kh¸c nhau
LËp mét tõ ®iÓn d÷ liÖu
- TËp hîp c¸c d÷ liÖu thu ®−îc tõ c¸c cuéc pháng vÊn ®iÒu tra, sau khi ®· sµng läc lËp thµnh mét tµi liÖu chung. Râ rµng trong b¶ng tæng hîp nµy, c¸c d÷ liÖu ®Òu cã tªn kh¸c nhau.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
129
- Tõ ®iÓn d÷ liÖu lµ 1 t− liÖu vÒ mäi tªn gäi cña mäi ®èi t−îng ®−îc dïng trong hÖ thèng ë c¶ 4 giai ®o¹n: ph©n tÝch, thiÕt kÕ, cµi ®Æt vµ b¶o tr×. Tµi liÖu nµy lµ c¬ së ®Ó tra cøu vµ sö dông sau nµy cho viÖc h×nh thµnh CSDL.
MÉu b¶ng tæng hîp tõ ®iÓn d÷ liÖu cã d¹ng (thuéc tÝnh):
B¶ng 3.4. B¶ng tæng hîp tõ ®iÓn d÷ liÖu
STT Tªn gäi KiÓu Cì LÜnh vùc
Quy t¾c, rμng buéc vμ khu«n d¹ng
1
Sè ho¸ ®¬n Ký tù 8 KÕ to¸n Ch÷ hoa hoÆc sè
2 Tªn hμng ho¸ Ký tù 20 KÕ to¸n Ch÷ hoa + sè
3 Ngμy vμo sæ ®¬n hμng Ngμy th¸ng
8 Qu¶n lý kho
ngμy/th¸ng/n¨m
4 Sè l−îng nhËn hμng Sè 6 Thñ kho §¬n vÞ: t¹, tÊn.
5 Sè tiÒn Sè 7 KÕ to¸n Gi÷ 2 sè lÎ sau dÊu phÈy
Sau pháng vÊn, chóng ta cÇn hîp thøc ho¸ kÕt qu¶ pháng vÊn.
Hîp thøc ho¸ lµ viÖc hiÓu vμ thÓ hiÖn c¸c th«ng tin pháng vÊn ë c¸c d¹ng kh¸c nhau ®−îc nhiÒu ng−êi sö dông vµ tæ chøc chÊp nhËn sù m« t¶ nhu cÇu th«ng tin cña tæ chøc lµ ®óng vμ ®ñ.
Môc tiªu cña viÖc hîp thøc ho¸ kÕt qu¶ pháng vÊn nh»m chÝnh x¸c ho¸ c¸c th«ng tin ®−îc kh¶o s¸t ®ång thêi ng−êi ®−îc pháng vÊn vµ ng−êi ®¹i diÖn x¸c nhËn sù phï hîp cña nã víi hiÖn tr¹ng tæ chøc cña hä vµ phï hîp víi môc tiªu ®Ò ra.
Sau pháng vÊn, chóng ta còng cÇn ®¸nh gi¸ vÊn ®Ò vμ ph©n tÝch tæng hîp c¸c th«ng tin h÷u Ých nh»m x¸c ®Þnh ®−îc mét c¸ch tiÕp cËn hay gi¶i ph¸p tæng thÓ.
Khi ®¸nh gi¸, tæng hîp, ng−êi ph©n tÝch cÇn x©y dùng c¸c m« h×nh hÖ thèng nh»m hiÓu râ h¬n luång d÷ liÖu vµ c¸c xö lý, thao t¸c d÷ liÖu vµ néi dung th«ng tin. C¸c m« h×nh nµy sÏ lµ nÒn t¶ng cho thiÕt kÕ sau nµy vµ lµ c¬ së cho viÖc t¹o ra mét ®Æc t¶ hÖ thèng vµ phÇn mÒm.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
130
3.1.3.2. Pháng vÊn gi¸n tiÕp
Pháng vÊn gi¸n tiÕp th«ng qua b¶ng hái hay phiÕu kh¶o s¸t lµ h×nh thøc kh¶o s¸t bæ sung cho kü thuËt pháng vÊn trùc tiÕp. C¸c c©u hái ®−îc liÖt kª trong b¶ng hái hay phiÕu kh¶o s¸t. Ng−êi ®−îc kh¶o s¸t sÏ tù ®iÒn vµo phiÕu nµy nh÷ng th«ng tin ®−îc hái. ¦u ®iÓm cña ph−¬ng ph¸p nµy lµ ®ì tèn kÐm vµ cã thÓ më réng ®−îc diÖn kh¶o s¸t nh−ng thiÕu sù giao tiÕp gi÷a chóng ta vµ ng−êi ®−îc pháng vÊn. H¬n n÷a, ng−êi ®−îc kh¶o s¸t cã thÓ bá qua nh÷ng th«ng tin mµ chóng ta cÇn.
VÝ dô: H×nh 3.2.
PHIÕU THU THËP TH¤NG TIN
VÒ øNG DôNG CNTT TRONG C¸C DOANH NGHIÖP
A. TH¤NG TIN CHUNG
1. Tªn doanh nghiÖp: ..................................................................................................
2. §Þa chØ: .....................................................................................................................
3. §iÖn tho¹i:
4. Fax:
5. E-mail:
6. Web site:
7. Hä vμ tªn Gi¸m ®èc:
8. Tæng sè nh©n viªn cña doanh nghiÖp:
B. PHÇN C¢U HáI CHÝNH
9. Tæng sè m¸y tÝnh (PC) hiÖn cã cña doanh nghiÖp: ...................
Trong ®ã:
a. Sè m¸y chñ (Server): ................
b. Sè m¸y tÝnh c¸ nh©n (PC): ................
c. Sè m¸y x¸ch tay (Laptop/Notebook) ................
d. ThiÕt bÞ ngo¹i vi:
- M¸y in laer................
D−íi HP 1100................
Trªn HP1100 (trªn 8 trang/phót)................
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
131
- M¸y in kim................
- Scaner................
- Flotter................
- Modem................
- Switch................
- Router................
- Hub................
e.ThiÕt bÞ hç trî:
- §iÒu hßa nhiÖt ®é:................
- M¸y hót Èm:................
- æn ¸p:................
- M¸y l−u ®iÖn:................
D−íi 3kVA................
Trªn 3kVA................
- Chèng sÐt................
10. Doanh nghiÖp cã Trung t©m/Phßng m¸y tÝnh kh«ng? Sè l−îng
1. Cã ....................
2. Kh«ng
11. C¸c m¸y tÝnh cña doanh nghiÖp ®· ®−îc kÕt nèi m¹ng néi bé (LAN) ch−a?
Tõ bao giê
1. §· cã ....................
2. Ch−a
12. ViÖc kÕt nèi m¹ng néi bé (LAN) cña doanh nghiÖp
1. TÊt c¶ c¸c m¸y tÝnh ®Òu ®−îc nèi m¹ng
2. ChØ cã c¸c m¸y tÝnh trong Trung t©m/Phßng m¸y tÝnh ®−îc nèi m¹ng
3. Kh«ng cã m¸y nμo ®−îc nèi m¹ng
4. Sè m¸y tÝnh ®−îc nèi m¹ng
5. Sè m¸y chñ trong m¹ng
6. Sè m¸y in trong m¹ng
13. HÖ ®iÒu hμnh m¹ng
WINDOW NT
Windows 2000 Server/Advance Server
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
132
NOVELL
UNIX/LINUX
Kh¸c (ghi tªn cô thÓ)
14. Doanh nghiÖp hiÖn ®ang sö dông dÞch vô kÕt nèi Internet nμo?
Tõ bao giê
1. KÕt nèi gi¸n tiÕp (Dial-up) ....................
2. Internet tèc ®é cao (ADSL)
15. ViÖc kÕt nèi m¹ng Internet cña doanh nghiÖp
1. TÊt c¶ c¸c m¸y tÝnh ®Òu ®−îc nèi m¹ng Internet
2. ChØ cã c¸c m¸y tÝnh trong Trung t©m/Phßng m¸y tÝnh ®−îc nèi m¹ng Internet
3. Kh«ng cã m¸y nμo ®−îc nèi m¹ng Internet
4. Sè m¸y tÝnh ®−îc nèi m¹ng Internet
16. ViÖc sö dông ®Þa chØ E-mail cña doanh nghiÖp
Cã Kh«ng
a. Doanh nghiÖp cã ®Þa chØ e-mail giao dÞch chÝnh thøc
§Þa chØ E- mail:..........................................................
17. Doanh nghiÖp cã website kh«ng?
Tõ bao giê §Þa chØ website
1. §· cã .................... ........................................
2. Ch−a
18. Cã bao nhiªu nh©n viªn cña doanh nghiÖp biÕt sö dông m¸y tÝnh?
19. Cã bao nhiªu nh©n viªn cña doanh nghiÖp biÕt sö dông Internet?
20. Doanh nghiÖp cã bao nhiªu nh©n viªn chuyªn tr¸ch vÒ CNTT?
21. Doanh nghiÖp sö dông m¸y tÝnh cho nh÷ng môc ®Ých nμo d−íi ®©y
1. So¹n th¶o v¨n b¶n
2. KÕ to¸n
3. Qu¶n lý, ®iÒu hμnh c«ng viÖc
4. DÞch vô
5. Phôc vô mét sè c«ng ®o¹n trong d©y chuyÒn s¶n xuÊt
22. Doanh nghiÖp sö dông Internet cho nh÷ng môc ®Ých nμo d−íi ®©y?
1. Göi E-mail
2. Qu¶n lý, ®iÒu hμnh c«ng viÖc
3. Thu thËp th«ng tin
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
133
4. Qu¶ng c¸o cho doanh nghiÖp
5. Mua b¸n hμng hãa, vËt t−....
6. DÞch vô
23. Doanh nghiÖp cã c¬ së d÷ liÖu kh«ng?
1. Cã
2. Kh«ng
C¸c hÖ qu¶n trÞ CSDL ®ang dïng (nÕu cã th× ®¸nh dÊu x vμo « d−íi):
Foxpro Access Notus note
DB2 SQL server
Oracle CSDL ®Þa lý
Infomix Kh¸c
24. §Çu t− cho øng dông CNTT t¹i doanh nghiÖp trong giai ®o¹n
2005-2010...........®ång
Ng©n s¸ch trung −¬ng: ..............®ång
Ng©n s¸ch ®Þa ph−¬ng: ..............®ång
§Çu t− ph¸t triÓn m¹ng diÖn réng, m¹ng côc bé, mua s¾m phÇn cøng:.......®ång
§Çu t− ph¸t triÓn øng dông CNTT (mua, x©y dùng c¬ së d÷ liÖu, phÇn mÒm...):.....®ång
§Çu t− cho ®μo t¹o, båi d−ìng vÒ CNTT cho c¸n bé, nh©n viªn: ..........®ång
25. C¸c phÇn mÒm øng dông ®ang sö dông trong ®¬n vÞ:
HiÖn tr¹ng sö dông D¹ng øng dông
(ghi râ tªn øng dông) N¨m b¾t ®Çu sö dông
§¸p øng ®−îc yªu
cÇu
Trªn m¸y ®¬n
Ng«n ng÷ lËp
tr×nh
Nhμ cung cÊp
a) PhÇn mÒm øng dông c¬ b¶n
- So¹n th¶o v¨n b¶n
- Qu¶n lý c«ng v¨n
- Qu¶n lý VBPQ
- Qu¶n lý nh©n sù
- Qu¶n lý tμi chÝnh
- Qu¶n lý vËt t−
- §¬n khiÕu tè
- §iÒu hμnh t¸c nghiÖp
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
134
b) C¸c øng dông vμ CSDL chuyªn ngμnh phôc vô cho lÜnh vùc chuyªn m«n
c) C¸c øng dông trong s¶n xuÊt (®iÒu hμnh s¶n xuÊt)
d) Kh¸c (nÕu cã)
26. §μo t¹o
Sè häc viªn ®−îc ®μo t¹o qua c¸c
n¨m N¬i ®μo t¹o
Néi dung ®μo t¹o
N¨m…
T¹i ®Þa ph−¬ng
Ngoμi ®Þa ph−¬ng
N−íc ngoμi
Tæng sè
1. CNTT cho c¸n bé l·nh ®¹o, qu¶n lý
2. Tin häc cho NSD
3. Chuyªn viªn tin häc
4. Ph¸t triÓn vμ qu¶n trÞ hÖ thèng
27. Nhu cÇu øng dông vμ ph¸t triÓn CNTT cña ®¬n vÞ ®Õn n¨m …
1. Nh©n lùc vÒ CNTT
Nhu cÇu tæng sè c¸n bé nh©n viªn toμn ®¬n vÞ ®Õn n¨m ….: … ng−êi
Trong ®ã, nhu cÇu sè c¸n bé vÒ CNTT ®Õn n¨m ….:
Trong ®ã
ChØ tiªu
Tæng sè
(ng−êi)§H vμ
trªn §HCao ®¼ng
Trung cÊp
Chuyªn viªn
Kh¸c
C¸n bé phÇn cøng
C¸n bé phÇn mÒm
Ph¸t triÓn vμ qu¶n trÞ hÖ thèng
C¸n bé cã sö dông PC trong c«ng viÖc
NhËp d÷ liÖu
2. Nhu cÇu ®μo t¹o tõng n¨m
ChØ tiªu N¨m…
C¸n bé qu¶n lý
C¸n bé qu¶n trÞ m¹ng
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
135
Chuyªn viªn lËp tr×nh
Chuyªn viªn ph©n tÝch thiÕt kÕ hÖ thèng
Chuyªn viªn ph¸t triÓn vμ qu¶n trÞ hÖ thèng
Chuyªn viªn TM§T
3. Nhu cÇu nh©n lùc cã tr×nh ®é cao: §V tÝnh: ng−êi
Sè c¸n bé
§H Trªn §H
N¨m Phæ cËp LËp
tr×nh
Ph©n tÝch vμ thiÕt kÕ
M¹ng LËp tr×nh
Ph©n tÝch vμ thiÕt kÕ
M¹ng
4. Nhu cÇu vÒ thiÕt bÞ §V: chiÕc
Sè l−îng STT Chñng lo¹i
N¨m….
1. M¸y tÝnh PC
2. M¸y in
3. Scaner
4. Plotter
5. Modem
6. Router
7. Switch
8. M¸y chñ CSDL
9. M¸y chñ truyÒn th«ng
5. Nhu cÇu c¸c hÖ qu¶n trÞ CSDL chñ yÕu (nÕu cã th× ®¸nh dÊu x vμo « d−íi):
Foxpro Access Notus note
DB2 SQL server
Oracle CSDL ®Þa lý
Infomix Kh¸c
6. Nhu cÇu c¸c phÇn mÒm øng dông sÏ sö dông trong ®¬n vÞ:
Nhu cÇu D¹ng øng dông
(ghi râ tªn øng dông, n¨m b¾t ®Çu sö dông)
N©ng cÊp
Míi
Trªn m¸y ®¬n
Ng«n ng÷ lËp tr×nh
Nhμ cung cÊp
a) PM øng dông c¬ b¶n
- So¹n th¶o v¨n b¶n
- Qu¶n lý c«ng v¨n
- Qu¶n lý VBPQ
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
136
- Qu¶n lý nh©n sù
- Qu¶n lý tμi chÝnh
- Qu¶n lý vËt t−
- §¬n khiÕu tè
- §iÒu hμnh t¸c nghiÖp
b) C¸c øng dông vμ CSDL chuyªn ngμnh phôc vô cho lÜnh vùc chuyªn m«n
c) C¸c øng dông phôc vô s¶n xuÊt (®iÒu hμnh s¶n xuÊt)
d) Kh¸c (nÕu cã)
7. Nhu cÇu vÒ tæ chøc
Cã nhu cÇu thμnh lËp ®¬n vÞ chuyªn tr¸ch vÒ CNTT:
NÕu cã: Sè l−îng c¸n bé: …..
Trong ®ã:
- C¸n bé kü thuËt: ……
- C¸n bé lËp tr×nh: …….
- C¸n bé ph©n tÝch vμ thiÕt kÕ hÖ thèng: ………
28. §¸nh gi¸ vμ kiÕn nghÞ
1. Lý do ph¸t triÓn chËm CNTT cña doanh nghiÖp
- Nhu cÇu sö dông CNTT cßn Ýt
- Kh«ng ho¹ch ®Þnh ®−îc lé tr×nh ¸p dông CNTT
- ThiÕu sù kÕt hîp chÆt chÏ cña c¸c hiÖp héi
- Nhμ n−íc ch−a chó träng ®Õn líp øng dông cho doanh nghiÖp
- Ng©n s¸ch cã h¹n
- Lo ng¹i vÒ hiÖu qu¶ sö dông phÇn mÒm
- Sù chØ ®¹o cña cÊp trªn cßn Ýt
- L·nh ®¹o doanh nghiÖp cßn bËn qu¸ nhiÒu viÖc
- §Çu t− kh«ng hîp lý
- ThiÕu sù liªn kÕt, phèi hîp, kh«ng theo kÕ ho¹ch tæng thÓ
- ThiÕu nh©n lùc (lËp tr×nh viªn, c¸n bé qu¶n lý, c¸n bé xóc tiÕn th−¬ng m¹i)
- N¨ng lùc cña doanh nghiÖp cung cÊp s¶n phÈm CNTT cßn h¹n chÕ
- ChÝnh s¸ch, ®Ò ¸n hç trî doanh nghiÖp øng dông CNTT cßn thiÕu
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
137
- ThiÕu Trung t©m cung cÊp d÷ liÖu, th«ng tin kinh tÕ chuyªn ngμnh
- ThiÕu kÝch thÝch (ch−¬ng tr×nh ph¸t triÓn TM§T, tin häc ho¸ QLNN)
- Chi phÝ x©y dùng phÇn mÒm qu¸ cao
- Nh©n viªn ng¹i kh«ng muèn thay ®æi thãi quen lμm viÖc cò
- Quy tr×nh s¶n xuÊt kinh doanh ë nhiÒu ®¬n vÞ thμnh viªn kh«ng chuÈn
- Ch−a coi th«ng tin lμ 1 yÕu tè kh«ng thÓ thiÕu trong ®iÒu hμnh s¶n xuÊt kinh doanh
- DÞch vô kh«ng tèt cña c¸c nhμ cung cÊp dÞch vô CNTT trong, ngoμi n−íc
2. C¸c trë ng¹i chÝnh khi thùc hiÖn øng dông
(ghi theo thø tù quan träng: 1 - quan träng nhÊt, 9 - Ýt quan träng nhÊt)
Tr×nh ®é chung vÒ tin häc cña c¸n bé cßn thÊp
ThiÕu c¸c chuyªn gia tin häc
C¸c phÇn mÒm ®· x©y dùng kh«ng phï hîp
KÕ ho¹ch kh«ng phï hîp
Tr×nh ®é tæ chøc qu¶n lý cßn h¹n chÕ
Kh«ng ®ñ kinh phÝ
ThiÕu sù quan t©m cña l·nh ®¹o
Kh«ng ®−îc sù ñng hé hîp t¸c cña c¸n bé c«ng chøc trong c¬ quan
Kh¸c (nÕu cã ghi râ)
3. C¸c kiÕn nghÞ cña doanh nghiÖp vÒ øng dông CNTT t¹i doanh nghiÖp
Ngμy th¸ng n¨m...
Thñ tr−ëng ®¬n vÞ
3.1.3.3. Ph©n tÝch tμi liÖu
C¸c tµi liÖu ®· cã lµ nguån d÷ liÖu vµ th«ng tin dåi dµo vµ ®· ®−îc tÝch luü qua nhiÒu n¨m. Chóng cã thÓ tån t¹i d−íi d¹ng cøng (sæ, s¸ch, tËp t− liÖu) hay mÒm (c¸c tÖp d÷ liÖu). Chóng ta cè g¾ng cã ®Çy ®ñ danh s¸ch cña chóng. Sau ®ã ph©n lo¹i d÷ liÖu trong tõng tµi liÖu thµnh c¸c d÷ liÖu c¬ b¶n hay c¸c d÷ liÖu cã cÊu tróc, xem xÐt, ph¸t hiÖn c¸c d÷ liÖu trïng lÆp, thiÕu nhÊt qu¸n trong l−u tr÷, tªn gäi. NÕu tæ chøc ®ã ®· cã CSDL th× cè g¾ng t×m hiÓu nguyªn do t¹i sao hä kh«ng muèn dïng CSDL nµy n÷a.
VÝ dô: vÒ Hå s¬ d÷ liÖu Bµi to¸n qu¶n lý kinh doanh:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
138
B¶ng 3.5. HÖ thèng b¶ng Vμo
1. §¬n ®Æt MUA HμNG
Sè:................. Ngμy giao hμng:........
Ngμy:............... Ngμy thanh to¸n:.......
Tªn nhμ cung cÊp:..... Tæng sè tiÒn:..........®ång
§Þa chØ nhμ cung cÊp:.....
§iÖn tho¹i nhμ cung cÊp:...
E-mail nhμ cung cÊp:......
Sè thø tù Tªn hμng §¬n vÞ tÝnh Sè l−îng §¬n gi¸ Thμnh tiÒn
Tæng
2. PhiÕu nhËp
Sè:................................................................................................
Theo sè ®¬n ®Æt mua hμng:........... .............................................
Tªn nhμ cung cÊp:…………………………….......................................
Ngμy:............................................................................................
Tæng tiÒn nhËp:.............................................................................®ång
Sè thø tù Tªn hμng §¬n vÞ tÝnh Sè l−îng §¬n gi¸ Thμnh tiÒn
Tæng
3. PhiÕu chi
Sè:............................................
Theo sè phiÕu nhËp:...............................
Tªn nhμ cung cÊp:………………………………………… Ngμy:.........................................
Tæng tiÒn chi:....................................®ång
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
139
4. ®¬n ®Æt hμng
Sè:............ Ngμy:..............
Tªn kh¸ch:...... Ngμy ®Ò nghÞ giao:
Sè nhμ:. Ngμy thanh to¸n:........
§Þa chØ:......... Tæng sè tiÒn:...........®ång
§iÖn tho¹i:.....
E-mail:.........
STT Tªn hμng §¬n vÞ tÝnh Sè l−îng §¬n gi¸ Thμnh tiÒn
Tæng
5. PhiÕu giao Sè:...............................
Theo sè ®¬n ®Æt hμng.................
Tªn kh¸ch:…………………………………
Ngμy:..............................
Tæng tiÒn giao:...................... ®ång
STT Tªn hμng §¬n vÞ tÝnh Sè l−îng §¬n gi¸ Thμnh tiÒn
Tæng
6. PhiÕu thu (ph¸t cho kh¸ch hμng)
Sè:..................................
Theo sè phiÕu giao:....................
Tªn kh¸ch:…………………………………...
Ngμy:................................
Tæng tiÒn thu:.........................®ång
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
140
B¶ng 3.6. HÖ thèng b¶ng Ra
7. B¸o c¸o hμng giao
Sè: Trang:
Ngμy:
STT M· kh¸ch
M· hμng
§¬n vÞ tÝnh §¬n gi¸ Sè l−îng Thμnh tiÒn
Tæng
8. B¸o c¸o hμng nhËp
Sè b¸o c¸o: Trang:
Ngμy:
STT M· nhμ cung cÊp
M· hμng
§¬n vÞ tÝnh §¬n gi¸ Sè l−îng Thμnh tiÒn
Tæng
9. B¸o c¸o hμng b¸n ch¹y
Sè b¸o c¸o: Ngμy: Trang:
STT M· hμng §¬n vÞ tÝnh §¬n gi¸ Sè l−îng Thμnh tiÒn
Tæng
10. B¸o c¸o hμng b¸n chËm
Sè b¸o c¸o: Ngμy: Trang:
STT M· hμng §¬n vÞ tÝnh §¬n gi¸ Sè l−îng Thμnh tiÒn
Tæng
11. B¸o c¸o kh¸ch hμng th©n thiÕt
Sè b¸o c¸o: Trang:
STT M· kh¸ch M· hμng §¬n vÞ tÝnh §¬n gi¸ Sè l−îng Thμnh tiÒn
Tæng
Ngμy....th¸ng...n¨m.....
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
141
12. B¸o c¸o nî cña kh¸ch
Sè b¸o c¸o: Trang:
STT M· kh¸ch
Tªn §Þa chØ Sè ®iÖn tho¹i
E-mail H¹n thanh to¸n TiÒn
Tæng
Ngμy....th¸ng...n¨m...
13. B¸o c¸o nî nhμ cung cÊp
Sè b¸o c¸o: Trang:
STT M· nhμ cung cÊp
Tªn §Þa chØ §iÖn tho¹i
E-mail H¹n thanh to¸n
TiÒn
Tæng
Ngμy....th¸ng.... n¨m....
14. B¸o c¸o Danh s¸ch hμng vμ l−îng tån
Ngμy kiÓm kª:
STT M· hμng Tªn hμng §¬n vÞ tÝnh
Gi¸ hiÖn t¹i
Sè l−îng Gi¸ trÞ hμng tån
Tæng
Tªn ng−êi b¸o c¸o Ngμy....th¸ng.... n¨m...
15. B¸o c¸o vÒ nhμ cung cÊp chñ yÕu
STT M· nhμ cung cÊp
Tªn NCC
DS mÆt hμng chÝnh cung cÊp
Ngμy b¾t ®Çu quan hÖ
VIP §Þa chØ liªn hÖ
Ghi chó
Tªn ng−êi b¸o c¸o Ngμy....th¸ng..... n¨m….
16. Danh s¸ch kh¸ch hμng tiÒm n¨ng
STT M· kh¸ch Tªn kh¸ch
§Þa chØ VIP DS mÆt hμng mua chñ yÕu
Tªn ng−êi
®¹i diÖn
§Þa chØ ng−êi
®¹i diÖn
Ngμy....th¸ng..... n¨m ….
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
142
3.2. PH¢N TÝCH D÷ LIÖU Vμ x©y dùng m« h×nh kh¸i niÖm d÷ liÖu
ý nghÜa cña m« h×nh kh¸i niÖm d÷ liÖu:
M« h×nh kh¸i niÖm d÷ liÖu:
- Lµ c«ng cô kÕt nèi gi÷a ng−êi PT_TK vµ NSD
- Lµ m« h×nh d÷ liÖu møc kh¸i niÖm, m« t¶ cÊu tróc vµ c¸c rµng buéc cña d÷ liÖu trong CSDL
- §éc lËp víi hÖ qu¶n trÞ d÷ liÖu vµ m« h×nh d÷ liÖu sÏ ®−îc sö dông ®Ó cµi ®Æt.
- §−îc biÓu diÔn d¹ng s¬ ®å víi 3 thµnh phÇn chÝnh lµ kiÓu thùc thÓ, thuéc tÝnh, liªn kÕt (mèi quan hÖ)
Qu¸ tr×nh x©y dùng m« h×nh kh¸i niÖm d÷ liÖu cã thÓ ®−îc chia lµm c¸c giai ®o¹n sau ®©y:
1. Kh¶o s¸t thùc tÕ
- Thu thËp th«ng tin
- Tr×nh bµy cã hÖ thèng d−íi d¹ng s¬ ®å lu©n chuyÓn c¸c tµi liÖu
2. ThiÕt lËp m« h×nh d÷ liÖu
- KiÓm kª c¸c d÷ liÖu
- X¸c ®Þnh c¸c phô thuéc hµm
- X©y dùng m« h×nh kh¸i niÖm d÷ liÖu
3. KiÓm so¸t vμ chuÈn hãa m« h×nh
3.2.1. Kh¶o s¸t thùc tÕ
Môc tiªu cña giai ®o¹n nµy bao gåm qu¸ tr×nh quan s¸t, pháng vÊn, t×m hiÓu vµ ph©n tÝch, m« t¶ ®Çy ®ñ hiÖn tr¹ng, m« t¶ c¸c bµi to¸n nghiÖp vô vµ c¸c nhu cÇu cña ng−êi sö dông mµ hÖ th«ng tin khi thiÕt kÕ ®−îc ®ßi hái. Do ®ã, nã kh«ng chØ giíi h¹n trong viÖc x©y dùng m« h×nh d÷ liÖu mµ cßn lµ c¬ së ph¸t triÓn nh÷ng th«ng tin cÇn thiÕt cho viÖc x©y dùng m« h×nh chøc n¨ng.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
143
§Ó ®¹t môc tiªu nµy cÇn quan s¸t ®−îc d−íi mäi d¹ng: TÜnh (d÷ liÖu s¬ cÊp, tµi liÖu, b¸o c¸o,...), ®éng (sù lu©n chuyÓn c¸c th«ng tin, tµi liÖu) vµ c¸c nguyªn nh©n biÕn ®æi cña chóng (thñ tôc, quy t¾c qu¶n lý, c«ng thøc tÝnh to¸n,..).
C¸c th«ng tin thu thËp ph¶i ®Çy ®ñ vµ chÝnh x¸c, v× chóng lµ nÒn t¶ng cña hÖ th«ng tin t−¬ng lai. Nh−ng còng kh«ng nªn ®i qu¸ s©u vµo chi tiÕt, ph¶i biÕt g¹t bá nh÷ng th«ng tin kh«ng cÇn thiÕt ®Ó kh«ng lµm chÖch h−íng vµ g©y khã kh¨n, nÆng nÒ cho viÖc ph©n tÝch vµ thiÕt kÕ.
C«ng viÖc kh¶o s¸t kh«ng chØ tËp trung hoµn toµn vµo giai ®o¹n ®Çu cña qu¸ tr×nh ph©n tÝch - thiÕt kÕ, mµ cã thÓ tr¶i dµi trong suèt qu¸ tr×nh ®Ó thu thËp thªm th«ng tin, ®µo s©u vÊn ®Ò hay kiÓm chøng mét gi¶ thiÕt cïng víi ng−êi sö dông.
Khi hÖ th«ng tin cÇn x©y dùng qu¸ lín vµ phøc t¹p, ta nªn chia nhá nã ra thµnh nhiÒu tiÓu hÖ. Mçi tiÓu hÖ cã thÓ ®−îc kh¶o s¸t, ph©n tÝch hay thiÕt kÕ ®éc lËp víi nhau, tr−íc khi ®−îc tæng hîp l¹i. Cã khi ng−êi ta ®i ®Õn ph¸t triÓn c¶ c¸c tiÓu hÖ nµy, nh÷ng phÇn mÒm ®éc lËp nh−ng cã thÓ trao ®æi th«ng tin víi nhau.
§Ó chia mét th«ng tin thµnh nhiÒu tiÓu hÖ, ng−êi ta th−êng sö dông mét trong hai ph−¬ng ph¸p:
+ Ph−¬ng ph¸p “giÕng”: C¸c tiÓu hÖ ®éc lËp ®−îc ®Þnh ra, dùa trªn c¬ së bµi to¸n, chøc n¨ng nghiÖp vô chñ yÕu cña tæ chøc. §«i khi dùa trªn mét kÕ ho¹ch thùc hiÖn theo thø tù −u tiªn hay ®Ó tháa m·n nh÷ng yªu cÇu vÒ thêi gian.
+ Ph−¬ng ph¸p “ao”: Mét cuéc kh¶o s¸t tæng qu¸t s¬ khëi sÏ cho phÐp nhËn diÖn nh÷ng tiÓu hÖ t−¬ng ®èi ®éc lËp víi nhau.
3.2.1.1. Thu thËp th«ng tin
C«ng viÖc nµy chñ yÕu lµ tham kh¶o tµi liÖu s−u tËp ®−îc vµ tiÕp xóc víi nh÷ng ng−êi sö dông, ®ßi hái nh÷ng kh¶ n¨ng nh©n sinh nh−: Kinh nghiÖm, ãc quan s¸t, phª ph¸n, giao tiÕp vµ øng biÕn,.... C¸c ph−¬ng ph¸p gß bã, cøng nh¾c sÏ ch¼ng ®em l¹i kÕt qu¶ mong muèn.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
144
Do ®ã phÇn nµy chØ liÖt kª vµ ph©n lo¹i th«ng tin cã thÓ gÆp ®−îc trong qu¸ tr×nh kh¶o s¸t ®Ó trî gióp trÝ nhí.
Mét s¬ ®å ph©n lo¹i th«ng tin sÏ ®−îc tr×nh bµy ë trang sau.
Víi mçi lo¹i th«ng tin nªu lªn trong s¬ ®å nµy, nÕu cÇn ta cã thÓ t×m hiÓu thªm vÒ mét sè khÝa c¹nh kh¸c nh−: Sè l−îng, chu kú, ®é chÝnh x¸c cÇn cã, ng−êi chÞu tr¸ch nhiÖm,...
Trong qu¸ tr×nh kh¶o s¸t cÇn l−u ý c¸c ®iÓm sau:
+ NÕu cã thÓ, c¸c cuéc pháng vÊn ph¶i ®−îc tiÕn hµnh tuÇn tù theo cÊu tróc ph©n cÊp cña tæ chøc theo tõng bé phËn, lÜnh vùc, chøc n¨ng hay ®i tõ cÊp l·nh ®¹o qua cÊp qu¶n lý ®Õn ng−êi thõa hµnh.
+ Ph¶i lu«n nhí sao chôp mÉu c¸c hå s¬, tµi liÖu ®Ó cã ®−îc cÊu tróc chÝnh x¸c c¸c th«ng tin lµm c¨n b¶n cho viÖc x©y dùng m« h×nh d÷ liÖu sau nµy.
+ CÇn thiÕt nhÊt lµ lu«n ph©n biÖt nh÷ng th«ng tin nãi vÒ hÖ th«ng tin ®ang x©y dùng víi nh÷ng th«ng tin thuéc vÒ hÖ nµy.
Thông tin về môi trường làm việc, không có liên quan trực tiếp đến hệ thống thông tin
Được nhận thức và phát biểu rõ ràng: ra chỉ cần ghi nhận
Có nhận thức nhưng không phát biểu: tìm cách phát hiện và đưa đến phát biểu hoặc công nhận
Chưa nhận thức được: Nhận dạng từ quan sát, phê phán và tìm cách đưa đến công nhận
Thông tin về hệ thống tương lai (nhu cầu/mong muốn)
Thông tin về hệ thống hiện tại
Thông tin hữu ích có liên quan trực tiếp đến hệ thống thông tin
Khía cạnh tĩnh
Khía cạnh động
Khía cạnh biến đổi
Dữ liệu sơ cấp
Tài liệu (tập hợp những dữ liệu sơ cấp)Đơn vị, vị trí làm việc
Trong không gian: đường luân chuyển của thông tin, tài liệu
Trong thời gian: chu kỳ và thời lượng
Thủ tục hành chính, quy tắc quản lý, công thức tính toán, điều kiện khởi động
Tập hợp các thông tin thu thập được
H×nh 3.3. S¬ ®å ph©n lo¹i c¸c th«ng tin
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
145
3.2.1.2. Tr×nh bμy hÖ thèng s¬ ®å lu©n chuyÓn tμi liÖu
C¸c th«ng tin thu thËp, sau khi ®−îc tæng hîp vµ cñng cè, sÏ ®−îc tr×nh bµy trong tµi liÖu ®Æc t¶ tæng thÓ d−íi hai d¹ng:
- M« t¶ c¸c bµi to¸n nghiÖp vô, c¸c chøc n¨ng vµ tæ chøc cña c¬ quan, c¸c nhu cÇu vµ mong muèn cña ng−êi sö dông mét c¸ch ®Çy ®ñ, nh−ng ng¾n gän vµ m¹ch l¹c, b»ng mét ng«n ng÷ th«ng th−êng, gÇn gòi víi mäi ng−êi.
- Minh häa vµ hÖ thèng hãa phÇn tr×nh bµy trªn b»ng mét ng«n ng÷ h×nh thøc, th−êng lµ d−íi d¹ng phiÕu m« t¶, danh s¸ch vµ ®å häa.
Cã nhiÒu ph−¬ng ph¸p tr×nh bµy th«ng dông kh¸c nhau. Ng−êi ta th−êng dïng s¬ ®å lu©n chuyÓn tµi liÖu v× mét sè −u ®iÓm cña nã nh− sau:
- §©y lµ mét d¹ng s¬ ®å tæng hîp th«ng tin vÒ tµi liÖu còng nh− vÒ chøc n¨ng.
- Nã ®−îc tr×nh bµy ®óng theo thø tù thêi gian, c«ng viÖc cña tõng ®¬n vÞ, cã thÓ dïng lµm “kim chØ nam” trong lóc pháng vÊn ng−êi sö dông.
- S¬ ®å nµy dÔ hiÓu, t−¬ng ®èi gÇn víi ng−êi sö dông, do ®ã cã thÓ cïng hä lµm chung c¸c c«ng t¸c x©y dùng còng nh− kiÓm chøng.
S¬ ®å nµy th−êng ®−îc tr×nh bµy kÌm theo mét sè tµi liÖu kh¸c nh−:
- Danh s¸ch c¸c ®¬n vÞ hay vÞ trÝ lµm viÖc: m· sè vµ ®Þnh nghÜa
- PhiÕu m« t¶ c¸c ®¬n vÞ hay vÞ trÝ lµm viÖc: ®Þnh nghÜa, c¸c tµi liÖu vµo vµ ra, c¸c chøc n¨ng xö lý.
- Danh s¸ch c¸c tµi liÖu (in trªn giÊy hay mµn h×nh, tÖp in, ®iÖn tho¹i,...): m· sè vµ ®Þnh nghÜa.
- Danh s¸ch c¸c chøc n¨ng xö lý: m· sè vµ ®Þnh nghÜa.
C¸ch tr×nh bµy c¸c lo¹i s¬ ®å vµ tµi liÖu nµy kh«ng ®ßi hái quy chuÈn chÆt chÏ, vµ còng kh¸ ®¬n gi¶n ®Ó kh«ng cÇn ph¶i gi¶i thÝch dµi dßng.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
146
3.2.2. ThiÕt lËp m« h×nh d÷ liÖu
ThiÕt lËp mét m« h×nh kh¸i niÖm d÷ liÖu lµ liÖt kª vµ ®Þnh nghÜa chÝnh x¸c nh÷ng d÷ liÖu cã liªn quan ®Õn c¸c chøc n¨ng, ho¹t ®éng cña tæ chøc, sau ®ã nhãm chóng l¹i thµnh thùc thÓ vµ quan hÖ gi÷a c¸c thùc thÓ råi dïng mét sè qui −íc ®· ®Þnh tr−íc ®Ó tr×nh bµy d−íi d¹ng m« h×nh kh¸i niÖm.
3.2.2.1. X©y dùng m« h×nh kh¸i niÖm d÷ liÖu b»ng ph−¬ng ph¸p Blanpre
Ph−¬ng ph¸p Blanpre lµ ph−¬ng ph¸p cã ®é tin cËy cao. C¬ së cña ph−¬ng ph¸p nµy lµ ®Æc t¶ rµng buéc toµn vÑn b»ng phô thuéc hµm. C¸c b−íc thùc hiÖn ph−¬ng ph¸p Blanpre bao gåm c¸c c«ng viÖc sau ®©y.
3.2.2.1.1. KiÓm kª d÷ liÖu
Danh s¸ch nµy chñ yÕu ®−îc rót tØa tõ nh÷ng th«ng tin thu thËp ®−îc trong giai ®o¹n kh¶o s¸t ban ®Çu: tµi liÖu thu thËp ®−îc; nhu cÇu, gi¶i thÝch cña ng−êi sö dông. Danh s¸ch nµy sÏ lµm nÒn cho viÖc thiÕt lËp mét tõ ®iÓn d÷ liÖu vÒ sau.
Cã thÓ ph©n biÖt hai lo¹i d÷ liÖu:
- Lo¹i d÷ liÖu xuÊt hiÖn trùc tiÕp trªn c¸c tµi liÖu, mµn h×nh, tÖp in thu thËp ®−îc.
- Lo¹i d÷ liÖu kh«ng hÒ xuÊt hiÖn nh−ng cÇn thiÕt ®Ó chøa c¸c kÕt qu¶ trung gian, c¸c th«ng tin ®ang chê ®−îc xö lý, hay ®Ó tÝnh to¸n ra c¸c d÷ liÖu thuéc lo¹i thø nhÊt.
Mét c«ng cô th«ng dông, h÷u Ých cho giai ®o¹n nµy lµ “Ma trËn cña Blanpre”, dïng ®Ó ph©n tÝch c¸c tµi liÖu thu thËp vµ liÖt kª ra danh s¸ch c¸c d÷ liÖu. Trong ma trËn nµy, ta tr×nh bµy mçi cét lµ mét tµi liÖu vµ mçi hµng lµ mét lo¹i d÷ liÖu. T¹i mçi « giao ®iÓm, ta ®¸nh dÊu lo¹i d÷ liÖu cã xuÊt hiÖn trªn tµi liÖu. Nªn dïng hai lo¹i dÊu hiÖu kh¸c nhau ®Ó ph©n biÖt lo¹i d÷ liÖu trùc tiÕp (sè 1 ch¼ng h¹n) víi lo¹i ®−îc tÝnh to¸n thµnh (sè 2 ch¼ng h¹n).
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
147
Khi x©y dùng ma trËn nµy, ta nªn b¾t ®Çu b»ng nh÷ng tµi liÖu c¬ b¶n, quan träng nhÊt vµ chØ cÇn tr×nh bµy mét lo¹i tµi liÖu khi nã cho phÐp nhËn d¹ng Ýt nhÊt mét lo¹i d÷ liÖu míi.
VÝ dô:
Hai chøng tõ sau lµ cÇn thiÕt cho qu¶n lý ho¹t ®éng kinh doanh:
a. §¬n §Æt hμng Sè: M· kh¸ch hμng:
Ngμy: Tªn kh¸ch hμng:
§Þa chØ:
STT M· hμng Tªn hμng §¬n vÞ Sè l−îng
b. phiÕu giao hμng Sè: Ngμy:
M· kh¸ch hμng: N¬i giao:
STT M· hμng §¬n gi¸ Sè l−îng Thμnh tiÒn
Gi¶ thiÕt r»ng ®¬n gi¸ chØ phô thuéc vμo hμng TONGTIEN
B¶ng 3.7. Ma trËn Blanpre
Lo¹i d÷ liÖu §¬n ®Æt hμng PhiÕu giao hμng
1. Sè ®¬n 1
2. Ngμy ®Æt 1
3. M· kh¸ch 1 1
4. Tªn kh¸ch 1
5. §Þa chØ 1
6. STT 2 2
7. M· hμng 1 1
8. Tªn hμng 1
9. §¬n vÞ 1
10. SL ®Æt 1
11. Sè phiÕu 1
12. Ngμy giao 1
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
148
13. N¬i giao 1
14. §¬n gi¸ giao (Gi¶ thiÕt: chØ phô thuéc vμo hμng)
1
15. SL giao 1
16. Thμnh tiÒn 2
17. Tæng tiÒn 2
Ghi chó: 1. D÷ liÖu trùc tiÕp
2. D÷ liÖu gi¸n tiÕp/trung gian (tÝnh ®−îc th«ng qua c¸c d÷ liÖu kh¸c)
Tõ danh s¸ch nµy, ng−êi ta cÇn kiÓm tra b»ng mét c«ng t¸c thanh läc nh−:
- Bá bít c¸c d÷ liÖu ®ång nghÜa nh−ng kh¸c tªn, chØ gi÷ l¹i mét
VÝ dô:
M· sè s¶n phÈm = Danh môc ®Æt hµng
- Ph©n biÖt c¸c d÷ liÖu cïng tªn nh−ng kh¸c nghÜa vµ t¸ch thµnh nhiÒu lo¹i d÷ liÖu kh¸c nhau.
VÝ dô:
- Gi¸ b¸n cña mét cöa hiÖu kh¸c víi gi¸ b¸n cña mét c«ng ty s¶n xuÊt.
- NhËp chung c¸c lo¹i d÷ liÖu lu«n xuÊt hiÖn ®ång thêi víi nhau trªn mäi lo¹i tµi liÖu thµnh mét d÷ liÖu s¬ cÊp.
VÝ dô:
Sè nhµ vµ tªn ®−êng; ngµy, th¸ng vµ n¨m sinh.
- Lo¹i bá nh÷ng lo¹i d÷ liÖu cã thÓ x¸c ®Þnh ®−îc mét c¸ch duy nhÊt tõ c¸c d÷ liÖu kh¸c, hoÆc b»ng c«ng thøc tÝnh to¸n, do c¸c quy luËt cña tæ chøc.
VÝ dô:
- Tæng gi¸ ®¬n ®Æt hµng = Sè l−îng gi¸* ®¬n gi¸
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
149
- Gi¶ sö do quy luËt tæ chøc, mäi ®Ò nghÞ mua hµng ph¶i ®−îc gi¶i quyÕt néi trong ngµy, ta suy ra: Ngµy ®Ò nghÞ mua hµng = Ngµy ®Æt hµng.
Sau khi chÝnh x¸c ho¸ d÷ liÖu (lo¹i ®ång danh, ®ång nghÜa, thªm bít thuéc tÝnh, lo¹i bá d÷ liÖu gi¸n tiÕp,…), ta cã:
B¶ng 3.8. Ma trËn Blanpre rót gän
Lo¹i d÷ liÖu §¬n ®Æt hμng PhiÕu giao
Sè ®¬n 1
Ngμy ®Æt 1
M· kh¸ch 1 1
Tªn kh¸ch 1
§Þa chØ 1
M· hμng 1 1
Tªn hμng 1
§¬n vÞ 1
SL ®Æt 1
Sè phiÕu 1
Ngμy giao 1
N¬i giao 1
§¬n gi¸ giao 1
SL giao 1
3.2.2.1.2. X¸c ®Þnh c¸c phô thuéc hμm gi÷a c¸c d÷ liÖu
Tõ danh s¸ch c¸c lo¹i d÷ liÖu ®· thanh läc cña hÖ thèng th«ng tin ®¹t ®−îc qua giai ®o¹n trªn, ta ph¶i x¸c ®Þnh tÊt c¶ c¸c phô thuéc hµm hiÖn h÷u gi÷a chóng.
Cô thÓ, ta ph¶i tù ®Æt c©u hái:
Mçi gi¸ trÞ cña mét lo¹i d÷ liÖu A cã t−¬ng øng víi mét gi¸ trÞ duy nhÊt cña lo¹i d÷ liÖu B kh«ng?
NÕu “cã” th× B phô thuéc hµm vµo A: A→B
Ngoµi c¸c phô thuéc hµm cã vÕ tr¸i A lµ mét lo¹i d÷ liÖu s¬ cÊp (gäi lµ phô thuéc hµm s¬ cÊp), t−¬ng ®èi dÔ x¸c ®Þnh, ta cßn ph¶i nhËn
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
150
diÖn c¶ c¸c hµm trong ®ã vÕ tr¸i A lµ mét tËp hîp cña nhiÒu lo¹i d÷ liÖu (gäi lµ phô thuéc hµm ®a phÇn).
Ta tiÕp tôc ®Æt c©u hái:
CÇn Ên ®Þnh gi¸ trÞ cña nh÷ng lo¹i d÷ liÖu nμo ®Ó cã thÓ suy ra mét gi¸ trÞ duy nhÊt cña lo¹i d÷ liÖu B?
C¸c hµm phô thuéc sÏ ®−îc tr×nh bµy d−íi d¹ng mét b¶ng c¸c phô thuéc hµm nh− sau:
B¶ng 3.9. Ma trËn phô thuéc hμm Blanpre
Lo¹i d÷ liÖu Phô thuéc hμm
s¬ cÊp
Phô thuéc hμm
®a phÇn
Sè ®¬n
Ngμy ®Æt NhËn
M· kh¸ch Cã
Tªn kh¸ch
§Þa chØ
M· hμng
Tªn hμng
§¬n vÞ
SL ®Æt DATCACLOAI
Sè phiÕu
Ngμy giao
N¬i giao
§¬n gi¸ giao
SL giao GIAOCAC LOAI
3.2.2.1.3. X©y dùng m« h×nh kh¸i niÖm d÷ liÖu
Giai ®o¹n nµy bao gåm 5 b−íc:
- X¸c ®Þnh tËp hîp c¸c khãa chÝnh
- NhËn diÖn c¸c thùc thÓ
- NhËn diÖn c¸c quan hÖ
- Ph©n bè hÕt c¸c thuéc tÝnh
- VÏ m« h×nh kh¸i niÖm d÷ liÖu
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
151
1. X¸c ®Þnh tËp hîp c¸c khãa chÝnh
TËp hîp K cña nh÷ng khãa chÝnh lµ tËp hîp tÊt c¶ nh÷ng lo¹i d÷ liÖu cã ®ãng vai trß nguån (thuéc vÕ tr¸i) trong Ýt nhÊt mét phô thuéc hµm.
Trong vÝ dô trªn, ta cã:
K = {Sè ®¬n, m· kh¸ch, m· hµng, sè phiÕu}
2. NhËn diÖn c¸c thùc thÓ
Mçi phÇn tö cña tËp hîp K sÏ lµ khãa chÝnh cña mét thùc thÓ.
Trong vÝ dô trªn, ta nhËn ra ®−îc 4 thùc thÓ:
§¬n hμng (Sè ®¬n,....)
Kh¸ch (M· kh¸ch,...)
Hμng (M· hμng,...)
PhiÕu giao (Sè phiÕu,.....)
3. NhËn diÖn c¸c quan hÖ
Cã hai tr−êng hîp:
A. NÕu gèc cña mét phô thuéc hμm bao gåm Ýt nhÊt 2 phÇn tö thuéc tËp hîp K th× nã t−¬ng øng víi mét quan hÖ N-N gi÷a c¸c thùc thÓ cã khãa chÝnh lμ c¸c phÇn tö nμy.
Trong vÝ dô trªn, ta nhËn ra ®−îc 2 quan hÖ:
§Æt c¸c lo¹i (sè l−îng ®Æt)
Giao c¸c lo¹i (sè l−îng giao)
B. Sù hiÖn h÷u cña mét phô thuéc hμm gi÷a hai phÇn tö cña tËp hîp K x¸c ®Þnh mét quan hÖ nhÞ nguyªn kiÓu 1-N gi÷a hai thùc thÓ cã khãa chÝnh lμ c¸c phÇn tö nμy.
Trong vÝ dô trªn, ta nhËn ra ®−îc 2 quan hÖ:
Cã
NhËn
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
152
4. Ph©n bæ c¸c thuéc tÝnh cßn l¹i
TÊt c¶ c¸c lo¹i d÷ liÖu kh«ng tËp hîp K ®Òu lµ nh÷ng thuéc tÝnh th«ng th−êng vµ cã thÓ ®−îc ph©n bæ mét c¸ch dÔ dµng vµo c¸c thùc thÓ hay quan hÖ, tïy theo c¸c hµm phô thuéc.
Ph©n bæ c¸c thuéc tÝnh cßn l¹i cho c¸c thùc thÓ ta thÊy võa hÕt:
§¬n hμng (Sè ®¬n, ngμy ®Æt)
Kh¸ch (M· kh¸ch, tªn kh¸ch, §/Ckh¸ch)
Hμng (M· hμng, Tªn hμng, M« t¶ hμng, §/Vhμng, §¬n gi¸)
PhiÕu giao (Sè phiÕu, ngμy giao, n¬i giao)
5. VÏ m« h×nh kh¸i niÖm d÷ liÖu
Tõ c¸c thùc thÓ vµ quan hÖ ®· nhËn diÖn, ta cã thÓ vÏ lªn mét m« h×nh kh¸i niÖm d÷ liÖu nh− sau:
H×nh 3.4. M« h×nh kh¸i niÖm d÷ liÖu bμi to¸n ®Æt vμ giao hμng
3.2.2.2. X©y dùng m« h×nh kh¸i niÖm d÷ liÖu b»ng ph−¬ng ph¸p m« h×nh
C¬ së cña ph−¬ng ph¸p nµy lµ c¸c quy t¾c qu¶n lý. C¸c b−íc thùc hiÖn cña ph−¬ng ph¸p m« h×nh bao gåm c¸c c«ng viÖc sau:
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
153
1. X¸c ®Þnh danh s¸ch c¸c thuéc tÝnh cÇn qu¶n lý
2. X¸c ®Þnh c¸c thùc thÓ
3. X¸c ®Þnh c¸c mèi quan hÖ gi÷a c¸c thùc thÓ
4. ThiÕt lËp m« h×nh kh¸i niÖm d÷ liÖu
VÝ dô:
Mét c¬ së b¸n hµng sö dông hai lo¹i chøng tõ sau ®Ó theo dâi ho¹t ®éng kinh doanh cña m×nh:
a. §¬n §Æt hμng
Sè ho¸ ®¬n: Ngμy ®Æt:
Ng−êi ®Æt hμng:
§Þa chØ:
STT Tªn hμng M« t¶ hμng §¬n vÞ tÝnh Sè l−îng (®Æt)
b. phiÕu giao hμng
Sè phiÕu: Ngμy giao:
Tªn kh¸ch hμng: N¬i giao hμng:
§Þa chØ:
STT Tªn hμng §¬n vÞ tÝnh §¬n gi¸ Sè l−îng (giao) Thμnh tiÒn
TONGTIEN:
CÇn thiÕt kÕ CSDL lo¹i quan hÖ (bao gåm c¸c file d÷ liÖu vµ s¬ ®å m« h×nh d÷ liÖu) tõ c¸c tµi liÖu trªn ®Ó qu¶n lý ho¹t ®éng b¸n hµng.
Gi¶ thiÕt: §¬n gi¸ giao kh«ng chØ phô thuéc vµo m· hµng (cã thÓ
phô thuéc vµo kh¸ch, sè l−îng, thêi gian)
Thñ tôc tiÕn hμnh:
1. LiÖt kª, chÝnh x¸c ho¸ th«ng tin
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
154
B¶ng 3.10. Danh s¸ch thuéc tÝnh cÇn qu¶n lý
Thùc thÓ -Thuéc tÝnh Ghi chó
®¬n ®Æt hμng DONHANG
Sè ®¬n hμng §Þnh danh
Ng−êi ®Æt hμng ⇒ tªn kh¸ch hμng Thay b»ng tªn kh¸ch hμng (0)
M· kh¸ch hμng Thªm míi (1)
§Þa chØ kh¸ch
Ngμy ®Æt hμng
* Sè thø tù (2) Kh«ng cÇn
* M· hμng Thªm míi, §Þnh danh (1)
* Tªn hμng
* M« t¶ hμng
* §¬n vÞ tÝnh
* Sè l−îng ®Æt
PhiÕu giao hμng Phieugiao
Sè phiÕu giao §Þnh danh
Tªn kh¸ch hμng ⇒ m· kh¸ch Thay b»ng m· kh¸ch (3)
N¬i giao hμng
Ngμy giao
* Sè thø tù (2) Kh«ng cÇn
* Tªn hμng -> m· hμng Thay b»ng m· hμng (3)
* §¬n vÞ tÝnh Kh«ng cÇn (4)
* §¬n gi¸ hμng giao
* Sè l−îng giao
* Thμnh tiÒn Kh«ng cÇn (5)
Tæng céng Kh«ng cÇn
Chó thÝch:
(0) “ng−êi ®Æt hμng” ë ®¬n ®Æt hµng vµ “Tªn kh¸ch hμng” ë
phiÕu giao hµng chØ cïng mét ®èi t−îng nªn ta thèng nhÊt
chän tªn gäi cho ®èi t−îng nµy lµ: “Tªn kh¸ch hμng”.
(1) “Tªn kh¸ch hμng” lµ thuéc tÝnh tªn gäi cña thùc thÓ “kh¸ch hµng”, kh«ng x¸c ®Þnh mçi kh¸ch hµng cô thÓ v× kh¸ch cã thÓ trïng tªn.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
155
V× vËy ph¶i thªm thuéc tÝnh “M· kh¸ch hμng” lµm thuéc tÝnh ®Þnh
danh cho “kh¸ch hµng”. Còng t−¬ng tù nh− vËy cÇn thªm “M·
hμng” lµm thuéc tÝnh ®Þnh danh cho “hµng”.
(2) Sè thø tù ®Ó ®¸nh sè mçi dßng ho¸ ®¬n chØ cã ý nghÜa trong ho¸ ®¬n nµy, kh«ng cho th«ng tin g× kh¸c, kh«ng cÇn l−u tr÷.
(3) Tªn kh¸ch hμng, tªn hμng lµ thuéc tÝnh tªn gäi ®· cã ë trªn, cÇn
thay nã b»ng thuéc tÝnh ®Þnh danh t−¬ng øng.
(4) C¸c thuéc tÝnh nµy lµ thuéc tÝnh m« t¶, ®· gÆp ë trªn nªn bá ®i.
(5) Thuéc tÝnh thμnh tiÒn = (®¬n gi¸ giao) x (sè l−îng giao). Hai thuéc
tÝnh nµy ®· ®−îc chän ë trªn nªn cã thÓ tÝnh ®−îc “thμnh tiÒn”, do
®ã kh«ng cÇn l−u gi÷ thuéc tÝnh nµy.
(*) ChØ c¸c thuéc tÝnh lÆp/®a trÞ (kh«ng s¬ cÊp).
2. X¸c ®Þnh c¸c thùc thÓ vμ c¸c thuéc tÝnh
Tõ hai hå s¬, chóng ta nhËn biÕt ®−îc c¸c thùc thÓ còng nh− c¸c thuéc tÝnh.
C¸c thùc thÓ:
- E1-kh¸ch
#m· kh¸ch
Tªn kh¸ch
§Þa chØ kh¸ch
- E2-hµng
#m· hμng
Tªn hμng
M« t¶ hμng
§¬n vÞ hμng
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
156
E4-®¬n ®Æt
#Sè ®¬n ®Æt
Ngμy ®Æt hμng
- E5-PHIÕU GIAO
# Sè phiÕu giao
N¬i giao
Ngμy giao
Chó ý:
- Thùc thÓ KHACH cã hai thuéc tÝnh: tªn kh¸ch, ®Þa chØ. Tªn kh¸ch kh«ng thÓ dïng lµm ®Þnh danh cho thùc thÓ nªn cÇn thªm ®Þnh
danh cho nã: m· kh¸ch
- Thùc thÓ HANG cã 3 thuéc tÝnh: tªn hμng, ®¬n vÞ, m« t¶ hμng.
Còng nh− thùc thÓ KHACH ta cÇn thªm ®Þnh danh: m· hμng cho thùc
thÓ nµy.
3. X¸c ®Þnh c¸c mèi quan hÖ vμ c¸c thuéc tÝnh cña quan hÖ
NhËn xÐt: cßn 3 thuéc tÝnh sau ch−a ghÐp vµo thùc thÓ nµo c¶ lµ:
§¬n gi¸ hµng giao, Sè l−îng hµng giao vµ Sè l−îng ®Æt.
Trong ®¬n ®Æt hµng, chóng ta x¸c ®Þnh ®−îc quy t¾c qu¶n lý sau:
- Trong mçi ®¬n ®Æt hμng ng−êi ta chØ viÕt cho mét kh¸ch. Ng−îc
l¹i mét kh¸ch cã thÓ cã nhiÒu ®¬n ®Æt hμng.
VËy ta cã ®Æc t¶:
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
157
- Trong mçi ®¬n ®Æt hμng ng−êi ta cã thÓ viÕt nhiÒu lo¹i hμng (mçi lo¹i hμng trªn mét dßng hμng). Ng−îc l¹i, mçi lo¹i hμng cã thÓ cã mÆt trong nhiÒu ®¬n ®Æt hμng.
VËy ta cã ®Æc t¶:
Trong phiÕu giao hµng, chóng ta còng x¸c ®Þnh ®−îc quy t¾c qu¶n lý sau:
- Trong mçi phiÕu giao hμng ng−êi ta chØ viÕt cho mét kh¸ch. Ng−îc l¹i mét kh¸ch cã thÓ cã nhiÒu phiÕu giao hμng.
VËy ta cã ®Æc t¶:
- Trong mçi phiÕu giao hμng ng−êi ta cã thÓ viÕt nhiÒu lo¹i hμng (mçi lo¹i hμng trªn mét dßng hμng). Ng−îc l¹i, mçi lo¹i hμng cã thÓ cã mÆt trong nhiÒu phiÕu giao hμng.
VËy ta cã ®Æc t¶:
4. VÏ m« h×nh kh¸i niÖm d÷ liÖu
GhÐp nèi tÊt c¶ 4 ®Æc t¶ trªn, chóng ta cã ®−îc m« h×nh kh¸i niÖm d÷ liÖu cho bµi to¸n:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
158
H×nh 3.5. M« h×nh kh¸i niÖm d÷ liÖu
3.2.2.3. X©y dùng m« h×nh kh¸i niÖm d÷ liÖu b»ng ph−¬ng ph¸p trùc gi¸c
Ph−¬ng ph¸p ph©n tÝch hÖ thèng nªu trªn lµ mét c«ng cô h÷u hiÖu vµ chuÈn x¸c ®Ó x©y dùng phÇn lín c¸c m« h×nh d÷ liÖu. Nh−ng nÕu ¸p dông hoµn toµn trong mét hÖ th«ng tin cì lín sÏ ®ßi hái nhiÒu thêi gian vµ c«ng søc. Trong thùc tÕ, c¸c thiÕt kÕ viªn chuyªn nghiÖp - sau khi ®· nhËn thøc ®−îc vÊn ®Ò kh¶o s¸t - th−êng chän c¸ch x©y dùng trùc tiÕp mét m« h×nh s¬ khëi råi ®i th¼ng vµo giai ®o¹n sau ®Ó kiÓm so¸t, bæ tóc vµ chuÈn hãa m« h×nh.
Ph−¬ng ph¸p trùc gi¸c nµy cã −u ®iÓm lµ Ýt tèn thêi gian vµ ®«i khi t¹o ra m« h×nh ®¬n gi¶n vµ thùc tÕ h¬n. Nh−ng ng−îc l¹i, nã còng chøa nhiÒu rñi ro h¬n.
VÝ dô 1: Cho phiÕu nhËp kho cã d¹ng:
PhiÕu nhËp kho (Theo ®¬n ®Æt hμng sè:..............)
Sè PN: Ngμy nhËp:
M· NhμcungcÊp: M· kho:
Tªn NCC: §Þa chØ kho:
§Þa chØ NCC:
STT Tªn vËt liÖu M· vËt liÖu §¬n vÞ tÝnh Sè l−îng N¬i s¶n xuÊt
Thñ kho
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
159
Khi nghiªn cøu PHIEUNHAPKHO chóng ta cã nhËn xÐt nã biÓu hiÖn mèi quan hÖ cña 4 thùc thÓ NHACC, KHO, VATLIEU vµ THUKHO, v× vËy chóng ta x¸c nhËn nã nh− mét mèi quan hÖ.
Khi x¸c ®Þnh mèi quan hÖ NHAP vµ c¸c thuéc tÝnh cña nã, chóng ta ®Æt c¸c c©u hái khi nh×n vµo phiÕu nhËp:
B¶ng 3.11. B¶ng ph©n tÝch quan hÖ NHAP
Tr¶ lêi C©u hái cho ®éng tõ “nhËp” Thùc thÓ Thuéc tÝnh
Ai nhËp? THUKHO
NhËp c¸i g×? VATLIEU
Tõ Ai? NHACUNGCAP
ë ®©u? KHO
Lý do nhËp §¬n ®Æt (theo ®¬n ®Æt sè)
B»ng c¸ch nμo? PhiÕu nhËp (Sè PN)
Khi nμo? Ngμy nhËp
Bao nhiªu? Sè l−îng nhËp
Nguån gèc vËt liÖu? N¬i s¶n xuÊt
Ta cã ®Æc t¶ mèi quan hÖ nµy nh− sau: THUKHO nhËn VATLIEU
tõ NHACUNGCAP t¹i KHO:
H×nh 3.6. Mèi quan hÖ bËc 4 dùa trªn PHIEUNHAPKHO
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
160
Gi¶ sö r»ng: mçi kho cã thÓ cã nhiÒu thñ kho, nh−ng mçi thñ kho chØ lµm viÖc trong 1 kho. Nh− vËy gi÷a KHO vµ THU KHO cã mèi quan hÖ 1-N. V× vËy, chóng ta chÝnh x¸c ho¸ quan hÖ nµy b»ng c¸ch t¸ch khái nã mèi quan hÖ së h÷u:
H×nh 3.7. §Æc t¶ mèi quan hÖ
§Æc t¶ nµy còng chÝnh lµ m« h×nh kh¸i niÖm d÷ liÖu cña bµi to¸n:
H×nh 3.8. M« h×nh kh¸i niÖm d÷ liÖu
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
161
VÝ dô 2: Chóng ta sö dông l¹i vÝ dô trong ph−¬ng ph¸p m« h×nh vµ còng thùc hiÖn lÇn l−ît theo c¸c b−íc sau:
a. LiÖt kª, chÝnh x¸c ho¸ th«ng tin: (gièng nh− ph−¬ng ph¸p m« h×nh)
b. X¸c ®Þnh c¸c thùc thÓ vμ c¸c thuéc tÝnh
Tõ hai hå s¬, qua c¸c tªn gäi (tªn kh¸ch hµng, ng−êi ®Æt hµng, tªn hµng) ta nhËn biÕt ®−îc c¸c thùc thÓ còng nh− lµ c¸c thuéc tÝnh lµ:
- C¸c thùc thÓ: kh¸ch, hµng
- C¸c thuéc tÝnh trÝch tõ c¸c hå s¬ trªn theo thø tù sau khi ®· ch¾t läc (nh− cét ®Çu trong b¶ng trªn sau khi ®· lo¹i ®i nh÷ng thuéc tÝnh lÆp l¹i) lµ:
Sè ®¬n ®Æt
Tªn kh¸ch KHACH (+m· kh¸ch)
§Þa chØ kh¸ch
Ngμy ®Æt hμng
* Tªn hμng HANG (+m· hμng)
*M« t¶ hμng
*§¬n vÞ hμng
*Sè l−îng ®Æt
Sè phiÕu giao
N¬i giao
Ngμy giao
*§¬n gi¸ hμng giao
*Sè l−îng hμng giao
Tæng tiÒn cña phiÕu giao (bá v× cã thÓ suy ra tõ c¸c thuéc tÝnh kh¸c)
c. X¸c ®Þnh c¸c thuéc tÝnh cña quan hÖ
- Thùc thÓ KHACH cã hai thuéc tÝnh: tªn kh¸ch, ®Þa chØ. Tªn kh¸ch kh«ng thÓ dïng lµm ®Þnh danh cho thùc thÓ nªn cÇn thªm ®Þnh danh cho nã: m· kh¸ch
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
162
- Thùc thÓ HANG cã 3 thuéc tÝnh: tªn hμng, ®¬n vÞ, m« t¶ hμng. Còng nh− thùc thÓ KHACH ta cÇn thªm ®Þnh danh: m· hμng cho thùc thÓ nµy.
C¸c thuéc tÝnh cßn l¹i:
Sè ®¬n ®Æt
Ngμy ®Æt
* Sè l−îng ®Æt
Sè phiÕu giao
N¬i giao
Ngμy giao
* §¬n gi¸ hμng giao
* Sè l−îng hμng giao
d. X¸c ®Þnh c¸c mèi quan hÖ cña hai thùc thÓ trªn
- Mèi quan hÖ 1:
kh¸ch - ®Æt – hµng (b»ng §¬n hμng) nªn cã c¸c thuéc tÝnh liªn quan ®Õn quan hÖ nµy lµ:
+ Sè ®¬n ®Æt
+ Ngμy ®Æt
+ Sè l−îng hμng ®Æt *
- Mèi quan hÖ 2:
hµng – (®−îc) giao (cho) – kh¸ch (b»ng PhiÕu giao hμng) nªn cã c¸c thuéc tÝnh liªn quan ®Õn mèi quan hÖ nµy lµ:
+ Sè phiÕu giao
+ N¬i giao
+ Ngμy giao
+ Sè l−îng hμng giao *
+ §¬n gi¸ hμng giao *
Nh− vËy, c¸c th«ng tin tõ hai chøng tõ ®· ®−îc sö dông hÕt.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
163
e. X©y dùng m« h×nh kh¸i niÖm d÷ liÖu
H×nh 3.9. M« h×nh kh¸i niÖm d÷ liÖu cña bμi to¸n ®Æt vμ giao hμng
3.2.3. KiÓm so¸t vμ chuÈn hãa m« h×nh
§Ó ®¬n gi¶n hãa vµ ®ång thêi ®¶m b¶o tÝnh nhÊt qu¸n cña m« h×nh d÷ liÖu, ta cÇn kiÓm so¸t l¹i m« h×nh võa x©y dùng b»ng mét sè qui t¾c thùc tiÔn sau ®©y:
3.2.3.1. ChuÈn hãa m« h×nh
Mäi thùc thÓ, quan hÖ cña m« h×nh ®Òu nªn ®−îc chuÈn hãa theo c¸c d¹ng 1FN, 2FN, 3FN vµ BCFN, ngo¹i trõ tr−êng hîp cã yªu cÇu ®Æc biÖt kh¸c cña hÖ th«ng tin.
ViÖc chuÈn hãa toµn bé theo c¸c d¹ng 3FN vµ BCFN kh«ng b¾t buéc, cßn c¸c d¹ng 1FN vµ 2FN ph¶i lu«n ®−îc tu©n thñ.
VÝ dô:
Mèi quan hÖ x¸c ®Þnh trªn h×nh 3.8 trong môc x©y dùng m« h×nh d÷ liÖu b»ng trùc gi¸c sÏ sinh thµnh mét l−îc ®å quan hÖ ch−a ®¹t chuÈn 1:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
164
PHIEUNHAP (Sè PN, ngµy nhËp, M· NhµcungcÊp, Sè ®¬n ®Æt hμng, M· vËt liÖu*, Sè l−îng*, m· thñ kho)
§Ó chuÈn ho¸ m« h×nh, chóng ta ph¶i t¸ch PHIEUNHAP thµnh c¸c l−îc ®å quan hÖ ®¹t 1NF:
PHIEUNHAP (Sè PN, ngµy nhËp, M· NhµcungcÊp, Sè ®¬n ®Æt, m· thñ kho)
DONGPHIEUNHAP (Sè PN, M· vËt liÖu, Sè l−îng)
Hai quan hÖ nµy ®−¬ng nhiªn còng ®¹t 2NF, 3NF.
3.2.3.2. T¹o thªm mét thùc thÓ
- ViÖc t¹o thªm mét thùc thÓ lµ cÇn thiÕt khi cã Ýt nhÊt mét quan hÖ hiÖn h÷u tham chiÕu tíi nã.
- ViÖc t¹o thªm mét thùc thÓ lµ hîp lý khi:
a. Thuéc tÝnh sÏ ®−îc chän lµm khãa chÝnh cña thùc thÓ nµy lµ mét lo¹i d÷ liÖu th«ng dông trong ho¹t ®éng cña tæ chøc
b. Ngoµi khãa chÝnh nµy, quan hÖ cßn cã chøa nh÷ng thuéc tÝnh kh¸c.
3.2.3.3. BiÕn mét quan hÖ thμnh thùc thÓ
Mét quan hÖ cã kÝch th−íc lín h¬n 3 nªn ®−îc biÕn thµnh nh÷ng thùc thÓ ®¬n gi¶n h¬n.
Cã thÓ biÕn mét quan hÖ thµnh thùc thÓ khi héi ®ñ c¸c ®iÒu kiÖn sau:
- Quan hÖ nµy cã mét khãa chÝnh ®éc lËp.
- Quan hÖ nµy t−¬ng øng víi mét kh¸i niÖm quen thuéc, th«ng dông trong ho¹t ®éng cña tæ chøc.
VÝ dô:
H×nh 3.10. §Æc t¶ mèi quan hÖ thêi kho¸ biÓu
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
165
Quan hÖ R ®−îc biÕn thµnh thùc thÓ “Thêi khãa biÓu”
H×nh 3.11. §Æc t¶ thùc thÓ thêi kho¸ biÓu
3.2.3.4. Xãa mét quan hÖ
Mét quan hÖ 1-N ph¶i ®−îc lo¹i bá khái m« h×nh d÷ liÖu nÕu nã lµ tæng hîp cña hai hay nhiÒu quan hÖ 1-N.
VÝ dô: Quan hÖ “Häc tr−êng” trong vÝ dô sau ®©y cã thÓ, vµ nªn, ®−îc lo¹i bá.
H×nh 3.12. §Æc t¶ mèi quan hÖ “häc tr−êng’’
3.2.3.5. Ph©n t¸ch mét quan hÖ phøc t¹p
XÐt mét quan hÖ cã kÝch th−íc lín h¬n hoÆc b»ng 3. Quan hÖ cã thÓ ph©n t¸ch thµnh nhiÒu quan hÖ kh¸c víi kÝch th−íc nhá h¬n mµ kh«ng mÊt th«ng tin nÕu tån t¹i Ýt nhÊt mét hµm phô thuéc gi÷a c¸c thùc thÓ cÊu thµnh quan hÖ.
3.2.3.5.1. Tr−êng hîp phô thuéc hμm Èn
Trong tr−êng hîp nµy, mét trong c¸c b¶n sè cña quan hÖ b»ng (1.1) hoÆc (0.1) ®iÒu nµy chøng tá sù tån t¹i cña mét sè phô thuéc hµm Èn.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
166
Trong vÝ dô sau ®©y, b¶n sè (1,1) gi÷a quan hÖ “Kh¸m bÖnh” víi thùc thÓ “§¬n thuèc” ®· chØ ra ®−îc c¸c phô thuéc hµm:
§¬n thuèc ---> BÖnh nh©n
vµ §¬n thuèc ---> B¸c sÜ
S¬ ®å thø hai t−¬ng ®−¬ng víi s¬ ®å thø nhÊt, nh−ng ®¬n gi¶n h¬n:
H×nh 3.13. §Æc t¶ mèi quan hÖ “kh¸m bÖnh’’
H×nh 3.14. §Æc t¶ mèi quan hÖ “cho ®¬n’’ vμ “dïng thuèc’’
3.2.3.5.2. Tr−êng hîp phô thuéc hμm hiÖn
Cho mét quan hÖ R gi÷a 3 thùc thÓ A, B vµ C. NÕu tån t¹i mét hµm phô thuéc A---> B th× R cã thÓ ®−îc ph©n thµnh hai quan hÖ gi÷a A víi B vµ gi÷a A víi C.
Trong vÝ dô sau ®©y, hµm phô thuéc Hãa ®¬n ---> Kh¸ch hµng (mçi hãa ®¬n chØ liªn quan ®Õn mét kh¸ch hµng duy nhÊt) cho phÐp ta ®−a vµo mét quan hÖ míi ®Ó diÔn t¶ sù phô thuéc nµy vµ ®¬n gi¶n hãa m« h×nh.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
167
VÝ dô:
S¬ ®å thø 2 t−¬ng ®−¬ng víi s¬ ®å thø nhÊt, nh−ng ®¬n gi¶n h¬n:
H×nh 3.15. §Æc t¶ mèi quan hÖ “dßng ho¸ ®¬n’’
H×nh 3.16. §Æc t¶ mèi quan hÖ “dßng ho¸ ®¬n’’ vμ “liªn quan’’
NhËn xÐt: Ph−¬ng ph¸p x©y dùng m« h×nh b»ng trùc gi¸c th−êng cho phÐp ta ®i th¼ng ®Õn s¬ ®å thø hai v× s¬ ®å nµy gÇn víi thùc tÕ ho¹t ®éng cña tæ chøc h¬n.z
3.3. ThiÕt kÕ CSDL logic
ThiÕt kÕ CSDL logic lμ v« cïng quan träng trong kh©u thiÕt kÕ CSDL. KÕt qu¶ thiÕt kÕ CSDL logic cho c¶ ng−êi ph©n tÝch thiÕt kÕ hÖ thèng, NSD vμ ng−êi qu¶n lý h×nh dung ®−îc CSDL cña HTTT trong mét tæ chøc bao gåm bao nhiªu tÖp, tªn tõng tÖp, danh s¸ch c¸c tr−êng mçi tÖp, nhãm thuéc tÝnh kho¸ chÝnh trong mçi tÖp còng nh− tæng thÓ c¸c mèi quan hÖ logic gi÷a c¸c tÖp (kÕt nèi th«ng qua kho¸ ngo¹i). C¸c kü thuËt ®−îc sö dông ë ®©y thÓ hiÖn tÝnh c«ng nghÖ râ nÐt.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
168
3.3.1. Khu«n c¶nh thiÕt kÕ c¬ së d÷ liÖu logic
VÊn ®Ò ®Æt ra lµ thÕ nµo lµ mét thiÕt kÕ c¬ së d÷ liÖu tèt?
§Ó lµm râ vÊn ®Ò nµy chóng ta xÐt vÝ dô sau.
Cho mét l−îc ®å:
Th«ng tin vÒ nhµ cung cÊp (tªn NCC, ®Þa chØ NCC, mÆt hµng, gi¸)
L−îc ®å nµy chøa mét sè c¸c th«ng tin vÒ nhµ cung cÊp. NhiÒu vÊn ®Ò cã thÓ n¶y sinh trong ®ã nh−:
1. D− thõa (redundancy). §Þa chØ cña nhµ cung cÊp ®−îc lËp l¹i mçi lÇn cho mçi mÆt hµng ®−îc cung cÊp.
2. M©u thuÉn tiÒm Èn (potentian inconsistance) hay bÊt th−êng khi cËp nhËt. Do hËu qu¶ cña d− thõa, chóng ta cã thÓ cËp nhËt ®Þa chØ cña mét nhµ cung cÊp trong mét b¶n ghi nh−ng vÉn ®Ó l¹i ®Þa chØ cò trong mét b¶n ghi kh¸c. V× vËy chóng ta cã thÓ kh«ng cã mét ®Þa chØ duy nhÊt ®èi víi mçi nhµ cung cÊp.
3. BÊt th−êng khi chÌn (insertion anomaly). Chóng ta kh«ng thÓ biÕt ®Þa chØ mét nhµ cung cÊp nÕu hiÖn t¹i hä ch−a cung cÊp Ýt mét mÆt hµng. Chóng ta cã thÓ ®Æt gi¸ trÞ null trong c¸c thµnh phÇn mÆt hµng vµ gi¸ cña mét b¶n ghi cho ng−êi ®ã, nh−ng khi chóng ta nhËp mÆt hµng cho nhµ cung cÊp ®ã, chóng ta cã nhí xo¸ ®i b¶n ghi mang gi¸ trÞ null hay kh«ng? §iÒu tÖ h¹i lµ mÆt hµng vµ tªn NCC cïng t¹o ra mét kho¸ cho quan hÖ ®ã, vµ cã lÏ kh«ng thÓ t×m ra c¸c b¶n ghi nhê chØ môc s¬ cÊp ®−îc, nÕu cã nh÷ng gi¸ trÞ null trong tr−êng kho¸ mÆt hµng.
4. BÊt th−êng khi xo¸ (deletion anormaly). Ng−îc l¹i víi vÊn ®Ò (3) lµ vÊn ®Ò chóng ta cã thÓ xo¸ tÊt c¶ c¸c mÆt hµng ®−îc cung cÊp bëi mét ng−êi, v« ý lµm mÊt dÊu vÕt ®Ó t×m ra ®Þa chØ cña nhµ cung cÊp nµy.
Trong vÝ dô nµy, tÊt c¶ c¸c vÊn ®Ò n¶y sinh trªn sÏ ®−îc gi¶i quyÕt triÖt ®Ó khi thay nã b»ng hai l−îc ®å quan hÖ míi:
NhμCC (tªn NCC, ®Þa chØ NCC)
Gi¸_NCC (tªn NCC, mÆt hμng, gi¸)
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
169
ë ®©y quan hÖ NhµCC cung cÊp ®Þa chØ cña mçi NCC ®óng mét lÇn, do vËy kh«ng cã d− thõa. Ngoµi ra, chóng ta còng cã thÓ nhËp ®Þa chØ cña nhµ cung cÊp dï hiÖn t¹i hä ch−a cung cÊp mét lo¹i mÆt hµng nµo. Nh− vËy t− t−ëng n¶y sinh tù nhiªn lµ lµm thÕ nµo ®Ó cã mét CSDL tèt?
§Ó ®¶m b¶o qu¸ tr×nh thiÕt kÕ dÉn ®Õn mét CSDL tèt (theo nghÜa tr¸nh ®−îc nh÷ng nh−îc ®iÓm trªn) ng−êi ta th−êng thùc hiÖn ®Çy ®ñ c¸c b−íc theo mét tr×nh tù c«ng nghÖ ®−îc tr×nh bµy d−íi ®©y.
H×nh 3.17. S¬ ®å khu«n c¶nh chung c¸c b−íc thiÕt kÕ CSDL logic
§èi víi ph−¬ng ph¸p Blanpre, b−íc 2 vµ b−íc 3 dùa vµo ma trËn phô thuéc hµm. §èi víi ph−¬ng ph¸p trùc gi¸c, viÖc x¸c ®Þnh c¸c mèi quan hÖ kh«ng dùa trªn rµng buéc phô thuéc hµm, hay quy t¾c qu¶n lý mµ b»ng trùc gi¸c. Trong ®ã, c¸c hå s¬ d÷ liÖu th−êng ®−îc xÐt tíi nh− mét mèi quan hÖ n ng«i.
B−íc 4: X©y dùng M« h×nh kh¸i niÖm d÷ liÖu
B−íc 2: X¸c ®Þnh c¸c thùc thÓ, danh s¸ch thuéc tÝnh
B−íc 5: ChuyÓn M« h×nh kh¸i niÖm d÷ liÖu sang M« h×nh quan hÖ (HÖ l−îc ®å quan hÖ)
B−íc 6: ChuÈn ho¸ c¸c quan hÖ ®Õn 3NF vμ hîp nhÊt chóng khi cÇn
B−íc 7: X©y dùng M« h×nh d÷ liÖu logic - S¬ ®å E_R
B−íc 1: ChÝnh x¸c ho¸ d÷ liÖu vμ thiÕt lËp danh s¸ch thuéc tÝnh cÇn qu¶n lý
B−íc 3: X¸c ®Þnh c¸c mèi quan hÖ, danh s¸ch thuéc tÝnh (nÕu cã)
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
170
3.3.2. C¸c kü thuËt sö dông trong thiÕt kÕ c¬ së d÷ liÖu logic
PhÇn trªn, chóng ta ®· biÕt c¸c kü thuËt x©y dùng m« h×nh kh¸i niÖm d÷ liÖu. B©y giê chóng ta sÏ t×m hiÓu c¸c kü thuËt cßn l¹i sÏ sö dông khi thiÕt kÕ CSDL.
3.3.2.1. Kü thuËt x¸c ®Þnh c¸c thùc thÓ
Mét thùc thÓ ®−îc x¸c ®Þnh nÕu x¸c ®Þnh ®−îc 3 thµnh phÇn: tªn cña thùc thÓ, danh s¸ch thuéc tÝnh (Ýt nhÊt lµ mét) vµ nhãm thuéc tÝnh ®Þnh danh (Ýt nhÊt lµ mét thuéc tÝnh).
Cã nhiÒu c¸ch x¸c ®Þnh thùc thÓ. Chóng ta xem xÐt mét vÝ dô sau ®©y.
Cho mét ho¸ ®¬n ®iÓn h×nh:
ho¸ §¬n b¸n hμng
Sè: Ngμy:
M· kh¸ch hμng:
Tªn kh¸ch hμng:
§Þa chØ:
STT M· hμng Tªn hμng §¬n vÞ §¬n gi¸ Sè l−îng Thμnh tiÒn
Tæng tiÒn
1. Tr−êng hîp 1: Coi c¶ HOADON lµ mét thùc thÓ, ta cã:
HOADON
#Sè
#M· hµng* (2 thuéc tÝnh {sè, m· hµng} hîp thµnh nhãm thuéc tÝnh ®Þnh danh cña thùc thÓ)
Ngµy M· kh¸ch hµng
Tªn kh¸ch hµng
§Þa chØ
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
171
Tªn hµng*
§¬n vÞ tÝnh*
§¬n gi¸*
Sè l−îng*
Thµnh tiÒn*
Tæng tiÒn (c¸c thuéc tÝnh cã dÊu * lµ thuéc tÝnh lÆp/®a trÞ)
2. Tr−êng hîp 2: X¸c ®Þnh 2 thùc thÓ: mét nhãm thuéc tÝnh ®¬n vµ 1 nhãm thuéc tÝnh lÆp.
E1-HOADON E2- HANG
#Sè
Ngµy #M· hµng M· kh¸ch hµng Tªn hµng
Tªn kh¸ch hµng §¬n vÞ tÝnh
§Þa chØ
Tæng tiÒn
3. Tr−êng hîp 3: X¸c ®Þnh 3 thùc thÓ: hai nhãm thuéc tÝnh ®¬n vµ 1 nhãm thuéc tÝnh lÆp.
E1-HOADON E2- KHACH E3-HANG
#Sè #M· kh¸ch hµng #M· hµng
Ngµy Tªn kh¸ch hµng Tªn hµng
Tæng tiÒn §Þa chØ §¬n vÞ tÝnh
Chó ý:
- Mçi thuéc tÝnh chØ ph©n cho 1 thùc thÓ
- Cã thÓ cã thuéc tÝnh kh«ng ph©n ®−îc cho mét thùc thÓ nµo c¶
3.3.2.2. Kü thuËt ®Æc t¶
Chóng ta ®· biÕt kü thuËt ®Æc t¶ mèi quan hÖ gi÷a 2 thùc thÓ dùa vµo m« t¶ b»ng ng«n ng÷ tù nhiªn. Ngoµi c¸ch nµy chóng ta cßn cã thÓ ®Æc t¶ mèi quan hÖ gi÷a 2 thùc thÓ dùa trªn nh÷ng kü thuËt sau ®©y:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
172
1. Dùa vμo quy t¾c qu¶n lý hoÆc nh÷ng quy t¾c toμn vÑn
VÝ dô: Cho c¸c thùc thÓ vµ thuéc tÝnh sau:
VËt t− (m· vt, tªn vt, §V, ®¬n gi¸),
phiÕu xuÊt (sè phiÕu, ngμy, m· kho, m· kh¸ch),
kh¸ch (m· kh¸ch, tªn kh¸ch, ®Þa chØ, E_mail),
kho (m· kho, tªn kho)
Dùa vµo nh÷ng quy t¾c ®−îc ph¸t biÓu tr−íc, chóng ta vÏ ®−îc mét ®Æc t¶ mèi quan hÖ gi÷a 2 thùc thÓ:
“Trong mçi phiÕu xuÊt, ghi nhiÒu lo¹i vËt t−. Ng−îc l¹i mçi lo¹i vËt t− cã thÓ xuÊt hiÖn trong nhiÒu phiÕu xuÊt víi d÷ liÖu quan träng lμ sè l−îng’’.
“Mét phiÕu xuÊt chØ viÕt cho mét kh¸ch; ng−îc l¹i mét kh¸ch cã thÓ cã nhiÒu phiÕu xuÊt’’
“Mét phiÕu xuÊt chØ viÕt cho mét kho, ng−îc l¹i mçi kho cã thÓ cã nhiÒu phiÕu xuÊt’’
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
173
2. Dùa vμo kho¸ cña c¸c l−îc ®å quan hÖ (X¸c ®Þnh qua kho¸ liªn kÕt)
VÝ dô:
+ Tr−êng hîp hÖ l−îc ®å quan hÖ ®· chuÈn ho¸
VËt t− (m· vt, tªn vt, §V, ®¬n gi¸),
phiÕu xuÊt (sè phiÕu, ngμy, m· kho, m· kh¸ch),
kh¸ch (m· kh¸ch, tªn kh¸ch, ®Þa chØ, E_mail),
kho (m· kho, tªn kho)
dßng VËt t− (sè phiÕu, m· vt, sè l−îng)
Tõ VËt t− vµ dßng VËt t− ta thÊy cã nhãm thuéc tÝnh
chung lµ “m· vt”, ë thùc thÓ VËt t− chóng lµ kho¸ chÝnh, vËy ë
thùc thÓ dßng VËt t− chóng lµ kho¸ ngo¹i. Sù tån t¹i cña kho¸ ngo¹i chøng tá gi÷a 2 l−îc ®å quan hÖ ®ã cã mèi quan hÖ víi nhau. Ta vÏ ®−îc:
Ph©n tÝch t−¬ng tù, ta cã:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
174
Kho¸ ngo¹i (foreign key: FK) cña 1 quan hÖ lμ mét nhãm thuéc tÝnh trong quan hÖ ®ã mμ lμ kho¸ chÝnh cña mét quan hÖ kh¸c liªn kÕt víi nã (c¸c FK còng cã thÓ tham chiÕu ®Õn kho¸ chÝnh trong cïng 1 quan hÖ). Kho¸ ngo¹i cßn gäi lμ kho¸ liªn kÕt.
+ Tr−êng hîp hÖ l−îc ®å quan hÖ ch−a chuÈn ho¸
VËt t− (m· vt, tªn vt, §V),
Dßng phiÕu xuÊt (sè phiÕu, ngμy, m· kho, m· kh¸ch, m· vt*, sè l−îng*, ®¬n gi¸)
kh¸ch (m· kh¸ch, tªn kh¸ch, ®Þa chØ, E_mail),
kho (m· kho, tªn kho)
Ta thÊy “m· vt” lµ kho¸ ngo¹i cña dßng phiÕu xuÊt trong
mèi quan hÖ víi VËt t− nªn cã thÓ ®Æc t¶ mèi quan hÖ gi÷a chóng tr−íc, sau ®ã chuÈn ho¸:
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
175
3.3.2.3. Kü thuËt chuyÓn m« h×nh kh¸i niÖm d÷ liÖu vÒ hÖ l−îc ®å quan hÖ
1. Cho m« h×nh kh¸i niÖm d÷ liÖu cña hÖ qu¶n lý kho
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
176
H×nh 3.18. M« h×nh kh¸i niÖm d÷ liÖu cña hÖ qu¶n lý kho
Cã 3 quy t¾c chuyÓn:
Quy t¾c 1 (quy t¾c biÕn ®æi c¬ b¶n):
Mçi thùc thÓ ®−îc chuyÓn thµnh mét quan hÖ trong ®ã c¸c thuéc tÝnh cña thùc thÓ ®−îc chuyÓn thµnh thuéc tÝnh cña quan hÖ, ®Þnh danh cña thùc thÓ trë thµnh khãa cña quan hÖ.
Quy t¾c 2:
Mçi mèi quan hÖ 1-N mµ kh«ng cã thuéc tÝnh riªng sÏ kh«ng ®−îc chuyÓn thµnh mét quan hÖ. Nh−ng thùc thÓ tham gia vµo mèi quan hÖ vÒ phÝa N (phÝa 1:1 trong m« h×nh) sÏ ®æi míi b»ng c¸ch sau khi dïng phÐp biÕn ®æi c¬ b¶n sÏ nhËn thªm kho¸ cña thùc thÓ tham gia vµo mèi quan hÖ ë phÝa 1 lµm kho¸ liªn kÕt. Cßn thùc thÓ tham gia vµo mèi quan hÖ ë phÝa 1 sÏ biÕn ®æi theo quy t¾c 1.
Quy t¾c 3:
Mçi mèi quan hÖ N-N hoÆc mèi quan hÖ cã thuéc tÝnh riªng sÏ ®−îc chuyÓn thµnh mét quan hÖ míi. Quan hÖ míi nµy cã thuéc tÝnh
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
177
gåm ®Þnh danh cña tÊt c¶ c¸c thùc thÓ trong mèi quan hÖ vµ c¸c thuéc tÝnh riªng cña nã. Khãa cña quan hÖ ®−îc x¸c ®Þnh l¹i sau ®ã. C¸c thùc thÓ tham gia vµo mèi quan hÖ ®Òu biÕn ®æi theo quy t¾c 1.
Gi¶ thiÕt ë ®©y (dùa theo b¶n sè cña m« h×nh) lµ mçi mÆt hμng cã thÓ ®Ó ë nhiÒu kho. Ta thÊy r»ng:
+ Mèi quan hÖ nhËp tõ lµ mèi quan hÖ lo¹i 1-N vµ kh«ng cã thuéc tÝnh riªng nªn kh«ng chuyÓn thµnh mét quan hÖ míi. Thùc thÓ
nhµ cung cÊp tham gia vµo mèi quan hÖ nµy ®−îc chuyÓn thµnh
quan hÖ theo quy t¾c biÕn ®æi c¬ b¶n. Thùc thÓ phiÕu nhËp sau khi biÕn ®æi theo quy t¾c c¬ b¶n sÏ ®−îc bæ sung thuéc tÝnh M· NCC lµm thuéc tÝnh liªn kÕt. KÕt qu¶ ta cã hai l−îc ®å sau:
Nha_CUNG_CaP (M· NCC, Tªn NCC, §Þa chØ NCC)
PHIeU_NhaP (Sè phiÕu nhËp, Ngμy nhËp, M· NCC)
+ Mèi quan hÖ chøa lµ mèi quan hÖ lo¹i N-N vµ cã thuéc tÝnh riªng nªn ®−îc chuyÓn thµnh mét quan hÖ míi. Danh s¸ch thuéc tÝnh cña nã bao gåm thuéc tÝnh riªng “tån kho” vµ c¸c thuéc tÝnh ®Þnh danh cña c¸c thùc thÓ tham gia vµo mèi quan hÖ nµy (m· kho vµ m· hµng).
C¸c thùc thÓ kho vµ hµng tham gia vµo mèi quan hÖ ®Òu ®−îc biÕn thµnh quan hÖ theo quy t¾c c¬ b¶n. KÕt qu¶ ta cã 3 l−îc ®å quan hÖ sau:
Kho (M· kho, Tªn kho, §Þa chØ, Lo¹i kho)
Chua (M· kho, M· hμng, Tån kho)
HANG (M· hμng, Tªn hμng, §¬n vÞ, §¬n gi¸)
+ C¸c mèi quan hÖ kh¸c ®Òu ®−îc ph©n tÝch t−¬ng tù sÏ cho chóng ta hÖ l−îc ®å quan hÖ. Sau khi lo¹i trõ c¸c quan hÖ bÞ bao hµm ®Ó ®¶m b¶o lµ hÖ Sperner ta sÏ cßn l¹i 9 l−îc ®å quan hÖ sau (nh÷ng thuéc tÝnh g¹ch ch©n lµ khãa):
1. Nha_CUNG_CaP (M· NCC, Tªn NCC, §Þa chØ NCC)
2. PHIeU_NhaP (Sè phiÕu nhËp, Ngμy nhËp, M· NCC)
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
178
3. GoM_CaC_KHOaN_NhaP (Sè phiÕu nhËp, M· hμng, L−îng nhËp)
4. KHaCH_HaNG (M· kh¸ch, Tªn kh¸ch, §Þa chØ kh¸ch)
5. Phieu_xuat (Sè phiÕu xuÊt, Ngμy xuÊt, M· kh¸ch)
6. Gom_ cac_khoan_xuat (sè phiÕu xuÊt, m·_hμng, L−îng xuÊt)
7. Kho (M· kho, Tªn kho, §Þa chØ, Lo¹i kho)
8. Chua (M· kho, M· hμng, Tån kho)
9. HANG (M· hμng, Tªn hμng, §¬n vÞ, §¬n gi¸)
Chó ý: NÕu mçi mÆt hµng chØ ®Ó ë 1 kho th× cã:
H×nh 3.19. M« h×nh kh¸i niÖm d÷ liÖu
Vµ cã Chua (M· kho, M· hμng, Tån kho)
Nªn 2 quan hÖ:
HANG (M· hμng, Tªn hμng, §¬n vÞ, §¬n gi¸)
Vµ: Chua (M· kho, M· hμng, Tån kho)
sÏ ®−îc hîp l¹i thµnh mét:
HANG (M· hμng, Tªn hμng, §¬n vÞ, §¬n gi¸, M·kho, Tån kho)
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
179
VËy hÖ l−îc ®å trong tr−êng hîp nµy chØ cßn cã 8 l−îc ®å quan hÖ sau:
1. Nha_CUNG_CaP (M· NCC, Tªn NCC, §Þa chØ NCC)
2. PHIeU_NhaP (Sè phiÕu nhËp, Ngμy nhËp, M· NCC)
3. GoM_CaC_KHOaN_NhaP (Sè phiÕu nhËp, M· hμng, L−îng nhËp)
4. KHaCH_HaNG (M· kh¸ch, Tªn kh¸ch, §Þa chØ kh¸ch)
5. Phieu_xuat (Sè phiÕu xuÊt, Ngμy xuÊt, M· kh¸ch)
6. Gom_ cac_khoan_xuat (sè phiÕu xuÊt, m·_hμng, L−îng xuÊt)
7. Kho (M· kho, Tªn kho, §Þa chØ, Lo¹i kho)
8. HANG (M· hμng, Tªn hμng, §¬n vÞ, §¬n gi¸, M·kho, Tånkho)
2. Cho m« h×nh kh¸i niÖm bμi to¸n qu¶n lý kinh doanh
H×nh 3.20. M« h×nh kh¸i niÖm d÷ liÖu
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
180
ChuyÓn sang m« h×nh quan hÖ:
Mèi quan hÖ §AT lµ mèi quan hÖ lo¹i N-N, cã thuéc tÝnh riªng nªn ®−îc chuyÓn thµnh mét quan hÖ:
§AT (sè ®¬n, ngµy ®Æt, m· kh¸ch, m· hμng *, sè l−îng ®Æt*)
Chó ý:
M· hµng ®−îc ®¸nh dÊu * trong §AT v× thuéc tÝnh “sè l−îng ®Æt” lµ ®a trÞ, tøc lµ øng víi nhiÒu lo¹i hµng.
Thùc thÓ KHACH ®· ®−îc t¸ch riªng nªn m· kh¸ch trong §AT kh«ng gi÷ vai trß lµ thµnh phÇn cña kho¸ chÝnh mµ chØ lµ kho¸ ngo¹i.
Cßn thùc thÓ KHACH vµ HANG tham gia vµo mèi quan hÖ trªn còng ®−îc chuyÓn sang l−îc ®å quan hÖ t−¬ng øng theo quy t¾c c¬ b¶n:
KHACH (M· kh¸ch, Tªn kh¸ch, ®Þa chØ kh¸ch)
HANG (M· hµng, Tªn hµng, M« t¶ hµng, ®¬n vÞ tÝnh)
KÕt qu¶ ta cã hÖ l−îc ®å sau:
§AT (sè ®¬n, ngµy ®Æt, m· kh¸ch, m· hμng*, sè l−îng ®Æt*)
KHACH (M· kh¸ch, Tªn kh¸ch, ®Þa chØ kh¸ch)
HANG (M· hµng, Tªn hµng, M« t¶ hµng, ®¬n vÞ tÝnh)
3.3.2.4. Kü thuËt chuÈn ho¸
ChuÈn ho¸ lµ mét qu¸ tr×nh chuyÓn mét cÊu tróc d÷ liÖu phøc hîp thµnh c¸c cÊu tróc d÷ liÖu tèt vµ ®¬n gi¶n h¬n.
ChuÈn ho¸ th−êng ®−îc hoµn thµnh sau mét sè b−íc, mçi b−íc nhËn ®−îc c¸c quan hÖ t−¬ng øng víi mét d¹ng chuÈn. D¹ng chuÈn ®−îc hiÓu lµ mét tr¹ng th¸i cña quan hÖ cã thÓ ®−îc x¸c ®Þnh nhê ¸p dông c¸c quy t¾c ®Ó ph¸t hiÖn sù phô thuéc hµm (mèi quan hÖ) gi÷a c¸c thuéc tÝnh cña quan hÖ.
ChuÈn ho¸ dùa trªn c¬ së ph©n tÝch c¸c phô thuéc hµm. Phô thuéc hµm nh− ®· nãi ë trªn lµ mét mèi quan hÖ cô thÓ gi÷a hai thuéc tÝnh (hay nhãm thuéc tÝnh) trong mét quan hÖ.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
181
C¸c d÷ liÖu trong quan hÖ kh«ng dÔ cho thÊy vÒ sù tån t¹i cña c¸c phô thuéc hµm. ChØ cã sù hiÓu biÕt vµ tri thøc cña con ng−êi vÒ c¸c ®èi t−îng mµ chÝnh quan hÖ ®ã m« t¶ míi cho phÐp x¸c ®Þnh c¸c phô thuéc hµm vèn tån t¹i trong nã. Tuy cã nh÷ng thuËt to¸n (th−êng phøc t¹p) cho phÐp ph¸t hiÖn ra cã hay kh«ng c¸c sù phô thuéc hµm gi÷a hai hay nhiÒu thuéc tÝnh cña nã nh−ng th−êng Ýt dïng.
a. C¸c d¹ng chuÈn c¬ b¶n
Cã 3 d¹ng chuÈn c¬ b¶n lµ:
ChuÈn 1 (first-normal-form: 1NF): Mét quan hÖ ®¹t chuÈn 1 nÕu nã kh«ng chøa c¸c thuéc tÝnh lÆp.
ChuÈn 2 (second-normal-form: 2NF) (C¸c thuéc tÝnh ngoµi khãa phô thuéc hoµn toµn vµo kho¸)
Mét quan hÖ ®¹t chuÈn 2 nÕu:
- §¹t chuÈn 1
- Kh«ng tån t¹i thuéc tÝnh ngoµi kho¸ mµ phô thuéc vµo mét phÇn cña kho¸.
ChuÈn 3 (thirth- normal- form: 3NF) (C¸c thuéc tÝnh ngoµi khãa phô thuéc trùc tiÕp vµo kho¸)
Mét quan hÖ ®¹t chuÈn 3 nÕu:
- §¹t chuÈn 2
- Kh«ng tån t¹i thuéc tÝnh ngoµi kho¸ mµ phô thuéc b¾c cÇu vµo kho¸ (qua mét thuéc tÝnh gäi lµ thuéc tÝnh cÇu (còng lµ thuéc tÝnh ngoµi kho¸)).
§Ó chuÈn ho¸ mét hÖ l−îc ®å quan hÖ, ta xÐt lÇn l−ît tõng quan hÖ vµ kiÓm tra tÝnh chuÈn cña nã. Muèn vËy, tr−íc hÕt ta x¸c ®Þnh c¸c phô thuéc hμm vμ kho¸ chÝnh (kho¸ tèi tiÓu) cña quan hÖ. Sau ®ã tiÕn hµnh kiÓm tra lÇn l−ît c¸c lo¹i chuÈn ®èi víi quan hÖ:
VÝ dô:
- Cho l−îc ®å quan hÖ:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
182
PHIEUNHAP (sophieu, ngaynhap, makhach, ten_kh, diachi_kh,
1 2 3 4 5
®ienthoai, makho, ®iachikho, hinhthucthanhtoan,loaitien,
6 7 8 9 10
mavattu*, tenvattu*, soluong*,donvitinh*, ®ongia*, tyleVAT*)
11 12 13 14 15 16
- C¸c b−íc thùc hiÖn:
+ B−íc 1: X¸c ®Þnh phô thuéc hμm
ViÖc x¸c ®Þnh phô thuéc hµm dùa vµo 2 yÕu tè: nghiÖp vô cña c¸c nhµ chuyªn m«n vµ kinh nghiÖm cña nhµ ph©n tÝch. §èi víi vÝ dô ®¬n nµy, ta thÊy l−îc ®å quan hÖ gåm 2 nhãm: nhãm thuéc tÝnh 1 gåm danh s¸ch c¸c thuéc tÝnh kh«ng lÆp (tõ 1 ®Õn 10), nhãm thuéc tÝnh 2 gåm c¸c thuéc tÝnh lÆp (tõ 11 ®Õn 16). Trªn c¬ së ®ã ta x¸c ®Þnh 3 nhãm phô thuéc hµm t−¬ng øng:
+ Nhãm phô thuéc hµm thø nhÊt: x¸c ®Þnh phô thuéc hµm trong nhãm thuéc tÝnh kh«ng lÆp. Theo vÝ dô ta cã:
(1) -> (2, 3, 4, 5, 6, 7, 8, 9, 10)
+ Nhãm phô thuéc hµm thø hai: x¸c ®Þnh phô thuéc hµm trong nhãm thuéc tÝnh lÆp. Theo vÝ dô ta cã:
(11) -> (12, 14, 15, 16)
+ Nhãm phô thuéc hµm thø ba: x¸c ®Þnh phô thuéc hµm trong nhãm hçn hîp c¶ thuéc tÝnh lÆp vµ kh«ng lÆp.Theo vÝ dô ta cã:
(1, 11) -> (13)
“sè l−îng” ë ®©y lµ sè l−îng vËt t− vµ cã gi¸ trÞ kh¸c nhau trªn c¸c PHIEUNHAP kh¸c nhau.
Sau nµy, më réng trong c¸c bµi to¸n lín nh− bµi to¸n qu¶n lý nh©n sù ch¼ng h¹n, cã nhiÒu nhãm lÆp kh¸c nhau, th× chóng ta sÏ x¸c ®Þnh phô thuéc hµm riªng cho tõng nhãm lÆp vµ x¸c ®Þnh phô thuéc hµm hçn hîp cña tõng nhãm lÆp riªng víi nhãm c¸c thuéc tÝnh kh«ng lÆp.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
183
+ B−íc 2: X¸c ®Þnh K chÝnh (K tèi tiÓu) (dïng thuËt to¸n)
Kho¸ chÝnh, phÇn lín c¸c tr−êng hîp, th−êng lµ c¸c thuéc tÝnh n»m phÝa bªn tr¸i c¸c phô thuéc hµm mµ chóng ta x¸c ®Þnh ®−îc. Gäi nhãm thuéc tÝnh phÝa tr¸i c¸c phô thuéc hµm lµ K. Nhê thuËt to¸n tÝnh bao ®ãng ta x¸c ®Þnh ®−îc K cã lµ kho¸ (th−êng) hay kh«ng. Th«ng th−êng víi ng−êi ph©n tÝch cã kinh nghiÖm x¸c ®Þnh phô thuéc hµm th× K lµ kho¸ ngay (nÕu ch−a ®¹t kho¸ th× ta dÔ dµng bæ sung c¸c thµnh phÇn thuéc tÝnh cßn thiÕu ®Ó ®¹t lµ kho¸). Sau ®ã dïng thuËt to¸n tÝnh kho¸ tèi tiÓu ¸p dông cho ngay kho¸ võa t×m ®−îc ta sÏ thu ®−îc mét kho¸ tèi tiÓu mµ ta gäi lµ kho¸ chÝnh.
VÝ dô ë ®©y: nhãm thuéc tÝnh K = (1,11)
cã thÓ suy ra toµn kh«ng gian thuéc tÝnh cña quan hÖ. H¬n n÷a, kiÓm tra ®−îc chóng chÝnh lµ kho¸ tèi tiÓu (lÇn l−ît bít tõng thuéc tÝnh vµ kiÓm tra l¹i bao ®ãng). Cuèi cïng thu ®−îc:
PHIEUNHAP (sophieu, ngaynhap, makhach, ten_kh, diachi_kh,
®ienthoai, makho, ®iachikho, hinhthucthanhtoan, loaitien,
mavattu*, tenvattu*, soluong*, donvitinh*, ®ongia*, tyleVAT*)
+ B−íc 3: ChuÈn ho¸ 1, 2, 3
V× c¸c thuéc tÝnh: 11,...,16 (cã dÊu *) lµ c¸c thuéc tÝnh lÆp nªn quan hÖ nµy ch−a ®¹t chuÈn 1.
NÕu quan hÖ kh«ng ph¶i lμ chuÈn 1: Ph©n r· quan hÖ thμnh hai quan hÖ:
Quan hÖ 1 (QH1): C¸c thuéc tÝnh lÆp vµ kho¸ chÝnh cña l−îc ®å gèc (ch−a t¸ch).
Quan hÖ 2 (QH2): C¸c thuéc tÝnh ®¬n (c¸c thuéc tÝnh kh«ng lÆp).
QH1: gåm c¸c thuéc tÝnh lÆp (11,...,16) vµ (1) lµ kho¸ tøc lµ:
VATTU (Sè phiÕu, mavattu, tenvattu, soluong, donvitinh, ®ongia, tyleVAT) 1 11 12 13 14 15 16
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
184
QH2: gåm (2, 3, 4, 5,...,10) vµ (1) tøc lµ:
PHIEUNHAP (sophieu, ngaynhap, makhach, ten_kh, diachi_kh,
1 2 3 4 5
®ienthoai, makho, ®iachikho, hinhthucthanhtoan, loaitien)
6 7 8 9 10
NÕu quan hÖ kh«ng ph¶i lμ chuÈn 2: Ph©n r· thμnh hai quan hÖ:
Quan hÖ 1: C¸c thuéc tÝnh phô thuéc vµo mét phÇn kho¸ chÝnh vµ phÇn kho¸ chÝnh x¸c ®Þnh chóng.
Quan hÖ 2: C¸c thuéc tÝnh cßn l¹i vµ kho¸ chÝnh cña l−îc ®å gèc (ch−a t¸ch).
XÐt QH1:
VATTU (Sè phiÕu, mavattu, tenvattu, soluong,donvitinh, ®ongia, tyleVAT) 1 11 12 13 14 15
16
Ta thÊy 11 -> 12, 14, 15, 16, mµ 11 lµ bé phËn cña kho¸ nªn quan hÖ nµy kh«ng ®¹t chuÈn 2.
§Ó ®¹t chuÈn 2 ta t¸ch thµnh 2 quan hÖ:
QH1_1: VATTU (mavattu, tenvattu, donvitinh, ®ongia, tyleVAT)
11 12 14 15 16
QH 1_2: DONGVATTU (Sè phiÕu, mavattu, soluong)
1 11 13
XÐt tiÕp QH2:
PHIEUNHAP (sophieu, ngaynhap, makhach, ten_kh, diachi_kh,
1 2 3 4 5
®ienthoai, makho, ®iachikho, hinhthucthanhtoan, loaitien)
6 7 8 9 10
Quan hÖ nµy ®−¬ng nhiªn ®¹t chuÈn 2 v× nhãm thuéc tÝnh kho¸ chØ cã mét thuéc tÝnh.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
185
NÕu quan hÖ kh«ng ph¶i lµ chuÈn 3: ph©n r· quan hÖ thµnh 2 quan hÖ:
Quan hÖ 1: C¸c thuéc tÝnh phô thuéc b¾c cÇu vµ thuéc tÝnh cÇu.
Quan hÖ 2: C¸c thuéc tÝnh cßn l¹i vµ c¸c thuéc tÝnh cÇu.
XÐt:
QH1_1: 1. VATTU (mavattu, tenvattu, donvitinh, ®ongia, tyleVAT)
11 12 14 15 16
®¹t chuÈn 3 v× kh«ng cã thuéc tÝnh cÇu.
XÐt:
QH 1_2: 2. DONGVATTU (Sè phiÕu, mavattu, soluong)
1 11 13
còng ®¹t chuÈn 3 v× thuéc tÝnh ngoµi kho¸ chØ cã mét nªn kh«ng cã thuéc tÝnh cÇu.
XÐt tiÕp QH2:
PHIEUNHAP (sophieu, ngaynhap, makhach, ten_kh, diachi_kh,
1 2 3 4 5
®ienthoai, makho, ®iachikho, hinhthucthanhtoan,loaitien)
6 7 8 9 10
Ta thÊy 3 -> 4, 5, 6
7 -> 8
mµ 3 vµ 7 lµ thuéc tÝnh ngoµi kho¸ nªn chóng lµ nh÷ng thuéc tÝnh cÇu. V× vËy ®Ó cã chuÈn 3 ta t¸ch thµnh nh÷ng quan hÖ sau:
QH2_1: 3. KHACH (makhach, ten_kh, diachi_kh, ®ienthoai)
3 4 5 6
QH2_2: 4. KHO (makho, ®iachikho)
7 8
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
186
vµ QH2_3: 5. PHIEUNHAP (sophieu, ngaynhap, makhach, makho,
hinhthucthanhtoan, loaitien) 1 2 3 7
9 10
KÕt luËn:
Ta cã hÖ l−îc ®å quan hÖ sau ®¹t 3NF:
1. VATTU (mavattu, tenvattu, donvitinh, ®ongia, tyleVAT)
2. DONGVATTU (Sè phiÕu, mavattu, soluong)
3. KHACH (makhach, ten_kh, diachi_kh, ®ienthoai)
4. KHO (makho, ®iachikho)
5. PHIEUNHAP(sophieu, ngaynhap, makhach, makho, hinhthucthanhtoan, loaitien)
ë ®©y, chóng ta l−u ý mét sè kü thuËt t¸ch chóng.
XÐt chuÈn 1:
+ NÕu quan hÖ cßn c¸c thuéc tÝnh cã dÊu * (thuéc tÝnh lÆp) nghÜa lµ quan hÖ ®ã ch−a ®¹t chuÈn 1. Ta sö dông quy t¾c t¸ch b×nh th−êng.
+ Trong tr−êng hîp cã nhiÒu nhãm thuéc tÝnh lÆp (xen kÏ víi c¸c thuéc tÝnh kh«ng lÆp) ta nªn ®ång thêi t¸ch theo tõng nhãm lÆp. Hay nãi râ h¬n, khi cã m nhãm lÆp ta sÏ t¸ch l−îc ®å ®ã theo quy t¾c ®· biÕt ®Ó thu ®−îc ®ång thêi m+1 l−îc ®å quan hÖ míi ®¹t chuÈn 1.
XÐt chuÈn 2:
+ Mäi quan hÖ ®· ®¹t chuÈn 1, ch−a ®¹t chuÈn 2, ®Òu dÔ dµng t¸ch thµnh c¸c quan hÖ ®¹t chuÈn 2 theo quy t¾c ®· biÕt.
+ Tr−êng hîp nhãm thuéc tÝnh kho¸ chØ cã mét thuéc tÝnh, ®iÒu nµy cã nghÜa lµ phô thuéc bé phËn kh«ng thÓ x¶y ra, ta kÕt luËn ngay lµ quan hÖ ®ã ®−¬ng nhiªn ®¹t chuÈn 2.
+ Trong tr−êng hîp cã m nhãm phô thuéc bé phËn, ta sÏ t¸ch ®ång thêi thµnh m+1 quan hÖ ®¹t chuÈn 2 dùa theo quy t¾c ®· biÕt.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
187
XÐt chuÈn 3:
Còng gièng nh− c¸c chuÈn trªn, khi cã m thuéc tÝnh cÇu, ta sÏ t¸ch ®−îc m+1 quan hÖ míi ®¹t chuÈn 3.
+ Tr−êng hîp nhãm thuéc tÝnh ngoµi kho¸ chØ cã 1 thuéc tÝnh, ®iÒu nµy cã nghÜa kh«ng thÓ tån t¹i thuéc tÝnh cÇu, nªn quan hÖ ®ã ®−¬ng nhiªn ®¹t chuÈn 3.
3.3.2.5. Kü thuËt chuyÓn tõ hÖ l−îc ®å quan hÖ sang s¬ ®å E-R (ERD-m« h×nh d÷ liÖu logic)
§Ó dÔ nhËn thøc vµ trao ®æi, m« h×nh E-R th−êng ®−îc biÓu diÔn d−íi d¹ng mét ®å thÞ, trong ®ã c¸c nót lµ c¸c thùc thÓ, cßn c¸c cung lµ c¸c mèi quan hÖ (c¸c kiÓu liªn kÕt c¸c thùc thÓ).
M« h×nh ®−îc lËp nh− sau:
Mçi thùc thÓ ®−îc biÓu diÔn b»ng mét h×nh ch÷ nhËt cã 2 phÇn: phÇn trªn lµ tªn thùc thÓ (viÕt in), phÇn d−íi chøa danh s¸ch c¸c thuéc tÝnh, trong ®ã thuéc tÝnh kho¸ ®−îc ®¸nh dÊu (mçi thùc thÓ chØ x¸c ®Þnh mét kho¸-tèi tiÓu). Tªn thùc thÓ th−êng lµ danh tõ (chØ ®èi t−îng).
Mét mèi quan hÖ ®−îc biÓu diÔn th−êng b»ng h×nh thoi/elÝp, ®−îc nèi b»ng nÐt liÒn tíi c¸c thùc thÓ tham gia vµo mèi quan hÖ ®ã. Trong h×nh thoi lµ tªn cña mèi quan hÖ còng ®−îc viÕt in, danh s¸ch c¸c thuéc tÝnh cña nã th× ®−îc viÕt th−êng. Tªn cña mèi quan hÖ th−êng lµ ®éng tõ chñ ®éng hay bÞ ®éng. Trong ph−¬ng ph¸p MERISE, mèi quan hÖ th−êng ®−îc biÓu diÔn b»ng h×nh elÝp. M« h×nh E_R cuèi cïng th−êng mèi quan hÖ kh«ng cßn lo¹i N-N. Trong mèi quan hÖ nhÞ nguyªn th× ë hai ®Çu mót c¸c ®−êng nèi, s¸t víi thùc thÓ, ng−êi ta vÏ ®−êng ba chÏ (cßn gäi lµ ®−êng ch©n gµ) vÒ phÝa cã kho¸ ngo¹i (kho¸ liªn kÕt) thÓ hiÖn nhiÒu, cßn phÝa kia thÓ hiÖn mét. B¶n sè trong mçi ®Æc t¶ mèi quan hÖ gi÷a 2 thùc thÓ lµ cÆp Max cña hai b¶n sè x¸c ®Þnh trong ®Æc t¶ vµ ®−îc gäi lµ b¶n sè trùc tiÕp.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
188
Chó ý:
+ Mèi quan hÖ cã thÓ kh«ng cã thuéc tÝnh. Khi cã, ta th−êng gäi lµ thuéc tÝnh riªng vµ còng ®−îc viÕt trong h×nh thoi song nhí r»ng chØ viÕt ch÷ th−êng (ph©n biÖt tªn cña mèi quan hÖ viÕt b»ng ch÷ in)
+ Gi÷a 2 thùc thÓ cã thÓ cã nhiÒu mèi quan hÖ vµ chóng cÇn vÏ riªng rÏ, kh«ng chËp vµo nhau.
ViÖc chuyÓn tõ hÖ l−îc ®å quan hÖ sang s¬ ®å E-R ®−îc thùc hiÖn theo c¸c b−íc sau:
B−íc 1:
Tõ mçi l−îc ®å quan hÖ, vÏ mét h×nh ch÷ nhËt bao gåm tªn l−îc ®å cïng víi c¸c thuéc tÝnh cña nã:
VÝ dô: Cho l−îc ®å quan hÖ:
VATTU (Mavattu,Tenvatu, Donvitinh, TyleVAT)
B−íc 2: X¸c ®Þnh quan hÖ (thÓ hiÖn b»ng ®−êng nèi) gi÷a 2 thùc
thÓ (thÓ hiÖn b»ng h×nh ch÷ nhËt) bÊt kú.
B−íc 2.1: X¸c ®Þnh nhãm thuéc tÝnh chung.
NÕu kh«ng cã nhãm thuéc tÝnh chung th× kÕt luËn: kh«ng cã quan hÖ
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
189
ë ®©y, hai thùc thÓ vËt t− vµ dßng vËt t− cã nhãm thuéc
tÝnh chung lµ m· vËt t−.
B−íc 2.2: KiÓm tra nhãm thuéc tÝnh chung ®ã cã ph¶i lµ kho¸
chÝnh cña 1 trong 2 thùc thÓ? ë ®©y cã m· vËt t− lµ kho¸ chÝnh trong
vËt t−.
NÕu kh«ng cã th× kÕt luËn kh«ng cã quan hÖ: tªn c«ng ty lµ thuéc tÝnh chung nh−ng kh«ng ph¶i lµ kho¸ chÝnh cña thùc thÓ nµo c¶.
B−íc 2.3: KÕt luËn tån t¹i kho¸ ngo¹i: Nhãm thuéc tÝnh chung ë bªn thùc thÓ kh«ng ph¶i lµ khãa chÝnh mµ sÏ lµ khãa ngo¹i.
B−íc 3: VÏ ®−êng nèi gi÷a 2 h×nh ch÷ nhËt vµ ®−êng 3 chÏ g¾n víi thùc thÓ chøa kho¸ ngo¹i.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
190
KÕt qu¶, tõ hÖ 5 l−îc ®å quan hÖ ®· chuÈn ho¸ 3NF:
KHACH (Makhach, Tenkhach, Diachi, Dienthoai)
KHO (M· kho, ®Þa chØ kho)
VATTU (Mavattu, Tenvatu, Donvitinh, TyleVAT)
DONGVATTU (Sophieu, Mavattu, Soluong)
PHIEUNHAP (Sophieu, Ngaynhap, Makhach, Makho, hinhthucthanhtoan, Loaitien)
ta x©y dùng ®−îc s¬ ®å E-R nh− sau:
H×nh 3.21. S¬ ®å E-R t−¬ng øng víi hÖ l−îc ®å quan hÖ ®· chuÈn ho¸ ®Õn 3NF
Chó ý:
1. CHINHANH (M· chi nh¸nh, tªn chi nh¸nh, m· c«ng ty)
2. CONGTY (M· c«ng ty, tªn c«ng ty, ®Þa chØ c«ng ty)
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
191
3. DUAN (M· dù ¸n, tªn dù ¸n, m· chi nh¸nh)
4. NHANVIEN (M· nh©n viªn, tªn nh©n viªn, ®Þa chØ nh©n viªn, m· chi nh¸nh, M· nghÒ*, tr×nh ®é nghÒ*) (thuéc tÝnh cã dÊu * lμ thuéc tÝnh lÆp)
5. NGHE (M· nghÒ, tªn nghÒ)
§Æc t¶ quan hÖ gi÷a c¸c thùc thÓ:
NhËn thÊy:
4. NHANVIEN (M· nh©n viªn, tªn nh©n viªn, ®Þa chØ nh©n viªn, m· chi nh¸nh, M· nghÒ*, tr×nh ®é nghÒ*) cho biÕt 1 nh©n viªn cã nhiÒu nghÒ.
5. NGHE (M· nghÒ, tªn nghÒ): 1 nghÒ cã thÓ cã nhiÒu nh©n viªn ®−îc ®µo t¹o. V× vËy ta cã:
NhËn xÐt: C¸ch gi¶i quyÕt nµy ®ßi hái kinh nghiÖm cña ng−êi
ph©n tÝch.
NhËn thÊy:
Quan hÖ NHANVIEN nÕu t¸ch thµnh 2 quan hÖ ®¹t chuÈn 1:
4. NHANVIEN (M·nh©nviªn, tªnnh©nviªn, ®ÞachØnh©nviªn, m·chinh¸nh)
6. TRINHDO (M· nh©n viªn, M· nghÒ, tr×nh ®é nghÒ)
th× ta còng cã t−¬ng ®−¬ng (1):
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
192
HÖ míi cã 6 l−îc ®å (thªm TRINHDO) nh−ng s¬ ®å E_R nh− nhau.
NhËn xÐt: dÔ ®Æc t¶ h¬n: ®Çu tiªn lµ chuÈn ho¸; sau ®ã x¸c ®Þnh
kho¸ liªn kÕt ®Ó vÏ s¬ ®å ®Æc t¶ mèi quan hÖ gi÷a 2 thùc thÓ.
NhËn thÊy:
Tõ quan hÖ 4. NHANVIEN vµ 5. NGHE, cã ®Æc t¶ quan hÖ gi÷a chóng (dùa vµo viÖc x¸c ®Þnh K ngo¹i):
NhËn xÐt:
Ph−¬ng ph¸p nµy rÊt tù nhiªn: ®Çu tiªn dùa vµo kho¸ liªn kÕt ®Ó ®Æc t¶ mèi quan hÖ gi÷a hai thùc thÓ, sau ®ã chuÈn ho¸.
Tr−êng hîp hÖ l−îc ®å ®¹t 3NF cã nguån gèc tõ m« h×nh kh¸i niÖm d÷ liÖu th× ta dùa vµo chÝnh m« h×nh kh¸i niÖm d÷ liÖu ®Ó x¸c ®Þnh m« h×nh E_R (khung thiÕt kÕ).
3.3.2.6. VÝ dô
VÝ dô 1- Ph−¬ng ph¸p m« h×nh:
Mét c¬ së b¸n hµng sö dông hai lo¹i chøng tõ sau ®Ó theo dâi ho¹t ®éng kinh doanh cña m×nh:
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
193
a. §¬n §Æt hμng
Sè ho¸ ®¬n: Ngμy ®Æt:
Ng−êi ®Æt hμng:
§Þa chØ:
STT Tªn hμng M« t¶ hμng §¬n vÞ tÝnh Sè l−îng (®Æt)
b. phiÕu giao hμng
Sè phiÕu: Ngμy giao:
Tªn kh¸ch hμng:
§Þa chØ:
N¬i giao hμng:
STT Tªn hμng §¬n vÞ tÝnh §¬n gi¸ Sè l−îng (giao) Thμnh tiÒn
TONGTIEN:
CÇn thiÕt kÕ CSDL lo¹i quan hÖ (bao gåm c¸c file d÷ liÖu vµ s¬ ®å m« h×nh d÷ liÖu) tõ c¸c tµi liÖu trªn ®Ó qu¶n lý ho¹t ®éng b¸n hµng.
Gi¶ thiÕt: §¬n gi¸ giao kh«ng chØ phô thuéc vµo m· hµng (cã thÓ phô thuéc vµo kh¸ch, sè l−îng, thêi gian).
Thñ tôc tiÕn hμnh: PhÇn trªn, c¸c b−íc 1, 2, 3, 4 ®· thùc hiÖn vµ chóng ta ®· cã m« h×nh kh¸i niÖm d÷ liÖu sau (h×nh 3.5):
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
194
Chóng ta tiÕp tôc c¸c b−íc cßn l¹i:
5. ChuyÓn m« h×nh kh¸i niÖm d÷ liÖu sang m« h×nh quan hÖ
HANG, KHACH chuyÓn sang d¹ng l−îc ®å theo quy t¾c c¬ b¶n ta cã:
HANG (m· hμng, Tªn hμng, M« t¶ hμng, §¬n vÞ hμng)
KHACH (m· kh¸ch, Tªn kh¸ch, §Þa chØ kh¸ch)
DONDAT, PHIEUGIAO chuyÓn sang l−îc ®å quan hÖ theo quy t¾c 2 ta cã:
DONDAT (Sè ®¬n ®Æt, Ngμy ®Æt hμng, m· kh¸ch)
PHIEUGIAO (Sè phiÕu giao, N¬i giao, Ngμy giao, m· kh¸ch)
R2, R4 chuyÓn sang l−îc ®å quan hÖ theo quy t¾c 3 ta cã:
DONGDON (Sè ®¬n ®Æt, m· hμng, SL ®Æt)
DONGPHIEU (Sè phiÕu giao, m· hμng, gi¸, SL giao)
KÕt qu¶, chóng ta cã hÖ l−îc ®å quan hÖ sau:
1. HANG (M· hμng, Tªn hμng, M« t¶ hμng, §¬n vÞ hμng)
2. KHACH (M· kh¸ch, Tªn kh¸ch, §Þa chØ kh¸ch)
3. DONDAT (Sè ®¬n ®Æt, Ngμy ®Æt hμng, m· kh¸ch)
4. PHIEUGIAO (Sè phiÕu giao, N¬i giao, Ngμy giao, m· kh¸ch)
5. DONGDON (Sè ®¬n ®Æt, m· hμng, SL ®Æt)
6. DONGPHIEU (Sè phiÕu giao, m· hμng, gi¸, SL giao)
6. TiÕn hμnh chuÈn ho¸ c¸c quan hÖ nhËn ®−îc ®Õn 3NF
C¶ 6 l−îc ®å trªn ®Òu ®¹t chuÈn 3NF
7. VÏ s¬ ®å E_R: H×nh 3.22.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
195
H×nh 3.22
VÝ dô 2: Ph−¬ng ph¸p trùc gi¸c
Thñ tôc tiÕn hμnh:
PhÇn trªn, c¸c b−íc 1, 2, 3, 4 ®· thùc hiÖn vµ chóng ta ®· cã m« h×nh kh¸i niÖm d÷ liÖu sau (h×nh 3.9):
ChuyÓn m« h×nh kh¸i niÖm d÷ liÖu sang m« h×nh quan hÖ:
HANG, KHACH chuyÓn sang d¹ng l−îc ®å quan hÖ thµnh:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
196
HANG (M· hμng, Tªn hμng, M« t¶ hμng, §¬n vÞ hμng)
KHACH (M· kh¸ch, Tªn kh¸ch, §Þa chØ kh¸ch)
DAT, GIAO chuyÓn sang l−îc ®å quan hÖ thµnh:
DONDAT (Sè ®¬n, Ngμy ®Æt, sè l−îng ®Æt*, m· kh¸ch, m· hμng*)
PHIEUGIAO (Sè phiÕu, N¬i giao, Ngμy giao, sè l−îng giao*, ®¬n gi¸ giao*, m· kh¸ch, m· hμng*)
ChuÈn ho¸: Hai quan hÖ:
HANG (M· hμng, Tªn hμng, M« t¶ hμng, §¬n vÞ hμng)
KHACH (M· kh¸ch, Tªn kh¸ch, §Þa chØ kh¸ch)
®Òu ®¹t 3NF.
Cßn 2 quan hÖ:
DONDAT (Sè ®¬n, Ngμy ®Æt, sè l−îng ®Æt*, m· kh¸ch, m· hμng*)
PHIEUGIAO (Sè phiÕu, N¬i giao, Ngμy giao, sè l−îng giao*, ®¬n gi¸ giao*, m· kh¸ch, m· hμng*)
kh«ng ®¹t chuÈn 1 v× cßn thuéc tÝnh lÆp. §Ó ®¹t 1NF, ta t¸ch chóng thµnh:
DONGDON (Sè ®¬n, sè l−îng ®Æt, m· hμng)
DONDAT (Sè ®¬n, Ngμy ®Æt, m· kh¸ch,)
DONGPHIEU (Sè phiÕu, sè l−îng giao, ®¬n gi¸ giao, m· hμng)
PHIEUGIAO (Sè phiÕu, N¬i giao, Ngμy giao, m· kh¸ch)
KÕt qu¶, chóng ta cã hÖ l−îc ®å quan hÖ sau gièng nh− vÝ dô trªn:
1. HANG (M· hμng, Tªn hμng, M« t¶ hμng, §¬n vÞ hμng)
2. KHACH (M· kh¸ch, Tªn kh¸ch, §Þa chØ kh¸ch)
3. DONDAT (Sè ®¬n, Ngμy ®Æt, m· kh¸ch)
4. PHIEUGIAO (Sè phiÕu, N¬i giao, Ngμy giao, m· kh¸ch)
5. DONGDON (Sè ®¬n ®Æt, m· hμng, sè l−îng ®Æt)
6. DONGPHIEU (Sè phiÕu, m· hμng, ®¬n gi¸ giao, sè l−îng giao)
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
197
3.3.3. ThiÕt kÕ c¬ së d÷ liÖu logic dùa trªn “Ph−¬ng ph¸p tõ ®iÓn”
Trong mét sè tr−êng hîp, c¸c d÷ liÖu thu ®−îc lµ nh÷ng hå s¬, ®Çu vµo chøa tÊt c¶ d÷ liÖu cÇn thiÕt ®Ó x©y dùng c¬ së d÷ liÖu. Khi ®ã ng−êi ta cã thÓ lËp c¸c tõ ®iÓn mμ mçi tμi liÖu ®−îc xem nh− mét thùc
thÓ vèn ®· tån t¹i. Qu¸ tr×nh x©y dùng c¬ së d÷ liÖu ®−îc b¾t ®Çu tõ “tõ
®iÓn d÷ liÖu” thu ®−îc. §©y lµ mét ph−¬ng ph¸p ®−îc sö dông rÊt sím tõ khi cã m« h×nh d÷ liÖu quan hÖ.
Quy tr×nh thiÕt kÕ mét CSDL cã thÓ ®−îc m« t¶ nh− sau:
1. Mçi hå s¬ gèc ®−îc xem nh− mét thùc thÓ. LiÖt kª tõng thùc thÓ
vµ tÊt c¶ c¸c th«ng tin ®Æc tr−ng trong nã xem nh− nh÷ng thuéc tÝnh cña thùc thÓ ®ã.
2. ChÝnh x¸c ho¸ th«ng tin lµ nh÷ng thuéc tÝnh cña c¸c thùc thÓ,
sao cho hai th«ng tin cã cïng tªn gäi trong toµn tõ ®iÓn ph¶i cïng nghÜa. NÕu chóng cã nghÜa kh¸c nhau th× tªn gäi ph¶i kh¸c nhau.
3. Chän läc vμ m· ho¸ c¸c th«ng tin thu ®−îc theo nguyªn t¾c sau:
- §i lÇn l−ît tõ trªn xuèng d−íi.
- C¸c thùc thÓ vµ thuéc tÝnh ®−îc m· ho¸ b»ng tªn míi ®¶m b¶o yªu cÇu cña hÖ qu¶n trÞ CSDL sÏ sö dông ®Ó x©y dùng c¸c file cho nã.
- NÕu mét thuéc tÝnh lµ thuéc tÝnh tªn gäi mµ lÇn ®Çu tiªn gÆp nã
vµ cã thÓ sö dông lµm ®Þnh danh cho thùc thÓ t−¬ng øng víi nã th× sö
dông lµm ®Þnh danh vµ ®¸nh dÊu nã. NÕu kh«ng thÓ lµm ®Þnh danh th× ph¶i thªm mét thuéc tÝnh ®Þnh danh cho thuéc tÝnh nµy vµ tiÕn hµnh m· ho¸ chóng.
- NÕu thuéc tÝnh lµ tªn gäi gÆp lÇn thø 2 trë ®i th× thay nã b»ng
thuéc tÝnh ®Þnh danh t−¬ng øng ë trªn.
- NÕu mét thuéc tÝnh kh«ng ph¶i lµ ®Þnh danh hoÆc tªn gäi (tøc lµ
thuéc tÝnh m« t¶) gÆp lÇn ®Çu th× nã ®−îc chän vµ m· ho¸. NÕu lµ
thuéc tÝnh m« t¶ gÆp lÇn thø 2 trë ®i th× bá qua.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
198
- NÕu mét thuéc tÝnh m« t¶ lµ thuéc tÝnh trung gian (cã thÓ suy ra
tõ c¸c thuéc tÝnh ®· ®−îc m· ho¸) th× còng bá qua. VÝ dô nh− “thµnh tiÒn” ®−îc suy tõ “®¬n gi¸” vµ “sè l−îng”
4. X¸c ®Þnh c¸c thuéc tÝnh lÆp trong c¸c thùc thÓ nhËn ®−îc (thuéc tÝnh trong b¶ng).
5. X¸c ®Þnh thuéc tÝnh ®Þnh danh cña c¸c thùc thÓ (hå s¬ gèc) (®¸nh dÊu b»ng g¹ch d−íi thuéc tÝnh)
6. TiÕn hµnh chuÈn ho¸ c¸c thùc thÓ ®· m· ho¸ ®Ó thu ®−îc c¸c quan hÖ ®¹t chuÈn 3NF
7. TiÕn hµnh tÝch hîp c¸c quan hÖ ®· ®−îc chuÈn hãa, x¸c ®Þnh c¸c kho¸ chÝnh, kho¸ ngo¹i cña chóng. KÕt qu¶ thu vÒ 1 hÖ l−îc ®å quan hÖ ®· ®−îc chuÈn ho¸ ®Õn 3NF sao cho hÖ c¸c l−îc ®å quan hÖ
®ã t¹o thµnh mét hÖ Sperner (K lµ mét hÖ Sperner nÕu víi ∀A,B ∈ K
⇒ kh«ng x¶y ra: A ⊆ B hoÆc B ⊆ A)
8. VÏ s¬ ®å E_R
- Mçi quan hÖ t−¬ng øng víi mét h×nh ch÷ nhËt, phÇn trªn lµ tªn quan hÖ, phÇn d−íi lµ c¸c thuéc tÝnh cña nã
- §¸nh dÊu thuéc tÝnh khãa (in ®Ëm, g¹ch d−íi, …)
- Hai quan hÖ ®−îc nèi víi nhau nÕu chóng cã mèi quan hÖ (thÓ hiÖn chóng cã kho¸ ngo¹i)
- B¶n sè trùc tiÕp gi÷a 2 thùc thÓ ®−îc kiÓm nghiÖm dùa trªn ý nghÜa thùc tiÔn cña nã hoÆc dùa vµo kho¸ ngo¹i.
Chó ý:
ViÖc x¸c ®Þnh mèi liªn kÕt (vÏ ®−îc ®−êng nèi) gi÷a 2 thùc thÓ dùa trªn c¸c kÕt qu¶ cña c«ng viÖc truy xÐt sau:
+ T×m ®−îc nhãm thuéc tÝnh chung gi÷a 2 quan hÖ: nÕu t¹i 1 quan hÖ, nhãm thuéc tÝnh ®ã lµ kho¸ chÝnh th× chóng sÏ lµ kho¸ ngo¹i cña quan hÖ cßn l¹i, tøc lµ tån t¹i liªn kÕt gi÷a 2 quan hÖ ®ã. Khi ®ã ta kÎ
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
199
®−îc 1 ®−êng nèi liªn kÕt gi÷a chóng. §−êng ba chÏ sÏ g¾n víi quan hÖ chøa kho¸ ngo¹i.
+ NÕu kh«ng t×m ®−îc nhãm thuéc tÝnh chung hoÆc cã nhãm thuéc tÝnh chung nh−ng chóng kh«ng lµ kho¸ chÝnh cña mét quan hÖ nµo c¶ th× 2 quan hÖ ®ã sÏ kh«ng cã liªn kÕt, tøc lµ kh«ng cã ®−êng nèi gi÷a chóng.
VÝ dô:
Mét c«ng ty kinh doanh quan t©m ®Õn hai lo¹i chøng tõ sau ®Ó theo dâi ho¹t ®éng xuÊt nhËp vËt t− cña m×nh:
PhiÕu nhËp
Sè phiÕu:......
Ngμy:
Tªn Nhμ cung cÊp:
§Þa chØ:
§iÖn tho¹i: M· kho:
§Þa chØ kho:
STT Tªn vËt t−
Sè l−îng
§¬n vÞ tÝnh
§¬n gi¸
Tû lÖ VAT
Thμnh tiÒn
Tæng céng tiÒn
PhiÕu xuÊt
Sè phiÕu:......
Ngμy:
Tªn kh¸ch hμng:
§Þa chØ:
§iÖn tho¹i: M· kho:
§Þa chØ kho:
STT Tªn vËt t−
Sè l−îng
§¬n vÞ tÝnh
§¬n gi¸
Tû lÖ VAT
Thμnh tiÒn
Tæng céng tiÒn
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
200
B−íc 1: LiÖt kª, chÝnh x¸c ho¸ th«ng tin, ch¾t läc th«ng tin vμ m· ho¸
B¶ng 3.12. Danh s¸ch thuéc tÝnh cÇn qu¶n lý
Thùc thÓ -Thuéc tÝnh ChÝnh x¸c ho¸ d÷ liÖu
phiÕu nhËp PHIEUNHAP
Sè phiÕu (nhËp) Sophieunhap
Ngμy (nhËp) Ngaynhap
Tªn Nhμ cung cÊp TenNCC
+ M· Nhμ cung cÊp (1) MaNCC (thªm)
§Þa chØ (nhμ cung cÊp) §/cNCC
§iÖn tho¹i (nhμ cung cÊp) TeleNCC
M· kho Makho
§Þa chØ kho §/ckho
Sè thø tù (lÆp) (2) (bá)
Tªn vËt t− (lÆp) Tenvattu*
+ M· vËt t− (1) Mavattu* (thªm)
Sè l−îng (nhËp) (lÆp) Slnhap*
§¬n vÞ tÝnh (lÆp) §/Vtinh*
§¬n gi¸ (nhËp) (lÆp) §ongianhap*
Tû lÖ VAT (lÆp) TyleVAT
Thμnh tiÒn (lÆp) (bá)
Tæng tiÒn (nhËp) (5) (bá)
PhiÕu xuÊt Phieuxuat
Sè phiÕu (xuÊt) Sophieuxuat
Ngμy (xuÊt) Ngayxuat
+ M· kh¸ch hμng (1) Makhach (thªm)
Tªn kh¸ch hμng Tenkhach
§Þa chØ (kh¸ch) §/ckhach
§iÖn tho¹i (kh¸ch) Telekhach
M· kho Makho
§Þa chØ kho (4) (bá)
Sè thø tù (lÆp) (2) (bá)
Tªn vËt t− → M· vËt t− (3) Mavattu*
Sè l−îng (xuÊt) (lÆp) Slxuat*
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
201
§¬n vÞ tÝnh (lÆp) (4) (bá)
§¬n gi¸ (xuÊt) (lÆp) Dongiaxuat*
Tû lÖ VAT (lÆp) (4) (bá)
Thμnh tiÒn (lÆp) (bá)
Tæng tiÒn (xuÊt) (5) (bá)
Chó thÝch:
1. “Tªn nhμ cung cÊp” lµ thuéc tÝnh tªn gäi cña thùc thÓ “Nhµ cung
cÊp”, kh«ng x¸c ®Þnh mçi nhµ cung cÊp cô thÓ v× Nhµ cung cÊp cã thÓ trïng tªn. V× vËy ph¶i thªm thuéc tÝnh “M· Nhμ cung cÊp” (MaNCC)
lµm thuéc tÝnh ®Þnh danh cho “Nhµ cung cÊp”. T−¬ng tù thªm “M· vËt t−” vµ “m· kh¸ch hµng”
2. Sè thø tù ®Ó ®¸nh sè mçi dßng ho¸ ®¬n chØ cã ý nghÜa trong ho¸ ®¬n nµy, kh«ng cho th«ng tin g× kh¸c, kh«ng cÇn l−u tr÷.
3. Thuéc tÝnh tªn gäi, ®· cã thuéc tÝnh m· ho¸ ®i kÌm, ®· gÆp mét lÇn ë trªn nªn bá ®i. NÕu kh«ng cã thuéc tÝnh m· ho¸ ®i kÌm th× thay b»ng m· ho¸.
4. C¸c thuéc tÝnh m« t¶, ®· gÆp mét lÇn ë trªn nªn bá ®i.
5. Thuéc tÝnh thμnh tiÒn = (®¬n gi¸ giao) x (sè l−îng giao), hai
thuéc tÝnh nµy ®· ®−îc chän ë trªn ta cã thÓ tÝnh ®−îc “thμnh tiÒn” nªn kh«ng cÇn l−u tr÷ thuéc tÝnh nµy. T−¬ng tù nh− vËy, thuéc tÝnh tæng tiÒn còng kh«ng cÇn l−u tr÷.
Thuéc tÝnh cã dÊu (*) biÓu thÞ c¸c thuéc tÝnh lÆp.
B−íc 2: X¸c ®Þnh c¸c thuéc tÝnh cÇn qu¶n lý vμ c¸c phô thuéc hμm
Theo b¶ng liÖt kª trªn ta cã tËp c¸c thuéc tÝnh cÇn qu¶n lý víi c¸c phô thuéc hµm nh− sau:
R1 = {Sophieunhap, Ngaynhap, MaNCC, TenNCC, §/cNCC, TeleNCC, Makho, §/ckho, Mavattu*, Tenvattu*, Slnhap*, §/v tÝnh*, §ongianhap*, TyleVAT*}
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
202
Sophieunhap → Ngaynhap, MaNCC, TenNCC, §/cNCC, TeleNCC, Makho, §/ckho.
Mavattu → Tenvattu, §/vtinh, TyleVAT
Sophieunhap, Mavattu → Slnhap, §ongianhap
R2 = {Sophieuxuat, Ngayxuat, Makhach, tenkhach, §/ckhach, telekhach, makho, Mavattu*, Slxuat*, dongiaxuat*}
Sophieuxuat → Ngayxuat, Makhach, Tenkhach,
§/ckhach, Telekhach, Makho
Sophieuxuat, Mavattu → SLxuat, Dongiaxuat
Tõ ®©y, ta x¸c ®Þnh ®−îc kho¸ trong l−îc ®å quan hÖ t−¬ng øng cho R1 vµ R2 nh− sau:
Phieunhap (Sophieunhap, Ngaynhap, MaNCC, TenNCC, §/cNCC, TeleNCC, Makho, §/ckho, Mavattu*, Tenvattu*, Slnhap*, §/v tÝnh*, §ongianhap*, TyleVAT*)
Phieuxuat (Sophieuxuat, Ngayxuat, Makhach, Tenkhach, §/ckhach, Telekhach, Makho, Mavattu*, Slxuat*, dongiaxuat*)
v× bao ®ãng {Sophieunhap, Mavattu}+ = R1
vµ bao ®ãng {Sophieuxuat, Mavattu}+ = R2
Kho¸ trong hai l−îc ®å chÝnh lµ kho¸ tèi tiÓu.
B−íc 3: TiÕn hμnh chuÈn ho¸
ViÖc tiÕn hµnh chuÈn ho¸ sÏ dùa theo c¸c quy t¾c ®· nªu trong c¸c ch−¬ng tr−íc.
NhËn thÊy r»ng hai l−îc ®å:
Phieunhap (Sophieunhap, Ngaynhap, MaNCC, TenNCC, §/cNCC, TeleNCC, Makho, §/ckho, Mavattu*, Tenvattu*, Slnhap*, §/v tÝnh*, §ongianhap*, TyleVAT*)
Phieuxuat (Sophieuxuat, Ngayxuat, Makhach, tenkhach, §/ckhach, telekhach, makho, Mavattu*, Slxuat*, dongiaxuat*)
ch−a ®¹t chuÈn 1 v× cßn cã thuéc tÝnh lÆp.
F1 =
F2 =
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
203
§Ó ®¹t chuÈn 1NF ta t¸ch chóng thµnh c¸c l−îc ®å con:
Phieunhap1 (Sophieunhap, Mavattu, Tenvattu, Slnhap, §/v tÝnh, §ongianhap, TyleVAT)
Phieunhap2 (Sophieunhap, Ngaynhap, MaNCC, TenNCC, §/cNCC, TeleNCC, Makho, §/ckho)
Phieuxuat1 (Sophieuxuat, Mavattu, Slxuat, §ongiaxuat)
Phieuxuat2 (Sophieuxuat, Ngayxuat, Makhach, tenkhach, §/ckhach, telekhach, makho)
XÐt chuÈn 2:
Phieunhap1 (Sophieunhap, Mavattu, Tenvattu, Slnhap, §/v tÝnh, §ongianhap, TyleVAT)
Cã Mavattu → Tenvattu, §/v tÝnh, TyleVAT), mµ Mavattu lµ mét phÇn cña kho¸ nªn PHIEUNHAP1 kh«ng ®¹t 2NF. §Ó ®¹t 2NF ta t¸ch nã thµnh c¸c l−îc ®å con:
(1) VATTU (Mavattu, Tenvattu, §/v tÝnh, TyleVAT)
(2) DONGNHAP (Sophieunhap, Mavattu, Slnhap, §ongianhap,)
Phieunhap2 (Sophieunhap, Ngaynhap, MaNCC, TenNCC, §/cNCC, TeleNCC, Makho, §/ckho)
Phieunhap2 ®−¬ng nhiªn ®¹t chuÈn 2NF v× nhãm thuéc tÝnh kho¸ chØ cã mét thuéc tÝnh. VËy:
(3) Phieunhap2 (Sophieunhap, Ngaynhap, MaNCC, TenNCC, §/cNCC, TeleNCC, Makho, §/ckho)
(4) DONGxuat (Sophieuxuat, Mavattu, Slxuat, §ongiaxuat)
®¹t 2NF v× kh«ng tån t¹i thuéc tÝnh ngoμi kho¸ nμo phô thuéc vμo mét phÇn cña kho¸ c¶.
Phieuxuat2 (Sophieuxuat, Ngayxuat, Makhach, Tenkhach, §/ckhach, telekhach, makho)
PHIEUXUAT2 ®−¬ng nhiªn ®¹t chuÈn 2NF v× nhãm thuéc tÝnh kho¸ chØ cã mét thuéc tÝnh. VËy:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
204
(5) Phieuxuat2 (Sophieuxuat, Ngayxuat, Makhach, Tenkhach,
§/ckhach, Telekhach, Makho)
KÕt qu¶ ta cã hÖ l−îc ®å sau ®¹t chuÈn 2NF:
(1) VATTU (Mavattu, Tenvattu, §/v tÝnh, TyleVAT)
(2) DONGNHAP (Sophieunhap, Mavattu, Slnhap, §ongianhap)
(3) Phieunhap2 (Sophieunhap, Ngaynhap, MaNCC, TenNCC,
§/cNCC, TeleNCC, Makho, §/ckho)
(4) DONGXUAT (Sophieuxuat, Mavattu, SLxuat, §ongiaxuat)
(5) Phieuxuat2 (Sophieuxuat, Ngayxuat, Makhach, Tenkhach,
§/ckhach, Telekhach, Makho)
XÐt chuÈn 3:
C¸c quan hÖ (1), (2), (4) ®−¬ng nhiªn ®¹t chuÈn 3NF v× kh«ng cã thuéc tÝnh cÇu
(1) VATTU (Mavattu, Tenvattu, §/v tÝnh, TyleVAT)
(2) DONGNHAP (Sophieunhap, Mavattu, Slnhap, §ongianhap)
(4) DONGXUAT (Sophieuxuat, Mavattu, SLxuat, §ongiaxuat)
Cã quan hÖ (3):
(3) Phieunhap2 (Sophieunhap, Ngaynhap, MaNCC, TenNCC,
§/cNCC, TeleNCC, Makho, §/ckho)
MaNCC → TenNCC, D/cNCC, TeleNCC
Makho → §/ckho
Mµ MaNCC vµ Makho lµ c¸c thuéc tÝnh ngoµi kho¸ nªn nã chÝnh lµ c¸c thuéc tÝnh cÇu. VËy quan hÖ nµy kh«ng ®¹t 3NF.
§Ó quan hÖ nµy ®¹t ®−îc 3NF ta t¸ch nã thµnh c¸c quan hÖ con:
(3.1) NHACC (MaNCC, TenNCC, §/cNCC, TeleNCC)
(3.2) KHO (Makho, §/ckho)
(3.3) Phieunhap (Sophieunhap, Ngaynhap, MaNCC, Makho)
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
205
Cã quan hÖ 5:
(5) Phieuxuat2 (Sophieuxuat, Ngayxuat, Makhach, Tenkhach, §/ckhach, Telekhach, Makho)
Makhach → Tenkhach, §/ckhach, Telekhach
Mµ Makhach lµ thuéc tÝnh ngoµi kho¸ nªn nã chÝnh lµ thuéc tÝnh cÇu. VËy quan hÖ nµy kh«ng ®¹t 3NF.
§Ó quan hÖ nµy ®¹t ®−îc 3NF ta t¸ch nã thµnh c¸c quan hÖ con:
(5.1) KHACH (Makhach, Tenkhach, §/ckhach, Telekhach)
(5.2) Phieuxuat (Sophieuxuat, Ngayxuat, Makhach, Makho)
Tæng hîp kÕt qu¶ trªn, ta cã hÖ l−îc ®å sau ®¹t chuÈn 3:
(1) VATTU (Mavattu, Tenvattu, §/v tÝnh, TyleVAT)
(2) DONGNHAP (Sophieunhap, Mavattu, Slnhap, §ongianhap)
(3) NHACC (MaNCC, TenNCC, §/cNCC, TeleNCC)
(4) KHO (Makho, §/ckho)
(5) Phieunhap (Sophieunhap, Ngaynhap, MaNCC, Makho)
(6) DONGXUAT (Sophieuxuat, Mavattu, SLxuat, §ongiaxuat)
(7) KHACH (Makhach, Tenkhach, §/ckhach, Telekhach)
(8) Phieuxuat (Sophieuxuat, Ngayxuat, Makhach, Makho)
B−íc 4: VÏ s¬ ®å E-R
S¬ ®å E-R ®−îc vÏ theo nguyªn t¾c sau:
- Mçi l−îc ®å ®−îc biÓu diÔn b»ng mét h×nh ch÷ nhËt gåm tªn (viÕt hoa) vµ c¸c thuéc tÝnh, thuéc tÝnh kho¸ ®−îc g¹ch ch©n hoÆc in ®Ëm, kho¸ liªn kÕt/kho¸ ngo¹i ®−îc ®¸nh dÊu a hoÆc in nghiªng hoÆc dïng ch÷ FK (foreign key).
- X¸c ®Þnh liªn kÕt gi÷a 2 thùc thÓ: chóng cã liªn kÕt nÕu ®¶m b¶o ®ñ 2 dÊu hiÖu sau:
+ Cã nhãm thuéc tÝnh chung
+ T¹i mét thùc thÓ nµo ®ã, nhãm thuéc tÝnh chung ®ã lµ kho¸ chÝnh.
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
206
Nh− vËy nhãm thuéc tÝnh ë thùc thÓ cßn l¹i sÏ chÝnh lµ kho¸ ngo¹i/kho¸ liªn kÕt
- Khi ®· x¸c ®Þnh ®−îc kho¸ liªn kÕt ta cã thÓ vÏ ®−êng nèi gi÷a chóng vµ ®−êng ba chÏ sÏ dÝnh vµo thùc thÓ cã chøa kho¸ liªn kÕt.
KÕt qu¶ vËn dông c¸c nguyªn t¾c trªn thu ®−îc s¬ ®å E-R:
Thuéc tÝnh kho¸ ®−îc g¹ch ch©n, kho¸ liªn kÕt/kho¸ ngo¹i ®−îc in nghiªng.
H×nh 3.23. S¬ ®å E-R bμi to¸n xuÊt nhËp vËt t− trong kho
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
207
3.4. ThiÕt kÕ CSDL møc vËt lý
3.4.1. ChuyÓn thiÕt kÕ d÷ liÖu møc logic sang møc vËt lý
Cã hai c¸ch chuyÓn tõ møc logic sang møc vËt lý:
- Sö dông mét ng«n ng÷ lËp tr×nh nµo ®ã
- Sö dông mét hÖ qu¶n trÞ CSDL.
VÝ dô theo c¸ch thø nhÊt ta cã thÓ dïng mét ng«n ng÷ lËp tr×nh nµo ®ã vÝ dô nh− TURBO PASCAL víi c¸c kiÓu d÷ liÖu FILE vµ RECORD ®Ó m« t¶ c¸c b¶n ghi vµ dïng c¸c thñ tôc READ, WRITE, SEEK, POS... ®Ó sinh c¸c thao t¸c cËp nhËt vµ truy nhËp b¶n ghi. C¸ch lµm nh− vËy hiÖu qu¶ rÊt thÊp. Ngµy nay Ýt ng−êi dïng ph−¬ng ph¸p thø nhÊt v× nã ®ßi hái ng−êi lËp tr×nh ph¶i thùc hiÖn toµn bé c¸c chøc n¨ng t¹o lËp cÊu tróc d÷ liÖu, truy nhËp, cËp nhËt vµ xö lý c©u hái.
Gi¶i ph¸p tèt nhÊt lµ nªn sö dông mét hÖ qu¶n trÞ CSDL s½n cã. Nh− ®· biÕt hÇu hÕt c¸c hÖ qu¶n trÞ CSDL ®Òu cung cÊp c¸c ph−¬ng tiÖn m« t¶ d÷ liÖu, thao t¸c, ®¶m b¶o toµn vÑn d÷ liÖu vµ t×m kiÕm. Víi c¸c hÖ qu¶n trÞ CSDL, mét khi ®· thiÕt kÕ xong møc logic th× h·y sö dông c¸c c«ng cô thÝch hîp cña hÖ QTCSDL ®Ó t¹o hÖ thèng ë møc vËt lý. C¸c hÖ CASE (Computer Aided SoftWare Engineering) ngµy nay cßn cho phÐp tù ®éng sinh hÖ thèng (t¹o møc vËt lý) tõ møc logic.
3.4.2. §¸nh gi¸ kh«ng gian l−u tr÷
MÆc dï ®· cã phÇn mÒm tæ chøc CSDL vµ ph−¬ng ph¸p truy nhËp nh−ng ng−êi ph©n tÝch vµ thiÕt kÕ vÉn ph¶i quan t©m ®Õn mét c«ng viÖc kh¸c cã liªn quan ®Õn møc vËt lý lµ ®¸nh gi¸ kh«ng gian l−u tr÷ cÇn thiÕt vµ tèc ®é truy nhËp. §iÒu nµy cÇn ®−îc xem lµ mét phÇn cña c«ng viÖc thiÕt kÕ v× nhê ®ã míi x¸c ®Þnh ®−îc c¸c quy t¾c kü thuËt liªn quan ®Õn kh¶ n¨ng l−u tr÷ cña hÖ thèng vµ phÇn nµo cã liªn quan ®Õn thêi gian tr¶ lêi hÖ thèng. Râ rµng lµ møc logic vÒ d÷ liÖu cã liªn quan trùc tiÕp ®Õn c¸c yÕu tè kh«ng gian l−u tr÷ vµ thêi gian tr¶ lêi cña hÖ thèng.
Víi m« h×nh CSDL ®−îc chän lµ m« h×nh quan hÖ th× ta ph¶i tÝnh to¸n ®−îc kh«ng gian cÇn thiÕt theo sè b¶n ghi, ®é dµi c¸c tÖp phô (nh− tÖp chØ dÉn).
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
208
VÝ dô ta cÇn tÝnh kh«ng gian l−u tr÷ cho hÖ thèng th«ng tin qu¶n lý kho phô tïng ®· nªu trong vÝ dô tr−íc ®©y cña mét nhµ m¸y chØ gåm mét kho. Ta nh¾c l¹i m« h×nh logic cña hÖ thèng víi sù chi tiÕt ho¸ vÒ kiÓu vµ ®é dµi cña thuéc tÝnh. Ta quy −íc kiÓu ch÷ lµ A, kiÓu sè lµ N, kiÓu ngµy lµ D: sè ®Ó trong ngoÆc ®¬n lµ ®é dµi tÝnh theo byte. Khi ®ã cã thÓ −íc tÝnh kh«ng gian cÇn thiÕt cho n¨m ®Çu tiªn nh− trong b¶ng. Còng ph¶i tÝnh kh«ng gian cÇn thiÕt cho c¸c tÖp index. Ngoµi ra cßn −íc tÝnh ®é t¨ng tr−ëng cña CSDL sau mçi chu kú thêi gian (th¸ng hay n¨m) ®Ó cã mét khuyÕn c¸o kü thuËt cho phÝa chñ ®Çu t−.
Víi m« h×nh CSDL lµ m¹ng th× ta ph¶i tÝnh kh«ng gian ®Üa kh«ng chØ cho c¸c b¶n ghi mµ cßn ph¶i tÝnh kh«ng gian cÇn thiÕt cho c¸c liªn kÕt. §Ó lµm viÖc nµy ta cÇn −íc tÝnh mËt ®é trung b×nh cña c¸c liªn kÕt ®èi víi mçi b¶n ghi chñ. Mçi b¶n ghi chñ ngoµi kh«ng gian cÇn thiÕt cho chÝnh nã cßn ph¶i céng thªm kh«ng gian cÇn thiÕt cho c¸c con trá mãc nèi víi c¸c b¶n ghi thµnh viªn. Ta cã thÓ nghÜ r»ng nªn tÝnh kh«ng gian tèi ®a c¨n cø vµo b¶n ghi sè cña b¶n ghi chñ trong mèi quan hÖ. §iÒu nµy kh«ng ph¶i bao giê còng lµm ®−îc nÕu b¶n sè nµy lµ 1: n víi n kh«ng x¸c ®Þnh.
B¶ng 3.13. B¶ng ®¸nh gi¸ kh«ng gian l−u tr÷
Quan hÖ Thuéc tÝnh §é dμi b¶n ghi
Sè b¶n ghi
§é dμi tæng
M· hμng A(12) 80 3000 240000
Tªn hμng A(20)
§¬n vÞ A (12)
§¬n gi¸ N(8)
Tªn kho A(20)
HμNG (mçi lo¹i hμng chØ ®Ó ë 1 kho)
Tån kho N(8)
Sè_phiÕu_nhËp A(6) 20 60 1200
Ngμy_nhËp D(8) (Mét n¨m)
PHIEU_NHAP
M·_NCC A(6)
Sè_phiÕu xuÊt A(6) 24 50x60 72000
M· hμng A(10)
CAC_KHOAN_NHAP (Trung b×nh 50 kho¶n mét phiÕu nhËp)
L−îng nhËp N(8)
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
209
M·_nhμ_cung_cÊp A(5)
100 40 4000
Tªn_NCC A(45)
NHA_CUNG_CAP
§Þa_chØ_NCC A(50)
Sè_phiÕu_xuÊt A(6) 20 1200 2400
Ngμy_xuÊt D(8) (Mét n¨m)
PHIEU_XUAT
M·_kh¸ch A(6)
Sè_phiÕu_xuÊt A(6) 14 2x1200 57600
M· hμng A(10)
CAC_KHOAN_XUAT (Trung b×nh 2 kho¶n mét phiÕu xuÊt)
L−îng xuÊt N(8)
M·_kh¸ch A(5) 100 300 3000
Tªn_kh¸ch A(45)
KHACH_HANG
§Þa_chØ_kh¸ch A(50)
INDEX (20 byte/mét b¶n ghi) 10000 20000
TONG CONG 628800
L−îng t¨ng mçi n¨m (−íc tÝnh) 300000
3.4.3. BiÕn ®æi c¸c l−îc ®å kh¸i niÖm thμnh l−îc ®å vËt lý
Trong giai ®o¹n ph©n tÝch, ta cã c¸c l−îc ®å kh¸i niÖm. §ã lµ c¸c l−îc ®å d÷ liÖu theo m« h×nh E_R hay m« h×nh quan hÖ. Sang giai ®o¹n thiÕt kÕ, cÇn biÕn ®æi c¸c l−îc ®å kh¸i niÖm thμnh c¸c l−îc ®å vËt lý, tøc lµ mét cÊu tróc l−u gi÷ thùc sù cña d÷ liÖu trong bé nhí ngoµi. CÊu tróc nµy th−êng ®−îc chän lùa trong sè c¸c d¹ng sau: c¸c tÖp tuÇn tù, c¸c b¶ng hµm b¨m, c¸c m¹ng cã con trá, c¸c c©y, c¸c quan hÖ,… Mçi cÊu tróc trªn ®Òu cã tÝnh −u viÖt vµ h¹n chÕ riªng nªn tuú hoµn c¶nh cô thÓ cña bµi to¸n mµ chän cho thÝch hîp. Sù c©n nh¾c dùa trªn yªu cÇu truy nhËp d÷ liÖu cña mçi chøc n¨ng trong hÖ thèng ®¶m b¶o nhanh vµ dÔ sö dông, dùa trªn c¸c ®Æc ®iÓm vµ rµng buéc cña cÊu h×nh vËt lý hÖ thèng (phÇn cøng vµ phÇn mÒm sö dông) sao cho thÝch øng ®−îc víi cÊu h×nh ®ã.
ViÖc biÕn ®æi c¸c l−îc ®å kh¸i niÖm thµnh c¸c l−îc ®å vËt lý kÐo theo viÖc thiÕt kÕ d÷ liÖu thµnh 2 b−íc:
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
210
1. Th«ng qua viÖc nghiªn cøu c¸c yªu cÇu truy nhËp mµ biÕn ®æi l−îc ®å kh¸i niÖm thµnh mét d¹ng trung gian gäi lµ l−îc ®å logic vÒ d÷ liÖu.
2. Th«ng qua viÖc nghiªn cøu cÊu h×nh cña hÖ thèng, ®Æc biÖt lµ ng«n ng÷ lËp tr×nh, c¸c hÖ qu¶n trÞ CSDL ®· ®−îc chän dïng mµ biÕn ®æi l−îc ®å logic thµnh l−îc ®å vËt lý thÝch hîp víi cÊu h×nh ®ã.
3.4.3.1. Thμnh lËp l−îc ®å logic
Mäi cÊu tróc l−u tr÷ vËt lý, dï lµ tÖp (tÖp tuÇn tù, tÖp tuÇn tù cã chØ dÉn, tÖp trùc truy,…) hay lµ CSDL (m« h×nh m¹ng, m« h×nh ph©n cÊp, m« h×nh quan hÖ) th× còng ®Òu t¹o nªn tõ c¸c ®¬n vÞ c¬ së lµ c¸c b¶n ghi (mét b¶n ghi cÊu t¹o tõ nhiÒu tr−êng). V× vËy ng−êi ta chän l−îc ®å logic, mét d¹ng trung gian tr−íc khi ®Õn l−îc ®å vËt lý, lμ mét cÊu tróc c¸c kiÓu b¶n ghi. Mçi kiÓu b¶n ghi lµ mét tËp hîp nh÷ng b¶n ghi cã cÊu tróc tr−êng gièng nhau, th−êng ®−îc gäi t¾t lµ b¶ng. B¶ng ®−îc biÓu diÔn b»ng h×nh ch÷ nhËt cã tªn b¶ng vµ danh s¸ch c¸c thuéc tÝnh (tr−êng). Gi÷a 2 b¶ng, thiÕt lËp mét kÕt nèi, diÔn t¶ b»ng mét mòi tªn nÕu 2 b¶ng ®ã cã thuéc tÝnh chung, vµ trong mét b¶ng nµo ®ã nhãm thuéc tÝnh chung ®ã lµ kho¸ chÝnh. Nhãm tr−êng chung ®ã lµ ®iÒu kiÖn tiªn quyÕt cña kÕt nèi, h¬n n÷a nhãm thuéc tÝnh nµy chØ cã mét gi¸ trÞ duy nhÊt cho mçi b¶n ghi trong b¶ng mµ nhãm thuéc tÝnh chung ®ã gi÷a vai trß kho¸ chÝnh vµ ë gèc mòi tªn (phÝa 1). Mòi tªn sÏ g¾n vµo thùc thÓ cã kho¸ ngo¹i (phÝa NhiÒu).
VÝ dô cÊu tróc c¸c kiÓu b¶n ghi (l−îc ®å logic) nh− sau:
H×nh 3.24. L−îc ®å logic
Môc ®Ých thiÕt kÕ logic: xuÊt ph¸t tõ l−îc ®å kh¸i niÖm, t×m mét cÊu tróc c¸c kiÓu b¶n ghi phï hîp víi yªu cÇu truy nhËp cña c¸c chøc n¨ng xö lý trong hÖ thèng.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
211
3.4.3.2. Thμnh lËp l−îc ®å vËt lý
L−îc ®å vËt lý lµ cÊu tróc l−u tr÷ thùc sù cña d÷ liÖu trong bé nhí ngoµi, phô thuéc vµo cÊu h×nh cña hÖ thèng (c¸c ng«n ng÷ lËp tr×nh, c¸c hÖ qu¶n trÞ CSDL,…). Cã 2 ph−¬ng ¸n chän lùa chÝnh lµ c¸c tÖp vµ CSDL, theo ®ã mµ ta ph¶i chuyÓn ®æi l−îc ®å logic thu ®−îc thµnh l−îc ®å vËt lý thÝch hîp.
§iÓm kh¸c biÖt c¬ b¶n gi÷a tÖp vµ CSDL lµ: ®èi víi tÖp, ng−êi dïng ph¶i trùc tiÕp thµnh lËp nã vµ khai th¸c nã, nghÜa lµ ph¶i hiÓu râ vµ chÞu tr¸ch nhiÖm trùc tiÕp vÒ nã. Nh− vËy, ch−¬ng tr×nh vµ d÷ liÖu rµng buéc chÆt víi nhau. Cßn ®èi víi CSDL, sù cã mÆt cña hÖ qu¶n trÞ CSDL ®· c¸ch ly ch−¬ng tr×nh ng−êi dïng víi cÊu tróc l−u tr÷ cña d÷ liÖu lµm cho ch−¬ng tr×nh cã −u ®iÓm lµ ®éc lËp t−¬ng ®èi víi d÷ liÖu. §æi l¹i th× c¸c ng«n ng÷ ®Þnh nghÜa d÷ liÖu còng nh− c¸c ng«n ng÷ thao t¸c d÷ liÖu cung cÊp bëi hÖ qu¶n trÞ CSDL l¹i ph¶i nhóng ®−îc vµo ng«n ng÷ lËp tr×nh ®−îc chän ®Ó cµi ®Æt hÖ thèng, ®iÒu nµy kh«ng ph¶i lóc nµo còng thuËn tiÖn.
§èi víi thiÕt kÕ CSDL, CÊu tróc l−u tr÷ vËt lý phô thuéc theo m« h×nh cña CSDL, vÝ dô nh− m« h×nh quan hÖ:
Mçi b¶ng trong l−îc ®å logic chuyÓn ®æi trùc tiÕp thµnh mét quan hÖ (mçi tr−êng thµnh mét thuéc tÝnh cña quan hÖ). Kh«ng cã g× cµi ®Æt ®Æc biÖt ®èi víi c¸c kÕt nèi gi÷a c¸c b¶ng, ngo¹i trõ sù cã mÆt cña kho¸ ngo¹i. Mét ng«n ng÷ ®Þnh nghÜa d÷ liÖu cho phÐp ®Þnh nghÜa c¸c quan hÖ. C¸c lÖnh trong mét ng«n ng÷ thao t¸c d÷ liÖu cho phÐp l−u tr÷ vµ t×m kiÕm c¸c d÷ liÖu dùa trªn c¸c phÐp to¸n cña ®¹i sè quan hÖ (thay cho sù lÇn dß theo c¸c con trá).
3.4.3.3. VÝ dô
Dùa theo vÝ dô trªn, tõ l−îc ®å logic (h×nh 3.24).
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
212
ta chuyÓn vÒ cÊu tróc l−u tr÷:
KHO
M· kho Tªn kho §Þa chØ kho
CHUA
M· kho M· hμng Tån kho
HANG
M· hμng Tªn hμng §¬n vÞ tÝnh
NÕu biÓu diÔn d−íi d¹ng cã bæ sung liªn kÕt gi÷a kho¸ chÝnh vµ kho¸ ngo¹i cña hai quan hÖ b»ng mòi tªn nh− h×nh 3.26, chóng ta sÏ cã ®−îc mét s¬ ®å CSDL møc logic:
KHO
M· kho Tªn kho §Þa chØ kho
CHUA
M· kho M· hμng Tån kho
HANG
M· hμng Tªn hμng §¬n vÞ tÝnh
H×nh 3.26. S¬ ®å CSDL møc logic
Trong ph−¬ng ph¸p hiÖn ®¹i, ng−êi ta dïng lu«n m« h×nh CSDL logic - s¬ ®å E_R (ERD) ®Ó lµm c¨n cø thiÕt kÕ vËt lý:
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
213
H×nh 3.27. S¬ ®å E_R cña bμi to¸n vÝ dô Kho - hμng
Vµ tiÕn hµnh thiÕt kÕ vËt lý nh− sau:
B¶ng 3.14. kho
Tªn tr−êng KiÓu §é dμi Khu«n d¹ng Rμng buéc
M· kho Ký tù 6 Ch÷ hoa + sè Kho¸ chÝnh
NOTNULL
Tªn kho Ký tù 5 Ch÷ hoa
§Þa chØ kho Ký tù 30 Ch÷ ®Çu viÕt hoa
B¶ng 3.15. Chøa
Tªn tr−êng KiÓu §é dμi Khu«n d¹ng Rμng buéc
M· kho Ký tù 6 Ch÷ hoa + sè Thμnh phÇn cña kho¸ chÝnh NOTNULL
Kho¸ ngo¹i liªn kÕt víi KHO
M· hμng Ký tù 6 Ch÷ hoa + sè Thμnh phÇn cña kho¸ chÝnh NOTNULL
Kho¸ ngo¹i liªn kÕt víi HANG
Tån kho Sè 9 Sè nguyªn
B¶ng 3.16. Hμng
Tªn tr−êng KiÓu §é dμi Khu«n d¹ng Rμng buéc
M· hμng Ký tù 6 Ch÷ hoa + sè Kho¸ chÝnh NOTNULL
Tªn hμng Ký tù 15 Ch÷ ®Çu viÕt hoa
§¬n vÞ tÝnh Ký tù 10 Ch÷ th−êng
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
214
3.5. ThiÕt kÕ an toμn b¶o mËt cho CSDL
3.5.1. An toμn th«ng tin vμ an toμn hÖ thèng
Môc ®Ých cña c«ng t¸c an toµn vµ b¶o mËt d÷ liÖu lµ ®¶m b¶o tÝnh chÝnh x¸c, ®é tin cËy cao vµ phôc håi ®−îc trong c¸c tr−êng hîp ph¸t sinh sù cè do mét sè nguyªn nh©n chÝnh sau:
- NSD kh«ng thµnh th¹o v« t×nh söa, xãa sè liÖu tïy tiÖn lµm mÊt m¸t, sai l¹c sè liÖu.
- MÊt ®iÖn ®ét ngét khi hÖ thèng ®ang tiÕn hµnh tÝnh to¸n hoÆc cËp nhËt lµm háng tÖp d÷ liÖu.
- Háng ®Üa cøng hoÆc m¸y lµm tª liÖt hoµn toµn bé sè liÖu vµ ch−¬ng tr×nh.
- Ch¸y, næ, va ®Ëp m¹nh lµm háng m¸y mãc, ch−¬ng tr×nh vµ sè liÖu.
- KÎ gian lÊy trém hÖ thèng m¸y tÝnh, hoÆc th©m nhËp tr¸i phÐp xãa bá hÖ thèng ch−¬ng tr×nh vµ sè liÖu, viÖc truyÒn sè liÖu kh«ng ®¶m b¶o an toµn.
- C¸c nguyªn nh©n kh¸ch quan kh¸c,...
Trong tr−êng hîp x¶y ra sù cè kü thuËt ®èi víi m¸y mãc, ch−¬ng tr×nh hoÆc sè liÖu, b¶n sao l−u cã thÓ ®−îc phôc håi trë l¹i trªn mét hÖ thèng m¸y kh¸c ®· cµi l¹i ch−¬ng tr×nh vµ s½n sµng ho¹t ®éng nh− mét hÖ thèng dù phßng. NÕu tiÕn hµnh sao l−u th−êng xuyªn hµng ngµy th× b¶n sao l−u sÏ sai kh¸c b¶n d÷ liÖu ®· mÊt chØ cã mét ngµy thao t¸c nghiÖp vô thay v× ph¶i nhËp l¹i mét khèi l−îng sè liÖu lín.
3.5.2. C¸c biÖn ph¸p thùc hiÖn an toμn d÷ liÖu
ThiÕt lËp c¸c nguyªn t¾c qu¶n lý:
- §èi víi m¸y chñ: Mäi thao t¸c trªn m¸y chñ ®Òu n»m d−íi sù kiÓm so¸t cña ng−êi phô tr¸ch trung t©m CSDL th«ng qua c¸c c¸n bé kü thuËt ®−îc giao nhiÖm vô cô thÓ. C¸c c¸n bé kü thuËt ph¶i tu©n thñ nghiªm ngÆt chÕ ®é sao l−u vµ kiÓm tra d÷ liÖu ®Þnh kú trªn c¸c thiÕt bÞ mang tin.
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
215
- §èi víi c¸c m¸y tr¹m: Ph¶i giao tr¸ch nhiÖm sao l−u vµ kiÓm tra d÷ liÖu cña tõng nghiÖp vô cho c¸c c¸n bé cô thÓ. C¸c c¸n bé nµy sÏ ®−îc h−íng dÉn c¬ chÕ sao l−u, kiÓm tra d÷ liÖu ®Þnh kú trªn c¸c vËt mang tin vµ phôc håi d÷ liÖu khi cã sù cè.
- T¨ng c−êng c«ng t¸c kiÓm tra, kiÓm so¸t vµ h¹n chÕ ®Õn møc cao nhÊt viÖc ®−a th«ng tin tõ bªn ngoµi vµo hÖ thèng th«ng qua ®Üa mÒm ®Ó gi¶m thiÓu kh¶ n¨ng l©y nhiÔm virus lªn hÖ thèng.
Sö dông c¸c thiÕt bÞ l−u tr÷ an toμn:
Dïng c¸c ®Üa l−u tr÷, c¸c æ CD, c¸c Tape Backup (sao l−u b¨ng tõ)... C¸c thiÕt bÞ nµy dïng ®Ó l−u tr÷ song song, ®Ò phßng mÊt m¸t d÷ liÖu khi cã sù cè x¶y ra. Tuy nhiªn, ®èi víi hÖ CSDL cña c¬ quan chñ qu¶n vµ hÖ thèng chÝnh cã dung l−îng l−u tr÷ lín vµ ph¸t sinh th−êng xuyªn cÇn cã c¬ chÕ sao l−u nhanh víi sù hç trî cña phÇn mÒm øng dông.
Tuú theo kh¶ n¨ng ®¸nh gi¸ vÒ tÇm quan träng kh¸c nhau cña sè liÖu ta cã thÓ chän chu kú sao l−u lµ ngµy, vµi ngµy, tuÇn hoÆc vµi tuÇn, th¸ng,..
Sö dông c¸c trang thiÕt bÞ an toμn:
- ThiÕt lËp c¬ chÕ Clustering (c¬ chÕ qu¶n lý CSDL nh©n ®«i song song) hoµn chØnh vµ cã ®é tin cËy cao.
- Sö dông hÖ thèng l−u ®iÖn tæng th«ng minh.
- Lùa chän c¸c m¸y chñ víi kh¶ n¨ng hç trî RAID vµ thiÕt bÞ nguån cung cÊp cã kh¶ n¨ng chuyÓn ®æi nãng.
Ngoµi ra, viÖc tu©n thñ chÕ ®é b¶o tr× thiÕt bÞ ®Þnh kú, th−êng xuyªn cËp nhËt c¸c phÇn mÒm chèng virus lµ hÕt søc cÇn thiÕt.
3.5.3. B¶o mËt th«ng tin
ThiÕt lËp c¬ chÕ b¶o mËt
- Ban hµnh qui chÕ b¶o mËt trong toµn bé hÖ thèng
- Qui ®Þnh chøc n¨ng quyÒn h¹n truy xuÊt cho NSD ®èi víi d÷ liÖu trong hÖ thèng
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
216
- Tr¸ch nhiÖm cña qu¶n trÞ hÖ thèng trong viÖc ph©n quyÒn truy nhËp vµo hÖ thèng
Nh÷ng hÖ thèng CSDL ®iÓn h×nh th−êng cã nh÷ng thñ tôc truy xuÊt riªng. §Ó cã thÓ th©m nhËp hÖ thèng, NSD ph¶i ®−îc cÊp mét tµi kho¶n (user account) trªn hÖ thèng ®ã vµ b¾t buéc khai b¸o ®óng tªn vµ mËt khÈu cña m×nh. NSD ®−îc qu¶n trÞ viªn CSDL (Database Administrator) cÊp quyÒn xem mét hiÓn thÞ (view) cña CSDL. NSD chØ ®−îc phÐp sö dông mét sè mµn h×nh, mét sè lÖnh ®Ó truy xuÊt d÷ liÖu
trong mét sè tÖp, mét sè b¶n ghi hoÆc tr−êng. ë ®©y, qu¶n trÞ viªn CSDL lµ mét c¸ nh©n hoÆc mét nhãm chÞu tr¸ch nhiÖm chÝnh trong c«ng viÖc qu¶n lý CSDL. Sè nh÷ng ng−êi sö dông ch−¬ng tr×nh sÏ kh¸c nhau ®èi víi c¸c CSDL kh¸c nhau. HÖ thèng lu«n lu«n l−u tr÷ l¹i mét sè lÇn truy nhËp d÷ liÖu gÇn nhÊt cña tõng NSD.
Mçi NSD ph¶i cã tr¸ch nhiÖm ghi nhí vµ b¶o mËt mËt khÈu cña m×nh trong qu¸ tr×nh sö dông. Trong tr−êng hîp cã sù cè x¶y ra, nh÷ng ng−êi l·nh ®¹o sÏ c¨n cø vµo biªn b¶n vÒ lÇn truy cËp gÇn nhÊt ®Ó thÈm vÊn.
Ví dụ: Trong lĩnh vực qu¶n lý kinh doanh s¸ch trªn m¹ng, th«ng th−êng, cã 3 nhãm ng−êi dïng cã nhu cÇu truy nhËp CSDL, ®ã lµ: kh¸ch mua, nh©n viªn cöa hµng, chñ cöa hµng. Ngoµi ra, còng cÇn cã ng−êi qu¶n trÞ hÖ thèng, chÞu tr¸ch nhiÖm ®èi víi c¸c ho¹t ®éng cña c¬ së d÷ liÖu vµ cã quyÒn truy nhËp vµo toµn bé c¬ së d÷ liÖu.
Chñ cöa hµng cã ®Çy ®ñ c¸c quyÒn trªn tÊt c¶ c¸c quan hÖ, tuy nhiªn kh«ng ®−îc phÐp t¹o dùng thªm c¸c ®èi t−îng d÷ liÖu míi. Do vËy, ng−êi qu¶n trÞ sÏ ph©n quyÒn thao t¸c ®Çy ®ñ trªn c¸c ®èi t−îng d÷ liÖu trong CSDL.
Kh¸ch mua chØ ®−îc phÐp t×m kiÕm trªn quan hÖ cã liªn quan vµ cã thÓ ®Æt hµng trùc tuyÕn, nh−ng hä kh«ng ®−îc phÐp truy nhËp ®Õn c¸c b¶n ghi cña kh¸ch hµng kh¸c còng nh− c¸c ®¬n ®Æt hµng kh¸c. Do vËy chóng ta ph¶i giíi h¹n theo 2 c¸ch. C¸ch thø nhÊt, ph¶i sö dông c¸c ®Æc tr−ng an toµn cña CSDL ®Ó giíi h¹n ph¹m vi truy xuÊt ®Õn c¸c d÷ liÖu nh¹y c¶m. VÝ dô nh− khi t¹o lËp mét kho¶n môc míi cho
Ch−¬ng 3: Quy tr×nh ph©n tÝch thiÕt kÕ CSDL
217
kh¸ch hµng, ng−êi qu¶n trÞ CSDL sÏ t¹o dùng lu«n nh÷ng khung nh×n chØ cho phÐp anh ta xem c¸c d÷ liÖu cña riªng m×nh th«ng qua c¸c khung nh×n ®ã. C¸ch thø hai, chóng ta cã thÓ giíi h¹n th«ng qua viÖc t¹o c¸c giao diÖn trong øng dông trªn web. Vµ mäi truy vÊn ®Òu ®−îc g¾n thªm gi¸ trÞ Khach-id cña kh¸ch mua hiÖn thêi.
Nh©n viªn cña cöa hµng còng tuú theo tõng ®èi t−îng mµ ®−îc ng−êi qu¶n trÞ ph©n cho hä c¸c quyÒn thao t¸c trªn tõng ®èi t−îng d÷ liÖu cô thÓ. VÝ dô víi ng−êi qu¶n lý kho, anh ta chØ ®−îc phÐp cËp nhËt trªn quan hÖ SACH. Víi ng−êi qu¶n lý c¸c th«ng tin vÒ kh¸ch hµng th× chØ cã thÓ thao t¸c trªn quan hÖ KHACH mµ th«i. Cßn ®èi víi c¸c ng−êi qu¶n lý ®¬n hµng, hä cã c¸c quyÒn cËp nhËt trªn quan hÖ DON_HANG_MOI vµ DONG_DON_HANG_MOI, nh−ng víi c¸c quan hÖ cßn l¹i nh− SACH, KHACH th× chØ cã quyÒn xem mµ th«i. §Ó h¹n chÕ quyÒn truy nhËp cña kh¸ch mua, chóng ta cã thÓ t¹o ra mét tµi kho¶n cã tªn lµ khach_mua vµ g¸n cho tµi kho¶n nµy c¸c quyÒn nµo ®ã.
- T¨ng c−êng c¬ chÕ kiÓm so¸t ®ét nhËp trªn m¹ng: sö dông c¸c c«ng cô m· ho¸ ®Ó b¶o mËt th«ng tin trªn ®−êng truyÒn, c¸c chøc n¨ng vÒ an toµn d÷ liÖu cña hÖ qu¶n trÞ m¹ng vµ nªn sö dông giao thøc SSL (Security Socket Layer).
- §¶m b¶o cã hÖ thèng theo dâi tù ®éng: phÇn lín CSDL, trªn mainframe ®Òu cã nh÷ng hÖ thèng theo dâi tù ®éng nh»m ghi nhËn mäi ho¹t ®éng cã thÓ lµm tæn h¹i ®Õn CSDL.
- Sö dông trang thiÕt bÞ b¶o mËt ë møc vËt lý:
L¾p ®Æt c¸c thiÕt bÞ b¶o mËt ®Çu cuèi trong toµn bé hÖ thèng
Trang bÞ hÖ thèng kho¸ b¶o vÖ an toµn.
Tμi liÖu tham kh¶o
[1]. Armstrong W.W.Dependency Structure of Database Relationships. Information Processing 74, Holland publ.Co (1974)
[2]. Beeri C. Dowd M., Fagin R... On the structure of Armstrong relational for Functional Dependencies J.ACM 31,1 (1984)
[3]. Codd E.F. A relational model for large shared data banks. Communication ACM 13 (1970)
[4]. Collongues A., Hugues J., Laroche B. MERISE method. Science - technique Public 1994.
[5]. Demetrovics J. Logical and structural investigation of Relational Data model. MTA-SZTAKI Tanulmanyok, Budapest, 114 (1980)
[6]. Jeffrey D. Ullman, Principles of Database and Knowledge base Systems, 1988-1989. Biªn dÞch: TrÇn §øc Quang, Nhµ xuÊt b¶n Thèng kª, 1998.
[7]. Peter Rob, Carlos Coronel, Database System. Wadsworth Publishing company, 1993.
[8]. NguyÔn Kim Anh, Nguyªn lý cña c¸c hÖ c¬ së d÷ liÖu. Nhµ xuÊt b¶n §¹i häc Quèc gia Hµ Néi, 2004.
[9]. §Ò ¸n 112. Gi¸o tr×nh ph©n tÝch, thiÕt kÕ vμ x©y dùng c¸c hÖ thèng c¬ së d÷ liÖu. Hµ Néi, 2004.
[10]. NguyÔn §Þch, Bïi C«ng C−êng, Lª V¨n Phïng, Th¸i Thanh S¬n. Lý thuyÕt hÖ thèng vμ ®iÒu khiÓn häc. Nhµ xuÊt b¶n Th«ng tin vµ TruyÒn th«ng, 2009.
[11]. Hå SÜ Khoa, C¸c ph−¬ng ph¸p x©y dùng c¸c m« h×nh kh¸i niÖm d÷ liÖu, 1990.
[12]. Lª V¨n Phïng, Bμi gi¶ng c¬ së d÷ liÖu. Nhµ xuÊt b¶n Lao ®éng-X· héi, 2004.
[13]. Lª V¨n Phïng, Ph©n tÝch vμ thiÕt kÕ hÖ thèng th«ng tin - KiÕn thøc vμ thùc hμnh. Nhµ xuÊt b¶n Lao ®éng-X· héi, 2004.
[14]. Lª V¨n Phïng, Kü thuËt ph©n tÝch vμ thiÕt kÕ hÖ thèng th«ng tin h−íng cÊu tróc. Nhµ xuÊt b¶n Th«ng tin vµ TruyÒn th«ng, 2009.
[15]. TrÇn §øc Quang, Qu¶n trÞ c¬ së d÷ liÖu. Nhµ xuÊt b¶n X©y dùng, 2002.
[16]. Vò §øc Thi, C¬ së d÷ liÖu - KiÕn thøc vμ thùc hμnh. NXB Thèng kª, 1997.
[17]. Vò §øc Thi, ThuËt to¸n trong tin häc. Nhµ xuÊt b¶n Khoa häc Kü thuËt, 1999.
[18]. NguyÔn Quèc To¶n, NguyÔn V¨n Vþ, Vò §øc Thi, Lª V¨n Phïng, Bμi gi¶ng Kü nghÖ phÇn mÒm. Khoa C«ng nghÖ, §¹i häc Quèc gia Hµ Néi, 2000.
[19]. §ç Trung TuÊn, Database. NXB Gi¸o dôc, 1998.
[20]. §inh M¹nh T−êng, CÊu tróc d÷ liÖu vμ thuËt to¸n. Nhµ xuÊt b¶n Khoa häc Kü thuËt, 2000.
[21]. NguyÔn B¸ T−êng, C¬ së d÷ liÖu: Lý thuyÕt - thùc hμnh. Nhµ xuÊt b¶n Khoa häc Kü thuËt, 2001.
[22]. TrÇn Thµnh Trai, NhËp m«n c¬ së d÷ liÖu. Nhµ xuÊt b¶n TrÎ.
[23]. NguyÔn §¨ng Tþ, §ç Phóc, Gi¸o tr×nh c¬ së d÷ liÖu. §¹i häc Quèc gia TP. Hå ChÝ Minh, 2003.
[24]. Lª TiÕn V−¬ng, NhËp m«n c¬ së d÷ liÖu quan hÖ. Nhµ xuÊt b¶n Khoa häc Kü thuËt, 1997.
[25]. NguyÔn V¨n Vþ, Lª V¨n Phïng, Gi¸o tr×nh Ph©n tÝch thiÕt kÕ hÖ thèng th«ng tin. Hµ Néi, 2000.
Môc lôc
Lêi nãi ®Çu.................................................................................................3
Ch−¬ng 1. Tæng quan vÒ c¬ së d÷ liÖu ..................................................7
1.1. C¸c kh¸i niÖm c¬ b¶n .........................................................................7
1.1.1. D÷ liÖu .....................................................................................7
1.1.2. C¬ së d÷ liÖu ..........................................................................10
1.1.3. HÖ thèng xö lý d÷ liÖu............................................................10
1.1.4. Sù kh¸c biÖt gi÷a d÷ liÖu vµ th«ng tin ...................................16
1.1.5. Siªu d÷ liÖu ............................................................................17
1.1.6. KiÓu thùc thÓ vµ b¶ng d÷ liÖu ................................................18
1.1.7. Kh¸i niÖm toµn vÑn d÷ liÖu ....................................................26
1.1.8. HÖ qu¶n trÞ CSDL (DBMS) ....................................................31
1.1.9. Kho d÷ liÖu ............................................................................31
1.2. C¸c ph−¬ng tiÖn diÔn t¶ d÷ liÖu ........................................................32
1.2.1. Kh¸i niÖm diÔn t¶ d÷ liÖu ......................................................32
1.2.2. M· ho¸ ...................................................................................33
1.2.3. Tõ ®iÓn d÷ liÖu .......................................................................39
1.3. M« h×nh d÷ liÖu ................................................................................43
1.3.1. Kh¸i niÖm m« h×nh d÷ liÖu ....................................................43
1.3.2. C¸c lo¹i m« h×nh CSDL..........................................................43
1.3.3. M« h×nh d÷ liÖu m¹ng vµ m« h×nh d÷ liÖu ph©n cÊp .............44
1.3.4. M« h×nh d÷ liÖu quan hÖ vµ
m« h×nh d÷ liÖu h−íng ®èi t−îng ..........................................46
1.3.5. Ph−¬ng ph¸p x©y dùng m« h×nh d÷ liÖu ................................48
Ch−¬ng 2. M« h×nh c¬ së d÷ liÖu quan hÖ............................................51
2.1. C¸c kh¸i niÖm c¬ b¶n .......................................................................51
2.1.1. §Þnh nghÜa quan hÖ ...............................................................51
2.1.2. §Þnh nghÜa phô thuéc hµm ....................................................53
2.1.3. HÖ tiªn ®Ò Armstrong .............................................................54
2.1.4. §Þnh nghÜa hµm ®ãng .............................................................57
2.1.5. §Þnh nghÜa s¬ ®å quan hÖ.......................................................58
2.1.6. §Þnh nghÜa bao ®ãng ..............................................................59
2.1.7. §Þnh nghÜa kho¸ cña quan hÖ, s¬ ®å quan hÖ, hä F................61
2.1.8. HÖ b»ng nhau..........................................................................63
2.2. Mét sè thuËt to¸n liªn quan ®Õn kho¸...............................................65
2.2.1. Mét sè thuËt to¸n liªn quan ®Õn bao ®ãng .............................65
2.2.2. Mét sè thuËt to¸n liªn quan ®Õn kho¸ ....................................67
2.2.3. ThuËt to¸n x¸c ®Þnh c¸c thuéc tÝnh c¬ b¶n.............................72
2.3. C¸c phÐp to¸n xö lý file d÷ liÖu .......................................................73
2.3.1. PhÐp hîp (r ∪ t) (Union) ........................................................74
2.3.2. PhÐp trõ (r-t) (Difference) ......................................................74
2.3.3. PhÐp giao (r∩t) (Intersection) ................................................75
2.3.4. PhÐp tÝch §Ò-c¸c (r x t) (Cartesian product)...........................75
2.3.5. PhÐp chiÕu (Projection) ..........................................................76
2.3.6. PhÐp chän (Restriction) ..........................................................77
2.3.7. PhÐp chia (Division) ...............................................................77
2.3.8. PhÐp nèi ®iÒu kiÖn 2 file d÷ liÖu (Joinθ) ................................78
2.3.9. PhÐp nèi 2 file d÷ liÖu (Join) ..................................................79
2.3.10. VÝ dô ¸p dông .......................................................................80
2.3.11. C¸c chiÕn l−îc tèi −u tæng qu¸t............................................83
2.4. C¸c d¹ng chuÈn vµ c¸c thuËt to¸n liªn quan ....................................86
2.4.1. C¸c ®Þnh nghÜa chuÈn ho¸ ......................................................86
2.4.2. Mét sè ®Æc tr−ng d¹ng chuÈn 2NF .........................................88
2.4.3. Mét sè ®Æc tr−ng d¹ng chuÈn 3NF .........................................89
2.4.4. Mét sè ®Æc tr−ng d¹ng chuÈn BCNF ......................................90
2.4.5. C¸c thuËt to¸n.........................................................................91
2.4.6. ChuÈn ho¸ mét quan hÖ ..........................................................93
2.4.7. ChuÈn ho¸ mét s¬ ®å quan hÖ ................................................99
2.5. Mèi quan hÖ (Relationship) ...........................................................116
2.5.1. §Æc t¶ mèi quan hÖ ..............................................................116
2.5.2. C¸c ®Æc tr−ng cña mèi quan hÖ ...........................................117
2.5.3. M« h×nh kh¸i niÖm d÷ liÖu ...................................................119
Ch−¬ng 3. Quy tr×nh ph©n tÝch thiÕt kÕ CSDL .................................121
3.1. Ph©n tÝch yªu cÇu ...........................................................................121
3.1.1. Môc ®Ých cña viÖc ph©n tÝch yªu cÇu ...................................121
3.1.2. Néi dung ph©n tÝch yªu cÇu..................................................123
3.1.3. C¸c kü thuËt ph©n tÝch yªu cÇu.............................................124
3.2. Ph©n tÝch d÷ liÖu vµ x©y dùng m« h×nh kh¸i niÖm d÷ liÖu .............142
3.2.1. Kh¶o s¸t thùc tÕ ....................................................................142
3.2.2. ThiÕt lËp m« h×nh d÷ liÖu .....................................................146
3.2.3. KiÓm so¸t vµ chuÈn hãa m« h×nh .........................................163
3.3. ThiÕt kÕ CSDL logic........................................................................167
3.3.1. Khu«n c¶nh thiÕt kÕ c¬ së d÷ liÖu logic ...............................168
3.3.2. C¸c kü thuËt sö dông trong thiÕt kÕ c¬ së d÷ liÖu logic........170
3.3.3. ThiÕt kÕ c¬ së d÷ liÖu logic dùa trªn “Ph−¬ng ph¸p tõ ®iÓn” ... 197 3.4. ThiÕt kÕ CSDL møc vËt lý ..............................................................207
3.4.1. ChuyÓn thiÕt kÕ d÷ liÖu møc logic sang møc vËt lý..............207
3.4.2. §¸nh gi¸ kh«ng gian l−u tr÷ ................................................207
3.4.3. BiÕn ®æi c¸c l−îc ®å kh¸i niÖm thµnh l−îc ®å vËt lý ...........209
3.5. ThiÕt kÕ an toµn b¶o mËt cho CSDL ...............................................214
3.5.1. An toµn th«ng tin vµ an toµn hÖ thèng..................................214
3.5.2. C¸c biÖn ph¸p thùc hiÖn an toµn d÷ liÖu...............................214
3.5.3. B¶o mËt th«ng tin .................................................................215
Tμi liÖu tham kh¶o .................................................................................219
C¬ së d÷ liÖu quan hÖ vμ c«ng nghÖ ph©n tÝch - thiÕt kÕ
ChÞu tr¸ch nhiÖm xuÊt b¶n
nguyÔn thÞ thu hμ
Biªn tËp: ng« mü h¹nh TrÞnh thu ch©u Tr×nh bμy s¸ch: bïi ch©u loan Söa b¶n in: TrÞnh thu ch©u ThiÕt kÕ b×a: trÇn hång minh
In 700 b¶n, khæ 16 x 24 cm t¹i C«ng ty CP In vμ Th−¬ng m¹i Ngäc H−ng
Sè ®¨ng ký kÕ ho¹ch xuÊt b¶n: 237-2010/CXB/3-125/TTTT
Sè quyÕt ®Þnh xuÊt b¶n: 72/Q§-NXB TTTT ngμy 31 th¸ng 3 n¨m 2010
In xong vμ nép l−u chiÓu th¸ng 4 n¨m 2010.