Chương 3:
NGÔN NGỮ ĐỊNH NGHĨA VÀ THAO TÁC DL
I. ĐẠI SỐ QUAN HỆ
–
Phép chọn (Selection)
–
Phép chiếu (Projection)
–
Tích Đề các (Cartesian product)
–
Phép kết nối (Join)
–
Phép chia (Division)
–
Phép hợp (Union)
–
Phép giao (Intersect)
–
Phép trừ (Difference)
II. ĐẠI SỐ HỆ VÀ CÁC TÍNH CHẤT CỦA ĐẠI SỐ QUAN HỆ
III. NGÔN NGỮ SQL
–
Ngôn ngữ định nghĩa dư liệu
–
Truy vấn dữ liệu
–
Các phép toán tập hợp (Set Operations)
–
Giá trị NULL và các hàm tổng hợp của SQL
–
Các hàm tổng hợp với việc nhóm dữ liệu
–
Truy vấn lồng (Nested Subqueries)
–
Khung nhìn (Views)
–
Các lệnh cập nhật dữ liệu
IV. NGÔN NGỮ QBE
I. ĐẠI SỐ QUAN HỆ
1.1. Phép chọn (Selection)
Cho quan hệ r định nghĩa trên lược đồ quan hệ R(U), E là biểu
thức chọn phát biểu trên U. Phép chọn trên quan hệ r theo điều kiện E,
ký hiệu
σE(r) cho ta một quan hệ mới với tập thuộc tính U và các bộ là
các bộ của r thoả mãn điều kiện E.
Ta viết:
σE(r) = {t | t∈r và E(t)=đúng}
Trong đó E(t) là giá trị của biểu thức E khi thay mọi thuộc tính Ai
trong E của t bởi t[Ai].
I. ĐẠI SỐ QUAN HỆ
1.1. Phép chọn (tiếp)
I. ĐẠI SỐ QUAN HỆ
1.1. Phép chọn (tiếp)
Ví dụ 1: Cho quan hệ KHACHHANG như sau:
a. Đưa ra danh sách khách hàng tên 'Lê Thanh Tâm' có địa chỉ tại 'Hà Nội'?
) σ(TenKH='Lê Thanh Tâm' ) ∧ (DiaChiKH='Hà Nội') (KHACHHANG)
I. ĐẠI SỐ QUAN HỆ
1.1. Phép chọn (tiếp)
Ví dụ 1: Cho quan hệ KHACHHANG như sau:
b. Đưa ra danh sách khách hàng có địa chỉ tại 'Hà Nội' hoặc 'Nghệ An'?
) σ(DiaChiKH='Hà Nội') ∨ (DiaChiKH='Nghệ An') (KHACHHANG)
I. ĐẠI SỐ QUAN HỆ
1.2. Phép chiếu (projection)
Cho quan hệ r định nghĩa trên lược đồ quan hệ R(U) với U={A1, ..., An}
và tập thuộc tính X⊆ U. Phép chiếu quan hệ r lên tập thuộc tính X, ký
hiệu ΠX(r) cho ta một quan hệ mới với tập thuộc tính X và các bộ là hạn
chế trên X của các bộ t∈ r.
Ta viết
ΠX(r) = {t[X] | t ∈ r }.
I. ĐẠI SỐ QUAN HỆ
1.2. Phép chiếu (tiếp)
Ví dụ 2:
Cho quan hệ KHACHHANG như sau:
a. Đưa ra mã, tên khách hàng ?
) Π{MaKH, TenKH}(KHACHHANG)
Π{MaKH, TenKH}(KHACHHANG)
I. ĐẠI SỐ QUAN HỆ
1.2. Phép chiếu (tiếp)
Ví dụ 2:
Cho quan hệ KHACHHANG như sau:
b. Đưa ra địa chỉ khách hàng ?
) Π{DiaChiKH}(KHACHHANG)
Π{DiaChiKH}(KHACHHANG)
I. ĐẠI SỐ QUAN HỆ
Ví dụ 3:
Cho quan hệ KHACHHANG như sau:
Đưa ra tên khách hàng có địa chỉ ở ‘Hà Nội’?
) Π{TenKH}(σDiachiKH=‘Hà Nội’(KHACHHANG))
σDiachiKH=‘Hà Nội’(KHACHHANG)
Π{TenKH}(σDiachiKH=‘Hà Nội’(KHACHHANG))
I. ĐẠI SỐ QUAN HỆ
1.3. Tích Đề các (Cartesian product)
Cho hai quan hệ r định nghĩa trên lược đồ quan hệ R(U) và s định
nghĩa trên lược đồ quan hệ S(V) , với U= {A1,A2, ..., An} , V= {B1,B2,
..., Bm}. Tích Đề các của r và s, ký hiệu r×s cho ta một quan hệ mới
với tập thuộc tính U ∪ V và các bộ có dạng:
t= (a1,a2,..., an,b1, b2, ..., bm)
trong đó (a1 , ..., an ) ∈ r và (b1,b2, ..., bm ) ∈ s.
Ta viết:
r × s={t=(a1,a2...,an ,b1,b2, ...,bm ) | (a1,a2, ..., an) ∈ r và (b1,b2, ..., bm)∈s}.
I. ĐẠI SỐ QUAN HỆ
1.3. Tích Đề các (tiếp)
Ví dụ 4:
I. ĐẠI SỐ QUAN HỆ
1.4. Phép kết nối (Join)
a, Phép kết nối θ
Cho hai quan hệ r định nghĩa trên lược đồ quan hệ R(U) và s định nghĩa
trên lược đồ quan hệ S(V) với U={A1, ..., An}, V ={B1, ..., Bm}. Ai và Bj là các
thuộc tính tương ứng thuộc U và V sao cho Dom(Ai)=Dom(Bj). Gọi θ là một
trong các phép toán {=, >, >=, <, <=, ≠ }.
Phép kết nối quan hệ r với s theo biểu thức Ai θ Bj , ký hiệu
r
s cho ta
một quan hệ mới với tập thuộc tính U ∪ V và các bộ được xác định bởi
{(u,v) | u=(a1,a2, ..., an) ∈ r, v=(b1,b2, ..., bm)∈s và u[Ai] θ v[Bj]} = đúng}.
Ta viết:
r
s = {(u,v) |u=(a1,a2, ..., an)∈r, v=(b1,b2, ...,bm)∈s và u[Ai] θ v[Bj]}=đúng}.
I. ĐẠI SỐ QUAN HỆ
1.4. Phép kết nối (tiếp)
a, Phép kết nối θ
Ví dụ 5:
I. ĐẠI SỐ QUAN HỆ
1.4. Phép kết nối (tiếp)
b, Phép kết nối tự nhiên (Natural join)
Cho hai quan hệ r định nghĩa trên lược đồ quan hệ R(U) và s định
nghĩa trên lược đồ quan hệ S(V) với U∩V≠∅. Phép kết nối tự nhiên
giữa quan hệ r với s, ký hiệu r*s cho ta một quan hệ mới với tập
thuộc tính U ∪ V và các bộ được xác định bởi
{t | t[U] ∈r và t[V] ∈s}.
Ta viết:
r*s = {t | t[U] ∈r và t[V] ∈s }.
I. ĐẠI SỐ QUAN HỆ
1.4. Phép kết nối (tiếp)
b, Phép kết nối tự nhiên
Ví dụ 6:
I. ĐẠI SỐ QUAN HỆ
1.4. Phép kết nối (tiếp)
Ví dụ 7:
SINHVIEN
SINHVIEN * KHOA
KHOA
I. ĐẠI SỐ QUAN HỆ
Ví dụ 8a:
SINHVIEN
KHOA
Tính giá trị của biểu thức ΠHoten, Tenkhoa(σTenkhoa=‘Lý’(SINHVIEN * KHOA)) ?
SINHVIEN * KHOA
σTenkhoa=‘Lý’( SINHVIEN * KHOA)
ΠHoten, Tenkhoa( σTenkhoa=‘Lý’( SINHVIEN * KHOA))
I. ĐẠI SỐ QUAN HỆ
Ví dụ 8b:
Cho 2 quan hệ:
SINHVIEN (MaSV, Hoten, QueQuan, Makhoa)
KHOA(Makhoa, Tenkhoa)
Hãy viết biểu thức đại số quan hệ để đưa ra họ tên, tên khoa của sinh
viên khoa ‘Lý’?
Giải
ΠHoten, Tenkhoa(σTenkhoa=‘Lý’(SINHVIEN * KHOA))
I. ĐẠI SỐ QUAN HỆ
Bài tập:
Cho cơ sở dữ liệu:
HOADON(SoHD, NgayHD, MaKH)
K_HANG(MaKH, TenKH, DiaChiKH, DTKH)
M_HANG(MaMH, TenMH, DVT, DonGia)
HD_MH(SoHD, MaMH, SoLuong, ThanhTien)
Hãy trả lời các câu hỏi sau bằng biểu thức đại số quan hệ:
a.
Đưa ra mã, tên các mặt hàng có giá trên 100$?
b.
Cho biết tên những khách hàng đã mua hàng ngày 20/03/2009?
c.
Đưa ra danh sách các mặt hàng đã bán trong tháng 4 năm 2009?
d.
Đưa ra tên những mặt hàng bán trong quý 1 năm 2009?
I. ĐẠI SỐ QUAN HỆ
1.5. Phép chia
Cho hai quan hệ r định nghĩa trên lược đồ quan hệ R(U) và s định
nghĩa trên lược đồ quan hệ S(V) với V⊂U và s ≠ φ. Đặt X=U \ V.
Thương của phép chia quan hệ r cho quan hệ s, ký hiệu r ÷ s cho ta
quan hệ mới với tập thuộc tính là X và các bộ được xác định bởi:
{u [X] | (u ∈ r và ∀ v ∈ s thì (u[X] ,v) ∈ r }
Ta viết:
r ÷ s = { u [X] | (u ∈r và ∀ v ∈ s thì (u[X] , v ) ∈ r }.
- Xem thêm -