Chương 5
Chương 5
Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ
1
Nội dung
Nội dung
Đại số quan hệ
◦
5 phép toán cơ bản
◦
3 phép toán suy dẫn
Các loại phép kết
Các quy tắc của 1 DBMS
2
Ngôn ngữ quan hệ
Ngôn ngữ quan hệ
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ệ là một ngôn ngữ thủ tục
mức cao (high-level procedure language)
5
Đại số quan hệ và SQL
Đại số quan hệ và SQL
Lập trình viên dùng SQL để xác định query
của họ.
DBMS kiểm tra cú pháp (parse) của
query, dịch nó thành 1 biểu thức của đại
số quan hệ, đơn giản hơn nhưng ít hiệu
quả hơn về giải thuật. Query optimizer
biến đổi biểu thức đại số này thành 1 biểu
thức tương đương nhưng ít tốn thời gian
thực thi hơn tạo 1 execution plan. Code
generator chuyển đổi nó thành mã để thực
thi.
6
7
SQL query
SQL query
Relational algebra Expression
Relational algebra Expression
Query Execution Plan
Query Execution Plan
Executable Code
Executable Code
Parser
Query Optimizer
Query Optimizer
Code generator
Các phép toán được thực hiện cho quan hệ
r trên lược đồ 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, nó bao gồm:
◦
Các toán hạng là hằng hoặc tên thuộc tính
◦
Các phép toán so sánh =, ≠, <, ≤,>, ≥
◦
Các phép toán luận lý not (¬), and (∧), or (∨)
10
Phép chọn (selection operation)
Phép chọn (selection operation)
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ó bao nhiêu bậc và bộ?
Bậc là n và có tối đa là k bộ
11
β
α
β
1
23
7
10
Selection
Selection
14
σ
σ
PRICE<$2.0
PRICE<$2.0
(Product
(Product
)
)
σ
σ
PCODE =311452
PCODE =311452
(Product)
(Product)
Phép chiếu (Projection operation)
Phép chiếu (Projection operation)
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
2
A C
α
α
β
β
1
1
1
2
A C
α
β
β
1
1
2
∏
A,C
(r)
Projection
Projection
17
Π
P_DESCRIPT,PRICE
(PROJECT)
Π
PRICE
(PROJECT)
2
A B
α
α
α
α
β
β
β
β
1
1
1
1
2
2
2
2
C D
α
β
β
γ
α
β
β
γ
10
10
s
Ví dụ
Ví dụ
20
PRODUCT x STORE
Phép tích Descartes
Phép tích Descartes
Nếu các quan hệ có tên trùng nhau ?
Π
Id,Name
(STUDENT)x Π
Id,DeptId
(PROFESSOR)
Hướng giải quyết:
◦
Đặt tên quan hệ trước thuộc tính bị trùng tên
STUDENT.
STUDENT.
Id
Id
Name
Name
PROFESSOR.
PROFESSOR.
Id
Id
DeptId
DeptId
r ∩ s = {t | t ∈ r và t ∈ s}
Điều kiện: các quan hệ r và s phải có tính
khả hợp ( union-compatible)
23
Union
Union
24
Intersect
Intersect
25