Professional Documents
Culture Documents
02 Relational Algebra - En.vi
02 Relational Algebra - En.vi
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
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ả
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ả
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ả
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
14
3.1. Lựa chọn
• Chọn từ R mỗi bộ có điều kiện.
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
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
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
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
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
2016000 1
nhận dạng
23
4. Phần mở rộng chung
4.1. Tham gia tự nhiên
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ú *
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
Một
r r x Một
r x
b r S y b r x
c v t z c vvô giá trị
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
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
27
4.3. Tổng hợp
• Tổng hợp
• 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
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ệ
30
Bản tóm tắt
31
Cảm ơn bạn vì
sự chú ý của bạn!
32