Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 2)

pdf 25 trang Gia Huy 17/05/2022 2130
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 2)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_ky_thuat_phan_mem_ung_dung_chuong_3_mo_hinh_du_lie.pdf

Nội dung text: Bài giảng Kỹ thuật phần mềm ứng dụng - Chương 3: Mô hình dữ liệu quan hệ (Phần 2)

  1. Kỹ thuật phần mềm ứng dụng Chương 3 Mô hình dữ liệu quan hệ (Phần 2) 9/6/2017
  2. Nội dung chính 1. Giới thiệu 2. Đại số quan hệ là gì? 3. Các phép toán trong đại số QH 2
  3. 1. Giới thiệu . Các thao tác dữ liệu trên mô hình quan hệ dựa trên đại số quan hệ. . Đại số quan hệ là một phương pháp đơn giản và hữu hiệu để xây dựng các quan hệ mới từ các quan hệ hiện có. . Đại số quan hệ cũng là nền tảng lý thuyết của ngôn ngữ truy vấn SQL. 3
  4. 2. Môn đại số là gì? . Môn đại số bao gồm: – Các phép toán (operators) – Các toán hạng nguyên tố (atomic operands) . Môn đại số cho phép chúng ta xây dựng các biểu thức đại số. 4
  5. Đại số quan hệ là gì? . Đại số quan hệ bao gồm: – Các phép toán trên đại số quan hệ – Các toán hạng có thể là:  Các biến đại diện cho các quan hệ  Các hằng 5
  6. 3. Các phép toán trong đại số QH . Tổng quan về các phép toán: – Các phép toán tập hợp: hợp, giao, hiệu – Các phép toán làm phân chia quan hệ: chọn nhằm lọc ra một số bộ, và chiếu nhằm loại ra một vài thuộc tính. – Các phép toán trộn hai quan hệ: tích, và các phép nối khác nhau – Phép đổi tên nhằm thay đổi tên và các thuộc tính của quan hệ, nhưng không làm thay đổi nội dung của nó 6
  7. Ký hiệu các phép toán Phép toán Ký hiệu Hợp (Union)  Giao (Intersection)  Hiệu (Difference) - or \ Chiếu (Projection) Chọn (Selection)  (sigma) Tích đề các (Product) x Đổi tên (Renaming) (rô) 7
  8. Ký hiệu các phép toán Phép toán Ký hiệu Nối (Join) Nối ngoài trái (Left outer join) Nối ngoài phải (Right outer join) Nối ngoài đầy đủ (Full outer join) Nối nửa (Semi-join) 8
  9. Các phép toán nguyên thủy (Primitive operations) . Trong bất kỳ đại số nào, đều có các phép toán nguyên thủy (cơ bản nhất), còn các phép toán khác đều có thể được suy ra từ các phép toán nguyên thủy này . Trong đại số quan hệ, có 6 phép toán nguyên thủy: – Phép Chọn, – Phép Chiếu, – Phép Tích Đề Các, – Phép Hợp, – Phép Hiệu, – Phép Đổi tên 9
  10. Các phép toán tập hợp (Set operations) . Điều kiện tiên quyết: để thực hiện được các phép toán này, 2 quan hệ R và S trước hết cần phải thỏa mãn 2 điều kiện: – Chúng phải có lược đồ có số thuộc tính giống nhau, và miền giá trị tương ứng của các thuộc tính cũng phải giống nhau. – Thứ tự của các thuộc tính của 2 QH này cũng phải giống nhau. Khi đó 2 QH này gọi là Khả hợp. 10
  11. Các phép toán tập hợp . Hợp (Union): – R  S . Giao (Intersection): – R  S . Hiệu (Difference): – R – S (R \ S) 11
  12. Phép hợp . Ví dụ: {1,2} U {1,3} = {1,2,3} 12
  13. Phép hiệu . Vd: {1,2,3,5} – {1,3,4} = {2,5}. 13
  14. Phép giao Intersection . Vd: {1,2,4,6} ∩ {1,2,6,7,8} = {1,2,6} 14
  15. Phép chọn R1 := σC (R2) . C là một biểu thức logic (điều kiện chọn). . R1 là tất cả các bộ có trong R2 mà thỏa mãn điều kiện C (C nhận giá trị Đúng). 15
  16. Phép chọn: ví dụ Quan hệ Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 JoeMenu := σbar=“Joe’s”(Sells): bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 16
  17. Phép chiếu . R1 := πL (R2) – L là một danh sách các thuộc tính của quan hệ R2. – R1 được tạo ra bằng cách trích ra từ mỗi bộ trong R2, các thành phần thuộc các thuộc tính L. Từ mỗi bộ được trích ra đó sẽ tạo thành một bộ mới của R1. – Loại bỏ các bộ giống nhau nếu có trong R1. 17
  18. Phép chiếu: ví dụ Quan hệ Sells: bar beer price Joe’s Bud 2.50 Joe’s Miller 2.75 Sue’s Bud 2.50 Sue’s Miller 3.00 Prices := πbeer, price(Sells): beer price Bud 2.50 Miller 2.75 Miller 3.00 18
  19. Phép tích Đề các . R3 := R1 Χ R2 – Ghép đôi từng bộ t1 của R1 với từng bộ t2 của R2, thành một bộ của R3 – Lược đồ của R3 là ghép các thuộc tính của R1 và R2, theo đúng thứ tự. 19
  20. Tích Đề Các: ví dụ R1( A, B ) R3( A, R1.B, R2.B, C ) 1 2 1 2 5 6 3 4 1 2 7 8 1 2 9 10 R2( B, C ) 3 4 5 6 5 6 3 4 7 8 7 8 3 4 9 10 9 10 20
  21. Phép đổi tên . Phép đổi tên ρ sẽ thay đổi tên của quan hệ và các thuộc tính của nó . R1 := ρR1(A1, ,An)(R2): sẽ đổi tên R2 thành R1; và các thuộc tính của R2 tương ứng sẽ thành A1, ,An . . Ký hiệu ngắn gọn: R1(A1, ,An) := R2. 21
  22. Phép đổi tên: ví dụ Bars( name, addr ) Joe’s Maple St. Sue’s River Rd. R(bar, addr) := Bars R( bar, addr ) Joe’s Maple St. Sue’s River Rd. 22
  23. Các phép nối (joins) R S . Nối bằng: R.A = S.B – Nối tự nhiên R S . Nối theta R S C 23
  24. Nối tự nhiên (natural join) . Là phép toán kết nối hai quan hệ bằng cách: – So sánh bằng giữa các thuộc tính cùng tên của 2 quan hệ này, – Loại bỏ đi một trong 2 thuộc tính bằng nhau này. . Ký hiệu R3 := R1 ⋈ R2 24
  25. Nối tự nhiên: ví dụ Sells( bar, beer, price ) Bars( bar, addr ) Joe’s Bud 2.50 Joe’s Maple St. Joe’s Miller 2.75 Sue’s River Rd. Sue’s Bud 2.50 Sue’s Coors 3.00 BarInfo := Sells ⋈ Bars BarInfo( bar, beer, price, addr ) Joe’s Bud 2.50 Maple St. Joe’s Milller 2.75 Maple St. Sue’s Bud 2.50 River Rd. Sue’s Coors 3.00 River Rd. 25