Xét lược đồ quan hệ gồm n thuộc tính:
R(U), U = {A1, A1 . An}
Phụ thuộc hàm giữa hai tập thuộc tính X,Y U
Ký hiệu: X Y rR, t1, t2r nếu t1[X] = t2[X] thì t1[Y] = t2[Y]
Quan hệ r thỏa phụ thuộc hàm X Y
81 trang |
Chia sẻ: lylyngoc | Lượt xem: 2339 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Chương 4: Phụ thuộc hàm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 4:
PHỤ THUỘC HÀM
4.1 Các bất thường về dữ liệu
Bất thường khi cập nhật
Bất thường xóa bỏ
4.2. Định nghĩa về phụ thuộc hàm
Xét lược đồ quan hệ gồm n thuộc tính:
R(U), U = {A1, A1…. An }
Phụ thuộc hàm giữa hai tập thuộc tính X,Y U
Ký hiệu: X Y
rR, t1, t2r nếu t1[X] = t2[X] thì t1[Y] = t2[Y]
Quan hệ r thỏa phụ thuộc hàm X Y
4.2. Định nghĩa về phụ thuộc hàm
Đọc : X xác định Y
Tập các thuộc tính Y phụ thuộc vào tập
các thuộc tính X hoặc được suy ra từ tập
các thuộc tính X.
X là vế trái, Y là vế phải của phụ thuộc
hàm
Phụ thuộc hàm X → Y là tầm thường
(trivial) khi và chỉ khi Y = X.
4.2. Định nghĩa về phụ thuộc hàm
r (R) A B
1 4
1 5
3 7
Ví dụ
r không thỏa AB nhưng thỏa B A
4.2. Định nghĩa về phụ thuộc hàm
MaNVTenNV Ngsinh Diachi MaPB TenPB TrPhong
MaNVTenNV MaNVMaPB MaPB{TenPB,TrPhong}
NHANVIEN
rR thỏa các phụ thuộc hàm
4.2. Định nghĩa về phụ thuộc hàm
4.2. Định nghĩa về phụ thuộc hàm
Lược đồ GV (Magv, Tengv);
Lược đồ SV (Masv, Tensv);
Lược đồ Mon(Mamon,Tenmon);
Magv → Tengv
Masv → Tensv
Mamon → Tenmon
4.2. Định nghĩa về phụ thuộc hàm
Lược đồ Hoc (Masv, Mamon, Diem)
Masv Mamon Diem
A01 M01 9
A01 M02 6
A04 M01 8
Masv, Mamon → Diem
4.2. Định nghĩa về phụ thuộc hàm
Nhận xét:
Các PTH xuất phát từ thế giới thực
rR, tr nếu t[X] là duy nhất thì X là
một khóa của R.
Nếu K là một khóa của R thì K xác định
tất cả các thuộc tính của R.
PTH dùng để đánh giá một thiết kế cơ sở
dữ liệu.
4.2.1 Bao đóng của tập PTH
F là tập PTH trên R
F= { MaNVTenNV, MaPB {TenPb,
TrPhong}, MaNV MaPB}
r R thỏa F và
MaNV{TenPB,TrPhong} cũng đúng với r
thì MaNV{TenPB,TrPhong} được gọi là
suy diễn từ F
4.2.1 Bao đóng của tập PTH
Bao đóng của F ký hiệu F+ gồm:
F và
Tất cả các phụ thuộc hàm suy diễn từ
F
F được gọi là đầy đủ nếu F = F+
4.2.2.Hệ tiên đề Amstrong
A1: Tính phản xạ (Reflexivity)
Nếu Y ⊆ X ⊆ U thì F ⊨ X → Y
A2: Tính tăng trưởng
(Augmentation)
Nếu X → Y đúng và Z ⊆ U thì XZ →
YZ
A3: Tính bắc cầu (Transivity)
Nếu X → Y và Y → Z thì X → Z
đúng
4.2.3. Các luật suy diễn bổ
sung
Qui tắc hợp (The union rule)
{X → Y, X → Z} ⊨ X → YZ
Qui tắc giả bắc cầu(The
pseudotransivity rule)
{X → Y, WY → Z} ⊨ WX → Z
Qui tắc phân rã (The
decomposition rule)
Nếu X → Y và Z ⊆ Y thì X → Z
đúng
Vấn đề
Làm thế nào để biết một PTH XY
được suy diễn từ tập PTH F cho trước?
Bao đóng của tập thuộc tính X đối với
F, ký hiệu X+ là:
Tập các thuộc tính PTH vào X
X+= {A U| XA F+}
Nhận xét: XYF+ Y X+
Nếu K là khóa của R thì K+= U
Nếu K là một khóa của R thì K xác định tất cả
các thuộc tính của R.
Thuật toán tìm X+
Vào: U, F và X U
Ra: X+
Bước 1: X+ = X
Bước 2: nếu tồn tại YZ F và Y
X+ thì:
X+= X+ Z
Tiếp tục bước 2. Ngược lại qua bước 3
Bước 3: cho X+
Ví dụ tìm X+
Cho F = {ABC, BCD, DEG}
X=BD tìm X+ = ?
X+ = BD
Tìm các PTH có vế trái là tập con của
X+=BD
DEG, thêm EG vào X+ ta được
X+=BDEG
Tìm các phụ thuộc hàm có vế trái là tập
con của BDEG.
Không có phụ thuộc hàm nào.
Suy ra X+ = BDEG
Ví dụ tìm X+
1. AB → C 2. C → A
3. BC → D 4. ACD →B
5. D → EG 6. BE → C
7. CG → BD 8. CE → AG TÍNH
(BD)+
X+ = BDEGC
4.2.4. Kiểm tra phụ thuộc hàm suy diễn
Cho F= {ABC,AD,DE,ACB}
Hai phụ thuộc hàm: ABE và DC có
được suy diễn từ F hay không?
X = AB suy ra: X+ = ABCDE có chứa E
X = D suy ra X+= DE không chứa C
Phụ thuộc hàm tương đương
Tập PTH F được nói là phủ tập PTH G
nếu:
G F+.
Hai tập phụ thuộc hàm được gọi là
tương đương nếu G phủ F và F phủ G.
Nhận xét:
XYG, nếu YX+(F) thì F phủ G
F và G tương đương nếu và chỉ nếu F+ =
G+
Tập phụ thuộc hàm tối thiểu
Thừa phụ thuộc hàm:
{AB,BC,AC}
Thừa thuộc tính:
{AB,BC,ACD}
Vì ACD được suy diễn từ:
{AB,BC,AD}
AB, BC AC (Luật bắc cầu)
AC, AD ACD (Luật hợp)
Tập phụ thuộc hàm tối thiểu
{AB,BC,ACD} Thừa… vì ACD
được suy diễn từ {AB,BC,AD}
AB,AD ABD (Luật hợp)
ABD ACBDC (Luật tăng trưởng)
ACBDC ACD (Luật phân rã)
Tập phụ thuộc hàm tối thiểu
Một tập PTH F được gọi là tối thiểu nếu thỏa
các điều kiện sau:
Mọi PTH chỉ có một thuộc tính ở vế phải
Không thể thay XA F bằng YA với YX mà
tập mới tương đương với F
Nếu bỏ đi một PTH bất kỳ trong F thì tập PTH còn
lại không tương đương với F.
Phủ tối thiểu của tập PTH E là tập PTH tối
thiểu F tương đương với E
Nhận xét: mọi tập PTH có ít nhất một phủ tối
thiểu
Thuật toán tìm phủ tối thiểu
1. Tách các phụ thuộc hàm sao cho vế phải chỉ còn một
thuộc tính. (ví dụ: A->BC thành A->B và A->C)
2. Bỏ các thuộc tính dư thừa ở vế trái. (ví dụ: cho F = {A →
B, B → C, AB → D} các phụ thuộc hàm có vế trái 1 thuộc tính là
đầy đủ nên ta không xét, xét AB → D có B dư thừa(bỏ B) vì bao
đóng của A có chứa B. A+=ABC) (bỏ thuộc tính bên vế trái, khi
và chỉ khi bao đóng của các thuộc tính còn lại có chứa thuộc tính
đó)
3. Loại khỏi F các phụ thuộc hàm dư thừa. (Các thuộc tính ở
vế phải của PTH chỉ xuất hiện duy nhất 1 lần thì không thể loại
bỏ. Còn lại tính bao đóng của tập thuộc tính vế trái nếu có xuất
hiện thuộc tính vế phải thì có thể loại bỏ thuộc tính đó vì đó là
PTH dư thừa.)
Ví dụ tìm phủ tối thiểu
Tìm phủ tối thiểu của E =
{ABC,AB,BC,ABC}
B1: F={AB,AC,BC,ABC}
B2: Xét ABC
BF+= C
F = {AB,AC,BC}
B3: AC THỪA
Suy ra : F = {AB,BC}
Ví dụ:
Cho lược đồ quan hệ Q(A,B,C,D) và tập pth F={AB->CD, B-
>C, C->D} Tìm phủ tối thiểu?
1. Tách các phụ thuộc hàm sao cho vế phải chỉ còn một
thuộc tính.
+ ta có F={AB->C, AB->D, B->C, C->D}
2. Bỏ các thuộc tính dư thừa ở vế trái.
+ B->C, C->D Không xét vì vế trái chỉ có một thuộc tính.
+ xét AB->C : Nếu Bỏ A thì B+=BCD không chứa A nên
không thể Bỏ A. Nếu Bỏ B thì A+=A. không bỏ được thuộc
tính nào.
+ xét AB->D : Nếu Bỏ A thì B+=BCD không chứa A nên
không thể Bỏ A. Nếu Bỏ B thì A+=A. không bỏ được thuộc
tính nào.
3. Loại khỏi F các phụ thuộc hàm dư thừa.
+ xét AB->C : Tính AB+=ABCD = Q nên loại bỏ AB->C
+ xét AB->D : tính AB+=ABCD = Q nên loại bỏ AB->D
+ B->C : tính B+=B không thể bỏ.
+ C->D : tính C+=C không thể bỏ.
Phủ tối thiểu là Ftt = {B->C, C->D}
Ví dụ
Cho F= {ABC,AD,DE,ACB}
Một số bài tập ví dụ
Siêu khóa và khóa
Cho R(U)
S U là siêu khóa nếu
rR,t1,t2r,t1t2 thì t1[S], t2[S]
K U là khóa nếu K là siêu khóa nhỏ
nhất
AK được gọi là thuộc tính khóa
Nhận xét:
S xác định tất cả các thuộc tính của R
R có thể có nhiều khóa.
Xác định khóa của lược đồ
Nhập: tập PTH F xác định trên lược đồ
R(U)
Xuất: khóa K của R
Bước 1: K = U = {A1,…,An}
i= 1;
Bước 2: Nếu U(K-{Ai})F+ thì K= K - {Ai}
i= i+1;
Bước 3: Xuất K
Ví dụ tìm khóa của lược đồ
Cho R(U), U = {A,B,C,D,E,F,G}
Cho F = {BA,DC,DBE,DFG}
Tìm khóa của R:
Bước 1: K=ABCDEFG
Bước 2: Lặp 1 (BCDEFG)+=ABCDEFGK= BCDEFG
(CDEFG)+=CDEFGBAK= CDEFG
(DEFG)+= DEFGCBAK= DEFG
(EFG)+= EFG (khóa K ?)
(DFG)+= DFGCBEAK= DFG
(DG)+= DGCBEA (khóa K ?)
(DF)+=DFCBEAGK = DF
Bước 3: Khóa là K= DF
Ví dụ tìm khóa của lược đồ
Tìm khóa của lược đồ quan hệ:
U={A,B,C,D,E}
Cho F= {ABC,AD,DE,ACB}
Xác định tất cả các khóa của lược đồ
Nhập tập PTH F xác định trên lược đồ
quan hệ R(U)
Xuất tất cả các khóa của R
Bước 1: Xây dựng 2n tập con của
U={A1,…,An} S={};
Bước 2: Với mỗi tập con XU
Nếu U XF+ thì S=S {X}
Bước 3: X,YS, nếu XY thì S=S - {X}
Bước 4: S là tập các khóa của R
Ví dụ tìm tất cả các khóa của R
Cho R(U), U = {A,B,C,D,E,F}.
F={AEC,CFA,BDF,AFE}.
Tìm tất cả các khóa của R.
Tập siêu khóa:
S={ABD,BCD,ABCD,ABDE,BCDE,ABCDE,A
BDF,BCDF,ABCDF,ABDEF,BCDEF,ABCDEF}
Xác định tất cả các khóa của lược đồ
ABDF
ABDE
ABCD
ABD
BCD BCDE
BCDF
BCDEF
ABDEF
ABCDE
ABCDF ABCDEF
Thuật toán cơ bản tìm all các khóa
Bước 1: Xác định tất cả các tập con khác
rỗng của R+. Giả sử X1,X2,..,X2n-1
Bước 2: Tìm bao đóng của Xi
Bước 3: Siêu khóa là các Xi có bao đóng
đúng bằng R+. Giả sử ta có các siêu
khóa S= {S1, S2,..,Sm }
Bước 4: Xây dựng tập chứa tất cả các khóa
của R từ tập S bằng cách xét mọi Si, Sj
con của S(ij), nếu SiSj thì ta loại
Sj(i,j=1..n), kết quả còn lại của S chính
là tập các khóa cần tìm.
Ví dụ tìm khóa
Tìm tất cả các khóa của lược đồ quan hệ:
R (C,S,Z) F={CSZ, ZC}
Xi Xi+ Siêu khóa Khóa
C C
CS CSZ CS CS
Z ZC
CZ CZ
SZ SZC SZ SZ
CSZ CSZ CSZ
Tập các khóa K=CS và K=SZ
Thuật toán tìm tất cả các khóa cải tiến
TN: chứa các thuộc tính vế trái(kh
xuất hiện vế phải) + các thuộc tính
không xuất hiện ở hai vế.
TD: chứa các thuộc tính vế phải
TG: tập chứa các thuộc tính xuất hiện
ở cả VT và VP.
Hệ quả: nếu K là khóa của Q thì
TNK và TDK=
Thuật toán tìm tất cả các khóa
Dữ liệu vào: lược đồ quan hệ R và tập F
Dữ liệu ra: tất cả các khóa của R
Thuật toán tìm khóa được mô tả như sau:
Bước 1: xác định tập TN và TD
Bước 2: nếu TG= thì lược đồ quan hệ chỉ
có một khóa K. K=TN
ngược lại, qua bước 3
Bước 3: tìm tất cả các tập con Xi của tập TG
Thuật toán tìm tất cả các khóa
Bước 4: tìm các siêu khóa Si bằng cách Xi
Nếu (TNXi)+= R+ thì Si = TNXi
Bước 5: tìm khóa bằng cách loại bỏ các
siêu khóa không tối thiểu
Si,SjS
Nếu SiSj thì loại Sj ra khỏi tập siêu khóa
S còn lại chính là tập khóa cần tìm
Áp dụng thuật toán cải tiến
R (C,S,Z), F={CSZ, ZC}
Ta có: TN = {S}, TG ={CZ}
Gọi Xi là các tập con của tập TG:
Xi (TNXi) (TNXi)+ Siêu khóa Khóa
S S
C CS CSZ CS CS
Z SZ SZC SZ SZ
CZ SCZ SCZ SCZ
Tập các khóa K=CS và K=SZ
Chương 4: Chuẩn hóa dữ liệu
Chuẩn hóa là gì?
Các dạng chuẩn - Normal Form
Dạng chuẩn 1NF
Dạng chuẩn 2NF
Dạng chuẩn 3NF
Dạng chuẩn BCNF
4.1 Chuẩn hóa là gì?
Mục đích:
Tăng cường tính tổ chức cho cơ sở dữ liệu
Loại bỏ những dữ liệu dư thừa
Duy trì tính toàn vẹn dữ liệu cho CSDL
Quản lý và bảo mật dễ dàng hơn
4.4 Dạng chuẩn 1NF
Định nghĩa: Một lược đồ quan hệ được
gọi là thuộc 1NF, nếu miền giá trị của
các thuộc tính trong R chỉ chứa những
giá trị nguyên tố.
Qui ước: tất cả các lược đồ quan hệ
đều thuộc 1NF.
4.4 Dạng chuẩn 1NF
TENPB MAPB TRPH TRUSO
Nghiên cứu 5 334455 TÂN BÌNH,
THỦ ĐỨC
Hành chính 4 945857 GÒ VẤP
TENPB MAPB TRPH TRUSO
Nghiên cứu 5 334455 TÂN BÌNH
Hành chính 4 945857 GÒ VẤP
Nghiên cứu 5 334455 THỦ ĐỨC
Không
1NF
1NF
4.4 Dạng chuẩn 2NF
Định nghĩa 1: (thuộc tính khóa)
Cho R=. Khi đó, thuộc tính A được gọi là
thuộc tính khóa nếu A thuộc một khóa K nào
đó của R.
Ví dụ: R=, với U=ABCD
F={ABC,CD}
K={AB}R có hai thuộc tính khóa: A và B
Và R có hai thuộc tính không khóa C và D.
4.4 Dạng chuẩn 2NF
Định nghĩa 2: (phụ thuộc hàm đầy đủ)
Cho R=. Khi đó XYF được gọi là
một phụ thuộc hàm đầy đủ (đọc Y phụ
thuộc hàm đầy đủ vào X) nếu:
!Z X sao cho ZY F+
Nhận xét: nếu XUF+ là một phụ thuộc
hàm đầy đủ khi X là khóa của R.
4.4 Dạng chuẩn 2NF
Định nghĩa:
Cho R=. Khi đó, R được gọi là
thuộc 2NF (ký hiệu: R2NF) nếu với
mọi thuộc tính không khóa A là phụ
thuộc hàm đầy đủ vào mọi khóa của R.
4.4 Dạng chuẩn 2NF
Nhận xét:
Nếu mọi khóa của lược đồ quan hệ R
chỉ có một thuộc tính thì R thuộc 2NF.
Ta có thể chứng minh rằng:
R2NFXA F+, với XK (K là
khóa của R) thì:
Hoặc A là thuộc tính khóa
Hoặc AX (XA là phụ thuộc hàm tầm
thường)
4.4. Thuật toán kiểm tra 2NF
Vào: lược đồ R, phụ thuộc hàm F
Ra: khẳng định có phải là 2NF hay
không?
Bước 1: Tìm tất cả các khóa của R
Bước 2: Với mỗi khóa K, tìm bao đóng
của tất 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ì R không đạt chuẩn 2
ngược lại thì R đạt chuẩn 2.
4.4. Ví dụ
Cho lược đồ quan hệ: R(A,B,C,D)
F={ABC;BD;BCA} Hỏi R có đạt
chuẩn 2 hay không?
Áp dụng thuật toán tìm khóa nâng cao
(trang 58)
Được 2 khóa: K1=AB, K2=BC.
BK1, BD, 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 R không đạt
chuẩn 2.
Ví dụ
Cho lược đồ quan hệ Q(A,B,C,D,E,H)
F={A → E; C → D; E → DH}. 2NF?
TN={ACB} TG={E}
Tìm khoá, có K={ACB}
C⊂K, C→D, D là thuộc tính không
khoá⇒ D phụ thuộc không đầy đủ vào
khoá nên Q không đạt chuẩn 2.
4.4. Dạng chuẩn 3NF
Định nghĩa:
Cho R=. Khi đó R được gọi là thuộc
3NF (ký hiệu: R3NF) nếu XAF với
AX thì:
+ Hoặc X là siêu khóa
+ Hoặc A là thuộc tính khóa
Từ định nghĩa : R3NF XAF với
AX sao cho:
+ X không là siêu khóa
+ A là thuộc tính không khóa
4.4. Dạng chuẩn 3NF
NKBH =, với U= {STT,NGAY,MH,TH,ĐG,SL}
F={STTU, MHTH, MHĐG}
NKBH 2NF (do lược đồ có một khóa duy nhất là
STT chỉ có một thuộc tính)
Vẫn còn tồn tại dư thừa dữ liệu.
Phân tách thành 2 lược đồ con:
HANG= với U1={MH,TH,ĐG}, F1={MHU1}
NK= với U2={STT,NGAY,MH,SL} và
F2={STTU2}
4.4. Dạng chuẩn 3NF
Ta chứng minh:
NKBH3NF
HANG,NK 3NF
Ta thấy rằng: NKBH có K = {STT}
Và có MH TH F nhưng:
+ MH không là siêu khóa
+ TH không là thuộc tính khóa
Ngoài ra ta có thể thấy được: HANG,NK3NF
4.4. Thuật toán kiểm tra dạng chuẩn
3NF
Vào: lược đồ quan hệ, tập phụ thuộc hàm
Ra: Khẳng định R đạt chuẩn 3 hay không?
Bước 1: Tìm tất cả các khóa của R
Bước 2: Từ F tạo ra tập phụ thuộc hàm
tương đương F1tt có vế phải 1 thuộc tính.
Bước 3: nếu mọi phụ thuộc hàm XAF1tt
với AX đều có X là siêu khóa hoặc A là
thuộc tính khóa thì R đạt chuẩn 3 và ngược
lại là R không đạt chuẩn 3.
Ví dụ xác định chuẩn 3
Cho R(A,B,C,D), F={ABC;DB;CABD};
Hỏi R có đạt chuẩn 3 hay không?
TÌM KHÓA LÀ KHÂU CHỦ YẾU ĐỂ XÁC ĐỊNH
THUỘC DẠNG CHUẨN NÀO ĐÓ HAY
KHÔNG?
SAU ĐÓ DỰA VÀO ĐỊNH NGHĨA CỦA CÁC
DẠNG CHUẨN ĐỂ XÁC ĐỊNH, VIỆC NÀY
ĐƯỢC THỰC HIỆN CHỦ YẾU LIÊN QUAN
ĐẾN CÁC KHÓA.
R(A,B,C,D), F={ABC;DB;CABD};
Xi (TNXi) (TNXi)+ Siêu khóa Khóa
TN=, TG={ABCD}
A A A
B B B
AB AB ABCD AB AB
C C ABCD C C
AC AC ABCD AC
BC BC ABCD BC
ABC ABC ABCD ABC
R(A,B,C,D), F={ABC;DB;CABD}
D D BD
AD AD ABCD AD AD
BD BD BD
ABD ABD ABCD ABD
Xi (TNXi) (TNXi)+ Siêu khóa Khóa
CD CD ABCD CD
ACD ACD ABCD ACD
BCD BCD ABCD BCD
ABCD ABCD ABCD ABCD
Tìm tất cả các khóa
Như vậy ta được 3 khóa:
K1={AB}, K2={C}, K3={AD}
Mà các phụ thuộc hàm XA
(={ABC;DB;CABD})trong F đều
có A là thuộc tính khóa. Vậy R đạt
chuẩn 3.
4.4. Dạng chuẩn BCNF (Boyce-Codd-NF)
Định nghĩa: (BCNF)
Cho R=. Khi đó:
RBCNFXA F+ với AX thì: X là
siêu khóa.
4.4. Thuật toán kiểm tra BCNF
Vào : R và tập phụ thuộc hàm
Ra: khẳng định có phải BCNF hay không?
Bước 1: Tìm tất cả các khóa của R
Bước 2: Từ F tạo ra tập phụ thuộc hàm
tương đương F1tt có vế phải 1 thuộc tính.
Bước 3: Nếu mọi phụ thuộc hàm XA F1tt
với AX đều có X là siêu khóa thì R đạt
chuẩn BC ngược lại R không đạt chuẩn BC.
Ví dụ kiểm tra thuộc BCNF
R(A,B,C,D,E,I) F={ACDBEI,CEAD}
R có thuộc dạng chuẩn BCNF hay không?
TN={C},TG={ADE}
Xi (TNXi) (TNXi)+ Siêu khóa Khóa
C C
A AC AC
D CD CD
AD ACD ABCDEI ACD ACD
E CE ABCDEI CE CE
Kiểm tra thuộc chuẩn BCNF
Xi (TNXi) (TNXi)+ Siêu khóa Khóa
AE ACE ACBDEI ACE
DE CDE ACBDEI CDE
ADE CADE ACBDEI ACDE
F={ACDBEI,CEAD}
F={ACDB, ACDE, ACDI, CEA, CED}
Mọi phụ thuộc hàm đều có vế trái là siêu khóa nên
đạt chuẩn BC.
Các ví dụ bổ sung
Q(SV,MH,THAY),
F={SV,MHTHAY;THAYMH}
chuẩn 3
Q(ABCD),F={ABC,DB,CABD}3
4.4. Thuật toán kiểm tra dạng
chuẩn của lược đồ quan hệ
Vào: lược đồ quan hệ R và tập phụ thuộc hàm
Ra: Khẳng định R đạt chuẩn gì?
Bước 1: Tìm tất cả các khóa của R
Bước 2:Kiểm tra chuẩn BC nếu đúng thì đạt
chuẩn BC nếu không thì chuyển sang bước
3
Bước 3: Kiểm tra chuẩn 3 nếu đúng thì R đạt
chuẩn 3 nếu không thì chuyển sang bước 4
Bước 4: Kiểm tra chuẩn 2 nếu không đạt thì R
đạt chuẩn 1.
XIN CHÂN THÀNH CẢM ƠN
Lý thuyết phân tách
Kiểm tra phép tách thành 2 lược đồ
bảo toàn thông tin.
Kiểm tra một phép tách bảo toàn
thông tin.
Phân tách lược đồ quan hệ để thuộc
một chuẩn nào đó.
Ngoài ra, trong một số trường hợp,
người ta yêu cầu phép tách phải bảo
toàn phụ thuộc hàm.
Phép tách
Định nghĩa: Cho lược đồ quan hệ
R=, các lược đồ con
R1=,
R2=,...,Rn= là các
lược đồ con.
Phép tách bảo toàn thông tin
Phép tách kết nối bảo toàn thông tin:
Cho lược đồ quan hệ R: R(TENNCC, DIACHI,
SANPHAM, DONGIA).
R1 là một quan hệ có được bằng cách chiếu
lên quan hệ R. R1(TENNCC, SANPHAM,
DONGIA)
R2 là một quan hệ có được bằng cách chiếu
lên quan hệ R. R2(TENNCC, DIACHI)
R’ là một quan hệ có được bằng phép nối tự
nhiên giữa hai quan hệ R1 và R2 qua
TENNCC.
Lý thuyết phân tách
TENNCC DIACHI
Hùng 12 Nguyễn Kiệm
Hùng 40 Nguyễn Oanh
TENNCC DIACHI SANPHAM DONGIA
Hùng 12 Nguyễn Kiệm Gạch ống 200
Hùng 12 Nguyễn Kiệm Gạch thẻ 250
Hùng 40 Nguyễn Oanh Gạch ống 200
R1
Lý thuyết phân tách
TENNCC SANPHAM DONGIA
Hùng Gạch ống 200
Hùng Gạch thẻ 250
Thực hiện phép nối tự nhiên giữa hai bảng R’= R1 nối R2
R2
TENNCC DIACHI SANPHAM
Hùng 12 Nguyễn Kiệm Gạch ống
Hùng 12 Nguyễn Kiệm Gạch thẻ
Hùng 40 Nguyễn Oanh Gạch ống
Hùng 40 Nguyễn Oanh Gạch thẻ
Lý thuyết phân tách
Ta thấy R R’ với kết quả trên ta nói
phép tách R thành 2 lược đồ con R1
và R2 không bảo toàn thông tin.
Vậy với điều kiện nào thì phép tách
không mất thông tin?
Định nghĩa
R được gọi là lược đồ quan hệ, R1,R2
là lược đồ con có:
R1R2 = X
R1R2 = R
Ta nói rằng lược đồ quan hệ R được tách
thành 2 lược đồ con theo phép tách
(R1,R2) là phép tách bảo toàn thông
tin nếu r là quan hệ bất kỳ của R ta
đều có:
r = r.R1 |><| r.R2
Tính chất
Nếu R là một lược đồ quan hệ, R1,R2
là 2 lược đồ con có:
R1R2 = X
R1R2 = R
XR2
Thì R= R.R1 nối R.R2
(bảo toàn thông tin)
Ví dụ
Cho R(SAIP), R1=SA, R2=SIP,
F={SA, SIP}. Việc tách R thành
R1 và R2 có gây mất mát thông tin
hay không?
Áp dụng tính chất trên ta có:
R1R2 = S
R1R2 = R
SSA
( phép tách là bảo toàn thông tin)
Phép tách R thành n lược đồ con
R là một lược đồ quan hệ, F là tập
phụ thuộc hàm, R được tách thành n
lược đồ con R1,R2,..,Rn theo từng
bước mà ở mỗi bước là một lược đồ
được tách thành 2 lược đồ con và
thỏa điều kiện của tính chất bảo toàn
thông tin.
Thuật toán kiểm tra phép tách
bảo toàn thông tin hay không?
Thuật toán:
Vào: R= với U= và
=(U1,U2,..,Uk)
Ra: Yes/No
Bước 1: Phần tử cột i dòng j là nếu AiUj
Phần tử cột i dòng j là bij nếu ngược lại
Thuật toán kiểm tra phép tách
bảo toàn thông tin hay không?
Bước 2: biến đổi bảng. Với mỗi phụ thuộc
hàm XY F ta thực hiện việc biến đổi.
Ứng với hai dòng (bộ) nào đó của bảng mà
giá trị bằng nhau trên X thì thực hiện quá
trình làm bằng trên Y.
Lặp lại bước 2: cho đến khi không có sự
thay đổi nào trên bảng.
Bước 3: Nếu tồn tại 1 dòng chỉ toàn các giá
trị ai bảo toàn thông tin. Ngược lại
không bảo toàn thông tin.
Thí dụ:
Cho R=, với U=ABCDE
F={AC,BC,CD,DEC,CEA} và
=(AD,AB,BE,CDE,AE)
Bước 1: lập bảng
Bước 2: biến đổi bảng
Bước 3: kết luận
Phân rã lược đồ quan hệ
Phân rã lược đồ quan hệ thành chuẩn
BCNF hay chuẩn 3 bảo toàn thông
tin?
Phân tách thành các lược đồ
con 3NF bảo toàn thông tin
Vào: R=
Ra: =(R1,R2,...,Rk) và bảo toàn thông tin.
Bước 1: Kiểm tra R có thuộc 3NF hay không?
Nếu thuộc thì dừng
Nếu không thì phân tách thành 2 lược đồ con
Bước 2: kiểm tra lần lượt các lược đồ con. Cho
đến khi nào tất cả đều thuộc 3NF lúc đó ta sẽ
có một cây nhị phân.
Kết luận: