Professional Documents
Culture Documents
} Cho một CSDL, đưa ra các câu hỏi, nhận được các
câu trả lời.
} Vd.,
} Cho biết tất cả sinh viên có điểm trung bình > 8 điểm
thuộc các khoa TOAN, CNTT
} Cho biết các khoa có hơn 50 giảng viên
TH107 - Cơ sở Dữ liệu } Trong số các khoa, chọn sinh viên đạt điểm trung bình
Bài 3 cao nhất trong năm học trước
Đại số Quan hệ
Bài 3 3 TH107
Các phép toán quan hệ Định nghĩa Hình thức Phép chọn
} Phép chọn s } Đại số mở rộng } Phép chọn tên quan hệ R với predicate P được ký
Phép chiếu mở rộng
Phép chiếu p hiệu là sP(R)
}
}
} OUTER JOIN
} AGGREGATE FUNCTIONS và } Định nghĩa: sP(R) = {t | t Î R Ù P(t)}
} Phép toán được hình thành từ GROUPING
lý thuyết tập hợp toán học: trong đó
} phép hội È } R là một quan hệ, t là một biến bộ
} phép giao Ç } P là một công thức (predicate) bao gồm
} phép trừ -
} các operands là các hằng số hoặc thuộc tính
} phép tích Cartesian ´
} các phép so sánh: =, ≠, <, ≤, >, ≥
} các phép toán logic: Ù (AND), Ú (OR), Ø (NOT)
} Phép kết
} Phép chia ¸
} Phép chọn có tính giao hoán:
} Phép đổi tên r sP1(sP2(R)) = sP2(sP1(R)) = s(P1 Ù P2)(R)
Câu hỏi Phép chọn Định nghĩa Hình thức Phép Chiếu
Tgia ms_nv ms_da nvu tgian 1. Liệt kê tất cả các nhân viên tham } Phép chiếu trên quan hệ R với các thuộc tính
N1 D1 Quan ly 12 gia dự án D2. output là A1, …, Ak được ký hiệu là pA1, …, Ak(R)
Liệt kê các nhân viên tham gia
N2 D1 Phan tich 24 2.
với tư cách quản lý dự án. } Định nghĩa: pA1, …, Ak(R) = {t[A1, …, Ak] | t Î R}
N2 D2 Thiet ke 6
3. Liệt kê các nhân viên tham gia trong đó
N3 D3 Phan tich 10 dự án có người quản lý làm việc
hơn 40 tháng. } R là một quan hệ, t là một biến bộ
N3 D4 Tu van 48
N4 D2 Thiet ke 18 Cho biết kết quả trong mỗi trường } {A1, …, Ak} là một tập con các thuộc tính của R mà trên
N5 D2 Phan tich 24
hợp. đó phép chiếu được thực hiện
} Thứ tự của A1, …, Ak là quan trọng trong kết quả
N6 D4 Quan ly 48
N7 D3 Lap trinh 36
} Số bộ (cardinality) của pA , …, A (R) không nhất thiết bằng
1 k
N7 D5 Thiet ke 23
với R vì các bộ trùng bị loại bỏ
N8 D3 Quan ly 40 } Ta có:
} pA1, …, Ak(pA1, …, Al(R)) = pA1, …, Ak(R), với k £ l
} Phép chiếu không có tính giao hoán
...
N3 D3 Phan tich 10 3. Chỉ trả về thuộc tính ms_da.
...
N3 D4 Tu van 48
Cho biết kết quả với mỗi trường
N4 D2 Thiet ke 18
A1 A2 A3 … An A1 A2… Ak hợp.
N5 D2 Phan tich 24
N6 D4 Quan ly 48
p N7 D3 Lap trinh 36
Phép chiếu i j, n ³ k N7 D5 Thiet ke 23
i³j N8 D3 Quan ly 40
...
...
n k
Bài 3 17 TH107 19 TH107 Bài 3
} Phép toán tập hợp là phép toán hai ngôi lấy hai Dinh Ba Tien
Le Quynh Nhu
731 Tran Hung Dao, Q1, TP HCM
291 Ho Van Hue, QPN, TP HCM
Dinh Ba Tien
Tran Thanh Tam
731 Tran Hung Dao, Q1, TP HCM
543 Mai Thi Luu, Q1, TP HCM
quan hệ R và S làm input và tạo ra một quan hệ
output.
Sinhvien Ç Giaovien Sinhvien È Giaovien
} R(A1, A2,…, An), S(B1, B2,…, Bn) phải khả hợp (union HT DC HT DC
compatible), nghĩa là: Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM
} R và S cùng cấp (cùng số lượng thuộc tính) Le Quynh Nhu 291 Ho Van Hue, QPN, TP HCM
} Với mọi i, dom(Ai) = dom(Bi) Tran Thanh Tam 543 Mai Thi Luu, Q1, TP HCM
1 2 4 7 8
ten_pb, ms_tp, P2 Tu van N7 D4 Bao tri 310000 P2
3 4 4 7 8 P2 Tu van N7 D5 CAD/CAM 500000 P2
ms_da, ten_da, P3 Tai vu N5 D1 Thiet bi 150000 P1
9 10 11 1 2 9 10 11
nsach, P3 Tai vu N5 D2 Phat trien CSDL 135000 P2
3 4 2 5 6 Dan.ms_pb) ¬ P3 Tai vu N5 D3 CAD/CAM 250000 P3
D3 CAD/CAM 250000 P3
D5 CAD/CAM 500000 P2
30 TH107 Bài 2 Bài 3 32 TH107
Ví dụ P1 Quan ly N8 D2 Phat trien CSDL 135000 P2 Phép kết … với 6 phép so sánh
P1 Quan ly N8 D3 CAD/CAM 250000 P3
P1 Quan ly N8 D4 Bao tri 310000 P2 } Svien ms_sv=ms_gv Gvien
P1 Quan ly N8 D5 CAD/CAM 500000 P2
P2 Tu van N7 D1 Thiet bi 150000 P1 } Svien Svien.tuoi>Gvien.tuoi Gvien
Pban.ms_pb ten_pb ms_tp ms_da ten_da nsach Dan.ms_pb
P2
P1
P2
Tu van
Quan ly
Tu van
N7
N8
N7
D2
D1
D3
Phat trien CSDL
Thiet bi
CAD/CAM
135000
150000
250000
P2
P1
P3
} Svien Svien.luong≥Gvien.luong Gvien
P2
P2
P2
Tu van
Tu van
Tu van
N7
N7
N7
D2
D4
D4
Phat trien CSDL
Bao tri
Bao tri
135000
310000
310000
P2
P2
P2
} …
P2 Tu van N7 D5 CAD/CAM 500000 P2
P2
P3
Tu van
Tai vu
N7
N5
D5
D1
CAD/CAM
Thiet bi
500000
150000
P2
P1 } Phép kết đôi khi còn được gọi là q-Kết, trong đó
P3 Tai vu N5 D3 CAD/CAM 250000 P3
P3
P3
Tai vu
Tai vu
N5
N5
D2
D3
Phat trien CSDL
CAD/CAM
135000
250000
P2
P3
q đại diện cho một trong 6 phép so sánh.
P3 Tai vu N5 D4 Bao tri 310000 P2
P3 Tai vu N5 D5 CAD/CAM 500000 P2
P4 Phat trien null D1 Thiet bi 150000 P1
P4 Phat trien null D2 Phat trien CSDL 135000 P2
P4 Phat trien null D3 CAD/CAM 250000 P3
P4 Phat trien null D4 Bao tri 310000 P2
P4 Phat trien null D5 CAD/CAM 500000 P2
34 TH107 Bài 3 36 TH107 Bài 1
Ví dụ Ví dụ
Cho các quan hệ
R S R(A, B) và S(B, C, D).
u v A B C D
A B B C D Cho biết R * S
A B C B C D
1 2 3 2 3 4
1 2
* 2 5 6 1
3
2
4
5
7
6
8
3 4 4 7 8
6 7 8 2 3 5
A<D Ù u.B ¹ v.B 9 10 11
9 7 8 7 8 10
} Đối với phép hội, phép trừ, phép kết tự nhiên, quan hệ kết quả sẽ ten_nv, cvu, luong, ms_pb) N1 T. Vu KS 30000 P1
lấy tên thuộc tính của quan hệ đầu tiên N2 N. Thanh TK 40000 P2
} Cho biết tên các nhân viên cùng
} Đối với phép tích, các thuộc tính được đặt tên theo cách: Tên- N3 V. Minh PT 50000 P1
phòng với nhân viên V. Minh.
qh.tên.tt, trong đó tên quan hệ được lấy từ quan hệ của thuộc tính N4 T.Tram KS 30000 P3
} Khi cùng một quan hệ xuất hiện nhiều lần trong một truy N5 P. Thao KT 45000 P4
vấn, sẽ giải quyết như thế nào? pms_pb (sten_nv=‘V. Minh’ Nvien) 1 2 N6 M. Tuan KS 50000 P4
N7 T. Tam LT 60000 P2
sP (Nvien ´ p ms_pb (sten_nv=‘V. Minh’ Nvien) N8 T. Thanh LT 55000 null
rtên-qh-mới(A1, A2, …, An)(biểu-thức-quan-hệ) 2 Sử dụng phép kết thay cho phép tích và phép chọn
} Đơn giản hóa sử dụng phép gán:
tên-qh-mới(A1, A2, …, An) ¬ biểu-thức-quan-hệ
42 TH107 Bài 1 44 TH107 Bài 1
46 TH107 Bài 3
Xây dựng các Biểu thức Phức tạp Thứ tự Thực hiện Phép toán
} Kết hợp các phép toán ĐSQH bằng cách sử dụng dấu 1. các phép toán một ngôi: s, p, r
ngoặc và các quy tắc về thứ tự ưu tiên
} 3 loại ký hiệu: Lồng và dấu ngoặc
2. phép tích Cartesian và phép kết: ´,
1. Dạng lồng: Tạo một biểu • kết quả của một phép toán ĐSQH
thức ĐSQH bằng cách lồng là một quan hệ
3. phép giao, phép chia: Ç, ¸
các phép toán với nhau • các phép toán ĐSQH có thể được
lồng ghép nhau như các hàm
2. Chuỗi các phép gán: Áp
• biểu diễn dấu ngoặc để diễn đạt 4. phép hội và phép trừ: È, -
dụng tuần tự từng phép
thứ tự thực hiện phép toán
toán một, ở mỗi lần áp
dụng phép toán đặt tên Dấu ngoặc có thể được dùng để thay đổi thứ tự
Chuỗi các Phép Gán
cho quan hệ trung gian của các phép toán.
bằng cách thực hiện việc • Tạo các tên quan hệ tạm
gán tên • Có thể thực hiện việc ngầm đổi
3. Biểu diễn dạng cây tên bằng cách liệt kê các thuộc
tính
rP(ma_nvien, d, Phancong
thoigian)
Phancong
Thannhan
Outer Join Ví dụ
} Giả sử cần thực hiện phép kết R P S. } p honv, tenlot, tennv, tenphg (Nhanvien manv = trphg Phongban)
Một bộ của R mà không có bộ trong S để thực hiện phép p honv, tenlot, tennv, tenphg (Nhanvien manv = trphg Phongban)
} }
kết thì gọi là “dangling” (“mồ côi”)
} tương tự đối với S
} p honv, tenlot, tennv, tenphg(stenphg <> null (Nhanvien manv = trphg
} Phép kết ngoài (Outer join) bảo đảm giữ các bộ “mồ côi” Phongban))
bằng cách thêm vào giá trị NULL trong kết quả. honv tenlot tennv tenphg honv tenlot tennv tenphg
Dinh Ba Tien Null
Nguyen Thanh Tung Nghien Cuu
Nguyen Thanh Tung Nghien cuu
Tran Hong Quang Dieu Hanh
Bui Ngoc Hang Null
R=( A B ) S=( B C ) R S=( A B C ) Pham Van Vinh Quan Ly Le Quynh Nhu Null
1 2 2 3 1 2 3 Nguyen Manh Hung Null
4 5 6 7 4 5 Null Tran Thanh Tam Null
Vd.,
´Phân công cho nhân viên 123456789 làm thêm đề án mã số 20 với số
giờ 10.
Phancong ¬ Phancong È {(‘123456789’, 20,10)}
R Ç S = R - (R - S)
R P S = s P (R ´ S)
R *P S = p ttinh (s P (R ´ S))
R ¸ S = pA (R) - pA ((pA (R) ´ S) - R)
Bài 3 73 TH107