Tải bản đầy đủ (.pdf) (28 trang)

Các dạng chuẩn dựa trên khóa chính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (7.79 MB, 28 trang )

Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 1Khoa CNTT
4.10– Các dạng chuẩn dựa trên khóa chính
Thủ tục chuẩn hoá cung cấp
• Một cơ cấu hình thức để phân tích các lược đồ quan hệ
dựa trên khoá và các phụ thuộc hàm.
• Một loạt các kiểm tra dạng chuẩn có thể thực hiện trên
các lược đồ quan hệ riêng rẽ sao cho cơ sở dữ liệu quan
hệ có thể được chuẩn hoá đến một mức cần thiết.
Chuẩn hóa cần đảm bảo tính chất:
• Nối không mất mát (hoặc nối không phụ thêm- không
thêm bộ giả)
• Bảo toàn sự phụ thuộc
nó đảm bảo rằng từng phụ thuộc hàm sẽ được biểu hiện trong các
quan hệ riêng rẽ nhận được sau khi tách.
Các dạng chuẩn dựa trên
khóa chính
22:01 Khoa CNTT 2
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 3Khoa CNTT
a. Dạng chuẩn 1 (1NF)
Một quan hệ gọi là 1NF nếu
• Miền giá trị của mỗi thuộc tính chỉ chứa giá trị
nguyên tử (đơn, ko phân chia được)
• Giá trị của mỗi thuộc tính trong các bộ là một giá
trị đơn
Ví dụ:
SV_DIEM(Masv, Mamon, Diem)
SV(Masv, Hoten, Gioitinh,Ngaysinh, Noisinh)


Không thỏa mãn 1NF
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 4Khoa CNTT
a. Dạng chuẩn 1
Mada
TenDa
Manv
Sogio
CO1
Cấp
nước
001
002
20
35
DO2
Cung
cấp thiết bị điện
002
004
20
40
Ví dụ:
Không thỏa mãn 1NF
NV_DA(Mada,Tenda,Mavn,Sogio)
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 5Khoa CNTT
 Chuyển quan hệ không đạt chuẩn về dạng chuẩn 1

1. Thuộc tính phức hợp -> các thuộc tính đơn
a. Dạng chuẩn 1
2. Thuộc tính đa trị hoặc lặp ->tách quan hệ
SV(Masv, Hoten, Gioitinh,Ngaysinh, Noisinh)
SV(Masv, Ho, Dem, Ten, Gioitinh,Ngaysinh, Noisinh)
DONVI(Madv,Tendv, MaNQL, Diadiem)
DV (Madv,Tendv,MaNQL)
DV_DD(Madv,Diadiem)
Đa trị
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 6Khoa CNTT
a. Dạng chuẩn 1
Mada
TenDa
Manv
Sogio
CO1
Cấp
nước
001
002
20
35
DO2
Cung
cấp thiết bị điện
002
004
20

40
NV_DA(Mada,Tenda,Mavn,Sogio)
Mada
Tenda
CO1
Cấp
nước
Do2
Cung
cấp thiết bị điện
DA(Mada,Tenda)
NV_DA(Mada,Mavn,Sogio)
Mada
Manv
Sogio
CO1
001
20
CO1
002
35
DO2
002
20
DO2
004
40
Lặp
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ

22:00 7Khoa CNTT
b. Dạng chuẩn 2
 Phụ thuộc hàm đầy đủ: Một phụ thuộc hàm X  Y là
một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳ thuộc tính
A nào ra khỏi X thì phụ thuộc hàm không còn đúng nữa.
∀ A, A  X, (X – {A})  Y : là không đúng.
 Phụ thuộc hàm bộ phận: Một phụ thuộc hàm X  Y là
phụ thuộc hàm bộ phận nếu có thể bỏ một thuộc tính
A X, ra khỏi X phụ thuộc hàm vẫn đúng
∃A X, (X – {A})  Y
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 8Khoa CNTT
Sot
he
Masa
ch
Tennguo
imuon
Tens
ach
Ngay
muon
Ngayt
ra
MUONTRA
b. Dạng chuẩn 2
Sothe,Masach -> Ngaymuon
Sothe,Masach -> Tensach
Sothe,Masach -> Nguoimuon

Phụ thuộc đầy đủ
Phụ thuộc bộ phận
Phụ thuộc bộ phận
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 9Khoa CNTT
b. Dạng chuẩn 2
Định nghĩa: Một lược đồ quan hệ R ở dạng chuẩn 2 (2NF) nếu:
 R thỏa mãn chuẩn 1
 Mọi thuộc tính (không khóa) của R phụ thuộc hàm đầy đủ
vào khóa chính
o
Với các quan hệ có thuộc tính khóa đơn thì ko phải kt
o
Chỉ kiểm tra các lược đồ có chứa phụ thuộc hàm bộ phận
Hay: Mỗi thuộc tính không là thuộc tính khóa không phụ thuộc bộ
phận vào khóa của R
Kiểm tra lược đồ thỏa mãn dạng chuẩn 2 ?
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 10Khoa CNTT
Sot
he
Masa
ch
Tennguo
imuon
Tens
ach
Ngay

muon
Ngayt
ra
MUONTRA
b. Dạng chuẩn 2
Chuẩn hóa về dạng chuẩn 2
Sothe,MasachTennguoimuon
Sothe,MasachTensach
Sothe,MasachNgaymuon
Sothe,MasachNgaytra
SotheTennguoimuon
MasachTensach
Phụ thuộc bộ phận vào khóa
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 11Khoa CNTT
Sot
he
Masa
ch
Tennguo
imuon
Tens
ach
Ngay
muon
Ngayt
ra
MUONTRA
b. Dạng chuẩn 2

Chuẩn hóa về dạng chuẩn 2
Tách các thuộc tính không khóa phụ thuộc bộ phận vào khóa chính thành
quan hệ riêng; khóa của quan hệ mới là khóa bộ phận tương ứng
SACH(Masach,Tensach)
BANDOC(Sothe,Tennguoimuon)
MUONTRA(Sothe,Masach,Ngaymuon,Ngaytra)
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 12Khoa CNTT
b. Dạng chuẩn 2
Ví dụ1: Chuẩn hóa quan hệ R thành dạng chuẩn 2
R(A,B,C,D,E)
F ={ ABC, AB D, AB E, B  C, A  E}
R1 (A,E)
R2(B,C)
R(A,B,D)
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 13Khoa CNTT
b. Dạng chuẩn 2
Ví dụ 2: Chuẩn hóa quan hệ R thành dạng chuẩn 2
R(A,B,C,D,E,F,G,H)
F ={ ABC, AB D, AB E, ABF, ABG, ABH
B  C, A  E, BG}
R1 (A,E)
R2(B,C, G)
R(A,B,D,F,H)
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 14Khoa CNTT

b. Dạng chuẩn 2
Bài tập: Cho quan hệ
R(A,B,C,D,E,F,G,H,I,J) với tập phụ thuộc hàm
F={ AB->C, A->DE, B->F, F->GH,D->IJ}
Khóa của quan hệ R ?
Chuyển về dạng chuẩn 2?
AB
R1(ADEIJ)
R2(BFGH)
R(A,B,C)
F1 = {AD, AE, DI, DJ}
F2 = {BF,F G,F H }
F = {AB->C}
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 15Khoa CNTT
c. Dạng chuẩn 3
 Phụ thuộc bắc cầu:
Phụ thuộc hàm X Y được gọi bắc cầu nếu trong R có X Z
và Z Y; với Z là tập thuộc tính không thuộc khóa.
Ta nói Y phụ thuộc bắc cầu vào X
Ví dụ:
F = {AB  C, AB  D, D  F, E  F, D  E}
Phụ thuộc hàm bắc cầu:
D  F
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 16Khoa CNTT
c. Dạng chuẩn 3
Lược đồ R là dạng chuẩn 3 nếu:

• Thỏa mãn chuẩn 2
• Không có thuộc tính không khoá nào của R là phụ thuộc bắc
cầu vào khoá chính.
Tức là: mỗi phụ thuộc hàm X Y thì
• Hoặc X siêu khóa
• Hoặc Y là thuộc tính khóa.
Ví dụ: R(A,B,C,D,E,F)
với F1= {AB  C, AB  D, AB  E, AB  F, E  B}
S(A,B,C,D,E,F)
với F2= {AB  C, AB  D, AB E, E  D}
3NF
không thỏa3NF
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 17Khoa CNTT
c. Dạng chuẩn 3
Chuẩn hóa lược đồ R :
• Tách quan hệ mới gồm các thuộc tính phụ thuộc bắc cầu.
• Loại các thuộc tính phụ thuộc bắc cầu vào thuộc tính khóa
trong quan hệ ban đầu;
R(A,B, C, D, E, F, G)
AB: Khóa, các thuộc tính phụ
thuộc hàm vào AB
R1(D,F,G) R(A,B,C,D,E)
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 18Khoa CNTT
c. Dạng chuẩn 3
Ví dụ NV_DV(Manv, Hoten, Ngaysinh, Madv, Tendv, MaQl)
Với các phụ thuộc hàm

{ ManvHoten, ManvNgaysinh, ManvMadv,
ManvMaQl, ManvTendv,
MaDvTendv, MaDvMaQl }
Các thuộc tính phụ thuộc hàm Tendv, MaQl phụ thuộc bắc cầu vào
khóa chính
NV(Manv, Hoten, Ngaysinh, Madv)
DV(Madv, Tendv, MaQl)
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 19Khoa CNTT
Chuẩn hóa(1-3)
NF Nhận biết (chưa đạt chuẩn) Cách chuẩn hóa
1 Quan hệ có thuộc tính đa
trị /(quan hệ) lặp
Tách tất cả thuộc tính lặp
hoặc đa trị thành 1 quan hệ
mới
2 Có thuộc tí nh phụ thuộc 1
phần (bộ phận) vào thuộc
tính khóa
Tách thuộc tính phụ thuộc 1
phần thành lược đồ mới, đảm
bảo quan hệ với lược đồ liên
quan
3 Phụ thuộc bắc cầu, tồn tại
phụ thuộc hàm giữa các
thuộc tính ko phải là khóa
Tách các thuộc tính đó thành
lược đồ mới
Nhập môn Cơ sở Dữ liệu

Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 20Khoa CNTT
d. Dạng chuẩn Boyce-Codd (BCNF)
Một lược đồ quan hệ R được gọi là ở dạng chuẩn Boyce-Codd
(BCNF) nếu:
• Thỏa mãn dạng chuẩn 3NF
• Không có thuộc tính khóa phụ thuộc hàm vào thuộc tính không
khóa.
Sothe
Masach
Ngaymuon
Ngaytra
Ví dụ
NV(Manv, Hoten, Ngaysinh, Madv)
Với pth: {ManvHoten, ManvNgaysinh, ManvMadv}
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 21Khoa CNTT
d. Dạng chuẩn Boyce-Codd (BCNF)
Ví dụ:
Cho R (A,B,C,D,E)
Với các phụ thuộc hàm:
F={AB  C, AB  D, AB  E, D  B}
Chuẩn hóa lược đồ về dạng BCNF
không thỏa mãn BCNF
R1 (B,D)
R2 (A,D,C,E)
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 22Khoa CNTT

d. Dạng chuẩn Boyce-Codd (BCNF)
o b1: Tách các thuộc tính không khóa và thuộc tính
khóa phụ thuộc hàm vào thuộc tính không khóa thành
quan hệ mới, thuộc tính không khóa trở thành khóa
trong quan hệ mới.
o b2: Loại các thuộc tính khóa ở bước 1 khỏi lược đồ
gốc
o b3: Bổ sung thuộc tính không khóa xác định hàm
thuộc tính khóa đã loại bỏ (bước 2) vào khóa của
quan hệ gốc
Chuẩn hóa lược đồ về dạng BCNF
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 23Khoa CNTT
Các Dạng chuẩn
Cho quan hệ R(ABCDEFG) AB là khóa
F={AB  C, AB  D, AB  E, AB  F, AB  G, A E,
AF, AG, FG}
Bài tập ví dụ:
? R đạt chuẩn nào.
? Hãy chuẩn hóa từng bước để đạt chuẩn
cao hơn.
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 24Khoa CNTT
Các Dạng chuẩn
cho R(ABCDEFG); F={AB  C, AB  D, AB  E, AB  F,
AB  G, A E, AF, AG, FG,D B}
• 1NF ?
• 2NF ?

có phụ thuộc bộ phận vào khóa ?
R1(AEFG); F1={ A E, AF, AG, FG}
R2(ABCD); F2={AB  C, AB  D, D B}
R21(BD); F21={D B}
R2(ACD); F22={AD  C}
• 3NF ?
có phụ thuộc bắc cầu?
R1
R11(FG); F11={ FG}
R12(AEF); F12={A E, AF}
BCNF
• BCNF ?
có thuộc tính khóa phụ thuộc vào thuộc tính không khóa ?
Nhập môn Cơ sở Dữ liệu
Phụ thuộc hàm và chuẩn hóa CSDL quan hệ
22:00 25Khoa CNTT
Dạng chuẩn
Bài tập: Cho R(ABCDEFGHIJ)
F ={ ABC, BDEF, AD  GH, A I, H J}
Xác định khóa của R; Chuẩn hóa R về dạng chuẩn cao hơn
Khóa của R: ABD
2NF
R1(AI) ,F1 ={ A I}
R
2
(ABC),F
2
={ ABC} R
3
(BDEF),F

3
={ BDEF}
R
4
(ADGHJ),F
4
={ AD  GH, H J}
R
41
(HJ),F
41
={ H J} R
42
(ADGH),F
42
={ AD  GH}
3NF
có phụ thuộc bắc cầu
?
có phụ thuộc bộ phận
?

×