Quá trình chuẩn hóa lược đồ CSDL• Thực hiện chuẩn hóa từng lược đồ quan hệ – Là quá trình biến đổi dạng chuẩn của một lược đồ quan hệ từ thấp nhất tới dạng chuẩn cao nhất – Phân tách một
Trang 1Chương 6
Chuẩn hóa (Normalization)
Trang 2Khái niệm “Chuẩn hóa”
• Chuẩn hóa được xem như là một công cụ
Trang 3Bảng chưa chuẩn hóa
• Bảng không ở dạng chuẩn 1 ( hay chưa
chuẩn hóa) nếu nó chứa một hoặc nhiều
nhóm giá trị lặp
• Nhóm giá trị lặp(Repeating group)
PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME
Trang 4PROJ_NUM PROJ_NAME EMP_NUM EMP_NAME
Trang 5Dạng chuẩn 2 (2NF)
• Lược đồ quan hệ R(U,F) ở dạng chuẩn 2 khi :
– Bảng ở dạng chuẩn 1, và
– Mọi thuộc tính không khóa đều phụ thuộc
đầy đủ vào mọi khóa của R
• Nhận xét : Nếu R chỉ có các khóa gồm một thuộc tính thì đương nhiên R ở dạng chuẩn 2
• Phụ thuộc hàm đầy đủ _ Full functional dependency
– XA là phụ thuộc hàm đầy đủ Y X , YA
– Ngược lại : XA là phụ thuộc hàm không đầy đủ
Trang 6Dạng chuẩn 2 (2NF)
• Lược đồ sau không đạt 2NF
Q(PROJ_NUM, EMP_NUM, PROJ_NAME, EMP_NAME) với tập F = {
f1: PROJ_NUM, EMP_NUM PROJ_NAME, EMP_NAME
f2: EMP_NUM EMP_NAME
f3: PROJ_NUM PROJ_NAME }
Gọi : f1 là phụ thuộc hàm không đầy đủ
f2, f3 là phụ thuộc riêng phần_ partial FD
Trang 7Dạng chuẩn 3 (3NF )
• Định nghĩa 1: Lược đồ quan hệ R ở 3NF đối với
tập phụ thuộc hàm F nếu:
– R ở dạng 2NF, và
– Mọi thuộc tính không khóa đều không phụ thuộc
bắc cầu vào khóa chính của R
• Định nghĩa 2: Lược đồ quan hệ R ở 3NF đối với
tập phụ thuộc hàm F nếu:
– R ở dạng chuẩn 1, và
X->A với A X thì X là 1 siêu khoá của R hoặc
A là 1 thuộc tính khoá
Trang 8Dạng chuẩn 3 (3NF )
• Lược đồ sau không đạt 3NF
Q( EMP_NUM, EMP_NAME, JOB_CLASS, CHG_HOUR ) với tập F = {
f1 : EMP_NUM EMP_NAME,JOB_CLASS,CHG_HOUR
f2 : JOB_CLASS CHG_HOUR }
=> f2 là phụ thuộc hàm bắc cầu
(transitive dependency)
Trang 9Dạng chuẩn BCNF
• BCNF được xem là trường hợp đặc biệt của 3NF
• Lược đồ quan hệ R(U,F), được gọi là đạt BCNF nếu
mọi X A F , AX thì X là một siêu khóa của R
• Lược đồ quan hệ sau không đạt BCNF
R( Proj_name, Emp_name, Assign_hours )
với 2 phụ thuộc hàm
f1: Proj_name, Emp_name Assign_hours
f2: Assign_hours Emp_num
Trang 11Quá trình chuẩn hóa lược đồ CSDL
• Thực hiện chuẩn hóa từng lược đồ quan hệ
– Là quá trình biến đổi dạng chuẩn của một lược đồ quan hệ từ thấp nhất tới dạng chuẩn cao nhất
– Phân tách một LĐQH dần dần thành nhiều LĐQH mới dựa trên việc nhận diện các phụ thuộc hàm
• Dạng chuẩn của một lược đồ CSDL bằng dạng chuẩn của lược đồ quan hệ cao nhất
Trang 12f1: PROJ_NUM, EMP_NUM PROJ_NAME, EMP_NAME,
JOB_CLASS, CHG_HOUR, HOURS
f2: PROJ_NUM PROJ_NAME
f3: EMP_NUM EMP_NAME, JOB_CLASS, CHG_HOUR
f4: JOB_CLASS CHG_HOUR
Xét R(U,F) đạt dạng chuẩn 1
R ( PROJ_NUM, EMP_NUM, PROJ_NAME, EMP_NAME,
JOB_CLASS, CHG_HOUR, HOURS )
Ví dụ về chuẩn hóa
Trang 13Ví dụ về chuẩn hóa Chuyển đổi sang dạng chuẩn 2
Loại bỏ các phụ thuộc hàm riêng phần và tạo thêm các Lược đồ quan hệ mới tương ứng
Trang 14Ví dụ về chuẩn hóa Chuyển đổi sang dạng chuẩn 3
• Loại bỏ các phụ thuộc bắc cầu trong lđqh và tạo ra các lđqh mới tương ứng
Trang 15Sau quá trình chuẩn hóa Q, ta thu được một lược đồ CSDL đạt 3NF
Lược đồ CSDL kết quả
Trang 16Ví dụ về chuẩn hóa Chuyển đổi sang dạng chuẩn BCNF
• Giả định, trong bảng ASSIGNMENT tồn tại 2 phụ thuộc hàm
f1: Proj_name, Emp_name Assign_hours
f2: Assign_hours Emp_num
PROJ_NUM ASSIGN_HOURS EMP_NUM
Hoặc
Trang 17Chuẩn hóa và Thiết kế CSDL
• Chuẩn hóa được xem như một phương pháp thiết
kế CSDL độc lập
– Có 2 cách tiếp cận : tổng hợp và phân rã
• Với phần lớn các mục tiêu thiết kế DB : 3NF là
dạng chuẩn cao cần đạt tới trong quá trình chuẩn hóa
– Dạng chuẩn cao nhất không phải luôn luôn là mục tiêu cần đạt tới
– Giảm dạng chuẩn
Trang 18Chuẩn hóa LDQH bằng Phân rã
• Quá trình chuẩn hóa LDQH là quá trình phân
rã LDQH ban đầu thành một số LDQH con
– Các LDQH con đạt dạng chuẩn cao hơn =>
giảm dư thừa dữ liệu
• Về mặt lý thuyết, quá trình phân rã phải đảm bảo 2 yêu cầu
– Bảo toàn thông tin
– Bảo toàn phụ thuộc hàm
Trang 19Phân rã bảo toàn thông tin
• Xét lược đồ quan hệ Q và tập F, giả sử Q được phân
Xét lược đồ quan hệ Q và tập F, D= { Q1, Q2 } là phân
rã bảo toàn thông tin nếu và chỉ nếu
(Q1+ Q2+ ) Q2+ F+ hoặc
(Q1+ Q2+ ) Q1+ F+
• Phép tách Q thành n lược đồ quan hệ Q1, Q2,…Qn bảo toàn thông tin , nếu ở các bước trung gian tách Q thành Qi và Qik bảo toàn thông tin
Trang 20Phân rã bảo tồn thơng tin
r
Hung 12 Nguyễn Kiệm Gạch ống 200 Hung 12 Nguyễn Kiệm Gạch thẻ 250 Hung 40 Nguyễn Oanh Gạch ống 200
Hung 12 Nguyễn Kiệm Hung Gạch ống 200 Hung 40 Nguyễn Oanh Hung Gạch thẻ 250
r’ = r 1 |><|r 2
Hung 12 Nguyễn Kiệm Gạch ống 200
Trang 21Phân rã bảo toàn phụ thuộc hàm
• Cho phân rã D = (Q1, Q2,…, Qk) của lược đồ Q và tập pth F,
với hình chiếu của F trên Qi ký hiệu Qi(F)
sao cho Qi(F)={ XY | X Y F+ và XY Qi}
Ta nói phân rã D bảo toàn tập phụ thuộc hàm F nếu
F Qi(F) F+ = ( Qi(F))+ với i=1 k
Trang 22Ý nghĩa của phân rã bảo toàn pth
• Ví dụ
Trang 23Thuật toán phân rã thành 3NF bảo toàn
thông tin , bảo toàn phụ thuộc hàm
• B1 : Tìm phủ tối thiểu Ftt của F
• B2 :
– Nếu có những thuộc tính của Q không nằm trong một
phụ thuộc nào của Ftt - dù ở vế phải hay vế trái của F thì chúng tạo thành một lược đồ.
– Nếu có một phụ thuộc hàm nào của Ftt mà liên quan
đến tất cả các thuộc tính của Q thì kết quả phân rã
chính là Q ( Q không thể phân rã)
đồ cần tìm
– Nếu có một lược đồ con chứa khóa K của Q thì kết thúc
thuật toán Ngược lại tạo một lược đồ con K
Trang 24Thuật toán phân rã thành 3NF bảo toàn
thông tin , bảo toàn phụ thuộc hàm
Trang 25Tóm tắt
Tồn tại nhiều phụ thuộc hàm
trong một LĐQH
bằng Phân rã