Chương 4 trang bị cho người học một số kiến thức về đại số quan hệ; phép toán tập hợp; phép toán quan hệ; tập đầy đủ các phép toán của đại số quan hệ; thao tác cập nhật trên quan hệ và một số nội dung khác.
Trang 1Bài 4 Đại số quan hệ
I Đại số quan hệ
Đại số quan hệ là cơ sở của một ngôn ngữ bậc cao để thao tác trên các quan hệ Đại số quan hệ gồm 8 phép toán cơ bản Bằng các phép toán này, ta có thể trích
dữ liệu từ một hay nhiều quan hệ để tạo ra các quan hệ mới.
Trang 2II Các phép toán lý thuyết tập hợp
-Gọi r là quan hệ trên tập thuộc tính R={A1, ,An}.
Giả thiết rằng r là tập hữu hạn các bộ.
DOM(Ai) = DOM(Bi) (1in)
nghĩa:
Trang 3a2 b2 c1
Trang 53 Phép trừ
Hiệu của hai quan hệ r và s khả hợp, kí hiệu là r - s
là tập các bộ thuộc r nhưng không thuộc s
Chú ý : phép giao của hai quan hệ có thể biểu diễn qua phéptrừ:
r s = r- ( r - s )
Trang 64 Tích Đề -Các
- Gọi r là quan hệ xác định trên tập thuộc tính { A1, A2, ,An} và s làquan hệ xác định trên tập thuộc tính { B1, B2, ,Bm} Tích Đề - Các
r x s của r và s là tập ( n + m ) - bộ với n thành phần đầu có dạng
một bộ thuộc r và m thành phần sau có dạng của một bộ thuộc s
a2 b2 c2 d e fa2 b2 c2 d1 e1 f1
Trang 75 Phép chiếu
Phép chiếu trên một quan hệ thực chất là loại bỏ đimột số thuộc tính và giữ lại những thuộc tính còn lại củaquan hệ đó Dạng tổng quát : < ds_thuộc tính> (< tên quan hệ >)
là kí hiệu phép chiếu
< ds_thuộc tính> : danh sách các thuộc tính được lấy ra
Nếu < ds_thuộc tính > chỉ có những thuộc tính khôngkhoá thì phép chiếu sẽ tự bỏ đi những bộ lặp
Phép chiếu không có tính giao hoán
Nếu <ds1 > < ds2> thì
<ds1>( <ds2>(R)) = <ds1>(R)
Trang 8Ví dụ :
Cho quan hệ SV ( Mã SV, Họ tên, Ngày sinh, điểm) như sau :
10 004
7 003
9 002
8 001
Điểm
Mã SV
Thì phép chiếu Mã Sv, Điểm (SV) sẽ cho ta một quan hệ mới chỉgồm hai thuộc tính là Mã SV và Điểm
10 21/6/85
Hồng Vân 004
7 25/3/87
Xuân Mai 003
9 13/4/85
Ngọc Bích 002
8 23/4/86
Trần Anh 001
Điểm Ngày sinh
Họ tên
Mã SV
DIEM( Mã SV, Điểm ) :
Trang 96 Phép chọn
Phép chọn dùng để trích chọn một tập con trong mộtquan hệ, các bộ được trích chọn phải thoả mãn điều kiện chọn ( Phép chọn trích ra các hàng trong quan hệ)
Dạng tổng quát : < điều kiện > (< Tên quan hệ >)
là kí hiệu phép chọn
Kết quả thu được từ phép chọn là một quan hệ có danh sáchthuộ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 ),
(giao), (hợp)
Phép chọn có tính giao hoán
Trang 107 Phép kết nối
Phép kết nối : Dùng để kết hợp hai bộ có liên quan từ hai quan hệ thành một bộ.
Trước hết ta làm quen với khái niệm xếp cạnh nhau:
Cho bộ d =( d1, d2, ,dm) và bộ e= (e1, e2, ,
em) Phép xếp cạnh nhau được định nghĩa qua :
d e = ( d1, d2, , dm,e1, e2, ,em).
Trang 11Gọi là một trong các phép so sánh Phép kết nội
được định nghĩa:
Phép kết nối của quan hệ r đối với thuộc tính A với quan hệ s đối với thuộc tính B được định nghĩa qua.
A B
Trang 12 Kết quả của phép kết nối là một quan hệ Q có ( n+m) thuộc tính, mỗi bộ trong Q thoả mãn điều kiện kết nối.
Các bộ có giá trị rỗng tại thuộc tính kết nối
thì không xuất hiện trong kết quả của phép kết.
Bản chất của phép kết nối là phép lấy tích
Đề - Các của hai quan hệ và chọn ra các bộ thoả mãn điều kiện kết.
Trang 13Ví 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 e1a2 2 1 2 d2 e2 a2 2 1 1 d1 e1a1 2 2 3 d3 e3 a2 2 1 2 d2 e2
a1 2 2 1 d1 e1a1 2 2 2 d2 e2
B≥ C
Trang 14 Nếu điều kiện kết nối chứa phép so sánh (=) bằng thì
hai quan hệ và một trong hai thuộc tính đó bị loại bỏ, thì phép kết nối được gọi là kết nối tự nhiên Kí hiệu là " * ".
r(ABC) * s(CDE) = { t[ABCDE]/ t[ABC] r và t[CDE ] s}
VD : với hai quan hệ r và s nêu trên thì :
r(ABC) * s(CDE) = ( A B C D E)
a1 1 1 d1 e1 a2 2 1 d1 e1 a1 2 2 d2 e2
Trang 158 Phép chia
n > m, s ). Phép chia r s là tập tất cả các ( n-m
Ví dụ :
r ( A B C D ) s ( C D) r s = ( A B)
a b c d c d a b
a b e f e f e d
b c e f
e d c d
e d e f
c a d e
Trang 16Cơ sở dữ liệu minh hoạ
Cho một cơ sở dữ liệu Thực tập gồm 3 quan hệ sau đây:
SV( SV#, HT, NS, QUE, HL)DT(DT#, TDT, CN, KP)
SD(SV#, DT#, NTT, KM, KQ)
-Quan hệ SV chứa thông tin về các sinh viên trong một lớpcủa một trường đại học Trong đó:
SV# : mã số sinh viên
HT : Họ và tên sinh viên
NS : Năm sinh của sinh viênQUE: quê quán
HL : Học lực thể hiện qua điểm trung bình
Trang 17- Quan hệ DT chứa thông tin về đề tài nhà trường quản lý Trong đó :
DT# : mã số đề tàiTDT : tên đề tài
CN : họ và tên chủ nhiệm đề tài
KP : Kinh phí cấp cho đề tài ( triệu đồng)
- Quan hệ SD chứa thông tin về tình hình thực tập của cácsinh viên theo các đề tài Trong đó :
NTT : nơi thực tập
KM : khoảng cách từ nơi thực tập đến trường
KQ : kết quả thực tập theo đề tài đã chọn
* Giả thiết là mỗi sinh viên có thể tham gia nhiều đề tài, mỗi đềtài sinh viên đó thực tập tại một địa điểm
Trang 203 Cho thông tin về các đề tài có sinh viên thực tập.
4 Cho biết mã của các đề tài không có sinh viên nào tham gia
5 Cho danh sách các tỉnh có sinh viên đến thực tập
6 Cho thông tin về việc thực tập tại Hải Phòng của sinh viên
7 Cho biết mã của những đề tài có kinh phí lớn hơn 1 triệu và
nhỏ hơn 2 triệu
8 Cho biết mã của sinh viên dưới 20 tuổi, thực tập khá ( có
điểm kết quả thực tập >=6.5)
Trang 21III Các phép toán quan hệ bổ sung
Các hàm kết tập: Có nhiều truy vấn mà đại số quan hệ không thể thực hiện được
như: đưa ra tổng lương, tìm lương lớn nhất ,v.v
Trang 22 Các phép gộp nhóm: Nhóm các bộ trong
một quan hệ theo một giá trị của một số các thuộc tính và sau đó áp dụng các hàm kết tập trên từng nhóm một cách độc lập
sau:
< các tt cơ sở để gộp nhóm> < ds các hàm kết tập > (r)
Trong đó : - là kí hiệu của phép gộp nhóm
- < các tt cơ sở để gộp nhóm >: là danh sách các thuộc tính của quan hệ.
- < ds hàm kết tập >: là danh sách các cặp (
<hàm>< thuộc tính>
Trang 23• Kết quả của phép gộp nhóm là một
quan hệ Ngoài các thuộc tính cơ sở để gộp nhóm, quan hệ kết quả còn có các thuộc tính tương ứng với các phần tử
Trang 24Ví dụ : Giả sử có quan hệ NHAN_VIEN
MA_NV HO_TEN NG_SINH MA_P LUONG
Trang 25MA_PHONG COUNT MA_NV, AVERAGE LUONG (NHAN_VIEN)
Trang 26MA_NV HO_TEN NG_SINH GIOI_TINH MA_P LUONG
PHONG
Trang 28Yêu cầu :
1 Tìm tên dự án có mã là D20
2.Cho biết tên các thành phố có dự án thực hiện
3 Cho biết tên phòng thực hiện dự án có mã là D20
4 Cho biết tên và lương của những nhân viên thực hiện dự án D8 vàlàm việc trên 20 giờ
5 Cho biết họ tên và lương của những nhân viên thuộc phòng "
Nghiên cứu & PT"
6 Đếm số nhân viên trong công ty và tính mức lương trung bình củacác nhân viên
7 Đếm số dự án mà công ty đã thực hiện