Bài giảng Ngôn ngữ đại số quan hệ

NGÔN NGỮ ĐẠI SỐ QUAN HỆ  
Ngôn ngữ đại số quan hệ  
• Bản chất quan hệ là tập con trong một không gian  
tích.  
• Chúng ta phải thực hiện những phép toán làm thay  
đổi thể hiện của quan hệ hay lược đồ.  
=> Các phép toán trên quan hệ cùng với các quan hệ  
được gọi là đại số quan hệ.  
Ngôn ngữ đại số quan hệ  
(Một số quy ước)  
Cho một lược đồ quan hệ ký hiệu  
푅 = {퐴1, 퐴2, … , 퐴푛}  
Trong đó 퐴푖 được coi là thuộc tính của lược đồ 푅  
Tập giá trị của 퐴푖 ký hiệu là 푑표푚 퐴푖 = 퐷푖  
Quan hệ là tập các bộ 푡, ký hiệu là  
푟 = 푟 푅 = 푡1, 푡2, … 푡푚  
Mỗi bộ t là tập các giá trị của thuộc tính, ký hiệu  
푡 = (푎1, 푎2, … , 푎푛)  
Trong đó  
푡. 퐴푖 = 푎푖 ∈ 퐷푖 (∀1 ≤ ꢀ ≤ 푛)  
Ngôn ngữ đại số quan hệ  
(Một số quy ước)  
Cho một quan hệ 푟 trên lược đồ 푅 = {퐴1, 퐴2, … , 퐴푛}  
1. 푎푑표푚 퐴푗, 푟 = 푑 ∈ 퐷 ∃푡 ∈ 푟, 푡. 퐴푗 = 푑}  
푗
2. 푎푑표푚 푅, 푟 = 푎푑표푚 퐴1, 푟 × 푎푑표푚 퐴2, 푟 × ⋯ ×  
푎푑표푚(퐴푛, 푟)  
Cho 2 quan hệ 푟, 푠 trên lược đồ 푅, ta có  
푟 ∩ 푠 = 푡 푡 ∈ 푟 푣à 푡 ∈ 푠 }  
푟 ∪ 푠 = 푡 푡 ∈ 푟 ℎ푎푦 푡 ∈ 푠}  
푟\s = 푡 푡 ∈ 푟 푣à 푡 ∉ 푠 }  
Ngôn ngữ đại số quan hệ  
(Phép chiếu)  
Cho 푟 푅 , 푋 ⊂ 푅, phép chiếu 푟 lên 푋, ký hiệu là  
휋푋 푟 = 푟 푋 = 푡. 푋, ∀푡 ∈ 푟  
Lấy ví dụ:  
Quan hệ 푆푉(푚푎푠푣, ℎ표푡푒푛, 푙표푝), với tập 푋 = {푚푎푠푣, ℎ표푡푒푛}  
Ta có chiếu 푆푉 trên 푋 như sau  
SV  
masv Hoten  
Lop  
TO  
TO  
TH  
TH  
TO  
풓 푿 = masv Hoten  
S1  
S2  
S3  
S4  
S5  
Hoàng  
Nhân  
Vân  
S1  
S2  
S3  
S4  
S5  
Hoàng  
Nhân  
Vân  
Hương  
Linh  
Hương  
Linh  
Ngôn ngữ đại số quan hệ  
(Phép chọn)  
Cho 푟 푅 và điều kiện 푝, phép chọn trên 푟 các bộ thỏa  
điều kiện 푝, ký hiệu là  
휎푝 푟 = 푡 ∈ 푟 | 푝(푡)  
Lấy ví dụ:  
Quan hệ 푆푉(푚푎푠푣, ℎ표푡푒푛, 푙표푝), với tập 푝: 퐿표푝 = 푇퐻  
SV  
masv Hoten  
Lop  
TO  
TO  
TH  
TH  
TO  
masv Hoten  
흈풑(푺푽) =  
S1  
S2  
S3  
S4  
S5  
Hoàng  
Nhân  
Vân  
S3  
S4  
Vân  
Hương  
Hương  
Linh  
Ngôn ngữ đại số quan hệ  
(Phép kết tự nhiên)  
Cho r 푅 , 푠(푆) và 푄 = 푅 ∩ 푆, 푃 = 푅 ∪ 푆, phép kết tự  
nhiên trên hai quan hệ 푟 và 푠, ký hiệu là  
푟 ⋈ 푠 푃 = 푡 푃 ∃푡1 ∈ 푟 푣à ∃푡2 ∈ 푠, 푡. 푅 = 푡1푣à 푡. 푆 = 푡2}  
Khi 푄 = ∅ thì phép kết tự nhiên là phép tích Descartes.  
Khi 푄 ≠ ∅ thì đó là phép kết có điều kiện theo các thuộc tính 푄.  
r
A
C
s
B
C
풓 ⋈ 풔 A B C  
A1 B1 C1  
A1 B2 C1  
A1 B1 C2  
A2 B1 C1  
A2 B2 C1  
A1 C1  
A1 C2  
A2 C1  
B1 C1  
B1 C2  
B2 C1  
Ngôn ngữ đại số quan hệ  
(Phép kết tự nhiên)  
Xét ví dụ sau:  
r
A C  
s
B
C
풓 ⋈ 풔 A B C  
A1 B1 C1  
A1 C1  
A1 C2  
A2 C1  
B1 C1  
B1 C2  
A1 B1 C2  
A2 B1 C1  
Khi đó ta có 푟 ⋈ 푠 푅 = 푟 và 푟 ⋈ 푠 푆 = 푠 thì đây là kết đầy đủ.  
Xét trường hợp kết không đầy đủ sau  
r
A C  
s
B
C
풓 ⋈ 풔 A B C  
A1 B1 C1  
A1 C1  
A1 C2  
A2 C3  
B1 C1  
B1 C2  
A1 B1 C2  
Ngôn ngữ đại số quan hệ  
(Kết có điều kiện)  
SV  
masv Hoten  
Lop  
TO  
TO  
TH  
TH  
Lop maLop Tenlop  
S1  
S2  
S3  
S4  
Hoàng  
Nhân  
Vân  
TO  
QT  
TH  
Toán  
Quản trị  
Tin học  
Hương  
Ta thực hiện phép kết 푆푉 ⋈ 퐿표푝 theo điều kiện là SV. 푙표푝 = 퐿표푝. 푚푎푙표푝  
Ta có kết quả, ký hiệu là 푆푉 ⋈SV.푙표푝=퐿표푝.푚푎푙표푝 퐿표푝  
Kết masv Hoten  
Lop malop Tenlop  
S1  
S2  
S3  
S4  
Hoàng  
Nhân  
Vân  
TO  
TO  
TH  
TH  
TO  
TO  
TH  
TH  
Toán  
Toán  
Tin học  
Tin học  
Hương  
Phép toán điều kiện có thể là những phép khác như ≤ ≥ > < …  
Ngôn ngữ đại số quan hệ  
(Kết ngoài)  
SV  
masv Hoten  
Lop  
TO  
TO  
TH  
TH  
Lop maLop Tenlop  
S1  
S2  
S3  
S4  
Hoàng  
Nhân  
Vân  
TO  
QT  
TH  
Toán  
Quản trị  
Tin học  
Hương  
Thực hiện phép kết 푆푉 ⋈ 퐿표푝 theo điều kiện là SV. 푙표푝 = 퐿표푝. 푚푎푙표푝 và  
ưu tiên các bộ bên quan hệ 푙표푝 mà không có kết, gọi là kết ngoài bên 푙표푝  
Kết masv Hoten Lop malop Tenlop  
S1  
Hoàng TO  
TO  
TO  
TH  
TH  
Toán  
S2  
Nhân  
Vân  
TO  
TH  
Toán  
S3  
Tin học  
Tin học  
Quản trị  
S4  
Hương TH  
Null  
Null  
Null QT  
Ngôn ngữ đại số quan hệ  
(phép chia)  
Cho 푟 푅 , 푠(푆) với 푆 ⊂ 푅, gọi 푅′ = 푅\S, phép chia 푟  
cho 푠 ký hiệu là  
푟 ÷ 푠 = 푟′ 푅′  
= 푡 ∀푡푠 ∈ 푠, ∃푡푟 ∈ 푟 푡ℎỏ푎 푡푟 푅′ = 푡 푣à 푡푟 푆 = 푡푠}  
PhanCong NhanVien CongViec  
CV CongViec  
Sơn xe  
NV1  
NV2  
NV3  
NV2  
NV3  
Sơn xe  
Sơn xe  
Rửa xe  
Rửa xe  
Sơn xe  
Rửa xe  
푷풉풂풏푪풐풏품 ÷ 푪푽 NhanVien  
NV2  
NV3  
Ngôn ngữ đại số quan hệ  
(Phép toán)  
Cho quan hệ 푟(푅) trên lược đồ 푅 = {퐴1, 퐴2, … , 퐴푛}  
Ta đặt 퐴′ = 퐴2 + 퐴3, đây là phép toán được làm trên 1 bộ của  
quan hệ 푟 khi đó ta có phép chiếu ghi  
푟 퐴1, 퐴′ = 퐴2 + 퐴3, 퐴5  
Phép tổng hợp là phép toán được làm trên nhiều bộ, như hàm  
Sum, Count, Min, Max, … được ký hiệu  
퐴퐺푓(푟)  
Trong đó dùng giá trị của thuộc tính 퐴 để chia nhóm và với  
nhóm đó ta dùng phép toán 푓 để tổng hợp trên quan hệ 푟  
Ví dụ:  
퐺
푟 [퐴1, 푆]  
3
퐴 푆=푠푢푚 퐴  
1
Ý nói là gom nhóm theo giá trị của thuộc tính 퐴1 và tính  
tổng giá trị của thuộc tính 퐴3 theo nhóm và có tên là 푆.  
Ngôn ngữ đại số quan hệ  
(Ví dụ)  
Cho quan hệ SV(masv, hoten, tuoi, nganh)  
Với quan hệ NH(nganh, tennganh)  
Viết lấy ra masv, hoten theo học ngành “TH” có tuổi > 20.  
휎푡푢표푖>20 푎푛푑 푛푔푎푛ℎ="푇퐻" 푆푉 [푚푎푠푣, ℎ표푡푒푛]  
Viết lấy ra ngành mà có tổng số lượng sinh viên với độ tuổi hơn 20 đang theo  
học lớn hơn 10.  
휎퐶>10 푛푔푎푛ℎ퐺퐶=푐표푢푛푡 푚푎푠푣 (휎푡푢표푖>20 푆푉 ) 푛푔푎푛ℎ, 퐶 [푛푔푎푛ℎ]  
Viết lấy ra danh sách gồm masv, hoten, tennganh mà có tuổi > 20  
푟 = 푆푉 ⋈푆푉.푛푔푎푛ℎ=푁퐻.푛푔푎푛ℎ 푁퐻[푆푉. 푚푎푠푣, 푆푉. ℎ표푡푒푛, 푆푉. 푡ꢁ표ꢀ, 푁퐻. 푡푒푛푛푔푎푛ℎ]  
휎푡푢표푖>20 푟 푚푎푠푣, ℎ표푡푒푛, 푛푔푎푛ℎ  
pptx 13 trang yennguyen 15680 Free
Bạn đang xem tài liệu "Bài giảng Ngôn ngữ đại số quan hệ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptxbai_giang_ngon_ngu_dai_so_quan_he.pptx