C s d li u 1 ơ ở ữ ệ

Ch

ươ

ng 5: Đ i s quan h ạ ố

ễ Th

Gi ng viên: Nguy n Công ngươ

Ch

ươ

ng 5: Đ i s quan h ạ ố

 Các phép toán quan hệ  Các phép toán t p h p  Phép k tế  Hàm g p và gom nhóm ộ  K t đ quy ế ệ

2

CSDL minh h aọ

3

Các phép toán quan hệ

 Phép ch n (SELECT) ọ

 s

 s

 T ng quát:

PHONG=4(NHANVIEN) LUONG>30000(NHANVIEN) ổ

s

(R)

 Ví d : ụ (PHONG=4 AND LUONG>25000) OR (PHONG=5 AND LUONG>30000)(NHANVIEN)

4

s

Các phép toán quan h (2)ệ

 Ví dụ

5

Các phép toán quan h (3)ệ

 Tính ch t c a phép ch n:

ọ  B c c a quan h k t qu b ng v i b c c a quan ả ằ

ớ ậ ủ ệ ế

 s

 S dòng c a quan h k t qu ít h n ho c b ng ệ ế ệ (s

(R))

 s

ấ ủ ủ h ban đ u ủ ủ (R)) = s (. . .(s

(R)) . . .)) =

s ả ầ ằ ặ ơ c(R) | ≤ | R |

6

s ậ ệ ố s dòng c a quan h ban đ u | ố (s (s ANDAND . . . AND(R)

Các phép toán quan h (4)ệ

 Phép chi u (PROJECT)

ế

 p

 T ng quát:

HoNV, Tenlot, TenNV, Luong(NHANVIEN) ổ p

(R)

7

Các phép toán quan h (5)ệ

 Tính ch t c a phép chi u:

ế

ấ ủ ộ

 Các thu c tính k t qu là các thu c tính trong ả

ế ộ

ế ộ

ủ  B c c a quan h k t qu b ng s thu c tính c a danh sách thu c tính c a phép chi u ệ ế ả ằ ủ ố ộ ậ

ủ phép chi uế

 K t qu s lo i b nh ng dòng trùng nhau ữ  S dòng k t qu ít h n ho c b ng s dòng ban ơ

ả ẽ ạ ỏ

 p

ế ằ ặ ả ố

(R)) = p

(R)

8

ế ố đ u.ầ (p

Các phép toán quan h (6)ệ

 p

Phai, Luong(NHANVIEN)

9

Các phép toán quan h (7)ệ

 Phép đ t l  Đ t l

i tên ặ ạ ệ r i tên quan h :

S(R)

ặ ạ

 Đ t l

(B1, B2, ..., Bn)(R)

 Đ t l

r ặ ạ i tên thu c tính: ộ

S(B1, B2, ..., Bn)(R)

10

ặ ạ ệ r i tên thu c tính và tên quan h : ộ

Các phép toán t p h p

 Có 3 phép toán: H i (UNION), Giao

(INTERSECTION), và Hi u (DIFFERENCE)

 Gi

s có 2 quan h

ả ử

 R(A1, A2, ..., An)  S(B1, B2, ..., Bn) ỏ

ươ

ng thích h i (union ộ

ủ ậ ằ

 R và S ph i th a mãn t ả compatible):  B c c a R và S b ng nhau  dom(Ai) = dom(Bi), v i 1 ớ

11

≤ i ≤ n

Các phép toán t p h p (2)

 Phép h i (UNION): ký hi u R

S ộ t c tuple xu t hi n trong là quan h ch a t ệ ấ ứ ấ ả R ho c trong S ho c trong c S và R ặ S ệ

 Phép giao (INTERSECTION): R ˙ t c tuple xu t hi n trong ấ

ứ ấ ả

là quan h ch a t ệ c R và S ả ệ ậ

 Hi u t p h p (DIFFERENCE): R – S ệ

là quan h ch a nh ng tuple xu t hi n trong R mà không có trong S

12

¨

Các phép toán t p h p (3)

 Ví dụ

 Phép giao:

13

Các phép toán t p h p (4)

 Phép h iộ

14

Các phép toán t p h p (5)

 Phép hi uệ

STUDENT – INSTRUCTOR

INSTRUCTOR – STUDENT

15

Các phép toán t p h p (6)

R ¨

 Tính ch t:ấ  Phép h i và phép giao có tính ch t giao hoán ộ R, và R ˙ S = S ¨  Phép h i và phép giao có ộ

tính ch t liên h p ấ S = S ˙ ấ

R ợ (S˙ T) (S¨ T) = (R¨ S)¨ T, và (R˙ S)˙ T = R˙  Phép hi u t p h p không có tính giao hoán và

ệ ậ ợ

 R ˙

liên h pợ

16

S = (R ¨ S) – ((R – S) ¨ (S – R))

Các phép toán t p h p (7)

 Tích Descartes (Cartesian Product):

ng thích h i ộ ầ ươ

 Không c n t  R(A1, A2, ..., An) × S(B1, B2, ..., Bm) là m t quan h ệ

1, A2, ..., An, B1, B2, ..., Bm)

 M i tuple trong Q là m t k t h p gi a m t tuple

m+n thu c tính Q(A ộ

ộ ế ợ ữ ỗ ộ

17

trong R và m t tuple trong S ộ

Phép k tế

 Cho R(A1, A2, ..., An), S(B1, B2, ..., Bm)  Phép k t ế q (theta-join)

 R <đi uề ki nệ k t>ế S  Đi u ki n k t có d ng R.A ế ề  Ví d ụ

DUAN Phong=MaPB PHONGBAN

 Các đi u ki n so sánh còn có th là các phép

q S.B ệ ạ

ể ề

18

ệ khác ngoài so sánh b ng ằ

Phép k t (2)

ế

19

Phép k t (3)

ế

ế ự

 K t t  Còn g i là k t n i (inner join)

ế ộ

nhiên (natural join) ọ  Ký hi u là * ệ  Là phép k t ế q ộ

đi u ki n b ng trên trên các c p ặ ằ

ệ ủ  N u không có thu c tính cùng tên thì ph i đ t l i ề thu c tính cùng tên c a hai quan h ộ ả ặ ạ

 VD: PHONGBAN * DIADIEM_PHONG

20

ế tên tr cướ

Phép k t (4)

ế

21

Phép k t (5)

ế

 K t t

ế ự

 PHONGBAN * r

nhiên k t h p v i phép đ t tên ớ ế ợ (TenDA, MaDA, DiaDiem,MaPB) (DUAN)

22

Phép k t (7)

ế

l

t c tuple c a R

c v i S thì thay th nh ng

ế

ế ượ ị

 K t ngo i ph i (right outer join), ký hi u R S:

 K t ngo i ạ  K t ngo i trái R S: ạ ế i t  Gi ữ ạ ấ ả  N u tuple nào không k t đ ế ủ ả

 K t ngo i đ y đ (full outer join)

ớ thu c tính c a S b ng giá tr null ế  Ng ế

ộ ủ ế

 H i c a k t ngo i trái và k t ngo i ph i ả ộ

mà yêu c u t

ng thích m t ph n (partial compatible)

ạ i c l ượ ạ ạ ầ ế  Phép k t không yêu c u t ầ ươ

ế ng thích h i (union compatible) ầ ươ ộ

23

ế

Phép k t (8)

ế

ế

 K t ngo i trái (left outer join) ký hi u

 K t ngo i (outer join) ạ ạ

ế ệ

HoNV, Tenlot, TenNV, MaPB(NHANVIEN MaNV=TrPhong PHONGBAN)

24

p

Tính ch tấ

 Tính ch t c a phép toán quan h

ấ ủ

 R S = s

(R × S)

25

Hàm g p (Aggregate Function)

 Ký hi u là ch ệ

ữ F (F ki u)ể

 Các hàm g p g m có: COUNT, SUM,

F ộ (R) ồ

AVERAGE (AVG), MIN, MAX

 Ví d :ụ

 F COUNT MaNV, AVERAGE Luong(NHANVIEN) 

Phong F COUNT MaNV, AVERAGE Luong(NHANVIEN)

 r

26

R(Phong, SoLuongNV, LuongTB) (Phong F COUNT MaNV, AVERAGE Luong (NHANVIEN))

Hàm g p (2) ộ

27

K t đ quy

ế ệ

ế

i qu n lý c a t ng ng

ườ

ộ ủ ừ

CapTren

 K t hai thu c tính trong cùng m t quan h  Ví d : Tìm ng i ườ ả ụ CapDuoi.MaNV, CapDuoi.TenNV, CapTren.MaNV, CapTren.TenNV (r CapDuoi (NHANVIEN) CapDuoi.MaNQL=CapTren.MaNV r (NHANVIEN))

28

p

29