– là ưu điểm của mô hình dữ liệu quan hệ – đơn giản nhưng khá mạnh và là một đại số có tính đầy đủ, phi thủ tục.. Khái niệm liên quan • Hai quan hệ tương thích/ rời nhau – hai quan hệ r
Trang 1CƠ SỞ DỮ LIỆU
GV: ThS Lương Thị Ngọc Khánh
Email: ltnkhanh@it.tdt.edu.vn
Web: it.tdt.edu.vn/~ltnkhanh
Trang 3Giới thiệu
• Đại số quan hệ
– là phương pháp để mô hình hóa các phép toán thao tác trên CSDL quan hệ
– là ưu điểm của mô hình dữ liệu quan hệ
– đơn giản nhưng khá mạnh và là một đại số có tính đầy đủ, phi thủ tục
– là một cơ sở cho việc thiết lập các ngôn ngữ con dữ liệu bậc cao hơn
Trang 4Khái niệm liên quan
• Hai quan hệ tương thích/ rời nhau
– hai quan hệ r1, r2 là tương thích với nhau nếu
chúng có cùng tập thuộc tính U Và r1, r2 được gọi là hai quan hệ rời nhau nếu chúng không có thuộc tính chung
• Khái niệm xếp cạnh nhau:
Giả sử cho bộ t = (a1, a2,…, an), u = (b1, b2, …, bm) ta có: t,u = (a1, a2,…, an, b1, b2, …,
Trang 6• tên thuộc tính là tên của một thuộc tính thuộc R
• toán tử so sánh là các toán tử thông thường {=, <,
Trang 7Phép chọn (tt)
Ti05020 Lê Ngọc Phúc 06-12-1988 9.0 240.000
– Ví dụ: Trên quan hệ HOCBONG,
• phép chọn (DiemTB≥9.0) (HOCBONG) ta có kết quả như sau:
Trang 8Phép chọn (tt)
• Lưu ý:
– Toán tử so sánh trong tập {=, <, ≤, >, ≥, ≠} chỉ áp dụng được cho những thuộc tính có MGT có thứ
tự Nếu miền thuộc tính ko có thứ tự, khi đó toán
tử so sánh có thể áp dụng chỉ là tập {=, ≠}
– Các toán tử chọn có tính giao hoán, cụ thể:
– <C1> (<C2> (R)) = <C2 >(<C1> (R))
Trang 9Phép chọn (tt)
• Cho các lược đồ quan hệ sau:
– SINHVIEN (MaSV, Hoten, Namsinh, QQ, Hocluc)
• Mỗi sinh viên có Mã số duy nhất, họ tên, quê quán và học lực
– DETAI (MaDT, TenDT, Chunhiem, Kinhphi)
• Mỗi đề tài có Mã số duy nhất, tên đề tài, chủ nhiệm đề tài, kinh phí thực hiện đề tài (đơn vị tính: triệu đồng)
– SV_DT (MaSV, MaDT, NoiAD, KQ)
• Mỗi SV có thể thực hiện một hoặc nhiều ĐT: mã số sinh viên, mã đề tài, nơi áp dụng, kết quả thực hiện đề tài
• Ta có cơ sở dữ liệu mẫu được cho như sau:
Trang 10Phép chọn (tt)
Trang 11Phép chọn (tt)
Trang 12Phép chọn (tt)
Vd: Tìm những SV sinh trước 1984 và quê ở Đồng Tháp:
(Namsinh<1984 ^ QQ='Đồng Tháp') (SINHVIEN)
Trang 13Vd: phép chiếu MasoSV,DiemTB (HOCBONG) ta có
kết quả sau: maSoSV diemTb
Ti05020 9.0 Ti05023 8.2 Ti05027 8.5 Ti05006 7.8
Trang 14Phép chiếu (tt)
• Nhận xét:
– Để thực hiện phép chiếu 1QH trên một tập thuộc tính thực hiện 2 thao tác:
• Giữ lại các thuộc tính trong tập X
• Chọn bộ đại diện trong các bộ giống nhau
Trang 18Phép tích Descartes (tt)
Trang 19r ⋈Ai Bj s = {t,u/ t r, u s và t[Ai] u[Bj]}
Trang 20hiệu là r s (hoặc r ⋈ s) cho kết quả của nó
• một trong hai thuộc tính đó được loại bỏ khỏi kết quả
– Ví dụ: Tìm tên những đề tài được áp dụng ở Đồng Tháp và cho biết họ tên của những sinh viên thực hiện tương ứng
Trang 21• Ví dụ:
Phép kết nối (tt)
r A B C
a1 b1 1 a2 b2 3 a3 b 2
Trang 22Phép kết nối (tt)
• Ý nghĩa:
– Phép kết nối được dùng để kết hợp hai bộ có liên quan nhau thuộc hai quan hệ khác nhau thành một bộ mới
– nói cách khác, phép kết nối cho phép xử lý mối liên quan giữa các quan hệ trong một CSDL
Trang 23Phép hợp (Union)
• Phép hợp
– Hợp của hai quan hệ tương thích r1, r2 ký hiệu r1 r2 là một quan hệ trên U gồm các phần tử thuộc r1 hoặc r2
r1 r2 = {t: t r1 hoặc t r2}
Trang 24Phép hợp (tt)
• Ví dụ: Cho 2 LĐQH sau:
Canbo(Maso, Hoten, Ngsinh, QQ, Hs_luong)
Giangvien(Maso, Hoten, Ngaysinh, QQ,
Hs_luong)
- In ra danh sách gồm: mã số và họ tên của tất cả các cán bộ và giảng viên:
Trang 26Phép giao (tt)
• Vd: In ra mã sinh viên và họ tên của những sinh viên vừa thực hiện đề tài
"DT001" vừa thực hiện đề tài "DT005”
∏MaSV, Hoten(σ(MaDT='DT001')(SINHVIEN * SV_DT
SV_DT ))
Trang 27Phép hiệu (Minus or except)
• Hiệu của hai quan hệ tương thích r và s ký hiệu là r - s, là một quan hệ gồm tất cả các
bộ thuộc r nhưng không thuộc s
r – s = {t: t r và t s}
• Ví dụ: In ra mã sinh viên và họ tên của những sinh viên không thực hiện đề tài có nơi áp dụng ở Vĩnh Long
Trang 28Ví dụ
Trang 31Phép đặt lại tên (tt)
• Ví dụ:
– Với biểu thức DiemTB ≥9.0(HOCBONG)
(THANHTICH)
• (trong đó THANHTICH là bảng lưu thành tích của
sinh viên gồm các thuộc tính maSoSV, thanhTichSV), ta có thể dùng phép đặt tên như sau:
– Có thể đặt lại tên cho các thuộc tính trong quan
hệ trung gian và quan hệ kết quả bằng cách liệt
kê tên mới của các thuộc tính trong dấu ngoặc
đi kèm theo tên quan hệ
Trang 32Bài tập chương IV
• Cho các lược đồ quan hệ sau:
• Hanghoa(MaHG, TenHG, DVT, Dongia, Cohang)
– Mỗi mặt hàng có một mã số duy nhất có tên hàng, đơn vị tính, đơn giá và hàng có còn trong kho hay không (Cohang =
0 nếu hết hàng, Cohang = 1 nếu còn hàng)
• Khach(MaKH, Hoten, Diachi, Daily)
– Mỗi khách hàng có một mã số duy nhất, họ tên, địa chỉ và khách có phải là đại lý hay khách hàng lẻ (Daily = 1 nếu khách là đại lý, Daily = 0 nếu khách là khách mua bán lẻ)
• Hoadon(SoHD, Ngaylap, Ngaygiao, Trigia, MaKH)
– Mỗi hóa đơn có một số hóa đơn duy nhất, ngày lập, trị giá hóa đơn, ngày giao hàng và giao cho khách hàng nào
• Chitiet_HD(SoHD, MaHG, Soluong, Giaban)