Không chỉ xác định các kiểu khác nhau của b¿n ghi l°u tră mà còn xác định rõ sự tồn tại của các chỉ dẫn, cách sÁp xÁp các.b¿n ghi theo thứ tự nào...Nó xác định dă liáu l°u tră và truy nh
Trang 1Sà LAO ĐàNG, TH¯¡NG BINH VÀ Xà HàI ĐÀK LÀK
TR¯âNG TRUNG CÂP TR¯âNG S¡N
GIÁO TRÌNH
MÔ N HàC: C¡ Sä DĂ LIàU NGHÀ: CÔNG NGHà THÔNG TIN TRÌNH ĐÞ: TRUNG CÂP
……… của ………
Đ¿k L¿k, năm 2022
Trang 3LâI GIàI THIàU
Giáo trình này có thể giúp các sinh viên trong viác học môn c¢ sá dă liáu á b¿c trung cÁp, cao đẳng và đại học cũng nh° trong các kỳ thi tốt nghiáp Đại Học, Cao đẳng, trong các kỳ thi liên thông Chúng tôi mong rằng các sinh viên tự tìm hiểu tr°ớc mßi vÁn đề và kÁt hợp với bài gi¿ng trên lớp của giáo viên để viác học môn này đạt
hiáu qu¿
Giáo trình Khái niám phụ thuác hàm (Functional dependency) đ°ợc E.F Codd
đề xuÁt tÿ năm 1970 cho tới nay đã thu đuợc rÁt nhiều thành tựu to lớn và đóng vai trò không thể thiÁu trong viác thiÁt kÁ c¢ sá dă liáu quan há Mát trong nhăng vÁn đề quan trọng của c¢ sá dă liáu là khai phá phụ thuác hàm tÿ các quan há Phụ thuác hàm (Functional dependency) là mát công cụ dùng để biểu dißn mát cách hình thức các ràng buác toàn vẹn Ph°¢ng pháp biểu dißn này có rÁt nhiều °u điểm, là công cụ cực
kỳ quan trọng và hău ích, gÁn chặt với lý thuyÁt về phân tích, thiÁt kÁ c¢ sá dă liáu Các phụ thuác hàm đ°ợc ứng dụng trong viác gi¿i quyÁt các bài toán tìm khóa, tìm
phủ tối tiểu, chuẩn hóa c¢ sá dă liáu và các vÁn đề về nhÁt quán dă liáu Khi thiÁt kÁ mát mô hình c¢ sá dă liáu, thì viác l¿p l°ợc đồ c¢ sá dă liáu đạt đÁn mát tiêu chuẩn nhÁt định là mát công viác hÁt sức quan trọng, vì v¿y viác xác định chuẩn cho mát l°ợc đồ quan há liên quan m¿t thiÁt đÁn thu¿t toán tìm khóa
Do kh¿ năng có hạn và giáo trình đ°ợc biên soạn lần đầu nên không thể tránh
khỏi thiÁu sót Chúng tôi rÁt mong nh¿n đ°ợc sự đóng góp ý kiÁn của các đồng nghiáp
để giáo trình ngày càng đ°ợc hoàn thián h¢n
Trang 4M ĀC LĀC LâI GIàI THIàU III GIÁO TRÌNH MÔN HàC VI
CH¯¡NG 1: KHÁI NIàM C¡ BÀN VÀ C¡ Sä DĂ LIàU 1
1 KHÁI NIàM C¡ Sä DĂ LIàU 1
2 SĄ CÄN THI¾T CĂA CÁC Hà C¡ Sä DĂ LIàU 2
3 MÔ HÌNH KI¾N TRÚC TâNG QUÁT 3 MĄC Hà C¡ Sä DĂ LIàU 3
3.1 Mức trong 3
3.2 Mô hknh dư뀃 li⌀u 3
3.3 Mức ngoài 5
4 NGÔN NGĂ CON DĂ LIàU VÀ Hà QUÀN TRÞ C¡ Sä DĂ LIàU 5
4.1 NGÔN NGĂ CON DĂ LIàU: 5
4.2 Hà QUÀN TRÞ C¡ Sä DĂ LIàU: 5
5 Tâ CHĄC L¯U TRĂ DĂ LIàU 5
6 CÁC MÔ HÌNH XĀ LÝ DĂ LIàU 5
CH¯¡NG II: MÔ HÌNH QUAN Hà 6
1 NGUYÊN NHÂN RA ĐâI CĂA MÔ HÌNH QUAN Hà 6
2 M Ô HÌNH QUAN Hà 6
2.1 Mô hình quan hệ là gì? 6
2.2 Các khá i niệm cơ bản của mô hình quan hệ 6
2.3 Các phép toán tập hợp 6
2.4 Các phép toán quan hệ 6
3 M Ô HÌNH THĄC THÂ K¾T HþP 6
CH¯¡NG III: RÀNG BUÞC TOÀN VÀN QUAN Hà 12
1 1 RÀNG BUÞC TOÀN VÀN - CÁC Y¾U TÞ CĂA RÀNG BUÞC TOÀN VÀN: 12
1.1 Ràng buộc toàn vẹn 12
1.2 Các yếu tố của ràng buộc toàn vẹn: 12
2 2 P HÂN LO¾I RÀNG BUÞC TOÀN VÀN : 13
2.1 Ràng buộc toàn vẹn liên bộ 14
2.2 Ràng buộc toàn vẹn về phụ thuộc tồn tại 14
2.3 Ràng buộc toàn vẹn về miền giá trị 14
2.4 Ràng buộc toàn vẹn liên thuộc tính 14
2.5 Ràng buộc toàn vẹn liên thuộc tính liên quan h⌀ 15
2.6 Ràng buộc toàn vẹn về thuộc tính tổng hợp 15
CH¯¡NG IV: PHĀ THUÞC HÀM 16
1 K HÁI NIàM PHĀ THUÞC HÀM 16
1.1 Định nghĩa phụ thuộc hàm 16
1.2 Phụ thuộc hàm hiển nhiên 17
1.3 Thuật toán Satifies 17
1.4 Các phụ thuộc hàm có thể có 17
2 H à LUÊT DÈN ARMSTRONG 17
2.1 Phụ thuộc hàm được suy diễn logic từ F 17
2.2 H⌀ luật dẫn Armstrong 17
CH¯¡NG V: PHĂ CĂA TÊP PHĀ THUÞC HÀM 20
1 BAO ĐÓNG VÀ THUÊT TOÁN XÁC ĐÞNH BAO ĐÓNG CÁC THUÞC TÍNH 20
Trang 51.1 Định nghĩa: 20
1.2 Thuật toán xác định bao đóng các thuộc tính 21
2 C ÁC LO¾I PHĀ THUÞC HÀM 22
2.1 Phụ thuộc hàm có vế trái dư thừa 22
2.2 Phụ thuộc hàm có vế phải một thuộc tính 22
2.3 Tập phụ thuộc hàm không dư thừa 22
2.4 Tập phụ thuộc hàm tối thiểu 22
3 T HUÊT TOÁN TÌM PHĂ TÞI THIÂU TÞI THIÂU 22
4 K HÓA CĂA L¯þC Đà QUAN Hà 23
4.1 Định nghĩa 23
4.2 Thuật toán tkm tất cả các khóa 23
CH¯¡NG VI: NGÔN NGĂ THAO TÁC DĂ LIàU 25
CH¯¡NG VII: CHUÆN HÓA C¡ Sä DĂ LIàU 42
1 D ¾NG CHUÆN CĂA L¯þC Đà QUAN Hà 42
1.1 Dạng chuẩn một 42
1.2 Dạng chuẩn hai 42
1.3 Dạng chuẩn ba 44
1.4 Dạng chuẩn Boyce – Codd 47
2 P HÉP TÁCH K¾T NÞI BÀO TOÀN 48
2.1 Phép tách kết nối bảo toàn thông tin 48
2.2 Phép tách kết nối bảo toàn phụ thuộc hàm 49
3 T HI¾T K¾ CSDL BÀNG CÁCH PHÂN RÃ 50
TÀI LIàU THAM KHÀO 51
Trang 6GIÁO TRÌNH MÔ N HàC Tên môn h ác: C¡ Sà DĂ LIàU
Mã môn h ác: MH08
V ß trí, tính chÃt, ý nghĩa và vai trò căa mô đun:
- Vị trí: Là môn học c¢ sá nghề trong ch°¢ng trình đào tạo Trung cÁp nghề Công nghá thông tin (ứng dụng phần mềm) Môn học này đ°ợc học sau khối môn học chung
- Tính chÁt: Môn học cung cÁp nhăng kiÁn thức c¢ b¿n về c¢ sá dă liáu, các ph°¢ng pháp tiÁp c¿n và các nguyên tÁc thiÁt kÁ các há c¢ sá dă liáu quan há Mô hình hóa dă liáu bằng kiÁn trúc logic và kiÁn trúc v¿t lý không tổn thÁt thông tin có b¿o toàn phụ thuác Các phép toán c¢ b¿n của ngôn ngă thao tác dă liáu trên các há c¢ sá dă liáu Các ph°¢ng pháp b¿o m¿t, toàn vẹn dă liáu
- Ý nghĩa và vai trò của mô đun:
M āc tiêu căa mô đun:
- Về kiÁn thức:
- Trình bày đ°ợc các khái niám về c¢ sá dă liáu, há qu¿n trị c¢ sá dă liáu và mô hình quan há;
- Trình bày đ°ợc nguyên lý thiÁt kÁ c¢ sá dă liáu quan há;
- Trình bày về các mô hình dă liáu và các công cụ mô t¿ dă liáu;
- Trình bày về các khái niám, tính năng và các ph°¢ng thức xā lý dă liáu của há qu¿n trị c¢ sá dă liáu SQL;
- Về kỹ năng:
- Phân biát đ°ợc các cách chuẩn hóa các c¢ sá dă liáu quan há;
- Xây dựng đ°ợc mát số c¢ sá dă liáu trên Access;
- ViÁt các câu lánh truy vÁn đÁn c¢ sá dă liáu bằng SQL;
- Xây dựng đ°ợc các ràng buác, các phụ thuác hàm, cách chuẩn hóa các c¢ sá
dă liáu quan há;
- Xác định đ°ợc đầy đủ và chính xác các khóa của các l°ợc đồ c¢ sá dă liáu;
- ThiÁt kÁ đ°ợc mát số c¢ sá dă liáu quan há thông dụng: qu¿n lý nhân sự, qu¿n
Trang 7CH¯¡NG 1: KHÁI NIàM C¡ BÀN VÀ C¡ Sä DĂ LIàU
Gi ái thiáu:
M āc tiêu:
- Trình bày đ°ợc khái niám c¢ sá dă liáu;
- Trình bày đ°ợc sự cần thiÁt của các há c¢ sá dă liáu;
- Trình bày đ°ợc đặc điểm của mô hình kiÁn trúc tổng quát 3 mức há c¢ sá dă liáu;
- Trình bày đ°ợc khái niám ngôn ngă con dă liáu và há qu¿n trị c¢ sá dă liáu;
- Trình bày đ°ợc đặc điểm và vai trò của tổ chức l°u tră dă liáu; Trình bày đ°ợc khái niám, °u điểm nh°ợc điểm của các mô hình xā l{ dă liáu;
- ThiÁt kÁ đ°ợc mô hình kiÁn trúc tổng quát 3 mức há c¢ sá dă liáu;
- L¿p b¿ng so sánh 3 mức há c¢ sá dă liáu trong mô hình kiÁn trúc tổng quát
- L¿p đ°ợc b¿ng so sánh các mô hình xā lý dă liáu;
- Nghiêm túc, tỉ mỉ trong viác học và làm bài t¿p;
- Rèn luyán tính cẩn th¿n, tỉ mỉ, chính xác, sáng tạo, linh hoạt trong công viác
N ßi dung chính:
1 Khái ni ám c¢ så dă liáu
C¢ sá dă liáu (CSDL) là sự t¿p hợp có tổ chức (có cÁu trúc) các dă liáu có liên quan lu¿n lý với nhau, đ°ợc l°u tră trên các thiÁt bị l°u tră thông tin (băng tÿ, đĩa
tÿ&) để có thể thỏa mãn yêu cầu khai thác thông tin đồng thßi của nhiều ng°ßi sā dụng hay nhiều ch°¢ng trình ứng dụng với nhiều mục đích khác nhau Ví dụ: Để qu¿n
lý hoạt đáng học t¿p trong mát tr°ßng Đại học, chúng ta s¿ qu¿n lý các dă liáu là các thông tin về sinh viên, về các môn học, điểm thi& Do đó, chúng ta tổ chức các dă liáu thành các b¿ng và l°u giă chúng vào sổ sách hoặc sā dụng mát phần mềm máy tính để l°u giă chúng trên máy tính Ta có mát t¿p hợp các dă liáu có liên quan đÁn nhau và mang nhiều { nghĩa, đó là mát CSDL
Hình: CSDL qu¿n lý sinh viên Tr°ớc hÁt, chúng ta cần nhÁn mạnh CSDL ph¿i là mát t¿p hợp các thông tin mang tính há thống chứ không ph¿i là các thông tin rßi rạc, không có mối quan há với nhau Các thông tin này ph¿i có cÁu trúc và t¿p hợp các thông tin này ph¿i có kh¿ năng đáp ứng các nhu cầu khai thác của nhiều ng°ßi sā dụng mát cách đồng thßi Đó cũng chính là các đặc tr°ng của CSDL
Trang 82 S ą cÅn thi¿t căa các há c¢ så dă liáu
Trong nhăng năm gần đây, thu¿t ngă <C¢ sá dă liáu= (CSDL - Database) đã trá nên khá quen thuác không chỉ riêng với nhăng ng°ßi làm Tin học mà còn đối với c¿ nhăng ng°ßi làm trong nhiều lĩnh vực khác nh° Thống kê, Kinh tÁ, Qu¿n lý Doanh nghiáp v.v& Các ứng dụng của Tin học vào công tác qu¿n lý ngày càng nhiều h¢n và càng đa dạng h¢n Có thể nói hầu hÁt các lĩnh vực kinh tÁ, xã hái, giáo dục, y tÁ v.v& đều đã ứng dụng các thành tựu mới của Tin học vào phục vụ công tác chuyên môn của mình Chính vì l¿ đó mà ngày càng nhiều ng°ßi quan tâm đÁn lĩnh vực thiÁt kÁ và xây dựng các CSDL Mục đích của Ch°¢ng 1 chỉ đ¢n gi¿n là cung cÁp các khái niám c¢ b¿n về CSDL để các học viên có mát cái nhìn ban đầu về mát CSDL và mát há qu¿n trị CSDL Tr°ớc hÁt chúng ta s¿ tìm hiểu lý do tại sao cần ph¿i có mát CSDL
Cho đÁn nay vẫn còn mát số đ¢n vị kinh tÁ, hành chính sự nghiáp v.v& sā dụng mô hình há thống các t¿p tin cổ điển: Chúng đ°ợc tổ chức riêng r¿, phục vụ cho
mát mục đích của mát đ¢n vị hay mát đ¢n vị con trực thuác cụ thể Chẳng hạn, ta hãy xét ví dụ sau:
Ví dụ: Tại mát công ty ng°ßi ta trang bị máy vi tính cho tÁt c¿ các phòng, ban nghiáp vụ
Bá ph¿n Văn phòng sā dụng máy vi tính để soạn th¿o văn b¿n bằng Microsoft Word do thủ tr°áng yêu cầu về tình hình hoạt đáng của đ¢n vị, trong đó có chỉ tiêu về tổng số công nhân viên chức chia theo trình đá chuyên môn đ°ợc đào tạo Phòng KÁ toán sā dụng máy vi tính để tính l°¢ng và in danh sách l°¢ng của tÿng bá ph¿n trong đ¢n vị dựa trên danh sách cán bá viên chức cùng há số l°¢ng và các há số phụ cÁp của
họ do phòng Tổ chức cung cÁp Thông tin mà phòng KÁ toán qu¿n lý và khai thác là:
Họ và Tên, Há số l°¢ng, Há số phụ cÁp, Phụ cÁp khác của các công nhân viên chức (CNVC) xÁp theo tÿng phòng ban và sā dụng công cụ văn phòng là Microsoft Excel Phòng Tổ chức qu¿n lý thông tin lý lịch của CNVC chi tiÁt h¢n gồm: Họ, Tên (để riêng thành mát cát <Tên= để tián sÁp xÁp Alphabet), Giới tính, Ngày sinh, Ngày tuyển
dụng, Hoàn c¿nh gia đình, Quá trình đào tạo, Há số l°¢ng, Há số phụ cÁp, Ngày xÁp l°¢ng trên& nh°ng thiÁu thông tin về Phụ cÁp khác của CNVC Phần mềm đ°ợc sā dụng để qu¿n lý là FoxPro for Windows
Trong khi đó, tại Tổng công ty của họ, các phòng ban nghiáp vụ cũng đ°ợc trang bị máy vi tính Phòng Tổ chức cán bá tại Tổng công ty sā dụng phần mềm Microsoft Access để qu¿n lý CNVC gồm các cán bá chủ chốt tÿ tr°ßng phó phòng, qu¿n đốc và phó qu¿n đốc xí nghiáp trá lên của các công ty con trực thuác Thông tin
qu¿n lý tại đây cũng giống nh° thông tin qu¿n lý tại phòng tổ chức của công ty con
Nh¿n xét:
¯u điểm:
- Viác xây dựng há thống các t¿p tin riêng tại tÿng đ¢n vị qu¿n lý ít tốn thßi gian bái khối l°ợng thông tin cần qu¿n lý và khai thác là nhỏ, không đòi hỏi đầu t° v¿t chÁt và chÁt xám nhiều, do đó triển khai ứng dụng nhanh
- Thông tin đ°ợc khai thác chỉ phục vụ cho mục đích hẹp nên kh¿ năng đáp ứng nhanh chóng, kịp thßi
Nh°ợc điểm:
Trang 9- Do thông tin đ°ợc tổ chức á mßi phòng ban mßi khác, cũng nh° phần mềm công cụ để triển khai mßi n¢i cũng rÁt khác nhau nên sự phối hợp tổ chức và khai thác
á các phòng ban là khó khăn Thông tin á phòng ban này không sā dụng đ°ợc cho phòng ban khác, tại đ¢n vị con với đ¢n vị cÁp trên Cùng mát thông tin đ°ợc nh¿p vào máy tại nhiều n¢i khác nhau gây ra lãng phí công sức nh¿p tin và không gian l°u tră trên các v¿t mang tin Sự trùng lÁp thông tin có thể dẫn đÁn tình trạng không nhÁt quán
dă liáu Chẳng hạn, nhân viên Nguyßn Văn Quang đ°ợc ghi đầy đủ á phòng Tổ chức, nh°ng tại phòng KÁ toán chỉ ghi tÁt là Nguyßn V Quang
- Thông tin đ°ợc tổ chức á nhiều n¢i nên viác c¿p nh¿t cũng dß làm mÁt tính nhÁt quán dă liáu Mát cán bá chủ chốt của công ty có thay đổi về hoàn c¿nh gia đình (mới c°ới vợ / lÁy chồng, sinh thêm con&) có thể đ°ợc c¿p nh¿t ngay tại đ¢n vị nh°ng sau mát thßi gian mới đ°ợc c¿p nh¿t tại Tổng công ty
- Do há thống đ°ợc tổ chức thành các há thống t¿p tin riêng lẻ nên thiÁu sự chia
sẻ thông tin giăa các n¢i Viác kÁt nối các há thống này hay viác nâng cÁp ứng dụng s¿
là rÁt khó khăn
Qua phân tích trên chúng ta nh¿n thÁy viác tổ chức dă liáu theo há thống các t¿p tin có nhiều nh°ợc điểm Viác xây dựng mát há thống tin đ¿m b¿o đ°ợc tính chÁt nhÁt quán dă liáu, không trùng lặp thông tin mà vẫn đáp ứng đ°ợc nhu cầu khai thác đồng thßi của tÁt c¿ các phòng ban á công ty và tổng công ty là thực sự cần thiÁt
3 Mô hình ki ¿n trúc tãng quát 3 mąc há c¢ så dă liáu
Mô hình kiÁn trúc 3 mức của há CSDL gồm: Mức trong, mức mô hình dă liáu (Mức quan niám) và mức ngoài Giăa các mức tồn tại các ánh xạ quan niám trong và ánh xạ quan niám ngoài Trung tâm của há thống là mức quan niám, tức là mức mô hình dă liáu Ngoài ra còn có khái niám ng°ßi sā dụng, há qu¿n trị CSDL và ng°ßi qu¿n trị CSDL
3.1 Mąc trong
Mô hình trong: Mô hình trong là mô hình l°u tră v¿t lý dă liáu Chỉ có duy nhÁt mát và chỉ mát cách biểu dißn CSDL d°ới dạng l°u tră v¿t lý Mô hình trong là cách
biểu dißn c¢ sá dă liáu trìu t°ợng á mức thÁp nhÁt
Mô hình trong gồm nhiều xuÁt hián của nhiều kiểu b¿n ghi l°u tră đ°ợc xác định bái mát s¢ đồ trong Thông tin biểu dißn trong mô hình trong là duy nhÁt
S¢ đồ trong bao gồm các định nghĩa mô hình trong Không chỉ xác định các kiểu khác nhau của b¿n ghi l°u tră mà còn xác định rõ sự tồn tại của các chỉ dẫn, cách
sÁp xÁp các.b¿n ghi theo thứ tự nào Nó xác định dă liáu l°u tră và truy nh¿p nh° thÁ nào thông qua các đ°ßng dẫn truy nh¿p tới dă liêụ
Ánh xạ quan niám trong đ°ợc xác định giăa mô hình trong và mô hình dă liáu nhằm b¿o đ¿m tính đác l¿p của dă liáu NÁu cÁu trúc l°u tră của CSDL thay đổi, nghĩa
là thay đổi định nghĩa về cÁu trúc l°u tră dă liáu thì ánh xạ này ph¿i cũng ph¿i thay đổi t°¢ng ứng sao cho s¢ đồ quan niám (mô hình dă liáu) không thay đổi
Ánh xạ quan niám-ngoài: Là ánh xạ đ°ợc xác định t°¢ng ứng môt-mát giăa mô hình ngoài của ng°ßi sā dụng với mô hình dă liáu
3.2 Mô hknh dă liáu
Mô hình quan niám là cách nhìn dă liáu mát cách tổng quát của ng°ßi sā dụng Nghĩa là có rÁt nhiều cách nhìn dă liáu á mô hình ngoài, nh°ng chỉ có duy nhÁt mát
Trang 10cách nhìn dă liáu á mức quan niám Biểu dißn toàn bá thông tin trong CSDL là duy nhÁt
Mô hình dă liáu gồm nhiều xuÁt hián của nhiều kiểu b¿n ghi dă liáu Ví dụ kiểu xuÁt hián b¿n ghi về nhân sự, kiểu xuÁt hián b¿n ghi về doanh thu, s¿n l°ợng, kiểu xuÁt hián b¿n ghi về c°ớc đàm thoại
Mô hình dă liáu đ°ợc xác định bái mát s¢ đồ dă liáu mô t¿ của nhiều kiểu thực thể, chẳng hạn nh° mô t¿ thực thể tuyÁn cáp, các loại cáp, thầy giáo, học sinh S¢ đồ
dă liáu bao gồm các định nghĩa về các kiểu b¿n ghi, đó là các ràng buác cho quyền và tính toàn vẹn thích hợp Nhăng ràng buác này chính là các tính chÁt của dă liáu, tính liên kÁt các thuác tính cùng mát kiểu dă liáu Các định nghĩa này không bao hàm về cÁu trúc l°u tră, cũng nh° về chiÁn l°ợc truy nh¿p, chúng chỉ là các định nghĩa về nái dung thông tin, về tính đác l¿p của dă liáu trong mô hình quan niám
S¢ đồ quan niám luôn luôn ổn định, nghĩa là nÁu mô t¿ thêm mát kiểu thực thể đặc biát sát nh¿p vào s¢ đồ dă liáu, không đ°ợc làm thay đổi s¢ đồ dă liáu cũ NÁu s¢
đồ dă liáu không ổn định thì các ứng dụng và mô hình ngoài cũng không ổn định S¢
đồ dă liáu chỉ đ°ợc thay đổi khi có sự điều chỉnh trong thÁ giới thực, đòi hỏi điều chỉnh lại định nghĩa sao cho nó ph¿n ¿nh thÁ giới hián thực khách quan h¢n, chân l{ h¢n
- ThiÁt kÁ mô hình dă liáu là giai đoạn quan trọng và quyÁt định trong viác thiÁt
kÁ và cài đặt các há c¢ sá dă liáu Quá trình thiÁt kÁ không phụ thuác quá nhiều vào cÁu trúc l°u tră v¿t lý và chiÁn l°ợc truy nh¿p của dă liáu Nh° v¿y viác thiÁt kÁ s¢ đồ
dă liáu ph¿i đ°ợc tiÁn hành đác l¿p với viác thiÁt kÁ s¢ đồ trong và các s¢ đồ ngoài liên kÁt, vì nÁu không viác thiÁt kÁ s¿ không ổn định và th°ßng xuyên ph¿i xem xét lại tác đáng th°ßng xuyên đÁn nhiều thành phần khác của há thống
Trang 113.3 Mąc ngoài
Mô hình ngoài là nái dung thông tin của CSDL d°ới cách nhìn của ng°ßi sā dụng Là nái dung thông tin của mát phần dă liáu tác nghiáp đự¢c mát ng°ßi hoặc mát nhóm ng°ßi sā dụng quan tâm Nói cách khác, mô hình ngoài mô t¿ cách nhìn dă liáu của ng°ßi sā dụng và mßi ng°ßi sā dụng có cách nhìn dă liáu khác nhau Nhiều mô hình ngoài khác nhau có thể cùng tồn tại trong mát há CSDL, nghĩa là có nhiều ng°ßi
sā dụng chia sẻ chung cùng mát c¢ sá dă liáu H¢n năa, có thể mô hình ngoài quan há,
mô hình ngoài phân cÁp hay mô hình ngoài kiểu mạng cũng có thể tồn tại trong mát c¢
sá dă liáu S¢ đồ ngoài không làm <hián= mà đ°ợc nhúng vào trong logic mát đ¢n tác
có liên quan
Mô hình ngoài gồm nhiều xuÁt hián kiểu b¿n ghi ngoài, nghĩa là mßi mát ng°ßi
sā dụng có mát s¢ đồ dă liáu riêng, mát khung nhìn dă liáu riêng B¿n ghi ngoài của ng°ßi sā dụng có thể khác với b¿n ghi l°u tră và b¿n ghi quan niám
Mô hình ngoài đ°ợc xác định bái mát s¢ đồ ngoài bao gồm các mô t¿ về kiểu
b¿n ghi ngoài nh° tên các tr°ßng, kiểu dă liáu các tr°ßng, đá ráng của tr°ßng
Ngôn ngă con dă liáu của ng°ßi sā dụng thao tác trên các b¿n ghi ngoài
Ng°ßi sā dụng khác nhau có khung nhìn dă liáu khác nhau
Ng°ßi sā dụng đầu cuối có thể là các ứng dụng hay thao tác trực tiÁp bằng ngôn ngă thao tác, truy vÁn dă liáu
4 Ngôn ngă con dă liáu và há quÁn trß c¢ så dă liáu
4.1 Ngôn ngă con dă liáu:
Ngôn ngă con dă liáu của ng°ßi sā dụng thao tác trên các b¿n ghi ngoài
4.2 Há quÁn trß c¢ så dă liáu:
Mát há qu¿n trị CSDL (HQTCSDL) là:
- Mát t¿p các phần mềm qu¿n lý CSDL và cung cÁp các dịch vụ xā lý CSDL cho nhăng ng°ßi phát triển ứng dụng và ng°ßi dùng cuối
- HQTCSDL cung cÁp mát giao dián giăa ng°ßi sā dụng và dă liáu
- HQTCSDL biÁn đổi CSDL v¿t lý thành CSDL logic
5 Tã chąc l°u tră dă liáu
6 Các mô hknh xā lý dă liáu
6.1 Mô hình c¢ sá dă liáu Client Server 2 lớp
6.2 Mô hình Client/Server nhiều lớp
6.3 Kỹ thu¿t l¿p trình c¢ sá dă liáu - Web đáng
6.4 KiÁn trúc há thống Server
6.5 Các mô hình kiÁn trúc ứng dụng
Trang 12CH¯¡NG II: MÔ HÌNH QUAN Hà
Gi ái thiáu:
M āc tiêu:
- Trình bày các khái niám, nguyên nhân ra đßi của mô hình quan há;
- Trình bày đ°ợc các phép toán quan há và phép toán t¿p hợp trên mô hình quan
há
- Chuyển đổi tÿ l°ợc đồ c¢ sá dă liáu sang mô hình quan há dă liáu;
- ThiÁt kÁ đ°ợc mô hình quan há
- Áp dụng các phép toán đại số quan há để biểu dißn trên l°ợc đồ quan há;
- Nghiêm túc, tỉ mỉ trong viác học và làm bài t¿p
- Rèn luyán tính cẩn th¿n, tỉ mỉ, chính xác, sáng tạo, linh hoạt trong công viác
- Rèn luyán tính cẩn th¿n, tỉ mỉ, chính xác, sáng tạo, linh hoạt trong công viác
Viác xây dựng mô hình nhằm thành l¿p mát biểu đồ cÁu trúc dă liáu bao gồm
dă liáu cần xā lý và cÁu trúc nái tại của nó
Ví dụ: Mát mô hình thực thể liên kÁt Mô hình thực thể kÁt hợp (Mô hình ER)
Chuy Ãn tÿ mô hình thąc thà k¿t hÿp sang l°ÿc đá c¢ så dă liáu
Mô hình thực thể liên kÁt còn gọi là mô hình dă liáu logic hoặc s¢ đồ tiêu chuẩn Nó đ°ợc xây dựng dùng bốn kiểu khối xây dựng: thực thể, kiểu thực thể, thuác tính, liên kÁt
a Th ực thể
Trang 13Mát thực thể là khái niám để chỉ mát đối t°ợng, mát nhiám vụ, mát sự kián trong thÁ giới thực hay t° duy đ°ợc quan tâm trong qu¿n lý Mát thực thể t°¢ng đ°¢ng với mát dòng trong b¿ng nào đó
Ví d ụ: Sinh viên Lê An, Đ¢n hàng số 123,
b Kiểu thực thể
Kiểu thực thể là viác nhóm tự nhiên mát số thực thể lại, mô t¿ cho mát loại thông tin chứ không ph¿i là b¿n thân thông tin Kiểu thực thể th°ßng là t¿p hợp các thực thể có cùng b¿n chÁt Tên kiểu thực thể: Là mát danh tÿ
Ví dụ: Lê An là mát thực thể, đ°ợc quan tâm tới vì anh ta đang học tại mát
tr°ßng đại học A, tức anh ta là mát sinh viên SINH VIÊN là mát kiểu thực thể vì nó
mô t¿ cho mát số thực thể và dựa trên đó thông tin đ°ợc l°u giă
Kiểu thực thể đ°ợc biểu dißn dạng hình chă nh¿t
Chú ý: Mát cách gọi khác của Kiểu thực thể - Thực thể đó là Thực thể - Thể
hi ện
của thực thể
Ví dụ: Có thể nói kiểu thực thể SINH VIÊN có các thực thể Lê An, Hoàng Thị
Hà hay th ực thể SINH VIÊN có các thể hiện Lê An, Hoàng Thị Hà,&
c Liên k ết và kiểu liên kết
Liên kÁt (còn gọi là quan há) là sự kÁt hợp giăa hai hay nhiều thực thể ph¿n ánh
sự ràng buác trong qu¿n lý
Đặc biát: Mát thực thể có thể liên kÁt với chính nó ta th°ßng gọi là tự liên kÁt Giăa hai thực thể có thể có nhiều h¢n mát liên kÁt
Kiểu liên kÁt là t¿p hợp các liên kÁt có cùng b¿n chÁt Các kiểu liên kÁt cho biÁt
số thể hián lớn nhÁt của mßi thực thể tham gia vào liên kÁt với mát thể hián của mát thực thể khác Có ba kiểu liên kÁt: mát - mát, mát - nhiều, nhiều – nhiều
Liên k ¿t mßt – mßt (1-1):
Mßi thể hián của thực thể A quan há với mát thể hián của thực thể B và ng°ợc lại
Ký hiáu:
Ví d ụ: Mát sinh viên có mát lu¿n văn Mát lu¿n văn thuác về mát sinh viên
Tên kiểu thực thể SINHVIEN
Luận
Có
Không
Trang 14Mßi thể hián của thực thể A quan há với nhiều thể hián của thực thể B Ng°ợc lại mßi thể hián của thực thể B quan há với chỉ mát thể hián của thực thể A
Ký hiáu:
Ví d ụ: Mát khoa có nhiều sinh viên Mát sinh viên thuác về mát khoa
Liên k ¿t nhiÁu – nhiÁu (N-N)
Mßi thể hián của thực thể A quan há với nhiều thể hián của thực thể B Ng°ợc
lại mßi thể hián của thực thể B quan há với nhiều thể hián của thực thể A
Trang 15NÁu hai thực thể có quan há mát - mát th°ßng có ít l{ do để coi chúng nh° hai b¿ng tách biát => ng°ßi ta th°ßng gáp hai thực thể làm mát b¿ng với mßi dòng dài h¢n
NÁu hai thực thể có quan há nhiều - nhiều thì không có sự khác biát về b¿n chÁt giăa các chiều (không nói lên đ°ợc kẻ thống trị) => ít khi đ°ợc sā dụng
Tóm lại trong ba kiểu liên kÁt trên, liên kÁt mát nhiều là quan trọng h¢n c¿ và hầu nh° các mối quan há trong mô hình thực thể liên kÁt đều là mát nhiều
d Thu ộc tính:
Thuác tính là giá trị thể hián mát đặc điểm nào đó của mát thực thể hay mát liên kÁt Mßi thuác tính có mát t¿p giá trị gọi là miền giá trị của thuác tính đó K{ hiáu
miền giá trị của thuác tính A là D(A)
Ví dụ: Thực thể SINH VIÊN có các thuác tính nh°: M SV, tên SV, ngày sinh, giới tính, địa chỉ,&
Các ki Ãu thußc tính:
Thuộc tính định danh (c.n gọi là định danh thực thể, đôi khi c.n gọi là thuác tính khoá):
Là mát hoặc mát số thuác tính mà giá trị của nó cho phép phân biát các thực thể khác nhau Mát thực thể bao giß cũng đ°ợc xác định mát thuác tính định danh làm c¢
sá để phân biát các thể hián cụ thể của nó Ví dụ : Số hiáu khách hàng, Mã mặt hàng,
Mã sinh viên,
Thu ộc tính mô tả: Là các thuác tính mà giá trị của chúng chỉ có tính mô t¿ cho
thực thể hay liên kÁt mà thôi Hầu hÁt các thuác tính trong mát kiểu thực thể đều là mô t¿
M ßt sß thußc tính mô tÁ đ¿c biát:
Thu ộc tính tên gọi : Là thuác tính mô t¿ để chỉ tên các đối t°ợng thuác thực
thể Thuác tính tên gọi để phân biát các thực thể (tách các thực thể)
Thu ộc tính kết nối (thuộc tính khoá ngoài): Là thuác tính chỉ ra mối quan há giăa mát
thực thể đ có và mát thực thể trong b¿ng khác Thuác tính kÁt nối giống thuác tính mô t¿ thông th°ßng trong thực thể chứa nó nh°ng nó lại là thuác tính khoá của mát thực thể trong b¿ng khác
Ví d ụ:
Đ°ợc Dạy bái
Dạy
Trang 16HoTen Thu ßc tính tên gái TenMH
GioiTinh
e Ví dụ :
Mát công ty th°¢ng mại Y chuyên kinh doanh các mặt hàng đián tā Công ty
nh¿p các mặt hàng tÿ các nhà cung cÁp khác nhau Chi tiÁt về các mặt hàng gồm có:
mã hàng (duy nhÁt), tên hàng và các mô t¿ mặt hàng
Công ty cũng cần l°u giă thông tin về các nhà cung cÁp nh° trên, địa chỉ, đián thoại, fax Mßi nhà cung cÁp có mát mã duy nhÁt Mßi nhà cung cÁp có thể cung cÁp nhiều mặt hàng nh°ng mßi mặt hàng chỉ đ°ợc cung cÁp tÿ mát nhà cung cÁp
Các mặt hàng đ°ợc l°u giă trong các kho Mßi kho hàng có mát dián tích khác nhau và chỉ chứa mát loại mặt hàng
Công ty có nhiều cāa hàng đại l{ để bán các mặt hàng Hàng đ°ợc cung cÁp cho các cāa hàng thông qua các phiÁu xuÁt Thông tin trên mßi phiÁu xuÁt cần có: Mã số cāa hàng nh¿n hàng, ngày xuÁt, thông tin về các mặt hàng đ°ợc xuÁt nh° tên hàng, số l°ợng, đ¢n giá, thành tiền
Yêu cầu: V¿ mô hình thực thể liên kÁt của há thống
Xác định các thực thể, định danh thực thể và các thuộc tính mô tả:
HÀNG - mã hàng, tên hàng, đ¢n giá, số l°ợng, mô t¿
NHÀ CUNG CÀP – mã NCC, tên NCC, địa chỉ, đián thoại, fax
KHO – số kho, dián tích, mô t¿
PHIÀU XUÀT – số phiÁu, ngày xuÁt, số cāa hàng
CĀA HÀNG - số cāa hàng, địa điểm, mô t¿
Trang 17Vẽ mô hình thực thể liên kết
Quan há N-N giăa HÀNG và PHIÀU XUÀT có thể đ°ợc tách thành 2 quan há 1-N với thực thể kÁt hợp DÒNG PHIÀU XUÀT nh° sau:
Đ°ợc cung cÁp bái
Cung
Được chứa trong
XuÁt
Đ°ợc xuÁt trong
Nh ận được
Xu ất cho
Trang 18CH¯¡NG III: RÀNG BUÞC TOÀN VÀN QUAN Hà
Gi ái thiáu:
M āc tiêu:
- Trình bày đ°ợc khái niám, cách phân loại, các yÁu tố ràng buác toàn vẹn;
- Xây dựng đ°ợc các ràng buác dă liáu trong mát số bài toán cụ thể;
- Nghiêm túc, tỉ mỉ trong viác học và làm bài t¿p;
- Rèn luyán tính cẩn th¿n, tỉ mỉ, chính xác, sáng tạo, linh hoạt trong công viác
N ßi dung chính:
1 1 Ràng bußc toàn vÁn - Các y¿u tß căa ràng bußc toàn vÁn:
1.1 Ràng bußc toàn vÁn
Trong mßi CSDL luôn tồn tại nhiều mối liên há giăa các thuác tính, giăa các
bá Sự liên há này có thể x¿y ra trong mát l°ợc đồ quan há hoặc trong các l°ợc đồ quan há của mát c¢ sá dă liáu Các mối liên há này là nhăng điều kián bÁt biÁn mà tÁt
c¿ các bá của nhăng quan há có liên quan trong CSDL đều ph¿i thỏa mãn á mọi thßi điểm Nhăng điều kián bÁt biÁn đó đ°ợc gọi là ràng buác toàn vẹn (RBTV) Trong thực tÁ ràng buác toàn vẹn là các quy tÁc qu¿n l{ đ°ợc áp đặt trên các đối t°ợng của thÁ giới thực
Nhiám vụ của ng°ßi phân tích thiÁt kÁ là ph¿i phát hián càng đầy đủ và chính xác các ràng buác toàn vẹn càng tốt và mô t¿ chúng mát cách chính xác trong hồ s¢ phân tích thiÁt kÁ - đó là mát viác làm rÁt quan trọng và rÁt cần thiÁt
Trong mát c¢ sá dă liáu, ràng buác toàn vẹn đ°ợc xem nh° là mát công cụ để dißn đạt ngă nghĩa của CSDL Mát CSDL đ°ợc thiÁt kÁ cồng kềnh nh°ng nó thể hián đ°ợc đầy đủ ngă nghĩa của thực tÁ vẫn có giá trị cao h¢n rÁt nhiều so với mát cách thiÁt kÁ gọn nhẹ nh°ng nghèo nàn về ngă nghĩa vì thiÁu các ràng buác toàn vẹn của c¢
sá dă liáu
Công viác kiểm tra ràng buác toàn vẹn th°ßng đ°ợc tiÁn hành vào thßi điểm c¿p nh¿t dă liáu (thêm, sāa, xóa) Nhăng ràng buác toàn vẹn phát sinh cần ph¿i đ°ợc ghi nh¿n và xā lý mát cách t°ßng minh (th°ßng là bái mát hàm chuẩn hoặc mát đoạn ch°¢ng trình)
1.2 Các y¿u tß căa ràng bußc toàn vÁn:
Mßi ràng buác toàn vẹn có 3 yÁu tố: điều kián, bối c¿nh và tầm ¿nh h°áng
- Điều ki⌀n
Điều kián của mát ràng buác toàn vẹn R có thể đ°ợc biểu dißn bằng ngôn ngă
tự nhiên, thu¿t gi¿i, ngôn ngă đại số t¿p hợp, đại số quan há,& ngoài ra điều kián của ràng buác toàn vẹn cũng có thể đ°ợc biểu dißn bằng phụ thuác hàm Chẳng hạn, với l°ợc đồ quan há SV thì có mát ràng buác toàn vẹn nh° sau:
Với r là mát quan há của Sv ta có ràng buác toàn vẹn sau
t1, t2 þ r
t1.MASV ≠ t2.MASV cuối
Trang 19- Bối cảnh
Bối c¿nh của mát ràng buác toàn vẹn là nhăng quan há mà ràng buác đó có hiáu lực hay nói mát cách khác, đó là nhăng quan há cần ph¿i đ°ợc kiểm tra ràng buác toàn vẹn Bối c¿nh của mát ràng buác toàn vẹn có thể là mát hoặc nhiều quan há Chẳng hạn với ràng buác toàn vẹn trên thì bối c¿nh là mát quan há SV
- Tầm ảnh hưởng
Trong quá trình phân tích thiÁt kÁ mát CSDL, ng°ßi phân tích cần l¿p b¿ng tầm
¿nh h°áng cho mát ràng buác toàn vẹn nhằm xác định thßi điểm cần ph¿i tiÁn hành kiểm tra các ràng buác toàn vẹn đó Các thßi điểm cần ph¿i kiểm tra RBTV chính là nhăng thßi điểm c¿p nh¿t dă liáu (thêm/ sāa/ xóa) Mát b¿ng tầm ¿nh h°áng của mát RBTV có dạng sau:
2 2 Phân lo¿i ràng bußc toàn vÁn:
Trong quá trình phân tích thiÁt kÁ c¢ sá dă liáu, ng°ßi phân tích ph¿i phát hián tÁt c¿ các ràng buác toàn vẹn tiềm ẩn trong CSDL đó Viác phân loại các ràng buác toàn vẹn là rÁt có ích, nó nhằm gíúp cho ng°ßi phân tích có đ°ợc mát định h°ớng, tránh bỏ sót nhăng ràng buác toàn vẹn Các ràng buác toàn vẹn có thể đ°ợc chia làm hai loại chính nh° sau:
Ràng buác toàn vẹn trên phạm vi là mát quan há bao gồm: Ràng buác toàn vẹn miền giá trị, ràng buác toàn vẹn liên thuác tính, ràng buác toàn vẹn liên bá
Ràng buác toàn vẹn trên phạm vi nhiều quan há bao gồm: Ràng buác toàn vẹn phụ thuác tồn tại, ràng buác toàn vẹn liên bá - liên quan há, ràng buác toàn vẹn liên thuác tính – liên quan há
Để minh họa cho phần lý thuyÁt của ch°¢ng này, ta nêu ví dụ sau đây
Ví dụ : Cho mát CSDL C dùng để qu¿n lý viác đặt hàng và giao hàng của mát công ty L°ợc đồ CSDL C gồm các l°ợc đồ quan há nh° sau:
Q1: Khach (MaKhach, TenKH, DiaChi, DTho ¿i)
Tân t ừ: Mßi khách hàng có mát mã khách hàng (MaKhach) duy nhÁt, mßi
MaKhach xác định mát tên khách hàng (TenKH), mát địa chỉ (MaKhach), mát số đián thoại (DThoai)
Q2: Hang(MAHANG, TENHANG, QUYCACH, DVTINH)
Trang 20Tân t ừ: Mßi mặt hàng có mát mã hàng (MAHANG) duy nhÁt, mßi MAHANG
xác định mát tên hàng (TENHANG), quy cách hàng (QUYCACH), đ¢n vị tính (DVTINH)
Q3: Dathang(SODH, MAHANG, SLDAT, NGAYDH, MaKhach)
Tân từ: Mßi lần đặt hàng có số đặt hàng (SODH) xác định mát ngày đặt hàng
(NGAYDH) và mã khách hàng t°¢ng ứng (Makhach) BiÁt mã số đặt hàng và mã mặt hàng thì biÁt đ°ợc số l°ợng đặt hàng(SLDAT) Mõi khách hàng trong mát ngày có thể
có nhiều lần đặt hàng
Q4: Hoadon(SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT)
Tân t ừ: Mßi hóa đ¢n có mát mã số duy nhÁt là SOHD, mßi hóa đ¢n bán hàng
có thể gồm nhiều mặt hàng Mßi hóa đ¢n xác định ngày l¿p hóa đ¢n (NGAYLAP), ứng với số đặt hàng nào (SODH) Gi¿ sā rằng hóa đ¢n bán hàng theo yêu cầu của chỉ
mát đ¢n đặt hàng có mã số là SODH và ng°ợc lại, mßi đ¢n đặt hàng chỉ đ°ợc gi¿i quyÁt chỉ trong mát hóa đ¢n Do điều kián khách quan có thể công ty không giao đầy
đủ các mặt hàng cũng nh° số l°ợng tÿng mặt hàng nh° yêu cầu trong đ¢n đặt hàng nh°ng không bao giß giao v°ợt ngoài yêu cầu Mßi hóa đ¢n xác định mát trị giá của các mặt hàng trong hóa đ¢n (TRIGIAHD) và mát ngày xuÁt kho giao hàng cho khách (NGAYXUAT)
Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN)
Tân t ừ: Mßi SOHD, MAHANG xác định giá bán (GIABAN) và số l°ợng bán
(SLBAN) của mát mặt hàng trong mát hóa đ¢n
Q6: Phieuthu(SOPT, NGAYTHU, MAKH, SOTIEN)
Tân t ừ: Mßi phiÁu thu có mát số phiÁu thu (SOPT) duy nhÁt, mßi SOPT xác
định mát ngày thu (NGAYTHU) của mát khách hàng có mã khách hàng là MAKH và
số tiền thu là SOTIEN Mßi khách hàng trong mát ngày có thể có nhiều số phiÁu thu
2.1 Ràng buác toàn vẹn liên bá
2.2 Ràng buác toàn vẹn về phụ thuác tồn tại
2.3 Ràng buác toàn vẹn về miền giá trị
Ràng buác toàn vẹn có liên quan đÁn miền giá trị của các thuác tính trong mát quan há Ràng buác này th°ßng gặp Mát số há qu¿n trị CSDL đã tự đáng kiểm tra mát số ràng buác loại này
Ví d ụ: Với r là mát quan há của Hoadon ta có ràng buác toàn vẹn sau
2.4 Ràng bußc toàn vÁn liên thußc tính
Ràng buác toàn vẹn liên thuác tính là mối liên há giăa các thuác tính trong mát l°ợc đồ quan há
Ví dụ: Với r là mát quan há của Hoadon ta có ràng buác toàn vẹn sau
R4: ∀ t * r
Trang 21t.NGAYLAP <= t.NGAYXUAT
Cuối ∀
2.5 Ràng bußc toàn vÁn liên thußc tính liên quan há
Ràng buác loại này là mối liên há giăa các thuác tính trong nhiều l°ợc đồ quan
2.6 Ràng bußc toàn vÁn vÁ thußc tính tãng hÿp
Ràng buác toàn vẹn về thuác tính tổng hợp đ°ợc xác định trong tr°ßng hợp mßi thuác tính A của mát l°ợc đồ quan há Q đ°ợc tính toán giá trị tÿ các thuác tính của các l°ợc đồ quan há khác
Trang 22CH¯¡NG IV: PHĀ THUÞC HÀM
Gi ái thiáu:
M āc tiêu:
- Trình bày đ°ợc các khái niám phụ thuác hàm;
- Trình bày đ°ợc thu¿t toán Satifies, há lu¿t dẫn Armstrong;
- Trình bày đ°ợc cách mô t¿ các phụ thuác hàm để ứng dụng vào các bài toán tìm khóa, tìm phủ tối trình bày và chuẩn hóa c¢ s¢ dă liáu;
- Nghiêm túc, tỉ mỉ trong viác học và làm bài t¿p
- Rèn luyán tính cẩn th¿n, tỉ mỉ, chính xác, sáng tạo, linh hoạt trong công viác
60
45
60
Để thể hián ràng buác <Mßi giáo viên chỉ dạy mát môn= ta viÁt:
tính Môn dạy Hay thuác tính Môn dạy phụ thuác hàm vào thuác tính Giáo viên Với ràng buác này há c¢ sá dă liáu s¿ chỉ rõ tÿng Giáo viên dạy môn nào và không bị trùng l¿p (mát Giáo viên dạy hai môn)
Định nghĩa
Cho quan há r(R) với R = {A1, A2, &, An} và các t¿p thuác tính X, Y ý R Phụ thuác hàm là mát phát biểu dạng X Y (đọc là X xác định Y hay Y phụ thuác hàm vào X), nÁu với mọi t1, t2 þ r mà t1[X] = t2[X] thì t1[Y] = t2[Y] Khi đó ta nói quan há r thỏa phụ thuác hàm XY
NÁu r thỏa X Y với mọi r là thể hián của l°ợc đồ quan há R(A1,
&,An), thì ta nói l°ợc đồ quan há R(A1, &,An) thỏa phụ thuác hàm X Y
Trang 231.2 Phā thußc hàm hiÃn nhiên
1.3 ThuËt toán Satifies
A2) Tính tăng tr°áng: NÁu XY và ZýU thì XZYZ
A3) Tính bÁc cầu: NÁu XY và YZ thì XZ
Tính xác đáng và đầy đủ của h⌀ tiên đề Armstrong
Để chứng minh há tiên đề Armstrong là xác đáng và đầy đủ tr°ớc hÁt ta cần chứng minh hai tính chÁt sau:
Tính ch Ãt 1: Cho X, Y, Z, WýU Chúng ta có các lu¿t sau:
- Lu¿t hợp: NÁu XY, XZ thì XYZ
- Lu¿t tựa bÁc cầu: NÁu XY, YWZ thì XWZ
- Lu¿t tách: NÁu XY, ZýY thì XZ
Ch ứng minh
- Chứng minh lu¿t hợp:
Tÿ XY ta dùng lu¿t tăng tr°áng, thêm X vào 2 vÁ ta có XXXY t°¢ng đ°¢ng với phụ thuác hàm XXY (1)
Tÿ XZ ta dùng lu¿t tăng tr°áng thêm Y có XYYZ (2)
Tÿ (1) và (2) ta dùng lu¿t bÁc cầu s¿ có: XYZ
- Chứng minh lu¿t tựa bÁc cầu:
Tÿ XY, dùng lu¿t tăng tr°áng thêm W vào 2 vÁ ta có XWYW (3)
Mặt khác, theo gi¿ thiÁt chúng ta có YWZ (4)
Tÿ (3) và (4) ta dùng lu¿t bÁc cầu s¿ có: XWZ
- Chứng minh lu¿t tách:
Vì ZýY nên YZ theo lu¿t ph¿n xạ (5)
theo gi¿ thiÁt có XY (6)
Tÿ (5) và (6) ta dùng lu¿t bÁc cầu s¿ có: XZ
Tính ch Ãt 2: XY đ°ợc suy dißn tÿ há tiên đề Armstrong khi và chỉ khi Yý
X+
Trang 24Chứng minh:
Tiên đề phản xạ: Rõ ràng tiên đề này là xác đáng vì không thể có hai bá bằng
nhau trên X mà lại không bằng nhau trên t¿p con của nó
Tiên đề tăng trưởng: Gi¿ sā quan há r tho¿ mãn X Y, và tồn tại hai bá t,
u rþ saocho t[XZ] = u[XZ] mà t[YZ] u[YZ]
Vì t[Z] = u[Z] nên để có t[YZ] u[YZ] thì t[Y] u[Y] (1)
Mà ta có t[XZ] = u[XZ] nên t[X] = u[X] (2)
Tÿ (1) và (2) ta có t[X] = u[X] và t[Y] u[Y] điều này là trái với gi¿ thiÁt quan
há r tho¿ mãn XY V¿y t[YZ] = u[YZ] hay XZYZ là đúng trên quan há r
- Tiên đề bÁc cầu: Cho XY và YZ đúng trên quan há r
Gi¿ sā tồn tại hai bá t, uþr sao cho t[X] = u[X] và t[Z] u[Z] (3)
Tÿ XY và t[X] = u[X] nên t[Y] = u[Y] (4)
Tÿ (3) và (4) ta có t[Y] = u[Y] và t[Z] u[Z] điều này trái với gi¿ thiÁt Y Z
Do v¿y t[Z] = u[Z] Suy ra X Z là đúng trên quan há r
V¿y tính xác đáng của há tiên đề Armstrong đã đ°ợc chứng minh, bây giß ta
ch ứng minh tính đầy đủ của há tiên đề Armstrong tức là XY không đúng trên quan
há r thì XY cũng không thể suy dißn logic tÿ F
Gọi F là t¿p các phụ thuác hàm trên t¿p thuác tính U Gi¿ sā XY là không thể suy dißn đ°ợc tÿ há tiên đề Armstrong Xét quan há r gồm hai bá đ°ợc cho trong b¿ng d°ới đây:
Mát quan há r chỉ ra F không suy dißn logic ra XY
11 1 11 1
11 1 00 0
Các thuác tính thuác X+ Các thuác tính còn lại
Tr°ớc hÁt cần chỉ ra rằng tÁt c¿ các phụ thuác hàm thuác F đều đúng trên quan
há r Th¿t v¿y, gi¿ sā VWþF nh°ng không đúng trên r Do đó, ta có Vý X+ vì nÁu không hai bá của r s¿ không bằng nhau ít nhÁt trên mát thuác tính của V Nh° v¿y W
Trang 25không thể là t¿p con của X+
Gọi AþW nh°ng A không thuác X+ Vì XVý X+ do Vý X+ nên XV, suy
ra tÿ Tính chÁt 2
Áp dụng lu¿t bÁc cầu với XV và VWþF suy ra XA Nh°ng do A không thuác X+ nh° gi¿ thiÁt, do v¿y là mâu thuẫn Tÿ đó đi đÁn kÁt lu¿t rằng mßi VWþF đều đúng trên r
Bây giß cần chứng minh XY không đúng trên r Gi¿ sā răng XY đúng trên r Nh° trên có XýX+ và suy ra YýX+, nÁu không hai bá thuác r là bằng nhau trên X nh°ng không bằng nhau trên Y Theo Tính chÁt 2 thì XY có thể suy ra đ°ợc tÿ há tiên đề Armstrong, điều đó là hoàn toàn mâu thuẫn với gi¿ thiÁt rằng XY là không thể suy dißn đ°ợc tÿ há tiên đề Armstrong Do v¿y XY không thể đúng trên r ĐÁn đây có thể kÁt lu¿n: NÁu XY không suy dißn đ°ợc tÿ há tiên đề Armstrong thì XY không thể suy dißn logic đ°ợc tÿ F V¿y há tiên đề trên là đầy đủ
Trang 26CH¯¡NG V: PHĂ CĂA TÊP PHĀ THUÞC HÀM
Gi ái thiáu:
M āc tiêu:
- Trình bày đ°ợc các khái niám về phủ tối thiểu, khóa của l°ợc đồ quan há;
- Trình bày đ°ợc cách tìm t¿p phụ thuác hàm tối thiểu;
- Xác định đ°ợc đầy đủ và chính xác các khóa của các l°ợc đồ c¢ sá dă liáu
- Nghiêm túc, tỉ mỉ trong viác học và làm bài t¿p
- Rèn luyán tính cẩn th¿n, tỉ mỉ, chính xác, sáng tạo, linh hoạt trong công viác
N ßi dung chính:
1 Bao đóng và thuËt toán xác đßnh bao đóng các thußc tính
1.1 Định nghĩa:
Q là l°ợc đồ quan há, r là quan há t°¢ng ứng, F là t¿p các phụ thuác hàm trong
Q X,Ai là các t¿p con của Q+ Bao đóng của t¿p thuác tính X đối với F ký hiáu là X+
(hoặc �㕋�㔹+) đ°ợc định nghĩa nh° sau:
X+ = ø Ai với X → Ai là phụ thuác hàm đ°ợc suy dißn tÿ F nhß há tiên đề Armstrong
Trang 271.2 ThuËt toán xác đßnh bao đóng các thußc tính
Tính liên tiÁp t¿p các t¿p thuác tính X0, X1, X2, theo ph°¢ng pháp sau:
B°ớc 1: X0 = X
B°ớc 2: Lần l°ợt xét các phụ thuác hàm của F
NÁu Y→Z có Y ¦ Xi thì Xi+1 = Xi ∪ Z Loại phụ thuác hàm Y → Z khỏi F B°ớc 3: NÁu á b°ớc 2 không tính đ°ợc Xi+1 thì Xi chính là bao đóng của X Ng°ợc lại lặp lại b°ớc 2
Ví dụ 1: Cho l°ợc đồ quan há Q(ABCDEGH) và t¿p phụ thuác hàm F
F = { f1 : B → A
f2 : DA → CE f3 : D → H f4 : GH → C f5 : AC → D}
Tìm bao đóng của các t¿p X = {AC} dựa trên F
f4 không thỏa, f5 không xét vì đã thỏa
L¿p lại b°ớc 2: f2, f3 không xét vì đã thỏa, f1, f4 không thỏa, f5 không xét vì đã thỏa.Trong
b°ớc này X3 không thay đổi => X+=X3={ACDEH} là bao đóng của X
Trang 282 Các lo¿i phā thußc hàm
2.1 Phā thußc hàm có v¿ trái d° thÿa
F là t¿p các phụ thuác hàm trên l°ợc đồ quan há Q, Z là t¿p thuác tính, Z→Y *
F Nói rằng phụ thuác hàm Z → Y có vÁ trái d° thÿa (phụ thuác không đầy đủ) nÁu có
mát A * Z sao cho: F ≡ F - {Z → Y} ∪ {(Z - A) → Y}
Ng°ợc lại Z → Y là phụ thuác hàm có vÁ trái không d° thÿa hay Y phụ thuác hàm đầy đủ vào Z hay phụ thuác hàm đầy đủ
Ví dụ 1: Cho R=<Q, F>, Q (A, B, C) F={AB→C, B→C}
F ≡ F-{AB→C} ∪ {(AB - A)→C}={B→C}
AB → C là phụ thuác hàm không đầy đủ
B → C là phụ thuác hàm đầy đủ
Chú ý: Phụ thuác hàm có vÁ trái chứa mát thuác tính là phụ thuác hàm đầy đủ
Ví dụ 2: Cho t¿p phụ thuác hàm F = {A → BC,B → C,AB → D} thì phụ thuác hàm AB→D có vÁ trái d° thÿa B vì: F ≡ F – {AB → D}∪{A → D}≡ {A → BC,B → C,A → D}
Ta nói F là t¿p phụ thuác hàm có vÁ trái không d° thÿa nÁu F không chứa phụ thuác hàm có vÁ trái d° thÿa
Thu¿t toán loại khỏi F các phụ thuác hàm có vÁ trái d° thÿa
B°ớc 1: Lần l°ợt thực hián b°ớc 2 cho các phụ thuác hàm X→Y của F
B°ớc 2: Với mọi t¿p con th¿t sự X9≠ ∅ của X
NÁu X'→Y * F+ thì thay X→Y trong F bằng X'→Y thực hián lại b°ớc 2
Ví dụ 3: à ví dụ 2 phụ thuác hàm AB→D có A+ = ABCD ⇒ A→D * F+ Trong F ta thay AB→D bằng A→D ⇒ F ≡ {A → BC, B → C, A → D}
2.2 Phā thußc hàm có v¿ phÁi mßt thußc tính
2.4 TËp phā thußc hàm tßi thiÃu
3 ThuËt toán tkm phă tßi thiÃu tßi thiÃu
B°ớc 1: Loại khỏi F các phụ thuác hàm có vÁ trái d° thÿa
B°ớc 2: Tách các phụ thuác hàm có vÁ ph¿i trên mát thuác tính thành các phụ thuác hàm có vÁ ph¿i mát thuác tính
B°ớc 3: Loại khỏi F các phụ thuác hàm d° thÿa
Chú ý: Theo thu¿t toán trên, tÿ mát t¿p phụ thuác hàm F luôn tìm đ°ợc ít nhÁt mát phủ tối thiểu Ftt để F ≡ Ftt và nÁu thứ tự loại các phụ thuác hàm trong t¿p F là khác nhau thì có thể s¿ thu đ°ợc nhăng phủ tối thiểu khác nhau
Ví dụ 6: Cho l°ợc đồ quan há R =<Q, F>, Q(A,B,C,D) và t¿p phụ thuác F nh° sau:
F= {AB → CD, B → C, C → D} Hãy tính phủ tối thiểu của F