Tải bản đầy đủ (.pdf) (22 trang)

Bài giảng CSDL chương 4 ngôn ngữ thao tác dữ liệu

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 (29.32 MB, 22 trang )

BÀI GIẢNG
CỞ SỞ DỮ LiỆU


Các phép toán (operation)
 5 phép toán cơ bản
 Phép chọn (selection)
 Phép chiếu (projection)
 Phép hợp (union)
 Phép trừ (set difference)
 Phép tích Descartes (Cartesian product)
 3 phép toán suy dẫn*
 Phép kết (Join)
 Phép giao (Intersection)
 Phép chia (Division)
(*Có thể được biểu diễn dưới dạng các phép toán cơ bản)



hiệu
 Quan hệ r là một thể hiện của lược đồ quan hệ R(A1, A2,
…, Am)
 Điều kiện F là 1 biểu thức luận lý có giá trị true/false. F
bao gồm:
 Các toán hạng là hằng hoặc tên thuộc tính
 Các phép toán so sánh =, , <, ≤, >, 
 Các phép toán luận lý not (), and (), or ()


Phép chọn (selection)
 Phép chọn trên quan hệ r(R) theo điều kiện F, ký hiệu là


r(F) hay r:F , cho kết quả là 1 quan hệ bao gồm các bộ
của r thỏa mãn điều kiện F

r(F) = r:F = { t |t r và F(t) = true }

* Phép chọn và phép chiếu là phép toán một toán hạng

4


Phép chọn (selection) – ví dụ 1
Relation r
A



B



C
1
5

D

r(A=B)

7
7








 12 3



 23 10

r(A=B ^ D>5)

A

B

C

D





1

7




 12 3



 23 10

A

B

C

D





1

7



 23 10



Phép chiếu (Projection)
 Cho quan hệ r trên R(A1, A2,..,Am) và tập con các thuộc
tính X={Aj1, Aj2, …, Ajn} với j1, j2,.., jn là các số
nguyên phân biệt nằm trong khoảng từ 1 đến m
 Phép chiếu r trên tập thuộc tính X cho kết quả là 1 quan
hệ
r[X] = r.X = {t |  u r sao cho t = u[X]}
 Phép chiếu loại bỏ những bộ trùng nhau

6


Phép chiếu (Projection) – ví dụ 1
 Relation r

r[A,C]

A

B

C

A

C

A C




10

1



1



1



20

1



1



1



30


1



1



2



40

2



2


Phép
hợp
(union)
 Phép hợp của 2 quan hệ r và s
r + s = r  s = { t | t  r  t  s}
trong đó: r và s là hai quan hệ khả hợp

r+s



Phép
hiệu
(Set
Difference)
 Phép hiệu của 2 quan hệ r và s
r-s={t|tr



ts}

trong đó: r và s là hai quan hệ khả hợp

r-s


Phép
giao
(Intersection)
 Phép giao
của 2 quan
hệ r và s
r * s = r  s = {t | t  r  t  s}
trong đó: r và s là hai quan hệ khả hợp

r*s

Hai quan hệ r và s là khả hợp ( union-compatible) khi :

•Có cùng số thuộc tính
•Các thuộc tính tương ứng có cùng miền giá trị


Bài tập
 Cho 2 quan hệ định nghĩa trên 2 lược đồ Quan hệ :

Customer( Cuscode, cusName, cusPhone, City)
Supplier ( SupCode, SupName, SupPhone, City)
 Hiển thị danh sách các thành phố có khách hàng và

đồng thời có nhà cung cấp?
 Hiển thị danh sách các thành phố có khách hàng và

không có nhà cung cấp?


Phép kết (join)
 thay thế phép (r x s) (F)

với F là biểu thức điều kiện có dạng r.A  s.B
 Bao gồm :
 Theta join (
-join
join)
 Equijoin
 Natural join
 Outer join



Phép kết  - Theta join
 Cho r và s là hai quan hệ tương ứng trên các lược đồ R(A1,
A2,..,Am) và S(B1,B2,…,Bn)
 Gọi Q(A1, A2,.., Am, B1, B2, ….,Bn)
  là 1 phép so sánh
 Ai  R và Bj  S là 2 thuộc tính có thể so sánh với nhau bởi
phép 
 Phép kết  của r và s trên 2 thuộc tính Ai và Bj ký hiệu ,
cho kết quả là 1 quan hệ q trên lược đồ quan hệ Q, bao gồm
các bộ t
q(Q) = {t |  tr r r và tss  s với t[R] = tr
Ai  Bj
và t[S] = ts và t[Ai]  t[Bj] }

13


Phép kết  - Theta join
 Ví dụ : Hiển thị ứng với mã mỗi môn học và các môn học
tiếp sau nó ?

MONHOC ( MaMon, TenMon, SoTC, Hocky)

MaMon
A
B
C
D

TenMon

Aaaa
Bbbb
Cccc
Dddd

SoTC
3
4
3
2

Hocky
1
1
2
3

Chú ý : Sử dụng phép gán để tạo ra một biến quan hệ tạm:
s  r [MaMon, Hocky] , với r  MONHOC

14


Phép kết  - Theta join
MaMon
A
B
C
D


Hocky
1
1
2
3

r

s

r.Hocky < s.Hocky

MaMon
A
A
B
B
C

MaMon
A
B
C
D

MaMonsau
C
D
C
D

D

Hocky
1
1
2
3


Phép kết bằng và kết tự nhiên
 Phép kết Theta với  là phép so sánh bằng , thì được gọi là
phép kết bằng _ Equijoin
 Phép kết Theta với  là phép so sánh bằng được thực hiện
trên các thuộc tính chung (cùng tên) của R và S , thì được
gọi là phép kết tự nhiên – Natural join. Ký hiệu
 Quan hệ kết quả q không lặp lại các thuộc tính chung của R
r
s
và S
VD: Hiển thị danh sách các khách hàng và nhà cung cấp ở cùng một thành phố
Customer( Cuscode, cusName, cusPhone, City)
Supplier ( SupCode, SupName, SupPhone, City)
16


Phân biệt các phép join
Phép so sánh
Theta join

Tất cả


Equijoin

phép bằng

Natural join

phép bằng

Áp dụng trên

Tập kết quả

Trên 2 thuộc
tính cùng kiểu
dữ liệu
Trên 2 thuộc
tính cùng kiểu
dữ liệu
Trên 2 thuộc Không lặp lại
tính chung
thuộc tính
chung


Phép kết ngoài - Outer join
 Bao gồm : Left/Right Outer Join, Full Outer Join
 Phép kết Left Outer Join giữa r và s, cho phép các bộ của r
không kết được với các bộ của s cũng được xuất hiện trong
quan hệ kết quả

 Những giá trị tương ứng với các bộ trong quan hệ bị thiếu sẽ
được gán trị Null
 Ưu điểm : giữ được thông tin mà lẽ ra bị mất trong phép kết
 Ký hiệu :

r

s
18


Phép kết ngoài - Outer join
MASV

MAMH

DIEM

99001

CSDL

5.0

99002

FOX

2.0


99003

MANG

8.0

MASV

r

MAMH

s
MAMH

DIEM

TENMH

CSDL

COSO
DULIEU

FOX

FOXPRO

MAMH


TENMH

99001

CSDL

5.0

CSDL

COSO DULIEU

99002

FOX

2.0

FOX

FOXPRO

99003

MANG

8.0


Phép chia - Division

 Cho quan hệ r định nghĩa trên R với tập thuộc tính A
 Cho quan hệ s định nghĩa trên S với tập thuộc tính B , với
BA
 Gọi C = A - B , là tập thuộc tính chỉ có trong tập thuộc
tính A của R
 Phép chia r  s cho kết quả là một quan hệ với tập thuộc
tính C và bao gồm các bộ <a> sao cho đối với mọi bộ <b>
của s , thì tồn tại bộ <a,b> thuộc r


Phép chia – Division
r
A B













1
2
3
1

1
1
3
4
6
1
2

s
A

B
1
2

rs




s


Phép chia – Division

 Ví dụ : cho lược đồ CSDL
SV( MaSV, HoSV, TenSV, Phai)
Monhoc( MaMon, TenMon, SoTC )
KetQua( MaSV, MaMon, Diem)
Hiển thị danh sách các Sinh viên (MaSV) đã có kết quả học tập

của tất cả các môn học ?

KetQua[MaSV, MaMon]  Monhoc[MaMon]



×