Cơ sở dữ liệu – Database EE4253
2016 International Research Institute MICA, Hanoi University of Science and Technology
Vũ Hải
Chương 3: Ngôn ngữ định nghĩa và thao tác dữ liệu
2
Chương 3: Ngôn ngữ định nghĩa và thao tác dữ liệu
• Định nghĩa & Thao tác dữ liệu (truy vấn)
trên 1 CSDL biểu diễn bởi mô hình quan hệ.
• 3 cách tiếp cận:
– SD đại số quan hệ – SD tính toán vị từ
3
»Tính toán vị từ biến bộ »Tính toán vị từ biến miền
3.1 Đại số quan hệ
• Tập hợp các phép toán tác động trên các quan hệ, và cho kết quả cũng là một quan hệ.
• Hai nhóm phép toán:
– Phép toán tập hợp: hợp, trừ, giao, tích
Đề-các
– Phép toán quan hệ: chọn, chiếu, kết nối,
4
chia
3.1 Đại số quan hệ
• Cho r và s là 2 quan hệ. • r và s được gọi là khả hợp nếu
– r và s được xác định trên cùng miền giá
trị D1xD2x…xDn hay
5
– r và s được xác định trên cùng tập thuộc tính + các thuộc tính cùng tên có cùng miền giá trị.
3.1.1 Phép hợp (union)
• Hai quan hệ khả hợp r1, r2 • r1 ∪ r2 là quan hệ bao gồm những bộ giá
trị có mặt ở một trong hai quan hệ
đồ-ăn ∪ đồ-uống
đồ-uống
đồ-ăn
6
• r1 ∪ r2 = { t | t ∈ r1 v t ∈ r2 }
3.1.2 Phép giao (intersection)
• Hai quan hệ khả hợp r1, r2 • r1 ∩ r2 là quan hệ bao gồm những bộ giá
trị có mặt ở đồng thời hai quan hệ
điện-thoại
sản-phẩm-Apple
điện-thoại ∩ sản-phẩm-Apple
7
• r1 ∩ r2 = { t | t ∈ r1 ᴧ t ∈ r2 }
3.1.3 Phép trừ (set difference)
điện-thoại \ sản-phẩm-Apple
điện-thoại
sản-phẩm-Apple
8
•
3.1.4 Tích đề-các (cartesian product)
• Hai quan hệ r1, r2 • r1 x r2 = { t | t = (a1,…,an, b1,…,bm) ᴧ
nhân-viên × chi-nhánh
nhân-viên
chi-nhánh
9
(a1,…,an) ∈ r1 ᴧ (b1,…,bm) ∈ r2 }
3.1.5 Phép chọn (select)
• Một quan hệ r • Cho phép lựa chọn những bộ giá trị trong
quan hệ r thoả mãn một điều kiện
hoá-đơn
σsản-phẩm = “máy tính”(hoá-đơn)
10
• Sigma: σđiều_kiện(r)
3.1.6 Phép chiếu (project)
sách
11
•
3.1.7 Phép kết nối (join)
• Kết hợp các bộ giá trị từ 2 quan hệ thành các bộ giá trị của quan hệ kết quả và thỏa mãn 1 điều kiện nào đó
12
• Natural-join: thuộc tính chung (cùng tên) có giá trị = nhau, giữ lại 1 thể hiện của thuộc tính này r ⋈ s = πR∪S(σRi=Si(r × s))
3.1.7 Phép kết nối (join)
“Xuất ra danh sách các hóa đơn cùng thông tin về sản phẩm tương ứng”
Sản_phẩm
Hoá-đơn ⋈ Sản-phẩm
Hóa_đơn
13
Natural-join: r ⋈ s = πR∪S(σRi=Si(r × s))
3.1.7 Phép kết nối (join)
14
• Kết nối có điều kiện: • r ⋈ điều_kiệns = σđiều_kiện (R × S)
3.1.8 Phép chia (division)
“Liệt kê các môn học thuộc tất cả các hệ đào tạo”
15
• Hai quan hệ r(R), s(S): S ⊆ R, s ≠ Ø
Mở rộng
16
•