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

Phần 1 đại số quan hệ

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 (1.55 MB, 154 trang )

1
Phần 1
Đại số quan hệ
TS. Nguyễn Đình Thuân
Khoa Hệ thống thông tin
Trường ĐH Công nghệ Thông tin
8/2013
2
Giới thiệu
Đại số quan hệ

Là tập hợp các phép toán cơ sở của mô hình dữ liệu
quan hệ

Biểu thức đại số quan hệ là sự kết hợp của các toán
hạng và toán tử

Kết quả của một biểu thức đại số quan hệ là một thể
hiện của quan hệ
Ý nghĩa :

Là cơ sở hình thức cho các phép toán của mô hình QH

Là cơ sở để cài đặt và tối ưu hóa các truy vấn trong các
hệ QT CSDL
3
Giới thiệu
Toán hạng – có thể là :

Các thể hiện của quan hệ


Các tập hợp
Toán tử (phép toán) cơ bản bao gồm 8 phép toán :

Phép toán tập hợp

Phép hợp, phép giao, phép hiệu, phép tích Descartes

Phép toán quan hệ

Phép chọn, phép chiếu, phép chia, phép kết nối
Và một số phép khác:

Phép gán (←)

Hàm tính toán và gom nhóm: avg(), min(), max(), sum(), count().
Khái niệm khả hợp: Hai lược đồ quan hệ R1 và R2 là khả hợp
nếu cùng bậc n và DOM(Ai)=DOM(Bi) (1

i

n)
4
Phép hợp (Union)
Hợp của hai quan hệ r và s khả hợp là tập các bộ
thuộc r hoặc s hoặc thuộc cả hai quan hệ
Kí hiệu : r

s
Công thức :
r


s = { t/ t

r hoặc t

s}
sr
5
Phép hợp
Ví dụ :
r ( A B C) s ( A B C) r

s = ( A B C)
___________ __________ ________________
a1 b1 c1 a1 b1 c1 a1 b1 c1
a2 b1 c2 a2 b2 c2 a2 b1 c2
a2 b2 c1 a2 b2 c2
a2 b2 c1
6
Phép giao (Intersection)
Giao của hai quan hệ r và s khả hợp là tập các bộ
thuộc cả hai quan hệ
Kí hiệu : r

s
Công thức :
r

s = { t/ t


r và t

s }
Ví dụ :
Với hai quan hệ ở ví dụ trước, giao của chúng là:
r

s = ( A B C )
a1 b1 c1
s
r
7
Phép trừ (Minus)
Hiệu của hai quan hệ r và s khả hợp là tập các bộ
thuộc r nhưng không thuộc s
Kí hiệu : r - s
Công thức :
r - s = { t/ t

r và t

s }
Ví dụ :
Với hai quan hệ ở ví dụ trước, giao của chúng là:
r - s = ( A B C )
a2 b1 c2
a2 b2 c1
sr
8
Phép tích Descartes (CartesianProduct)

r là quan hệ xác định trên tập thuộc tính {A1, A2, ,
An}
s là quan hệ xác định trên tập thuộc tính {B1,
B2, ,Bm}
Tích Descartes của r và s là tập ( n + m ) - bộ với n
thành phần đầu là một bộ thuộc r và m thành phần
sau là một bộ thuộc s
Kí hiệu: r x s
Công thức :
r x s = { t: t có dạng (a1, a2, , an, b1, b2, ,bm) trong đó (a1,
,an )

r và (b1, ,bm)

s }
9
Phép tích Descartes
Ví dụ :
r (A B C) s (D E) r
×
s = p (A B C D E)
a1 b1 1 1 e1 a1 b1 1 1 e1
a2 b2 2 2 e2 a1 b1 1 2 e2
a3 b3 3 a2 b2 2 1 e1
a2 b2 2 2 e2
a3 b3 3 1 e1
a3 b3 3 2 e2
10
Phép chiếu (Projection)


Phép chiếu trên một quan hệ thực chất là loại bỏ
đi một số thuộc tính và giữ lại những thuộc tính
còn lại của quan hệ đó.

Công thức :
π

< ds_thuộc tính>
(< tên quan hệ >)
<ds_thuộc tính>:dsách các thuộc tính được lấy

Kết quả của phép chiếu là tập các thuộc tính
trong danh sách với cùng thứ tự.

Nếu <ds_thuộc tính> chỉ có những thuộc tính
không khoá thì phép chiếu sẽ bỏ đi những bộ
lặp.

Phép chiếu không có tính giao hoán.

π
<ds1>
(
π
<ds2>
(R)) ≠
π
<ds2>
(
π

<ds1>
(R))
11
Phép chiếu (Projection)
Ví dụ : Cho quan hệ SV (Mã SV, Họ tên, Ngày sinh, Điểm)
Mã SV Điểm
001 8
002 9
003 7
004 10
Phép chiếu π
Mã Sv, Điểm
(SV):
Mã SV Họ tên Ngày sinh Điểm
001 Trần Anh 23/4/86 8
002 Ngọc Bích 13/4/85 9
003 Xuân Mai 25/3/87 7
004 Hồng Vân 21/6/85 10
12
Phép chọn(Selection)

Phép chọn dùng để trích chọn một tập con trong một quan
hệ, các bộ được trích chọn phải thoả mãn điều kiện chọn.
Công thức :
σ

< điều kiện >
(< Tên quan hệ >)

< Tên quan hệ >: chỉ quan hệ được chọn


Kết quả thu được là một quan hệ có danh sách thuộc tính
được chỉ ra trong Tên quan hệ.

<Điều kiện> : là các biểu thức điều kiện cần thoả mãn. Các
biểu thức này được nối với nhau bằng các phép:
¬
( phủ
định ),

(và),

(hoặc).

Phép chọn có tính giao hoán.

σ
<đk1>
(
σ
<đk2>
(R)) =
σ
<đk2>
(
σ
<đk1>
(R))
13
Phép chọn(Selection)

Ví dụ : Cho quan hệ SV(Mã SV,Họ tên,Ngày sinh,Điểm)
Mã SV Họ tên Ngày sinh Điểm
001 Trần Anh 23/4/86 8
002 Ngọc Bích 13/4/85 9
004 Hồng Vân 21/6/85 10
σ
Điểm>7
∧(Year(Ngaysinh) >= 1985)

(SV)
Mã SV Họ tên Ngày sinh Điểm
001 Trần Anh 23/4/86 8
σ

(
Điểm=8 )
(SV)
14
Phép kết nối (Join)
Phép ghép bộ: Giả sử cho hai bộ u = (a1,. . ., an)
và v = (b1,. . ., bm). Phép ghép bộ u với bộ v, ký
hiệu (u,v), được định nghĩa
(u,v) = (a1,. . ., an, b1,. . ., bm)
Phép kết nối hai quan hệ thực chất là phép ghép
các cặp bộ của hai quan hệ thoả mãn một điều
kiện nào đó trên chúng, điều kiện đó được gọi
là điều kiện kết nối hay biểu thức kết nối.
Biểu thức kết nối được định nghĩa là phép hội
của các toán hạng, mỗi toán hạng là một phép
so sánh đơn giản giữa một thuộc tính của quan

hệ r và một thuộc tính của quan hệ s
15
Phép kết nối θ (Inner join, join)
Định nghĩa: Cho 2 quan hệ r(U) và s(V)
θ là một trong các phép toán số học:
<
,

,
>
,

, =,

Phép kết nối giữa quan hệ r đối với thuộc tính A

U và
quan hệ s đối với thuộc tính B

V, được ký hiệu r s
r s= {<u,v>| u∈U ∧ v ∈V ∧u[A] θ v[B] }
Phép kết nối chỉ thực hiện được khi θ thực hiện được
giữa A và B.
Nếu không dựa trên phép so sánh θ thì r s là phép tích
Descartes, nếu θ là phép so sánh “=“ thì gọi là phép
kết nối bằng.
A θ B
A θ B
A θ B
16

Phép kết nối(Join)
Ví dụ :
r ( A B C ) s( C D E ) r   s = ( A B C C D E)
a1 1 1 1 d1 e1 a1 1 1 1 d1 e1
a2 2 1 2 d2 e2 a2 2 1 1 d1 e1
a1 2 2 3 d3 e3 a2 2 1 2 d2 e2
a1 2 2 1 d1 e1
a1 2 2 2 d2 e2
B≥ C
Kết nối tự nhiên
r(ABC) * s(CDE) = ( A B C D E) a1
1 1 d1 e1
a2 2 1 d1 e1
a1 2 2 d2 e2
17
Phép kết nối tự nhiên (Natural-Join Operation)
Nếu kết nối θ dựa trên phép so sánh “=“ tại các thuộc
tính cùng tên của 2 quan hệ R và S và một trong hai
thuộc tính đó bị loại bỏ qua phép chiếu thì gọi là
phép kết nối tự nhiên, ký hiệu *.
Ví dụ: Tìm tên các môn học có dạy trong học kỳ 2 10-11.
MAMH
TH409
TH364
TH324
A: π
mamh
σ
STT_KH = 2 ∧ NKHOA = ’10-11’
(DAY)

MAMH TENMON
TH409 Cơ Sở Dữ Liệu
TH490 Cấu Trúc Dữ Liệu & GT
TH364 Trí Tuệ Nhân Tạo
TH324 Giải Thuật
MAMH TENMON
TH409 Cơ Sở Dữ Liệu
TH364 Trí Tuệ Nhân Tạo
TH324 Giải Thuật
B: π
mamh, TenMon
(MON)
A * B
Những dòng không có ở cả
2 bảng sẽ không có mặt ở
bảng KQ
18
Phép kết nối ngoài (Outer join)
Định nghĩa: Phép toán này cho phép làm việc với thông
tin bị thiếu, tức là vẫn thực hiện phép kết nối tự nhiên
trên các trị trống của thuộc tính dùng để kết nối.
Có 3 loại kết nối mở rộng: trái, phải và hai bên
Cho 2 quan hệ r và s:

Trái: r s = p ∪ ( r * s )

p={<u,v>| u ∈ r, u không tương ứng với bộ nào của s, v ∈s,
các giá trị của các thuộc tính trong v đều là null }

Phải: r s = q ∪ ( r * S )


q={<u,v>| v ∈ s, v không tương ứng với bộ nào của r, u ∈ u,
các giá trị của các thuộc tính trong u đều là null }

Hai bên: r s = p ∪ q ∪ ( r * s )

p và q được định nghĩa như trên.
19
Phép kết nối ngoài – ví dụ (Outer join)
MAGV MAMH
1231 TH409
1232 TH409
1232 TH334
1255 TH490
1957 TH333
MAGV HOTEN_GV
1250 Lê Phú Thọ
1255 Nguyễn Khuyến
1256 Đào Anh Vũ
1231 Trần Ngân Bình
1232 Phan Phương Lan
MAGV HOTEN_GV MAGV MAMH
1250 Lê Phú Thọ NULL NULL
1255 Nguyễn Khuyến 1255 TH490
1256 Đào Anh Vũ NULL NULL
1231 Trần Ngân Bình 1231 TH409
1232 Phan Phương Lan 1232 TH409
1232 Phan Phương Lan 1232 TH334
MAGV MAMH MAGV HOTEN_GV
1231 TH409 1231 Trần Ngân Bình

1232 TH409 1232 Phan Phương Lan
1232 TH334 1232 Phan Phương Lan
1255 TH490 1255 Nguyễn Khuyến
1957 TH333 NULL NULL
R: DS GV c a Khoaủ
S: Phân công d y trong HK nàyạ
R S
R S
R S ?
20
Phép gán (Assignment)
Dùng để diễn tả câu truy vấn phức tạp.
Ký hiệu: A

B
Ví dụ:
R(HO,TEN,LUONG)


π
HONV,TENNV,LUONG
(NHANVIEN)
Kết quả bên phải của phép gán được gán cho biến quan
hệ nằm bên trái.
21
Định nghĩa:
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
+
≠∅ và S
+

tập con thật sự 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:
Phép chia (Division)
}),(,/{ RstSstSRQ ∈∈∀=÷=
21
12
1
))((
)(
TTT
RTST
RT
SR
SR
−←
−×←


++
++


π
π
22
Ví dụ: Phép chia
Mahv
HV01
HV03
KETQUATHI
Mahv Mamh Diem
HV01 CSDL 7.0
HV02 CSDL 8.5
HV01 CTRR 8.5
HV03 CTRR 9.0
HV01 THDC 7.0
HV02 THDC 5.0
HV03 THDC 7.5
HV03 CSDL 6.0
MONHOC
Mamh Tenmh
CSDL Co so du lieu
CTRR Cau truc roi rac
THDC Tin hoc dai cuong
KETQUA
MONHOC
KETQUA÷MONHOC

][
],[
MamhMONHOCMONHOC
MamhMahvKETQUATHIKETQUA


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

E là biểu thức đại số quan hệ

G
i
là thuộc tính gom nhóm (rỗng, nếu không gom nhóm)

F
i
là hàm tính toán

A
i
là tên thuộc tính
)(
)(), ,(),(, ,,
221121
E
nnn

AFAFAFGGG

24
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?
Điểm thi cao nhất, thấp nhất, trung bình của từng môn?
)(
)(),min(),max(
KETQUATHI
DiemavgDiemDiemMamh

)(
CSDL''Mamh)(),min(),max(
KETQUATHI
DiemagvDiemDiem =

σ
25
Ví dụ 1:
S# SNAME STATUS CITY
S1 Smith 20 London
S2 Jones 10 Paris
S3 Kery 30 Roma
P# PNAME COLOR WEIGHT
P1 Nut Red 12
P2 Bolt Green 17
P3 Screw Blue 17
P4 Screw Red 14
S# P# QTY
S1 P1 300

S1 P2 200
S1 P3 400
S2 P1 300
S2 P2 400
S3 P4 200
S
P
SP
Cho sơ đồ quan hệ sau :

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×