bài tập Chương 4: đại số quan hệ


Chương 4: Ngôn ngữ đại số quan hệ

 Ngôn ngữ đại số quan hệ gồm một tập hợp các thao tác cơ bản trên mô hình dữ liệu quan hệ cho phép người dùng thực hiện các yêu cầu tìm kiếm trên CSDL. Ngôn ngữ đại số quan hệ có vai trò quan trọng vì nó cung cấp nền tảng cho các thao tác trên quan hệ, cho việc xử lý và tối ưu câu truy vấn trong các HQT CSDL quan hệ.

4.1.     I. Các phép toán đại số quan hệ [1][2][5][7]

 1. Phép hội

 

Cho hai lược đồ quan hệ R(A1,A2,...,An) và S(B1,B2,...,Bn) và hai quan hệ tương ứng là r(R), r(S). Hai quan hệ r s được gọi là khả hợp nếu chúng có cùng bậc n (hay số thuộc tính) và các thuộc tính tương ứng cùng miền giá tri; nghĩa là Dom(Ai)=Dom(Bi), 1£ i £ n.

Ký hiệu phép hội: È

r È s = {t/(t Î r) Ú (t Î s)}

Kết quả của phép hội của r s là một quan hệ chứa các bộ thuộc r hoặc thuộc s.

 2. Phép giao

 Ký hiệu phép giao: Ç

r Ç s = {t/(t Î r) Ù (t Î s)}

Kết quả của phép giao của r s là một quan hệ chứa các bộ vừa thuộc r vừa thuộc s.

3. Phép hiệu

 Ký hiệu phép hiệu: -

r - s = {t/(t Î r) Ù (t Ï s)}

Kết quả của phép hiệu của r s là một quan hệ chỉ gồm các bộ thuộc r mà không thuộc s.

Phép hội, phép giao có tính chất giao hoán; còn phép hiệu không có tính chất giao hoán.

4. Phép tích Đềcác

 Phép tích Đềcác không đòi hỏi hai quan hệ phải có tính khả hợp. Ký hiệu phép tích Đềcác: x

Cho hai lược đồ quan hệ R(A1,A2,...,An) và S(B1,B2,...,Bm) và hai quan hệ r(R), r(S). Giả sử r k1 bộ, s k2 bộ thì tích Đềcác của r s ký hiệu là r x s = q. Với q là một quan hệ có n + m thuộc tính và có k1* k2 bộ trong đó mỗi bộ của q là sự kết hợp của mỗi bộ của r và các bộ của s.

5. Phép chọn

 Phép chọn được dùng để chọn ra từ một quan hệ các bộ thỏa mãn điều kiện chọn. Ký hiệu phép chọn: s

pháp:                    s<Điều kiện chọn> (r)

hoặc có thể dùng cú pháp r : <Điều kiện chọn>

Trong đó điều kiện chọn là một biểu thức luận lý được tạo thành dựa trên các thuộc tính của r. Kết quả của phép chọn trên quan hệ r là một quan hệ có cùng tập thuộc tính như quan hệ r và có số bộ ít hơn hoặc bằng số bộ của quan hệ r.

Điều kiện chọn có thể sử dụng các phép so sánh (=, <, >, £, ³, ¹), các giá trị hằng, các toán tử logic AND, OR, NOT.

Phép chọn có tính chất giao hoán.

 6. Phép chiếu

 Phép chiếu được dùng để giữ lại một số thuộc tính của một quan hệ ban đầu; nghĩa là bỏ qua những thuộc tính khác không quan tâm.

Ký hiệu phép chiếu:             Õ

pháp:                                Õ<Danh sách các thuộc tính>(r)

hoặc có thể dùng pháp    r[<Danh sách các thuộc tính>]

Kết quả của phép chiếu là một quan hệ có các thuộc tính được liệt kê trong <danh sách các thuộc tính>. Phép chiếu chỉ giữ lại một bộ trong các bộ trùng nhau.

7. Phép gán

 Ký hiệu phép gán:                ¬

pháp:                                r ¬ E

Khi đó kết quả của biểu thức đại số quan hệ E sẽ được gán cho quan hệ r; sau đó có thể dùng r như là toán hạng cho một phép toán đại số quan hệ khác.

9. Phép đổi tên

 Ta có thể dùng phép đổi tên để đổi tên các quan hệ hoặc tên của thuộc tính trong quan hệ hoặc cả hai.

Ký hiệu phép đổi tên:          r

Phép đổi tên tổng quát áp dụng cho quan hệ R bậc n được viết như sau:

rs(B1, B2,...,Bn)(r)            :           Dùng để đổi tên quan hệ lẫn tên thuộc tính, hoặc

rs (r)                                 :           Dùng để đổi tên quan hệ, hoặc

r(B1, B2,...,Bn)(r)             :           Dùng để đổi tên thuộc tính.

Trong đó s là tên mới của quan hệ; Bi là tên mới của các thuộc tính, r là quan hệ ban đầu.

10. Phép kết

 Phép kết có vai trò rất quan trọng trong CSDL quan hệ. Phép kết cho phép truy xuất dữ liệu trên nhiều quan hệ.

Ký hiệu phép kết :

pháp                     : r <Điều kiện kết> s

Cho hai lược đồ quan hệ R(A1,A2,...,An) và S(B1,B2,...,Bm) và hai quan hệ r(R), s(S). Giả sử r k1 bộ, s k2 bộ. Kết quả của phép kết là một quan hệ q n m thuộc tính, có lược đồ quan hệ là Q(A1,A2,...,An,B1,B2,...,Bm); với các thuộc tính xuất hiện đúng theo thứ tự này.

Điều kiện kết liên quan đến các thuộc tính r s có dạng:

<điều kiện 1> Ù <điều kiện 2> Ù .. <điều kiện t >

Trong đó mỗi điều kiện có dạng Ai q Bj với Ai là thuộc tính của r Bj là thuộc tính của s; AiBj có cùng miền giá trị; q (đọc là thê-ta) là một trong các phép so sánh.

Phép kết với điều kiện kết liên quan đến phép so sánh q tổng quát được gọi là phép theta-kết.

11. Phép kết tự nhiên

 Phép kết được sử dụng phổ biến nhất trong CSDL quan hệ chỉ dùng phép so sánh bằng trong điều kiện kết, gọi là phép kết-bằng. Kết quả của phép kết-bằng luôn xuất hiện ít nhất một cặp thuộc tính có giá trị trùng nhau trong từng bộ. Một trong hai thuộc tính trong một/nhiều cặp thuộc tính này là thừa.

Phép kết tự nhiên cũng có thể được ký hiệu là *, bỏ đi thuộc tính thứ hai trong từng cặp thuộc tính trùng nhau này. Định nghĩa chuẩn của phép kết tự nhiên yêu cầu từng cặp thuộc tính kết này phải cùng tên. Trong trường hợp các cặp thuộc tính không trùng tên và muốn sử dụng phép kết tự nhiên thì phải thực hiện phép toán đổi tên trước.

12. Phép chia

 Ký hiệu phép chia:                ¸

Cho lược đồ quan hệ R và một tập thuộc tính Z, r(Z) và quan hệ r(R). Cho lược đồ quan hệ S và một tập thuộc tính X, S(X) và quan hệ s(S).

Để áp dụng được phép chia trên hai quan hệ r s thì X Í Z. Đặt Y = Z - X. Y là thuộc tính của r mà không phải là tập thuộc tính của s. Phép chia được định nghĩa r ¸ s = q.

Với q là quan hệ có tập thuộc tính là Y và gồm các bộ t, trong đó t xuất hiện trong

r dưới dạng kết hợp của t và mọi bộ của s; nghĩa là q = r ÷ s = {t/"uÎs,(t,u)Î r}.

4.2.         II. Các hàm tổng hợp và gom nhóm [1][10].

 Một số yêu cầu truy vấn không thể thực hiện được với các phép toán đại số quan hệ cơ bản, vì vậy ngôn ngữ đại số quan hệ định nghĩa một số hàm tính tổng hợp như SUM, AVG, COUNT, MAX, MIN.

Ngoài ra, việc tính toán sau khi đã gom nhóm cũng thường xảy ra khi truy vấn. Ngôn ngữ đại số quan hệ định nghĩa hàm gom nhóm Á như sau.

Cú pháp: <Danh sách thuộc tính gom nhóm>Á<danh sách hàm> (r)

Trong đó <danh sách thuộc tính gom nhóm> là các thuộc tính của r mà dữ liệu sẽ được gom nhóm trên đó để phục vụ cho mục đích tính toán. <danh sách hàm> là những cặp (hàm, thuộc tính) với hàm là một trong các hàm được đề cập ở trên và thuộc tính là một trong các thuộc tính của r. Kết quả cho ra là một quan hệ có số thuộc tính là số thuộc tính gom nhóm, còn mỗi hàm tính tổng hợp cho ra thêm một thuộc tính nữa.

4.3.          III. Phép toán cập nhật dữ liệu [1]

 1. Thêm

  pháp:        r ¬ r È E

Trong đó r là quan hệ và E là một biểu thức đại số quan hệ cho biết một/nhiều bộ dữ liệu được chèn vào r.

2. Xóa

 

pháp:        r ¬ r - E

Trong đó r là quan hệ và E là một biểu thức đại số quan hệ cho biết một/nhiều bộ dữ liệu được xóa từ r.

3. Sửa

  pháp:        r ¬ÕF1,F2,...,Fn(r)

Trong đó Fi là thuộc tính thứ i của quan hệ r, hoặc là biểu thức cho biết giá trị mới của thuộc tính thứ i.

4.4.          Ví dụ

 Ví dụ 4.1

 Cho lược đồ cơ sở dữ liệu như ở ví dụ 3.1 THISINH(SOBD,HOTÊN,NGAYSINH,NƠISINH,NĂMDƯTHI,MATRƯƠNG)

TRƯƠNG(MATRƯƠNG,TÊNTRƯƠNG)
MÔNTHI(MAMT,TÊNMT) KÊTQUA(SOBD,MAMT,ĐIÊMTHI, GHICHU)

Dùng ngôn ngữ đại số quan hệ biểu diễn những yêu cầu sau:

1.     1. Cho biết điểm thi các môn của thí sinh có số báo danh là ’080191000001’.

2.      Cho biết các thí sinh có ít nhất một môn thi nào đó bị điểm 0 ở kỳ thi năm 2010 (điểm 0 do vắng thi hoặc điểm 0 do bài thi bị chấm điểm 0).
3.      Cho biết các thí sinh đã đăng dự thi năm 2010 nhưng không dự thi môn nào (tất cả các môn đều vắng thi).
4.      Cho biết các thí sinh có điểm tất cả các môn thi đều lớn hơn hoặc bằng 8 trong kỳ thi năm 2010.
5.      Cho biết các thí sinh cùng trường với thí sinh có số báo danh là ’080191000001’.
6. 
Cho biết các thí sinh có điểm TOÁN bằng điểm TOÁN của của thí sinh có số báo danh là ’080191000001’.

Ngày:24/02/2020 Chia sẻ bởi:

CÓ THỂ BẠN QUAN TÂM