1
Chương 4
Nội dung
Ngôn ngữ truy vấn (Query Language)
Đại số quan hệ
Các phép toán tập hợp
Các phép toán quan hệ
Các phép toán mở rộng
2
Ngôn ngữ truy vấn (Query Language)
3
Là ngôn ngữ đặc biệt dùng để đặt các câu hỏi (Query)
có liên quan đến dữ liệu trong database.
Ngôn ngữ phi thủ tục (non-procedural language) cho
phép người dùng chỉ ra cái (what) họ muốn mà không
cần chỉ ra cách thực hiện như thế nào (how) để được
kết quả đó
SQL là ngơn ngữ phi thủ tục
Đại số quan hệ
4
Đại số quan hệ là một ngôn ngữ thủ tục mức cao (highlevel procedure language) cho phép DBMS tạo 1 kết quả
truy vấn là quan hệ mới từ các quan hệ đầu vào
Query trong đại số quan hệ (relational algebra) được tạo
ra bằng cách kết hợp các biểu thức thơng qua các tốn
tử (operators) . Mỗi query mơ tả trình tự từng bước để
tính tốn cho câu trả lời mong muốn.
5
SQL query
Parser
Relational algebra Expression
Query Optimizer
Query Execution Plan
Code generator
Executable Code
Đại số quan hệ
Relational Algebra
6
Các truy vấn trong đại số được tạo thành bằng tập hợp
các phép toán (operators)
Mỗi phép toán nhận các quan hệ (relation instances) như
đối số và trả về là 1 quan hệ kết quả.
Biểu thức đại số quan hệ được định nghĩa đệ quy
Các phép tốn của đại số quan hệ
7
Gồm 2 nhóm:
Các phép toán tập hợp: union, intersection, difference
và Cartesian product
Các phép toán quan hệ: select, project, join and divide.
Phép toán union
8
Hai quan hệ R1 và R2
phải khả hợp (unioncompatible )
Phép toán intersection
Hai quan hệ R1 và R2
phải khả hợp (unioncompatible )
9
Phép difference
10
Hai quan hệ R1 và R2
phải khả hợp (unioncompatible )
Phép nhân các quan hệ
(Cartesian product )
11
Hai quan hệ R1 và R2
không cần khả hợp
(union-compatible )
Các phép toán quan hệ
12
Các phép toán quan hệ được thực hiện trên quan hệ R
và điều kiện F.
Điều kiện F là 1 biểu thức luận lý có giá trị true/false
<attribute name> <comparison op> <constant value>
Hoặc
<attribute name> <comparison op> <attribute name>
Phép chọn (selection)
13
Phép chọn trên r theo điều kiện F, ký hiệu là F(r), 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
F(r) = {t|t r và F(t) = true}
Nếu quan hệ r có bậc là n và có k bộ thì F(r) có tối đa
bao nhiêu bậc và bộ?
Bậc là n và có tối đa là k bộ
Ví dụ 1
14
Phép chiếu (Projection)
15
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
hệ
chiếu r trên tập thuộc tính X cho kết quả là 1 quan
X(r) = {t | u r sao cho t = u[X]}
Nếu
quan hệ r có bậc là n và có k bộ thì X(r) có tối đa
bao nhiêu bậc vàbợ?
Bậc là |X| và ln có k bộ
16
Đặt tên kết quả trung gian
17
Có thể đặt tên cho các mối quan hệ trung gian
𝝅𝑭𝒏𝒂𝒎𝒆,𝑳𝒏𝒂𝒎𝒆,𝑺𝒂𝒍𝒂𝒓𝒚 (𝝈𝑫𝒏𝒐=𝟓 𝑬𝑴𝑷𝑳𝑶𝒀𝑬𝑬 )
Đặt lại tên thuộc tính
18
Có thể đặt lại tên thuộc tính trong quan hệ kết
quả.
Tốn tử đổi tên thuộc tính
Renaming operator
19
Có thể đổi tên quan hệ hay tên thuộc tính bằng tốn tử
đổi tên .
(R(𝐹), 𝐸): Các tên trường trong quan hệ mới R tương
tự như trong quan hệ cũ E nhưng được đổi tên theo
danh sách 𝐹.
𝐹 thường có dạng:
oldname newname
hay position newname.
Ví dụ: (C(1 sid1, 5 sid2), S1 x R1)
Các loại phép kết (join)
Phép kết
Phép kết bằng
Phép kết tự nhiên
Phép kết ngoại
20
-join
21
Cho quan hệ r trên R, quan hệ s trên S. Gọi T =
R S, các thuộc tính của R khác với các thuộc
tính của S, là 1 phép so sánh. A R và B S là
2 thuộc tính có thể so sánh với nhau bởi phép
Q(T) = {t | tr r và ts s với t[R] = tr
và t[S] = ts và t[A] t[B] }
Phép kết (-join)
Phép kết của 2 quan hệ r và s
𝑟 ⋈𝐴𝜃𝐵 𝑠 = 𝜎𝐴𝜃𝐵 (𝑟𝑥𝑠)
Phép kết có tính giao hoán
22
Ví dụ
23
Ví dụ
24
Ví dụ
Cho
các lược đồ quan hệ sau:
STUDENT(Id,Name,BirthDate)
PROFESSOR(Id,Name,Qualification)
TEACHING(ProfID,CrsCode,Semester)
COURSE(CrsCode,Name)
TRANSCRIPT(StudId,CrsCode,Semester, Year, Grade)
25