1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giáo trình cơ sở dữ liệu đh cần thơ chương 3

31 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đại Số Quan Hệ
Người hướng dẫn GV: Đặng Quốc Việt
Trường học Đại học Cần Thơ
Chuyên ngành Cơ sở dữ liệu
Thể loại Giáo trình
Thành phố Cần Thơ
Định dạng
Số trang 31
Dung lượng 453,08 KB

Nội dung

Chương ĐẠI SỐ QUAN HỆ GV: Đặng Quốc Việt dqviet@cit.ctu.edu.vn Đại số quan hệ (Relational Algebra) ■ Đại số quan hệ α = (M, P ), ✦ M : tập quan hệ cho trước ✦ P : tập phép toán sau ■ Các phép toán bản: Phép chọn σ Phép chiếu π Phép hợp ∪ Phép giao ∩ Phép tích Descart x Phép trừ - hay \ Phép chia : hay / Phép θ-kết nối A θ B Phép kết nối tự nhiên * 10 Phép kết nối mở rộng Các phép tốn có: ■ Đầu vào: nhiều quan hệ ■ Đầu ra: quan hệ gọi quan hệ kết Biểu thức quan hệ ■ Định nghĩa: biểu thức gồm quan hệ CSDL phép toán quan hệ ■ Ví dụ: πMHNG, TÃNHG (σ ÂVT=”cại” (HNG)) ■ Độ ưu tiên phép toán biểu thức quan hệ: ✦ Phép tốn ngơi ✦ Tùy theo HQTCSDL cụ thể, có qui định riêng 3 Ví dụ - CSDL Đào Tạo ■ Trong chương này, ví dụ sử dụng quan hệ sau: ✦ SV(MASV, HOTEN_SV, NAMS_SV, DCHI_SV, TENLOP) ✦ MON(MAMH, TENMON, SO_TC, LOAI_MON) ✦ GV( MAGV, HOTEN_GV, NAMS_GV, HOCVI) ✦ HOC(MASV, MAMH, STT_HK, NKHOA, LANTHI, K_QUA) ✦ DAY(MAGV, MAMH, STT_HK, NKHOA) ■ Xác định khóa chính, khóa ngoại cho quan h ệ ■ Vẽ sơ đồ cho thấy thông thương quan h ệ Phép chọn (Select Operation) ■ Mục đích: Xây dựng tập gồm quan hệ cho, thỏa biểu thức logic cho trước ■ Định nghĩa: Cho quan hệ R tập thuộc tính U, ký hiệu R(U) Cho biểu thức logic E phát biểu U gồm có: ✦ Các thuộc tính ✦ Các phép toán so sánh số học: < , ≤ , >, ≥ , =, ≠ ✦ Các phép toán logic: ∧, ∨, ¬ Phép chọn quan hệ R theo điều kiện E, ký hiệu R(E) hay σE(R) P = R(E)=σE(R) = {t | t ∈ R and t(E)} Trong đó: t(E): nghĩa t thỏa biểu thức điều kiện E ■ Ví dụ: Liệt kê danh sách sinh viên lớp DI0056A1 σTenlop = “DI0056A1” (SV) Lọc bảng theo chiều ngang Phép chọn – Ví Dụ MON MAMH TH409 TENMON SO_TC Cơ Sở Dữ Liệu TH364 Trí Tuệ Nhân Tạo TH490 Cấu Trúc Dữ Liệu & GT TH324 Giải Thuật Bảng Kết quả: MAMH σSo_TC = (MON) TENMON SO_TC TH409 Cơ Sở Dữ Liệu TH490 Cấu Trúc Dữ Liệu & GT Tìm thơng tin chi tiết sinh viên thu ộc lớp DI0056A1 sinh vào năm 1980 Tìm thông tin kết học môn TH409 TH490 sinh viên Phép chiếu (Project Operation) ■ Mục đích: Cho kết quan hệ gồm quan hệ cho loại bỏ số thu ộc tính khơng liệt kê ■ Định nghĩa: Cho quan hệ R(U)=(A1, A2, …, An), Ai ∈U tập thuộc tính X ⊂ U Phép chiếu quan hệ R X tập hợp: P =R[X] = ∏ X (R) = {t[X] | t ∈ R} ■ Vì quan hệ tập hợp => Những dịng trùng bị xóa khỏi quan hệ kết ■ Ví dụ: Liệt kê mã số sv, họ tên tên lớp ∏ mssv, hoten_sv, tenlop (SV) Lọc bảng theo chiều dọc Phép chiếu – Ví dụ Bảng Kết quả: MON MAMH TENMON SO_TC MAMH SO_TC TH409 Cơ Sở Dữ Liệu TH409 TH490 Cấu Trúc Dữ Liệu & GT TH490 TH364 Trí Tuệ Nhân Tạo TH364 TH324 Giải Thuật TH324 ∏ MAMH, So_TC (MON) Liệt kê danh sách gồm mã số sinh viên điểm thi lần môn TH409 học kỳ vừa Cho biết điểm mơn học tích lũy sinh viên Phép hợp (Union Operation) ■ Hai quan hệ tương thích: chúng có tập thuộc tính, hay lược đồ quan hệ ■ Định nghĩa: Hợp quan hệ tương thích R(U) S(U) quan hệ P gồm thuộc m ột hai quan hệ cho P = R ∪ S = R + S = {t | t ∈ R t ∈ S} ■ Ví dụ: Liệt kê danh sách gồm họ tên sinh viên họ tên giáo viên πhoten_sv (SV) ∪ πhoten_gv (GV) R R∪S S Phép trừ (Set Difference Operation) ■ Định nghĩa: hiệu quan hệ tương thích R(U) S(U) quan hệ P gồm có R nh ưng khơng có S P = R \ S = R – S = {t | t ∈ R t ∉ S} ■ Ví dụ: Tìm mã mơn học có dạy học kỳ năm học 04-05 khơng có dạy học kỳ năm học 05-06 πmamh σSTT_KH = ∧NKHOA = ’04-05’(DAY) – R\S πmamh σSTT_KH = ∧NKHOA = ’05-06’(DAY) R S 10 Phép kết nối θ (Inner join, join) ■ Định nghĩa: Cho quan hệ R(U) S(V) θ phép toán số học: < , ≤ , >, ≥ , =, ≠ Phép kết nối quan hệ R thuộc tính A ∈U quan hệ S thuộc tính B ∈V, ký hiệu RA θ B S R A θ BS= {| u∈U ∧v ∈V ∧u[A] θ v[B] } ■ Phép kết nối thực θ thực A B ■ Nếu không dựa phép so sánh θ R A θ BS phép tích Descartes, θ phép so sánh “=“ gọi phép kết nối 17 Phép kết nối θ – Ví dụ Ví dụ: Tìm thơng tin sinh viên lớn tuổi giáo viên SV MASV HOTEN_SV GV NAMS_S V MAGV HOTEN_GV 1989 1250 Lê Phú Thọ 1033010 Nguyễn Minh Thiện 1033014 Trần Minh Sang 1988 1032967 Lê Công Vũ 1987 1980 1255 Nguyễn Khuyến 1988 1256 Đào Anh Vũ 1989 GV SV SV.NAMS_SV NAMS_GV < GV.NAMS_GV MASV HOTEN_SV NAMS_SV MAGV HOTEN_GV NAMS_GV 1033014 Trần Minh Sang 1988 1256 Đào Anh Vũ 1989 1032967 Lê Công Vũ 1987 1255 Nguyễn Khuyến 1988 1032967 Lê Công Vũ 1987 1256 Đào Anh Vũ 1989 18 Phép kết nối tự nhiên (Natural-Join Operation) ■ Nếu kết nối θ dựa phép so sánh “=“ t ại thuộc tính tên quan hệ R S hai thuộc tính bị loại bỏ qua phép chiếu gọi phép kết nối tự nhiên, ký hiệu * ■ Ví dụ: Tìm tên mơn học có dạy h ọc kỳ 05- A: π06 mamh σSTT_KH = ∧NKHOA = ’05-06’(DAY) MAMH TH409 TH364 TH324 B: πmamh, TenMon (MON) MAMH TENMON Những dịng khơng có bảng khơng có mặt bảng KQ A*B TH409 Cơ Sở Dữ Liệu TH490 Cấu Trúc Dữ Liệu & GT MAMH TENMON TH409 Cơ Sở Dữ Liệu TH364 Trí Tuệ Nhân Tạo TH364 Trí Tuệ Nhân Tạo TH324 Giải Thuật TH324 Giải Thuật 19 Phép kết nối mở rộng (Outer join) ■ Định nghĩa: Phép toán cho phép làm việc với thông tin bị thiếu, tức thực phép kết nối tự nhiên trị trống thuộc tính dùng để kết nối ■ Có loại kết nối mở rộng: trái, phải hai bên ■ Cho quan hệ R S: ✦ Trái: R S=P ∪(R*S) ✔ P={| u ∈ R, u không tương ứng với S, v ∈S, giá trị thuộc tính v null } ✦ Phải: R S=Q∪(R*S) ✔ Q={| v ∈ s, v không tương ứng với R, u ∈ R, giá trị thuộc tính u null } ✦ Hai bên: R S=P∪Q∪(R*S) ✔ P Q định nghĩa 20 Phép kết nối mở rộng – ví dụ (Outer join) R R: DS GV Khoa S MAGV HOTEN_GV MAGV MAMH 1250 Lê Phú Thọ NULL NULL 1255 Nguyễn Khuyến 1255 TH490 1256 Đào Anh Vũ NULL NULL 1231 1231 TH409 Trần Ngân Bình Trần Ngân Bình 1232 Phan Phương Lan 1232 TH409 Phan Phương Lan 1232 Phan Phương Lan 1232 TH334 MAGV HOTEN_GV 1250 Lê Phú Thọ 1255 Nguyễn Khuyến 1256 Đào Anh Vũ 1231 1232 S: Phân công dạy HK MAGV MAMH 1231 TH409 1232 R R S MAGV MAMH MAGV HOTEN_GV 1231 TH409 1231 Trần Ngân Bình TH409 1232 TH409 1232 Phan Phương Lan 1232 TH334 1232 TH334 1232 Phan Phương Lan 1255 TH490 1255 TH490 1255 Nguyễn Khuyến 1957 TH333 1957 TH333 NULL NULL 21 S ? Phép đổi tên (Rename Operation) ■ Cho phép đặt tên, nhờ ta có th ể tham chiếu đến kết biểu thức đại số quan hệ ■ Cho phép tham chiếu đến quan h ệ nhiều lần, dùng phép kết n ối ■ Ví dụ: ρ x (E) Sẽ trả kết biểu thức E với tên X ■ Nếu kết biểu thức quan hệ E có n ngơi, thì: ρx (A1, A2, …, An) (E) Sẽ trả kết E với tên X, với thuộc tính đặt tên A1, A2, …., An 22 Phép gán (Assignment Operation) ■ Phép gán (←) cung cấp phương tiện thuận lợi để biễu diễn truy vấn phức tạp ■ Example: Có thể viết R(U) ÷ S(V) sau temp1 ← ∏ U-V (R) temp2 ← ∏ U-V ((temp1 x S) – ∏ U-V,V (R)) result = temp1 – temp2 ✦ Kết biểu thức bên phải dấu ← gán cho biến biểu thức bên trái dấu ← ✦ Có thể sử dụng biến biểu thức theo sau 23 Các hàm kết tập (Aggregate Functions) Các hàm kết tập nhận vào tập giá trị trả kết giá trị avg: giá trị trung bình min: giá trị max: giá trị max sum: tổng count: đếm giá trị 24 Các hàm kết tập – Ví dụ (Aggregate Functions) sum SO_TC (MON) MON MAMH TENMON SO_TC Sum-SO_TC 15 TH409 Cơ Sở Dữ Liệu TH490 Cấu Trúc Dữ Liệu & GT count SO_TC (MON) TH364 Trí Tuệ Nhân Tạo Count-SO_TC TH324 Giải Thuật 4 max SO_TC (MON) SO_TC (MON) avg SO_TC (MON) Max-SO_TC Min-SO_TC Avg-SO_TC 3.75 ■ Trong trường hợp ta muốn loại bỏ giá trị trùng nhau, phải thêm từ khoá distinct vào sau tên hàm dấu gạch ngang (-) Ví dụ : Count-distinct SO_TC (MON) = 3 25 Các hàm kết tập (cont.) (Aggregate Functions) ■ Ta áp dụng hàm kết tập nhiều nhóm khác nhau, nhóm bao gồm tập Hàm kết tập nhóm có dạng: G1, G2, …, Gn g F1 A1, F2 A2,…, Fm Am (E) ■ Trong đó: ✦ E biểu thức quan hệ ✦ G1, G2, …, Gn thuộc tính mà việc chia nhóm dựa giá trị chúng ✦ Mỗi Fi hàm kết tập ✦ Mỗi Ai thuộc tính 26 Các hàm kết tập (cont.) (Aggregate Functions) Biểu thức: MASV g min K_QUA, avg K_QUA (HOC) HOC MASV MAMH K_QUA 1033010 TH409 1033010 TH490 MASV Min-KQ Avg_KQ 1033010 TH324 1033010 6.67 1033011 TH409 1033011 1033011 TH324 1033012 5.34 1033011 TH490 1033012 TH490 1033012 TH409 1033012 TH324 cho kết sau: 27 Tính chất đại số quan hệ Tính Chất Giao Hốn Phép Tốn Hợp, Giao, Kết Nối Công Thức R*S=S*R R + S = S+ R R.S=S.R Kết Hợp Hợp, Giao, Kết Nối (R * S) * P = R * (P * S) (R + S) + P = R + (P + S) (R S) P = R (P S) Lũy Đẳng bậc II Lũy Đẳng bậc I Chọn, Chiếu (phép tốn ngơi) R(E) (E) = R(E) Hợp, Giao, Kết Nối R+R=R R[X] [X] = R[X] R.R=R R*R=R Thác phép chọn Nếu E1 => E2 Thì R(E1)(E2) = R(E2)(E1) = R(E1) 28 Tính chất đại số quan hệ (Cont.) Tính Chất Cơng Thức Thác phép chiếu Nếu X ⊆ Y ⊆ U Thì R[Y][X] = R[X] Phép Chọn Theo Hội, Tuyển a) R(E1 ∧E2) = R(E1) R (E2) b) R(E1 ∨E2) = R(E1) + R (E2) c) Nếu E1 => E2 Thì R(E1 ∨E2) = R(E2) d) R(T) = R với T biểu thức e) R(F) = φ với F biểu thức sai Thác phép Chọn-Kết nối (R*S) (ER ∧ES) = R(ER) * S(ES) Thác phép Chiếu-Chọn E biểu thức điều kiện U, EX X ⊆ U: R(E ∧EX) [X] = R (E) (EX)[X] = R(E) [X] (EX) Phép Giao qua phép trừ R S = R −( R −S ) Phép chia qua phép tốn khác R ÷ S = R[X] − (R[X] * S − R) [X] 29 Tối Ưu Hóa Biểu Thức Quan Hệ ■ Mục đích: Chuyển biểu thức quan hệ dạng tương đương có chi phí thực thấp (thời gian, không gian lưu trữ) ■ Ngun tắc: Tìm cách chuyển phép tốn để thực sớm đến mức phép tốn có tính chất làm hẹp quan hệ (phép chọn, chiếu) ■ Để thực điều này, ta dùng thực để minh họa cho trình thực biểu th ức ■ Ví dụ: Có biểu thức quan hệ: (SINHVIEN*SV_DT*DETAI) (MADT>3 ∧MASV > MADT ∧KETQUA>HOCLUC)[TENDT, KETQUA] 30 Tối Ưu Cây Thực Hiện BTQH [TENDT, KETQUA] [TENDT, KETQUA] * (MADT > ∧KQ > HL ∧MASV > MADT) (MADT > 3) (KQ>HL) * [MADT,TENDT,KQ] * DETAI DETAI SV * SV_DT 31 (MASV> MADT) [MASV,HL] [MASV, MADT,KQ] SV SV_DT

Ngày đăng: 22/11/2023, 15:39