intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chương 4 mô hình cơ sở dữ liệu quan hệ

Chia sẻ: Nguyen Van Dat | Ngày: | Loại File: PDF | Số trang:0

110
lượt xem
30
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mô hình dữ liệu quan hệ(relational model) do E.F Codd (công ty IBM) để xuất năm 1970 và được Codd và các nhà nghiên cứu khác tiếp tục phát triển

Chủ đề:
Lưu

Nội dung Text: Chương 4 mô hình cơ sở dữ liệu quan hệ

  1. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Ch−¬ng 4 m« h×nh c¬ së d÷ liÖu quan hÖ M« h×nh d÷ liÖu quan hÖ (relational model) do E.F. Codd (c«ng ty IBM) ®Ò xuÊt n¨m 1970, vµ ®−îc Codd vµ c¸c nhµ nghiªn cøu kh¸c tiÕp tôc ph¸t triÓn. §©y lµ m« h×nh ®−îc cµi ®Æt nhiÒu nhÊt hiÖn nay. M« h×nh d÷ liÖu quan hÖ biÓu diÔn d÷ liÖu d−íi d¹ng b¶ng hay quan hÖ. M« h×nh quan hÖ ®−îc x©y dùng trªn nÒn t¶ng §¹i sè quan hÖ, v× thÕ nã cã c¬ së to¸n häc v÷ng ch¾c. M« h×nh d÷ liÖu quan hÖ cã ba thµnh phÇn c¬ b¶n sau: 1) CÊu tróc d÷ liÖu. D÷ liÖu ®−îc tæ chøc d¹ng b¶ng (quan hÖ). 2) Thao t¸c d÷ liÖu. C¸c phÐp tÝnh m¹nh (ng«n ng÷ truy vÊn SQL) ®−îc sö dông ®Ó thao t¸c xö lý d÷ liÖu d¹ng quan hÖ. 3) Toµn vÑn d÷ liÖu. C¸c chøc n¨ng tiÖn Ých ®¶m b¶o c¸c qui t¾c rµng buéc toµn vÑn d÷ liÖu. I. c¸c Kh¸i niÖm c¬ b¶n 1. MiÒn MiÒn lµ mét tËp hîp c¸c gi¸ trÞ. Ng−êi ta th−êng dïng ch÷ hoa ®Ó ký hiÖu miÒn. ◊ VÝ dô: C¸c tËp hîp sau lµ c¸c miÒn: - TËp c¸c sè nguyªn - TËp c¸c x©u ký tù ®é dµi kh«ng qu¸ 30 ký tù - A = {0,1} 2. TÝch §Ò-c¸c TÝch §Ò-c¸c cña c¸c miÒn D1, D2, ..., Dn (c¸c miÒn cã thÓ trïng nhau) ký hiÖu lµ D1 × D2 × ... × Dn, lµ tËp hîp tÊt c¶ n-bé (v1, v2, ..., vn) tho¶ m·n v1∈D1, v2∈D2, ..., vn∈Dn. Tøc lµ D1 × D2 × ... × Dn = {(v1, v2,..., vn) | v1∈D1, v2∈D2,..., vn∈Dn }. ◊ VÝ dô Cho D1 = {0,1}, D2 = {a,b,c}. Khi ®ã tÝch ®Ò-c¸c D1 × D2 = {(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}. 3. Quan hÖ Quan hÖ lµ tËp con cña tÝch ®Ò-c¸c cña mét hoÆc nhiÒu miÒn. Quan hÖ cã thÓ cã h÷u h¹n hoÆc v« h¹n sè phÇn tö. Trong gi¸o tr×nh nµy ta gi¶ thiÕt r»ng quan hÖ cã h÷u h¹n phÇn tö. Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−1
  2. TrÇn Quèc ChiÕn C¬ së d÷ liÖu ◊ VÝ dô: Cho D1 = {0,1}, D2 = {a,b,c}. TËp r = {(0,a),(1,b),(1,c)}⊂ D1 × D2, vËy r lµ quan hÖ trªn D1 vµ D2. Ta nãi quan hÖ r cã bËc n nÕu r lµ tËp con cña tÝch ®Ò-c¸c cña n miÒn. Mçi phÇn tö cña quan hÖ gäi lµ bé (tuple) hay b¶n ghi (record). Mçi bé cña quan hÖ bËc n, cßn gäi lµ n−bé, cã n thµnh phÇn. Mçi thµnh phÇn cña bé lµ nguyªn tè, cã nghÜa kh«ng thÓ ph©n t¸ch ®−îc thµnh c¸c thµnh phÇn nhá h¬n. §Ó trùc quan ta cã thÓ coi quan hÖ nh− mét b¶ng (table) trong ®ã mçi hµng lµ mét bé (b¶n ghi) vµ mçi cét øng víi mét thµnh phÇn. Mçi cét cña quan hÖ ®−îc g¸n mét tªn gäi lµ thuéc tÝnh. TËp hîp tÊt c¶ c¸c tªn thuéc tÝnh cña mét quan hÖ gäi lµ l−îc ®å quan hÖ. L−u ý r»ng mét quan hÖ chØ cã mét l−îc ®å quan hÖ, nh−ng cã thÓ nhiÒu quan hÖ cã chung mét l−îc ®å. ◊ VÝ dô Quan hÖ r ë vÝ dô trªn cã thÓ biÓu diÔn d¹ng b¶ng nh− sau: r D1 D2 0 a 1 b 1 c Nh− vËy quan hÖ r cã c¸c thuéc tÝnh D1 vµ D2 vµ cã ba b¶n ghi (0,a), (1,b) vµ (1,c). L−îc ®å quan hÖ cña r lµ {D1, D2} hoÆc (D1, D2). • C¸c tÝnh chÊt cña quan hÖ - C¸c gi¸ trÞ trªn cét ph¶i cïng mét miÒn gi¸ trÞ vµ ®¬n trÞ: Gi¸ trÞ trªn giao cña cét vµ hµng ®¬n trÞ, kh«ng chÊp nhËn nhiÒu gi¸ trÞ. - Mçi hµng lµ duy nhÊt: Kh«ng cho phÐp hai hµng hoµn toµn gièng nhau. - Thø tù c¸c cét kh«ng quan träng: C¸c cét cã thÓ ho¸n chuyÓn mµ kh«ng lµm thay ®æi ý nghÜa cña quan hÖ. - Thø tù c¸c hµng kh«ng quan träng: C¸c hµng cã thÓ ho¸n chuyÓn mµ kh«ng lµm thay ®æi ý nghÜa cña quan hÖ. • Ký hiÖu Chóng ta thèng nhÊt sö dông c¸c ký hiÖu sau. Quan hÖ r cã c¸c thuéc tÝnh A1, A2, ..., An ®−îc ký hiÖu lµ r(A1, A2, ..., An) Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−2
  3. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Cã thÓ dïng ký hiÖu, ch¼ng h¹n R, ®Ó chØ mét l−îc ®å quan hÖ víi c¸c thuéc tÝnh A1, A2, ..., An nh− sau R = (A1, A2, ..., An) Cho r lµ quan hÖ víi l−îc ®å quan hÖ R=(A1, A2, ..., An), t lµ mét bé cña r, S lµ tËp con c¸c thuéc tÝnh cña R, S ⊂ R. Khi ®ã t(S) ký hiÖu bé c¸c thµnh phÇn cña t øng víi c¸c thuéc tÝnh trong tËp S. NÕu A lµ mét thuéc tÝnh th× t(A) chÝnh lµ gi¸ trÞ thµnh phÇn cña t øng víi thuéc tÝnh A. ◊ VÝ dô: Cho r lµ quan hÖ cã l−îc ®å (A, B, C), t = (1, a, 2) ∈ r, S = (A, C). Khi ®ã t(S) = (1, 2), t(B) = a 4. C¬ së d÷ liÖu quan hÖ D÷ liÖu ®−îc tæ chøc d−íi d¹ng c¸c quan hÖ cã liªn quan víi nhau gäi lµ c¬ së d÷ liÖu quan hÖ. TËp hîp c¸c l−îc ®å quan hÖ cña mét c¬ së d÷ liÖu gäi lµ l−îc ®å c¬ së d÷ liÖu quan hÖ. ◊ VÝ dô Nghiªn cøu mét m« h×nh cung øng hµng ho¸ ë thµnh phè §µ N½ng ta cã sè liÖu cho ë c¸c b¶ng sau: - B¶ng 1': H·ng cung øng vµ mÆt hµng Tªn h·ng §Þa chØ MÆt hµng §¬n gi¸ Cty C«ng nghÖ phÈm 21 Phan Chu Trinh S÷a 6500 §−êng 5000 Cµ phª 20500 Cty Thùc phÈm 40 NguyÔn HuÖ §−êng 6500 Bét m× 5000 Bia 4000 Cty L−¬ng thùc 16 Lý Th−êng KiÖt G¹o 3000 S÷a 7000 Bét m× 4500 - B¶ng 2: Kh¸ch hµng Tªn kh¸ch hµng §Þa chØ Sè d− Kh¸ch s¹n B¹ch §»ng 20 B¹ch ®»ng 10 000 000 Nhµ hµng Ngäc Anh 120 TrÇn Phó 5 000 000 Kh¸ch s¹n Mü khª 300 Ng« quyÒn - 5 000 000 - B¶ng 3: Hîp ®ång Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−3
  4. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Sè hîp ®ång Tªn kh¸ch hµng MÆt hµng Sè l−îng 001 Nhµ hµng Ngäc Anh S÷a 100 002 Nhµ hµng Ngäc Anh Bia 200 003 Kh¸ch s¹n B¹ch §»ng Cµ phª 50 004 Kh¸ch s¹n B¹ch §»ng Bia 150 005 Kh¸ch s¹n Mü khª Bét m× 200 006 Kh¸ch s¹n Mü khª G¹o 300 B¶ng 2 vµ 3 lµ c¸c quan hÖ bËc 3 vµ bËc 4. B¶ng 1' ch−a ph¶i lµ quan hÖ, v× c¸c gi¸ trÞ trªn cét thø 3 ch−a nguyªn tö. §Ó c¸c b¶ng trªn cã thÓ t¹o thµnh mét c¬ së d÷ liÖu quan hÖ ta biÕn ®æi b¶ng 1' thµnh b¶ng 1 nh− sau: - B¶ng 1: H·ng cung øng vµ mÆt hµng Tªn h·ng §Þa chØ MÆt hµng §¬n gi¸ Cty C«ng nghÖ phÈm 21 Phan Chu Trinh S÷a 6500 Cty C«ng nghÖ phÈm 21 Phan Chu Trinh §−êng 5000 Cty C«ng nghÖ phÈm 21 Phan Chu Trinh Cµ phª 20500 Cty Thùc phÈm 40 NguyÔn HuÖ §−êng 6500 Cty Thùc phÈm 40 NguyÔn HuÖ Bét m× 5000 Cty Thùc phÈm 40 NguyÔn HuÖ Bia 4000 Cty L−¬ng thùc 16 Lý Th−êng KiÖt G¹o 3000 Cty L−¬ng thùc 16 Lý Th−êng KiÖt S÷a 7000 Cty L−¬ng thùc 16 Lý Th−êng KiÖt Bét m× 4500 B¶ng 1, b¶ng 2 vµ b¶ng 3 t¹o nªn mét c¬ së d÷ liÖu quan hÖ. Ta ®Æt tªn c¬ së d÷ liÖu quan hÖ nµy lµ Kh¸ch−Hµng gåm 3 quan hÖ cïng c¸c l−îc ®å quan hÖ nh− sau: CUNGUNG(Ten, DiaChi, Hang, DonGia) KHACH(Ten, DiaChi, SoDu) HOPDONG(SoHD, TenKH, Hang, SoLuong) • L−u ý: Cïng mét l−îc ®å c¬ së d÷ liÖu quan hÖ ¸p dông nhiÒu lÇn cã thÓ cã nhiÒu c¬ së d÷ liÖu quan hÖ kh¸c nhau. Ch¼ng h¹n, nÕu ¸p dông l−îc ®å c¬ së d÷ liÖu quan hÖ Kh¸ch−Hµng trªn cho TP.Hµ néi ta sÏ cã c¬ së d÷ liÖu quan hÖ kh¸c. ◊ VÝ dô §©y lµ vÝ dô sÏ dïng lµm c¬ së d÷ liÖu mÉu ®Ó m« h×nh ho¸ mét c«ng ty. C¸c thùc thÓ ®−îc m« h×nh ho¸ lµ: - C¸c nh©n viªn, ký hiÖu EMP, viÕt t¾t tõ employee. - C¸c dù ¸n, ký hiÖu PROJ, viÕt t¾t tõ project. Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−4
  5. TrÇn Quèc ChiÕn C¬ së d÷ liÖu §èi víi mçi nh©n viªn chóng ta muèn theo dâi c¸c th«ng tin sau: - M· sè nh©n viªn, ký hiÖu ENO, viÕt t¾t tõ employee number. - Tªn nh©n viªn, ký hiÖu ENAME, viÕt t¾t tõ employee name. - Chøc danh, ký hiÖu TITLE. - L−¬ng, ký hiÖu SAL, viÕt t¾t tõ salary. - M· sè dù ¸n, ký hiÖu PNO, viÕt t¾t tõ project number. - NhiÖm vô dù ¸n, ký hiÖu RESP, viÕt t¾t tõ responsibility. - Thêi gian lµm viÖc trong dù ¸n, ký hiÖu DUR, viÕt t¾t tõ duration. T−¬ng tù víi mçi dù ¸n ta cÇn biÕt: - M· sè dù ¸n, ký hiÖu PNO, viÕt t¾t tõ project number. - Tªn dù ¸n, ký hiÖu PNAME, viÕt t¾t tõ project name. - Kinh phÝ dù ¸n, ký hiÖu BUDGET. C¸c l−îc ®å quan hÖ (relation scheme) cho c¬ së d÷ liÖu nµy cã thÓ ®Þnh nghÜa nh− sau: EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR) PROJ(PNO, PNAME, BUDGET) L−îc ®å cña EMP cã 7 thuéc tÝnh (attribute): ENO, ENAME, TITLE, SAL, PNO, RESP, DUR. L−îc ®å cña PROJ cã 3 thuéc tÝnh PNO, PNAME, BUDGET. Gi¸ trÞ cña ENO lÊy tù miÒn chøa c¸c m· sè nh©n viªn, gi¶ sö lµ D1 , Gi¸ trÞ cña ENAME lÊy tù miÒn chøa c¸c tªn nh©n viªn hîp lÖ, gi¶ sö lµ D2 , ... Chó ý r»ng mçi thuéc tÝnh cña mçi quan hÖ kh«ng nhÊt thiÕt ph¶i lÊy tõ c¸c miÒn kh¸c nhau. §©y lµ mét thÓ hiÖn c¬ së d÷ liÖu mÉu cña chóng ta gåm hai b¶ng nh− sau: EMP ENO ENAME TITLE SAL PNO RESP DUR E1 J.Doe Elect.Eng. 40000 P1 Manager 12 E2 M.Smith Syst.Anal. 34000 P1 Analyst 24 E2 M.Smith Syst.Anal. 34000 P2 Analyst 6 E3 A.Lee Mech.Eng. 27000 P3 Consultant 10 E3 A.Lee Mech.Eng. 27000 P4 Engineer 48 E4 J.Miller Programmer 24000 P2 Programmer 18 E5 B.Casey Syst.Anal. 34000 P2 Manager 24 E6 L.Chu Elect.Eng. 40000 P4 Manager 48 E7 R.David Mech.Eng. 27000 P3 Engineer 36 E8 J.Jones Syst.Anal. 34000 P3 Manager 40 PROJ PNO PNAME BUDGET P1 Instrumentation 150000 P2 Database Development 135000 P3 CAD/CAM 250000 P4 Maintenance 310000 Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−5
  6. TrÇn Quèc ChiÕn C¬ së d÷ liÖu C¸c cét cña b¶ng t−¬ng øng c¸c thuéc tÝnh cña quan hÖ. C¸c th«ng tin nhËp theo hµng t−¬ng øng víi c¸c bé hay b¶n ghi. Dßng trªn cïng biÓu diÔn l−îc ®å quan hÖ cña b¶ng. Mét gi¸ trÞ cña thuéc tÝnh, ch¼ng h¹n l−¬ng cña nh©n viªn, thêi gian tham gia dù ¸n,... t¹i thêi ®iÓm nµo ®ã cã thÓ ch−a ®−îc x¸c ®Þnh. Khi ®ã cã nhiÒu c¸ch diÔn gi¶i kh¸c nhau nh− “ch−a ®−îc biÕt” hay “ch−a ¸p dông ®−îc”. “Gi¸ trÞ ®Æc biÖt” th−êng ®−îc gäi lµ null. Gi¸ trÞ null ph¶i kh¸c c¸c gi¸ trÞ trong miÒn thuéc tÝnh, vµ còng cÇn ph©n bÞªt nã víi gi¸ trÞ zero (víi thuéc tÝnh kiÓu sè) hay gi¸ trÞ rçng (víi thuéc tÝnh kiÓu ký tù). 5. Kho¸ a) Siªu kho¸ Cho l−îc ®å quan hÖ R=(A1, A2, ..., An) vµ tËp con S ⊂ R. TËp S gäi lµ siªu kho¸ (superkey) cña l−îc ®å R nÕu c¸c thuéc tÝnh cña S x¸c ®Þnh duy nhÊt c¸c bé cña mçi quan hÖ cña l−îc ®å R, tøc lµ mäi quan hÖ r cña l−îc ®å R ph¶i tho¶ m·n: ∀ t1, t2 ∈ r: t1 ≠ t2 ⇒ ∃ A∈ S: t1(A) ≠ t2(A) (t1(S) ≠ t2(S)) L−u ý r»ng theo ®Þnh nghÜa mçi bé lµ duy nhÊt nªn ®èi víi mçi l−îc ®å quan hÖ, tËp hîp tÊt c¶ thuéc tÝnh lµ siªu kho¸. Siªu kho¸ lµ c¬ së ®Ó ph©n biÖt hai bé kh¸c nhau trong mét quan hÖ. Mét l−îc ®å cã thÓ cã nhiÒu siªu kho¸. TÝnh chÊt cña siªu kho¸ lµ quy luËt ®−îc x¸c ®Þnh trong qu¸ tr×nh ph©n tÝch thiÕt kÕ c¬ së d÷ liÖu. ◊ Ghi chó (1) TËp tÊt c¶ thuéc tÝnh R lµ siªu kho¸ (tÇm th−êng). (2) S ⊂ T ⊂ R & S lµ siªu kho¸ ⇒ T lµ siªu kho¸ ◊ VÝ dô. Trong c¬ së d÷ liÖu quan hÖ Kh¸ch−Hµng - L−îc ®å CUNGUNG(Ten, DiaChi, Hang, DonGia) cã c¸c siªu kho¸: S1 = { Ten, DiaChi, Hang, DonGia } S2 = { Ten, DiaChi, Hang } S3 = { Ten, Hang } - L−îc ®å KHACH cã c¸c siªu kho¸: S1 = {Ten, DiaChi} S2 = {Ten, SoDu} S3 = {Ten} - L−îc ®å HOPDONG cã c¸c siªu kho¸: S1 = {SoHD, TenKH, Hang} S2 = {SoHD, TenKH, SoLuong} S3 = {SoHD, TenKH} S4 = {SoHD} b) Kho¸ TËp K c¸c thuéc tÝnh cña l−îc ®å R lµ kho¸ (key) nÕu K lµ siªu kho¸ cùc tiÓu, tøc lµ mäi tËp con thùc sù cña K kh«ng ph¶i lµ siªu kho¸. Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−6
  7. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Tr−êng hîp ®Æc biÖt, nÕu K lµ siªu khãa cã mét thuéc tÝnh th× K lµ khãa. C¸c thuéc tÝnh thuéc kho¸ nµo ®ã gäi lµ thuéc tÝnh kho¸ hay thuéc tÝnh nguyªn tè. Thuéc tÝnh kh«ng ph¶i thuéc tÝnh kho¸ gäi lµ thuéc tÝnh kh«ng kho¸. Mçi quan hÖ cã Ýt nhÊt mét kho¸. Tr−êng hîp cã nhiÒu kho¸ th× gäi c¸c kho¸ ®ã lµ kho¸ dù tuyÓn (candidate key), trong ®ã cã mét kho¸ lµ kho¸ chÝnh (primary key). Trong l−îc ®å quan hÖ c¸c thuéc tÝnh kho¸ chÝnh sÏ ®−îc g¹ch d−íi. ◊ VÝ dô: XÐt c¬ së d÷ liÖu KHACH-HANG. - L−îc ®å CUNGUNG cã kho¸: K = { Ten, Hang } - L−îc ®å KHACH cã kho¸: K = {Ten} - L−îc ®å HOPDONG cã kho¸: K = {SoHD} Nh− vËy, ®Ó chØ c¸c thuéc tÝnh kho¸ chÝnh, c¸c l−îc ®å trªn sÏ ®−îc viÕt l¹i nh− sau: CUNGUNG(Ten, DiaChi, Hang, DonGia) KHACH(Ten, DiaChi, SoDu) HOPDONG(SoHD, TenKH, Hang, SoLuong) ◊ VÝ dô: XÐt c¬ së d÷ liÖu EMP-PROJ. - L−îc ®å PROJ cã kho¸ lµ {PNO} - L−îc ®å EMP cã kho¸ lµ {ENO, PNO} Nh− vËy, ®Ó chØ c¸c thuéc tÝnh kho¸ chÝnh, c¸c l−îc ®å trªn sÏ ®−îc viÕt l¹i nh− sau: EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR) PROJ(PNO, PNAME, BUDGET) ◊ VÝ dô: XÐt quan hÖ NHANVIEN(Manv, HoTen, NgaySinh, NoiSinh, CMND) ë ®©y Manv (m· sè nh©n viªn) vµ CMND (sè chøng minh nh©n d©n) ®Òu cã thÓ lµ kho¸. NÕu ta chän Manv lµm kho¸ chÝnh, th× CMND sÏ lµ kho¸ dù tuyÓn. Trong tr−êng hîp nµy ta viÕt l¹i l−îc ®å trªn nh− sau: NHANVIEN(Manv, HoTen, NgaySinh, NoiSinh, CMND) c) Kho¸ ngo¹i Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−7
  8. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Cho l−îc ®å R vµ l−îc ®å Q. TËp con H c¸c thuéc tÝnh cña R gäi lµ kho¸ ngo¹i cña R tham chiÕu ®Õn l−îc ®å Q, nÕu Q cã kho¸ K gåm c¸c thuéc tÝnh (cã thÓ d−íi tªn kh¸c) cña H tho¶ m·n: Víi mäi quan hÖ r vµ q lµ c¸c quan hÖ cña mét c¬ së d÷ liÖu øng víi l−îc ®å R vµ Q ta cã: ∀x∈r ∃y∈q: x(H) = y(K) NÕu r vµ q lµ c¸c kiÓu thùc thÓ, th× ®©y chÝnh lµ quan hÖ phô thuéc tån t¹i cña kiÓu thùc thÓ r vµo kiÓu thùc thÓ q. ◊ VÝ dô - Trong c¬ së d÷ liÖu EMP-PROJ, l−îc ®å EMP cã kho¸ ngo¹i PNO tham chiÕu ®Õn kho¸ PNO cña l−îc ®å PROJ. - Trong c¬ së d÷ liÖu KHACH-HANG, l−îc ®å HOPDONG cã kho¸ ngo¹i Tenkh tham chiÕu ®Õn kho¸ Ten cña l−îc ®å KHACH. Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−8
  9. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Ii. chuyÓn s¬ ®å thùc thÓ-quan hÖ thµnh quan hÖ PhÇn nµy sÏ tr×nh bµy ph−¬ng ph¸p chuyÓn s¬ då thùc thÓ quan hÖ thµnh c¸c quan hÖ. C«ng viÖc nµy cã hai b−íc: biÓu diÔn thùc thÓ vµ biÓu diÔn quan hÖ. 1. BiÓu diÔn thùc thÓ Mçi kiÓu thùc thÓ trong s¬ ®å thùc thÓ quan hÖ ®−îc chuyÓn thµnh quan hÖ. Kho¸ chÝnh cña thùc thÓ trë thµnh kho¸ chÝnh cña quan hÖ t−¬ng øng. C¸c thuéc tÝnh kh«ng kho¸ cña thùc thÓ trë thµnh c¸c thuéc tÝnh kh«ng kho¸ cña quan hÖ. ◊ VÝ dô KiÓu thùc thÓ KHACHHANG cña C«ng ty ®å gç T£N §ÞA CHØ maKH HOA HONG KHACH HANG ®−îc biÕn ®æi thµnh quan hÖ KHACHHANG cã l−îc ®å KHACHHANG(Makh, Ten, DiaChi, HoaHong) 2. BiÓu diÔn quan hÖ Thñ tôc chuyÓn ®æi quan hÖ gi÷a c¸c thùc thÓ thµnh b¶ng quan hÖ phô thuéc vµo bËc quan hÖ (mét ng«i, hai ng«i, ba ng«i) vµ lùc l−îng quan hÖ. a. Quan hÖ hai ng«i 1−n Quan hÖ hai ng«i 1−n R E2 R E1 1 n ®−îc biÓu diÔn b»ng c¸ch thªm thuéc tÝnh kho¸ cña thùc thÓ E1 vµo quan hÖ biÓu diÔn thùc thÓ E2 nh− lµ kho¸ ngo¹i cña E2 tham chiÕu ®Õn E1. Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 4−9
  10. TrÇn Quèc ChiÕn C¬ së d÷ liÖu ◊ VÝ dô: XÐt quan hÖ 1−n gi÷a KHACHHANG vµ HOPDONG cña C«ng ty ®å gç T£N §ÞA CHØ maKH HOA HONG KHACH HANG Cã maHD NGAY HOP DONG hop dong NGAY GIAO HANG Thùc thÓ KHACHHANG cã l−îc ®å quan hÖ KHACHHANG(Makh, Ten, DiaChi, HoaHong) víi kho¸ chÝnh lµ Makh. Thªm thuéc tÝnh Makh vµo quan hÖ biÓu diÔn thùc thÓ HOPDONG ta nhËn ®−îc quan hÖ HOPDONG víi l−îc ®å sau HOPDONG(MaHD, NgayHD, NgayGH, Makh) trong ®ã Makh lµ kho¸ ngo¹i tham chiÕu ®Õn KHACHHANG. Ta thÊy r»ng quan hÖ 1−1 E2 R E1 1 1 lµ tr−êng hîp riªng cña quan hÖ 1−n. V× vËy ta cã thªm kho¸ chÝnh cña E1 vµo E2 nh− lµ kho¸ ngo¹i, hoÆc kho¸ chÝnh cña E2 vµo E1 nh− lµ kho¸ ngo¹i. b. Quan hÖ hai ng«i n−n Quan hÖ hai ng«i n−n R n n E2 R E1 Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 10 4 − 10
  11. TrÇn Quèc ChiÕn C¬ së d÷ liÖu ®−îc biÓu diÔn b»ng quan hÖ riªng Q. Quan hÖ Q cã kho¸ chÝnh lµ tæ hîp c¸c kho¸ cña E1 vµ E2 vµ c¸c thuéc tÝnh kho¸ kh¸c (nÕu cÇn), vµ c¸c thuéc tÝnh kh«ng kho¸ kh¸c (nÕu cã) sinh ra bëi quan hÖ R. ◊ VÝ dô: XÐt quan hÖ n−n gi÷a HOPDONG vµ SANPHAM cña C«ng ty ®å gç maHD NGAY HOP DONG hop dong NGAY GIAO HANG LOAI GO maSP Yªu cÇu SAN PHAM TEN SAN PHAM DON GIA SO LUONG SU DUNG SO LUONG HOP DONG KiÓu thùc thÓ HOPDONG cã l−îc ®å quan hÖ HOPDONG(MaHD, NgayHD, NgayGH, Makh) víi kho¸ chÝnh lµ MaHD. KiÓu thùc thÓ SANPHAM cã l−îc ®å quan hÖ SANPHAM(MaSP, TenSP, Su_dung, Loai_go, Don_gia, So_luong) víi kho¸ chÝnh lµ MaSP. Quan hÖ ®−îc biÓu diÔn b»ng quan hÖ YEUCAU víi l−îc ®å YEUCAU(MaHD, MaSP, SoLuong) trong ®ã (MaHD, MaSP) lµ kho¸ chÝnh, MaHD lµ kho¸ ngo¹i tham chiÕu ®Õn HOPDONG, vµ MaSP lµ kho¸ ngo¹i tham chiÕu ®Õn SANPHAM. ◊ VÝ dô: XÐt quan hÖ n−n gi÷a SINHVIEN vµ MONHOC nh− sau: Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 11 4 − 11
  12. TrÇn Quèc ChiÕn C¬ së d÷ liÖu maSV LANTHI maMH Thi HOTEN TENMH SINHVIEN MONHOC NGAYSINH SOTIET DIEM Thùc thÓ SINHVIEN chuyÓn thµnh quan hÖ SINHVIEN(Masv, HoTen, NgaySinh) Thùc thÓ MONHOC chuyÓn thµnh quan hÖ MONHOC(Mamh, Tenmh, SoTiet) Quan hÖ ®−îc biÓu diÔn b»ng quan hÖ THI víi l−îc ®å THI(MaSV, MaMH, LanThi, Diem) trong ®ã (MaSV, MaMH, LanThi) lµ kho¸ chÝnh, MaSV lµ kho¸ ngo¹i tham chiÕu ®Õn SINHVIEN, vµ MaMH lµ kho¸ ngo¹i tham chiÕu ®Õn MONHOC. c. Quan hÖ mét ng«i • Cho quan hÖ mét ng«i 1−n R gi÷a c¸c thùc thÓ cña kiÓu thùc thÓ E víi kho¸ K n R k E 1 Khi ®ã ta biÓu diÔn thùc thÓ E vµ quan hÖ ®¬n ng«i R b»ng quan hÖ víi c¸c thuéc tÝnh cña thùc thÓ E (trong ®ã cã kho¸ K) bæ sung thªm thuéc tÝnh K, d−íi c¸i tªn kh¸c, gäi lµ kho¸ ngo¹i ®Ö qui, tham chiÕu ®Õn kho¸ chÝnh K cña chÝnh quan hÖ ®ã. ◊ VÝ dô: XÐt kiÓu thùc thÓ NHANVIEN quan hÖ 1−n gi÷a c¸c nh©n viªn NgaySinh n Thñ MaNV nhanvien tr−ëng HoTen 1 Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 12 4 − 12
  13. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Thùc thÓ NHANVIEN vµ quan hÖ 1−n sÏ ®−îc biÓu diÔn b»ng quan hÖ NHANVIEN víi l−îc ®å NHANVIEN(MaNV, HoTen, NgaySinh, MaTT) trong ®ã MaTT (m· thñ tr−ëng) lµ MaNV (m· nh©n viªn) cña thñ tr−ëng cña nh©n viªn t−¬ng øng. • Cho quan hÖ mét ng«i n−n R gi÷a c¸c thùc thÓ cña kiÓu thùc thÓ E víi kho¸ K n R k E n Khi ®ã ta biÓu diÔn thùc thÓ E b»ng quan hÖ víi c¸c thuéc tÝnh cña thùc thÓ E (trong ®ã cã kho¸ K). Quan hÖ ®¬n ng«i R ®−îc biÓu diÔn b»ng quan hÖ víi kho¸ chÝnh K, vµ kho¸ ngo¹i ®Ö qui tham chiÕu ®Õn quan hÖ biÓu diÔn thùc thÓ E. ◊ VÝ dô: XÐt quan hÖ n−n gi÷a c¸c chi tiÕt DonGia n Gåm SoLuong MaCT chi tiet cã TenCT n Thùc thÓ ®−îc biÓu diÔn b»ng quan hÖ CHITIET víi l−îc ®å CHITIET(MaCT, TenCT, DonGia) Quan hÖ ®¬n ng«i ®−îc biÓu diÔn b»ng quan hÖ GOMCO víi l−îc ®å GOMCO(MaCT, MaCTBP, SoLuong) trong ®ã MaCTBP m· cña chi tiÕt bé phËn. MaCT lµ kho¸ ngo¹i tham chiÕu ®Õn MaCT trong chÝnh quan hÖ CHITIET. MaCTBP lµ kho¸ ngo¹i ®Ö qui tham chiÕu ®Õn MaCT trong chÝnh quan hÖ CHITIET. d. Quan hÖ trong ISA M« h×nh d÷ liÖu quan hÖ kh«ng hç trî trùc tiÕp quan hÖ kiÓu thùc thÓ d−íi. Tuy nhiªn ta cã thÓ ¸p dông c¸c chiÕn l−îc sau ®Ó biÓu diÔn quan hÖ trong ISA: Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 13 4 − 13
  14. TrÇn Quèc ChiÕn C¬ së d÷ liÖu i. T¹o c¸c quan hÖ riªng biÖt cho líp thùc thÓ trªn vµ mçi líp thùc thÓ d−íi cña nã. ii. Quan hÖ cña líp thùc thÓ trªn chØ gåm cã c¸c thuéc tÝnh chung cho tÊt c¶ c¸c líp thùc thÓ d−íi. iii. Mçi quan hÖ líp thùc thÓ d−íi chØ chøa thuéc tÝnh kho¸ chÝnh vµ c¸c thuéc tÝnh riªng cña líp ®ã. iv. C¸c kho¸ chÝnh cña quan hÖ thùc thÓ trªn vµ cña mçi quan hÖ thùc thÓ d−íi cã cïng mét miÒn gi¸ trÞ. ◊ VÝ dô: S¬ ®å sau biÓu diÔn quan hÖ trong ISA gi÷a thùc thÓ trªn NHANVIEN vµ c¸c thùc thÓ d−íi THOIVU, BIENCHE, HOPDONG. manv Hä T£N §ÞA CHØ NGAY lv nh©n viªn ISA ISA ISA thoivu biªnchª hopdong manv manv manv l−¬ng_gio l−¬ng_nam l−¬ng_ngay Theo chiÕn l−îc trªn, ta sö dông c¸c quan hÖ sau ®Ó biÓu diÔn c¸c thùc thÓ cïng c¸c quan hÖ ISA: - Thùc thÓ trªn NHANVIEN: NHANVIEN(MANV, HOTEN, DIACHI, NGAYLV) - C¸c thùc thÓ d−íi: THOIVU(MANV, LUONG_GIO) BIENCHE(MANV, LUONG_NAM) HOPDONG(MANV, LUONG_NGAY) trong ®ã MANV cña THOIVU, BIENCHE vµ HOPDONG lµ kho¸ chÝnh ®ång thêi lµ kho¸ ngo¹i tham chiÕu ®Õn MANV cña NHANVIEN. Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 14 4 − 14
  15. TrÇn Quèc ChiÕn C¬ së d÷ liÖu IIi. qui t¾c toµn vÑn Qui t¾c toµn vÑn (integrity rule) lµ c¸c rµng buéc ®¶m b¶o tr¹ng th¸i nhÊt qu¸n cña c¬ së d÷ liÖu. Chóng th−êng ®−îc diÔn t¶ nh− lµ c¸c rµng buéc. Rµng buéc toµn vÑn (integrity constraint) cã thÓ thuéc lo¹i cÊu tróc hay hµnh vi. Rµng buéc cÊu tróc (structural constraint) thõa kÕ tõ m« h×nh d÷ liÖu, theo nghÜa chóng gi÷ th«ng tin vÒ c¸c mèi liªn hÖ d÷ liÖu kh«ng thÓ m« h×nh ho¸ tiÕp ®−îc. Rµng buéc hµnh vi (behavioral constraint) cho phÐp duy tr× ng÷ nghÜa c¸c øng dông. C¸c lo¹i phô thuéc d÷ liÖu xÐt ë phÇn sau thuéc lo¹i rµng buéc hµnh vi. Trong phÇn nµy chóng ta chØ ®Ò cËp c¸c rµng buéc cÊu tróc. Cã c¸c lo¹i qui t¾c toµn vÑn sau: Toµn vÑn thùc thÓ (Entity integrity), MiÒn gi¸ trÞ (Domains), Toµn vÑn tham chiÕu (Referential integrity), Thao t¸c bÉy (Triggering operations). 1. Toµn vÑn thùc thÓ Qui t¾c toµn vÑn thùc thÓ yªu cÇu mçi b¶ng quan hÖ (thùc thÓ) ph¶i cã kho¸ chÝnh, c¸c thuéc tÝnh kho¸ ph¶i cã gi¸ trÞ duy nhÊt vµ kh¸c null. Qui t¾c nµy kh«ng cho phÐp hai b¶n ghi trïng kho¸. ◊ VÝ dô: XÐt c¬ së d÷ liÖu KHACH-HANG CUNGUNG(Ten, DiaChi, Hang, DonGia) KHACH(Ten, DiaChi, SoDu) HOPDONG(SoHD, TenKH, Hang, SoLuong) Qui t¾c toµn vÑn thùc thÓ rµng buéc: - Trong quan hÖ KHACH thuéc tÝnh kho¸ Ten kh«ng thÓ nhËn gi¸ trÞ null vµ cã gi¸ trÞ kh«ng trïng nhau. - Trong quan hÖ CUNGUNG cÆp thuéc tÝnh kho¸ (Ten, Hang) kh«ng thÓ nhËn gi¸ trÞ null vµ cã gi¸ trÞ kh«ng trïng nhau. - Trong quan hÖ HOPDONG thuéc tÝnh kho¸ SoHD kh«ng thÓ nhËn gi¸ trÞ null vµ cã gi¸ trÞ kh«ng trïng nhau. ◊ VÝ dô: XÐt c¬ së d÷ liÖu EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR) PROJ(PNO, PNAME, BUDGET) Qui t¾c toµn vÑn thùc thÓ rµng buéc: - Trong l−îc ®å PROJ thuéc tÝnh kho¸ PNO kh«ng thÓ nhËn gi¸ trÞ null vµ cã gi¸ trÞ kh«ng trïng nhau. Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 15 4 − 15
  16. TrÇn Quèc ChiÕn C¬ së d÷ liÖu - Trong l−îc ®å EMP cÆp thuéc tÝnh kho¸ (EMP, PNO) kh«ng thÓ nhËn gi¸ trÞ null vµ cã gi¸ trÞ kh«ng trïng nhau. 2. MiÒn gi¸ trÞ §©y lµ lo¹i rµng buéc lªn c¸c gi¸ trÞ hîp lÖ cña thuéc tÝnh. MiÒn gi¸ trÞ lµ tËp hîp tÊt c¶ c¸c lo¹i d÷ liÖu vµ ph¹m vi gi¸ trÞ ®−îc thuéc tÝnh thõa nhËn. §Þnh nghÜa miÒn gi¸ trÞ x¸c ®Þnh c¸c tham sè ®Æc tr−ng cña thuéc tÝnh: ý nghÜa (meaning), kiÓu d÷ liÖu (data type), ®é dµi (length), khu«n d¹ng (format), ph¹m vi (range), gi¸ trÞ cho phÐp (allowable values), tÝnh duy nhÊt (uniqueness), chÊp nhËn gi¸ trÞ null (null support). ◊ VÝ dô: XÐt quan hÖ KHACH(Ten, DiaChi, SoDu) C¸c thuéc tÝnh Ten vµ SoDu cã miÒn gi¸ trÞ nh− sau Ten SoDu Tªn : ý nghÜa : Tªn kh¸ch hµng Sè d− cã cña kh¸ch hµng KiÓu d÷ liÖu : Ký tù (Character) Sè (numeric) §é dµi : 20 10 Khu«n d¹ng : 99999999.99 Ph¹m vi : >0 Gi¸ trÞ cho phÐp : Duy nhÊt : Cã Kh«ng Null support : Non-null Null 3. Toµn vÑn tham chiÕu Toµn vÑn tham chiÕu lµ rµng buéc ®¶m b¶o tÝnh hîp lÖ cña sù tham chiÕu cña mét ®èi t−îng trong c¬ së d÷ liÖu (gäi lµ ®èi t−îng tham chiÕu) ®Õn ®èi t−îng kh¸c (gäi lµ ®èi t−îng ®−îc tham chiÕu) trong c¬ së d÷ liÖu ®ã. C¸c thuéc tÝnh t−¬ng øng gäi thuéc tÝnh cÆp ghÐp cña rµng buéc tham chiÕu. ◊ VÝ dô: XÐt c¸c quan hÖ EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR) PROJ(PNO, PNAME, BUDGET) Víi mçi bé e ∈ EMP ph¶i tån t¹i bé p∈ PROJ sao cho e(PNO) = p(PNO) Thuéc tÝnh PNO cña quan hÖ EMP lµ kho¸ ngo¹i tham chiÕu ®Õn kho¸ chÝnh PNO cña quan hÖ PROJ: EMP.PNO→PROJ.PNO Quan hÖ EMP lµ quan hÖ tham chiÕu vµ quan hÖ PROJ lµ quan hÖ ®−îc tham chiÕu, víi cÆp ghÐp: (EMP.PNO, PROJ.PNO). Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 16 4 − 16
  17. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Qui t¾c toµn vÑn tham chiÕu ®−îc xÐt ®Õn trong khi cËp nhËt quan hÖ tham chiÕu hoÆc quan hÖ ®−îc tham chiÕu. Ta xÐt c¸c qui t¾c con sau. • Qui t¾c chÌn: Kh«ng thÓ chÌn hµng míi vµo quan hÖ tham chiÕu nÕu quan hÖ ®−îc tham chiÕu ch−a cã d÷ liÖu cÆp ghÐp t−¬ng øng. ◊ VÝ dô: XÐt c¸c quan hÖ EMP vµ PROJ. Gi¶ sö ta muèn chÌn b¶n ghi e = (E1, J.Doe, Elect.Eng., 40000, P5, Manager, 20) trong ®ã P5 lµ dù ¸n Elect.Commerce (th−¬ng m¹i ®iÖn tö) víi kinh phÝ 500000 USD. Khi ®ã, nÕu quan hÖ PROJ ch−a cã b¶n ghi p = (P5, Elect.Commerce, 500000) th× qui t¾c chÌn ®¶m b¶o kh«ng thÓ chÌn b¶n ghi e vµo quan hÖ EMP ®−îc. Muèn chÌn b¶n ghi e vµo quan hÖ EMP, tr−íc hÕt ta ph¶i chÌn b¶n ghi p vµo quan hÖ PROJ. • Qui t¾c xo¸: Kh«ng thÓ xo¸ hµng cña quan hÖ ®−îc tham chiÕu nÕu hµng ®ã cã d÷ liÖu cÆp ghÐp t−¬ng øng trong quan hÖ tham chiÕu. ◊ VÝ dô: XÐt c¸c quan hÖ EMP vµ PROJ. EMP ENO ENAME TITLE SAL PNO RESP DUR E1 J.Doe Elect.Eng. 40000 P1 Manager 12 E2 M.Smith Syst.Anal. 34000 P1 Analyst 24 E2 M.Smith Syst.Anal. 34000 P2 Analyst 6 ... ... ... ... ... ... ... PROJ PNO PNAME BUDGET P1 Instrumentation 150000 P2 Database Development 135000 P3 CAD/CAM 250000 P4 Maintenance 310000 Gi¶ sö dù ¸n P1 ®· kÕt thóc vµ ta muèn xo¸ nã khái quan hÖ PROJ. Tuy nhiªn c¸c b¶n ghi mét vµ hai cña EMP tham chiÕu ®Õn dù ¸n P1, v× thÕ ta kh«ng thÓ xo¸ dù ¸n P1 ®−îc. Tuy nhiªn, qui t¾c toµn vÑn tham chiÕu cho phÐp c¸c ph−¬ng ¸n lùa chän sau: 1) Restrict: Kh«ng cho xo¸. 2) Nullify: G¸n gi¸ trÞ null cho thuéc tÝnh cÆp ghÐp cña c¸c b¶n ghi cña quan hÖ tham chiÕu tham chiÕu ®Õn b¶n ghi bÞ xo¸. 3) Cascade: Xo¸ tÊt c¶ c¸c b¶n ghi cña quan hÖ tham chiÕu tham chiÕu ®Õn b¶n ghi bÞ xo¸. 4. Thao t¸c bÉy Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 17 4 − 17
  18. TrÇn Quèc ChiÕn C¬ së d÷ liÖu Thao t¸c bÉy lµ qui t¾c yªu cÇu tÝnh hîp ph¸p cña d÷ liÖu trong c¸c t¸c nghiÖp cËp nhËt nh− xo¸, chÌn vµ söa. Thao t¸c bÉy cã thÓ liªn quan ®Õn c¸c thuéc tÝnh cña mét quan hÖ hoÆc nhiÒu quan hÖ. C¸c rµng buéc phøc t¹p th−êng ®−îc ph¸t biÓu d¹ng thao t¸c bÉy. Mét thao t¸c bÉy th−êng cã c¸c thµnh phÇn sau: 1) Qui t¾c ng−êi dïng: lµ yªu cÇu ng¾n gän cña rµng buéc. 2) Sù kiÖn: lµ c¸c thao t¸c xö lý d÷ liÖu (chÌn, söa hoÆc xo¸) kÝch ho¹t thao t¸c bÉy. 3) Tªn thùc thÓ: tªn c¸c thùc thÓ liªn quan. 4) §iÒu kiÖn: lµ c¸c lý do dÉn ®Õn viÖc c¸c bÉy thao t¸c. 5) Hµnh ®éng: lµ c«ng viÖc thùc thi khi thao t¸c ®−îc bÉy. ◊ VÝ dô: Cho thùc thÓ NHANVIEN(Manv, HoTen, NgaySinh, NgayBC, ...). HiÓn nhiªn lµ NgayBC (ngµy vµo biªn chÕ) kh«ng ®−îc sím h¬n NgaySinh. Ta cã thÓ ®¶m b¶o ®iÒu kiÖn nµy b»ng thao t¸c bÉy sau: Qui t¾c ng−êi dïng: NgayBC kh«ng sím h¬n NgaySinh Sù kiÖn: ChÌn, Söa Tªn thùc thÓ: NHANVIEN §iÒu kiÖn: NgayBC KHACH.SoDu Hµnh ®éng: Phñ nhËn thao t¸c cËp nhËt Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 18 4 − 18
  19. TrÇn Quèc ChiÕn C¬ së d÷ liÖu iv. c¸c ng«n ng÷ d÷ liÖu quan hÖ C¸c ng«n ng÷ thao t¸c d÷ liÖu ®−îc ph¸t triÓn cho m« h×nh quan hÖ (th−êng gäi lµ ng«n ng÷ vÊn tin, query language) ®−îc chia lµm hai nhãm c¨n b¶n: C¸c ng«n ng÷ dùa trªn ®¹i sè quan hÖ (relational algebra) vµ c¸c ng«n ng÷ dùa trªn phÐp tÝnh quan hÖ (relational calculus). Kh¸c biÖt gi÷a chóng lµ c¸ch thøc ng−êi sö dông ®−a ra c©u vÊn tin. §¹i sè quan hÖ thuéc lo¹i thñ tôc (procedural), trong ®ã ng−êi dïng cÇn ph¶i ®Æc t¶, nhê mét sè to¸n tö, b»ng c¸ch nµo ®¹t ®−îc kÕt qu¶. Ng−îc l¹i phÐp tÝnh quan hÖ thuéc lo¹i phi thñ tôc (nonprocedural), ng−êi dïng chØ cÇn ®Æc t¶ c¸c mèi liªn hÖ cÇn ph¶i ®¶m b¶o trong kÕt qu¶. C¶ hai ng«n ng÷ ®−îc Codd ®−a ra n¨m 1970 vµ «ng ®· chøng minh r»ng chóng t−¬ng ®−¬ng vÒ kh¶ n¨ng diÔn t¶. 1. §¹i sè quan hÖ §¹i sè quan hÖ cã mét tËp c¸c phÐp to¸n trªn c¸c quan hÖ. Chóng cã nguån gèc tõ lý thuyÕt tËp hîp (mçi quan hÖ thùc chÊt lµ mét tËp hîp). Mçi to¸n tö nhËn mét hoÆc hai quan hÖ lµm to¸n h¹ng vµ cho ra mét quan hÖ míi (quan hÖ kÕt qu¶), ®Õn l−ît nã quan hÖ kÕt qu¶ cã thÓ dïng lµm to¸n h¹ng cho mét to¸n tö kh¸c. Nh÷ng phÐp to¸n nµy cho phÐp vÊn tin vµ cËp nhËt c¬ së d÷ liÖu quan hÖ. Cã n¨m phÐp to¸n ®¹i sè c¬ b¶n vµ n¨m phÐp to¸n kh¸c cã thÓ ®Þnh nghÜa theo c¸c phÐp to¸n c¬ b¶n. C¸c phÐp to¸n c¬ b¶n lµ: phÐp chän, phÐp chiÕu, phÐp hîp, phÐp hiÖu vµ tÝch Descartes. Hai phÐp to¸n ®Çu thuéc lo¹i mét ng«i, vµ ba phÐp to¸n sau thuéc lo¹i hai ng«i. C¸c phÐp to¸n bæ sung cã thÓ ®Þnh nghÜa bëi c¸c phÐp to¸n c¬ b¶n lµ: phÐp giao, phÐp nèi, phÐp nèi tù nhiªn, phÐp b¸n nèi, vµ phÐp th−¬ng. Trong thùc hµnh ®¹i sè quan hÖ ®−îc më réng ®Ó cã thÓ nhãm hoÆc s¾p xÕp kÕt qu¶ vµ cã thÓ thùc hiÖn c¸c phÐp gép phÇn (aggregation) hoÆc c¸c phÐp tÝnh sè häc. Mét sè phÐp to¸n kh¸c nh− nèi ngoµi (outer join) còng ®−îc hç trî. C¸c to¸n h¹ng cña mét sè phÐp to¸n hai ng«i ph¶i øng hîp (union compatible), tøc lµ chóng cïng bËc (cïng sè thuéc tÝnh) vµ c¸c thuéc tÝnh t−¬ng øng cã cïng miÒn gi¸ trÞ. a. PhÐp chiÕu Cho quan hÖ r víi l−îc ®å quan hÖ R=(A1, ..., An). Cho S lµ l−îc ®å con cña R, S⊂R, S cã m thuéc tÝnh. ChiÕu cña r lªn l−îc ®å S lµ quan hÖ cã l−îc ®å S, ký hiÖu πS(r), gåm tÊt c¶ c¸c m-bé u sao cho tån t¹i n-bé v ∈ r tho¶ m·n v(S) = u tøc lµ πS(r) = {m-bé u : ∃ v∈r, v(S) = u } ◊ VÝ dô Cho quan hÖ r víi c¸c thuéc tÝnh A,B,C. Sau ®©y lµ vÝ dô cô thÓ vÒ chiÕu cña r lªn hai thuéc tÝnh A vµ C. r πA,C (r) Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 19 4 − 19
  20. TrÇn Quèc ChiÕn C¬ së d÷ liÖu A B C A C ⇒ a b c a c d a f d f c b d c d c f d ◊ VÝ dô: XÐt quan hÖ PROJ PROJ PNO PNAME BUDGET P1 Instrumentation 150000 P2 Database Development 135000 P3 CAD/CAM 250000 P4 Maintenance 310000 ChiÕu cña PROJ lªn c¸c thuéc tÝnh PNO vµ BUDGET cã kÕt qu¶ nh− sau πPNO,BUDGET(PROJ) PNO BUDGET P1 150000 P2 135000 P3 250000 P4 310000 b. PhÐp chän Cho quan hÖ r víi l−îc ®å quan hÖ R=(A1, ..., An) vµ F lµ biÓu thøc l«gic bao gåm (i) C¸c to¸n h¹ng lµ h»ng hoÆc sè hiÖu hoÆc tªn thµnh phÇn (thuéc tÝnh) (ii) C¸c phÐp to¸n so s¸nh : , ≠ , ≤, ≥ (iii) C¸c phÐp to¸n logic : &, ∧ (vµ), ∨ (hoÆc) , ¬ (phñ ®Þnh). Chän cña r theo biÓu thøc F, ký hiÖu σF(r), lµ quan hÖ cã l−îc ®å R gåm tÊt c¶ c¸c bé t trong r sao cho khi thay c¸c thµnh phÇn cña t vµo biÓu thøc F th× ta cã gi¸ trÞ ®óng. Tøc lµ σF(r) = { t∈r : F(t) = true } ◊ VÝ dô: Cho quan hÖ r víi c¸c thuéc tÝnh A,B,C. Sau ®©y lµ vÝ dô cô thÓ vÒ chän cña r theo biÓu thøc B=b r σB=b(r) AB C A b C ⇒ a b c a b c da f c b d c b d ◊ VÝ dô: XÐt quan hÖ EMP EMP ENO ENAME TITLE SAL PNO RESP DUR E1 J.Doe Elect.Eng. 40000 P1 Manager 12 Ch−¬ng 4. M« h×nh c¬ së d÷ liÖu quan hÖ 20 4 − 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
44=>2