c3 2

103
3.2. Đại số quan hệ 3.2. Đại số quan hệ Nhập môn Cơ sở Dữ liệu

Upload: tran-thanh

Post on 01-Dec-2014

362 views

Category:

Education


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: C3 2

3.2. Đại số quan hệ3.2. Đại số quan hệ

Nhập môn Cơ sở Dữ liệu

Page 2: C3 2

Giới thiệuXét một số xử lý trên quan hệ NHANVIENThêm mới một nhân viênChuyển nhân viên có tên là “Tùng” sang phòng số

1Cho biết họ tên và ngày sinh các nhân viên có

lương thấp hơn 50000

07:18 chiều 2

54

TENNV HONV NS DCHI GT LUONG PHONG

Tung Nguyen 12/08/1955

638 NVC Q5 Nam 40000

Hang Bui 07/19/1968

332 NTH Q1 Nu 25000

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

1Tung Nguyen 12/08/1955Hang Bui 07/19/1968Nhu Le 06/20/1951Hung Nguyen 09/15/1962

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 3: C3 2

Giới thiệuXét một số xử lý trên quan hệ SINHVIEN, SV_DIEM, MONHOC

07:18 chiều 3Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem Ten

T1 Trần Văn An

C2 Lê Đình Bắc

T3 Trần Thị Hảo

T4 Vũ Đức Lâm

C3 Phạm Hải Ngọc

SINHVIEN

Masv Mamon Diem

T1 Int1001 8

T1 Int1002 9

C2 Int1003 7

C2 Int1002 3

T3 Int1003 10

T4 Int1002 8

C2 Int1001 8

T4 Int1001 7

C3 Int1003 6

SV_DIEM

Mamon Tenmon Sotinchi

Int1001 CSDL 3

Int1002 NGLT C 4

Int1003 TRR 3

MONHOC

Page 4: C3 2

Giới thiệuXét một số xử lý trên quan hệ SINHVIEN, SV_DIEM

07:18 chiều 4Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

BANGDIEM

Page 5: C3 2

Giới thiệuCác thao tác:

1.Cập nhật: Thay đổi dữ liệu (trạng thái CSDL): o Thêm các bộ mới o Xóa các bộ o Sửa giá trị của bộ

2.Các phép toán đại số quan hệCác phép toán tập hợp: hợp, giao, trừ, tích

Đề-cácCác phép toán trên cơ sở dữ liệu quan hệ:

chọn, chiếu, đổi tên, nối, chia3.Một số phép toán bổ sung: nhóm, nối ngoài

07:18 chiều 5Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ

Page 6: C3 2

1. Các thao tác cập nhật

Nội dung (trạng thái) của CSDL có thể được cập nhật bằng các thao tácThêm (insert)Xóa (delete)Sửa (modify)

Chú ý: • Chỉ đề cập thao tác và ý nghĩa, không nêu câu

lệnh trong HQTCSDL cụ thể • Xét trên một quan hệ

07:18 chiều 6Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ

Page 7: C3 2

1.1. Thêm bộ mới vào quan hệ

Được diễn đạt o R là quan hệo t là một bộ mới cần thêm vào

Ví dụo INSERT(SINHVIEN; T5,”Nguyen”, “Hong”, “Anh”)o INSERT(SV_DIEM; “T5”, “Int1002”, 9)o INSERT(SV_DIEM; “T5”, “Int1004”, 7)o INSERT(SV_DIEM; “T5”,” Int1001”, 12)

Vi phạm ràng buộco Ràng buộc miềno Ràng buộc khóao Ràng buộc tham chiếu

07:18 chiều 7

INSERT(R; t)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ

Xử lý Loại bỏ

Page 8: C3 2

07:18 chiều 8Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc

SINHVIEN

Masv Mamon Diem

T1 Int1001 8T1 Int1002 9C2 Int1003 7C2 Int1002 3T3 Int1003 10T4 Int1002 8C2 Int1001 8T4 Int1001 7C3 Int1003 6

SV_DIEM

Mamon Tenmon Sotinchi

Int1001 CSDL 3Int1002 NGLT C 4Int1003 TRR 3

MONHOC

1.1. Thêm bộ mới vào quan hệ

INSERT(SINHVIEN; “C4”, “Vũ”,null,”Luận”)INSERT(SINHVIEN; null, “Trần”,”Bá”,”Luận”)INSERT(SV_DIEM; “T1”, “Int1001”,9.5)INSERT(SV_DIEM; “T4”, “Int1007”, 6.0)

Page 9: C3 2

1.2. Thao tác xóa: Xóa một hoặc nhiều bộ theo điều kiện nào đó

Được diễn đạt o R là quan hệo f là một biểu thức ĐS

Ví dụo DELETE(SINHVIEN; Masv = “T1”)o DELETE(SV_DIEM; Masv = “T2” )

Ràng buộc có thể vi phạmo Ràng buộc tham chiếu: được tham chiếu

o Loại bỏ phép xóa, o Xóa lan truyền, o Sửa đổi giá trị khóa ngoài tham chiếu (null)

07:18 chiều 9Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ đại số quan hệ

DELETE(R; f )

Xử lí

Page 10: C3 2

07:18 chiều 10Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc

SINHVIEN

Masv Mamon Diem

T1 Int1001 8T1 Int1002 9C2 Int1003 7C2 Int1002 3T3 Int1003 10T4 Int1002 8C2 Int1001 8T4 Int1001 7C3 Int1003 6

SV_DIEM

Mamon Tenmon Sotinchi

Int1001 CSDL 3Int1002 NGLT C 4Int1003 TRR 3Int2005 KTCT 2

MONHOC

1.2. Xóa các bộ

DELETE(MONHOC; Mamon =“Int2005”)DELETE(SV_DIEM; Masv =“T1”)DELETE(MONHOC; Mamon =“Int1001”)DELETE(SV_DIEM; Masv = “T4” and Mamon =“Int1001”)DELETE(SINHVIEN; Masv =“C2”)

Page 11: C3 2

Thay đổi giá trị của các thuộc tính trong một hoặc nhiều bộ.

Ví dụo Tăng hệ số lương thêm 10 % cho tất cả nhân

viên trong quan hệ NHANVIENo “Chuyển “ nhân viên “Tùng” từ phòng Nghiên

cứu sang phòng Kỹ thuật.o Sửa số tín chỉ thành 2 của môn học có mã là

Int1001 trong quan hệ MONHOC.

07:18 chiều 11Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

1.3. Cập nhật các bộ

Page 12: C3 2

Được diễn đạt o R là quan hệo f là biểu thức đại số xác định bộo ai thuộc tính cần sửa, vi 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ầnMODIFY (NHANVIEN; Ten =“Tùng”; Phong = 4)MODIFY (NHANVIEN; all; Luong=Luong*1.1)MODIFY(MONHOC; Mamon=“Int1001”;

sotinchi=2)

07:18 chiều 12

MODIFY(R; f;<ai = vi,…>)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

1.3. Cập nhật các bộ

Page 13: C3 2

Các ràng buộc toàn vẹn có thể vi phạmo Ràng buộc miềno Với khóa chính = {xóa, chèn} => miền, toàn

vẹn thực thểo Khóa ngoài=> toàn vẹn tham chiếuVí dụ

07:18 chiều 13

MODIFY(R; f;<ai = vi,…>)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

1.3. Cập nhật các bộ

MODIFY(SINHVIEN ; Masv =“T1”; dem=“Đức”) MODIFY(SINHVIEN ; Masv =“T1”; Masv =“T5”)

MODIFY(SV_DIEM; Masv =“T1”and Mamon=“Int1001”; Diem=5.5)

MODIFY(SV_DIEM; Masv =“T1”; Mamon =“Int1002”)

Page 14: C3 2

Nội dung chi tiết

Giới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác

07:18 chiều 14Khoa CNTT

Page 15: C3 2

2. Các phép toán đại số quan hệToán hạng (Biến) là các quan hệ , tập hợp (set)

o 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ệ

Toán tử là các phép toán đại số quan (operations)

Kết quả trả về là một thể hiện của quan hệ

07:18 chiều 15Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 16: C3 2

2. Các phép toán đại số quan hệToán tử (operations) Dựa trên lý thuyết tập hợp

o Hội (union)o Giao (intersec)o Trừ (difference)

Rút trích 1 phần của quan hệo Chọn (selection)o Chiếu (projection)

Kết hợp các quan hệo Tích Đề-các (Cartesian product)o Nối (join)

Đổi tên

07:18 chiều 16Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 17: C3 2

Nội dung chi tiếtGiới thiệuCác thao tác cập nhật trên quan hệ Đại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác

07:18 chiều 17Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 18: C3 2

2.1. Phép toán tập hợpQuan hệ là tập hợp các bộ

Phép hợp R SPhép giao R SPhép trừ R S

Tính khả hợp (Tương thích đồng nhất - 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)

07:18 chiều 18Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 19: C3 2

2.1 Phép toán tập hợpVí dụ: tính khả hợp

07:18 chiều 19Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

GIAOVIEN

Ho Dem Ten Ngaysinh

HSL

Lê Văn Tám 12/01/1980

3.33

Trần Đình Trí 10/12/1970

3.66

Nguyễn

Hữu Minh 05/06/1980

3.00NHANVIEN

Ho Dem Ten Ngaysinh

HSL

Trần Văn Đức 10/01/1980

3.33

Vũ Vân Long 18/04/1971

3.66

Phạm Đức Thành 01/01/1969

3.66Bậc của 2 quan hệ n=5

Miền giá trị các thuộc tính như nhau

Page 20: C3 2

2.1 Phép toán tập hợpVí dụ: tính khả hợp

07:18 chiều 20

TENNV NS GT

Tung 12/08/1955

Nam

Hang 07/19/1968

Nu

Nhu 06/20/1951

Nu

Hung 09/15/1962

Nam

NHANVIEN TENTN NS_TN GT_TN

Trinh 04/05/1986

Nu

Khang 10/25/1983

Nam

Phuong 05/03/1958

Nu

Minh 02/28/1942

Nam

THANNHAN

Chau 12/30/1988

Nu

Bậc n=3DOM(TENNV) = DOM(TENTN)DOM(NS) = DOM(NS_TN)DOM(GT) = DOM(GT_TN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 21: C3 2

2.1.a Phép hợpCho 2 quan hệ R và S khả hợpPhép hợp của R và SKý hiệu R SLà 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ỏ)

Ví dụ 1

07:18 chiều 21

R S = { t / tR tS }

A B

R

1

2

1

A B

S

2

3

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

R S

R S

A B

1

2

1

3

Page 22: C3 2

Ví dụ

07:18 chiều 22Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

GIAOVIEN Ho Dem Ten Ngaysinh HSL

Lê Văn Tám 12/01/1980 3.33

Trần Đình Trí 10/12/1970 3.66

Nguyễn Hữu Minh 05/06/1980 3.00

NHANVIEN Ho Dem Ten Ngaysinh HSL

Trần Văn Đức 10/01/1980 3.33

Vũ Vân Long 18/04/1971 3.66

Phạm Đức Thành 01/01/1969 3.66

2.1.a Phép hợp

GIAOVIEN NHANVIEN

Ho Dem Ten Ngaysinh HSL

Lê Văn Tám 12/01/1980 3.33

Trần Đình Trí 10/12/1970 3.66

Nguyễn Hữu Minh 05/06/1980 3.00

Trần Văn Đức 10/01/1980 3.33

Vũ Vân Long 18/04/1971 3.66

Phạm Đức Thành 01/01/1969 3.66

Page 23: C3 2

2.1.b. Phép giaoCho 2 quan hệ R và S khả hợpPhép giao của R và SKý hiệu R SLà một quan hệ gồm các bộ thuộc R đồng thời

thuộc S

Ví dụ

07:18 chiều 23

R S = { t / tR tS }

A B

R

1

2

3

A B

S

2

3

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

A B

R S

2

3

Page 24: C3 2

2.1.c. Phép trừ

Cho 2 quan hệ R và S khả hợpPhép giao của R và SKý hiệu R SLà một quan hệ gồm các bộ thuộc R và không

thuộc S

Ví dụ

07:18 chiều 24

R S = { t / tR tS }

A B

R

1

2

1

A B

S

2

3

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

A B

R-S

1

1

Page 25: C3 2

Các tính chất

Giao hoán

Kết hợp

07:18 chiều 25

R S = S R

R S = S R

R (S T) = (R S) T

R (S T) = (R S) T

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 26: C3 2

2.2.a. Phép chọn

Được dùng để lấy ra các bộ của quan hệ RCác bộ được chọn phải thỏa mãn điều kiện chọn PKý hiệu

P là điều kiện chọn gồm các mệnh đề có dạngo <tên thuộc tính> <phép so sánh> <hằng số>o <tên thuộc tính> <phép so sánh> <tên thuộc tính> <phép so sánh> gồm , , , , , Các mệnh đề được nối lại nhờ các phép , ,

07:18 chiều 26

P (R)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

2.2. Các phép toán Cơ sở dữ liệu

Page 27: C3 2

Kết quả trả về là một quan hệ Có cùng danh sách thuộc tính với RCó số bộ luôn ít hơn hoặc bằng số bộ của R

Ví dụ

07:18 chiều 27

S = (A=B)(D>5) (R) A B

R

C

1

5

12

23

D

7

7

3

10

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

2.2.a. Phép chọn

A B

C

1

23

D

7

10

S

Page 28: C3 2

07:18 chiều 28Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

2.2.a. Phép chọnBANGDIEM

D_1oo1

D_1001 = (Mamon=“Int1001”)

(BANGDIEM)

Page 29: C3 2

Phép chọn có tính giao hoán

Ví dụ

Kết hợp nhiều phép chọn thành 1 phép chọn

07:18 chiều 29

p1 ( p2 (R)) =

p1 ( p2 (R)) =

Khoa CNTT

p2 ( p1 (R))

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

2.2.a. Phép chọn

(Mamon=“Int1001”) ( (Masv = “T1”)(BANGDIEM))

= (Masv=“T1”) ( (Mamon = “Int1001”)(BANGDIEM))

(p1 ^ p2) (R)

(Mamon=“Int1001”) ( (Masv = “T1”)

(BANGDIEM)) = ((Mamon=“Int1001”)^(Masv = “T1”))(BANGDIEM)

Page 30: C3 2

Ví dụ 1Cho biết các nhân viên ở phòng số 4Quan hệ: NHANVIEN Thuộc tính: PHGĐiều kiện: PHG=4

07:18 chiều 30

PHG=4 (NHANVIEN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 31: C3 2

Ví dụ 2Tìm các nhân viên có lương trên 2.5 tr ở

phòng 4 hoặc các nhân viên có lương trên 3 tr ở phòng 5Quan hệ: NHANVIENThuộc tính: LUONG, PHGĐiều kiện: LUONG>2500000 và PHG=4 hoặc LUONG>3000000 và PHG=5

07:18 chiều 31

(PHG=4 ^ LUONG>2500000) (PHG=5 ^ LUONG>3000000) (NHANVIEN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 32: C3 2

Nội dung chi tiết

Giới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác

07:18 chiều 32Khoa CNTT

Page 33: C3 2

2.2.b Phép chiếuLấy ra một số cột của quan hệ RKý hiệu

Kết quả trả về là một quan hệ o Có k thuộc tínho Có số bộ luôn ít hơn hoặc bằng số bộ của R (loại các bộ

trùng)

Ví dụ

07:18 chiều 33

A1, A2, …, Ak(R)

A B

R

10

20

30

C

1

1

1

40 2

S=A,C (R)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

R: lược đồ quan hệ

A1, A2,,,Ak tập thuộc tính của R

Page 34: C3 2

Ví dụ 1:

07:18 chiều 34Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

2.2.b Phép chiếuBANGDIEM

DS1 = Masv,Ho,Dem,Ten,Diem

(BANGDIEM) DS1

Page 35: C3 2

Tính chất:

Ví dụ 2:

07:18 chiều 35

X (Y (R)) =

Khoa CNTT

X (R)

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

2.2.b Phép chiếu

Masv,Ho,Dem,Ten (Masv,Ho,Dem,Ten,Mamon (R)) =

Masv,Ho,Dem,Ten (R)

A1,A2,..,Ak (B1,B2,..Bn(R)) B1,B2,..,Bn(A1,A2,..Ak(R)) ?

Page 36: C3 2

Ví dụ 3

Cho biết họ tên và lương của các nhân viênQuan hệ: NHANVIENThuộc tính: HONV, TENNV, LUONG

07:18 chiều 36

HONV, TENNV, LUONG(NHANVIEN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 37: C3 2

Ví dụ 4:

Cho biết mã nhân viên có tham gia đề án hoặc có thân nhân

NV_DEAN(Manv,Madean,Sogio)THANNHAN(Manv,Hoten, Gt)

07:18 chiều 37

Manv(NV_DEAN)

Manv(THANNHAN)

Manv(NV_DEAN) Manv(THANNHAN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 38: C3 2

Ví dụ 5:

Cho biết mã nhân viên có người thân và có tham gia đề án

07:18 chiều 38Khoa CNTT

Manv(NV_DEAN) Manv(THANNHAN)

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 39: C3 2

Ví dụ 6 :

Cho biết mã nhân viên không có thân nhân nào

07:18 chiều 39Khoa CNTT

Manv(NV_DEAN) - Manv(THANNHAN)

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 40: C3 2

Ví dụ7 : Danh sách sinh viên (Mã, Họ, đệm, tên, mã môn) nợ môn

07:18 chiều 40Khoa CNTT

Masv,Ho,Dem,Ten,Mamon((Diem<5)(BANGDIEM))

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 41: C3 2

Ví dụ : Lấy ra danh sách Masv, Ho,Dem,Ten, Mamon của những sinh viên có điểm <5

07:18 chiều 41Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Chuỗi phép toán và phép toán đổi tên

Masv,Ho,Dem,Ten,Mamon((Diem<5)(BANGDIEM))

Ví dụ : Lấy ra danh sách Manv, Ho,Dem,Ten, của nhân viên phòng 4 có lương trên 3000000

Masv,Ho,Dem,Ten,Mamon ((Luong >3000000)((PHG=4)(NHANVIEN)))

↔ Masv,Ho,Dem,Ten,Mamon ((Luong >3000000 ^ PHG=4)(NHANVIEN)))

Page 42: C3 2

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

Thực hiện từng phép toán một B1

B2

07:18 chiều 42

A1, A2, …, Ak (P (R)) P (A1, A2, …, Ak (R))

P (R)

A1, A2, …, Ak (Quan hệ kết quả ở B1)

Cần đặt tên cho quan hệ

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Chuỗi phép toán và phép toán đổi tên

Page 43: C3 2

Phép gánĐược sử dụng để nhận lấy kết quả trả về của

một phép toánThường là kết quả trung gian trong chuỗi các

phép toán Ký hiệu , =

Ví dụB1

B2

07:18 chiều 43

S P (R)

KQ A1, A2, …, Ak (S)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 44: C3 2

Phép đổi tên ( - rho)Được dùng để đổi tên, thuộc tính lược đồ quan

hệ

Các dạng:

07:18 chiều 44

S(R) -> Đổi tên quan hệ R thành S

Xét lược đồ quan hệ R(B, C, D)

X, C, D (R) -> Đổi tên thuộc tính B thành X

S(X,C,D)(R) -> Đổi tên quan hệ R thành S và thuộc tính B thành X

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 45: C3 2

Ví dụ 8Cho biết họ và tên nhân viên làm việc ở phòng số

4(tạo ra quan hệ KQ(HO,TEN)Quan hệ: NHANVIENThuộc tính: HONV, TENNVĐiều kiện: PHG=4

C1:

C2:

07:18 chiều 45

KQ(HO,TEN)(HONV, TENNV (PHG=4 (NHANVIEN)))

NV_P4 PHG=4 (NHANVIEN)

KQ HONV, TENNV (NV_P4)

HO, TEN (KQ)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 46: C3 2

Nội dung chi tiết

Giới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép toán tích CartesianPhép nốiPhép chiaCác phép toán khác

07:18 chiều 46Khoa CNTT

Page 47: C3 2

Phép toán tích Đề các

Được dùng để kết hợp các bộ của các quan hệ lại với nhau

Cho lược đồ R(A1,,An), S(B1,..Bm)Ký hiệuKết quả một quan hệ QQ(A1,,An, B1,..Bm)Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ

trong S Q ={ <t,u> | t R, u S}

Nếu R có n bộ và S có m bộ thì Q sẽ có n m bộ

07:18 chiều 47

R S

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 48: C3 2

Phép toán tích Đề các

Ví dụ

07:18 chiều 48

A B

R

1

2

B C

S

10

10

D

+

+

20 -

10 -

Khoa CNTT

R S =??

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 49: C3 2

Phép toán tích Đề cácVí dụ

07:18 chiều 49

A B

R

1

2

B C

S

10

10

D

+

+

20 -

10 -

unambiguous

A R.B

1

2

2

1

1

1

2

2

S.B

C

10

10

10

10

20

10

20

10

D

+

+

+

+

-

-

-

-

R S

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 50: C3 2

Phép toán tích Đề cácThông thường theo sau phép tích Đề-các là

phép chọn

07:18 chiều 50

R S

A R.B

1

2

2

1

1

1

2

2

S.B

C

10

10

10

10

20

10

20

10

D

+

+

+

+

-

-

-

-

A=S.B (R S)

A R.B

1

2

2

S.B

C

10

10

20

D

+

+

-

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 51: C3 2

07:18 chiều 51Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc

SINHVIEN

Masv Mamon DiemT1 Int1001 8T1 Int1002 9C2 Int1003 7C2 Int1002 3T3 Int1003 10T4 Int1002 8C2 Int1001 8T4 Int1001 7C3 Int1003 6

SV_DIEM

Ví dụ 9: đưa ra danh sách bảng điểm những sv có điểm>=8

R = Diem>=8

(SV_DIEM)

S = SINHVIEN R

KQ = Masv,Ho,Dem,Ten,Mamon,Diem(Masv=Ma (S))

Ma,Mamon,Diem(R)

Page 52: C3 2

Ví dụ 10Với mỗi phòng ban, cho biết thông tin của

người trưởng phòngQuan hệ: PHONGBAN, NHANVIEN Thuộc tính: TRPHG, MAPHG, TENNV, HONV,

07:18 chiều 52

TENPHG MAPHG TRPHG NG_NHANCHUC

Nghien cuu

5 333445555

05/22/1988

Dieu hanh 4 987987987

01/01/1995

Quan ly 1 888665555

06/19/1981TENPHG MAPHG TRPHG NG_NHANCH

UCNghien

cuu5 33344555

505/22/1988

Dieu hanh 4 987987987

01/01/1995

Quan ly 1 888665555

06/19/1981

TENNV HONV

Tung Nguyen

Hung Nguyen

333445555987987987888665555

MANV

Vinh Pham

TRPHG=MANV (PHONGBAN NHANVIEN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

TENNV HONV NS DCHI GT LUONG PHG

Tung Nguyen 12/08/1955

638 NVC Q5 Nam 40000 5

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

333445555

987987987

987654321

999887777

MANV

Vinh Pham 06/19/1981

Nam Dinh Nam 54000 1888665555

Page 53: C3 2

Ví dụ 10B1: Tích Đề-các PHONGBAN và NHANVIEN

B2: Chọn ra những bộ thỏa TRPHG=MANV

07:18 chiều 53

PB_NV (NHANVIEN PHONGBAN)

KQ TRPHG=MANV(PB_NV)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 54: C3 2

Ví dụ 11

Cho biết các phòng ban có cùng địa điểm với phòng số 5 ?o Quan hệ: DIADIEM_PHGo Thuộc tính: DIADIEM, MAPHGo Điều kiện: MAPHG=5

07:18 chiều 54

Phòng 5 có tập hợp những địa điểm nào?

Phòng nào có địa điểm nằm trong trong tập hợp đó?

DIADIEMMAPHG

1

4

5

5

TP HCM

VUNGTAU

NHATRANG

HA NOI

5 TP HCM

DIADIEMMAPHG

1

4

5

5

TP HCM

VUNGTAU

NHATRANG

HA NOI

5 TP HCM

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 55: C3 2

Ví dụ 11

B1: Tìm các địa điểm của phòng 5

B2: Lấy ra các phòng có cùng địa điểm với DD_P5

07:18 chiều 55

DD_P5 DIADIEM (MAPHG=5 (DIADIEM_PHG))

DD(DD_P5)

R2 DIADIEM=DD (R1 DD_P5)

KQ MAPHG (R2)

R1 MAPHG5 (DIADIEM_PHG)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 56: C3 2

Nội dung chi tiếtGiới thiệuCác thao tác cập nhật trên quan hệ Đại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiNối có điều kiện tổng quát (Theta join)Nối bằng (Equi join) Nối tự nhiên (Natural join)

Phép chiaCác phép toán khác

07:18 chiều 56Khoa CNTT

Page 57: C3 2

Phép toán nối (join)Nối 2 bộ có liên quan (thỏa mãn điều kiện nào

đó) từ 2 quan hệ thành 1 bộKý hiệu R S

o R(A1, A2, …, An) và S(B1, B2, …, Bm) các lược đồ quan hệo f: điều kiện nối

Kết quả là một quan hệ Q

Q= { <t,v> | f(t,v) đúng, tR, v S}

o f có dạng Ai Bj

o Ai là thuộc tính của R, Bj là thuộc tính của S o Ai và Bj có cùng miền giá trịo là phép so sánh , , , , , , kết hợp các toán tử

logic

07:18 chiều 57Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

f

Page 58: C3 2

Phép toán nối (join)Ví dụ 12:

07:18 chiều 58Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

SINHVIEN Masv Ho Dem Ten Ns Gt Lop

10001 Trần Văn Minh 1/1/1995 Nam Int1001

10002 Lê Đức Vinh 2/10/1994

Nam Int1002

10005 Vũ Văn Toàn 5/2/1989 Nam null

11007 Nguyễn

Thị Hương 2/4/1991 Nữ Int2001

LOP Malop Tenlop Giaovien

Int1001 Tin học cơ sở 1 Hồ Sỹ Đàm

Int1002 Nguyên lý Hệ ĐH Hà Quang Thụy

Int1003 Cơ sở dữ liệu Nguyễn Tuệ

Int2001 Chương trình dịch Lê Anh Cường

Int1005 Tin học cơ sở 4 Trần Thị Minh Châu

SV_LOP = SINHVIEN Lop = Malop

LOP

Page 59: C3 2

Phép toán nối (join)Ví dụ 12 (kết quả):

07:18 chiều 59Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

SV_LOP

Masv

Ho Dem Ten Ns Gt LopMalop

Tenlop Giaovien

10001

Trần Văn Minh1/1/1995

Nam

Int1001

Int1001

Tin học cơ sở 1 Hồ Sỹ Đàm

10002

Lê Đức Vinh2/10/1994

Nam

Int1002

Int1002

Nguyên lý Hệ ĐH

Hà Quang Thụy

11007

Nguyễn

ThịHương

2/4/1991

NữInt2001

Int2001

Chương trình dịch

Lê Anh Cường

- Kết hợp các bộ có điều kiện

- Thuộc tính nối có giá trị null không xuất hiện trong kết quả

Khác với tích Đề các:

Page 60: C3 2

Phép toán nối

Phân loại1. Nối theta là phép nối có điều kiện dạng tổng

quáto Ký hiệu R S

o f : điều kiện nối trên thuộc tính

2. Nối bằng (equi join) khi f là điều kiện so sánh bằng của 2 thuộc tính

07:18 chiều 60Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

f

BANGDIEM= SINHVIEN SINHVIEN.Masv = SV_DIEM.Masv

SV_DIEM

SV_DIEM(Masv, Mamon, Diem)

SINHVIEN(Masv, Ho,Dem,Ten, Ns,Gt)

BANGDIEM(SINHVIEN.Masv, Ho,Dem,Ten, Ns,Gt, SV_DIEM.Masv, Mamon, Diem)

ví dụ:

Page 61: C3 2

Phép toán nối

3. Nối tự nhiên (natural join)o Nối bằngo Hai thuộc tính nối cùng têno Loại bỏ một thuộc tính dư thừa trong kết quả

Ký hiệu R S hay R S

07:18 chiều 61Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

SV_DIEM(Masv, Mamon, Diem)

SINHVIEN(Masv, Ho,Dem,Ten, Ns,Gt)Ví dụ

BANGDIEM= SINHVIEN * SV_DIEM

BANGDIEM(Masv, Ho,Dem,Ten, Ns,Gt, Mamon, Diem)

Page 62: C3 2

Ví dụ phép nối theta

07:18 chiều 62

D E

3

S

6

1

2

A B

1

R

4

2

5

C

3

6

7 8 9

R B<D S

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 63: C3 2

Ví dụ phép nối bằng

07:18 chiều 63

D E

3

S

6

1

2

A B

1

R

4

2

5

C

3

6

7 8 9

R C=D S

C D

3

S

6

1

2

A B

1

R

4

2

5

C

3

6

7 8 9

R C=S.C S

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 64: C3 2

Ví dụ phép nối tự nhiên

07:18 chiều 64

R S

C D

3

S

6

1

2

A B

1

R

4

2

5

C

3

6

7 8 9

A B

1 2

C

3

4 5 6

S.C3

D

1

6 2

A B

1 2

C

3

4 5 6

D

1

2

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 65: C3 2

Ví dụ 14 (bài tập)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(Manv,Honv,Tennv,Phg,

Luong)Thuộc tính: LUONG

07:18 chiều 65

R(L_TUNG) Luong(Tennv=‘Tung’ (NHANVIEN))

KQ Manv,Honv,Tennv,Phg,luong(NHANVIEN Luong>L_TUNG R)

B1: Chọn ra lương của ‘Tùng’

B2: Lấy ra những bộ có lương >lương của ‘Tùng”

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 66: C3 2

Ví dụ 15 (bài tập)

Liệt kê danh sách nhân viên, 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ệco NHANVIEN(Manv,Honv,Tennv,Phg, Luong) o PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)

07:18 chiều 66Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Manv,Honv,Tennv,MaPhg,Luong(NHANVIEN)

KQ = NHANVIEN * PHONGBAN

Page 67: C3 2

Ví dụ 16(Bài tập)Với mỗi phòng ban hãy cho biết các địa điểm của

phòng ban đó (Mã, tên, địa điểm, điện thoại)PHONGBAN(MaPhg, TenPhg, TrPhg,

Ng_Nhanchuc)DDIEM_PHG(MaPhg, Ddiem, Dthoai)

07:18 chiều 67Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

R =PHONGBAN* DDIEM_PHG

KQ= MaPhg, TenPhg,Ddiem,Dthoai(R)

Page 68: C3 2

Ví dụ 17 (bài tập) Với mỗi phòng ban hãy cho biết thông tin của người

trưởng phòng(Mã phòng, tên phòng, Mã trưởng phòng, Họ, tên trưởng phòng, ngày nhận chức)PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)NHANVIEN(Manv,Honv,Tennv,Phg,Luong)

07:18 chiều 68Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 69: C3 2

Ví dụ 18Cho biết phòng ban có cùng địa điểm với phòng 5PHONGBAN(MaPhg, TenPhg, TrPhg, Ng_Nhanchuc)DDIEM_PHG(MaPhg, Ddiem, Dthoai)

07:18 chiều 69Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

DDP5 = DDIEM (MaPhg=5 (DIADIEM_PHG))

R =PHONGBAN * DDIEM_PHG

KQ= MaPhg,TenPhg (R * DDP5)

Page 70: C3 2

Tập đầy đủ các phép toán ĐSQHTập các phép toán {, , , , } là tập đầy

đủ với các phép toán ĐSQHNghĩa là các phép toán có thể được biểu diễn

qua chúngVí dụ RS = RS ((RS) (SR))

R C S = C(RS)

07:18 chiều 70Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 71: C3 2

Nội dung chi tiết

Giới thiệuCác thao tác cập nhật trên quan hệ Đại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khác

07:18 chiều 71Khoa CNTT

Page 72: C3 2

Phép chiaLấ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ệ SKý hiệu R S

Giả thiết Z, X là các tập thuộc tính của R, S với X ZKết quả của phép chia là một quan hệ T(Y), Với

Y=Z-Xt là một bộ của T nếu với mọi bộ tSS, tồn tại bộ

tRR thỏa 2 điều kiện tR(Y) = t

tR(X) = tS(X)

07:18 chiều 72

X Y

T(Y)

S(X)R(Z)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Hay: với mỗi bộ t T, với mọi u S thì <u,t> R

Page 73: C3 2

Phép chiaVí dụ

07:18 chiều 73Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

R A BA1 B1

A2 B1

A3 B1

A4 B1

A1 B2

A2 B3

A3 B3

A4 B3

A1 B4

A2 B4

A3 B4

S AA1

A2

A3

T= R S T BB1

B4

Page 74: C3 2

Phép chiaCách tính T(Y)= R(Z) S(X)

1. Y = Z-X

2. T1 = Y(R)

3. T2 = Y((S T1)-R)

4. T= T1-T2

07:18 chiều 74Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 75: C3 2

Phép chiaVí dụ

07:18 chiều 75

A B

a

a

a

a

a

a

a

a

C D

a

b

a

a

b

a

b

b

E

1

3

1

1

1

1

1

1

R D E

a

S

b

1

1

R S

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

R S

A B C

a

a

Page 76: C3 2

Phép chiaVí dụ

07:18 chiều 76Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

S A B

a1 b1

a2 b2

R A B C D

a1 b1 x1 y1

a2 b2 x1 y1

a1 b2 x1 y1

a2 b2 x1 y2

a1 b1 x1 y2

a1 b1 x2 y1

a2 b2 x2 y1

a1 b1 x2 y2

a2 b3 x1 y2

a3 b1 x1 y1

T = R S ?

Page 77: C3 2

Phép chiaVí dụ

07:18 chiều 77Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

S A B

a1 b1

a2 b2

R A B C D

a1 b1 x1 y1

a2 b2 x1 y1

a1 b2 x1 y1

a2 b2 x1 y2

a1 b1 x1 y2

a1 b1 x2 y1

a2 b2 x2 y1

a1 b1 x2 y2

a2 b3 x3 y2

a3 b1 x1 y3

1. Y = {C,D }

2. T1 = Y

(R) T1 C D

x1 y1

x1 y2

x2 y1

x2 y2

x3 y2

x1 y3

Page 78: C3 2

Phép chiaVí dụ

07:18 chiều 78Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

S A B

a1 b1

a2 b2

R A B C D

a1 b1 x1 y1

a2 b2 x1 y1

a1 b2 x1 y1

a2 b2 x1 y2

a1 b1 x1 y2

a1 b1 x2 y1

a2 b2 x2 y1

a1 b1 x2 y2

a2 b3 x3 y2

a3 b1 x1 y3

1. Y = {C,D }

2. T1 = Y (R)

T1 C D

x1 y1

x1 y2

x2 y1

x2 y2

x3 y2

x1 y3

3. T2 = Y (S T1) - R)

A B C D

a1 b1 x1 y1

a1 b1 x1 y2

a1 b1 x2 y1

a1 b1 x2 y2

a1 b1 x3 y2

a1 b1 x1 y3

a2 b2 x1 y1

a2 b2 x1 y2

a2 b2 x2 y1

a2 b2 x2 y2

a2 b2 x3 y2

a2 b2 x1 y3

Page 79: C3 2

Phép chiaVí dụ

07:18 chiều 79Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

S A B

a1 b1

a2 b2

R A B C D

a1 b1 x1 y1

a2 b2 x1 y1

a1 b2 x1 y1

a2 b2 x1 y2

a1 b1 x1 y2

a1 b1 x2 y1

a2 b2 x2 y1

a1 b1 x2 y2

a2 b3 x3 y2

a3 b1 x1 y3

1. Y = {C,D }

2. T1 = Y (R)

T1 C D

x1 y1

x1 y2

x2 y1

x2 y2

x3 y2

x1 y3

3. T2 = Y (S T1) - R)

A B C D

a1 b1 x3 y2

a1 b1 x1 y3

a2 b2 x2 y2

a2 b2 x3 y2

a2 b2 x1 y3

T2

C D

x3 y2

x1 y3

x2 y2

T C D

x1 y1

x1 y2

x2 y1

3. T = T1-T2

Page 80: C3 2

Ví dụ 1 (bài tập)

Cho biết mã nhân viên tham gia tất cả các đề ánQuan hệ: DEAN (MaDa, TenDa,Ddiem, Phong);

NV_DEAN(Manv,MaDa, Sogio)

07:18 chiều 80

DA MaDa(DEAN)

NV_DEAN MANV, MADA(NV_DEAN)

KQ MANV(NV_DEAN÷DA)

B1:

B2:

B3:

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 81: C3 2

Ví dụ 2 (bài tập)

Cho biết mã nhân viên tham gia tất cả các đề án do phòng số 4 phụ tráchQuan hệ: NHANVIEN, NV_DEAN, DEANThuộc tính: MANVĐiều kiện: PHONG=4

07:18 chiều 81

P4_DA MaDa(PHG=4 (DEAN))

NV_DA Manv MaDa(NV_DEAN)

MA_NV Manv(NV_DA÷P4_DA)

B1:

B2:

B3:

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 82: C3 2

07:18 chiều 82Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem TenT1 Trần Văn AnC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải Ngọc

SINHVIEN

Masv Malop DiemT1 Int1001T1 Int1002C2 Int1003C2 Int1002T3 Int1003T4 Int1002C2 Int1001T4 Int1001C3 Int1003T1 Int1003

SV_LOP

LOP

Malop Tenlop GiaovienInt1001 THCS Lê Văn TânInt1002 CSDL Trần Văn ThịnhInt1003 CTD Lê Đức HòaInt2003 NLHDH Lê Đức Hòa

Ví dụ 3: Hãy đưa ra danh sách sinh viên (Mã, Họ, Đệm, Tên)

đăng kí tất cả các môn học

Page 83: C3 2

Ví dụ 3(bài tập)

SINHVIEN(Masv, Ho,Dem,Ten)LOP(Malop,Tenlop,Giaovien)SV_LOP(Masv, Malop, Diem)

07:18 chiều 83

LOPMA Malop(LOP)

KQ SV*SINHVIEN

SV Masv(SV_LOP÷LOPMA)

B1: Lấy mã lớp trong LOP

B2:Lấy mã sinh viên tham gia tất cả các lớp

B3: Danh sách đầy đủ các thuộc tính

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 84: C3 2

Ví dụ 4 (bài tập): Danh sách sinh viên đăng kí các lớp do giáo viên Lê Đức Hòa dạy

SINHVIEN(Masv, Ho,Dem,Ten)LOP(Malop,Tenlop,Giaovien)SV_LOP(Masv, Malop, Diem)

07:18 chiều 84

LOPGV Malop(Giaovien=“Lê Đức Hòa”(LOP))

KQ SV*SINHVIEN

SV Masv(SV_LOP÷LOPGV)

B1: Lấy mã lớp trong do Lê Đức Hòa dạy

B2:Lấy mã sinh viên tham gia tất cả các lớp trong LOPGV

B3: Danh sách đầy đủ các thuộc tính

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 85: C3 2

Nội dung chi tiếtGiới thiệuCác thao tác cập nhật trên quan hệĐại số quan hệPhép toán tập hợpPhép chọnPhép chiếuPhép tích CartesianPhép nốiPhép chiaCác phép toán khácHàm kết hợp (Aggregation function)Phép gom nhóm (Grouping)Phép kết ngoài (Outer join)

07:18 chiều 85Khoa CNTT

Page 86: C3 2

Hàm kết hợp

Nhận vào tên thuộc tính (tập hợp các giá trị) và trả về một giá trị đơnAVGMINMAXSUMCOUNT

07:18 chiều 86Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 87: C3 2

Hàm kết hợp Ví dụ

07:18 chiều 87

A B

1

R

3

2

4

1

1

2

2

SUM(B) = 10

AVG(A) = 1.5

MIN(A) = 1

MAX(B) = 4

COUNT(A) = 4

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 88: C3 2

Phép gom nhómĐược dùng để phân chia quan hệ thành nhiều nhóm

dựa trên thuộc tính phân nhóm nào đó Ký hiệu

o R là Quan hệo Gi là thuộc tính gom nhómo F1, F2, …, Fn là các hàm kết hợpo A1, A2, …, An là các thuộc tính tính toán trong hàm F

07:18 chiều 88

G1,G2,..,Gk F F1(A1), F2(A2), …, Fn(An)(R)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 89: C3 2

Phép gom nhóm

Ví dụ

07:18 chiều 89

S1= Sum_C FSUM(C)

(R)

A B

R

2

4

2

2

C

7

7

3

10

S2 = A, Sum_C FSUM(C)

(R)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

S1 Sum_c

27

S2 A Sum_c

14

3

10

Page 90: C3 2

Ví dụ 18Tính số lượng nhân viên và lương trung bình

của cả công ty

07:18 chiều 90

F COUNT(), AVERAGE(LUONG)(NHANVIEN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 91: C3 2

Ví dụ 19Tính số lượng nhân viên và lương trung bình

của từng phòng ban

07:18 chiều 91

MAPGHF COUNT(), AVERAGE(LUONG)(NHANVIEN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Đếm số học sinh theo môn và điểm TB, LN,NN trong

SV_DIEM(Masv, Mamon, Diem)MamonF COUNT(), AVG(Diem),Max(Diem),Min(Diem)(SV_DIEM)

Page 92: C3 2

Ví dụ 20Đưa ra danh sách nhân viên có lương cao nhất

công ty

07:18 chiều 92

R1 = Luong F Max(LUONG)(NHANVIEN)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

R1*NHANVIEN

Page 93: C3 2

Ví dụ 21Đưa ra danh sách nhân viên có lương thấp hơn

lương trung bình của công ty

07:18 chiều 93

Manv,Honv,Tennv, Maphg,Luong(NHANVIEN Luong<Luong_TB R)

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

R = Luong_TB F AVG(LUONG)(NHANVIEN)

Page 94: C3 2

Phép nối ngoài

07:18 chiều 94Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem TenT1 Trần Văn AnC1 Trần Văn ĐứcC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải NgọcT2 Lê Thị Hà

Masv Malop DiemT1 Int1001 8C2 Int1003 7T3 Int1003 10T4 Int1002 8

Xét ví dụ (SINHVIEN,SV_LOP)

R = SINHVIEN * SV_LOP

Masv Ho Dem Ten Malop DiemT1 Trần Văn An Int1001 8C2 Lê Đình Bắc Int1003 7T3 Trần Thị Hảo Int1003 10T4 Vũ Đức Lâm Int1002 8

Page 95: C3 2

Phép nối ngoài

07:18 chiều 95Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem TenT1 Trần Văn AnC1 Trần Văn ĐứcC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải NgọcT2 Lê Thị Hà

Masv Malop DiemT1 Int1001 8C2 Int1003 7T3 Int1003 10T4 Int1002 8

Xét ví dụ (SINHVIEN,SV_LOP)

R = SINHVIEN ?? SV_LOP

Masv Ho Dem Ten Malop DiemT1 Trần Văn An Int1001 8C2 Lê Đình Bắc Int1003 7T3 Trần Thị Hảo Int1003 10T4 Vũ Đức Lâm Int1002 8C1 Trần Văn Đức null nullC3 Phạm Hải Ngọc null nullT2 Lê Thị Hà null null

Page 96: C3 2

Phép nối ngoàiMở rộng phép nối để tránh mất mát thông tin

o Thực hiện phép nốio Lấy thêm các bộ không thỏa điều kiện nối

Có 3 dạng1.Nối ngoài trái 2.Nối ngoài phải 3.Nối ngoài đầy đủ

07:18 chiều 96Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 97: C3 2

Phép nối ngoàiQ = R f S

= { <t,u> nếu f (t,u) đúng <t, null,..,null> nếu u S, f(t,u) sai }

07:18 chiều 97Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 98: C3 2

Phép nối ngoài

07:18 chiều 98Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Masv Ho Dem TenT1 Trần Văn AnC1 Trần Văn ĐứcC2 Lê Đình BắcT3 Trần Thị HảoT4 Vũ Đức LâmC3 Phạm Hải NgọcT2 Lê Thị Hà

Masv Malop DiemT1 Int1001 8C2 Int1003 7T3 Int1003 10T4 Int1002 8

Xét ví dụ (SINHVIEN,SV_LOP)

R = SINHVIEN.Masv,Ho,Dem,Ten,Malop,Diem (SINHVIEN f SV_LOP)

SINHVIEN.Masv Ho Dem Ten Malop DiemT1 Trần Văn An Int1001 8C2 Lê Đình Bắc Int1003 7T3 Trần Thị Hảo Int1003 10T4 Vũ Đức Lâm Int1002 8C1 Trần Văn Đức null nullC3 Phạm Hải Ngọc null nullT2 Lê Thị Hà null null

với f là SINHVIEN.Masv=SV_LOP.Masv

Page 99: C3 2

Ví dụ 20Cho 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, PHONGBANThuộc tính: TENNV, TENPH

07:18 chiều 99

R1 NHANVIEN MANV=MATRPHG PHONGBAN

KQ HONV,TENNV, TENPHG (R1)

TENNV HONV TENPHG

Tung Nguyen Nghien cuuHang Bui null

Nhu Le null

Vinh Pham Quan ly

Khoa CNTT

Nhập môn Cơ sở Dữ liệuNgôn ngữ Đại số quan hệ

Page 100: C3 2

Bài tập 1

07:18 chiều 100

T1 T1.P = T2.AT2

T1 (T1.Q = T2.A AND T1.R = T2.C)T2

T1 (T1.Q = T2.B)T2

T1 T1.P = T2.AT2

T1 (T1.Q = T2.B)T2

T1T2T1

Khoa CNTT

Page 101: C3 2

Bài tập 2 Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ: NHANVIEN(MANV, HONV, TENNV, NS, GT,

DCHI, LUONG, MANGS, MAĐV) ĐONVI(MADV, TENDV, MANQL, NGAY_BD)

DEAN(MADA, TENDA, DD_DA, MADV) THANNHAN(MANV, TEN_TN, NS, GT,

QUANHE) NV_DEAN(MANV, MADA, SOGIO) DONVI_DD(MADV, DD)

07:18 chiều 101Khoa CNTT

Page 102: C3 2

Bài tập 2(tt) Đưa ra tên và địa chỉ của tất cả các nhân viên làm

việc cho đơn vị. Với mỗi dự án có địa điểm tại Hà nội, hãy liệt kê mã

số dự án, mã số của đơn vị kiểm soát, Tên, địa chỉ và ngày sinh của người quản lý đơn vị

Tìm tên của các nhân viên làm việc trên tất cả các dự án do đơn vị có mã số 5 kiểm soát.

Tạo ra một danh sách các mã số dự án đối với các dự án có một nhân viên hoặc một người quản lý đơn vị kiểm soát dự án có tên là ‘Nam’.

Đưa ra tên của tất cả các nhân viên có nhiều hơn hoặc bằng 2 người phụ thuộc.

Đưa ra các nhân viên không có người phụ thuộc. Đưa ra tên của những người quản lý có ít nhất là một

người phụ thuộc. 07:18 chiều 102Khoa CNTT

Page 103: C3 2

Thi giữa kỳNắm được các khái niệm cơ bản về CSDL, mô

hình CSDLVẽ được lược đồ liên kết, hiểu lược đồ liên kết

mở rộng chuyển đổi được sang lược đồ quan hệ

Thực hiện được các thao tác CSDL (sử dụng các phép toán trên đại số quan hệ)

07:18 chiều 103Khoa CNTT