Bài giảng cung cấp cho người học các kiến thức: Lý thuyết thiết kế cơ sở dữ liệu, khái niệm phụ thuộc hàm, tính bao đóng, bao đóng của tập thuộc tính, phụ thuộc hàm tương đương,... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung bài giảng.
Trang 1Chương 4:Lý Thuyết Thiết Ké Cơ Sở Dữ Liệu
I Khái Niệm Phụ thuộc Hàm
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 = {A 1,…,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ì X Y là đúng trên quan
Trang 4Ví dụ:
Cho tập phụ thuộc hàm F = {A B, B CD} ta chứng minh phụ thuộc hàm AC CD được suy diễn logic từ F
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ả hai tính chất sau:
F + ⊇ F
Khi áp dụng các tính chất F1, F2, F3 cho F + ta không thu được phụ
thuộc hàm nào nằm ngoài F +
Trang 6b 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
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 8b Phủ tối tiêu:
Để tối ưu hơn nữa việc thiết kế lược đồ CSDL quan hệ ta yêu cầu mạnh hơn đối với tập phụ thuộc hàm tương đương.
Định nghĩa: Tập phụ thuộc hàm F gọi là phụ thuộc hàm tối thiểu nếu nó
thoả mãn các điều kiện sau:
(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:
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ế)
⇒ CG A (qui tắc phân rã)
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á
a Khái niệm khoá
- khái niệm căn bản
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
+ K’ K
⊆
∃ ⊆
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
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 v: các dạng chuẩn của quan hệ
I Giới thiệu
1 dạng chuẩn là gì?
• đ/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ọc
Vd: cho 1 quan hệ sinh viên
sv{hoten,masv,diem,mamh}// dạng chuẩn hay
không chuẩn? vì sao?
Trang 21II Quy ước dạng chuẩn
Trang 222 Dạng 2NF
• Quy ước
một quan hệ ở dạng 2NF khi:
- nó ở dạng 1NF
-các thuộc tính không khoá phải phụ thuộc hàm đầy
đủ vào thuộc tính khoá
• Chuẩn hoá
nếu một quan hệ ở dạng 1NF nhưng lại ở dạng 2 thì phải chuẩn hoá như sau
-tách các thuộc tính phụ thuộc một phần vào khoá
và thuộc tính khoá vào bảng
- khoá của bảng tách là thuộc tính khoá
Trang 24- không chặt: A B,B C ,C A
Trang 25Chú ý: 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
ghi giá trị aij: j là chỉ số dòng
i là chỉ số cột tại các quan hệ các quan hệ
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
• 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 31• Ví dụ
R={ABCD},F={AB C,C D}
AB là khoá, và AB {A,B,C,D}
Chú ý:tập thuộc tính xác định hàm tất cả các thuộc tính còn lại
-khoá dự tuyển: giả sử R đều có K1,K2 là khoá, có tính chất của khoá gọi K1,K2 là khoá dự tuyển
Trang 33F={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
∩