Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ (Bản đẹp)

Nội dung chi tiết

 Giới thiệu

 Đại số quan hệ

 Phép toán tập hợp

 Phép chọn

 Phép chiếu

 Phép tích Cartesian

 Phép kết

 Phép chia

 Các phép toán khác

 Các thao tác cập nhật trên quan hệ

pdf 81 trang phuongnguyen 7940
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ (Bản đẹp)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ (Bản đẹp)

Bài giảng Cơ sở dữ liệu - Chương 4: Đại số quan hệ (Bản đẹp)
 Chương 4
Đại số quan hệ
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 2
Giới thiệu
 Xét một số xử lý trên quan hệ NHANVIEN
 - Thêm mới một nhân viên
 - Chuyển nhân viên có tên là “Tùng” sang phòng số 1
 - Cho biết họ tên và ngày sinh các nhân viên có lương
 trên 20000
 TENNV HONV NGSINH DCHI PHAI LUONG PHONG
 Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 51
 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5
 Quang Pham 11/10/1937 450 TV HN Nam 55000 1
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 3
Giới thiệu (tt)
 Có 2 loại xử lý
 - Làm thay đổi dữ liệu (cập nhật)
  Thêm mới, xóa và sửa
 - Không làm thay đổi dữ liệu (rút trích)
  Truy vấn (query)
 Thực hiện các xử lý
 - Đại số quan hệ (Relational Algebra)
  Biểu diễn câu truy vấn dưới dạng biểu thức
 - Phép tính quan hệ (Relational Calculus)
  Biểu diễn kết quả
 - SQL (Structured Query Language)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 4
Nhắc lại
 Đại số
 - Toán tử (operator)
 - Toán hạng (operand)
 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)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 5
 Đại số quan hệ
 Biến là các quan hệ
 - Tập hợp (set)
 Toán tử là các phép toán (operations)
 - Trên tập hợp
  Hội  (union)
  Giao  (intersec)
  Trừ (difference)
 - Rút trích 1 phần của quan hệ
  Chọn  (selection)
  Chiếu (projection)
 - Kết hợp các quan hệ
  Tích Cartesian (Cartesian product)
  Kết (join)
 - Đổi tên 
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 6
Đại số quan hệ (tt)
 Hằng số là thể hiện của quan hệ
 Biểu thức
 - Được gọi là câu truy vấn
 - Là chuỗi các phép toán đại số quan hệ
 - Kết quả trả về là một thể hiện của quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 7
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 8
Phép toán tập hợp
 Quan hệ là tập hợp các bộ
 - Phép hội R  S
 - Phép giao R  S
 - Phép trừ R S
 Tính khả hợp (Union Compatibility)
 - Hai lược đồ quan hệ R(A1, A2, , An) và S(B1, B2, , Bn)
 là khả hợp nếu
  Cùng bậc n
  Và có DOM(Ai)=DOM(Bi) , 1 i n
 Kết quả của , , và là một quan hệ có cùng tên
 thuộc tính với quan hệ đầu tiên (R)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 9
Phép toán tập hợp (tt)
 Ví dụ
NHANVIEN TENNV NGSINH PHAI THANNHAN TENTN NG_SINH PHAITN
 Tung 12/08/1955 Nam Trinh 04/05/1986 Nu
 Hang 07/19/1968 Nu Khang 10/25/1983 Nam
 Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu
 Hung 09/15/1962 Nam Minh 02/28/1942 Nam
 Chau 12/30/1988 Nu
 Bậc n=3
 DOM(TENNV) = DOM(TENTN)
 DOM(NGSINH) = DOM(NG_SINH)
 DOM(PHAI) = DOM(PHAITN)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 10
Phép hội
 Cho 2 quan hệ R và S khả hợp
 Phép hội của R và S
 - Ký hiệu R  S
 - Là một quan hệ gồm các bộ thuộc R hoặc thuộc S, hoặc
 cả hai (các bộ trùng lắp sẽ bị bỏ)
 R  S = { t / t R  t S }
 Ví dụ
 R A B S A B
 1 2
 2  3
  1
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 11
Phép giao
 Cho 2 quan hệ R và S khả hợp
 Phép giao của R và S
 - Ký hiệu R  S
 - Là một quan hệ gồm các bộ thuộc R đồng thời thuộc S
 R  S = { t / t R  t S }
 Ví dụ
 R A B S A B
 1 2
 2  3
  1
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 12
Phép trừ
 Cho 2 quan hệ R và S khả hợp
 Phép giao của R và S
 - Ký hiệu R S
 - Là một quan hệ gồm các bộ thuộc R và không thuộc S
 R S = { t / t R  t S }
 Ví dụ
 R A B S A B
 1 2
 2  3
  1
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 13
Các tính chất
 Giao hoán
 R  S = S  R
 R  S = S  R
 Kết hợp
 R  (S  T) = (R  S)  T
 R  (S  T) = (R  S)  T
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 14
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 15
Phép chọn
 Được dùng để lấy ra các bộ của quan hệ R
 Các bộ được chọn phải thỏa mãn điều kiện chọn P
 Ký hiệu
  P (R)
 P là biểu thức gồm các mệnh đề có dạng
 - 
 - 
  gồm , , , , , 
  Các mệnh đề được nối lại nhờ các phép  ,  , 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 16
Phép chọn (tt)
 Kết quả trả về là một quan hệ
 - Có cùng danh sách thuộc tính với R
 - Có số bộ luôn ít hơn hoặc bằng số bộ của R
 Ví dụ
 (R) 
 R A B C D  (A=B)(D>5) 
 1 7
  5 7
   12 3
   23 10
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 17
 Phép chọn (tt)
 Phép chọn có tính giao hoán
  p1 ( p2 (R)) = 
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 18
Ví dụ 1
 Cho biết các nhân viên ở phòng số 4
 - Quan hệ: NHANVIEN
 - Thuộc tính: PHONG
 - Điều kiện: PHONG=4
  PHONG=4 (NHANVIEN)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 19
Ví dụ 2
 Tìm các nhân viên có lương trên 25000 ở phòng 4
 hoặc các nhân viên có lương trên 30000 ở phòng 5
 - Quan hệ: NHANVIEN
 - Thuộc tính: LUONG, PHONG
 - Điều kiện:
  LUONG>25000 và PHONG=4 hoặc
  LUONG>30000 và PHONG=5
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 20
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 21
Phép chiếu
 Được dùng để lấy ra một vài cột của quan hệ R
 Ký hiệu
 A1, A2, , Ak(R)
 Kết quả trả về là một quan hệ
 - Có k thuộc tính
 - Có số bộ luôn ít hơn hoặc bằng số bộ của R
 Ví dụ
 R A B C
 10 1
 20 1 A,C (R)
  30 1
  40 2
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 22
 Phép chiếu (tt)
 Phép chiếu không có tính giao hoán
 X,Y (R) = X ( Y (R)) 
 A1, A2, , An( A1, A2, , Am(R)) = 
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 23
Ví dụ 3
 Cho biết họ tên và lương của các nhân viên
 - Quan hệ: NHANVIEN
 - Thuộc tính: HONV, TENNV, LUONG
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 24
Ví dụ 4
 Cho biết mã nhân viên có tham gia đề án hoặc có
 thân nhân
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 25
Ví dụ 5
 Cho biết mã nhân viên có người thân và có tham gia
 đề án
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 26
 Ví dụ 6
 Cho biết mã nhân viên không có thân nhân nào
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 27
Phép chiếu tổng quát
 Mở rộng phép chiếu bằng cách cho phép sử dụng
 các phép toán số học trong danh sách thuộc tính
 Ký hiệu F1, F2, , Fn (E)
 - E là biểu thức ĐSQH
 - F1, F2, , Fn là các biểu thức số học liên quan đến
  Hằng số
  Thuộc tính trong E
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 28
Phép chiếu tổng quát (tt)
 Ví dụ
 - THETINDUNG(MATHE, TRIGIATHE, SOTIENSD)
 - Cho biết số tiền còn lại trong mỗi thẻ
 MATHE, TRIGIATHE SOTIENSD (THETINDUNG)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 29
Chuỗi các phép toán
 Kết hợp các phép toán đại số quan hệ
 - Lồng các biểu thức lại với nhau
 A1, A2, , Ak (P (R)) P ( A1, A2, , Ak (R))
 - Thực hiện từng phép toán một
  B1
 P (R) 
  B2 A1, A2, , Ak (Quan hệ kết quả ở B1)
 Cần đặt tên cho quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 30
Phép gán
 Được sử dụng để nhận lấy kết quả trả về của một
 phép toán
 - Thường là kết quả trung gian trong chuỗi các phép toán
 Ký hiệu 
 Ví dụ
 - B1 S  P (R) 
 - B2 KQ  A1, A2, , Ak (S)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 31
 Phép đổi tên
 Được dùng để đổi tên
 - Quan hệ
 Xét quan hệ R(B, C, D)
 S(R) : Đổi tên quan hệ R thành S
 - Thuộc tính
 X, C, D (R) : Đổi tên thuộc tính B thành X
 Đổi tên quan hệ R thành S và thuộc tính B thành X
 S(X,C,D)(R)
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 32
 Ví dụ 7
 Cho biết họ và tên nhân viên làm việc ở phòng số 4
 - Quan hệ: NHANVIEN
 - Thuộc tính: HONV, TENNV
 - Điều kiện: PHG=4
 C1: HONV, TENNV (PHG=4 (NHANVIEN))
 C2: NV_P4  PHG=4 (NHANVIEN)
 KQ  HONV, TENNV (NV_P4)
 KQ(HO, TEN)  HONV, TENNV (NV_P4)
 KQ(HO, TEN) ( HONV, TENNV (NV_P4))
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 33
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 34
Phép tích Cartesian
 Được dùng để kết hợp các bộ của các quan hệ lại
 với nhau
 Ký hiệu
 R S
 Kết quả trả về là một quan hệ Q
 - Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S
 - Nếu R có u bộ và S có v bộ thì Q sẽ có u v bộ
 - Nếu R có n thuộc tính và Q có m thuộc tính thì Q sẽ có
 n + m thuộc tính (R+  Q+  )
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 35
Phép tích Cartesian (tt)
 Ví dụ
 R S
 R A B
 1
  2
 S B C D
 10 +
  10 +
  20 -
  10 -
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 36
Phép tích Cartesian (tt)
 Ví dụ unambiguous
 R A B
 R S A R.B S.B C D
 1
  2 1 10 +
 1  10 +
 1  20 -
 S B C D 1  10 -
  2 10 +
 10 +
  2  10 +
  10 +
  2  20 -
  20 -
  2  10 -
  10 -
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 37
Phép tích Cartesian (tt)
 Thông thường theo sau phép tích Cartesian là phép
 chọn
 R S
 A=S.B (R S)
 A R.B S.B C D A R.B S.B C D
 1 10 + 1 10 +
 1  10 +  2  10 +
 1  20 -  2  20 -
 1  10 -
  2 10 +
  2  10 +
  2  20 -
  2  10 -
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 38
Ví dụ 8
 Với mỗi phòng ban, cho biết thông tin của người
 trưởng phòng
 - Quan hệ: PHONGBAN, NHANVIEN
 - Thuộc tính: TRPHG, MAPHG, TENNV, HONV, 
 TENPHG MAPHG TRPHG NG_NHANCHUC
Nghien cuu 5 333445555 05/22/1988
 DieuTENPHG hanh MAPHG4 987987987TRPHG NG_NHANCHUC01/01/1995 MANV TENNV HONV 
 Quan ly 1 888665555 06/19/1981
Nghien cuu 5 333445555 05/22/1988 333445555 Tung Nguyen 
 Dieu hanh 4 987987987 01/01/1995 987987987 Hung Nguyen 
 MANV TENNV HONV NGSINH DCHI PHAI LUONG PHG
 Quan ly 1 888665555 06/19/1981 888665555 Vinh Pham 
333445555 Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5
999887777 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4
987654321 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4
987987987 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 4
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 39
Ví dụ 8 (tt)
 B1: Tích Cartesian PHONGBAN và NHANVIEN
 PB_NV  (NHANVIEN PHONGBAN)
 B2: Chọn ra những bộ thỏa TRPHG=MANV
 KQ  TRPHG=MANV(PB_NV)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 40
Ví dụ 9
 Cho biết lương cao nhất trong công ty
 - Quan hệ: NHANVIEN
 - Thuộc tính: LUONG
 TENNV HONV  LUONG   LUONG 
 Tung Nguyen  40000   40000 
 Hang Bui  25000   25000 
 Nhu Le  43000   43000 
 Hung Nguyen  38000   38000 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 41
Ví dụ 9 (tt)
 B1: Chọn ra những lương không phải là lớn nhất
 R1  ( LUONG (NHANVIEN))
 R2  NHAN_VIEN.LUONG < R1.LUONG(NHANVIEN R1)
 R3  NHAN_VIEN.LUONG (R2)
 B2: Lấy tập hợp lương trừ đi lương trong R3
 KQ  LUONG (NHANVIEN) R3
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 42
Ví dụ 10
 Cho biết các phòng ban có cùng địa điểm với phòng
 số 5
 - Quan hệ: DIADIEM_PHG
 - Thuộc tính: DIADIEM, MAPHG
 - Điều kiện: MAPHG=5
 Phòng 5 có tập hợp những Phòng nào có địa điểm nằm 
 địa điểm nào? trong trong tập hợp đó?
 MAPHG DIADIEM MAPHG DIADIEM
 1 TP HCM 1 TP HCM
 4 HA NOI 4 HA NOI
 5 VUNGTAU 5 VUNGTAU
 5 NHATRANG 5 NHATRANG
 5 TP HCM 5 TP HCM
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 43
Ví dụ 10 (tt)
 B1: Tìm các địa điểm của phòng 5
 DD_P5(DD)  DIADIEM (MAPHG=5 (DIADIEM_PHG))
 B2: Lấy ra các phòng có cùng địa điểm với DD_P5
 R1  MAPHG 5 (DIADIEM_PHG)
 R2  DIADIEM=DD (R1 DD_P5)
 KQ  MAPHG (R2)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 44
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 - Kết tự nhiên (Natural join)
 - Kết có điều kiện tổng quát (Theta join)
 - Kết bằng (Equi join)
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 45
Phép kết
 Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan
 hệ thành 1 bộ
 Ký hiệu R S
 - R(A1, A2, , An) và (B1, B2, , Bm)
 Kết quả của phép kết là một quan hệ Q
 - Có n + m thuộc tính Q(A1, A2, , An, B1, B2, , Bm)
 - Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S, thỏa mãn
 một số điều kiện kết nào đó
  Có dạng Ai  Bj
  Ai là thuộc tính của R, Bj là thuộc tính của S
  Ai và Bj có cùng miền giá trị
   là phép so sánh , , , , , 
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 46
Phép kết (tt)
 Phân loại
 - Kết theta (theta join) là phép kết có điều kiện
  Ký hiệu R C S
  C gọi là điều kiện kết trên thuộc tính
 - Kết bằng (equi join) khi C là điều kiện so sánh bằng
 - Kết tự nhiên (natural join)
  Ký hiệu R S hay R S
  R+  Q+ 
  Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 47
Phép kết (tt)
 Ví dụ phép kết theta
 R B<D S
 R A B C S D E
 1 2 3 3 1
 4 5 6 6 2
 7 8 9
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 48
Phép kết (tt)
 Ví dụ phép kết bằng
 R C=D S
 R A B C S D E
 1 2 3 3 1
 4 5 6 6 2
 7 8 9
 R C=S.C S
 R A B C S C D
 1 2 3 3 1
 4 5 6 6 2
 7 8 9
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 49
Phép kết (tt)
 Ví dụ phép kết tự nhiên
 R S
 R A B C S C D A A B B C C S.CD D
 1 2 3 3 1 1 1 2 2 3 3 3 1 1
 4 5 6 6 2 4 4 5 5 6 6 6 2 2
 7 8 9
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 50
Ví dụ 11
 Cho biết nhân viên có lương hơn lương của nhân
 viên ‘Tùng’
 - Quan hệ: NHANVIEN
 - Thuộc tính: LUONG
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 51
Ví dụ 12
 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ệ: NHANVIEN, PHONGBAN
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 52
Ví dụ 13
 Với mỗi phòng ban hãy cho biết các địa điểm của
 phòng ban đó
 - Quan hệ: PHONGBAN, DDIEM_PHG
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 53
Ví dụ 8
 Với mỗi phòng ban hãy cho biết thông tin của người
 trưởng phòng
 - Quan hệ: PHONGBAN, NHANVIEN
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 54
Ví dụ 9
 Cho biết lương cao nhất trong công ty
 - Quan hệ: NHANVIEN
 - Thuộc tính: LUONG
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 55
Ví dụ 10
 Cho biết phòng ban có cùng địa điểm với phòng 5
 - Quan hệ: DDIEM_PHG
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 56
Tập đầy đủ các phép toán ĐSQH
 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ụ
  RS = RS ((R S)  (S R))
  R CS = C(R S)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 57
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 58
Phép chia
 Được dùng để lấy ra một số bộ trong quan hệ R sao
 cho thỏa với tất cả các bộ trong quan hệ S
 Ký hiệu R  S
 - R(Z) và S(X)
  Z là tập thuộc tính của R, X là tập thuộc tính của S
  X  Z
 Kết quả của phép chia là một quan hệ T(Y)
 - Với Y=Z-X
 - Có t là một bộ của T nếu với mọi bộ tS S, tồn tại bộ
 tR R thỏa 2 điều kiện
 R(Z) S(X) T(Y)
  tR(Y) = t
 X Y
  tR(X) = tS(X)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 59
Phép chia (tt)
 Ví dụ
 R  S
 R A B C D E S D E
 a a 1 a 1
 a  a 1 b 1
 a  b 1
  a  a 1
  a  b 3
  a  a 1
  a  b 1
  a  b 1
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 60
Ví dụ 14
 Cho biết mã nhân viên tham gia tất cả các đề án
 - Quan hệ: PHANCONG, DEAN
 - Thuộc tính: MANV
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 61
Ví dụ 15
 Cho biết mã nhân viên tham gia tất cả các đề án do
 phòng số 4 phụ trách
 - Quan hệ: PHANCONG, DEAN
 - Thuộc tính: MANV
 - Điều kiện: PHONG=4
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 62
Phép chia (tt)
 Biểu diễn phép chia thông qua tập đầy đủ các phép
 toán ĐSQH
 Q1  Y (R)
 Q2  Q1 S
 Q3  Y(Q2 R)
 T  Q1 Q2
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 63
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 - Hàm kết hợp (Aggregation function)
 - Phép gom nhóm (Grouping)
 - Phép kết ngoài (Outer join)
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 64
Hàm kết hợp
 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
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 65
Hàm kết hợp (tt)
 Ví dụ
 SUM(B) = 10
 R A B
 1 2 AVG(A) = 1.5
 3 4 MIN(A) = 1
 1 2
 1 2 MAX(B) = 4
 COUNT(A) = 4
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 66
Phép gom nhóm
 Được dùng để phân chia
 quan hệ thành nhiều nhóm
 dựa trên điều kiện gom
 nhóm nào đó
 G1, G2, , GnF1(A1), F2(A2), , Fn(An)(E)
 Ký hiệu
 - E là biểu thức ĐSQH
 - G1, G2, , Gn là các
 thuộc tính gom nhóm
 - F1, F2, , Fn là các hàm
 - A1, A2, , An là các
 thuộc tính tính toán trong
 hàm F
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 67
 Phép gom nhóm (tt)
 Ví dụ
 SUM(C)(R)
 R A B C
 2 7
 4 7
  2 3
  2 10 ASUM(C)(R)
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 68
 Ví dụ 16
 Tính số lượng nhân viên và lương trung bình của cả
 công ty
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 69
 Ví dụ 17
 Tính số lượng nhân viên và lương trung bình của từng
 phòng ban
 Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 70
Phép kết ngoài
 Mở rộng phép kết để tránh mất mát thông tin
 - Thực hiện phép kết
 - Lấy thêm các bộ không thỏa điều kiện kết
 Có 3 hình thức
 - Mở rộng bên trái
 - Mở rộng bên phải
 - Mở rộng 2 bên
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 71
Ví dụ 18
 Cho biết họ tên nhân viên và tên phòng ban mà họ
 phụ trách nếu có
 - Quan hệ: NHANVIEN, PHONGBAN
 - Thuộc tinh: TENNV, TENPH
 R1  NHANVIEN PHG=MAPHG PHONGBAN
 KQ  HONV,TENNV, TENPHG (R1)
 TENNV HONV TENPHG
 Tung Nguyen Nghien cuu
 Hang Bui null
 Nhu Le null
 Vinh Pham Quan ly
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 72
Nội dung chi tiết
 Giới thiệu
 Đại số quan hệ
 Phép toán tập hợp
 Phép chọn
 Phép chiếu
 Phép tích Cartesian
 Phép kết
 Phép chia
 Các phép toán khác
 Các thao tác cập nhật trên quan hệ
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 73
Các thao tác cập nhật
 Nội dung của CSDL có thể được cập nhật bằng các
 thao tác
 - Thêm (insertion)
 - Xóa (deletion)
 - Sửa (updating)
 Các thao tác cập nhật được diễn đạt thông qua
 phép toán gán
 Rnew  các phép toán trên Rold
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 74
Thao tác thêm
 Được diễn đạt
 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
 PHANCONG  PHANCONG  (‘123456789’, 20, 10)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 75
Thao tác xóa
 Được diễn đạt
 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
 PHANCONG  PHANCONG MANV=‘123456789’(PHANCONG)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 76
Ví dụ 19
 Xóa những phân công đề án có địa điểm ở ‘Ha Noi’
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 77
Thao tác sửa
 Được diễn đạt
 Rnew  F1, F2, , Fn (Rold)
 - R là quan hệ
 - Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính
 Ví dụ
 - Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần
 PHANCONG  MA_NVIEN, SODA, THOIGIAN*1.5(PHANCONG)
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 78
Ví dụ 20
 Các nhân viên làm việc trên 30 giờ sẽ được tăng
 thời gian làm việc lên 1.5 lần, còn lại tăng lên 2 lần
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 79
Bài tập về nhà
 Đọc
 - Phép toán quan hệ trên BAG / 214-220
 Bài tập
 - 5.2.1 / 207-210
 - 5.2.4 / 210-212
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 80
Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 81

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_4_dai_so_quan_he_ban_dep.pdf