You are on page 1of 41

CÁC PHÉP TOÁN TRÊN

MÔ HÌNH QUAN HỆ

Chủ động – Tích cực Học tập 6/3/2019 1


Đặt vấn đề
Cho lược đồ CSDL Quản lý đề án công ty
NHÂN VIÊN( Mã nhân viên, Họ đệm, Tên, Ngày sinh, Giới tính, HSL, Địa
chỉ, mã đơn vị, mã người giám sát)
ĐƠN VỊ ( mã đơn vị, tên, mã trưởng phòng, ngày bắt đầu)
DỰ ÁN ( mã dự án, tên, địa điểm, thời gian bắt đầu, mã đơn vị)
THÂN NHÂN ( tên, ngày sinh, giới tính, quan hệ, mã nhân viên)
NHÂN VIÊN – DỰ ÁN (mã dự án, mã nhân viên, số giờ)

Yêu cầu:
Cho danh sách các nhân viên Nam của công ty
Thống kê số dự án của từng đơn vị đã thực hiện
Thống kê tổng số thời gan đã làm dự án của từng nhân viên
Thống kê các dự án mà chỉ có một nhân viên tham gia làm dự án
…

Chủ động – Tích cực Học tập 6/3/2019 2


Các phép toán trên mô hình CSDL quan hệ chia làm
hai loại:
Các phép toán cập nhật: Được sử dụng để duy trì
tính đúng đắn của dữ liệu trong quan hệ
Các phép toán đại số quan hệ: Được sử dụng để
đặc tả các phép lấy thông tin ra.

Chủ động – Tích cực Học tập 6/3/2019 3


I. Các phép toán cập nhật
Phép chèn
Phép loại bỏ
Phép thay đổi

Chủ động – Tích cực Học tập 6/3/2019 4


1. Phép chèn (INSERT)
 Định nghĩa: Phép chèn thêm một bộ t vào quan hệ
r{A1, A2, …, An} có dạng r=rt.
INSERT(r;A1 =d1, A2 = d2, …, An= dn)
Trong đó: Ai, i=1->n là tên các thuộc tính; di  dom(Ai) là các
giá trị thuộc miền trị tương ứng của Ai.
Ví dụ: r(MSCB,HT,NS,GT, QQ)
Chèn thêm bộ t= (006,Vũ Đình Quang,
15/05/1976, nam, Hà nội)
Phép chèn:
INSERT(r; MSCB=006,HT=Vũ Đình Quang, NS=15/05/1976,
Gt=nam, QQ=Hà nội)
Hoặc: INSERT(r; 006,Vũ Đình Quang,15/05/1976,nam,Hà
nội)
Chủ động – Tích cực Học tập 6/3/2019 5
2. Phép loại bỏ (DEL)
 Định nghĩa: Phép loại bỏ là phép xóa một bộ ra khỏi
quan hệ r{A1, A2, …, An} cho trước, nó có dạng r=r-t.
DEL(r;A=d1, A2 = d2, …, An= dn) hoặc DEL(r;d1,d2, …,dn)
Ví dụ: r(MSCB,HT,NS,GT, QQ)
Xóa bộ t= (006,Vũ Đình Quang, 15/05/1976, nam,
Hà nội)
Phép loại bỏ:
DEL(r; MSCB=006,HT=Vũ Đình Quang, NS=15/05/1976,
Gt=nam, QQ=Hà nội)
Hoặc: DEL(r; 006,Vũ Đình Quang,15/05/1976,nam,Hà nội)

Chủ động – Tích cực Học tập 6/3/2019 6


CHú ý
 Nếu quan hệ có khóa K = {B1, B2, …, Bm}, thì phép
loại bỏ chỉ cần viết
DEL (r; B1 = e1, B2 = e2, …, Bm=em )
 Ví dụ: (xem VD trên), ta có thể viết phép loại bỏ như sau:
DEL(r; MSCB=006)

Chủ động – Tích cực Học tập 6/3/2019 7


3. Phép thay đổi (CH)
 Định nghĩa: Gọi {C1, C2, …, Cp}  {A1, A2, …, An} là
tập các thuộc tính mà tại đó các giá trị của bộ cần thay
đổi, khi đó phép thay đổi có dạng r=r\tt’.
CH(r;A1 =d1, A2 = d2, …, An= dn ; C1=e1, C2=e2, …, Cp=ep)
Nếu K = {B1, B2, …, Bm}, là khóa của quan hệ r thì có thể viết
CH(r;B1 =d1, B2 = d2, …, Bm= dm ; C1=e1, C2=e2, …, Cp=ep)
 Ví dụ: r(MSCB,HT,NS,GT, QQ)
Thay đổi t= (006,Vũ Đình Quang, 15/05/1976, nam, Hà
nội) bằng bộ t’ (006, Vũ Đình Quang, 05/11/1977, Nam.
Hà nội)
CH(r; MSCB=006,HT=Vũ Đình Quang, NS=15/05/1976,
Gt=nam, QQ=Hà nội; NS=05/11/1977)
Hoặc: CH(r; MSCB=006; NS=05/11/1977)
Chủ động – Tích cực Học tập 6/3/2019 8
II. Các phép toán đại số quan hệ
1/ Các phép toán tập hợp:
Do các quan hệ được định nghĩa như là tập hợp của
các bộ nên các phép toán hợp, giao và hiệu được định
nghĩa như các phép toán tập hợp thông thường.
Chỉ các quan hệ có cùng lược đồ mới áp dụng được
phép toán tập hợp

Chủ động – Tích cực Học tập 6/3/2019 9


a. Phép hợp – Union operation
Hợp của hai quan hệ r và s được ký hiệu là rs, cho
kết quả là một quan hệ chứa tất cả các bộ có trong r
hoặc trong s hoặc trong cả hai.
 Các bộ trùng nhau sẽ bị loại bỏ

Chủ động – Tích cực Học tập 6/3/2019 10


Ví dụ
 Cho các quan hệ r và s như sau:

r A B C s A B C

a1 b1 c1 a1 b1 c1
a2 b1 c3 a2 b2 c2
a3 b3 c3

Chủ động – Tích cực Học tập 6/3/2019 11


b. Phép giao - Intersection
 Giao của hai quan hệ r và s được ký hiệu là rs, cho
kết quả là một quan hệ chứa tất cả các bộ có trong cả
hai quan hệ r và s.

Chủ động – Tích cực Học tập 6/3/2019 12


VD: Cho hai quan hệ r và s như sau:

r A B C s A B C

a1 b1 c1 a1 b1 c1
a2 b2 c2 a2 b1 c3
a3 b3 c3

Chủ động – Tích cực Học tập 6/3/2019 13


c. Phép trừ - Minus, difference
 Phép trừ quan hệ r và s, được ký hiệu là r-s, cho kết
quả là một quan hệ chứa tất cả các bộ có trong r
nhưng không có trong s.

Chủ động – Tích cực Học tập 6/3/2019 14


Ví dụ

r A B C s A B C

a1 b1 c1 a1 b1 c1
a2 b2 c2 a2 b1 c3
a3 b3 c3

Chủ động – Tích cực Học tập 6/3/2019 15


VD: Cho hai quan hệ DOT1 và DOT2 như sau:
DOT1 DOT2

Mahv Hoten
Mahv Hoten
K1103 Le Van Tam
K1101 Le Kieu My
K1114 Tran Ngoc Han
K1114 Tran Ngoc Han
K1203 Le Thanh Hau
K1203 Le Thanh Hau
K1308 Nguyen Gia
K1308 Nguyen Gia

a/ Lập danh sách các Học viên được khen thưởng trong đợt 1
hoặc đợt 2.
b/ Lập danh sách các học viên được khen thưởng trong cả hai
đợt.
c/ Lập danh sách các học viên khen thưởng ở đợt 1 mà không
được khen thưởng ở đợt 2.

Chủ động – Tích cực Học tập 6/3/2019 16


d. Tích decac – Cartesian Product
Cho hai lược đồ quan hệ Q1(A1,A2,…,An) và
Q2(B1,B2,…,Bm). r1 và r2 lần lượt là hai quan hệ trên Q1
và Q2.
Tích decac của hai quan hệ r1 và r2 sẽ tạo thành một
quan hệ r3. Với r3 được xác định như sau:
Q3+ = Q1+  Q2+ = { A1, A2, …, An, B1, B2 ... Bm }
r3 = r1 x r2 = { (t1,t2) | t1  r1 và t2  r2 }

Quan hệ r3 là tập các bộ được ghép lần lượt từ hai


quan hệ r1 và r2. Các thành phần của r1 được đặt trước
rồi đến r2.

Chủ động – Tích cực Học tập 6/3/2019 17


VD:

r A B s C D

a1 1 1 d1
a2 2 3 d2

Chủ động – Tích cực Học tập 6/3/2019 18


2. Phép chiếu - Projection
Cho một lược đồ quan hệ Q(A1,A2,…,An). r là quan hệ trên Q,
X là tập thuộc tính với XQ+.
Phép chiếu của quan hệ r lên tập thuộc tính X là loại bỏ đi một
số thuộc tính của lược đồ Q không có trong X và giữ lại những
thuộc tính được liệt kê trong danh sách thuộc tính X


Ký hiệu:

X ( r)
Kết quả là một quan hệ chỉ chứa các thuộc tính xác định trong
X  Phép chiếu chính là phép rút trích dữ liệu theo cột
(chiều dọc)

Chủ động – Tích cực Học tập 6/3/2019 19


Ví dụ

r A B C  {B,C} (r)
a1 1 c1
a2 1 c1
a3 2 c2

Chủ động – Tích cực Học tập 6/3/2019 20


VD: Cho quan hệ:
SV ( Mã SV, Họ tên, Ngày sinh, điểm) như sau:
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

Cho danh sách gồm mã SV và điểm tương ứng?

Chủ động – Tích cực Học tập 6/3/2019 21


VD: Cho lược đồ quan hệ:
NHANVIEN( MNV, HoNV, TenNV, NS, GT, HSL, DC, MĐV)
Viết biểu thức ĐSQH: Cho biết danh sách họ tên và
lương của các nhân viên (Lương = HSL *1350000)

22 Cơ sở dữ
Chủ động – Tích cực Học tập
liệu
VD: Cho lược đồ quan hệ:
DUAN( MDA, Ten, DiaDiem, MNV )
THANNHAN( Ten, NS, GT, MNV )
Viết biểu thức ĐSQH để thực hiện các yêu cầu sau:
a/ Cho biết mã nhân viên của những nhân viên có
tham gia đề án nào đó hoặc có thân nhân

b/ Cho biết mã nhân viên của những nhân viên có


tham gia đề án và có thân nhân.

Chủ động – Tích cực Học tập Cơ sở dữ liệu 23


3. Phép chọn – Selection:
Dùng để trích chọn ra một tập con các bộ trong một
quan hệ, các bộ được trích chọn phải thoả mãn điều
kiện chọn  Phép chọn trích ra các hàng trong
quan hệ thỏa mãn điều kiện
Dạng tổng quát:  <F> ( r )
F: là biểu thức điều kiện để lựa chọn các bộ .
Biểu thức điều kiện gồm phép so sánh
(>,>=,<,<=,=,<>) và phép logic: ( phủ định ), 
(và),  (hoặc)
r: là quan hệ thực hiện chọn trên đó
Kết quả: một quan hệ có danh sách thuộc tính được
chỉ ra trong quan hệ và có các dòng thỏa mãn điều
kiện.
Chủ động – Tích cực Học tập 6/3/2019 24
Ví dụ

r A B C D

a1 1 2 d1
a1 1 2 d2
a2 1 1 d3

 (C=1) (r)

 (C=1)  (A = a1) (r) = ??

Chủ động – Tích cực Học tập 6/3/2019 25


VD: Liệt kê danh sách các sinh viên có điểm >8.

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

Chủ động – Tích cực Học tập 6/3/2019 26


 VD: Liệt kê danh sách học viên nam có nơi sinh ở ‘TpHCM’
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
K1105 Tran Minh Long Nam TpHCM K11
K1106 Le Nhat Minh Nam TpHCM K11

27
Chủ động – Tích cực Học tập 6/3/2019 27
VD: Cho lược đồ quan hệ:
NHANVIEN( MNV, HoNV, TenNV, NS, GT, HSL, DC, Phg)
ĐSQH: Cho biết họ và tên nhân viên làm việc ở phòng
số 4

28 Cơ sở dữ
Chủ động – Tích cực Học tập
liệu
4. Phép chia - Division
Cho hai lược đồ quan hệ Q1(A1,A2,…,An) và
Q2(B1,B2,…,Bm). r và s lần lượt là hai quan hệ trên Q1
và Q2 ; n>m
Phép chia quan hệ r và s sẽ tạo thành một quan hệ r3
như sau:
Q3+ = {A1, ..., An-m}
r3 = r ÷ s = { t |us : (t,u)  r }
 với mọi u thuộc s thì (t,u) thuộc r

Chủ động – Tích cực Học tập 6/3/2019 29


* VD1:

Chủ động – Tích cực Học tập 6/3/2019 30


VD2: Cho danh sách các mã HV mà học viên có
đủ điểm các môn có trong danh sách môn học

KETQUATHI MONHOC
Mahv Mamh Diem Mamh Tenmh

HV01 CSDL 7.0 CSDL Co so du lieu

HV02 CSDL 8.5 CTRR Cau truc roi rac


THDC Tin hoc dai cuong
HV01 CTRR 8.5
HV03 CTRR 9.0 MONHOC
HV01 THDC 7.0
HV02 THDC 5.0
HV03 THDC 7.5
HV03 CSDL 6.0

KETQUA

Chủ động – Tích cực Học tập 6/3/2019 31


VD3: cho danh sách tên GV có thể
giảng dạy được tất cả các môn học

Chủ động – Tích cực Học tập 6/3/2019 32


5. Phép đặt lại tên - Rename
Khi có quá nhiều phép toán quan hệ lồng vào
nhau người ta thường áp dụng mỗi phép toán
tại một thời điểm và tạo ra các kết quả trung
gian. Lúc này, ta sử dụng phép đặt tên cho
quan hệ trung gian đó.

Chủ động – Tích cực Học tập 6/3/2019 33


 Ví dụ: Cho quan hệ NHANVIEN(Hoten, MaNV,
MaDV,Luong)
 Liệt kê danh sách họ tên và lương của các
nhân viên làm việc ở đơn vị có mã số là 4
 C1: Họtên,Lương(MaĐV=4(NHANVIEN))
 C2:
KQTG   MaĐV=4(NHANVIEN)
Ketqua   Họtên,Lương(KQTG)

Chủ động – Tích cực Học tập 6/3/2019 34


6. Phép kết nối - Join
Phép nối được ký hiệu là  và được dùng để kết
hợp các bộ có liên hệ với nhau từ hai quan hệ thành
một bộ.
Dạng tổng quát của phép nối trên hai quan hệ
R{A1,A2,...,An} và S{B1,B2,...,Bn} là: R  S<Điều kiện
nối>
•Kết quả của phép kết nối là một quan hệ q, thỏa mãn
•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 điều kiện nối 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ị
•  { , , , , ,  }

Chủ động – Tích cực Học tập 6/3/2019 35


Ví dụ

r A B s C D
a1 1 1 d1
a2 1 2 d2
a3 2

r s =??
C=B

Chủ động – Tích cực Học tập 6/3/2019 36


Ví dụ
A1  B2
R S
R  S
A1 A2 B1 B2 B3
1 2 0 2 8
1 8 7 8 7
0 0 8 0 4
8 4 1 0 7
0 3 2 1 5

Chủ động – Tích cực Học tập 6/3/2019 37


Chú ý:
Nếu điều kiện kết nối chứa phép so sánh (=)
bằng thì phép kết nối được gọi là phép kết
nối bằng.
Kết nối bằng tại thuộc tính cùng tên của hai
quan hệ và một trong hai thuộc tính đó bị loại
bỏ qua phép chiếu, thì phép kết nối được gọi
là kết nối tự nhiên. Kí hiệu là "*"

Chủ động – Tích cực Học tập 6/3/2019 38


* VD:
Cho hai quan hệ:
NV(Mnv, HT, GT, MaP)
Phong(MaP, TenP, MaQL,Ngay_QL)
Viết biểu thức ĐSQH để thực hiện yêu cầu
sau:
a/ Cho danh sách gồm mã nhân viên, họ tên
và tên phòng mà nhân viên đó làm việc.
b/ Cho danh sách gồm mã phòng, tên phòng
và tên người quản lý phòng tương ứng.

Chủ động – Tích cực Học tập 6/3/2019 39


*BÀI TẬP 1: Cho Cơ sở dữ liệu sau

Chủ động – Tích cực Học tập 6/3/2019 40


Ví dụ
Cho lược đồ CSDL Quản lý đề án công ty
NV( MNV, HT, NS, GT, HSL, ĐC, MDV)
ĐV (MDV, TênDV, MTP, ngày bắt đầu)
ĐV–DD (MDV, Địa điểm)
DA ( MDA, TenDA, DD, TGBD, MDV)
THÂN NHÂN ( TenTN ,NS, GT, QH, MNV)
NV_DA (MDA, MNV, SG)
Sử dụng đại số quan hệ thực hiện các yêu cầu sau:
1.Cho biết thông tin cá nhân các NHANVIEN nữ của cơ quan
2.Cho biết danh sách các đề án mà đơn vị “Hanh chinh” thực hiện
3.Với mỗi đơn vị, cho biết tên đơn vị và địa điểm đơn vị
4.Tìm tên những nữ nhân viên và thân nhân của họ
5.Với mỗi nhân viên, cho biết họ tên của nhân viên và tên của dự án mà nhân viên đã
tham gia
6.Với mỗi đề án ở Ha Noi, liệt kê các mã số đề án (MADA), mã số đơn vị chủ trì đề án
(PHONG), họ tên trưởng phòng (TENNV, HONV), cũng như địa chỉ và ngày sinh của
người ấy.

Chủ động – Tích cực Học tập 6/3/2019 41

You might also like