CƠ SỞ DỮ LIỆU
GV: ThS. Lương Thị Ngọc Khánh
Email:
Web: it.tdt.edu.vn/~ltnkhanh
Chương IV
ĐẠI SỐ QUAN HỆ
•
•
•
•
Giới thiệu
Phép chọn
Phép chiếu
Phép tích
decac
• Phép kết nối
•
•
•
•
•
Phép
Phép
Phép
Phép
Phép
hợp
giao
hiệu
chia
đặt lại tên
Giới thiệu
• Đại số quan hệ
– là phương pháp để mô hình hóa các phép toán
thao tác trên CSDL quan hệ.
– là ưu điểm của mô hình dữ liệu quan hệ
– đơn giản nhưng khá mạnh và là một đại số có
tính đầy đủ, phi thủ tục.
– là một cơ sở cho việc thiết lập các ngôn ngữ
con dữ liệu bậc cao hơn.
01-2014
504009 – Đại số quan hệ
3
Khái niệm liên quan
• Hai quan hệ tương thích/ rời nhau
– hai quan hệ r1, r2 là tương thích với nhau nếu
chúng có cùng tập thuộc tính U. Và r1, r2 được
gọi là hai quan hệ rời nhau nếu chúng không có
thuộc tính chung.
• Khái niệm xếp cạnh nhau:
Giả sử cho bộ t = (a1, a2,…, an), u = (b1, b2, …,
bm) ta có: t,u = (a1, a2,…, an, b1, b2, …,
bm)
01-2014
504009 – Đại số quan hệ
4
Phép chọn (Selection)
• Ký hiệu
• Dùng để xây dựng một tập con các bộ thỏa
mãn một điều kiện cho trước.
• Kết quả của phép chọn trên quan hệ r với
điều kiện C được ký hiệu là C(r).
C(r) = {t / t r, C(t) = True}
01-2014
504009 – Đại số quan hệ
5
Phép chọn (tt)
– Biểu thức lôgic C được tạo thành từ các biểu
thức có dạng:
tên thuộc tính toán tử so sánh giá trị hằng
hoặc
tên thuộc tính toán tử so sánh tên thuộc
tính ,
– trong đó
• tên thuộc tính là tên của một thuộc tính thuộc R
• toán tử so sánh là các toán tử thông thường {=, <,
≤, >, ≥, ≠}
• giá trị hằng là một giá trị trong miền thuộc tính.
01-2014
504009 – Đại số quan hệ
6
Phép chọn (tt)
– Ví dụ: Trên quan hệ HOCBONG,
• phép chọn (DiemTB≥9.0)(HOCBONG) ta có kết quả
như sau:
maSoSV
hoTenSV
Ngaysinh
ĐiemTB
MucHBg
Ti05020
Lê Ngọc Phúc
06-12-1988
9.0
240.000
01-2014
504009 – Đại số quan hệ
7
Phép chọn (tt)
• Lưu ý:
– Toán tử so sánh trong tập {=, <, ≤, >, ≥, ≠} chỉ áp
dụng được cho những thuộc tính có MGT có thứ
tự. Nếu miền thuộc tính ko có thứ tự, khi đó toán
tử so sánh có thể áp dụng chỉ là tập {=, ≠}.
– Các toán tử chọn có tính giao hoán, cụ thể:
– <C1>(<C2>(R)) = <C2>(<C1>(R))
01-2014
504009 – Đại số quan hệ
8
Phép chọn (tt)
• Cho các lược đồ quan hệ sau:
– SINHVIEN (MaSV, Hoten, Namsinh, QQ, Hocluc)
• Mỗi sinh viên có Mã số duy nhất, họ tên, quê quán và học
lực
– DETAI (MaDT, TenDT, Chunhiem, Kinhphi)
• Mỗi đề tài có Mã số duy nhất, tên đề tài, chủ nhiệm đề tài,
kinh phí thực hiện đề tài (đơn vị tính: triệu đồng)
– SV_DT (MaSV, MaDT, NoiAD, KQ)
• Mỗi SV có thể thực hiện một hoặc nhiều ĐT: mã số sinh
viên, mã đề tài, nơi áp dụng, kết quả thực hiện đề tài
• Ta có cơ sở dữ liệu mẫu được cho như sau:
01-2014
504009 – Đại số quan hệ
9
Phép chọn (tt)
01-2014
504009 – Đại số quan hệ
10
Phép chọn (tt)
01-2014
504009 – Đại số quan hệ
11
Phép chọn (tt)
Vd: Tìm những SV sinh trước 1984 và quê ở Đồng Tháp:
(Namsinh<1984 ^ QQ='Đồng Tháp')(SINHVIEN)
01-2014
504009 – Đại số quan hệ
12
Phép chiếu (Projection)
• Phép chiếu: Ký hiệu
– Cho r là một quan hệ trên lược đồ quan hệ
R(U), X U, khi đó
X (r) = {t[X] / t r} trong đó t[X] là giá trị bộ t trên
tập thuộc tính X.
Vd: phép chiếu MasoSV,DiemTB(HOCBONG) ta có
kết quả sau:
maSoSV
diemTb
01-2014
Ti05020
9.0
Ti05023
8.2
Ti05027
8.5
Ti05006
7.8
504009 – Đại số quan hệ
13
Phép chiếu (tt)
• Nhận xét:
– Để thực hiện phép chiếu 1QH trên một tập thuộc
tính thực hiện 2 thao tác:
• Giữ lại các thuộc tính trong tập X
• Chọn bộ đại diện trong các bộ giống nhau.
01-2014
504009 – Đại số quan hệ
14
Phép chiếu (tt)
• Ví dụ:
– Tìm họ tên, năm sinh của những sinh viên có
quê quán ở Cần Thơ
Hoten, Namsinh((QQ='Cần
01-2014
thơ')(SINHVIEN))
504009 – Đại số quan hệ
15
Phép chiếu (tt)
• Ví dụ: Xem lại CSDL
– Tìm mã số, tên của những đề tài do thầy Lê Đức
Phúc chủ nhiệm có kinh phí từ 10tr trở lên.
MaDT, TenDT((Chunhiem='Lê Đức Phúc' ^ Kinhphi >= 10)(DETAI))
01-2014
504009 – Đại số quan hệ
16
Phép tích Descartes
• Phép tích Descartes
– Tích Descartes của hai quan hệ chỉ xét trên hai
LĐQH rời nhau.
– Cho hai lược đồ R1, R2 tương ứng với hai tập
thuộc tính: U1 = {A1, A2,…,An}
U2 = {B1, B2,…,Bm} với U1 U2 =
– Giả sử r, s là hai QH trên R1, R2 tương ứng, khi
đó:
r s = {t/ t = t1, t2, t1 r, t2 s)}
01-2014
504009 – Đại số quan hệ
17
Phép tích Descartes (tt)
01-2014
504009 – Đại số quan hệ
18
Phép kết nối (join)
• Phép kết nối
– Cho là một trong các phép so sánh sau: =,
>,<, ≠, ≥, ≤.
– r là một quan hệ xác định trên tập thuộc tính
(A1, A2, …, An) và s là một quan hệ trên tập
thuộc tính (B1, B2,…,Bm).
r ⋈ Ai Bj s = {t,u/ t r, u s và t[Ai] u[Bj]}
01-2014
504009 – Đại số quan hệ
19
Phép kết nối (tt)
– Nếu là “=” thì phép kết nối được gọi là kết nối
bằng.
– Nếu kết nối bằng tại thuộc tính trùng tên của hai
quan hệ r, s phép kết nối tự nhiên và ký
hiệu là r s (hoặc r ⋈ s) cho kết quả của nó.
• một trong hai thuộc tính đó được loại bỏ khỏi kết quả
– Ví dụ: Tìm tên những đề tài được áp dụng ở
Đồng Tháp và cho biết họ tên của những sinh
viên thực hiện tương ứng.
TenDT, Hoten((NoiAD='Đồng Tháp')(SINHVIEN *
SV_DT * DETAI))
01-2014
504009 – Đại số quan hệ
20
Phép kết nối (tt)
• Ví dụ:
r
01-2014
s D
F
A
B
C
2
f1
a1
b1
1
3
f2
a2
b2
3
a3
b
2
r ⋈C>=Ds A
504009 – Đại số quan hệ
B
C D F
a2
b2 3
2 f1
a2
b2 3
3 f2
a3
b
2 f1
2
21
Phép kết nối (tt)
• Ý nghĩa:
– Phép kết nối được dùng để kết hợp hai bộ có
liên quan nhau thuộc hai quan hệ khác nhau
thành một bộ mới.
– nói cách khác, phép kết nối cho phép xử lý mối
liên quan giữa các quan hệ trong một CSDL.
01-2014
504009 – Đại số quan hệ
22
Phép hợp (Union)
• Phép hợp
– Hợp của hai quan hệ tương thích r1, r2 ký hiệu
r1 r2 là một quan hệ trên U gồm các phần tử
thuộc r1 hoặc r2.
r1 r2 = {t: t r1 hoặc t r2}
01-2014
504009 – Đại số quan hệ
23
Phép hợp (tt)
• Ví dụ: Cho 2 LĐQH sau:
Canbo(Maso, Hoten, Ngsinh, QQ, Hs_luong)
Giangvien(Maso,
Hoten,
Ngaysinh,
QQ,
Hs_luong)
- In ra danh sách gồm: mã số và họ tên của tất cả
các cán bộ và giảng viên:
∏Maso, Hoten(Canbo U Giảngviên)
01-2014
504009 – Đại số quan hệ
24
Phép giao (Intersection)
• Giao của hai quan hệ tương thích r1, r2 ký
hiệu r1 r2 là một quan hệ trên U gồm các
bộ vừa thuộc r1 vừa thuộc r2.
r1 r2 = {t: t r1 và t r2}
01-2014
504009 – Đại số quan hệ
25