Có nghĩa là F là tập các phụthuộc hàm đúng trên quan hệ R... Bao đóng của phụ thuộc hàm a.. Định nghĩa: Cho tập phụ thuộc hàm F trên tập thuộc tính U.. Định nghĩa khác cho bao đóng của t
Trang 1BÀI GIẢNG
CSDL
Chương 6: Lý Thuyết Thiết Kế Cơ Sở Dữ Liệu
1. Định Nghĩa: là khái niệm quan trọng nhất trong việc
thiết kế cơ sở dữ liệu
- cho quan hệ R trên tập thuộc tính U
R(U)+ với U={A1,A2,A3…An}
x,y,z là tập con của U
x y nếu mọi t & t’t.x=t’.x t.y=t’.y
Trang 2Gọi R(U) là lược đồ quan hệ với U = {A1,…,An} là tập các thuộc tính X,
Y, Z, W U Hệ tiên đề Armstrong bao gồm:
Trang 3 b bổ đề
Bổ đề 1:
Hệ tiên đề Armstrong là đúng Có nghĩa là F là tập các phụthuộc hàm đúng trên quan hệ R Nếu X Y là một phụthuộc hàm được suy dẫn từ F nhờ hệ tiên đề Armstrong thì
Trang 4Ví dụ:
Cho tập phụ thuộc hàm F = {A B, B CD} ta chứngminh phụ thuộc hàm AC CD được suy diễn logic từ F.Thật vậy:
Trang 53 Tính bao đóng
a Bao đóng của phụ thuộc hàm
a Định nghĩa:
Cho tập phụ thuộc hàm F trên tập thuộc tính U Bao đóng của F, ký hiệu là F + , là
tập nhỏ nhất các phụ thuộc hàm trên U thoả:
F + = {X Y | F |== X Y}
b Định nghĩa khác cho bao đóng của tập phụ thuộc hàm:
F + là tập các phụ thuộc suy diễn từ F nhờ hệ tiên đề Armstrong Tức nó phải thoả
Trang 63 Bao đóng của tập thuộc tính
a Định nghĩa:
Cho tập phụ thuộc hàm F trên tập thuộc tính U và X U Bao đóng của tập thuộc tính X (đối với F), ký hiệu X + , là tập sau:
X+ = {A | X A F+}
b Định nghĩa khác cho bao đóng của tập thuộc tính:
X + là tập các thuộc tính A sao cho X A có thể suy diễn được từ F bằng hệ tiên đề Armstrong.
Trang 74 phụ thuộc hàm tương đương
- khái niệm
Cho R={A1,A2….An}
Cho lược đồ quan hệ R và các tập phụ thuộc hàm F và G trên R ta nói:
F phủ phụ thuộc hàm G nếu G+ F +
F tương đương phụ thuộc hàm G nếu G+ = F +
Để xác định phụ thuộc hàm Y Z G + hay không ta sử dụng thuật toán tính bao đóng tập thuộc tính để tính Y + đối với G và kiểm tra xem Z Y + hay không.
Mệnh đề: F G+ F + G +
Mệnh đề: Mỗi tập phụ thuộc hàm F tương đương với tập phụ thuộc hàm G gồm
các phụ thuộc hàm mà vế phải chỉ có 1 thuộc tính.
Trang 8(1): Vế phải của mỗi phụ thuộc hàm trong F chỉ có 1 thuộc tính.
(2): Mọi phụ thuộc hàm X A F là quan trọng, tức là tập phụ thuộc hàm có từ F bằng sự loại bỏ phụ thuộc hàm X A:
F \ {X A}
không tương đương với F.
(3): Với mỗi phụ thuộc hàm X A F, mọi thuộc tính B X đều quan trọng, tức là tập phụ thuộc hàm có từ F bằng việc thay phụ thuộc hàm X A bởi phụ thuộc hàm (X \{B}) A:
(F \ {X A}) {X \ {B} A}
không tương đương với F.
Nhận xét: Điều kiện (2) đảm bảo không có phụ thuộc hàm dư thừa, điều kiện (3) đảm bảo không có thuộc tính ở vế trái dư thừa.
Trang 9Thuật toán tìm phủ tối thiểu:
(2): Loại các phụ thuộc hàm dư thừa trong G: Không tồn tại X A nào trong F mà tập F
- {X A} tương đương với F.
(3): Loại các thuộc tính dư thừa ở vế trái của các phụ thuộc hàm trong G: Không tồn tại X
A trong F mà Z X để cho:
(F - {X A}) {Z A}
tương đương với F.
Trang 10Ta áp dụng thuật toán tính phủ tối thiểu để tính phủ tối thiểu của F.
(1): Phân rã vế phải các phụ thuộc hàm trong F
Tập G thu được gồm các phụ thuộc hàm:
Trang 11(2): Loại các phụ thuộc hàm dư thừa và thuộc tính dư thừa
* Loại các phụ thuộc hàm dư thừa:
- Loại CG B, vì nó suy ra từ C A, ACD B và CG D bằng các phép kéo theo như sau:
C A CG AG (qui tắc mở rộng hai vế)
CGA & CGD & CG C CG ACD (qui tắc hợp)
CG ACD & ACD B CG B (qui tắc bắc cầu)
Như vậy ta loại ra khỏi G.
- Loại CE A, vì nó suy ra từ C A.
Trang 12Kết thúc bước này các phụ thuộc hàm còn lại như sau:
Trang 13*Loại thuộc tính dư thừa:
Trong phụ thuộc hàm ACD B, thuộc tính A dư thừa vì C A Như vậy ta thay ACD B bởi CD B.
Cuối cùng ta nhận được phủ tối thiểu:
Trang 146.Khoá và giải thuật tìm khoá
Cho R={A1,A2,A3…An}
Cho K là tập con của R
Cho r là quan hệ trên R
t1,t2 là hai bộ bất kỳ
Khi đó K gọi là khoá nếu như t1 t2 thì t1[k] t2[k]
Là siêu khoá khi: K’ K
Trang 15-khái niệm theo phụ thuộc hàmcho Cho R={A1,A2,A3…An}cho k R
cho F là f tập phụ thuộc hàmKhi đó : k la khoá nếu
+ k R
Trang 16b giải thuật tìm khoá
*ứng dụng:cho phếp xác định được khoá của một quan hệ dựa trên tập phụ thuộc hàm
*bài toán:
cho R là quan hệ
F là tập phụ thuộc hàm yêu cấu: tìm khoá của R dựa trên F
Các bước:
b1: liệt kê các phần tử vế trái của phụ thuộc hàm F: L
liệt kê các phần tử vế phải của phụ thuộc hàm F:R1 b2: lấy R\R1=thuộc tính x // trong khoá phả chứa x
L giao R1=y b3:tính bao đóng x + :
x + =R thì kết luận x là khoá nếu x + R chuyển sang bước 4
Trang 17b4: ghép x với từng phần tử y
Sau đó thực hiên như bước 3
Ví dụ: Cho lược đồ R = (A, B, C, D, E, G) và tập phụ thuộc hàm F gồm
Trang 18Ví dụ 3: cho R=(MNPQSU)
F={M NP,P NQ,MN S,NS UQ}a.kiểm tra M Q?
Trang 19Chương 7: Các dạng chuẩn của quan hệ
đ/n :là những quy ước phụ thuộc những ràng buộc áp dụng
cho một quan hệ
Tránh do bộ phát sinh khi cập nhật dữ liệu
Các thao tác cập nhập : thêm,sửa, xoá, tìm kiếm, sắp xếp,
lọcVd: cho 1 quan hệ sinh viên
sv{hoten,masv,diem,mamh}// dạng chuẩn hay không chuẩn? vì
sao?
Trang 202.các loại dạng chuẩngồm 4 dạng:
- 1NF: dạng chuẩn 1
- 2NF : dạng chuẩn 2
- 3NF: dạng chuẩn 3
- BCNF: dạng chuẩn 4
Trang 21II Quy ước dạng chuẩn
Trang 23Khoá Bkết luận: từ R tách 2 quan hệ R1,R2 đều ở dạng 2 NF
Trang 25*chuẩn hoá thành dạng 3NF
nếu 1 quan hệ ở dạng 2NF nhưng chưa ở dạng 3NF thì phải tách
- tách các thuộc tính phụ thuộc hàm bắc cầu và thuộc tính xácđịnh hàm thành 1 bảng
- khoá của bảng tách là thuộc tính xác định hàm
Chú ý: phụ thuộc hoàn toàn 1NF 2NF
Phụ thuộc trực tiếp(không bắc cầu): 2NF 3NF
Trang 26BÀI TẬP
Cho R=(ABCDEGH)
F={B AC,AB DE,A G,C H}-hỏi R ở dạng nào?
Trang 27Khoá là: B
R32=(BDE)
Trang 284 Cách kiểm tra việc tách hợp lệ
R=R1 R2 ….Rn
hỏi tách R đúng hay không đúng
giả thiết: R={A1,A2,A3…AN}N: thuộc tính
Trang 305 chuẩn BCNF(boyed godd)
chuẩn rất mạnh hoàn toàn dựa vào định nghĩa phụ thuộc hàm, trong thự tế sử dụng BCNF nhiều hơn 3NF
Quy định: mọi thuộc tính không khoá phải phụ thuộc hàm vào khoá
- không tồn tại 1 trường hợp ngược lại: khoá phụ thuộc hàm không khoá
Khái niệm khoá theo quan điểm phụ thuộc hàm
cho R={A1,A2,A3…AN}
K R, K gọi là khoá nếu:
- k {A1,A2,A3…AN}
- không tồn tại k’ k, k’ {A1,A2,A3…AN}
Trang 32Ví dụ 2:R={ABCD},F={AB CD,D B}
dạng chuẩn 3NF , không ở dạng chuẩn BCNF vì khoá AB
CD không là khoá
Quy tắc tách
nếu quan hệ không ở dạng chuẩn BCNF thì chuyển về BCNF như
sau(trong quan hệ vẫn có thuộc tính khoá phụ thuộc hàm vào không khoá)
-tách thuộc tính không khoá và thuộc tính khoá thuộc phụ thuộc hàm vào không khoá thành 1 bảng
- khoá của bảng tách là thuộc tính không khoá
Ví dụ 2 tách
R1:={B,D}
R2:={A,B,C}
R2={A,C,D}
Trang 33 BÀI TẬP
Bài 1: cho R=(A,B,C,D,E,G)
F={AB CD,BC E,D GB}Yêu cầu:- tìm khoá
-xác định dạng chuẩn R
- tách R thanh BCNFBài 2:R=(A,B,C,D,E)
F={AB ED,E A,A C}
Yêu cầu:- tìm khoá
-xác định dạng chuẩn R
- tách R thanh BCNF
Trang 346 Cách kiểm tra
R được tách R1, R2
- cho R la tập thuộc tính,F là tập phụ thuộc hàm
- nếu R tách ra R1,R2 thì trong F có 1 phụ thuộc hàm có dạng
R1