Chương 3 NGÔN NGỮ KHAI THẤC CSDL QUAN HỆ Chương này trình bày khái quát những kiến thức cơ bản về các ngôn ngữ cho phép định nghĩa các đối tượng của một cơ sở dữ liệu và biểu diễn các yêu cầu trên cơ sở dữ liệu đó mà một hệ quàn trị cơ sở dữ liệu có thể hỗ trợ. Cụ thể, chúng ta sẽ đi tìm hiểu hai ngôn ngữ khai thác cơ sở dữ liệu quan hệ đó là đại số quan hệ và ngôn ngữ truy vấn có cấu trúc SQL. Các phép toán quan hệ Ngôn ngữ đại số quan hệ là cơ sở quan trọng của một ngôn ngữ bậc cao được sử dụng để thao tác ữên các quan hệ. Với dữ liệu được lưu trữ là những quan hệ nào đó, có thể sử dụng các phép toán của đại số quan hệ để tạo ra các quan hệ mới, quan hệ mới này là thông tin được hiển thị ra theo yêu cầu của người dùng.
Đại số quan hệ là loại ngôn ngữ thủ tục, bao gồm tập hợp các phép toán được áp dụng trên các thể hiện cùa quan hệ. Kết quả trả về của một câu truy vấn là một thể hiện của quan hệ. Chuỗi các phép toán đại sổ quan hệ hình thành nên biểu thức đại số quan hệ (câu truy vấn) mà kết quả của nó cũng trà về một thể hiện của quan hệ. Đối với ngôn ngữ này, mỗi câu hỏi được biểu diễn thông qua việc áp dụng một tập hợp các phép toán đặc biệt đối với các quan hệ.
Các phép toán của đại số quan hệ thường được chia thành ba nhóm. Nhóm thứ nhất gồm các phép toán tập hợp (phép hợp, phép giao, phép trừ và phép tích Đề-các). Nhóm thứ hai gồm các phép toán đặc biệt trên quan hệ (phép chọn, phép chiếu, phép chia, phép kết nối và phép đặt lại tên). Nhóm thứ ba gồm các phép toán quan hệ bổ sung (các hàm kết tập và các phép gộp nhóm).
Các phép toán tập hợp Một quan hệ là một tập hợp các n-bộ được tạo ra với n là số ngôi hay bậc cố định của một quan hệ. Trong lý thuyết tập hợp, nhóm các phép toán tập hợp bao gồm phép hợp, phép giao, phép trừ, và phép tích Đề-các của hai tập hợp là những phép toán hai ngôi. Khi sử dụng các phép toán này trong các cơ sở dữ liệu quan hệ cần phải có các điều kiện đảm bảo ràng quan hệ kết quả cùa các phép toán cũng phải là một quan hệ hợp lệ. Điều kiện này gọi là điều kiện khả hợp.1: Cho hai lược đồ quan hệ R(A1, A2,., Bm) là khả hợp nếu chúng cùng bậc (có nghĩa là n=m) và có cùng miền giá trị DOM(Aj) = DOM(Bj), 1< i < n.2: Cho r và s là hai quan hệ.
Khi đó, r và s được gọi là khả hợp nếu chúng được xác định ưên cùng tập thuộc tính và các thuộc tính cùng tên có cùng miền giá trị.1: Cho 2 quan hệ NHANVIEN và THANNHAN với các thể hiện: NHAN.VIEN TENNV NGSINH GT Tung 12/08/1955 Nam Hang 07/19/1968 Nu Nhu 06/20/1951 Nu Hung 09/15/1962 Nam THAN NHAN TENTN NG SINH GTTN Trinh 04/05/1986 Nu Khang 10/25/1983 Nam Phuong 05/03/1958 Nu Minh 02/28/1942 Nam Chau 12/30/1988 Nu 126 Khi đó ta có: - Bậc của hai quan hệ: n=3; - Miền giá tri của các thuộc tính: o DOM(TENNV) = DOM(TENTN) o DOM(NGSINH) = DOM(NG_SINH) o DOM(GT) = DOM(GTTN) Vì vậy hai quan hệ đã cho là khả hợp. • Phép hợp Cho 2 quan hệ r và s khả hợp. Khi đó, phép hợp cùa r và s là một quan hệ gồm tập tất cả các bộ thuộc r hoặc thuộc s, hoặc cả hai (các bộ trùng lặp sẽ bị bỏ) và được ký hiệu là r u s. Biểu diễn hình thức của phép này có dạng: r u s = { 11 ter V tes} Ví dụ 3.2: Cho 2 quan hệ NHACC và KHACHHANG với các thể hiện: NHACC lliỉỉẨ >55? Lan Hà Nội Hà Bắc Ninh Oanh Thanh Hóa Tùng Nam Định Mận Bắc Giang Lê Hải Dương KỐACHHANG Tùng Nam Định Lâm Hải Phòng Lan Hà Nội Đào Phú Thọ 127 Khi đó, phép hợp của 2 quan hệ NHACC và KHACHHANG được biểu diễn và có kết quả như sau: NHACC u KHACHHANG 'UõdỊỈ-' Lan Hà Nội Hà Bắc Ninh Oanh Thanh Hóa Tùng Nam Định Mận Bắc Giang Lê Hải Dương Lâm Hài Phòng Đào Phú Thọ • Phép giao Cho 2 quan hệ r và s khả hợp.
Khi đó, phép giao của r và s là một quan hệ gồm tập tất cả các bộ thuộc cà hai quan hệ r và s và được ký hiệu làrn s. Biểu diễn hình thức của phép này có dạng: rn s = { 11 ter A tes) Ví dụ 3.3: Cho 2 quan hệ NHACC và KHACHHANG với các thể hiện như ví dụ 3. Khi đó, phép giao của 2 quan hệ NHACC và KHACHHANG được biểu diễn và có kết quả như sau: NHACC n KHACHHANG "Ten Diaẹhi Lan Hà Nội Tùng Nam Định • Phép trừ Cho 2 quan hệ r và s khả hợp. Khi đó, phép trừ của r và s là một quan hệ gồm tập tất cả các bộ thuộc r nhưng không thuộc s và được ký hiệu là r - s.
128 Biểu diễn hình thức của phép này có dạng: r - s = {11 ter A tỂs} Ví dụ 3.4: Cho 2 quan hệ NHACC và KHACHHANG với các thể hiện như ví dụ 3. Khi đó, phép trừ của 2 quan hệ NHACC và KHACHHANG được biểu diễn và có kết quà như sau: NHACC -KHACHHANG‘ iHKii Hà Bắc Ninh Oanh Thanh Hóa Mận Bắc Giang Lê Hải Dương KHACHHANG - NHACC SIB Lâm Hải Phòng Đào Phú Thọ Một số các tính chất trong quan hệ tập họp: - Tính chất giao hoán: rus=sur rns=snr - Tỉnh chất kết hợp: r u (s u t) = (r u s) u t r n (s n t) = (r n s) n t • Phép tích Đề - các Được dùng để kết hợp các bộ của các quan hệ lại với nhau. Cho lược đồ quan hệ R, s tương ứng xác định frên tập thuộc tính 129 {A],A2,.,An} và {Bl,Bĩ, —, Bm) và r và s là hai quan hệ thuộc hai lược đồ R và s tương ứng. Khi đó phép tích Đề - các cùa 2 quan hệ r và s là một quan hệ gồm tập tất cả các (m+n) - bộ có n thành phần đầu tiên là một bộ thuộc r và m thành phần sau là một bộ thuộc s và được ký hiệu là rx s.
Biểu diễn hình thức của phép này có dạng: r X s = {t I t=(ai,.bm) e s} Kết quà trả về là một quan hệ q. Mỗi bộ của q là tổ hơp giữa 1 bộ trong r và 1 bộ trong s: - Nếu r có u bộ và s có V bộ thì q sẽ có U X V bộ - Nếu r có n thuộc tính và s có m thuộc tính thì q sẽ có n + m thuộc tính (r+ n s+* 0 ) Ví dụ 3.5: Cho 2 quan hệ NHACC và HANGHOA với các thể hiện như sau. NHACC > '■ MaNÇC ; Ten 100 Lan 101 Hà 102 Oanh 103 Tùng HANGIĨOA MaHH TV01 Ti vi LCD MG01 Máy giặt TL01 Tủ lạnh Khi đó, tích Đề-các của 2 quan hệ NHACC và HANGHOA được biểu diễn và có kết quả như dưới đây: 130 NHACC X HANGHOA MaNCC Ten MaHH TenHH 100 Lan TV01 Ti vi LCD 100 Lan MG01 Máy giặt 100 Lan TL01 Tủ lạnh 101 Hà TV01 Ti vi LCD 101 Hà MG01 Máy giặt 101 Hà TL01 Tủ lạnh 102 Oanh TV01 Ti vi LCD 102 Oanh MG01 Máy giặt 102 Oanh TL01 Tủ lạnh 103 Tùng TV01 Ti vi LCD 103 Tùng MG01 Máy giặt 103 Tùng TL01 Tủ lạnh • Phép chia Cho lược đồ quan hệ R, s tương ứng xác định trên tập thuộc tính {Ab A2,.An) và {Ab A2, Am}, r và s là hai quan hệ thuộc hai lược đồ R và s tương ứng. Khi đó phép chia 2 quan hệ r và s là một quan hệ gồm tập tất cả các (n-m) - bộ sao cho mỗi bộ này khi được ghép với một bộ bất kỳ ưong quan hệ s thì sẽ cho một bộ trong quan hệ r và được ký hiệu là r -ỉ- s.
Biểu diễn hình thức của phép này có dạng: r -5- s={t I t=(am+b.6: Cho 2 quan hệ CUNGCAP và HANGHOA với các thể hiện như sau. 131 CUNGCAP MaNCÇ MaHH ¿ MaHH 100 TVOI TV01 101 TVOI MG01 101 MGOl TL01 102 TV01 100 TL01 103 MG01 102 MG01 100 MG01 102 TL01 103 TV01 Khi đó, tích phép chia của quan hệ CUNGCAP cho quan hệ HANGHOA được biểu diễn và có kết quà như dưới đây: CUÑGCAP + HÀNGHOA MaNCC 100 102 3. Các phép toán đặc biệt trên quan hệ Các phép toán đặc biệt trên quan hệ bao gồm các phép toán liên quan chặt chẽ đến các thao tác cơ bàn làm thay đổi quan hệ (như các thao tác thêm, sửa, xóa các bộ giá trị trong một quan hệ). Các phép toán này là một cách tiếp cận khác trong việc biểu diễn câu truy vấn của ngôn ngữ đại số quan hệ.
• Phép chọn Phép chọn được dùng để lọc ra một tập con các bộ của quan hệ đã cho thỏa mãn một điều kiện xác định. Điều kiện đó được gọi là điều kiện chọn hay biểu thức chọn. 132 Biểu thức chọn F được biểu diễn bởi một biểu thức logic bao gồm các toán hạng, mỗi toán hạng là một phép so sánh đơn giản giữa hai biến là hai thuộc tính hoặc giữa một biến là một thuộc tính và một biến là giá trị hằng. Biểu thức chọn F cho giá trị là đúng hoặc sai (TRUE hoặc FALSE) đối với mỗi bộ đã kiểm ứa.
Như vậy, điều kiện chọn F là một biểu thức logic gồm các mệnh đề có dạng: - <tên thuộc tính> <phép so sánh> <hằng số> - <tên thuộc tính> <phép so sánh> <tên thuộc tính> Các phép so sánh trong điều kiện chọn F là <, >, <, >, = Các mệnh đề được nối lại nhờ các phép logic A (và), V (hoặc), -I (phủ định). Cho r là một quan hệ và F là một biểu thức logic trên các thuộc tính của r. Phép chọn trên quan hệ r các bộ thỏa mãn điều kiện chọn F, kỉ hiệu là ơf(r) là tập tất cả các bộ của r thỏa mãn F. Biểu diễn hình thức của phép này có dạng: ơF(r) = {11 ter A F(t) = TRUE} Ví dụ 3.7: Cho quan hệ HANGHOA với các thể hiện như sau.
HANGHOA MailH XpTenHH,.Trongluong TV01 Ti vi LCD Đen 2.5 MG01 Máy giặt Xám 7 TL01 Tủ lạnh Xanh 10 TV02 Ti vi LCD Xám 3.