Professional Documents
Culture Documents
CƠ SỞ DỮ LIỆU
1
Chương 2
MÔ HÌNH DỮ LIỆU
T IN HỌ C Q UẢN LÝ
ĐẠI SỐ QUAN HỆ Nguyễn Thị Uyên Nhi
Nội dung
2
1. Giới thiệu
2. Đại số quan hệ
3. Phép toán tập hợp
4. Phép chọn
5. Phép chiếu
6. Phép tích Cartesian (Cartesian Product)
7. Phép kết
8. Các phép toán khác
9. Các thao tác cập nhật trên quan hệ
Trong số học
Toán tử: +, -, *, /
Toán hạng - biến (variables): x, y, z
Hằng (constant)
Biểu thức
(x+7) / (y-3)
(x+y)*z and/or (x+7) / (y-3)
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NGSINH) = DOM(NG_SINH)
DOM(PHAI) = DOM(PHAITN)
Quan hệ NHAN_VIEN & THAN_NHAN Khả hợp
R S = { t / tR tS }
Ví dụ
R A B S A B RS A B
1 2 1
2 3 2
1 1
2
3
Q = Q1 Q2 ?
R S = { t / tR tS }
Ví dụ
R A B S A B
RS A B
1
2
2
2
3
1
Q = Q1 Q2 ?
R S = { t / tR tS }
Ví dụ
R A B S A B RS A B
1 2 1
2 3 1
1
Q = Q1 - Q2 ?
P (R)
Ví dụ
R A B C D
(A=B)(D>5) (R)
1 7 A B C D
5 7
1 7
12 3
23 10
23 10
(p1 p2 (R)) = (
p2 p1 (R)) = p1 p2 (R)
PHONG=4 (NHAN_VIEN)
LUONG>30000 và PHONG=5
(LUONG>25000 PHONG=4) (LUONG>30000 PHONG=5) (NHAN_VIEN)
20
30
1
1
A,C (R)
1
1
40 2 2
X,Y (R) = (
X Y (R))
A1, A2, …, An( A1, A2, …, Am(R)) = A1, A2, …, An (R) , với n m
HONV,TENNV,LUONG (NHAN_VIEN)
CHÚ Ý: Câu truy vấn này không làm thay đổi dữ liệu trong
CSDL
Ví dụ 3: Cho biết ngày sinh và địa chỉ của nhân viên “Dinh Ba
Tien”
Quan hệ: NHANVIEN
Thuộc tính: NGSINH, DCHI
Điều kiện: HONV = “Dinh” TENLOT = “Ba” TENNV = “Tien”
Biểu thức ĐSQH:
Q1 ⟵ σHONV="Dinh" ∧ TENLOT="Ba" ∧ TENNV="Tien" (NHANVIEN)
KQ ⟵ πNGSINH,DCHI (Q1)
Ví dụ 4: Lập danh sách các thân nhân dưới 18 tuổi của các nhân
viên có mã là “NV001”
Quan hệ: THANNHAN
Thuộc tính: MATN, TENTN, PHAI, NGSINH, QUANHE
ĐK: MANV = “NV001”(YEAR(GETDATE())–YEAR(NGSINH))< 18
(YEAR là hàm lấy năm, GETDATE() là hàm lấy ngày tháng hiện tại)
Biểu thức ĐSQH:
Q1 ⟵ σMANV="NV001" ∧ (YEAR(GETDATE()) – YEAR(NGSINH))<18 (THANNHAN)
KQ ⟵ πMATN, TENTN, PHAI, NGSINH, QUANHE (Q1)
Câu hỏi thêm: Danh sách tất cả các nhân viên nữ trên 30 tuổi
PHAI = “Nu” YEAR(GETDATE())-YEAR(NGSINH) > 30
Tìm tên những người trưởng phòng của từng phòng ban
Quan hệ: NHANVIEN, PHONGBAN
Thuộc tính: HONV, TENLOT, TENNV, TENPHG
Nhận xét: Bài toán yêu cầu thực hiện trên hai quan hệ khác nhau,
cần lấy ra các thuộc tính từ các quan hệ
???
Dùng để kết hợp các bộ của các quan hệ lại với nhau
Ký hiệu: RS
Q = Q1 x Q2 ?
1 10 + 1 10 +
1 10 + 2 10 +
1 20 - 2 20 -
1 10 -
2 10 +
2 10 +
2 20 -
2 10 -
KQ TRPHG=MANV(PB_NV)
R B<D S
R A B C S D E A B C D E
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 1 2 3 6 2
7 8 9 4 5 6 6 2
R C S = C(R S)
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9
R C=S.C S
R A B C S C
S.C D A B C S.C D
1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9
(S.C,D) S
ĐẠI SỐ QUAN HỆ Nguyễn Thị Uyên Nhi
7.3. Phép kết tự nhiên
47
Ví dụ:
R S
R A B C S C D AA BB CC D
S.C D
1 2 3 3 1 11 22 33 31 1
4 5 6 6 2 44 55 66 62 2
7 8 9
LƯU Ý: Thường dùng phép kết này trong câu truy vấn
Cho biết nhân viên có lương hơn lương của nhân viên ‘Tùng’
Quan hệ: NHAN_VIEN
Thuộc tính: MLUONG
Với mỗi nhân viên, hãy cho biết thông tin của phòng ban mà
họ đang làm việc
Quan hệ: NHAN_VIEN, PHONG_BAN
Tập các phép toán , , , , được gọi là tập đầy đủ các phép
toán ĐSQH
Nghĩa là các phép toán có thể được biểu diễn qua chúng
Ví dụ
RS = RS ((RS) (SR))
R CS = C(RS)
Hợp: R S : R / S / R&S
Giao: R S: R &S Số thuộc tính
Trừ: R – S: R & không S không đổi
Chọn: P (R) Chọn vài bộ thỏa đk P
2. Tìm tên những người trưởng phòng của từng phòng ban
Quan hệ: NHANVIEN, PHONGBAN
Thuộc tính: HONV, TENLOT, TENNV, TENPHG
Điều kiện:
Biểu thức ĐSQH:
Q1 ⟵ PHONGBAN ⋈TRPHG=MANV NHANVIEN
KQ ⟵ πHONV,TENLOT,TENNV,TENPHG (Q1)
3. Tìm TENDA, MADA, DDIEM_DA, PHONG, TENPHG, MAPHG,
TRPHG, NGNC
Quan hệ: PHONGBAN, DEAN
Thuộc tính: TENDA, MADA, DDIEM_DA, PHONG, TENPHG,
MAPHG, TRPHG, NGNC
ĐẠI SỐ QUAN HỆ Nguyễn Thị Uyên Nhi
Bài tập:
55
4. Tìm tên và địa chỉ của tất cả các nhân viên của phòng “Nghien
cuu”
Quan hệ: NHANVIEN, PHONGBAN
Thuộc tính: HONV, TENLOT, TENNV, DCHI
Điều kiện: TENPHG = “Nghien cuu”
Biểu thức ĐSQH:
Q1 ⟵ PHONGBAN ⋈MAPHG=PHONG NHANVIEN
Q2 ⟵𝜎TENPHG="Nghien cuu" Q1
KQ ⟵ πHONV,TENLOT,TENNV,DCHI (Q2)
5. Tìm tên những nữ nhân viên và tên người thân của họ
Quan hệ: NHANVIEN, THANNHAN
Thuộc tính: HONV, TENLOT, TENNV, TENTN
Điều kiện: NHANVIEN.PHAI = “Nu”
Ví dụ
B1
S (R)
P
B2
Thuộc tính
S(X,C,D)(R)
ĐẠI SỐ QUAN HỆ Nguyễn Thị Uyên Nhi
8.3. Hàm kết hợp
61
Nhận vào tập hợp các giá trị và trả về một giá trị đơn
AVG
MIN
MAX
SUM
COUNT
SUM(B) = 10
R A B
AVG(A) = 1.5
1 2 MIN(A) = 1
3 4
MAX(B) = 4
1 2
COUNT(A) = 4
1 2
ISUM(C)(R)
SUM_C
R A B C
27
2 7
4 7
2 3
2 10 ISUM(C)(R)
A
3. Với mỗi nhân viên, cho biết họ và tên nhân viên và nhân
viên đó có bao nhiêu thân nhân.
Quan hệ: NHANVIEN, THANNHAN
Thuộc tính: HONV, TENLOT, TENNV, COUNT(MATN)
4. Với mỗi phòng ban, liệt kê tên phòng ban (TENPHG) và
lương trung bình của những nhân viên làm việc cho phòng
ban đó.
Quan hệ: PHONGBAN, NHANVIEN
Thuộc tính: TENPHG, AVG(MLUONG)
KQ ⟵𝜎LTB>5000000 Q2
Có 3 hình thức
Mở rộng bên trái (left outer join):
Mở rộng bên phải (right outer join):
Mở rộng 2 bên (full outer join):
Rnew Rold E
R là quan hệ
E là một biểu thức ĐSQH
Ví dụ
Phân công nhân viên có mã 123456789 làm thêm đề án mã số
20 với số giờ là 10
Rnew Rold E
R là quan hệ
E là một biểu thức ĐSQH
Ví dụ
Xóa các phân công đề án của nhân viên 123456789
PHAN_CONG PHAN_CONG MANV=‘123456789’(PHAN_CONG)