You are on page 1of 32

Translated from English to Vietnamese - www.onlinedoctranslator.

com
Bài 2:
Đại số quan hệ

2
Điểm học tập
1. Nhập môn đại số quan hệ
2. Đặt toán tử
3. Các toán tử quan hệ: Phép chiếu, Lựa chọn, Đổi tên, Nối
4. Tiện ích mở rộng phổ biến

3
Mục tiêu học tập
• Sau khi hoàn thành bài học này, học sinh sẽ có thể:
• Hiểu các toán tử đại số quan hệ
• Viết biểu thức đại số quan hệ

4
Từ khóa và mô tả
Từ khóa Sự miêu tả

Là định dạng biểu diễn dữ liệu dưới dạng bảng giá trị, mỗi hàng trong bảng biểu thị một tập hợp các giá trị
Mô hình dữ liệu quan hệ
dữ liệu liên quan

Bộ Là bộ sưu tập của đối tượng

Là một mã thông báo đặc biệt đại diện cho các


Nhà điều hành
phép tính như hợp, trừ, chọn, nối, v.v.

Sự biểu lộ Là một biểu thức được xây dựng từ các toán tử và toán hạng

5
Lược đồ cơ sở dữ liệu
học sinh(thẻ học sinh , first_name, Last_name, dob, giới tính, địa chỉ, ghi chú,
clazz_id) clazz(clazz_id , tên,giảng viên_id, màn hình_id) chủ thể(chủ_id , tên, tín chỉ,
phần trăm_final_exam)
ghi danh(sinh_id, môn_id,học kỳ , điểm giữa kỳ, điểm cuối kỳ) giảng viên(giảng
viên_id , first_name, Last_name, dob, giới tính, địa chỉ, email) giảng dạy(
môn_id, giảng viên_id ) cấp(mã số , from_score, to_score)

6
Cơ sở dữ liệu

học sinh
clazz
sinh viên_id first_name họ_name dob … clazz_id
clazz_id tên giảng viên_id màn hình_id
20160001 Ngọc An Bùi 18/3/1987 …
20162101 CNTT1.01-K61 02001 20160003
20160002 Anh Hoàng 20/5/1987 … 20162101
20162102 CNTT1.02-K61
20160003 Thu Hồng Trần 6/6/1987 … 20162101
20172201 CNTT2.01-K62 02002 20170001
20160004 Minh Anh Nguyễn 20/5/1987 … 20162101
20172202 CNTT2.02-K62
20170001 Nhật Ánh Nguyễn 15/5/1988 … 20172201

ghi danh
chủ thể
giữa kỳ_ cuối cùng_
phần trăm_ thẻ học sinh chủ_id học kỳ
chủ_id tên tín dụng điểm điểm
kỳ thi cuối kỳ
20160001 CNTT1110 20171 9 8,5
CNTT1110 Tin học đại cương 4 60
20160001 IT3080 20172 số 8
IT3080 Máy tính mạng 3 70
20160001 IT3090 20172 6 9
IT3090 Data base 3 70
20160001 IT4857 20172 7,5 9
IT4857 Máy tính Thị giác 3 60
20160001 IT4866 20172 7 9
IT4866 Học máy 2 70
20160002 IT3080 20172 9
20160003 CNTT1110 20171 7 6
20160004 CNTT1110 20171 6 5

7
1. Nhập môn đại số quan hệ
• Đại số quan hệ cung cấp nền tảng lý thuyết cho cơ sở dữ
liệu quan hệ, đặc biệt là các ngôn ngữ truy vấn cho cơ sở dữ
liệu quan hệ.
• Biểu thức đại số quan hệ bao gồm một hoặc nhiều toán tử
đại số quan hệ:
• Toán tử: biểu diễn phép tính
• Đầu vào: một hoặc hai quan hệ
• Đầu ra: một quan hệ
• Toán tử một ngôi (một đầu vào) so với toán tử nhị phân (hai đầu vào)

số 8
2. Đặt toán tử
2.1. liên hiệp
2.2. Ngã tư
2.3. Sự khác biệt
2.4. Sản phẩm Descartes

9
2.1. liên hiệp

• Kết hợp các bộ dữ liệu từ haimối quan hệ tương thích với công đoàn
đầu vào (có cùng bộ thuộc tính).

R1
R1 - R2 R2

-
kết quả

clazz_id tên giảng viên_id màn hình_id


20162101 CNTT1.01-K61 02001 20160003
20172201 CNTT2.01-K62 02002 20170001

10
2.2. Ngã tư
• Chỉ giữ lại các bộ dữ liệu chung từ 2 quan hệ đầu vào tương thích với
nhau.

- R1
R1 R2 R2

-
kết quả

clazz_id tên giảng viên_id màn hình_id


20162101 CNTT1.02-K61
20172201 CNTT2.01-K62 02002 20170001

11
2.3. Sự khác biệt

• Việc chứa các bộ xảy ra ở quan hệ thứ nhất nhưng không xảy ra ở quan hệ
thứ hai.

R
R1 \ R2 R2
clazz
clazz_id tên giảng viên_id màn hình_id

\
20162101 CNTT1.01-K61 02001 20160003
20162102 CNTT1.02-K61
20172201 CNTT2.01-K62 02002 20170001
20172202 CNTT2.02-K62 kết quả

clazz_id tên giảng viên_id màn hình_id


20162101 CNTT1.01-K61 02001 20160003
20172201 CNTT2.01-K62 02002 20170001

12
2.4. Sản phẩm Descartes

• Sự nối mỗi bộ của quan hệ này với mỗi bộ của quan hệ kia.

Một x
Một y
Một
x b x
b

X y b y
c
d c x
c y
d x
d y

13
3. Toán tử đại số quan hệ
3.1. Lựa chọn
3.2. Chiếu
3.3. Đổi tên
3.4. Tham gia

3.5. Phân công

14
3.1. Lựa chọn
• Chọn từ R mỗi bộ có điều kiện.

--tình trạng -(R)


R1
R2 R2
R3 R3
R4
clazz
clazz_id tên
20162101 CNTT1.01-K61
giảng viên_id màn hình_id
02001 20160003
- giảng viên_id != null (clazz)
20162102 CNTT1.02-K61
20172201 CNTT2.01-K62 02002 20170001 kết quả

20172202 CNTT2.02-K62 clazz_id tên giảng viên_id màn hình_id


20162101 CNTT1.01-K61 02001 20160003
20172201 CNTT2.01-K62 02002 20170001

15
3.2. Chiếu
• Chọn một số thuộc tính.

- (R)
MỘT1,MỘT2,...

C1 C2 C3 C4 C5 C2 C5

clazz
clazz_id tên giảng viên_id màn hình_id -clazz_id, tên(clazz)
20162101 CNTT1.01-K61 02001 20160003
20162102 CNTT1.02-K61
20172201 CNTT2.01-K62 02002 20170001 kết quả
20172202 CNTT2.02-K62 clazz_id tên
20162101 CNTT1.01-K61
20172201 CNTT2.01-K62

16
3.3. Đổi tên
• Kết quả giống hệt R ngoại trừ thuộc tính b trong tất cả các bộ được
đổi tên thành thuộc tính a.

-a|b(R)
clazz
clazz_id tên
20162101 CNTT1.01-K61
giảng viên_id màn hình_id
02001 20160003 -tên lớp | tên(clazz)
20162102 CNTT1.02-K61
clazz
20172201 CNTT2.01-K62 02002 20170001
clazz_id Tên lớp giảng viên_id Monitor_id
20172202 CNTT2.02-K62
20162101 CNTT1.01-K61 02001 20160003
20162102 CNTT1.02-K61
20172201 CNTT2.01-K62 02002 20170001
20172202 CNTT2.02-K62

17
3.4. Tham gia

• Kết hợp các thuộc tính từ 2 bảng.

R1---tham gia _ điều kiện -R2

Một
r r x Một
r xrx
b r S y b r xrx
c v t z

18
3.4. Tham gia

Học sinh clazz


học sinh
sinh viên_id first_name họ_… clazz_id
20160001 Ngọc An Bùi
20160002 Anh Hoàng 20162101
20160003 Thu Hồng Trần 20162101
20160004 Minh Anh Nguyễn 20162101 kết quả

20170001 Nhật Ánh Nguyễn 20172201 sinh viên_id first_name họ_tên


20160002 Anh Hoàng CNTT1.01-K61

clazz 20160003 Thu Hồng Trần CNTT1.01-K61

clazz_id tên giảng viên_id màn hình_id 20160004 Minh Anh Nguyễn CNTT1.01-K61
20170001 Nhật Ánh Nguyễn CNTT2.01-K62
20162101 CNTT1.01-K61 02001 20160003
20162102 CNTT1.02-K61
20172201 CNTT2.01-K62 02002 20170001
20172202 CNTT2.02-K62

19
3.5. Phân công

• Chia quan hệ cổ tức R1hoặc độ m+n theo quan hệ số chia


R2bậc n và tạo ra quan hệ thương bậc m.

Một x
Một y
Một
b
z
x
: x
z
Một

c y

20
Một ví dụ
• Liệt kê danh sách sinh viên đăng ký tất cả các môn học.

ghi danh
giữa kỳ_ cuối cùng_
thẻ học sinh chủ_id học kỳ chủ thể
điểm điểm
20160001 20171 9 8,5 phần trăm_
CNTT1110 chủ_id tên tín dụng
kỳ thi cuối kỳ
20160001 IT3080 20172 số 8
CNTT1110 Tin học đại cương 4 60
20160001 IT3090 20172 6 9
IT3080 Máy tính mạng 3 70
20160001 IT4857 20172 7,5 9
IT3090 Data base 3 70
20160001 IT4866 20172 7 9
IT4857 Máy tính Thị giác 3 60
20160002 IT3080 20172 9
IT4866 Học máy 2 70
20160003 CNTT1110 20171 7 6
20160004 CNTT1110 20171 6 5

21
Một ví dụ
• Liệt kê danh sách sinh viên đăng ký tất cả các môn học.

ghi danh
giữa kỳ_ cuối cùng_
thẻ học sinh chủ_id học kỳ chủ thể
điểm điểm
20160001 20171 9 8,5 phần trăm_
CNTT1110 chủ_id tên tín dụng
kỳ thi cuối kỳ
20160001 IT3080 20172 số 8
CNTT1110 Tin học đại cương 4 60
20160001 IT3090 20172 6 9
IT3080 Máy tính mạng 3 70
20160001 IT4857 20172 7,5 9
IT3090 Data base 3 70
20160001 IT4866 20172 7 9
IT4857 Máy tính Thị giác 3 60
20160002 IT3080 20172 9
IT4866 Học máy 2 70
20160003 CNTT1110 20171 7 6
20160004 CNTT1110 20171 6 5

-sinh_id, môn_id(đăng ký) -chủ_id(chủ thể)

22
Một ví dụ
• Liệt kê danh sách sinh viên đăng ký tất cả các môn học.

ghi danh
giữa kỳ_ cuối cùng_
thẻ học sinh chủ_id học kỳ
điểm scoSrbạnebj
Vân vân

20160001 20171 9 8,5 phụ đề vv_id phần trăm_


CNTT1110 tên tín dụng chửi thề
cuối cùng_exRMộtetôi
20160001 IT3080 20172 số 8
20160001 IT3090 20172 : 6 9
IT1110
IT3080
Tin học đại cương
Máy tính mạng
4
3
60
70
học sinh_

2016000 1
nhận dạng

20160001 IT4857 20172 7,5 9


IT3090 Data base 3 70
20160001 IT4866 20172 7 9
IT4857 Máy tính Thị giác 3 60
20160002 IT3080 20172 9
IT4866 Học máy 2 70
20160003 CNTT1110 20171 7 6
20160004 CNTT1110 20171 6 5

(-sinh_id, môn_id(đăng ký)) :(-chủ_id(chủ thể))

23
4. Phần mở rộng chung
4.1. Tham gia tự nhiên

4.2. Tham gia bên ngoài

4.3. Tổng hợp

24
4.1. Tham gia tự nhiên

• Hoạt động nối đặc biệt với điều kiện nối bằng nhau trên các thuộc tính chung của
chúng, được ghi chú *

học sinh clazz


sinh viên_id first_name họ_name dob … clazz_id clazz_id tên giảng viên_id màn hình_id
20160001 Ngọc An Bùi 18/3/1987 … 20162101 CNTT1.01-K61 02001 20160003
20160002 Anh Hoàng 20/5/1987 … 20162101 20162102 CNTT1.02-K61
20160003 Thu Hồng Trần 6/6/1987 … 20162101 20172201 CNTT2.01-K62 02002 20170001
20160004 Minh Anh Nguyễn 20/5/1987 … 20162101 20172202 CNTT2.02-K62
20170001 Nhật Ánh Nguyễn 15/5/1988 … 20172201

kết quả
sinh viên_id first_name họ_name dob … clazz_id Tên giảng viên_id Màn hình_id
20160002 Anh Hoàng 20/5/1987 … 20162101 CNTT1.01-K61 02001 20160003
20160003 Thu Hồng Trần 6/6/1987 … 20162101 CNTT1.01-K61 02001 20160003
20160004 Minh Anh Nguyễn 20/5/1987 … 20162101 CNTT1.01-K61 02001 20160003
20170001 Nhật Ánh Nguyễn 15/5/1988 … 20172201 CNTT2.01-K62 02002 20170001

25
4.2. Tham gia bên ngoài

• Nối bên ngoài bên trái

Một
r r x Một
r x
b r S y b r x
c v t z c vvô giá trị

• Nối bên ngoài bên phải

Một
r r x Một
r x
b r S y b r x
c v t z S y
vô giá trị

t z
vô giá trị

26
4.2. Tham gia bên ngoài

• Ví dụ về nối ngoài bên trái:Liệt kê tất cả học sinh và thông


tin lớp học nếu có
học sinh clazz
sinh viên_id first_name họ_name dob … clazz_id clazz_id tên giảng viên_id màn hình_id
20160001 Ngọc An Bùi 18/3/1987 … 20162101 CNTT1.01-K61 02001 20160003
20160002 Anh Hoàng 20/5/1987 … 20162101 20162102 CNTT1.02-K61
20160003 Thu Hồng Trần 6/6/1987 … 20162101 20172201 CNTT2.01-K62 02002 20170001
20160004 Minh Anh Nguyễn 20/5/1987 … 20162101 20172202 CNTT2.02-K62
20170001 Nhật Ánh Nguyễn 15/5/1988 … 20172201

kết quả

sinh viên_id first_name họ_name dob … clazz_id Tên giảng viên_id Màn hình_id

20160001 Ngọc An Bùi 18/3/1987


20160002 Anh Hoàng 20/5/1987 … 20162101 CNTT1.01-K61 02001 20160003
20160003 Thu Hồng Trần 6/6/1987 … 20162101 CNTT1.01-K61 02001 20160003
20160004 Minh Anh Nguyễn 20/5/1987 … 20162101 CNTT1.01-K61 02001 20160003
20170001 Nhật Ánh Nguyễn 15/5/1988 … 20172201 CNTT2.01-K62 02002 20170001

27
4.3. Tổng hợp
• Tổng hợp

G1, G2, … GNGF1(MỘT1), F2(MỘT2),….FN(MỘTN) (R)

• G1, G2, … GNlà danh sách các thuộc tính thuộc nhóm F1(MỘT1), F2
(MỘT2),...FN(MỘTN) là danh sách hàm tổng hợp trên thuộc tính A1, MỘT2,...
MỘTN

28
4.3. Tổng hợp
• Ví dụ về tập hợp

Gthẻ học sinhGcount(subject_id) (đăng ký )

ghi danh
giữa kỳ_ cuối cùng_
kết quả
thẻ học sinh chủ_id học kỳ
điểm điểm
20160001 CNTT1110 20171 9 8,5 thẻ học sinh đếm(subject_id)
20160001 IT3080 20172 số 8 20160001 5
20160001 IT3090 20172 6 9 20160002 1
20160001 IT4857 20172 7,5 9 20160003 1
20160001 IT4866 20172 7 9 20160004 1
20160002 IT3080 20172 9
20160003 CNTT1110 20171 7 6
20160004 CNTT1110 20171 6 5

29
4.3. Tổng hợp
• Ví dụ về tập hợp

Gđếm(student_id) (student )

học sinh
sinh viên_id first_name họ_name dob … clazz_id giá trị không phải là một mối quan hệ

20160001 Ngọc An Bùi 18/3/1987 …


20160002
20160003
Anh
Thu Hồng
Hoàng
Trần
20/5/1987
6/6/1987


20162101
20162101
5
20160004 Minh Anh Nguyễn 20/5/1987 … 20162101
20170001 Nhật Ánh Nguyễn 15/5/1988 … 20172201

30
Bản tóm tắt

• Giới thiệu về đại số quan hệ


• Ngôn ngữ thủ tục
• Đặt toán tử
• Đoàn kết, giao thoa, khác biệt
• Toán tử quan hệ
• Chiếu, chọn, đổi tên, nối
• Tiện ích mở rộng phổ biến
• Tham gia tự nhiên, Tham gia ngoài, Tập hợp

31
Cảm ơn bạn vì
sự chú ý của bạn!

32

You might also like