Professional Documents
Culture Documents
2
Ví dụ về phép chọn của đại số quan hệ
3
Ngôn ngữ quan hệ
5
Đại số quan hệ
v Cả các toán hạng và các kết quả đều là các quan hệ, vì
vậy đầu ra của một toán tử có thể là đầu vào của một
toán tử khác
v Cho phép các biểu thức có thể lồng vào nhau giống như
các biểu thức số học. Đặc tính này gọi là closure.
6
Đại số quan hệ
v Các toán tử cơ bản thực hiện được hầu hết các thao tác truy
xuất dữ liệu
8
Các phép toán trong đại số quan hệ (tt)
Cơ sở dữ liệu – Đại số quan hệ
9
5 phép toán cơ bản
11
Ví dụ về phép chọn
12
Phép chọn (Selection or Restriction)
Ù, Ú
Phép chọn có tính giao hoán:
13
Ví dụ về phép chọn
14
Phép chiếu (Projection)
v Pcol1, . . . , coln(R)
Kết quả phép chiếu tạo ra một quan hệ trong đó
Cơ sở dữ liệu – Đại số quan hệ
chỉ chứa một tập con theo chiều dọc của R, tức
trích ra theo chiều dọc các giá trị của dữ liệu của
một số thuộc tính, và loại bỏ các dữ liệu trùng lắp
15
Ví dụ về phép chiếu
salary
16
Phép hội (Union)
v RÈS
Hội của 2 quan hệ R và S tạo ra một quan hệ mà
Cơ sở dữ liệu – Đại số quan hệ
được
Pcity(Branch) È Pcity(PropertyForRent)
18
Phép trừ (Set Difference)
v R–S
Tạo một quan hệ chứa các bộ thuộc R nhưng
Cơ sở dữ liệu – Đại số quan hệ
không thuộc S
R và S phải có tính tương thích
19
Ví dụ về phép trừ
Pcity(Branch) – Pcity(PropertyForRent)
20
Phép giao (Intersection)
v RÇS
Tạo ra một quan hệ chứa các bộ vừa thuộc R
Cơ sở dữ liệu – Đại số quan hệ
vừa thuộc S
R và S phải có tính tương thích nhau
21
Ví dụ về phép giao
Pcity(Branch) Ç Pcity(PropertyForRent)
22
Bài tập
v RXS
Tạo một quan hệ trong đó các bộ của nó chính là
Cơ sở dữ liệu – Đại số quan hệ
24
Ví dụ về phép tích Đề-các
25
Ví dụ về phép tích Đề-các và phép
chọn
◆Phép tích Đề-các và phép chọn được làm chung lại gọi là phép kết
(Join)
26
Phép Kết (Join)
v Phép kết thực hiện tương đương với phép chọn trên
kết quả của phép tích Đề-các, với một điều kiện
chọn phải thỏa
27
Phép Kết (Join) (tt)
28
Phép kết Theta (q-join)
v R FS
Tạo ra 1 quan hệ có các bộ là kết quả từ phép
Cơ sở dữ liệu – Đại số quan hệ
29
Phép kết Theta (q-join) (tt)
R FS = sF(R C S)
◆ Cấp của phép kết Theta là tổng của cấp 2 quan hệ tham
gia
30
Ví dụ về phép kết tương đương
(PclientNo,fName,lName(Client)) Client.clientNo =
Viewing.clientNo (PclientNo,propertyNo,comment(Viewing))
31
Phép kết tự nhiên (Natural Join)
v R S
Là phép kết tương đương của 2 quan hệ trên
Cơ sở dữ liệu – Đại số quan hệ
trùng nhau
32
Ví dụ về phép kết tự nhiên
(PclientNo,fName,lName(Client))
(PclientNo,propertyNo,comment(Viewing))
33
Phép kết ngoài (Outer join)
v R S
34
Ví dụ về phép kết ngoài bên trái
v Lập bảng báo cáo tình trạng các tài sản cho
thuê
Cơ sở dữ liệu – Đại số quan hệ
PpropertyNo,street,city(PropertyForRent) Viewing
35
Phép nửa kết (Semijoin)
v R FS
Tạo ra 1 quan hệ có các bộ là kết quả từ R có
Cơ sở dữ liệu – Đại số quan hệ
R FS = PA(R F S)
v Lập danh sách chi tiết về các nhân viên làm việc ở
chi nhánh ở Glasgow.
Cơ sở dữ liệu – Đại số quan hệ
37
Phép chia (Division)
v R÷S
Tạo ra 1 quan hệ có tập thuộc tính C, mà kết quả
Cơ sở dữ liệu – Đại số quan hệ
38
Ví dụ phép chia
(PclientNo,propertyNo(Viewing)) ÷ (PpropertyNo(srooms = 3
(PropertyForRent)))
39
Bài tập
TEACHING(ProfID,CrsCode,Semester)
COURSE(CrsCode,Name)
TRANSCRIPT(StudId,CrsCode,Semester, Year,Grade)
42
Ví dụ phép toán quan hệ trên bộ
v Lập danh sách chi tiết về các nhân viên có lương lớn
hơn 10000
{S | Staff(S) Ù S.salary > 10000}
Cơ sở dữ liệu – Đại số quan hệ
v Lập danh sách 1 cột lương chỉ lấy giá trị lớn hơn
10000
{S.salary | Staff(S) Ù S.salary > 10000}
v Tìm ngày sinh và địa chỉ của nhân viên có tên là Ann
43
Phép toán quan hệ trên bộ
44
Ví dụ phép toán quan hệ trên bộ
45
Phép toán quan hệ trên bộ
46
Phép toán quan hệ trên bộ
§ Si.a1 q Sj.a2
§ Si.a1 q c
v Một công thức có thể cấu thành bằng các công thức lồng nhau:
§ 1 thành tố là 1 công thức
§ Nếu F1 và F2 là công thức thì có các công thức: F1 Ù
F2, F1 Ú F2 và ~F1
§ Nếu F là công thức và X là 1 biến thì ($X)(F) và
("X)(F) cũng là công thức 47
Ví dụ về Phép toán quan hệ trên bộ
48
Ví dụ về Phép toán quan hệ trên bộ
c) Liệt kê tên các nhân viên hiện không quản lý bất kỳ tài
sản nào:
Cơ sở dữ liệu – Đại số quan hệ
49
Ví dụ về Phép toán quan hệ trên bộ
(Viewing(V) Ù PropertyForRent(P) Ù (
C.clientNo = V.clientNo) Ù
(V.propertyNo=P.propertyNo)ÙP.city =‘Glasgow’))}
50
Chú ý về Phép toán quan hệ trên bộ
{S | ~Staff(S)}
v Để tránh lỗi này, cần thêm giới hạn về miền giá trị
của kết quả biểu thức
51
Phép toán quan hệ trên miền
(Domain Relational Calculus)
52
Ví dụ về Phép toán quan hệ trên miền
a) Tìm tên của tất cả các giám đốc kiếm được hơn
£25,000 trong 1 năm
Cơ sở dữ liệu – Đại số quan hệ
53
Ví dụ về Phép toán quan hệ trên miền
($sN1,cty)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN) Ù
(PropertyForRent(pN, st, cty, pc, typ, rms,
rnt,oN, sN1, bN1) Ù
(sN=sN1) Ù
cty=‘Glasgow’)}
54
Ví dụ về Phép toán quan hệ trên miền
{fN, lN | ($sN)
(Staff(sN,fN,lN,posn,sex,DOB,sal,bN) Ù
(~($sN1) (PropertyForRent(pN, st, cty, pc, typ,
rms, rnt,oN, sN1, bN1) Ù (sN = sN1))))}
55
Ví dụ về Phép toán quan hệ trên miền
56
Phép toán quan hệ trên miền
57
Bài tập
TEACHING(ProfID,CrsCode,Semester)
COURSE(CrsCode,Name)
TRANSCRIPT(StudId,CrsCode,Semester, Year,Grade)
58
Bài tập
59
Các ngôn ngữ khác
v Các ngôn ngữ phi thủ tục dùng các quan hệ đưa
vào đầu vào để lấy được đầu ra theo ý muốn (ví dụ
Cơ sở dữ liệu – Đại số quan hệ
v Các ngôn ngữ đồ họa trình bày với người dùng cấu
trúc của các quan hệ, người dùng sẽ thao tác trên
đó như là làm ví dụ cho chương trình hiểu cần phải
trả về kết quả dữ liệu như thế nào cho đúng với
mong muốn (ví dụ ngôn ngữ QBE trong MS Access)
60
Các ngôn ngữ khác
61