-Sự dư thừa – Một số nguyên tắc Lý do cần có phụ thuộc hàm NT1: Rõ ràng về mặt ngữ nghĩa, tránh các phụ thuộc giữa các thuộc tính với nhau NT2 T á h t ù lặ ề ội d đả bả NT2: Tránh
Trang 1C ở ở dữ dữ liệ liệ Cơ
Cơ sở sở dữ dữ liệu liệu
ễ Văn-Giang Nguyễn
ố
Bộ môn Hệ thống thông tin, Khoa Công nghệ thông tin, Học viện Kỹ thuật quân sự
Email: giangnv@mta.edu.vn
Slides courtesy of : Đỗ Thị Mai Hường, HTTT, CNTT, HVKTQS
Trang 2Nội dung môn học
Chương 2: Mô hình liên kết thực thể (5)
Chương 3: Mô hình dữ liệu quan hệ (10)
Chương 3: Mô hình dữ liệu quan hệ (10)
Chương 4: Phụ thuộc hàm và các dạng chuẩn CSDL (15
Chương 5: Hệ quản trị SQL Server (10)
Chương 6: Ngôn ngữ truy vấn CSDL (15)
Chương 7: Lập trình T-SQL (15)
2
Trang 3Hệ suy diễn Amstrong
Thuật toán tìm bao đóngậ g
Thuật toán tìm khóa
Các dạng chuẩn
Các dạng chuẩn
Chuẩn hóa quan hệ
Tách kết nối không mất thông tin
3
Trang 4-Giới hạn của lược đồ ER
Cung cấp một tập các hướng dẫn không đưa
tới một lược đồ CSDL duy nhất
Không đưa ra cách đánh giá giữa các lược đồ
khác nhau
Lý thuyết về chuẩn hóa CSDL quan hệ cung cấp
kỹ thuật để phân tích và chuyển hóa từ lược đồ
ER sang lược đồ quan hệ
4
Trang 5-Sự dư thừa
Sự phụ thuộc giữa các thuộc tính gây ra sự dư thừa
Ví dụ: Điểm các môn học Điểm TB Xếp loại
TENPHG MAPHG TRPHG NG_NHAMCHUC MANV TENNV HONV
Nghiên cứu 5 123456789 01/02/2012 123456789 Tùng Nguyễn
Điều hành 4 333444555 01/01/2010 333444555 Hưng Nguyễn
Quản lý 1 999888777 01/06/2012 999888777 Vĩnh Phạm
5
Trang 6-Sự dư thừa
Thuộc tính đa trị trong lược đồ ER Nhiều bộ số
liệu trong lược đồ quan hệ
Ví dụ
NHANVIEN(TENNV, HONV, NS, DCHI, GT,(
LUONG, BANGCAP)
TENNV HONV NS DIACHI GT LUONG BANGCAP
Tùng Nguyễn 12/08/1955 638 HQV CG Nam 6000 Trung cấp
Tùng Nguyễn 12/08/1955 638 HQV CG Nam 6000 Trung cấp
Chuyên Bùi 07/04/1970 255 XT CG Nữ 5500 Đại học
Dũng Hoàng 09/05/1965 51 NTH BĐ Nam 6000 Cao đẳng
Dũng Hoàng 09/05/1965 51 NTH BĐ Nam 6000 Đại học
6
Trang 7-Sự dư thừa
Dư thừa Dị thường
- Thao tác sửa đổi: cập nhật tất cả các giá trịliê
liên quan
- Thao tác xóa: người cuối cùng của đơn vị mất thông tin về đơn vị
- Thao tác chèn
TENPHG MAPHG TRPHG NG_NHAMCHUC MANV TENNV HONV
Nghiên cứu 5 123456789 01/02/2012 123456789 Tùng Nguyễn
Điều hành 4 333444555 01/01/2010 333444555 Hưng Nguyễn
Quản lý 1 999888777 01/06/2012 999888777 Vĩnh Phạm
7
Trang 9-Sự dư thừa – Một số nguyên tắc
( Lý do cần có phụ thuộc hàm )
NT1: Rõ ràng về mặt ngữ nghĩa, tránh các phụ
thuộc giữa các thuộc tính với nhau
NT2 T á h t ù lặ ề ội d đả bả
NT2: Tránh sự trùng lặp về nội dung đảm bảo
tránh được các dị thường khi thao tác cập nhật
dữ liệu
- Phải có một số thao tác khi thêm mới và cập nhật vào
lược đồ quan hệ, cũng như có thể gây sai hỏng trong trường hợp xóa bỏ các bộ
NT3: Tránh đặt các thuộc tính có nhiều giá trị null
NT4: Thiết kế các lược đồ quan hệ sao cho
chúng có thể được nối với điều kiện bằng trên
các thuộc tính là khóa chính hoặc khóa ngoài
theo cách đảm bảo không sinh ra các bộ giả
theo cách đảm bảo không sinh ra các bộ giả
- Gây lỗi khi thực hiện các phép kết nối
9
Trang 10-Phụ thuộc hàm
Lý thuyết về chuẩn hóa
- Các phân tích để đưa ra lược đồ thực thể liên
kết ầ hải đ ử hữ ở á b ớ tiế
kết cần phải được sửa chữa ở các bước tiếptheo
- Vấn đề nêu ở slide trên sẽ được giải quyếtVấn đề nêu ở slide trên sẽ được giải quyết
nếu có một phương pháp phân tích tích hợp
Lý thuyết chuẩn hóa (dựa trên phụ thuộc
hà ) ẽ là ề tả ở để th hiệ iệ
hàm) sẽ là nền tảng cơ sở để thực hiện việcphân tích và chuẩn hóa lược đồ ER
10
Trang 11-Phụ thuộc hàm (định nghĩa không chính thức)
Trang 12Phụ thuộc hàm trong quan hệ r
Cho l ợc đồ q an hệ R à X Y là các tập con
Cho lược đồ quan hệ R và X, Y là các tập con
của R r là một quan hệ trên R
Ta nói X xác định phụ thuộc hàm Y, ký hiệu XYị p ụ ộ , ý ệ
trong r nếu với mọi t và t’ của r mà t,t’ bằng nhau
trên tập X thì chúng cũng bằng nhau trên tập Y,
Trang 13-Ph th ộc hàm trên r là tr ờng hợp riêng của
Phụ thuộc hàm trong quan hệ r
Phụ thuộc hàm trên r là trường hợp riêng củaphụ thuộc hàm trên R
Phụ thuộc hàm trên r là một khái niệm hẹp,ụ ộ ộ ệ ẹp, nónó chỉchỉđúng
đúng chocho mộtmột quanquan hệhệ,
Trong một số trường hợp chỉ cần thay đổi một vài
iá t ị ủ á th ộ tí h t hệ hgiá trị của các thuộc tính trong quan hệ, phụthuộc hàm không còn đúng
Trang 14Ví dụ phụ thuộc hàm
Trang 15Phụ thuộc hàm trong quan hệ r
Ví dụ:Trong lược đồ quan hệ sau, nếu chúng ta
giả thiết rằng trong lớp các tên nhập vào là không
iố h thì lú đó th ộ tí h H t ké th
giống nhau thì lúc đó thuộc tính Hoten kéo theo
tất cả các thuộc tính khác nhưng nếu có sự thay
đổi thì thuộc tính đó có thể không còn đúng
Hoten Ngaysinh Lop
Hùng 01/05/1993 TH10A Hùng 01/05/1993 TH10A Minh 04/02/1993 TH10A Trang 20/09/1993 TH10B
Trang 21/01/1993 TH10A
15
Trang 16-Phụ thuộc hàm trên lược đồ QH R
Cho lược đồ quan hệ R và X,Y là các tập con của
R Ta nói X xác định phụ thuộc hàm Y, ký hiệu
X Y t ê l đồ hệ R Nế ới i t ê
X Y trên lược đồ quan hệ R Nếu với mọi r trên
R xác định XY
16
Trang 17-Các tính chất của phụ thuộc hàm
A1-Tính phản xạ
X X, hay tổng quát hơn nếu thì XY
A2 Tí h ở ô h i ế Y ⊂ X
A2- Tính mở rông hai vế
XY thì XZYZ (mở rộng hai vế Z)
Trang 18với Y ⊂ X Vì vậy XY
18
Trang 19-Các tính chất của phụ thuộc hàm (CM)
A2 Tí h ở ô h i ế
A2- Tính mở rông hai vế
XY thì XZYZ (mở rộng hai vế Z)
Trang 21-Hệ tiên đề Armstrong
• Hệ A bao gồm các tính chất {A1,A2,A3} của phụ
thuộc hàm được gọi là hệ tiên đề Armstrong của
lớ á h th ộ hà
lớp các phụ thuộc hàm
• Các tính chất còn lại ({A4,A5,A6,A7}) đều được
suy ra từ hệ tiên đề Armstrong
Chứng minh: A4-Tính tựa bắc cầu
Trang 22-Hệ tiên đề Armstrong
Ngoài ra có tính chất sau hay được dùng
Tí h hất hiế XYZ thì XY à XZ
Tính chất chiếu: XYZ thì XY và XZ
Trang 23-Hệ tiên đề Armstrong
Phép suy dẫn theo hệ tiên đề Armstrong
Phụ thuộc hàm f được suy dẫn theo hệ tiên
đề A t là f ó thể hậ đ từ F
đề Armstrong là f có thể nhận được từ F saumột số hữu hạn bước áp dụng các luật củatiên đề Armstrong Ký hiệu F|=f
Phép suy dẫn theo quan hệ
Phụ thuộc hàm f suy dẫn được từ tập PTH Ftheo quan hệ (hoặc PTH f được suy dẫn theoquan hệ từ tập PTH F) ký hiệu F|-f nếu với mọi
hệ ê l đồ R à F hỏ hì f
quan hệ r trên lược đồ R mà F thỏa mãn thì fcũng thỏa mãn
23
Trang 26của F và ta phải chứng minh R thỏa mãn
Ta lấy thực thể bất kỳ t, t’ của R mà t[X]=t’[X], ta phải
chứng tỏ t[Y]=t’[Y] do nên t[Y]=t’[Y] (đpcm)
Trang 28-Hệ tiên đề Armstrong
Ta thấy R thỏa mãn tất cả các phụ thuộc hàm của
F Vì lấy một fd PQ của F thì R phải thỏa PQ
thuộc F nên hay t[Q] t [Q]
• Vậy, trong mọi trường hợp R thỏa các phụ thuộc hàm của F.
• Do giả thiết mà R thỏa tất cả các fds
Trang 30-Thuật toán tím bao đóng của tập PTH
“Áp dụng hệ tiên đề Armstrong cho đến khi không
tìm ra thêm phụ thuộc hàm mới”p
30
Trang 31-A1-Tính phản xạ
X X, hay tổng quát hơn nếu thì XY
A2 Tí h ở ô h i ế Y ⊂ X
A2- Tính mở rông hai vế
XY thì XZYZ (mở rộng hai vế Z)
Trang 32Ví dụ
and…?
32
Trang 33-Bao đóng X+ của tập thuộc tính
Định nghĩa:
Cho lược đồ quan hệ R={A1,…,An} Giả sử F là
tậ PTH t ê R X là tậ ủ tậ th ộ tí h R
tập PTH trên R X là tập con của tập thuộc tính R
Bao đóng X đối với F, ký hiệu X+(X+
F để chỉ baođóng lấy theo tập F) là tập thuộc tính A của R mà
XA được suy dẫn từ tập F
Trang 34Bao đóng X+ của tập thuộc tính
Trang 35Ví dụ bao đóng của tập thuộc tính
Trang 37Thuật toán tìm bao đóng X+
Bài toán thành viên:
Vấn đề được đưa ra ở đây là: Cho trước một tập
PTH F ó h khô ột khẳ đị h f F+
PTH F có hay không một khẳng định
Để giải quyết bài toán này người ta sử dụng tính
chất 6 của tập bao đóng hay bổ đề 2.1:
f ∈ F+
chất 6 của tập bao đóng hay bổ đề 2.1:
Do vậy, chỉ cần tìm được X+ ta sẽ giải quyết được
bài t á XY ó th ộ F+
X → ∈ Y F+ ⇔ ⊂ Y X +
bài toán XY có thuộc F+
37
Trang 38-Thuật toán tìm bao đóng X+
Thuật toán tìm bao đóng X+
Thuật toán của Beeri và Bernstein
Ch R {A1 A } F là tậ PTH t ê R X là tậ
Cho R={A1,…,An} F là tập PTH trên R X là tập
thuộc tính
Ta xây dựng tập X0,…,Xk như sau:
Ta xây dựng tập X ,…,X như sau:
Trang 39-Thuật toán tìm bao đóng X+
Input: Lược đồ quan hệ R
Trang 40Ví dụ
R={A,B,C,D,E,G}
Cho tập PTH
F {ABC CA BCD ACDB DEG
F={ABC, CA, BCD, ACDB, DEG,
BEC, CGDB, CEAG}
{ , } { , }, { , }( )
Trang 41Chứng minh tính đúng đắn của t toán
Trang 42-Tại sao tìm bao đóng
Chứng minh sự đúng đắn của các quy tắc sửdụng trong suy diễn phụ thuộc hàm
Kiể t ột PTH hà ới đ diễ
Kiểm tra xem một PTH hàm mới được suy diễn
từ một tập của PTH S
Tìm khóa
Tìm khóa
Trang 43Bao đóng PTH VS bao đóng thuộc tính
Trang 44Bài tập về phụ thuộc hàm và bao đóng
1 Cho lược đồ quan hệ <R,F>
R= {A, B, C, D, E, I} và
F {BCDE BEC BIA CEI}
F = {BCDE, BEC, BIA, CEI}
Trang 45Bài tập về phụ thuộc hàm và bao đóng
3 Cho F={ABC, BD, CDE, CEGH, GA}
Trang 46Trong các PTH sau, PTH nào không thỏa mãn r
AB, AC, BA, CD, DC, DA
46
Trang 48-Do đâu có phụ thuộc hàm?
“Tính khóa (duy nhất)” của các thuộc tính
Các ràng buộc trên miền giá trị và ràng buộc ứng
Các ràng buộc trên miền giá trị và ràng buộc ứng
dụng
ế
Các ràng buộc của thế giới thực
Phụ thuộc hàm giúp chúng ta định nghĩa “khóa”
48
Trang 49-Khóa của sơ đồ quan hệ
Trong lược đồ quan hệ, một số thuộc tính đóng
vai trò quan trọng, và từ các thuộc tính này có thể
á đị h á th ộ tí h khá
xác định các thuộc tính khác
Khái niệm sơ đồ quan hệệ q ệ
Cho lược đồ quan hệ R={A1,A2,…,An}, F là tập
các phụ thuộc hàm trên R Sơ đồ quan hệ là cặp
R F h t ê ký hiệ SĐQH là W <R F>
R, F như trên, ký hiệu SĐQH là W=<R,F>
Sơ đồ quan hệ là một lược đồ quan hệ và tậpq ệ ộ ợ q ệ ập
phụ thuộc hàm trên nó
49
Trang 50-Định nghĩa khóa SĐQH
được gọi là khóa tối thiểu của SĐQH trên W
nếu k là tập tối thiểu kéo theo R, tức là k là khóa tối
thiể ế à ế bớt khỏi k dù ột
k ⊂ R
k+ R k R
thiểu nếu: và nếu bớt khỏi k dù một
phần tử thì bao đóng của tập còn lại khác R
khóa, những thuộc tính không thuộc khóa gọi là
thuộc tính không khóa (thuộc tính thứ cấp)
50
-X là siêu khóa nếu X thỏa mãn điều kiện 1
Trang 51Định lý 2.4
a Nếu k là khóa của sơ đồ quan hệ W = <R,F>, r làquan hệ trên R thì với mọi cặp phần tử khác nhaut1 t2 ủ t l ô ó t k t k ≠
t1, t2 của r ta luôn có
b Ngược lại nếu k là tập tối thiểu và với mọi quan hệ r
1. 2.
t k t k ≠
b Ngược lại nếu k là tập tối thiểu và với mọi quan hệ r
trên R mà mọi cặp t 1 , t 2 của r mà thì k làkhóa của sơ đồ quan hệ W=<R,F> 1 2
.
t k t k ≠
51
Trang 52-Thuật toán tìm khóa
Do bao đóng của k là R nên ban đầu ta coi k=R
Ta loại trừ dần các phần tử và kiểm tra xem k+=R
Ta loại trừ dần các phần tử và kiểm tra xem k+=R
Bước 2: Lặp quá trình loại khỏi k phần tử A
Bước 2: Lặp quá trình loại khỏi k phần tử A
mà (k-A)+=R
52
Trang 53-Thuật toán tìm khóa
Mô tả thuật toán bằng ngôn ngữ tựa Pascal
Begin
k=Rfor each A in k do
if (k-A)+=R then k=k-AEnd
Thuật toán sẽ tìm được một khóa k cho R
Nếu muốn tìm được khóa khác, ta có thể thay
đổi thứ tự loại trừ các phần tử A ra khỏi k
53
-đổi thứ tự loại trừ các phần tử A ra khỏi k
Trang 54Các tính chất của khóa
1 Các thuộc tính không xuất hiện trong cả hai vế
trái hoặc phải của tập F phải có trong mọi khóa k
2 Cá th ộ tí h hỉ ất hiệ bê t ái ủ á PTH
2 Các thuộc tính chỉ xuất hiện bên trái của các PTH
trong F cũng phải thuộc mọi khóa k
3 Những thuộc tính xuất hiện, và chỉ xuất hiện bên
vế phải của tập PTH sẽ không thuộc bất kỳ khóanào
4 Th ật t á khẳ đị h i SĐQH W đề ó
4 Thuật toán khẳng định mọi SĐQH W đều có
khóa, tuy nhiên thuật toán không khẳng định cóbao nhiêu khóa và số lược các phần tử trongkhóa có như nhau hay không
5 Họ tất cả các khóa của một SĐQH W là hệ
Sperner (tức là không có hai khóa bao nhau)
54
Trang 55-Thuật toán tìm mọi khóa
Ý tưởng
Cho W=<R F>
1 Tìm tất cả các tập con khác rỗng của R
2 Loại tập con có bao đóng khác R
3 Tạo tập con bao tập con khácạ ập ập
4 Những tập còn lại là khóa của W
55
Trang 56-Thuật toán tìm mọi khóa
Cho W=<R,F>
R={A,B,C}, F={AB, AC, BA, BC, ACB}
Bao đóng Tập con có
bao đóng bằng R
Trang 57-Thuật toán tìm mọi khóa
Một số cải tiến
*Theo tính chất của khóa, chúng ta sẽ có một số
thuộc tính luôn thuộc khóa Trong thuật toántìm khóa sẽ không xét nó và thêm vào khóa
* Một số thuộc tính không thuộc khóa nào cả Ta
loại bỏ nó trong quá trình tìm kiếm khóa
57
Trang 58-Thuật toán tìm mọi khóa
Cho W = <R,F>, R={A,B,C,D,E,H}
F = {AB, AC, BA, BC, ACB, EC,
CH BH}
• Chắc chắn D, E tham gia mọi khóa
• H sẽ không tham gia vào khóa nàoH sẽ không tham gia vào khóa nào
Thuật toán tìm khóa: sẽ không cố gắng loại trừ D,
E ra khỏi tập Tập khởi tạo ban đầu có thể là
K=R\{H}
Th ật t á tì i khó Thê ột ột ới l ô
Thuật toán tìm mọi khóa: Thêm một cột mới luôn
chứa D, E Trong các tập con của thuộc tính còn
lại không xem xét đến H
58
-ạ ô g e ét đế
Trang 59Thuật toán
Bao đóng Siêu khóa Khóa
Trang 60-Tìm khóa từ mô hình ER
Trang 63Bài tập
Các bài tập trong chương 2
63
Trang 64-Các dạng chuẩn
Mỗi dạng chuẩn là một tập các điều kiện trên
lược đồ nhằm đảm bảo các tính chất của nó (liên
tới d thừ à bất th ờ t ậ hật)quan tới dư thừa và bất thường trong cập nhật)
Chuẩn hóa dữ liệu: quá trình phân tích lược đồ
Chuẩn hóa dữ liệu: quá trình phân tích lược đồ
quan hệ dựa trên FD và các khóa chính để đạt
Trang 65-Các dạng chuẩn
Thủ tục chuẩn hóa cung cấp:
• Một cơ cấu hình thức để phân tích các lược
đồ hệ d t ê á khó ủ ó à á
đồ quan hệ dựa trên các khóa của nó và các
phụ thuộc hàm giữa các thuộc tính của nó
• Một loạt các kiểm tra dạng chuẩn có thể 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 CSDL có thể được chuẩn hóa đến
Trang 66Phân loại các dạng chuẩn
Codd đề nghị 3 dạng
• 1NF (first normal form): tương đương với định
hĩ ủ l đồ hệ ( hệ à bộ)
nghĩa của lược đồ quan hệ (quan hệ và bộ)
• 2NF: không có giá trị trong thực tiễn
• 3NFBCNF: thường được sử dụng nhiều3NFBCNF: thường được sử dụng nhiều
nhất (BCNF do Boyce và Codd đề xuất)
4NF, 5NF do tính đa trị và phụ thuộc hàm nối
66
Trang 67-Dạng chuẩn 1
Định nghĩa: 1NF nếu miền giá trị của một thuộc
tính chỉ chứa giá trị nguyên tử (đơn, không phân
hi đ ) à iá t ị ủ ỗi th ộ tí h ũ là
chia được) và giá trị của mỗi thuộc tính cũng là
một giá trị đơn lấy từ miền giá trị của nó
Trong 1NF
• Không có thuộc tính lặp lại
Không có th ộc tính đa trị
• Không có thuộc tính đa trị
Ví dụ: PHONGBAN(MaPHG, TenPHG, DDIEM) Không phải 1NF
PHONGBAN(M PHG T PHD) DDIEM PHG(M PHG DDIEM )
67
-PHONGBAN(MaPHG, TenPHD) DDIEM_PHG(MaPHG, DDIEM )
Là 1NF
Trang 70Dạng chuẩn 2
Phụ thuộc hàm đầy đủ: Một phụ thuộc hàm XY
là một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳ
XY là phụ thuộc hàm bộ phận nếu có thể bỏ
một thuộc tính ra khỏi X phụ thuộc hàm
Trang 71-Dạng chuẩn 2
2NF
• Thỏa mãn 1NF
Ph th ộ hà đầ đủ à khó hí h
• Phụ thuộc hàm đầy đủ vào khóa chính
Với các quan hệ có thuộc tính khóa đơn thì
Trang 72-Ví dụ Dạng chuẩn 2
Phụ thuộc vào cả 2 MaNV, MaDA
NV_DA (MaNV, MaDA, Sogio, TenDA, DDiemDA)
Chỉ phụ thuộc vào MaDA
72
Trang 73-Ví dụ Dạng chuẩn 2
Phụ thuộc vào cả 2 MaNV, MaDA
NV_DA (MaNV, MaDA, Sogio, TenDA, DDiemDA)
Chỉ phụ thuộc vào MaDA
NV_DA (MaNV, MaDA, Sogio)
73
-DUAN (MaDA, TenDA, DDiemDA)
Trang 75Dạng chuẩn 3
3NF dựa trên khái niệm phụ thuộc bắc cầu
Định nghĩa: Một lược đồ quan hệ R là ở dạng
3NF nếu nó thỏa mãn (theo Codd)( )
• Thỏa mãn 2NF
• Không có thuộc tính không khóa nào của R là
phụ thuộc bắc cầu vào khóa chínhphụ thuộc bắc cầu vào khóa chính
75
Trang 76-Dạng chuẩn 3
Ph th ộ à M NV Phụ thuộc vào MaNV
NV_DV (MaNV, TenNV, NS, DCHI, MaDV, TenDV, TruongPHG)
Phụ thuộc vào MaDV
Tất cả các thuộc tính phải phụ thuộc vào thuộc
tính khóa
Một ài th ộ tí h h th ộ à th ộ tí h
• Một vài thuộc tính phụ thuộc vào thuộc tính
không phải là khóa
• Để chuẩn hóa Tách nhóm các thuộc tính
76
-Để chuẩn hóa Tách nhóm các thuộc tính
đó thành quan hệ mới