Tải bản đầy đủ (.ppt) (13 trang)

Slide bài giảng môn cơ sở dữ liệu (ĐH quốc gia HCM)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.87 MB, 13 trang )

BUỔI 7
Bài 7: (tiếp theo)
Ngôn ngữ Đại số quan hệ

Khoa HTTT - Dương Khai Phong

1


Nội dung
1. Phép kết
2. Phép chia
3. Hàm tính toán và gom nhóm

Khoa HTTT - Dương Khai

2


1. Phép kết
1.1 Phép kết
1.2 Phép kết bằng, phép kết tự nhiên
1.3 Phép kết ngoài

Khoa HTTT - Dương Khai

3


1. Phép kết (Theta-Join)


1.1 Phép kết

Theta-join (θ ): tương tự như phép tích kết hợp
với phép chọn. Điều kiện chọn gọi là điều kiện
kết.
P
Ký hiệu: R S
Trong đó R,S là các quan hệ, p là điều kiện kết
Các bộ có giá trị NULL tại thuộc tính kết nối
không xuất hiện trong kết quả của phép kết.
Phép kết với điều kiện tổng quát gọi là θ
Kết với θ là một trong những phép so sánh
( ≠ ,= ,> ,≥ ,< ,≤ )
Khoa HTTT - Dương Khai

4


1. Phép kết (Theta-Join)

1.1 Phép kết

A1> B2

Ví dụ: Cho 2 quan hệ R,S như sau:

R

S


R S
A1

A2

B1

B2

B3

B3

1

2

8

0

4

2

8

1

2


1

0

7

7

8

7

1

8

8

0

4

0

8

0

4


1

8

1

0

7

8

4

1

0

7

8

4

0

2

8


0

3

2

1

5

8

4

8

0

4

8

4

1

0

7


8

4

2

1

5

A1

A2

B1

1

2

0

1

8

0

B2


Khoa HTTT - Dương Khai

5


1. Phép kết (Theta-Join)

1.2 Phép kết bằng, kết tự nhiên

Nếu θ là phép so sánh bằng (=), phép kết gọi là
phép kết bằng (equi-join).
MAHV=TRUONGLOP
Ký hiệu:
HOCVIEN

LOP
Nếu điều kiện của equi-join là các thuộc tính
giống nhau thì gọi là phép kết tự nhiên (naturaljoin). Khi đó kết quả của phép kết loại bỏ bớt 1
cột (bỏ 1 trong 2 cột giống nhau)
Ký hiệu:
hoặc
MAHV

HOCVIEN LOP
MAHV

HOCVIEN * KETQUATHI
Khoa HTTT - Dương Khai


6


1. Phép kết (Theta-Join)

1.3 Phép kết ngoài (outer join)

Mở rộng phép kết để tránh mất thông tin
Thực hiện phép kết và sau đó thêm vào kết quả
của phép kết các bộ của quan hệ mà không phù
hợp với các bộ trong quan hệ kia.
Có 3 loại:




Left outer join
Right outer join
Full outer join

R
R
R

S
S
S

Ví dụ: In ra danh sách tất cả các học viên và
điểm số của các môn học mà học viên đó thi

(nếu có)
Khoa HTTT - Dương Khai

7


1. Phép kết (Theta-Join)

1.3 Phép kết ngoài (outer join)
HOCVIEN
Mahv

Hoten

HV01 Nguyen Van Lan
HV02 Tran Hong Son
HV03 Nguyen Le
HV04 Le Minh
KETQUATHI
Mahv Mamh

Diem

HV01 CSDL

7.0

HV02 CSDL

8.5


HV01 CTRR

8.5

HV03 CTRR

9.0

HOCVIEN
Mahv

mahv

Hoten

KETQUATHI
Mahv Mamh Diem

HV01 Nguyen Van Lan

HV01

CSDL

7.0

HV01 Nguyen Van Lan

HV01


CTRR

8.5

HV02 Tran Hong Son

HV02

CSDL

8.5

HV03 Nguyen Le

HV03

CTRR

9.0

HV04 Le Minh

Null

Null

Null

Khoa HTTT - Dương Khai


8


2. Phép chia (Division)
Định nghĩa: Q = R ÷ S = {t / ∀s ∈ S , (t , s) ∈ R}
R và S là hai quan hệ,
R+ và S+ lần lượt là tập thuộc tính của R và S.
Điều kiện S+≠ ∅ là tập con không bằng của R+.
Q là kết quả phép chia giữa R và S, Q+ = R+ - S+
Có thể diễn đạt bằng phép toán đại số như sau:
T ←π +
( R)
+
1
R −S
T ←π +
((S ×T ) − R)
+
2
1
R −S
T ← T −T
1
2
Khoa HTTT - Dương Khai

9



2. Phép chia (Division)
Ví dụ: Tìm học viên đã thi tất cả các môn
R

S

KETQUATHI
Mahv Mamh

Diem

Q

MONHOC

Mahv

Mamh

Tenmh

HV01
HV03

HV01 CSDL

7.0

CSDL


Co so du lieu

HV02 CSDL

8.5

CTRR

Cau truc roi rac

HV01 CTRR

8.5

THDC

Tin hoc dai cuong

HV03 CTRR

9.0

HV01 THDC

7.0

HV02 THDC

5.0


HV03 THDC

7.5

HV03 CSDL

6.0

KETQUA÷ MH

KETQUA ← KETQUATHI [ MaHV , MaMH ]
MH ← MONHOC[ MaMH ]

Khoa HTTT - Dương Khai

10


2. Phép chia (Division)
A

B1

B2

B3

MANV MADA

MADA


MADA

MADA

TH00
1

TH00
1

TH00
1

TH002

TH002

001

TH00
1

001

TH002

002

TH00

1

002

TH002

A/B1

A/B2

A/B3

002

DT00
1

MANV

MANV

MANV

001

001

002

003


TH00
1

002

002

DT00
1

003

Khoa HTTT - Dương Khai

11


3. Hàm tính toán và gom nhóm
Hàm tính toán gồm các hàm: avg(giatri),
min(giatri), max(giatri), sum(giatri), count(giatri).
Phép toán gom nhóm:
G1 ,G2 ,...,Gn






ℑ F1 ( A1 ), F2 ( A2 ),..., Fn ( An ) ( E )


E là biểu thức đại số quan hệ
Gi là thuộc tính gom nhóm (rỗng, nếu không gom
nhóm)
Fi là hàm tính toán
Ai là tên thuộc tính
Khoa HTTT - Dương Khai

12


3. Hàm tính toán và gom nhóm
Điểm thi cao nhất, thấp nhất, trung bình của
môn CSDL ?

ℑ max( Diem ),min( Diem ),agv ( Diem )σ Mamh = 'CSDL' ( KETQUATHI )
Điểm thi cao nhất, thấp nhất, trung bình của
từng môn ?
Mamh

ℑ max( Diem ),min( Diem ),avg ( Diem ) ( KETQUATHI )
Khoa HTTT - Dương Khai

13



×