1/31
Looks like no tags are added yet.
Đại số quan hệ là gì?
Mô hình toán học dựa trên lý thuyết tập hợp; đối tượng xử lý là quan hệ; dùng để rút trích dữ liệu và tối ưu hóa quá trình rút trích.
Biểu thức đại số quan hệ là gì? Vì sao lồng ghép được?
Biểu thức gồm các phép toán trên quan hệ; kết quả luôn là một quan hệ nên có thể kết hợp các phép toán để tạo quan hệ mới.
5 phép toán cơ bản của ĐSQH?
Chọn (σ), chiếu (π), tích Descartes (×), trừ (−), hợp (∪).
Các phép «không cơ bản»?
Giao (∩), kết (⋈), chia (÷), đổi tên (←): suy ra từ 5 phép cơ bản (trừ phép đổi tên).
Phép chọn σ làm gì? Cú pháp?
Chọn các dòng (bộ) thỏa điều kiện: σ<đk>(R). Điều kiện nối bằng ¬, ∧, ∨.
Tính chất của phép chọn?
Có tính giao hoán: σ<đk1>(σ<đk2>(R)) = σ<đk2>(σ<đk1>(R)).
Phép chiếu π làm gì? Cú pháp?
Chọn ra một số cột: π(R) hoặc R[cột1, cột2,…]; kết quả theo thứ tự trong danh sách.
Tính chất của phép chiếu?
Không giao hoán; nếu chỉ chiếu thuộc tính không khóa thì loại bộ lặp.
Thứ tự nên dùng khi lọc dòng và cột?
Chọn (σ) trước, chiếu (π) sau: chiếu mất thuộc tính thì không chọn theo thuộc tính đó được.
Tích Descartes R × S là gì?
Tập các bộ ghép mỗi bộ của R với mỗi bộ của S: n + m thuộc tính, |R|×|S| bộ.
Phép kết (⋈) là gì?
Tích Descartes + điều kiện kết: R ⋈ S = σ<đk>(R × S); ghép các cặp bộ thỏa điều kiện kết.
Kết theta (θ-join) là gì?
Kết với điều kiện so sánh tổng quát, θ ∈ {«≠, =, >, <, ≥, ≤»}.
VD: NHANVIEN ⋈ PHONG=MAPH PHONGBAN.
Kết bằng (equi-join) là gì?
Kết theta với θ là phép =; nếu hai cột trùng nghĩa thì có thể bỏ bớt một cột.
Kết tự nhiên (natural join) là gì?
Kết bằng trên các thuộc tính cùng tên và loại cột trùng; viết R ⋈ S hoặc R * S.
Kết ngoài (outer join) là gì?
Mở rộng phép kết để không mất thông tin: giữ bộ không phù hợp và điền null.
Ba loại kết ngoài?
Left: giữ bộ bên trái
Right: giữ bộ bên phải
Full: giữ cả hai.
Khi nào dùng kết ngoài trái? Ví dụ?
Khi cần liệt kê «tất cả» bộ bên trái kể cả chưa có bộ phù hợp.
VD TAIXE ⟕ CHUYENDI giữ TX04 (SoCD, MaXe = null).
Điều kiện tương thích khả hợp?
Hai lược đồ cùng bậc (n = m) và DOM(Ai) = DOM(Bi) cho mọi cặp thuộc tính tương ứng; cần cho hợp, trừ, giao.
Phép trừ R − S?
{ t | t ∈ R ∧ t ∉ S }; không giao hoán. Dùng cho yêu cầu "không / chưa".
Phép hợp R ∪ S?
{ t | t ∈ R ∨ t ∈ S }; giao hoán. Dùng cho yêu cầu "hoặc" giữa hai tập.
Phép giao R ∩ S?
{ t | t ∈ R ∧ t ∈ S } = R − (R − S); giao hoán. Dùng cho yêu cầu "cả hai".
Vì sao σ MADA='A' ∧ MADA='B' không tìm được nhân viên tham gia cả hai đề án?
Một bộ chỉ có một MADA nên điều kiện luôn sai → rỗng. Phải dùng phép giao hai tập MANV.
Phép chia R ÷ S cần điều kiện gì?
Thuộc tính của S là tập con không bằng (khác rỗng) của thuộc tính R; kết quả có thuộc tính Q+ = R+ − S+.
Định nghĩa phép chia?
Q = R ÷ S = { t | ∀ s ∈ S, (t, s) ∈ R }: các t ghép với mọi bộ của S đều có trong R.
Các bước tính phép chia?
T1 ← π(R+−S+)(R
T2 ← π(R+−S+)((S × T1) − R)
T ← T1 − T2
Phép chia dùng cho yêu cầu nào? Ví dụ?
Yêu cầu "tất cả".
VD: PHANCONG ÷ DEAN[MADA] → nhân viên làm tất cả đề án (002).
Trước khi chia cần chuẩn bị gì?
Chiếu bỏ thuộc tính thừa để thuộc tính S là tập con của R: KETQUATHI[Mahv, Mamh] ÷ MONHOC[Mamh].
Các hàm tính toán trong ĐSQH?
avg, min, max, sum, count.
Phép gom nhóm có dạng nào?
G1,…,Gn «ℑ» F1(A1),…,Fn(An) (E)
Gi là thuộc tính gom nhóm
Fi là hàm, Ai là thuộc tính
E là biểu thức ĐSQH.
Gom nhóm không có Gi hoặc có Gi khác nhau thế nào?
Không có Gi: cả quan hệ là một nhóm.
Có Gi: hàm tính trên từng nhóm nhỏ.
VD: Mamh ℑ max(Diem), min(Diem), avg(Diem) (KETQUATHI).
Bảng «"dịch"» từ khóa đề → phép toán?
"thỏa" → σ
"cho biết cột" → π
nhiều bảng → ⋈
"hoặc" → ∪
"cả hai" → ∩
"không/chưa" → −
"tất cả" → ÷
"tổng, trung bình, đếm" → gom nhóm
Hai cách biểu diễn phép chọn/chiếu?
Cách 1: σ<đk>(R), π(R)
Cách 2: (R : điều kiện) và R[cột1, cột2]
kết quả trung gian có thể đổi tên (Q ← …).