Download - Ôn tập tuyển sinh cao học môn CSDL 2013
![Page 1: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/1.jpg)
1
Phần 1
Đại số quan hệ
TS. Nguyễn Đình Thuân
Khoa Hệ thống thông tin
Trường ĐH Công nghệ Thông tin
8/2013
![Page 2: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/2.jpg)
2
Giới thiệu
Đại số quan hệ – Là tập hợp các phép toán cơ sở của mô hình dữ liệu
quan hệ– Biểu thức đại số quan hệ là sự kết hợp của các toán
hạng và toán tử– Kết quả của một biểu thức đại số quan hệ là một thể
hiện của quan hệ
Ý nghĩa :– Là cơ sở hình thức cho các phép toán của mô hình QH– Là cơ sở để cài đặt và tối ưu hóa các truy vấn trong các
hệ QT CSDL
![Page 3: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/3.jpg)
3
Giới thiệuToán hạng – có thể là :
– Các thể hiện của quan hệ– Các tập hợp
Toán tử (phép toán) cơ bản bao gồm 8 phép toán :– Phép toán tập hợp
• Phép hợp, phép giao, phép hiệu, phép tích Descartes
– Phép toán quan hệ• Phép chọn, phép chiếu, phép chia, phép kết nối
Và một số phép khác:• Phép gán ()• Hàm tính toán và gom nhóm: avg(), min(), max(), sum(), count().
Khái niệm khả hợp: Hai lược đồ quan hệ R1 và R2 là khả hợp nếu cùng bậc n và DOM(Ai)=DOM(Bi) (1in)
![Page 4: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/4.jpg)
4
Phép hợp (Union)
Hợp của hai quan hệ r và s khả hợp là tập các bộ thuộc r hoặc s hoặc thuộc cả hai quan hệ
Kí hiệu : r s
Công thức :
r s = { t/ t r hoặc t s}
sr
![Page 5: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/5.jpg)
5
Phép hợp
Ví dụ :
r ( A B C) s ( A B C) r s = ( A B C) ___________ __________ ________________ a1 b1 c1 a1 b1 c1 a1 b1
c1 a2 b1 c2 a2 b2 c2 a2 b1
c2 a2 b2 c1 a2 b2
c2 a2 b2
c1
![Page 6: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/6.jpg)
6
Phép giao (Intersection)
Giao của hai quan hệ r và s khả hợp là tập các bộ thuộc cả hai quan hệ
Kí hiệu : r s
Công thức :
r s = { t/ t r và t s }
Ví dụ :
Với hai quan hệ ở ví dụ trước, giao của chúng là:
r s = ( A B C )
a1 b1 c1
sr
![Page 7: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/7.jpg)
7
Phép trừ (Minus)
Hiệu của hai quan hệ r và s khả hợp là tập các bộ thuộc r nhưng không thuộc s
Kí hiệu : r - s Công thức :
r - s = { t/ t r và t s }Ví dụ :
Với hai quan hệ ở ví dụ trước, giao của chúng là: r - s = ( A B C ) a2 b1 c2
a2 b2 c1
sr
![Page 8: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/8.jpg)
8
Phép tích Descartes (CartesianProduct)
r là quan hệ xác định trên tập thuộc tính {A1, A2, .., An}
s là quan hệ xác định trên tập thuộc tính {B1, B2,..,Bm}
Tích Descartes của r và s là tập ( n + m ) - bộ với n thành phần đầu là một bộ thuộc r và m thành phần sau là một bộ thuộc s
Kí hiệu: r x s
Công thức :
r x s = { t: t có dạng (a1, a2, .., an, b1, b2,..,bm) trong đó (a1, ..,an ) r và (b1,.. ,bm)
s }
![Page 9: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/9.jpg)
9
Phép tích Descartes
Ví dụ :r (A B C) s (D E) r s = p (A B C D E) a1 b1 1 1 e1 a1 b1 1 1 e1 a2 b2 2 2 e2 a1 b1 1 2 e2 a3 b3 3 a2 b2 2 1 e1
a2 b2 2 2 e2 a3 b3 3 1 e1 a3 b3 3 2 e2
![Page 10: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/10.jpg)
10
Phép chiếu (Projection)
Phép chiếu trên một quan hệ thực chất là loại bỏ đi một số thuộc tính và giữ lại những thuộc tính còn lại của quan hệ đó.
Công thức : < ds_thuộc tính>(< tên quan hệ >) <ds_thuộc tính>:dsách các thuộc tính được lấy
Kết quả của phép chiếu là tập các thuộc tính trong danh sách với cùng thứ tự.
Nếu <ds_thuộc tính> chỉ có những thuộc tính không khoá thì phép chiếu sẽ bỏ đi những bộ lặp.
Phép chiếu không có tính giao hoán.
<ds1>( <ds2>(R)) ≠ <ds2>( <ds1>(R))
![Page 11: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/11.jpg)
11
Phép chiếu (Projection)
Ví dụ : Cho quan hệ SV (Mã SV, Họ tên, Ngày sinh, Điểm)
Mã SV Điểm
001 8
002 9
003 7
004 10
Phép chiếu Mã Sv, Điểm (SV):
Mã SV Họ tên Ngày sinh Điểm
001 Trần Anh 23/4/86 8
002 Ngọc Bích 13/4/85 9
003 Xuân Mai 25/3/87 7
004 Hồng Vân 21/6/85 10
![Page 12: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/12.jpg)
12
Phép chọn(Selection)
Phép chọn dùng để trích chọn một tập con trong một quan hệ, các bộ được trích chọn phải thoả mãn điều kiện chọn.
Công thức : < điều kiện > (< Tên quan hệ >)
< Tên quan hệ >: chỉ quan hệ được chọn
Kết quả thu được là một quan hệ có danh sách thuộc tính được chỉ ra trong Tên quan hệ.
<Điều kiện> : là các biểu thức điều kiện cần thoả mãn. Các biểu thức này được nối với nhau bằng các phép: ( phủ định ), (và), (hoặc).
Phép chọn có tính giao hoán.
<đk1>(<đk2>(R)) = <đk2>(<đk1>(R))
![Page 13: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/13.jpg)
13
Phép chọn(Selection)
Ví dụ : Cho quan hệ SV(Mã SV,Họ tên,Ngày sinh,Điểm)
Mã SV Họ tên Ngày sinh Điểm
001 Trần Anh 23/4/86 8
002 Ngọc Bích 13/4/85 9
004 Hồng Vân 21/6/85 10
Điểm>7 (Year(Ngaysinh) >= 1985) (SV)
Mã SV Họ tên Ngày sinh Điểm
001 Trần Anh 23/4/86 8
(Điểm=8 )(SV)
![Page 14: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/14.jpg)
14
Phép kết nối (Join)
Phép ghép bộ: Giả sử cho hai bộ u = (a1,. . ., an) và v = (b1,. . ., bm). Phép ghép bộ u với bộ v, ký hiệu (u,v), được định nghĩa
(u,v) = (a1,. . ., an, b1,. . ., bm)Phép kết nối hai quan hệ thực chất là phép ghép các
cặp bộ của hai quan hệ thoả mãn một điều kiện nào đó trên chúng, điều kiện đó được gọi là điều kiện kết nối hay biểu thức kết nối.
Biểu thức kết nối được định nghĩa là phép hội của các toán hạng, mỗi toán hạng là một phép so sánh đơn giản giữa một thuộc tính của quan hệ r và một thuộc tính của quan hệ s
![Page 15: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/15.jpg)
15
Phép kết nối θ (Inner join, join)
Định nghĩa: Cho 2 quan hệ r(U) và s(V)
θ là một trong các phép toán số học: , , , , =, Phép kết nối giữa quan hệ r đối với thuộc tính A U và quan hệ s đối với thuộc tính B V, được ký hiệu r s
r s= {<u,v>| uU v V u[A] θ v[B] }
Phép kết nối chỉ thực hiện được khi θ thực hiện được giữa A và B.
Nếu không dựa trên phép so sánh θ thì r s là phép tích Descartes, nếu θ là phép so sánh “=“ thì gọi là phép kết nối bằng.
A θ B
A θ B
A θ B
![Page 16: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/16.jpg)
16
Phép kết nối(Join)
Ví dụ :
r ( A B C ) s( C D E ) r s = ( A B C C D E)
a1 1 1 1 d1 e1 a1 1 1 1 d1 e1
a2 2 1 2 d2 e2 a2 2 1 1 d1 e1
a1 2 2 3 d3 e3 a2 2 1 2 d2 e2 a1 2 2 1 d1 e1 a1 2 2 2 d2 e2
B≥ C
Kết nối tự nhiênr(ABC) * s(CDE) = ( A B C D E)
a1 1 1 d1 e1 a2 2 1 d1 e1 a1 2 2 d2 e2
![Page 17: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/17.jpg)
17
Phép kết nối tự nhiên (Natural-Join Operation)
Nếu kết nối θ dựa trên phép so sánh “=“ tại các thuộc tính cùng tên của 2 quan hệ R và S và một trong hai thuộc tính đó bị loại bỏ qua phép chiếu thì gọi là phép kết nối tự nhiên, ký hiệu *.
Ví dụ: Tìm tên các môn học có dạy trong học kỳ 2 10-11.
MAMH
TH409
TH364
TH324
A: mamh STT_KH = 2 NKHOA = ’10-11’(DAY)
MAMH TENMON
TH409 Cơ Sở Dữ Liệu
TH490 Cấu Trúc Dữ Liệu & GT
TH364 Trí Tuệ Nhân Tạo
TH324 Giải Thuật
MAMH TENMON
TH409 Cơ Sở Dữ Liệu
TH364 Trí Tuệ Nhân Tạo
TH324 Giải Thuật
B: mamh, TenMon (MON)
A * B
Những dòng không có ở cả 2 bảng sẽ không có mặt ở
bảng KQ
![Page 18: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/18.jpg)
18
Phép kết nối ngoài (Outer join)
Định nghĩa: Phép toán này cho phép làm việc với thông tin bị thiếu, tức là vẫn thực hiện phép kết nối tự nhiên trên các trị trống của thuộc tính dùng để kết nối.
Có 3 loại kết nối mở rộng: trái, phải và hai bênCho 2 quan hệ r và s:
– Trái: r s = p ( r * s )• p={<u,v>| u r, u không tương ứng với bộ nào của s, v s,
các giá trị của các thuộc tính trong v đều là null }
– Phải: r s = q ( r * S ) • q={<u,v>| v s, v không tương ứng với bộ nào của r, u u,
các giá trị của các thuộc tính trong u đều là null }
– Hai bên: r s = p q ( r * s )• p và q được định nghĩa như trên.
![Page 19: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/19.jpg)
19
Phép kết nối ngoài – ví dụ (Outer join)
MAGV MAMH
1231 TH409
1232 TH409
1232 TH334
1255 TH490
1957 TH333
MAGV HOTEN_GV
1250 Lê Phú Thọ
1255 Nguyễn Khuyến
1256 Đào Anh Vũ
1231 Trần Ngân Bình
1232 Phan Phương Lan
MAGV HOTEN_GV MAGV MAMH
1250 Lê Phú Thọ NULL NULL
1255 Nguyễn Khuyến 1255 TH490
1256 Đào Anh Vũ NULL NULL
1231 Trần Ngân Bình 1231 TH409
1232 Phan Phương Lan 1232 TH409
1232 Phan Phương Lan 1232 TH334
MAGV MAMH MAGV HOTEN_GV
1231 TH409 1231 Trần Ngân Bình
1232 TH409 1232 Phan Phương Lan
1232 TH334 1232 Phan Phương Lan
1255 TH490 1255 Nguyễn Khuyến
1957 TH333 NULL NULL
R: DS GV của Khoa
S: Phân công dạy trong HK này
R S
R S R S ?
![Page 20: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/20.jpg)
20
Phép gán (Assignment)
Dùng để diễn tả câu truy vấn phức tạp.
Ký hiệu: A BVí dụ:
R(HO,TEN,LUONG) HONV,TENNV,LUONG(NHANVIEN)
Kết quả bên phải của phép gán được gán cho biến quan hệ nằm bên trái.
![Page 21: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/21.jpg)
21
Định nghĩa:
R và S là hai quan hệ, R+ và S+ lần lượt là tập thuộc tính của R và S. Điều kiện S+ và S+ là tập con thật sự của R+. Q là kết quả phép chia giữa R và S, Q+ = R+ - S+
Có thể diễn đạt bằng phép toán đại số như sau:
Phép chia (Division)
}),(,/{ RstSstSRQ
21
12
1
))((
)(
TTT
RTST
RT
SR
SR
![Page 22: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/22.jpg)
22
Ví dụ: Phép chia
Mahv
HV01
HV03
KETQUATHI
Mahv Mamh Diem
HV01 CSDL 7.0
HV02 CSDL 8.5
HV01 CTRR 8.5
HV03 CTRR 9.0
HV01 THDC 7.0
HV02 THDC 5.0
HV03 THDC 7.5
HV03 CSDL 6.0
MONHOC
Mamh Tenmh
CSDL Co so du lieu
CTRR Cau truc roi rac
THDC Tin hoc dai cuong
KETQUA
MONHOC
KETQUAMONHOC
][
],[
MamhMONHOCMONHOC
MamhMahvKETQUATHIKETQUA
![Page 23: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/23.jpg)
23
Hàm tính toán và gom nhóm
Hàm tính toán gồm các hàm: avg(), min(), max(), sum(), count().
Phép toán gom nhóm:
–E là biểu thức đại số quan hệ–Gi là thuộc tính gom nhóm (rỗng, nếu không gom nhóm)–Fi là hàm tính toán–Ai là tên thuộc tính
)()(),...,(),(,...,, 221121E
nnn AFAFAFGGG
![Page 24: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/24.jpg)
24
Hàm tính toán và gom nhóm
Điểm thi cao nhất, thấp nhất, trung bình của môn CSDL?
Điểm thi cao nhất, thấp nhất, trung bình của từng môn?
)()(),min(),max( KETQUATHIDiemavgDiemDiemMamh
)(CSDL''Mamh)(),min(),max( KETQUATHIDiemagvDiemDiem
![Page 25: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/25.jpg)
25
Ví dụ 1:
S# SNAME STATUS CITY
S1 Smith 20 London
S2 Jones 10 Paris
S3 Kery 30 Roma
P# PNAME COLOR WEIGHT
P1 Nut Red 12
P2 Bolt Green 17
P3 Screw Blue 17
P4 Screw Red 14
S# P# QTY
S1 P1 300
S1 P2 200
S1 P3 400
S2 P1 300
S2 P2 400
S3 P4 200
S
P
SP
Cho sơ đồ quan hệ sau :
![Page 26: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/26.jpg)
26
S# SNAME STATUS CITY
S1 Smith 20 London
S2 Jones 10 Paris
S3 Kery 30 Roma
P# PNAME COLOR WEIGHT
P1 Nut Red 12
P2 Bolt Green 17
P3 Screw Blue 17
P4 Screw Red 14
S# P# QTY
S1 P1 300
S1 P2 200
S1 P3 400
S2 P1 300
S2 P2 400
S3 P4 200
S
PSP
Liệt kê danh sách các mặt hàng màu đỏ : COLOR = ‘Red’(P)
Liệt kê P#, PName các mặt hàng màu đỏ và có Weight >15 : P#,Pname (Color = ’Red’ ^ Weight > 100(P))
Liệt kê S# của các hãng cung ứng mặt hàng ‘P1’ hoặc ‘P2’.S# (P# = ’P1’ v P# = ‘P2’(SP))
Thực hiện các câu hỏi sau bằng ngôn ngữ đại số QH
![Page 27: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/27.jpg)
27
S# SNAME STATUS CITY
S1 Smith 20 London
S2 Jones 10 Paris
S3 Kery 30 Roma
P# PNAME COLOR WEIGHT
P1 Nut Red 12
P2 Bolt Green 17
P3 Screw Blue 17
P4 Screw Red 14
S# P# QTY
S1 P1 300
S1 P2 200
S1 P3 400
S2 P1 300
S2 P2 400
S3 P4 200
S
PSP
Thực hiện các câu hỏi sau bằng ngôn ngữ đại số QH
Liệt kê S# của các hãng cung ứng cả hai mặt hàng ‘P1’ và P2’S# (P# = ’P1’ (SP)) s# (P# = ’P2’(SP))
Liệt kê S# của các hãng cung ứng ít nhất một Mhàng màu đỏ.S# (SP * COLOR=’Red’(P))
Liệt kê S# của các hãng cung ứng tất cả các mặt hàng.S#,P# (SP) P#(P)
![Page 28: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/28.jpg)
28
Ví dụ 2:GIANGVIEN (MAGV, HOTENGV)SINHVIEN (MASV, HOTENSV, NAMNHAPHOC)LOAIDETAI (MALOAI, TENLOAI)DETAI (MADETAI, TENDETAI, MAGV, MALOAI)DETAI_SINHVIEN (MADETAI, MASV)
Phát biểu:
•Mỗi một đề tài thuộc duy nhất một loại và có một giảng viên hướng dẫn.
•Một đề tài có thể có một hoặc nhiều sinh viên cùng tham gia làm.
•Một sinh viên có thể tham gia làm một hay nhiều đề tài.
![Page 29: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/29.jpg)
29
Ví dụ: Dùng Đại số quan hệGIANGVIEN (MAGV, HOTENGV)SINHVIEN (MASV, HOTENSV, NAMNHAPHOC)LOAIDETAI (MALOAI, TENLOAI)DETAI (MADETAI, TENDETAI, MAGV, MALOAI)DETAI_SINHVIEN (MADETAI, MASV)
Câu 1: Liệt kê mã sinh viên có tham gia đề tài với các mã đề tài là ‘HTT1’ và ‘HTT2’.Lời giải:
![Page 30: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/30.jpg)
30
Ví dụ: Dùng Đại số quan hệGIANGVIEN (MAGV, HOTENGV)SINHVIEN (MASV, HOTENSV, NAMNHAPHOC)LOAIDETAI (MALOAI, TENLOAI)DETAI (MADETAI, TENDETAI, MAGV, MALOAI)DETAI_SINHVIEN (MADETAI, MASV)
Câu 1b: Liệt kê mã đề tài được thực hiện bởi sinh viên có họ tên là “Nguyen Van Dung”Lời giải:
![Page 31: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/31.jpg)
31
Ví dụ 3:Lược đồ CSDL quản lý bán hàng gồm có các quan hệ sau:
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
![Page 32: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/32.jpg)
32
Mô tả các câu truy vấn sau bằng ĐSQH
1. In ra danh sách các sản phẩm (MASP,TENSP) do “Han Quoc” sản xuất có giá từ 30.000 đến 40.000
2. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2013.
3. In ra danh sách các sản phẩm (MASP,TENSP) do “Han Quoc” sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2013.
4. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và “BB02”.
5. In ra danh sách các sản phẩm (MASP,TENSP) do “Han Quoc” sản xuất không bán được trong năm 2012.
6. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất
![Page 33: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/33.jpg)
33
1. In ra danh sách các sản phẩm (MASP, TENSP) do “Han Quoc ” sản xuất có giá từ 30.000 đến 40.000.
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Lời giải:
![Page 34: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/34.jpg)
34
2. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2014.
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Lời giải:
![Page 35: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/35.jpg)
35
3. In ra danh sách MSP, TENSP các sản phẩm do “HanQuoc” sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2014.
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Lời giải:
![Page 36: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/36.jpg)
36
4. Tìm các số hóa đơn đã mua cùng lúc các sản phẩm có mã số “BB01” và “BB02”.
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Lời giải:
![Page 37: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/37.jpg)
37
5. In ra MASP, TENSP các sản phẩm do ‘HanQuoc’ sản xuất không bán được trong năm 2012.
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Lời giải:
![Page 38: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/38.jpg)
38
6. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)
NHANVIEN (MANV,HOTEN, NGVL, SODT)
SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)
HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA)
CTHD (SOHD,MASP,SL)
Lời giải:
![Page 39: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/39.jpg)
39
Phần 2
Ngôn ngữ truy vấn SQL
![Page 40: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/40.jpg)
40
Giới thiệu
SQL(Structured Query Language)• Ngôn ngữ cấp cao• Được phát triển bởi IBM, năm 1970• Được chuẩn hóa bởi ANSI và ISO(SQL-86, SQL-92,
SQL-99)Bao gồm :
• Ngôn ngữ định nghĩa dữ liệu .• Ngôn ngữ thao tác dữ liệu • Ngôn ngữ truy vấn dữ liệu • Ngôn ngữ quản lý dữ liệu
Các hệ quản trị CSDL đều có cách cài đặt ngôn ngữ khác nhau nhưng đều dựa trên chuẩn của SQL
![Page 41: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/41.jpg)
41
Ngôn ngữ định nghĩa dữ liệu(DDL)
Dùng để :Mô tả lược đồ cho các quan hệMô tả miền giá trị cho các thuộc tínhMô tả các ràng buộc toàn vẹnChỉ mục trên mỗi quan hệ
Gồm các lệnhCREATE/DROP DATABASECREATE/DROP/ALTER TABLEADD/DROP/CHANGE COLUMNADD/DROP CONSTRAINT
![Page 42: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/42.jpg)
42
Các lệnh thao tác với bảngTạo bảng :
CREAT TABLE <Tên_bảng> ( <tên_ cột_1> <loại dữ_liệu_1> < kích thước 1>,
………………….<tên_ cột_n> <loại dữ_liệu_n> < kích thước n>,[CONSTRAINT <tên ràng buộc toàn vẹn>]|NULL|NOT NULL|Primary Key (Khoá chính)[Unique (Khoá )][Foreign Key (Khoá _ ngoài) Reference Tên_bảng][Check <Điều_ kiện_ràng_buộc>]
);
![Page 43: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/43.jpg)
43
Các lệnh thao tác với bảng
Trong đó :• Chỉ thị NOT NULL : chỉ rằng cột không nhận giá trị rỗng.
Ngầm định là Null. Thuộc tính khoá ngầm định là Not Null.• Chỉ thị COSNTRAINT<tên các ràng buộc toàn vẹn>: khai
báo các ràng buộc toàn vẹn của CSDL.• Chỉ thị Primary Key (Khoá chính): Khai báo khoá chính
của mảng• Chỉ thị Unique (Khoá) : Khai báo các khoá khác nếu có• Chỉ thị Foreign Key Khoá_ ngoài Reference Tên_ bảng :
Khai báo các khoá ngoài của bảng• Chỉ thị Check Điều_kiện_ràng_buộc : Khai báo các ràng
buộc dữ liệu
![Page 44: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/44.jpg)
44
Các lệnh thao tác với bảng
Ví dụ :
Tạo bảng S :
CREATE TABLE S
(S# INTEGER NOT NULL,
SNAME VARCHAR(8) NOT NULL,
STATUS INTEGER NOT NULL,
CITY VARCHAR(30) NOT NULL
CONSTRAINT S_Khoá_chính PRIMARY KEY (S#)
)
![Page 45: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/45.jpg)
45
Các lệnh thao tác với bảng
![Page 46: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/46.jpg)
46
Các lệnh thao tác với bảng
Thêm một cột :
ALTER TABLE <Tên_bảng>
ADD COLUMN <Tên_cột><Kiểu_dữ_liệu >[NOT NULL]
Xoá một cột :
ALTER TABLE <Tên_bảng>
DROP COLUMN <Tên_cột>
Sửa kiểu dữ liệu của một cột đã định nghĩa :
ALTER TABLE <Tên_bảng>
CHANGE COLUMN <Tên_cột> <Kiểu_dữ_liệu_mới >
![Page 47: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/47.jpg)
47
Các lệnh thao tác với bảng
Thêm một ràng buộc :
ALTER TABLE <Tên_bảng>
ADD CONSTRAINT <Tên_ràng_buộc><Kiểu_ràng_buộc >
Xóa một ràng buộc :
ALTER TABLE <Tên_bảng>
DROP CONTRAINT <Tên_ràng_buộc>
Xoá bảng :
DROP TABLE <tên_bảng>
VD : DROP TABLE NHANVIEN
![Page 48: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/48.jpg)
48
Truy vấn dữ liệu
Mệnh đề dạng SELECT . . . FROM . . . WHERE
Cú pháp :
SELECT [DISTINCT] <dsách cột>|*|<biểu thức số học>
FROM <danh sách tên bảng>|<danh sách các view>
[WHERE <biểu thức điều kiện>]
[GROUP BY<dsách tên cột>[HAVING<bthức điều kiện>]]
[ORDER BY<dsách tên cột>|<biểu thức>] [ASC|DESC]
[UNION | INTERSECT | MINUS<Câu truy vấn>]
Kết quả của câu truy vấn là một bảng dữ liệu được kết xuất từ 1 hoặc nhiều bảng
![Page 49: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/49.jpg)
49
Truy vấn đơn giản trên một bảng
Tìm kiếm không điều kiện– Cho biết tên của các nhà cung cấp :
Sname (S)
• Select SNAME From S– Cho biết tên của các nhà cung cấp (loại bỏ trùng lặp)
dùng từ khóa Distinct trước SNAME :• Select Distinct SNAME From S
– Liệt kê danh sách các nhà cung cấp :• Select * From S
– Từ khóa “*” thay thế cho toàn bộ thuộc tính của một quan hệ
![Page 50: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/50.jpg)
50
Đặt tên trong SQL
![Page 51: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/51.jpg)
51
Phép toán số học
![Page 52: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/52.jpg)
52
Các phép toán logic trong SQL
Dùng trong mệnh đề WHERE và HAVING để xây dựng các điều kiện chọn• =,<>, <, >, ≤, ≥• And, Or, Not• Between<giá trị đầu> And <giá trị sau>• In (<Danh sách giá trị>)
Đưa ra danh sách mã của các nhà cung cấp đã cung cấp ‘P1’ với số lượng >50Select S# From SP Where P# = ‘P1’ And QTY>50
Ví dụ : Đưa ra danh sách mã của các nhà cung cấp đã cung cấp 1 trong hai mặt hàng ‘P1’ hoặc ‘P2’Select S# From SP Where P# = ‘P1’ Or P# = ‘P2’
![Page 53: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/53.jpg)
53
Tìm kiếm sử dụng In và Between
Tìm những mặt hàng đã cung cấp với số lượng từ 1000 đến 2000Select Distinct P#From SPWhere QTY Between 1000 And 2000
Tìm mã số những nhà cung cấp đã cung cấp ít nhất một trong các mặt hàng P1, P2, P3Select S# From SPWhere P# In (‘P1’,’P2’,’P3’)
![Page 54: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/54.jpg)
54
Truy vấn có xử lý xâu kí tự
SQL dùng toán tử LIKE để so sánh xâu.
SQL sử dụng kí tự ' %' để thay thế cho một xâu con, dấu phân cách '_' để thay thế cho một kí tự.
Ví dụ :– A%B : xâu kí tự bất kì bắt dầu bằng chữ A và kết thúc
bằng chữ B– %a : xâu kí tự bất kì có kết thúc là a– A_B : xâu gồm 3 kí tự, có kí tự thứ hai bất kì– A_ : xâu gồm 2 kí tự bắt đầu bằng chữ A
Sử dụng trong trường hợp không nhớ rõ giá trị cụ thể chính xác
![Page 55: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/55.jpg)
55
Truy vấn có xử lý xâu kí tự
Ví dụ :– Đưa ra thông tin về hãng cung ứng có tên là bắt
đầu bằng chữ ‘H’.
Select * From S
Where SNAME Like ‘H%’– Đưa ra thông tin về sản phẩm mà tên có chứa từ
‘bánh’
Select * From P
Where PNAME Like ‘%banh%’
![Page 56: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/56.jpg)
56
Các ví dụ
![Page 57: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/57.jpg)
57
Ví dụ:GIANGVIEN (MAGV, HOTENGV)SINHVIEN (MASV, HOTENSV, NAMNHAPHOC)LOAIDETAI (MALOAI, TENLOAI)DETAI (MADETAI, TENDETAI, MAGV, MALOAI)DETAI_SINHVIEN (MADETAI, MASV)
Phát biểu:
•Mỗi một đề tài thuộc duy nhất một loại và có một giảng viên hướng dẫn.
•Một đề tài có thể có một hoặc nhiều sinh viên cùng tham gia làm.
•Một sinh viên có thể tham gia làm một hay nhiều đề tài.
![Page 58: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/58.jpg)
58
Ví dụ: Dùng SQLGIANGVIEN (MAGV, HOTENGV)SINHVIEN (MASV, HOTENSV, NAMNHAPHOC)LOAIDETAI (MALOAI, TENLOAI)DETAI (MADETAI, TENDETAI, MAGV, MALOAI)DETAI_SINHVIEN (MADETAI, MASV)
Câu 2: Liệt kê danh sách gồm Mã sinh viên, Họ tên sinh viên mà làm ít nhất 2 loại đề tài khác nhau.
Lời giải:
![Page 59: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/59.jpg)
59
Ví dụ 1: Dùng SQLGIANGVIEN (MAGV, HOTENGV)SINHVIEN (MASV, HOTENSV, NAMNHAPHOC)LOAIDETAI (MALOAI, TENLOAI)DETAI (MADT, TENDT, MAGV, MALOAI)DETAI_SINHVIEN (MADT, MASV)
Câu 3: Liệt kê danh sách gồm mã đề tài, tên đề tài, họ tên giảng viên hướng dẫn mà chỉ có duy nhất một sinh viên tham gia
Lời giải:
![Page 60: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/60.jpg)
60
Ví dụ 2:LOAISP (MA_LOAI, MO_TA, HAN_LUU_KHO)SANPHAM (MA_SAN_PHAM, TEN_SAN_PHAM, MA_LOAI)PHIEUNHAPXUAT(MA_SO_PHIEU, NGAY_NHAP, LOAI_PHIEU)CHITIETPHIEU (MA_SO_PHIEU, MA_SAN_PHAM, SO_LUONG)
Ghi chú :<<HAN_LUU_KHO>>: thời gian tính bằng đơn vị là ngày để cho sản phẩm
thuộc loại đó có thể dự trữ trong kho mà không bị hỏng.<<LOAI_PHIEU>> trong bảng Phieunhapxuat:
LOAI_PHIEU = 1: nhập LOAI_PHIEU = 0: xuất
Phát biểu :- Mỗi một sản phẩm thuộc một loại sản phẩm.- Mỗi lần nhập một sản phẩm về kho hay xuất ra kho đều được ghi nhận trong bảng “PHIEUNHAPXUAT” với thuộc tính loại để phân biệt.- Mỗi lần nhập hay xuất kho những mặt hàng nào thì được ghi nhận trong bảng CHITIETPHIEU.
![Page 61: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/61.jpg)
61
Ví dụ 2: Dùng Đại số quan hệLOAISP (MA_LOAI, MO_TA, HAN_LUU_KHO)SANPHAM (MA_SAN_PHAM, TEN_SAN_PHAM, MA_LOAI)PHIEUNHAPXUAT(MA_SO_PHIEU, NGAY_NHAP, LOAI_PHIEU)CHITIETPHIEU (MA_SO_PHIEU, MA_SAN_PHAM, SO_LUONG)
Câu 1a: Liệt kê mã số phiếu trong đó có chứa cả hai sản phẩm với các mã sản phẩm là ‘MM1’ và ‘MM2’.
Lời giải:
![Page 62: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/62.jpg)
62
Ví dụ 2: Dùng Đại số quan hệLOAISP (MA_LOAI, MO_TA, HAN_LUU_KHO)SANPHAM (MA_SAN_PHAM, TEN_SAN_PHAM, MA_LOAI)PHIEUNHAPXUAT(MA_SO_PHIEU, NGAY_NHAP, LOAI_PHIEU)CHITIETPHIEU (MA_SO_PHIEU, MA_SAN_PHAM, SO_LUONG)
Câu 1b: Liệt kê mã số phiếu trong đó có chứa sản phẩm với tên sản phẩm là ‘Bút bi’
Lời giải:
![Page 63: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/63.jpg)
63
Ví dụ 2: Dùng SQLLOAISP (MA_LOAI, MO_TA, HAN_LUU_KHO)SANPHAM (MA_SAN_PHAM, TEN_SAN_PHAM, MA_LOAI)PHIEUNHAPXUAT(MA_SO_PHIEU, NGAY_NHAP, LOAI_PHIEU)CHITIETPHIEU (MA_SO_PHIEU, MA_SAN_PHAM, SO_LUONG)
Câu 2: Liệt kê danh sách gồm mã sản phẩm và tên sản phẩm mà có khả năng lưu giữ trong kho hơn 21 ngày.
Lời giải:
![Page 64: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/64.jpg)
64
Ví dụ 2: Dùng SQLLOAISP (MA_LOAI, MO_TA, HAN_LUU_KHO)SANPHAM (MA_SAN_PHAM, TEN_SAN_PHAM, MA_LOAI)PHIEUNHAPXUAT(MA_SO_PHIEU, NGAY_NHAP, LOAI_PHIEU)CHITIETPHIEU (MA_SO_PHIEU, MA_SAN_PHAM, SO_LUONG)
Câu 3: Liệt kê danh sách gồm mã sản phẩm, tên sản phẩm mà không được nhập trong ngày 25/02/2013
Lời giải:
![Page 65: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/65.jpg)
65
Ví dụ 2: Dùng SQLLOAISP (MA_LOAI, MO_TA, HAN_LUU_KHO)SANPHAM (MA_SAN_PHAM, TEN_SAN_PHAM, MA_LOAI)PHIEUNHAPXUAT(MA_SO_PHIEU, NGAY_NHAP, LOAI_PHIEU)CHITIETPHIEU (MA_SO_PHIEU, MA_SAN_PHAM, SO_LUONG)
Câu 4: Liệt kê danh sách gồm số phiếu, ngày nhập phiếu mà phiếu này nhập vào nhiều hơn 2 loại hàng hóa.
Lời giải:
![Page 66: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/66.jpg)
66
Ví dụ 3: Dùng Đại số quan hệPHONGHOC (MAPHONG, SONGUOITOIDA)
THIETBI (MATB, TENTB, SOLUONGHIENTAI)
GIANGVIEN (MAGV, TENGV, NAMSINH, PHAI)
KHOAHOC (MAKH, NGAYBATDAU, SONGAY, SONGUOITHGIA, MAPHONG)
SUDUNGTHIETBI (MAKH, MATB, SOLUONGSUDUNG)
GIANGVIENDAY (MAKH, MAGV, NGAYBATDAU, NGAYKETTHUC )
Câu 1a: Liệt kê mã giảng viên đã giảng dạy cả hai khóa học với các mã khóa học là ‘MK1’ và ‘MK2’.
Lời giải:
![Page 67: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/67.jpg)
67
Dùng Đại số quan hệPHONGHOC (MAPHONG, SONGUOITOIDA)
THIETBI (MATB, TENTB, SOLUONGHIENTAI)
GIANGVIEN (MAGV, TENGV, NAMSINH, PHAI)
KHOAHOC (MAKH, NGAYBATDAU, SONGAY, SONGUOITHGIA, MAPHONG)
SUDUNGTHIETBI (MAKH, MATB, SOLUONGSUDUNG)
GIANGVIENDAY (MAKH, MAGV, NGAYBATDAU, NGAYKETTHUC )
Câu 1b: Liệt kê mã khóa học có sử dụng ít nhất một thiết bị tên là ‘Máy chiếu’
Lời giải:
![Page 68: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/68.jpg)
68
Dùng SQL: PHONGHOC (MAPHONG, SONGUOITOIDA)
THIETBI (MATB, TENTB, SOLUONGHIENTAI)
GIANGVIEN (MAGV, TENGV, NAMSINH, PHAI)
KHOAHOC (MAKH, NGAYBATDAU, SONGAY, SONGUOITHGIA, MAPHONG)
SUDUNGTHIETBI (MAKH, MATB, SOLUONGSUDUNG)
GIANGVIENDAY (MAKH, MAGV, NGAYBATDAU, NGAYKETTHUC )
Câu 2: Viết câu truy vấn cho ra danh sách gồm mã thiết bị, tên thiết bị mà chưa từng được dùng cho bất cứ khóa học nào từ đầu năm 2011.
Lời giải:
![Page 69: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/69.jpg)
69
Dùng SQLPHONGHOC (MAPHONG, SONGUOITOIDA)
THIETBI (MATB, TENTB, SOLUONGHIENTAI)
GIANGVIEN (MAGV, TENGV, NAMSINH, PHAI)
KHOAHOC (MAKH, NGAYBATDAU, SONGAY, SONGUOITHGIA, MAPHONG)
SUDUNGTHIETBI (MAKH, MATB, SOLUONGSUDUNG)
GIANGVIENDAY (MAKH, MAGV, NGAYBATDAU, NGAYKETTHUC )
Câu 3: Viết câu truy vấn cho ra danh sách gồm mã khóa học, ngày bắt đầu với điều kiện khóa học này có số người tham gia lớn hơn 50, kéo dài hơn 3 ngày, và có hơn 4 loại thiết bị khác nhau được sử dụng.
Lời giải:
![Page 70: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/70.jpg)
70
Dùng SQLPHONGHOC (MAPHONG, SONGUOITOIDA)
THIETBI (MATB, TENTB, SOLUONGHIENTAI)
GIANGVIEN (MAGV, TENGV, NAMSINH, PHAI)
KHOAHOC (MAKH, NGAYBATDAU, SONGAY, SONGUOITHGIA, MAPHONG)
SUDUNGTHIETBI (MAKH, MATB, SOLUONGSUDUNG)
GIANGVIENDAY (MAKH, MAGV, NGAYBATDAU, NGAYKETTHUC )
Câu 4: Viết câu truy vấn cho ra danh sách gồm mã thiết bị, tên thiết bị mà được sử dụng cho các khóa học được diễn ra trong ngày hôm nay.Lời giải:
![Page 71: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/71.jpg)
71
Tối ưu hóa truy vấn
![Page 72: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/72.jpg)
72
Mục đích của xử lý truy vấn:• Giảm thiểu thời gian xử lý• Giảm vùng nhớ trung gian • Sử dụng ít tài nguyên
Chức năng của xử lý truy vấn:• Biến đổi một truy vấn phức tạp thành một truy vấn tương
đương đơn giản hơn. • Phép biến đổi này phải đạt được cả về tính đúng đắn và
hiệu quả • Mỗi cách biến đổi dẫn đến việc sử dụng tài nguyên máy
tính khác nhau, nên vấn đề đặt ra là lựa chọn phương án
nào dùng tài nguyên ít nhất.
GIỚI THIỆU VỀ XỬ LÝ TRUY VẤN
![Page 73: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/73.jpg)
73
Nguyên tắc tối ưu hoá
• Ưu tiên thực hiện các phép chiếu và chọn, nhằm giới hạn khối lượng dữ liệu trung gian. Giảm chi phí truy nhập bộ nhớ.
• Trước khi phải thực hiện phép tích Đề các, hãy tìm chiến lược truy nhập tốt nhất vào CSDL. Ví dụ như sử dụng các phép sắp xếp, hoặc chọn chỉ số trên thành phần tham gia vào tích Đề các.
• Thực hiện các phép kết nối cân bằng chi phí sẽ rẻ hơn nhiều so với chi phí thực hiện phép tích Đề các.
• Nhóm các phép toán chọn và chiếu liên tiếp thành một phép toán duy nhất.
![Page 74: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/74.jpg)
74
Nguyên tắc tối ưu hoá (tt)
• Nhóm các phép tích và chiếu liên tiếp thành một phép toán duy nhất. Trong khi thi thực hiện phép tích có thể giới hạn chi phí thực hiện bằng phép chiếu.
• Tìm biểu thức chung trong một biểu thức. Nếu kết quả là một quan hệ không lớn lắm nhưng tần suất xuất hiện nhiều lần, nên có biểu thức con chung.
• Đánh giá sơ bộ trước khi thực hiện câu hỏi. Số phép toán thực hiện, tổng chi phí thực hiện: thời gian, bộ nhớ ...
![Page 75: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/75.jpg)
75
Các cách tối ưu hóa truy vấn:
1. Cách 1: Tối ưu về chi phí
- Chi phí thời gian thực hiện truy vấn.
- Chi phí lưu trữ các kết quả trung gian.
- Chi phi trao đổi giữa bộ nhớ trong và bộ nhớ ngoài.
2. Cách 2: Tối ưu Heuristic
- Bằng cách biến đổi biểu thức đại số quan hệ.
Lý do: (R) , (R) << R
R1, R2 << R1 R2 , R1X R2
- Biến đổi thứ tự thực hiện các phép toán của biểu thức ĐSQH sao cho các phép toán 1 ngôi được thực hiện trước các phép toán 2 ngôi
![Page 76: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/76.jpg)
76
QUÁ TRÌNH XỬ LÝ TRUY VẤN Bước 1:
– Duyệt truy vấn để biết truy vấn được viết bằng ngôn ngữ nào.
– Kiểm tra: Kiểm tra cú pháp của truy vấn xem có hợp lệ hay không.
– Xác nhận tính hợp lệ (các quan hệ, thuộc tính sử dụng trong truy vấn đã được khai báo hay chưa?, sau bước 1 truy vấn sẽ được biểu diễn bằng một biểu thức đại số quan hệ)
Bước 2: – Tối ưu: Tìm ra phương pháp thực hiện tối ưu cho truy vấn.
– Sau bước này sẽ cho ra một biểu thức đại số quan hệ với chi phí thực hiện nhỏ nhất.
Bước 3: – Tạo mã sẽ tạo ra chương trình bằng ngôn ngữ trong để thực hiện truy vấn.
– Thực thi chương trình để lấy về kết quả.
![Page 77: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/77.jpg)
77
BIẾN ĐỔI TRUY VẤN SANG BIỂU THỨC ĐSQH
Ví dụ:
SELECT * FROM R WHERE E ↔ E (R)
SELECT * FROM R, S WHERE E ↔ R1 ER2
•Tối ưu bằng biến đổi biểu thức ĐSQH: Biến đổi thứ tự thực hiện các phép toán của biểu thức đại số quan hệ:
- Các phép toán một ngôi được thực hiện trước các phép toán hai ngôi
![Page 78: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/78.jpg)
78
Các phép biến đổi tương đương (1-4)
![Page 79: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/79.jpg)
79
Các phép biến đổi tương đương (4-8)
![Page 80: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/80.jpg)
80
Các phép biến đổi tương đương (9-10)
![Page 81: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/81.jpg)
81
Các phép biến đổi tương đương (11)
![Page 82: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/82.jpg)
82
Các phép biến đổi tương đương (12)
![Page 83: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/83.jpg)
83
THUẬT TOÁN TỐI ƯU HÓA CÂY ĐSQH
• Bước 1: Biểu diễn truy vấn dưới dạng cây với lá là
các quan hệ, đỉnh trong là các phép toán đại số
quan hệ.
• Bước 2: Áp dụng các phép biến đổi tương đương
đẩy các phép toán một ngôi xuống dưới các phép
toán hai ngôi.
• Bước 3: Thêm vào các phép chiếu để giảm bớt
kích thước của các quan hệ.
![Page 84: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/84.jpg)
84
Ví dụ
Xét 2 LĐQH:– NhanVien (MaNV, MasoDV, HoTen, NgaySinh,
GioiTinh, Luong) – DonVi(MaDV, TenDV)
Hãy liệt kê họ tên của các nhân viên nữ ở đơn vị có tên là “PhongDaoTao”:
![Page 85: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/85.jpg)
85
![Page 86: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/86.jpg)
86
Ví dụ: Hãy liệt kê tên tất cả các tuyến cáp có lắp đặt cáp Việt nam.
Ví dụ 2:
![Page 87: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/87.jpg)
87
Ví dụ: Hãy liệt kê tên tất cả các tuyến cáp có lắp đặt cáp Việt nam.
![Page 88: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/88.jpg)
88
Ví dụ: Hãy liệt kê tên tất cả các tuyến cáp có lắp đặt cáp Việt nam.
![Page 89: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/89.jpg)
89
![Page 90: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/90.jpg)
90
THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
![Page 91: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/91.jpg)
91
3.1 Nguyên tắc thiết kế các lược đồ quan hệ
• Khi thiết kế một CSDL quan hệ: cần chọn lược đồ CSDL phù hợp.
• Trọng tâm của thiết kế các lược đồ CSDL: phụ thuộc dữ liệu (Data Dependency) tức là các mức ràng buộc có thể giữa các giá trị hiện hữu của các lược đồ.
• Các vấn đề cần quan tâm khi thiết kế CSDL: – Dư thừa dữ liệu (Redundancy) – Không nhất quán (Inconsistency) – Dị thường khi thêm bộ (Insertion anomalies) – Dị thường khi xoá bộ (Deletion anomalies)
![Page 92: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/92.jpg)
92
Ví dụ 3.1: Xét lược đồ quan hệ BANHANG(Ngày, Mã hàng, Tên hàng, Đơn giá, Số lượng).
Ngày Mã hàng Tên hàng Đơn giá Số lượng
01/06/2010 M1 Radio 1000 1
01/06/2010 M3 TV 4000 2
01/06/2010 M6 Xe đạp 1000 1
02/06/2010 M2 Máy giặt 3000 2
02/06/2010 M1 Radio 1000 3
03/06/2010 M4 Video 5000 2
01/06/2010 M9 Máy ảnh 2000 1
![Page 93: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/93.jpg)
93
3.2 Phụ thuộc hàm
Định nghĩa 3.1: Xét lược đồ quan hệ gồm n thuộc tính– R(U), U={A1, A2,…, An}
PTH giữa hai tập thuộc tính X, Y U– Ký hiệu: X Y (đọc: X xác định hàm Y hay Y phụ thuộc hàm X) r(R), t1, t2 r nếu t1[X] = t2[X] thì t1[Y] = t2[Y].
– X là vế trái và Y là vế phải của PTH.Ví dụ 3.2
r(R) A B
1 4
1 5
3 7
r không thỏa A B, nhưng thỏa B A
NHANVIEN_PHONGBAN
TenNV MaNV NgSinh Diachi MaPB TenPB TrPhong
MaNV MaPB MaPB {TenPB, TrPhong}MaNV TenNV
![Page 94: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/94.jpg)
94
Bao đóng của tập PTH
• Định nghĩa 3.2: Trên lược đồ quan hệ R; F là tập các PTH, cho XY là một PTH. - Ta nói rằng tập PTH F suy diễn logic X Y ký hiệu
F╞═ X Y, nếu bất kỳ quan hệ r của R thỏa các phụ thuộc trong F thì cũng thỏa X Y.
• Định nghĩa 3.3: Bao đóng của tập PTH (Closure of FD) F là tập các phụ thuộc hàm được suy diễn logic từ F, ký hiệu là F+, nghĩa là:
F+ = { X Y | F ╞═ X Y}
![Page 95: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/95.jpg)
95
Bao đóng của tập PTH
• F là tập PTH trên R– F = (MaNV TenNV, MaPB {TenPB,
TrPhong}, MaNV MaPB). rR thỏa F và MaNV {TenPB, TrPhong}
cũng đúng với r thì MaNV {TenPB, TrPhong} gọi là được suy diễn từ F.
• Bao đóng của F, ký hiệu F+, gồm– F và tất cả các PTH được suy diễn từ F.
• F gọi là đầy đủ nếu F = F+.
![Page 96: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/96.jpg)
96
Luật suy diễn
• Để xác định được F+, hay nhận biết X Y F+ ?
• Luật suy diễn dùng để suy diễn một PTH mới từ một tập PTH cho trước.
• Hệ tiên đề Armstrong (Armstrong’s axioms- 1974)
– Phản xạ (Reflexivity): Y X X Y.
– Tăng trưởng (Augmentation): X Y XZ YZ, với XZ=XZ.
– Bắc cầu (Transitivity): X Y, Y Z X Z.
• Các hệ quả:– Phân rã (Decomposition rule): X YZ X Y, X Z.
– Hợp (Union rule): X Y, X Z X YZ.
– Tựa bắc cầu (Pseudo transitivity rule): XY, WYZ WX Z.
![Page 97: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/97.jpg)
97
Ví dụ 3.3 : Cho R = ABC và tập phụ thuộc hàm
Chứng minh rằng: F ╞═Thật vậy từ :
– C A (giả thiết)– BC AB (luật tăng trưởng (1) thêm B)– AB C (giả thiết)– AB ABC (luật tăng trưởng (3) thêm AB)– BC ABC (luật bắc cầu từ (2) và (4))
Luật suy diễn
ACCABF ,ABCBC
![Page 98: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/98.jpg)
98
Tính đúng đắn và đầy đủ của hệ tiên đề Armstrong
Bổ đề 3.1: Hệ tiên đề Armstrong là đúng đắn (Soundness)
Bổ đề 3.2: Hệ tiên đề Armstrong là đầy đủ (Completeness)
Ý nghĩa:
- Hệ tiên đề Armstrong là đúng đắn, nghĩa là X Y được suy diễn từ hệ tiên đề Armstrong thì X Y đúng trong mọi quan hệ mà mọi phụ thuộc hàm của F đúng.
- Tính đầy đủ của hệ tiên đề Armstrong có nghĩa là: với F là tập phụ thuộc hàm cho trước. Gọi F+ hệ bao đóng của F, F0 là tập các phụ thuộc hàm có thể suy dẫn từ hệ hệ tiên đề Armstrong thì F+ = F0.
Bổ đề 3.3: X Y được suy ra từ tập phụ thuộc F đã cho bằng cách sử dụng hệ tiênđề Armstrong Y X+.
![Page 99: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/99.jpg)
99
Chứng minh Bổ đề 3.1 (Tính đúng đắn)
Chứng minh: Cần chứng minh 3 tiên đề đúng :
a1) YX R thì X Y
r(R) thỏa F: t, t’ r : t(X) = t’(X) t(Y) = t’(Y) do Y X
a2) X Y, Z R XZ YZ
r(R) thỏa F : t, t’r theo giả thiết ta có :
t(X) = t’(X) t(Y) = t’(Y) (1)
Nếu t(XZ) = t’(XZ) t(X).t(Z) = t’(X).t’(Z)
t(Y).t(Z) t’(Y).t’(Z) t(Y) t’(Y) (2)
Từ (1), (2) mâu thuẫn, vậy: t(XZ) = t’(XZ) t(YZ) = t’(YZ)
a3) X Y, Y Z thì X Z
r(R) thỏa F: t, t’ r :
t(X) = t’(X) t(Y) = t’(Y) do XY
t(Y) = t’(Y) t(Z) = t’(Z) do Y Z
Vậy t(X) = t’(X) t(Z) = t’(Z) đpcm.
![Page 100: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/100.jpg)
100
Chứng minh Bổ đề 3.2 (Tính đầy đủ)Do tính đúng đắn của hệ tiên đề Armstrong nên: F0 F+, cần phải chứng minh:
F+ F0 (XY F+ X Y F0) (X Y F0 X Y F+) (Phản chứng)
Chứng minh:• Giả sử X Y F0 (nghĩa là PTH X Y không thể suy dẫn bởi hệ tiênđề Armstrong từ F).• Xét quan hệ r gồm hai bộ như sau :
11 ... 1 11 ... 111 ... 1 00 ... 0Các thuộc tính Các thuộc tính thuộc X+ còn lại
• Ta thấy tất cả các phụ thuộc hàm trên F đều thỏa r, giả sử ngược lại : VW F nhưng không thỏa r VX+, W X+ A W, A ∩ X+ = . Do VX+, theo bổ đề 3.3: XV Fo và VW, WA, theo luật bắt cầu XA (Mâu thuẫn)
• Nếu X Y F+ X Y thỏa r (theo định nghĩa F+ ) Y X+ (1) • Mà giả thiết: X Y F0 Y X+ (2) • (1) và (2) mâu thuẫn, vậy X Y F+ (đpcm). Nói khác hơn: F+ = F0.
![Page 101: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/101.jpg)
101
Bao đóng của tập thuộc tínhNhận xét:
– Việc xác định F+ của tập PTH F là khó khăn và F+ rất lớn, dù F có thể rất bé.
– Chẳng hạn: Xét : F = {A B1, A B2, … , A Bn}
Thì F+ = {A Y| Y {B1B2…Bn} |F+| = 2n . – Trong nhiều trường hợp, ta không cần tìm toàn bộ F+, mà chỉ cần xét
xem một phụ thuộc hàm cho trước có thuộc F+ không ? – Để xét xem X Y F+, theo bổ đề 3.3, ta cần tìm X+:
nếu Y X+ thì X Y F+
Bao đóng của tập thuộc tính :– X là tập thuộc tính– Bao đóng của X đối với F, ký hiệu XF
+
– XF+ = {A U | X A F+}
Nhận xét: X Y F+ Y X+.
![Page 102: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/102.jpg)
102
Thuật toán tìm X+
Thuật toán 3.1
Nhập: U, F và X U
Xuất: X+
Phương pháp: Lần lượt tính các tập X(0), X(1), ..., X(i),. . – B1: X(0) = X;– B2: X(i+1) = X(i) A, nếu YZ F, AZ và Y X(i),
Ngược lại qua B3.
– B3: xuất X+ = X(i).
![Page 103: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/103.jpg)
103
Ví dụ tìm XF+
Cho:– F = {AB C, BC D, D EG}.– X = BD.
Tính XF+:
– X(0) = BD.– Lặp 1:
• Tìm các PTH có vế trái là tập con của X(0) = BDCó D EG, thêm EG vào X(0) ta được X(1) = BDEG.
– Lặp 2:• Tìm các PTH có vế trái là tập con của X(1) = BDEG
Không có PTH nào. X(2) = X(1)
– Vậy XF+ = X(2) = {BDEG}.
![Page 104: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/104.jpg)
104
Chứng minh tính đúng đắn thuật toán 3.1
Ta phải chứng minh: A, A X+ j: A X(j)
“”: Chứng minh bằng qui nạp:Xét j=0, A X(0): XA F+ A X+
Giả sử đúng đến bước j-1, xét bước thứ j:A X(j) YX(j-1): YA F+ (1)Do YX(j-1) XY F+ (2)Từ (1) và (2) XA F+ A X+
![Page 105: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/105.jpg)
105
Chứng minh tính đúng đắn thuật toán 3.1(tt)“”: A, A X+ j: A X(j)
Gọi i là giá trị X(i)=X(i+k) k=0,1,2, ...Xét quan hệ r gồm hai bộ như sau:
11 ... 1 11 ... 111 ... 1 00 ... 0Các thuộc tính Các thuộc tính thuộc Xi
+ không thuộc Xi+
Tương tự: Theo chứng minh 3.2, mọi PTH trên F đều thỏa r.Thật vậy. nếu UVF nhưng không thỏa r UX(i) và VX(i) X(i+1)X(i) (Mâu thuẫn) Do A X+ X A F+ (Bổ đề 3)Và do hệ tiên đề Armstrong là đúng và đầy đủ X A F+ X A thỏa r A X(i) Có đpcm.
![Page 106: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/106.jpg)
106
Kiểm tra PTH suy diễnCho F = {AB C, A D, D E, AC B}
Hai PTH AB E và D C có được suy diễn từ F hay không?
X XF+
AB ABCDE
D DE
Được suy diễn từ F
Không được suy diễn từ F
![Page 107: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/107.jpg)
107
Phủ của các PTH (Covers for functional Dependencies)
Định nghĩa 3.4: Hai tập phụ thuộc hàm F và G trên lược đồ R là tương đương, ký hiệu F G, nếu F+ = G+. Nếu F G thì F gọi là phủ G.
• F suy diễn G, ký hiệu F╞═ G nếu XYG thì F╞═ XY
Định lý 3.1: Cho hai tập phụ thuộc hàm F và G trên lược đồ R, FG khi và chỉ khi F╞═ G và G╞═ F.
Chứng minh: Trước hết ta dễ thấy: F+ = (F+)+
Mặt khác: F G ( F╞═ G và G╞═ F )
F ╞═G G F+ G+ (F+) + = F+(1)
G╞═ F F G+ F+ (G+)+ = G+ (2)
(1), (2) (G+ F+) (F+ G+) F+ = G+
Đpcm.
![Page 108: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/108.jpg)
108
Thuật toán 3.2: Kiểm tra tính tương đương giữa F và G
Vào : F = {LiRi / i = 1..n}; G = {Lj’Rj’ / j = 1..n}
Ra : F+ = G+ ?
Phương pháp : i = 1..n, lần lượt kiểm tra LiRi G+ ? (tính (Li)+ đối với tập
phụ thuộc hàm G, nếu Ri (Li)+ thì LiRi G+
– Nếu mọi phụ thuộc hàm trong F đều thuộc G thì F+ G+ – Tương tự nếu mọi phụ thuộc hàm trong G đều thuộc F+ thì
G+ F+
Nếu cả hai điều trên đều đúng thì F+ = G+
Các tập PTH tương đương
![Page 109: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/109.jpg)
109
Tập PTH tối thiểu
• Tập PTH F là tối thiểu nếu thỏa các điều kiện sau– Mọi PTH của F chỉ có một thuộc tính ở vế phải.– Không thể thay X A thuộc F bằng Y A với Y X
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 (Minimal Covers) 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.
![Page 110: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/110.jpg)
110
Thuật toán tìm phủ tối thiểuThuật toán 3.3:
Nhập: tập PTH E.
Xuất: phủ tối thiểu F của E.
Phương pháp :– B1: F := .– B2: (Tách các PTH để có vế phải là 1 thuộc tính)
Với mọi X Y E, Y = {A1, …, Ak}, Ai U
F := F {X {Ai}}.
– B3: (Loại bỏ các thuộc tính dư thừa vế trái)
Với mỗi X {A} F, X = {B1, …, Bl}, Bi U
Với mỗi Bi, nếu A (X - {Bi})F+ thì
F := (F - {X {A}}) {(X - {B}) {A}}.
– B4: (Loại bỏ các PTH dư thừa)
Với mỗi X {A} F
G := F - {X {A}}
Nếu A XG+ thì F := F - {X {A}}.
![Page 111: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/111.jpg)
111
Ví dụ tìm phủ tối thiểuTìm phủ tối thiểu của E = {A BC, A B, B C,
AB C}– B1: F = .– B2: F = {A B, A C, B C, AB C}.– B3: Xét AB C
(B)F+ = C
F = {A B, A C, B C}.– B4: A C thừa.
F = {A B, B C}.
![Page 112: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/112.jpg)
112
Siêu khóa và khóaCho R(U)
– S U là siêu khóa nếu
r R, t1, t2 r, t1 t2 thì t1[S] t2[S].
– K U là khóa nếu K là siêu khóa nhỏ nhất. A K được gọi là thuộc tính khóa.
Nhận xét– S xác định hàm tất cả các thuộc tính của R: (S)+=R– R có thể có nhiều khóa.
![Page 113: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/113.jpg)
113
Xác định khóa của lược đồThuật toán 3.4: Tìm một khóa tối thiểu của quan hệ
Nhập: tập PTH F xác định trên lược đồ R(U)
U = {A1, …, An};
Xuất: khóa K của R.
Phương pháp :
– Bước 0 : Đặt K0 = U
– Bước i : Tính
Ki –1 \ {Ai} nếu Ki-1 \ {Ai} U
Ki =
Ki-1 nếu ngược lại
– Đặt K = Kn
![Page 114: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/114.jpg)
114
Ví dụ 3.4: Tìm khóa của lược đồCho R(U), U = {A, B, C, D, E, F, G}.
– F = {B A, D C, D BE, DF G}.
Tìm khóa của R– B1:
K = ABCDEFG.– B2:
• Lặp 1: (BCDEFG)F+ = BCDEFGA K = BCDEFG.
• Lặp 2: (CDEFG)F+ = CDEFGBA K = CDEFG.
• Lặp 3: (DEFG)F+ = DEFGCBA K = DEFG.
• Lặp 4: (EFG)F+ = EFG.
• Lặp 5: (DFG)F+ = DFGCBEA K = DFG.
• Lặp 6: (DG)F+ = DGCBEA.
• Lặp 7: (DF)F+ = DFCBEAG K = DF.
– B3:
Khóa là K = DF.
![Page 115: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/115.jpg)
115
Xác định tất cả khóa của lược đồNhập: tập PTH F xác định trên lược đồ R(U).
Xuất: tất cả khóa của R.
Thuật toán 3.5– B1:
Xây dựng 2n tập con của U = {A1, …, An};
S = { };
– B2:Với mỗi tập con X U
Nếu U XF+ thì S = S {X}.
– B3:
X, Y S, nếu X Y thì S = S - {Y}.
– B4:S là tập các khóa của R.
![Page 116: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/116.jpg)
116
Ví dụ tìm tất cả khóa của lược đồ
Cho R(U), U = {A, B, C, D, E, F}.– F = {AE C, CF A, BD F, AF E}.
Tìm tất cả khóa của R– Tập siêu khóa
S = {ABD, BCD, ABCD, ABDE, BCDE, ABCDE, ABDF, BCDF, ABCDF,
ABDEF, BCDEF, ABCDEF}.
ABD
BCD
ABCD
ABDE
BCDE
ABCDE
ABDF
BCDF
ABCDF
ABDEF
BCDEF
ABCDEF
![Page 117: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/117.jpg)
117
3.3 Chuẩn hóa lược đồ CSDLCác dạng chuẩn
– Dạng 1 (1 Normal Form - 1NF).– Dạng 2 (2 Normal Form - 2NF).– Dạng 3 (3 Normal Form - 3NF).– Dạng Boyce - Codd (Boyce - Codd Normal
Form - BCNF).
![Page 118: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/118.jpg)
118
Dạng chuẩn 1
Định nghĩa 3.5: Quan hệ r(U) được gọi thuộc dạng chuẩn 1 nếu và chỉ nếu mọi thuộc tính của r là thuộc tính đơn.
Go Vap9876543214Hanh chinh
Go Vap,
Thu Duc
3334455555Kinh doanh
CacTrusoTrPhgMaPTenP
PHONG
PHONG
TenP MaP TrPhg Truso
Kinh doanh 5 333445555 Go Vap
Kinh doanh 5 333445555 Thu Duc
Hanh chinh 4 987654321 Go Vap
Không thuộc dạng chuẩn 1
Thuộc dạng chuẩn 1
Nhận xét: Dạng chuẩn 1 có thể dẫn đến sự trùng lặp dữ liệu. Do
đó gây ra các dị thường về cập nhật dữ liệu
![Page 119: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/119.jpg)
119
Dạng chuẩn 2 theo khóa chính (1)
Định nghĩa 3.6: Quan hệ r(U) được gọi là thuộc dạng chuẩn 2 nếu mọi thuộc tính không khóa của r phụ thuộc đầy đủ vào khóa chính của r.
r(U), K U là khóa chính của r– A U là thuộc tính không khóa nếu A K.
– X Y là PTH đầy đủ nếu A X thì (X - {A}) Y không đúng trên r. Ngược lại X Y là PTH bộ phận.
Ví dụ
FD2
FD1
DiadiemTenDATenNVSoGioMaDAMaNV
FD3
NVIEN_DUAN
Thuộc tính không khóa
PTH đầy đủ
PTH bộ phận
![Page 120: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/120.jpg)
120
Dạng chuẩn 2 theo khóa chính (2)
FD2
FD1
DiadiemTenDATenNVSoGioMaDAMaNV
FD3
NVIEN_DUAN
NV_DA1
MaNV MaDA SoGio
FD1
NV_DA2
MaNV TenNV
FD2
NV_DA3
MaDA TenDA Diadiem
FD3
3 lược đồ NV_DA1, NV_DA2, NV_DA3 thuộc dạng chuẩn 2
![Page 121: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/121.jpg)
121
Dạng chuẩn 2 theo khóa chính (3)
Nhận xét– Mọi lược đồ quan hệ thuộc dạng chuẩn 2 cũng thuộc
dạng chuẩn 1.– Còn xuất hiện sự trùng lặp dữ liệu. Do đó gây ra các dị
thường về cập nhật dữ liệu.
NHANVIEN_PHONGBAN
TenNV MaNV NgSinh DChi MaPB TenPB TrPhong
FD1
FD2Thuộc dạng chuẩn 2
![Page 122: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/122.jpg)
122
Dạng chuẩn 3 theo khóa chính (1)
Định nghĩa 3.7: Quan hệ r(U) được gọi là thuộc dạng chuẩn 3 nếu– r thuộc dạng chuẩn 2.
– Mọi thuộc tính không khóa của r không phụ thuộc bắc cầu vào khóa chính của r.
Cho r(U)– X Y là PTH bắt cầu nếu Z U, Z không là khóa và cũng không là tập
con của khóa của r mà X Z và Z Y đúng trên r.
Ví dụ
FD2
FD3
FD1
TenPBMaPB TrPhongDChiNgSinhMaNVTenNV
NHANVIEN_PHONGBAN
PTH bắt cầu
![Page 123: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/123.jpg)
123
Dạng chuẩn 3 theo khóa chính (2)
Nhận xét– Mọi lược đồ quan hệ thuộc dạng chuẩn 3 cũng thuộc dạng
chuẩn 2.
– PTH bắt cầu là nguyên nhân dẫn đến trùng lặp dữ liệu.
– Dạng chuẩn 3 là dạng chuẩn tối thiểu trong thiết kế CSDL.
NV_PB1
TenNV MaNV NgSinh Diachi MaPB
NV_PB2
MaPB TenPB TrPhg
Thuộc dạng chuẩn 3
![Page 124: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/124.jpg)
124
Dạng chuẩn 2 tổng quát
Định nghĩa 3.8: Lược đồ quan hệ R được gọi là thuộc dạng chuẩn 2 nếu mọi thuộc tính không khóa của R phụ thuộc đầy đủ vào các khóa của R.
Cho R(ABCDEF) có 2 khóa là A và BC.
FD3
FD2
FD1
FEDCBA
FD4
R
FD5
Lược đồ R không thuộc dạng chuẩn 2
![Page 125: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/125.jpg)
125
Dạng chuẩn 3 tổng quátĐịnh nghĩa 3.9: Lược đồ quan hệ R được gọi là thuộc dạng
chuẩn 3 nếu PTH X A đúng trên R thì– X là siêu khóa của R, hoặc– A là thuộc tính khóa của R.
R1(ABCDE) có 2 khóa là A và BC.
FD2
FD1
EDCBA
FD4
R1Lược đồ bên thuộc dạng chuẩn 2,nhưng khôngthuộc dạngchuẩn 3
FD5
![Page 126: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/126.jpg)
126
Dạng chuẩn Boyce - Codd (1)
Lược đồ quan hệ R được gọi là thuộc dạng chuẩn BC nếu PTH không hiển nhiên X Y đúng trên R thì X là siêu khóa của R.
R11(ABCD)
FD2
FD5
FD1
DCBA
R11
Lược đồ R11 thuộc dạng chuẩn 3,nhưng không thuộc dạng chuẩn BC
![Page 127: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/127.jpg)
127
Dạng chuẩn Boyce - Codd (2)
1ba2
2ab3
2bb4
1aa1
DCBA
R11
R111
A C D
1 a 1
2 b 1
3 a 2
4 b 2
R112
D B
1 a
2 b
Trùng lặp dữ liệu
![Page 128: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/128.jpg)
128
Dạng chuẩn Boyce - Codd (3)
Nhận xét– Mọi lược đồ quan hệ thuộc dạng chuẩn BC cũng thuộc
dạng chuẩn 3.– Dạng chuẩn BC đơn giản và chặt chẽ hơn dạng chuẩn 3.– Mục tiêu của quá trình chuẩn hóa là đưa các lược đồ
quan hệ về dạng chuẩn 3 hoặc BC.
R111
A C D
FD1
R112
B D
FD5
2 lược đồ trên thuộc dạng chuẩn BC
![Page 129: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/129.jpg)
129
Thiết kế Top-Down
Các bước thực hiện– Thiết kế lược đồ mức khái niệm với mô hình dữ liệu
cấp cao (EER).– Chuyển lược đồ khái niệm thành tập hợp các quan hệ.– Với mỗi quan hệ xác định tập PTH.– Áp dụng các quy tắc chuẩn hóa để loại bỏ các PTH bộ
phận và bắt cầu trong các quan hệ.
![Page 130: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/130.jpg)
130
3.4 Phân rã lược đồ quan hệ
Lược đồ quan hệ R(A1, …, An)– Tập hợp tất cả các thuộc tính của các thực thể.
Xác định tập PTH F trên R.
Phân rã– Sử dụng các thuật toán chuẩn hóa để tách R thành tập
các lược đồ D = {R1, …, Rm}.
Yêu cầu– Bảo toàn thuộc tính.
– Các lược đồ Ri phải ở dạng chuẩn 3 hoặc Boyce-Codd.
![Page 131: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/131.jpg)
131
Phân rã bảo toàn PTHTính chất bảo toàn PTH
– Xét lược đồ R và tập PTH F. Giả sử R được phân rã thành D = {R1, …, Rm}.
• Đặt Ri(F) = {X Y F+ : X Y Ri}.
• D được gọi là phân rã bảo toàn phụ thuộc hàm đối với F nếu
(R1(F) … Rm(F))+ = F+.
Ví dụ
FD2
FD5
FD1
DCBA
R11R111
A C D
FD1
R112
B D
FD5
![Page 132: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/132.jpg)
132
Thuật toán phân rã lược đồ DC3 và bảo toàn PTHThuật toán 3.6
Nhập: R(U), U = {A1, …, An} và tập PTH F.
Xuất: D = {R1, …, Rm}, Ri ở dạng chuẩn 3.– B1: Tìm phủ tối thiểu G của F.– B2: Với mỗi X Aj G, xây dựng lược đồ Ri(Ui),
Ui = X {Aj}. Khóa chính của Ri là X.– B3: Giả sử xong B2 ta có các lược đồ R1, …, Rm.
Nếu U1 … Um U thì xây dựng thêm lược đồ Rm+1(Um+1), Um+1 = U - (U1 … Um).
Khóa của Rm+1 là Um+1.– B4: Xuất các lược đồ Ri.
![Page 133: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/133.jpg)
133
Ví dụ phân rã bảo toàn PTH (1)Cho
– R(ABCDEFG)– F = {B A, D C, D EB, DF G}
Tách về dạng chuẩn 3, bảo toàn PTH– B1:
• Phủ tối thiểu G = {B A, D C, D B, D E, DF G}.
– B2:
– B3:• Xuất D = {R1, R2, R3}.
R(ABCDEFG)
R1(BA) R(DC) R3(DFG)R(DB) R(DE)
R2(DBCE)
![Page 134: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/134.jpg)
134
Ví dụ phân rã bảo toàn PTH (2)
Cho– R(ABCDEFGHI)– F = {B A, D C, D EB, DF G}
Tách về dạng chuẩn 3, bảo toàn PTH– B1:
• Phủ tối thiểu G = {B A, D C, D B, D E, DF G}.
– B2:
– B3:• Vì U1 U2 U3 = {ABCDEFG} nên đặt R4(HI).
– B4:• D = {R1, R2, R3, R4}.
R(ABCDEFG)
R1(BA) R3(DFG)R2(DBCE)
![Page 135: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/135.jpg)
135
Phân rã không mất thông tin (1)
Tính chất không mất thông tin– Xét lược đồ R và tập PTH F. Giả sử R được phân rã
thành D = {R1, …, Rm}.• D được gọi là phân rã không mất thông tin đối với F nếu với
mọi trạng thái r R thì (R1(r) * … * Rm(r)) = r.
Định lý 3.3– Phân rã D = {R1(U1), R2(U2)} của R(U) không mất thông
tin đối với tập PTH F nếu và chỉ nếu:• (U1 U2) (U1 – U2) F+, hoặc
• (U1 U2) (U2 – U1) F+.
![Page 136: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/136.jpg)
136
Q là một lược đồ quan hệ, F là tập phụ thuộc hàm. Q được tách thành các lược đồ con Q1, Q2, Q3...,Qn theo từng bước mà ở mỗi bước một lược đồ được tách thành hai lược đồ con và thỏa mãn điều kiện của tính chất bảo toàn thông tin thì với r là quan hệ bất kỳ của Q ta luôn có:
r = r.Q1|><|r.Q2... |><|r.Qn
Q
Q1 Q12
Q21 Q2
Q3 Q4
S A I P
SA a1 a2 b1 b2
SIP a1 b3 a3 a4
S A I P
SA a1 a2 b1 b2
SIP a1 a2 a3 a4
Vôùi Q(S,A,I,P) Q1(SA) Q2(SIP) F = {S A,SI P}Hoûi Q ñöôïc taùch thaønh Q1 vaø Q2 coù baûo toaøn thoâng tin khoâng? Böôùc 1: laäp baûng 3 doøng 5 coät Böôùc 2:laøm baèng theo phuï thuoäc haøm
Heùp taùch baûo toaøn thoâng tin
![Page 137: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/137.jpg)
137
Ví dụ: Cho Q(A,B,C,D,E,G,H,I)
F={ACB; BI ACD; ABCD; HI; ACEBCG; CGAE}
Tìm một khóa của Q.
Thuật toán tìm một khóa của một lược đồ quan hệ Q
Bước 1: K = Q+
Bước 2: A là một thuộc tính của K, đặt K’=K A. Nếu K’+=Q+ thì gán
K = K' thực hiện lại bước 2
Ví dụ: Tìm tất cả các khóa của lược đồ quan hệ và tập phụ thuộc hàm như sau: Q(C,S,Z); F={CSZ; ZC}
Xi Xi+ Sieâu khoùa khoùa
C C
S S
CS CSZ CS CS
Z ZC
CZ CZ
SZ SZC SZ SZ
CSZ CSZ CSZ
![Page 138: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/138.jpg)
138
Hệ quả: Nếu K là khóa của Q thì TN K và TD K =
Chứng minh TN K
Theo hệ quả 2 của thuật toán tìm bao đóng ta có:
K+ KTDTG
Ta chứng minh A TN A K. Thật vậy:
Nếu AK K+KTDTG Q+-A K không là khóa mâu thuẫn
Chứng minh TD K = Giả sử có thuộc tính A TD K ta sẽ dẫn đến điều mâu thuẫn.
Thật vậy:
Theo hệ quả 1 của thuật toán tìm bao đóng thì K+=(K-A)+ A
A TD có X là vế trái của một phụ thuộc hàm trong F sao cho XA (1) và AX XK+=(K-A)+ A vì AX X(K-A)+ (K-A) X (2)
(1) và (2) cho (K-A)A A(K-A)+ (K-A)+ A = (K-A)+ K+ =(K-A)+ mâu thuẫn với điều K là khóa.
![Page 139: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/139.jpg)
139
Ví dụ: Tìm tất cả các khóa của lược đồ quan hệ và tập phụ thuộc hàm như sau:
Q(C,S,Z); F={CSZ; ZC}
Giải:
TN = {S}; TG = {C,Z}
Gọi Xi là các tập con của tập TG:
Xi (TN Xi) (TN Xi)+ Sieâu
khoùakhoùa
S S
C SC Q+ SC SC
Z SZ Q+ SZ SZ
CZ SCZ Q+ SCZ
Ghi chú:
Tập thuộc tính nguồn (TN)
chứa tất cả các thuộc tính có
xuất hiện ở vế trái và không
xuất hiện ở vế phải của các
phụ thuộc hàm và các thuộc
tính không xuất hiện ở cả vế
trái lẫn vế phải của các phụ
thuộc hàm.
Tập thuộc tính trung gian
(TG) chứa tất cả các thuộc
tính xuất hiện ở cả vế trái lẫn
vế phải của các phụ thuộc
hàm.
![Page 140: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/140.jpg)
140
Thuật toán phân rã DC3, BTTT, BTPT
![Page 141: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/141.jpg)
141
Định lý: Thuật toán trên tạo ra một phân rã ở dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm
Chứng minh:
1. Chứng minh mỗi lược đồ con ở dạng chuẩn 3. Thật vậy:
Theo thuật toán thì mỗi lược đồ con Qi có dạng YB với YB Y là siêu khóa. Giả sử trong Qi có phụ thuộc hàm XA có vế trái không là siêu khóa và vế phải không là thuộc tính khóa. Ta phân làm hai trường hợp:
Trường hợp 1: A=B XB X Y YB là phụ thuộc có vế trái dư thừa, điều này trái với YB là phụ thuộc hàm trong phủ tối thiểu.
Trường hợp 2: AB AY (1). Gọi K là khóa của Qi K Y (2). A là thuộc tính không khóa nên A K (3).(1)(2)(3) K Y (4).K là khóa nên KB YB là phụ thuộc hàm có vế trái dư thừa. Điều này trái với điều phụ thuộc hàm YB là phụ thuộc hàm của phủ tối thiểu Ftt
![Page 142: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/142.jpg)
142
Định lý: Thuật toán trên tạo ra một phân rã ở dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm
Chứng minh: (tt)
2. Chứng minh phép phân rã bảo toàn phụ thuộc hàm.
Hiển nhiên Ftt G = Qi(Ftt) Ftt+ G+ (1)
Hơn nữa Ftt+ G = Qi(Ftt) Ftt
++ G+ Ftt+ G+ (2)
(1)và (2) Ftt+ = G+
3. Chứng minh phép phân rã bảo toàn thông tin.
Lập bảng kiểm tra bảo toàn thông tin. Ta lần lượt đồng nhất các giá trị theo các phụ thuộc hàm được phát hiện do thuật toán tìm bao đóng (có vế trái là tập con của Qi
+ chứa khóa).
Do Qi+ chứa khóa nên hàng của lược đồ Qi sẽ chứa toàn a là
điều phải chứng minh
![Page 143: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/143.jpg)
143
Ví dụ: cho lược đồ Q(CTHRSG),F={CT,HRC,THR,CSG,HSR}.Hãy phân rã Q thành các lược đồ con đạt dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm.
Giải:
F=Ftt={CT,HRC,THR,CSG,HSR} là phủ tối thiểu.
Áp dụng thuật toán trên Q được phân rã thành các lược đồ con Q1(CT)
Q2(HRC)
Q3(THR)
Q4(CSG)
Q5(HSR)
Khóa của Q là HSQ1,Q2,Q3,Q4,Q5 chính là kết quả phân rã
![Page 144: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/144.jpg)
144
Bài tập 1:
Cho lược đồ quan hệ R(ABCDE) và tập phụ thuộc hàm:
F = {A -> B; CD -> E; B -> C}1. Tìm một khóa của lược đồ.2. Tìm tất cả các khóa của lược đồ.3. Cho biết dạng chuẩn cao nhất của lược đồ
trên? Nếu chưa đạt dạng chuẩn 3 hãy tìm một phép phân rã thành các lược đồ con đạt dạng chuẩn 3 và bảo toàn thông tin.
![Page 145: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/145.jpg)
145
Tìm một khóa
Áp dụng các bước tìm bao đóng của tập các thuộc tính:
• Lặp 1: (BCDE)F+ = BCDE K = ABCDE.
• Lặp 2: (ACDE)F+ = ABCDE K = ACDE.
• Lặp 3: (ADE)F+ = ADEBC K = ADE.
• Lặp 4: (AE)F+ = AEBC K = ADE.
• Lặp 5: (AD)F+ = ADBCE K = AD.
AD là khoá.
![Page 146: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/146.jpg)
146
- Khóa là AD, R không đạt 2NF vì A B- Tìm một phép phân rã tách lược đồ trên thành các lược đồ
con đạt dạng chuẩn 3.Cho lược đồ quan hệ R(ABCDE) và tập phụ thuộc hàm:
F=Ftt = {A -> B; CD -> E; B -> C}Vì AD là khóa và C là thuộc tính bắc cầu qua khoá AD AD -> B (không tồn tại B -> AD) và B -> C. (AD -> C)Do đó ta tách như sau: R1(ADBE) R2(BC)F1 = {A-> B } và F2 = {B -> C}K1 = {ADE} K2 = {B}
![Page 147: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/147.jpg)
147
Ta có R2 đạt dạng chuẩn 3, còn R1 thì không, vì thuộc tính không khoá B là bắc cầu qua khoá ADE, Do A -> B
Tách R1 thành
R11(ADE) R12(AB)
K11= {ADE} K12 = {A}
F12 = {A -> B}
Kết quả: R11(ADE), R12(AB), R2(BC)
![Page 148: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/148.jpg)
148
Bài tập 2
Cho lược đồ quan hệ R(A,B,C,D,E,G,H,I,J,K) và tập các phụ thuộc hàm:
F = {A -> B ; C -> D,H,I ; I,J -> K ; B,C -> A ; H,C -> E}
1. Tìm một khóa của lược đồ.
2. Tìm tất cả các khóa của lược đồ.
3. Cho biết dạng chuẩn cao nhất của lược đồ trên? Nếu chưa đạt dạng chuẩn 3 hãy tìm một phép phân rã thành các lược đồ con đạt dạng chuẩn 3 và bảo toàn thông tin.
![Page 149: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/149.jpg)
149
1. Tìm một khóa của lược đồ
Áp dụng các bước tìm bao đóng của tập các thuộc tính:
• Lặp 1: (ABCDEGHIJK)F+ = R K = BCDEGHIJK
• Lặp 2: (BCDEGHIJK) F+ R K = BCDEGHIJK
• Lặp 3: (BDEGHIJK) F+ R K = BCDEGHIJK
• Lặp 4: (BCEGHIJK) F+ = R K = BCEGHIJK.
• Lặp 5: (BCGHIJK ) F+ = R K = BCGHIJK
• Lặp 6: (BCGHIJK ) F+ R K = BCGHIJK
• Lặp 7: (BCGIJK ) F+= R K = BCGIJK
• Lặp 8: (BCGJK ) F+ = R K = BCGJK
• Lặp 9: (BCGK ) F+ R K = BCGJK
• Lặp 10: (BCGJ ) F+ = R K = BCGJ
![Page 150: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/150.jpg)
150
2. Tìm tất cả các khóa của lược đồ
Có 2 khóa:
K1=(BCGJ)
K2=(ACGJ)
Vì?
![Page 151: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/151.jpg)
151
Cho biết dạng chuẩn cao nhất
R không đạt 2NF vì A B
![Page 152: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/152.jpg)
152
Phân rã thành các lược đồ con đạt dạng chuẩn 3 và bảo toàn thông tin
Cách 1:
Có nhiều phụ thuộc hàm có khả năng được chọn để phân rã , ví dụ như
C -> D,H,I
![Page 153: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/153.jpg)
153
Cách 2: Chọn H,C ->E
![Page 154: Ôn tập tuyển sinh cao học môn CSDL 2013](https://reader036.vdocuments.net/reader036/viewer/2022062419/558ca645d8b42a37548b4791/html5/thumbnails/154.jpg)
154
Chúc các anh chị thi đạt kết quả tốt