c3 2 (tuan6,7)

40
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 24-May-2015

161 views

Category:

Education


1 download

TRANSCRIPT

Page 1: C3 2 (tuan6,7)

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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

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

07:48 sáng 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 (tuan6,7)

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

07:48 sáng 4Khoa CNTT

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

BANGDIEM

Page 5: C3 2 (tuan6,7)

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:48 sáng 5Khoa CNTT

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

Page 6: C3 2 (tuan6,7)

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:48 sáng 6Khoa CNTT

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

Page 7: C3 2 (tuan6,7)

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:48 sáng 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 (tuan6,7)

07:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

07:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

Đượ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ần

MODIFY (NHANVIEN; Ten =“Tùng”; Phong = 4)MODIFY (NHANVIEN; all; Luong=Luong*1.1)MODIFY(MONHOC; Mamon=“Int1001”;

sotinchi=2)

07:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

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:48 sáng 14Khoa CNTT

Page 15: C3 2 (tuan6,7)

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:48 sáng 15Khoa CNTT

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

Page 16: C3 2 (tuan6,7)

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ợpo 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:48 sáng 16Khoa CNTT

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

Page 17: C3 2 (tuan6,7)

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:48 sáng 17Khoa CNTT

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

Page 18: C3 2 (tuan6,7)

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:48 sáng 18Khoa CNTT

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

Page 19: C3 2 (tuan6,7)

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

07:48 sáng 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 (tuan6,7)

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

07:48 sáng 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 (tuan6,7)

2.1.a Phép hợpCho 2 quan hệ R và S khả hợpPhép hợp của R và S

Ký 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:48 sáng 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 (tuan6,7)

Ví dụ

07:48 sáng 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 (tuan6,7)

2.1.b. Phép giaoCho 2 quan hệ R và S khả hợpPhép giao của R và S

Ký 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:48 sáng 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 (tuan6,7)

2.1.c. Phép trừ

Cho 2 quan hệ R và S khả hợpPhép giao của R và S

Ký 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:48 sáng 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 (tuan6,7)

Các tính chất

Giao hoán

Kết hợp

07:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

07:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

Ví dụ 1Cho biết các nhân viên ở phòng số 4

Quan hệ: NHANVIEN Thuộc tính: PHGĐiều kiện: PHG=4

07:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

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:48 sáng 32Khoa CNTT

Page 33: C3 2 (tuan6,7)

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:48 sáng 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 (tuan6,7)

Ví dụ 1:

07:48 sáng 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 (tuan6,7)

Tính chất:

Ví dụ 2:

07:48 sáng 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 (tuan6,7)

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:48 sáng 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 (tuan6,7)

Ví dụ 4: Cho biết mã nhân viên có tham gia đề án hoặc

có thân nhânNV_DEAN(Manv,Madean,Sogio)THANNHAN(Manv,Hoten, Gt)

07:48 sáng 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 (tuan6,7)

Ví dụ 5:

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

07:48 sáng 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 (tuan6,7)

Ví dụ 6:

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

07:48 sáng 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 (tuan6,7)

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

07:48 sáng 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ệ