NỘI DUNG : Một số khái niệm liên quan Các dạng chuẩn Dạng chuẩn 1 1NF- Fist normal form Dạng chuẩn 2 2NF- Second normal form Dạng chuẩn 3 3NF- Third normal form Dạng chuẩn BCNF Bo
Trang 1BÀI 16:
CHUẨN HOÁ LƯỢC ĐỒ QUAN HỆ
1/45
Trang 2NỘI DUNG :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 3NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 416.1 Một số khái niệm liên quan
Chuẩn hóa:
Là quá trình tách một lược đồ quan hệ thành một tập các
lược đồ con, sao cho quá trình tách là không mất thông tin
và các lược đồ con là tối ưu hơn lược đồ ban đầu theo nghĩa:
hạn chế dư thừa dữ liệu, thuận lợi cho các quá trình tạo lập,
cập nhật và các thao tác tìm kiếm khác
Định nghĩa về thuộc tính khóa:
Cho lược đồ quan hệ α=(U, F), thuộc tính A∈U được gọi là
thuộc tính khóa nếu như A thuộc một trong các khóa nào
đó, ngược lại A được gọi là thuộc tính không khóa.
Trang 5
16.1 Một số khái niệm liên quan
Định nghĩa phụ thuộc hàm đầy đủ:
Cho lược đồ quan hệ α=(U, F), X, Y, Y ⊆ U tập thuộc tính
Y được gọi là phụ thuộc hàm đầy đủ vào tập thuộc tính
X nếu như Y phụ thuộc hàm vào X nhưng không phụ
thuộc hàm vào bất kỳ một tập con thực sự nào của x tức
là:
- X→ Y ( Y phụ thuộc hàm vào X)
- ∀ X’ ⊂ X thì X’ → Y ( mọi tập con thực sự của X đều
không thể xác định hàm Y)
Trang 616.1 Một số khái niệm liên quan
Định nghĩa phụ thuộc hàm bắc cầu:
Cho lược đồ quan hệ α=(U, F), X ⊆ U, A ∈ U, thuộc tính A
được gọi là phụ thuộc hàm bắc cầu vào tập thuộc tính X
Nêú X → Y và Y không phụ thuộc bắc cầu vào X thì Y
phụ thuộc hàm trực tiếp vào X
∃
Trang 7NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 816.2 Các dạng chUẩn
Sự cần thiết chuẩn hóa dữ liệu:
• Mục tiêu: là triệt tiêu mức cao nhất khả năng xuất hiện các dị thường
thông tin khi thực hiện các phép lưu trữ.
• Chẩn hóa: khảo sát danh sách các thuộc tính và áp dụng các tập quy tắc
phân tích vào danh sách đó, biến đổi thành nhiều tập nhỏ hơn sao cho:
Tối thiểu việc lặp lại.
Tránh dị thường thông tin.
Xác định và giải quyết được sự không rõ ràng, nhập nhằng trong suy
diễn.
Trang 916.2 Các dạng chUẩn
Quá trình chuẩn hóa:
Là quá trình tách lược đồ quan hệ về một nhóm tương
đương các lược đồ quan hệ chiếu sao cho khi kết nối tự nhiên
không làm tổn thất thông tin và bảo toàn được các phụ thuộc
hàm.
Cơ sở chuẩn hóa:
Dựa trên các khái niệm về phụ thuộc hàm, phụ thuộc hàm
đầy đủ, khóa, các thuộc tính không khóa…
Trang 1016.2 Các dạng chUẩn
Ví dụ:
Lược đồ quan hệ QLCAP( TC#, GTR, MC#, N#, NXS)
Trong đó: TC# : Mã tuyến cáp GTR : Giá trị của cáp
NSX : Nước sản xuất MC# : Mã cáp
N# : Mã nước sản xuất
Ngữ nghĩa dữ liệu như sau:
Trong một tuyến cáp, giá trị của một loại cáp được xác định
duy nhất.
Mỗi mã cáp xác định mã nước sản xuất cáp.
Mã nước xác định tên nước sản xuất.
Trang 13NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 1416.2.1 dạng chUẩn 1 (1NF-fist normal form)
Định nghĩa:
Một lược đồ quan hệ α=(U, F) được gọi là ở dạng chuẩn một ( 1NF)
nếu và chỉ nếu tất cả miền giá trị của các thuộc tính của R đều nguyên
tố (không thể phân chia được)
Ví dụ:
Xét quan hệ S(S#, PRO), thấy rằng thuộc tính PRO chứa các giá trị
không nguyên tố Vì vậy quan hệ này không phải là quan hệ dạng
chuẩn 1NF.
Trang 1516.2.1 dạng chUẩn 1 (1NF-fist normal form)
Trang 16NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 1716.2.2 dạng chUẩn 2 (2NF-Second normal form)
Trước khi nghiên cứu dạng chuẩn thứ 2, ta xét ví dụ sau đây:
Xét CSDL gồm 2 lược đồ quan hệ THI (MONTHI,
GIAOVIEN) và SINHVIEN ( MONTHI, MSSV, TEN, TUOI,
DCHI, DIEM) phản ánh thông tin về kết quả thi của một đơn
vị nào đó Trong
quan hệ THI thì MONTHI là khóa và trong quan hệ
SINHVIEN thì MONTHI và MSSV là khóa Ở
quan hệ thứ hai dễ nhận thấy rằng MONTHI, MSSV, DIEM
xác định kết quả thi của sinh viên còn MSSV, TEN, TUOI,
DCHI xác định đối tượng dự thi.
Trang 1816.2.2 dạng chUẩn 2 (2NF-Second normal form)
Xét các hiện hành của 2 lược đồ quan hệ THI và SINHVIEN
Trang 1916.2.2 dạng chUẩn 2 (2NF-Second normal form)
Trang 2016.2.2 dạng chUẩn 2 (2NF-Second normal form)
Trong quá trình cập nhật, truy suất dữ liệu xuất hiện các vấn
Trang 2116.2.2 dạng chUẩn 2 (2NF-Second normal form)
Định nghĩa:
Cho lược đồ quan hệ α=(U, F), lược đồ α được gọi là ở dạng
chuẩn 2( ký hiệu là 2 NF) nếu như lược đồ ở dạng chuẩn 1 NF
và các thuộc tình không khóa của α là phụ thuộc đầy đủ vào
khóa chính.
Thuật toán kiểm tra lược đồ có ở dạng chuẩn 2NF
hay không?
Input: Lược đồ quan hệ α =( U, F)
Output: Khẳng định α có đạt dạng chuẩn 2NF hay không
Trang 2216.2.2 dạng chUẩn 2 (2NF-Second normal form)
Thuật toán 1:
Thuật toán kiểm tra dạng chuẩn 2NF
Vào: Lược đồ quan hệ Q, tập phụ thuộc hàm F
Ra: Khẳng định Q cóa đạt dạng chuẩn 2NF hay không
Bước 1: Tìm tất cả các khóa của Q
Bước 2: Với tất cả các khóa K, tìm bao đóng của tất cả các tập
con thật sự S của K.
Bước 3: Nếu có bao đóng S+ chứa thuộc tính không khóa thì
Q không đạt chẩn 2NF ngược lại Q đạt được dạng chuẩn
2NF.
Trang 2316.2.2 dạng chUẩn 2 (2NF-Second normal form)
Ví dụ:
Cho lược đồ quan hệ Q(A, B, C, D) và tập phụ thuộc hàm:
F={AB→C, B→D, BC→A } Hỏi Q có đạt chuẩn 2NF hay không?
Giải:
Iα =Q \ ∪ ( Ri- -Li )=ABCD \ (C∪D∪A)=B Iα ≠Q
N={∪ ( Ri- -Li ) sao cho Li ⊆Iα }=D
Trang 2416.2.2 dạng chUẩn 2 (2NF-Second normal form)
Iα ={ B}, B={AC}
Khóa là K=AB và K=BC Ta thấy B⊂ K, B→D, D là
thuộc tính không khóa => thuộc tính không khóa không phụ
thuộc đầy đủ vào khóa
Trang 2516.2.2 dạng chUẩn 2 (2NF-Second normal form)
Thuật Toán 2:
Bước 1: Tìm tất cả các khóa của lược đồ α, từ tất cả các khóa
này ta suy ra các thuộc tính không khóa của lược đồ α Ký
hiệu tập thuộc tính không khóa này là NK.
Bước 2: Với mỗi khóa Ki, ký hiệu họ của các tập con thực sự
của Ki là { S1, S2, …, Ski }, ký hiệu Q={ Q1, Q2, …, Qn } là
họ tất cả các tập con thực sự của khóa Ki.
Bước 3: Tìm bao đóng Q+ ={ Q1+, Q2+, …, Qn+ }
Bước 4: Nếu Q+ ∩ NK=φ với mọi i=1…n thì lược đồ α ở
dạng chuẩn 2NF ngược lại tồn tại Q+ ∩ NK≠φ thì lược đồ α
không ở dạng chuẩn 2NF.
Trang 26NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 2716.2.3 dạng chUẩn 3 (3NF-THiRD normal form)
Định nghĩa 1:
Cho lược đồ quan hệ α= ( U, F), lược đồ α được gọi là ở
dạng chuẩn 3 ( ký hiệu là 3 NF), nếu như lược đồ ở dạng
chuản 2NF và các thuộc tính không khóa của α là không phụ
thuộc hàm bắc cầu vào khóa chính.
Định nghĩa 2:
Cho lược đồ quan hệ α =( U, F), lược đồ α được gọi là ở
dạng chuẩn 3, ký hiệu là 3NF, nếu như mọi phụ thuộc hàm
X→ A ∈ F+ với A ∉ X thì:
- Hoặc X là siêu khóa.
- Hoặc A là thuộc tính khóa.
Trang 2816.2.3 dạng chUẩn 3 (3NF-THiRD normal form)
Nhận xét:
Lược đồ quan hệ α =( U, F), với F là tập các phụ thuộc hàm
có vế phải chỉ gồm một thuộc tính Khi đó lược đồ α ở dạng
chuẩn 3NF khi và chỉ khi mọi phụ thuộc hàm X→A∈ F với A
∉ X đều có :
- Hoặc X là siêu khóa.
- Hoặc A là thuộc tính khóa.
Trang 2916.2.3 dạng chUẩn 3 (3NF-THiRD normal form)
Thuật toán kiểm tra lược đồ có ở dạng chuẩn 3NF hay không?
Từ định nghĩa về dạng chuẩn 3NF trên ta có thuật toán
kiểm tra xem một lược đồ có ở dạng chuẩn 3NF hay không
như sau:
Input: Lược đồ quan hệ α =( U, F)
Output: Khẳng định α có đạt dạng chuẩn 3NF hay không
Trang 3016.2.3 dạng chUẩn 3 (3NF-THiRD normal form)
Thuật toán 1:
Thuật toán kiểm tra dạng chuẩn BCNF
Vào: Lược đồ quan hệ Q, tập phụ thuộc hàm F
Ra: Khẳng định Q có đạt dạng chuẩn 3NF hay không
Bước 1: Tìm tất cả khóa của Q.
Bước 2: Từ F tạo tập phụ thuộc hàm tương đương FItt có vế
phải một thuộc tính.
Bước 3: Nếu mọi phụ thuộc hàm X→ A∈ FItt với A ∉ X đều
có X là siêu khóa hoặc A là một thuộc tính khóa thì Q đạt
chẩn 3 ngược lại Q không đạt chuẩn 3.
Trang 3116.2.3 dạng chUẩn 3 (3NF-THiRD normal form)
Iα =Q \ ∪ ( Ri- -Li )=ABCD \ ABCD= φ , Iα ≠Q
N={∪ ( Ri -Li ) sao cho Li ⊆Iα }= φ
Trang 3216.2.3 dạng chUẩn 3 (3NF-THiRD normal form)
K1= { AB };K2= { AD }; K3= { C } là khóa
=> mọi phụ thuộc hàm X→A∈F đều có A là thuộc tính
Trang 3316.2.3 dạng chUẩn 3 (3NF-THiRD normal form)
Thuật toán 2:
Bước 1: Tìm tất cả khóa của lược đồ α.
Bước 2: Từ F tìm tập phụ thuộc hàm tương đương F’, mà vế
phải của các phụ thuộc hàm trong F’ chỉ có một thuộc tính.
Bước 3: Nếu mọi phụ thuộc hàm X→A∈F’ với A∉X đều có X
là siêu khóa hoặc A là thuộc tính khóa thì α đạt chuẩn 3NF
ngược lại α không đạt chuẩn 3NF.
Trang 34NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 3516.2.4 dạng chUẩn BCNF (Boyce Codd normal form)
Định nghĩa 1:
Cho lược đồ quan hệ α= ( U, F), lược đồ α được gọi là ở dạng
chuẩn Boyce Codd, ký hiệu là BCNF, nếu như lược đồ ở dạng
chuẩn 1NF và nếu X→A∈F+ (A∉X) thì X phải là siêu khóa
của lược đồ.
Định ngĩa 2:
Cho lược đồ quan hệ α= ( U, F), lược đồ α được gọi là ở dạng
chuẩn Boyce Codd, ký hiệu là BCNF, nếu như lược đồ ở dạng
chuẩn 1NF và nếu X→A∈F là phụ thuộc hàm không tầm
thường (Y⊄ X) thì X phải là siêu khóa của lược đồ.
Trang 3616.2.4 dạng chUẩn BCNF (Boyce Codd normal form)
Thuật toán kiểm tra lược đồ ở dạng chuẩn BCNF hay không?
Từ định nghĩa về dạng chuẩn BCNF trên ta có thuật toán
kiểm tra xem một lược đồ có ở dạng chuẩn BCNF hay không
như sau:
Input: Lược đồ quan hệ α =( U, F)
Output: Khẳng định α có đạt dạng chuẩn BCNF hay không
Trang 3716.2.4 dạng chUẩn BCNF (Boyce Codd normal form)
Thuật toán 1:
Thuật toán kiểm tra dạng chuẩn BCNF
Vào: Lược đồ quan hệ Q, tập phụ thuộc hàm F
Ra: Khẳng định Q có đạt dạng chuẩn 3NF hay không
Bước 1: Tìm tất cả khóa của Q.
Bước 2: Từ F tạo tập phụ thuộc hàm tương đương FItt có vế
phải một thuộc tính.
Bước 3: Nếu mọi phụ thuộc hàm X→ A∈ FItt với A ∉ X đều
có X là siêu khóa thì Q đạt chẩn BCNF ngược lại Q không đạt
chuẩn BCNF.
Trang 3816.2.4 dạng chUẩn BCNF (Boyce Codd normal form)
Ví dụ:
Q (A, B, C, D, E, I) F={ACD→EBI; CE→AD }
Hỏi Q có đạt chuẩn BCNF hay không?
Giải:
Iα =Q \ ∪ ( Ri -Li )=ABCDEI \ (EBI∪AD)=C => Iα ≠Q
N={∪ ( Ri -Li ) sao cho Li ⊆Iα } = φ
Trang 3916.2.4 dạng chUẩn BCNF (Boyce Codd normal form)
F =FItt={ ACD→E, ACD→B, ACD→I, CE→A, CE→D}
Mọi phụ thuộc hàm của FItt đều có vế trái là siêu khóa
Trang 4016.2.4 dạng chUẩn BCNF (Boyce Codd normal form)
Thuật tán 2:
Bước 1: Từ F tìm tập phụ thuộc hàm tương đương F’, mà vế
phải của các phụ thuộc hàm trong F’ chỉ có một thuộc tính.
Bước 2: Nếu mọi phụ thuộc hàm X→A∈F+ với A∉X đều có
X là siêu khóa thì α đạt chẩn BCNF ngược lại α không đạt
chuẩn BCNF.
Trang 41NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Mối quan hệ giữa các dạng chuẩn
Trang 4216.2 Thuật toán tìm dạng chuẩn cao nhất
của lược đồ
Cho lược đồ quan hệ α =( U, F), hãy tìm dạng chuẩn cao nhất
của lược đồ α.
Input: Lược đồ quan hệ α =( U, F) ( ở đây ta giả thiết rằng
lược đồ α đã được chuẩn hóa, tức là đã ở dạng chuẩn 1).
Output: Dạng chuẩn cao nhất của lược đồ α.
Thuật toán:
Bước 1: Tìm tất cả các khóa của lược đồ α.
Bước 2: Sử dụng thuật toán kiểm tra lược đồ ở dạng chuẩn
BCNF, nếu lược đồ ở dạng BCNF thì dừng thuật toán và kết
luận dạng chuẩn cao nhất của lược đồ là BCNF, ngược lại thì
chuyển qua bước tiếp theo.
Trang 4316.2 Thuật toán tìm dạng chuẩn cao nhất
của lược đồ
Thuật toán:
Bước 3: Sử dụng thuật toán kiểm tra lược đồ ở dạng chuẩn
3NF, nếu lược đồ ở dạng 3NF thì dừng thuật toán và kết luận
dạng chuẩn cao nhất của lược đồ là 3NF, ngược lại thì chuyển
qua bước tiếp theo.
Bước 4: Sử dụng thuật toán kiểm tra lược đồ ở dạng chuẩn
2NF, nếu lược đồ ở dạng 2NF thì dừng thuật toán và kết luận
dạng chuẩn cao nhất của lược đồ là 3NF, ngược lại thì lược đồ
ở dạng chuẩn 1NF.
Trang 44NỘI DUNG Chi tiết :
Một số khái niệm liên quan
Các dạng chuẩn
Dạng chuẩn 1 (1NF- Fist normal form)
Dạng chuẩn 2 (2NF- Second normal form)
Dạng chuẩn 3 (3NF- Third normal form)
Dạng chuẩn BCNF (Boyce Codd normal form)
Thuật toán tìm dạng chuẩn cao nhất của lược đồ
Trang 4516.4 Mối quan hệ giữa các dạng chuẩn
Định lý: Một lược đò ở dạng chuẩn cao khi thì cũng ở dạng
chuẩn thấp, tuy nhiên điều ngược lại có thể đúng, điều này
được môt tả trong hình sau:
1NF