Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3)

Kꢀ thuꢁt phꢂn mꢃm  
ꢄng dꢅng  
Chương 3  
Mô hꢀnh dữ liꢁu quan hệ  
(Phꢀn 3)  
9/6/2017  
Mꢅc đích  
Nắm được các vấn đề và khái niệm  
. Các bất thường trong một quan hệ (Anomalies)  
. Phụ thuộc hàm (Functional Dependencies)  
. Khóa  
. Sự tách lược đồ quan hệ (Decomposition)  
2/26  
Các nội dung chính  
1. Giới thiệu về các bất thường trong một quan hệ  
2. Các phụ thuộc hàm  
3. Khái niệm các khóa  
4. Các nguyên nhân gây ra các bất thường  
5. Phép tách lược đồ QH  
3/26  
1. Các bất thường trong quan hệ  
. Hãy quan sát bảng Student  
ID  
Name  
Class Department  
Subject  
Mark  
1
2
3
4
5
6
7
E1-001 Nguyen Van A E1  
E1-001 Nguyen Van A E1  
Electronics Electronic Circuit  
Electronics Digital Technique  
Electronics Digital Technique  
Electronics Electronic Circuit  
Electronics Digital Technique  
8
7
E1-002 Tran Thi B  
E1-002 Tran Thi B  
E2-001 Nguyen Ho C  
IT1-001 Tran Thi B  
IT1-002 Le Van D  
E1  
9
E1  
8
E2  
6
IT1  
IT1  
IT  
IT  
Electronic Circuit  
Digital Technique  
10  
8
4/26  
1. Các bất thường trong quan hệ  
Từ bảng trên có thể nhận thấy một số bất thường:  
. Dư thừa (Redundancy): giá trị của một số thành phꢀn  
trong các bộ bị lặp lại không cꢀn thiết như : Name, Class,  
Department  
. Bất thường khi cập nhật (Update Anomalie): xuất  
hiện khi cập nhật giá trị cho một bộ hiện có, vì thực tế  
thực hiện của thao tác có vẻ phức tạp hơn rất nhiều so với  
logic của thao tác đó.  
. Bất thường khi bổ sung (Insertion Anomalie): xuất  
hiện khi bổ sung thêm một bộ mới.  
. Bất thường khi xóa (Deletion Anomalie): xuất hiện  
khi xóa một bộ hiện có trong quan hệ.  
5/26  
1. Các bất thường trong quan hệ  
Hậu quả của các bất thường trên  
. Sự không nhất quán dữ liệu có nguy cơ rất cao  
. Tốn chỗ lưu trữ do dư thừa  
. Các thao tác cơ bản trên CSDL không hiệu quả  
6/26  
1. Các bất thường trong quan hệ  
. Vậy nguyên nhân của các bất thường này là gì?  
Khái niệm Phụ thuộc hàm có thể giúp chúng ta  
hiểu nguyên nhân, cũng như giúp tìm ra giải pháp  
cho vấn đề trên.  
7/26  
2. Phꢅ thuộc hàm  
. Định nghĩa  
. Ý nghĩa của PTH  
. Hệ tiên đề Amstrong  
. Một số loại PTH đặc biệt  
. Khóa và thuộc tính khóa  
8/26  
2. Phꢅ thuộc hàm  
. Định nghĩa về PTH (Functional Dependency)  
– Cho lược đồ quan hệ R(A1,A2,…An), và A = A1A2…  
An, và 2 tập các thuộc tính X và Y A. Chúng ta nói  
rằng:  
X Y (X xác định hàm Y, hay Y phụ thuộc hàm  
vào X), nếu thể hiện r của R, thì không tồn tại 2  
bộ t1, t2, sao cho t1[X]=t2[X] và t1[Y] t2[Y]  
Nói cách khác: tập các thuộc tính Y phụ thuộc  
hàm vào tập các thuộc tính X khi và chỉ khi ứng  
với mỗi bộ giá trị của X trong R chỉ xác định đúng  
một giá trị của Y tại mọi thời điểm  
– X được gọi là Quyết định (determinant)  
của PTH.  
9/26  
2. Phꢅ thuộc hàm – ví dꢅ  
– Một số PTH từ bảng Student:  
ID Name;  
ID Class;  
Class Department;  
ID,Subject Mark  
10/26  
2. Phꢅ thuộc hàm – Ý nghĩa  
. Ý nghĩa của một PTH X Y trong lược đồ R: thể  
hiện r của R thì:  
– Hoặc không có bất kỳ 2 bộ t1, t2 nào, sao cho t1[X]=t2[X]  
– Hoặc nếu tồn tại 2 bộ t1, t2 mà t1[X]=t2[X], thì t1[Y]=t2[Y]  
Trong cả hai trường hợp, bộ t, với mỗi giá trị của t[X] thì chỉ  
có một giá trị của t[Y], do đó nếu biết trước giá trị t[X], thì có  
thể xác định giá trị t[Y].  
11/26  
2. Phꢅ thuộc hàm – Ý nghĩa  
. Ý nghĩa của PTH X Y:  
– Thế thì PTH đến từ đâu?  
Nó xuất phát các quy tắc nghiꢁp vụ (hay  
logic nghiꢁp vụ) của cơ sở dữ liệu. Các quy tắc  
nghiệp vụ này sẽ quy định các phụ thuộc giữa  
các thuộc tính, và từ đó sẽ tạo ra các phụ thuộc  
hàm.  
12/26  
2. Phꢅ thuộc hàm – Ý nghĩa  
. Ví dụ: một số quy tắc nghiệp vụ trong lược đồ  
Student:  
– r1: Mỗi sinh viên có một ID duy nhất.  
– r2: Mỗi sinh viên chỉ có duy nhất 1 tên và chỉ thuộc về một  
lớp.  
Từ r1 và r2, ta có các PTH sau:  
ID Name; ID Class  
– r3: Với mỗi môn học, mỗi sinh viên chỉ thi một lꢀn  
Từ r3, ta có PTH: (ID, Subject) Mark;  
13/26  
2. Phꢅ thuộc hàm  
. Hệ tiên đề Amstrong  
– Tính phản xạ: Y X thì X Y (PTH tꢀm  
thường)  
– Tính tăng trưởng: X, Y, Z, nếu X Y thì XZ   
YZ (XZ = X Z)  
– Tính bắc cꢀu: X, Y, Z, nếu X Y và Y Z thì X  
Z  
. Các hệ quả:  
– Tính hợp : nếu X Y và X Z thì X YZ  
– Tính tách: nếu X Y và Z Y thì X Z  
– Tính tựa bắc cꢀu: nếu X Y và YW Z thì XW  
Z  
14/26  
2. Phꢅ thuộc hàm  
. Một số loại PTH đặc biệt  
– PTH bộ phận và PTH đầy đủ: X Y được gọi là PTH bộ  
phận nếu X’ X sao cho X’ Y. Trái lại, nếu không tồn tại  
X’ như trên thì PTH này là đầy đủ.  
– PTH bắc cầu và PTH trực tiếp: X Y được gọi là PTH  
bắc cầu (hay gián tiếp) nếu Z XY sao cho XZ và Z   
Y. Trái lại, nếu không tồn tại Z như trên thì PTH này là  
trực tiếp.  
15/26  
3. Khꢀa  
Có một số loại khóa như sau:  
– Siêu khóa (Super Keys).  
– Khóa ứng viên (Candidate Kyes).  
– Khóa chính (Primary Kyes).  
– Khóa nói chung (Keys).  
– Khóa ngoại.  
1
6
3. Khꢀa  
Siêu khꢀa  
. Là một hay một tập các cột xác định duy nhất một hàng trong  
bảng  
. SK là siêu khóa của R khi với mọi t1, t2 thuộc bất kỳ thể hiện r  
của R ta luôn có t1[SK] ≠ t2[SK]  
. SK là siêu khóa củaR <=> SK xác định hàm mọi thuộc tính của  
R (SK -> R).  
Ví dụ: Ta có lược đồ DMSV(MaSV, SoCMTND, Ho_ten_sv,  
Ngay_Sinh, Dia_chi, Que_quan). Ta có thể có siêu khóa sau  
(DMDV(MaSV, SoCMTND, Ho_ten_sv), khi đó một khóa  
nói chung là thành phꢀn tối thiểu của siêu khóa.  
1
7
3 Khóa (tiếp)  
.
Khóa ứng viên (khóa ứng cử): Là một tập con của siêu khóa (cũng là một siêu  
khóa), nhưng không thể thu lại thành một siêu khóa khác được gọi là khóa  
ứng viên hay khóa dự tuyển, Ví dụ ta có tập các khóa ứng viên{  
(MaSV),(SoCMTND)}.  
.
Khóa chính:Là một khóa được lựa chọn một cách tùy ý từ tập các khóa ứng  
viên, và được sử dụng trong các chỉ mục của bảng đó.  
Khóa ngoại: Một thuộc tính của quan hꢁ R1 được gọi là một  
khoá ngoại lai nếu nó không phải là khoá chính của quan hꢁ  
R1 nhưng các giá trị của nó là các giá trị của khoá chính  
trong một quan hꢁ R2 nào đó (quan hệ R1 và R2 không nhất thiết  
phải khác nhau).  
Khóa ngoại lai dùng để chứa dữ liệu dùng cho việc liên kết với các bảng khác  
trong CSDL.  
1
8
Ví dꢅ  
1
9
3. Khóa (tiếp)  
–
Thuộc tính khóa (Prime attribute): 1 thuộc tính A là  
thuộc tính khóa nếu nó tham gia vào thành phꢀn của  
khóa chính hoặc khóa ứng cử. Trái lại, thì nó là thuộc  
tính không khóa (hay thuộc tính mô tả)  
20/26  
Tải về để xem bản đầy đủ
pdf 27 trang yennguyen 20220 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 3)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_ky_thuat_phan_mem_ung_dung_chuong_3_mo_hinh_du_lie.pdf