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 푟 푚푎푠푣, ℎ표푡푒푛, 푛푔푎푛ℎ
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:
bai_giang_ngon_ngu_dai_so_quan_he.pptx

