Thiết kế CSDL mức quan niệmDẫn nhập Những mục tiêu chính● Dạng chuẩn● Cấu trúc CSDL tương đương● 2 cách tiếp cận để thiết kế CSDLThiết kế CSDL mức quan niệm– Biến đổi đầu vào thành 1 cấu trúc CSDL quan niệm “tốt” hơn, “phù hợp” hơn với các yêu cầu của môi trường ứng dụng
Trang 1Thiết kế CSDL mức quan niệm
Trình bày: Nguyễn Đăng Khoa
Trang 3Dẫn nhập
● Đầu vào: kết quả của giai đoạn phân tích nhu cầu, có thể là
– Sơ phác cấu trúc CSDL (bằng 1 mô hình dữ liệu: mô hình
quan hệ, thực thể kết hợp, …) gồm các quan hệ con Q'1, Q'2,
… Q'3 và các phụ thuộc dữ liệu định nghĩa trên mỗi quan hệ con: D'1, D'2, …, D'm
C0' = {<Q1', D'1>, <Q2', D'2>,…<Qm', D'm> } (a)
– 1 sơ phác tổng thể bao gồm 1 quan hệ duy nhất Q0 và 1 tập các phụ thuộc D0
C0 = <Q0, D0> (b)
Trang 4Dẫn nhập
– Biến đổi đầu vào thành 1 cấu trúc CSDL quan
niệm “tốt” hơn, “phù hợp” hơn với các yêu cầu của môi trường ứng dụng
– Dựa trên 1 số tiêu chuẩn thiết kế
C0' = <Q'i, D'i> C0 = <Q0, D0>
Thiết kế CSDL mức
quan niệm
Trang 5Giả thuyết quan hệ phổ quát
quan hệ và phụ thuộc dữ liệu ứng dụng vào việc thiết kế CSDL
– Mỗi môi trường ứng dụng đều có thể được mô
hình hóa bằng 1 quan hệ duy nhất, gọi là quan hệ phổ quát, ký hiệu U
– Quan hệ phổ quát tập trung tất cả các thuộc tính của môi trường ứng dụng
Trang 6Giả thuyết quan hệ phổ quát
● Nếu cấu trúc sơ phác CSDL là C0' (trường hợp a), ngầm hiểu quan hệ phổ quát U như sau:
– U chứa tất cả các thuộc tính của quan hệ con Q'i
– Mỗi quan hệ con Q'i là kết quả của phép chiếu của U lên Q'i+ : ∀ i, Q'i = U[Q'i+ ]
● Nếu cấu trúc sơ phác là C0 (trường hợp b), khái niệm quan hệ phổ quát đã ngầm được sử dụng
Trang 7Giả thuyết quan hệ phổ quát
i Mỗi 1 thuộc tính có 1 ý nghĩa duy nhất Dù thuộc tính này hiện diện trong quan hệ con hay quan hệ phổ quát, ý nghĩa của nó vẫn như nhau
ii Giữa 2 thuộc tính chỉ có 1 mối kết hợp mang ý
nghĩa duy nhất
Trang 9Ví dụ 3.1
khác nhau trong các quan hệ khác nhau
dẫn đến kết quả sai trong quá trình thiết kế lại cấu trúc CSDL khi áp dụng luật dẫn cho phụ thuộc dữ liệu trên toàn cục
– Từ (Mã_ĐH → Ngày) và (Mã_HG, Ngày →
Lượng) ta suy dẫn được PTH (Mã_HG, Mã_ĐH → Lượng), dù PTH này không đúng trên thực tế
Trang 10Ví dụ 3.1
● Phải đặt tên lại cho các thuộc tính
– Ngày trong ĐẶT_HÀNG thành Ngày_ĐH
– Ngày trong THỐNG_KÊ_HÀNG_GIAO thành Ngày_TK
–
Trang 11khác cho mối kết hợp giữa Mã_NV và Ngày
Trang 12Cơ chế kiểm tra PTH
● PTH: 1 loại ràng buộc toàn vẹn quan trọng trong CSDL quan hệ
● Cần chọn cấu trúc CSDL sao cho việc kiểm tra PTH hiệu quả nhất
Trang 13Cơ chế khóa
● Cho 1 quan hệ Q, 1 khóa K của Q
Cơ chế khóa là cơ chế có sẵn của Hệ quản trị CSDL
Trang 14Hợp lệ hóa tình trạng 1 quan hệ
được định nghĩa trên Q
ℱ = {B → C, A → BC}
định nghĩa trên Q nếu TQ thỏa tất cả các PTH này
Trang 15Hợp lệ hóa tình trạng 1 quan hệ
∀q, q’ Q, nếu q.B = q’.B thì q.C = q’.C∈
kiểm tra ⇒ tốn kém và mất thời gian khi TQ lớn
CSDL, việc kiểm tra PTH này sẽ hiệu quả hơn
Trang 16Hợp lệ hóa tình trạng 1 quan hệ
– Các thao tác biến TQ1 thành TQ2 có thể gây ra tình trạng không hợp
lệ cho TQ2 ⇒ cần phải hợp lệ hóa TQ2 (kiểm tra lại xem F có còn thỏa trong TQ2)
– Các thao tác có thể xảy ra trên TQ1
● Thêm một bộ: phải kiểm tra lại các PTH trong ℱ
● Xóa một bộ: không cần kiểm tra lại PTH (nhưng có nguy cơ bị mất thông tin)
● Sửa một bộ: phải kiểm tra lại PTH và có nguy cơ bị mất thông tin (Sửa = Xoá + Thêm)
Trang 17Các mục tiêu thiết kế
● Hai tiêu chuẩn quan trọng cần đạt được trong quá trình thiết kế CSDL mức quan niệm
– Cấu trúc CSDL kết quả (đầu ra của giai đoạn thiết
kế mức quan niệm) cần đạt dạng chuẩn cao nhất
– Cấu trúc CSDL kết quả phải tương đương với cấu trúc ban đầu
Trang 18Các mục tiêu thiết kế
– Giảm tối đa sự trùng lắp thông tin, từ đó tránh
được một số bất tiện khi cập nhật CSDL
– Các phụ thuộc dữ liệu được kiểm tra dễ dàng
nhất, đơn giản và tương đối ít tốn kém nhất
– Đảm bảo các thông tin trong quan hệ phổ quát sẽ được tìm thấy đầy đủ trong CSDL của cấu trúc kết quả
Trang 19Các mục tiêu thiết kế
tương đương đảm bảo cho việc khai thác nó được
thuận lợi trên cả ba phương diện:
được truy xuất từ CSDL là những thông tin đã được phân tích
thông tin mâu thuẫn sau khi cập nhật
đến mục tiêu là kiểm tra RBTV dạng phụ thuộc dữ liệu
được thuận lợi
Trang 21Quan hệ được chuẩn hóa
● Trước khi Codd đề nghị khái niệm dạng chuẩn (1970), công nghệ lưu trữ dữ liệu khuyến khích cấu trúc dữ liệu phân cấp, trong đó có nhiều trường lặp
● Ví dụ 3.3
DANH_SÁCH_LỚP (TênLớp, SỉSố, (TênHS, (Điểm)*15)*30)
– Điểm được lặp lại 15 lần (mỗi học sinh có tối đa 15 cột điểm)
– Thông tin về mỗi học sinh (tên học sinh, các điểm) được lặp lại
30 lần (lớp học có tối đa 30 học sinh)
Trang 22Quan hệ được chuẩn hóa
Trang 23Quan hệ được chuẩn hóa
● E.F Codd đề nghị cấu trúc lưu trữ chuẩn hóa, theo đó, cấu trúc
1 : mã số học sinh trong lớp, thay bằng “MãHS”.
● STT2: môn học, thay bằng “Môn”
– Hai quan hệ trên trở thành
DANH_SÁCH_HS (TênLớp, SỉSố, MãHS, TênHS) ĐiỂM_HS_LỚP (TênLớp, MãHS, Môn, Điểm)
Trang 24Quan hệ được chuẩn hóa
Trang 25Dạng chuẩn 1
hóa như trên gọi là quan hệ ở dạng chuẩn 1
– Một quan hệ ở dạng chuẩn 1 không có các trường lặp và các trường kép, còn được gọi là cấu trúc
phẳng
Trang 26Dạng chuẩn 1
nghĩa của CSDL, không dựa vào cách thức lưu trữ thông tin
– Ví dụ: Cho biết điểm môn Văn của học sinh có mã 001, lớp 11B1
ĐIỂM_HS_LỚP[TênLớp = ’11B1’, Mã_HS = ‘001’, Môn = ‘Văn’, Điểm]
– Với cấu trúc chưa chuẩn hóa, câu truy vấn này sẽ là
DANH_SÁCH_LỚP (11B1)(1,2) (Học sinh có mã 001 lớp 11B1 được lưu ở vị trí thứ 1 trong danh sách, điểm môn Văn được lưu thứ 2 trong bảng điểm của HS)
Trang 27Dạng chuẩn 1 - Nhận xét
chưa được quan tâm
– Bất tiện khi thêm/cập nhật : để đảm bảo dữ liệu nhất quán, phải kiểm tra và cập nhật hàng loạt trên các thông tin trùng lắp
Ví dụ: Thêm một học sinh (11B1, 31, 003, Võ Thị H) vào danh sách: phải đảm bảo thông tin về sỉ số lớp của các học sinh khác cùng lớp 11B1 cũng phải là 31 Tương tự khi cập nhật
Ví dụ: giả sử ta chỉ mới thêm một học sinh mã 031 trong lớp 11B2 Khi đó, nếu xóa học sinh này đi, ta sẽ mất thông tin về tên lớp và sỉ
số của lớp 11B2 trong CSDL
Trang 28– f 2: mỗi môn thi (M) có 1 giảng viên (GV) duy nhất phụ trách
– f 3: mỗi ngày, vào 1 giờ, trong 1 phòng, chỉ có 1 môn thi duy nhất
Trang 29Dạng chuẩn 1 - Ví dụ
– 1 thể hiện của quan hệ LỊCH_COI_THI
– Nhận xét về sự trùng lắp thông tin và những bất tiện khi thêm/xóa/cập nhật?
Trang 30Dạng chuẩn 1 - Kết luận
nghiêm ngặt hơn để giải quyết các vấn đề về trùng lắp thông tin, để CSDL hoạt động hiệu quả hơn
Trang 31Dạng chuẩn 2 (DC2) - Khái niệm bổ
sung
● Thuộc tính khóa: A là một thuộc tính khóa của Q nếu
– A Q ∈ +
– A có tham gia vào khóa của Q
● Thuộc tính không khóa: A là một thuộc tính không khóa của
Trang 32Dạng chuẩn 2 (DC2) - Khái niệm bổ
– A là một thuộc tính phụ thuộc không phụ thuộc
đầy đủ vào X nếu PTH X → A là một phụ thuộc không đầy đủ
Trang 34DC2 - Vấn đề
● Vẫn còn thông tin trùng lắp
● Các bất tiện trong thao tác thêm/xóa/cập nhật
do trùng lắp thông tin gây ra
– Các bảng sau minh họa cho dữ liệu của các quan
Trang 35Dạng chuẩn 3 (DC3) - Khái niệm bổ
Trang 36Dạng chuẩn 3 (DC3) - Khái niệm bổ
sung
● Ví dụ 3.8
Cho ℱ = {MN→OPRX; NO →M; P →RY}
● NO → M NO →MN: thỏa (i) ⇒
● MN → P: thỏa (ii)
● MN → O MN → ON : không thỏa (iii) ⇒
⇒ P không phụ thuộc bắc cầu vào NO.
Trang 37i Hoặc X chứa một khóa của Q
ii Hoặc A là thuộc tính khóa của Q
Trang 38DC3 - Ví dụ
● Ví dụ 3.9: Xét cấu trúc CSDL ở ví dụ 3.6 được cải tiến để các quan hệ đều đạt DC3
COI_THI (GV_CT, N, G, P)LỊCH_KT(N,G,P,M)
T_GD T_LỊCH_KT
Trang 39DC3 - Vấn đề
có thêm một ràng buộc mới: f4: M →P
– Quan hệ LICH_KT có hai khóa (N,G,P) và
(N,G,M), vẫn đạt chuẩn 3 Xét thể hiện sau
Trang 40Dạng chuẩn Boy - Codd - Kent (DC
BCK)
không hiển nhiên X → A định nghĩa trên Q thì
Trang 41DC BCK - Giới hạn
● DC BCK quan tâm giải quyết vấn đề trùng lắp
thông tin, nhưng xem nhẹ một tiêu chuẩn khác: sự thuận lợi khi kiểm tra phụ thuộc dữ liệu
● Ví dụ 3.12
– Thay đổi cấu trúc CSDL của ví dụ 3.10 để tất cả quan
hệ đạt DC BCK:
COI_THI(GV_CT, N,G,P) LICH_KT_1(M,P) ; LICH_KT_2(M,N,G) GD(M,GV)
Trang 42DC BCK - Giới hạn
Nguyễn Văn A 2 8:00 – 10:00 101 Nguyễn Thị B 2 10:00 – 12:00 101 Trần Văn C 2 10:00 – 12:00 101
T_COI_THI
Giải thuật X CSDL Y
2 8:00 – 10:00 Giải thuật
2 10:00 – 12:00 CSDL
T_GD T_LỊCH_KT_2
101 Giải thuật
101 CSDL
T_LỊCH_KT_1
Trang 43Dạng chuẩn 4 (DC 4)
● Q ở dạng chuẩn 4 nếu và chỉ nếu Q ở DC BCK và: với mỗi phụ
thuộc đa trị (X→> Y) không hiển nhiên được định nghĩa trên Q thì ∀
B Q ∈ + ta luôn có X → B là một phụ thuộc hàm thuộc ℱ + Hay nói cách khác, X chứa một khóa của Q.
● Ví dụ:
Môi trường ứng dụng của ví dụ 3.9 có thêm phụ thuộc đa trị M →> P Khi
đó quan hệ LICH_KT(N,G,P,M) không đạt DC4
Tách quan hệ này thành LICH_KT_3(M,P) VÀ LICH_KT_2(M,N,G), ta có các quan hệ đều đạt DC 4
● Vì kiểm tra phụ thuộc đa trị rất tốn kém (có thể kép theo một chuỗi hiệu ứng thêm/xóa), mục tiêu của DC4 là tách nhỏ các quan hệ,
nhằm biến các phụ thuộc đa trị thành phụ thuộc đa trị hiển nhiên
Trang 44DC4 - Giới hạn
quan hệ để đạt DC 4 có thể làm cho việc kiểm tra một số PTH trở nên tốn kém hơn (phải kết trên nhiều quan hệ)
Trang 45Tính chất lồng nhau của các dạng
chuẩn
Trang 46Dạng chuẩn của cấu trúc CSDL
● Cho một cấu trúc CSDL C = {<Qi, ℱi>}, i = 1 n Dạng chuẩn của C là dạng chuẩn thấp nhất
trong các dạng chuẩn của các Qi
● Ví dụ 3.14
– Cấu trúc CSDL ở ví dụ 3.9 đạt BCK
– Cấu trúc CSDL ở ví dụ 3.10 đạt DC 3
Trang 48Đặt vấn đề
cho cấu trúc quan hệ phổ quát C = <U,D>
● Thông tin của CSDL lưu dưới dạng các bộ của U sẽ được tách nhỏ bằng phép chiếu để lưu dưới dạng các bộ của Q
Trang 50Đặt vấn đề
Giải thuật X CSDL Y
2 8:00 – 10:00 101 Giải thuật
2 10:00 – 12:00 101 CSDL
2 8:00 – 10:00 103 Giải thuật T_COI_THI_1
Nguyễn Văn A 2 8:00 – 10:00 101 Giải thuật X
Nguyễn Văn A 2 8:00 – 10:00 103 Giải thuật X
Nguyễn Thị B 2 10:00 – 12:00 101 CSDL Y
Trần Văn C 2 10:00 – 12:00 101 CSDL Y
T_COI_THI T_LICH_KT T_GD
Giống với TU?
Trang 51Nguyên tắc để đánh giá tính tương
Trang 52Các quan niệm về tính tương
đương
● Tính chất bảo toàn thông tin
● Biểu diễn trọn vẹn
Trang 53Tính chất bảo toàn phụ thuộc
● Ưu tiên việc kiểm tra các phụ thuộc dữ liệu
hiện thông qua phụ thuộc dữ liệu
Trang 54Tính chất bảo toàn phụ thuộc
● Đối với phụ thuộc hàm
Trang 55Tính chất bảo toàn phụ thuộc - Ví
Trang 56Tính chất bảo toàn phụ thuộc - Ví
Trang 57Tính chất bảo toàn phụ thuộc
● Đối với phụ thuộc đa trị
– Điều kiện (i.2) của tính chất bảo toàn PTH không
áp dụng được cho phụ thuộc đa trị
Trang 58Tính chất bảo toàn thông tin
● C2 ≡ C1 nếu thoả hai điều kiện sau
(ii.1) ∪i Qi+ = Q+
(ii.2) Q[Qi+] = Q, tức là:
∀TQ của Q, TQ = TQ[Qi+]
Trang 59Phương tiện kiểm tra tính bảo toàn
thông tin
● Cho
C1= <Q, ℱ>
và C2 = {<Qi, ℱi>}, i=1 n, với ℱi = ℱ+[Qi+]
● Bảng Tableau và qui trình thay thế đuổi được
sử dụng để kiểm tra tính bảo toàn thông tin
của C2
Trang 60Bảng Tableau và qui trình thay thế
đuổi
● Bảng Tableau
– Có m cột tương ứng với m thuộc tính của quan hệ Q
– n dòng tương tương ứng với n quan hệ con Qi
– Mỗi ô ở dòng i và cột j của bảng chứa một trong hai giá trị
● aj nếu Qi+ có chứa thuộc tính tương ứng với cột j
● bk trong trường hợp ngược lại, với k bắt đầu từ 1 và tăng dần mỗi khi cần dùng đến giá trị b
Trang 62Qui trình thay thế đuổi
1.∀f ∈ ℱ
Áp dụng luật phụ thuộc hàm cho f
Cuối ∀
2.Lặp lại bước 1 cho đến khi nào không còn
thay đổi được giá trị aj trong bảng Tableau thì dừng
Trang 63Qui trình thay thế đuổi
● Gọi T’ là bảng kết quả sau khi đã áp dụng qui trình thay thế đuổi trên bảng Tableau T
– Nếu T’ có một dòng chứa toàn các giá trị aj thì C2bảo toàn thông tin
– Ngược lại thì C2 không bảo toàn thông tin
Trang 64Tính chất bảo toàn thông tin - Ví dụ
● Ví dụ 3.17
– Xét tính tương đương (theo tiêu chuẩn bảo toàn thông tin) của cấu trúc trong VD 3.4 với cấu trúc sau
Trang 65Tính chất bảo toàn thông tin - Ví dụ
● Ví dụ 3.17: 1 thể hiện minh họa
Trang 66Tính chất bảo toàn thông tin - Ví dụ
● Ví dụ 3.18: dùng bảng Tableau và qui trình thay thế đuổi
để kiểm tra tính bảo toàn thông tin của cấu trúc trong ví
Trang 67Tính chất bảo toàn thông tin - Ví dụ
Trang 68Tính chất bảo toàn thông tin - Ví dụ
● Ví dụ 3.18
– Không thay thế được nữa và không tìm được
dòng nào chứa toàn a → C2 không bảo toàn thông tin
COI_THI a1 a2 a3 a4 a5
Trang 69∀TQ của Q, TQ = TQ[Qi+ ]
– C’ là biểu diễn trọn vẹn → C ’ vừa bảo toàn thông tin vừa tạo thuận lợi cho việc kiểm tra PTH
– VD 3.6, 3.9, 3.17 có đạt tiêu chuẩn biểu diễn trọn vẹn hay không?
– Cấu trúc trong VD 3.6 và 3.9 đạt tiêu chuẩn biểu diễn trọn vẹn
– Cấu trúc trong VD 3.17 đạt tiêu chuẩn bảo toàn thông tin, nhưng không bảo toàn PTH (PTH f3: N,G,P→ M không còn được định nghĩa trên quan hệ nào)
Trang 71GD(M,GV)
Trang 75Cách tiếp cận phân rã - Cơ sở lý
2 (Q + - A )
Trang 76Cách tiếp cận phân rã - Cơ sở lý
Trang 77Cách tiếp cận phân rã
● Ứng dụng định lý 1 và định lý 2, từ một quan
hệ cần phân rã, ta sẽ có cây phân rã nhị phân, trong đó, ở mỗi cấp, một quan hệ được tách thành hai quan hệ con
Trang 78Thuật toán phân rã
Trang 79Thuật toán phân rã
3.Chọn (d: X →>Y) D∈ Q với XY Q⊂ + để phân rã (*)
Trang 80Thuật toán phân rã - Ví dụ
Trang 81Thuật toán phân rã - Ví dụ
C1 = {
<Q1(MS_CĐ, CĐ), D1>;
Trang 82Thuật toán phân rã - Ví dụ
Trang 83Thuật toán phân rã - Nhận xét
(nếu có phụ thuộc đa trị) hoặc DC BCK (nếu chỉ có
PTH)
● Phân rã bảo toàn thông tin (do áp dụng định lý 1và 2), nhưng không đảm bảo bảo toàn PTH
phụ thuộc D ban đầu: D có thể chứa các PTH không đầy đủ, PTH dư thừa
của các quan hệ con
Trang 84Thuật toán phân rã - Nhận xét
(bước 3) mà cấu trúc kết quả sẽ khác nhau:
– Trong ví dụ 3.20: Chọn theo thứ tự từ trên xuống: kết quả khác nhau tùy theo thứ tự của D, và hậu quả là trong lược đồ kết quả có thể chứa những quan hệ không có ý nghĩa (ví dụ Q’22)
– Có một số nghiên cứu để cải tiến thuật toán phân rã: xây dựng chiến lược chọn phụ thuộc để phân
rã hiệu quả hơn (bảo toàn PTH, )
Trang 85Cách tiếp cận tổng hợp
● Mục tiêu
– Từ một lược đồ quan hệ phổ quát với tất cả các phụ thuộc dữ liệu (chỉ sử dụng phụ thuộc hàm), tìm một cấu trúc C ={ <Qi, Fi>} sao cho:
Qi, nghĩa là với mọi PTH trong quan hệ phổ quát, chỉ
Trang 86Thuật toán tổng hợp
● Vào: <U, F> với F = {f: X→A}
● Ra: C = {<Qi, Fi>}, i=1 n
● Thuật toán Tổng_hợp(U,F)
1.Tìm phủ tối thiểu PTT của F
2.Chia PTT thành những nhóm F
i ’ gồm những PTH thuộc PTT có cùng vế trái
khoá hoặc siêu khóa của các quan hệ con trong tương lai
Trang 87Thuật toán tổng hợp
3.Gộp các Fi’ có các (siêu) khoá tương đương lại
thành cùng một nhóm, ký hiệu Fi (Ki và Kj là tương đương nếu các PTH Ki → Kj và Kj → Ki thuộc F+)
3.1.J = ∅ 3.2 ∀ Fi ’ , Fj ’ sao cho Ki ↔ Kj F ∈ + thì
Nhập Fi ’ và Fj ’ lại thành một nhóm, ký hiệu Fi
Cuối ∀ 3.3.J:=J {K ∪ i→Kj , Kj → Ki}
Trang 90Thuật toán tổng hợp - Ví dụ 3.21
● Cho quan hệ phổ quát của ví dụ 3.20 Dùng thuật toán tổng hợp để tìm một lược đồ C tương ứng đạt DC3: Q(MS_CĐ, MSSV, CĐ, HG)
Trang 93Thuật toán tổng hợp – Đánh giá
● Các quan hệ trong lược đồ kết quả đều đạt DC3
● Kết quả tìm PTT và PTT’ ở bước 1 và 4.1 có thể khác nhau tùy vào thứ tự các PTH, do đó, dẫn đến cấu trúc kết quả của thuật toán tổng hợp cũng sẽ khác nhau
● Thuật toán không xác định được đầy đủ các khoá của các Qi
– Ví dụ 3.21: Q34 còn 2 khoá khác là (MS_CĐ, MSSV), (CĐ,HG) nhưng thuật toán không xác định được
Trang 94Thuật toán tổng hợp – Đánh giá
● Trong lược đồ kết quả của thuật toán, các Fi chỉ chứa các PTH mà vế trái là một khóa, có thể có những PTH khác định nghĩa trên Qi nhưng không ở dạng trên thì
không được thuật toán đưa vào tập Fi
Trang 95Thuật toán tổng hợp – Đánh giá
● Đảm bảo tính chất (i.2) của tiêu chuẩn bảo toàn phụ thuộc hàm, nhưng tính chất (i.1) có thể không thỏa
Trang 96Thuật toán tổng hợp – Cải tiến
● Thêm một bước sau cùng vào thuật toán để đảm bảo tính chất bảo toàn thông tin
– Bước 6:
● Tìm khóa K0 của quan hệ phổ quát U
● Nếu không tồn tại Qi có khóa là một khóa của U thì:
– Thêm vào lược đồ kết quả C một quan hệ Qk = U[K0] với Fk = ∅
Cuối nếu
– Ví dụ: trong ví dụ 3.23, tìm được một khóa của Q là ACD, ta thêm vào trong kết quả <Q3(ACD), F3 = > ∅