1. Trang chủ
  2. » Giáo án - Bài giảng

Bài 4. Ngôn ngữ đại số quan hệ

32 829 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

Định dạng
Số trang 32
Dung lượng 488,5 KB

Nội dung

Nội dung Bài 4. Ngôn ngữ đại số quan hệ: Đại số quan hệ Các ngôn ngữ quan hệ hình thức Các phép toán đại số quan hệ Biểu thức đại số quan hệ Ví dụ tổng kết Liên hệ 0986425099 Đại số quan hệ có nền tảng toán học (cụ thể là lý thuyết tập hợp) để mô hình hóa CSDL quan hệ. Ngoài ra, ta có thể áp dụng các phép toán có sẵn của lý thuyết tập hợp để tối ưu quá trình rút trích dữ liệu từ CSDL quan hệ

CHƯƠNG Đại số Quan hệ (Relational Algebra) Nội dung      Đại số quan hệ Các ngôn ngữ quan hệ hình thức Các phép toán đại số quan hệ Biểu thức đại số quan hệ Ví dụ tổng kết Đại số quan hệ  Đại số quan hệ mô hình toán học dựa lý thuyết tập hợp mà đối tượng xử lý quan hệ sở liệu quan hệ  Chức Đại số quan hệ:    Cho phép mô tả phép toán rút trích liệu từ quan hệ sở liệu quan hệ Cho phép tối ưu Đại số quan hệ có tảng toán học (cụ thể lý thuyết tập hợp) để mô hình hóa CSDL quan hệ Ngoài ra, ta áp dụng phép toán có sẵn lý thuyết tập hợp để tối ưu trình rút trích liệu từ CSDL quan hệ Các ngôn ngữ quan hệ hình thức Hai ngôn ngữ truy vấn toán học tạo sở cho ngôn ngữ truy vấn cho cài đặt “thật” (ví dụ SQL): • Đại số quan hệ : Có luận chứng dễ dàng biểu diễn kế hoạch thực Phép tính quan hệ: Cho phép người dùng mô tả thứ cần thiết, thay cho việc tính toán Hiểu Đại số quan hệ & phép tính quan hệ chìa khóa để hiểu SQL xử lý truy vấn ! Ví dụ thể quan hệ  Quan hệ NHANVIEN Nhanvien(manv, honv, tenlot, tennv, ngsinh, phai, ma_nql, phong, mluong) NHANVIEN MANV HONV TENLOT TENNV NGSINH PHAI MA_NQL PHONG MLUONG 004 Dinh Ba Tien 09/01/1968 Nam 002 NC 2.200.000 005 Bui Thuy Vu 19/07/1972 Nam 003 DH 2.200.000 006 Nguyen Manh Hung 15/09/1973 002 NC 2.000.000 007 Tran Thanh Tam 31/07/1975 Nu 002 NC 2.200.000 008 Tran Hong Van 04/07/1976 Nu 004 NC 1.800.000 Nam Các phép toán Đại số quan hệ  Có năm phép toán bản:       π − × Các phép toán khác:   σ Chọn ( ) Chọn tập dòng quan hệ Chiếu ( ) Xóa cột không mong muốn Tích Descartes ( ) Kết hai quan hệ Hiệu ( ) Chứa QH không nằm QH Hợp (  ) Chứa QH QH Giao, kết, chia, đổi tên: không bản, hữu ích Kết thực phép toán quan hệ, kết hợp phép toán để tạo nên phép toán mới! Biểu thức Đại số quan hệ (ĐSQH)  Biểu thức ĐSQH biểu thức gồm phép toán ĐSQH  Biểu thức ĐSQH xem quan hệ (không có tên)  Có thể đặt tên cho quan hệ tạo từ biểu thức ĐSQH  Có thể đổi tên thuộc tính quan hệ tạo từ biểu thức ĐSQH Ví dụ đặt tên biểu thức ĐSQH R(HO,TEN,LUONG)← πHONV,TENNV,LUONG(NHANVIEN) R HO TEN LUONG Vuong Quyen 3.000.000 Nguyen Tung 2.500.000 Le Nhan 2.500.000 Dinh Tien 2.200.000 Bui Vu 2.200.000 Nguyen Hung 2.000.000 Tran Tam 2.200.000 Tran Van 1.800.000 Phép chọn σ P (r)  Chọn dòng từ r thỏa P với P vị từ liên quan đến thuộc tính r  Không có kết trùng  Lược đồ kết giống lược đồ quan hệ nhập  Quan hệ kết input cho phép toán đại số quan hệ Ví dụ phép chọn  Tìm nhân viên làm việc phòng nghiên cứu σPHONG=‘NC’(NHANVIEN) NHANVIEN MANV HONV TENLOT TENNV PHONG 002 Nguyen Thanh Tung NC 004 Dinh Ba Tien NC 006 Nguyen Manh Hung NC 007 Tran Thanh Tam NC 008 Tran Hong Van NC 10 Tích Descartes r × s = {t|t = tr ts cho tr ∈ r ∧ ts ∈ s)  Gọi nr ns số dòng r s:  Có nr * ns dòng r x s  Ví dụ: PHONGBAN × DIADIEM_PHG  Mỗi dòng PHONGBAN ghép đôi với dòng DIADIEM_PHG  Lược đồ kết có thuộc tính thuộc tính PHONGBAN DIADIEM_PHG, với tên thuộc tính `được kết thừa ’ PHONGBAN MAPHG TENPHG TRPHG DIADIEM_PHG NG_NHANCHUC MAPHG DIADIEM QL Quan Ly 001 22/05/2000 QL TP HCM DH Dieu Hanh 003 10/10/2002 DH HA NOI NC Nghien Cuu 002 15/03/2002 18 Tích Descartes (tt) r × s = {t|t = tr ts cho tr ∈ r ∧ ts ∈ s) MAPHG – TENPHG TRPHG NG_NHANCHUC MAPHG DIADIEM QL Quan Ly 001 22/05/2000 QL TP HCM QL Quan Ly 001 22/05/2000 DH HA NOI DH Dieu Hanh 003 10/10/2002 QL TP HCM DH Dieu Hanh 003 10/10/2002 DH HA NOI NC Nghien Cuu 002 15/03/2002 QL TP HCM NC Nghien Cuu 002 15/03/2002 DH HA NOI Đụng độ: Cả PHONGBAN DIADIEM_PHG có thuộc tính tên MAPHG Toán tử đổi tên : ρ ( C (1 → MAPHG1,5 → MAPHG ),PHONGBAN × DIADIEMPHG ) 19 Phép chia r / s ≡ π ( R − S ) (r ) − π ( R − S ) ((π ( R − S ) (r ) × s) − r )  Cho lược đồ quan hệ R, S S⊆R Giả sử r s tương ứng quan hệ R S r/s quan hệ lược đồ R-S gồm t t thỏa điều kiện với ts s có tr r cho tr[S]= ts[S] tr[R-S]= t[R-S]  Không toán tử bản, hữu ích để biểu diễn truy vấn có dạng: Tìm nhân viên có tham gia tất đề án 20 Phép chia (tt) r / s ≡ π ( R − S ) (r ) − π ( R − S ) ((π ( R − S ) (r ) × s) − r )  Giả sử A có thuộc tính, x y; B có y: { x | ∃ x, y ∈ A ∀ y ∈ B}  A/B =  Tức là, A/B chứa tất x (nhân viên) cho với y (đề án) B, có xy A  Hay: Nếu tập trị y (đề án) ứng với trị x (nhân viên) A chứa tất trị y B trị x nằm A/B  Nhìn chung x y danh sách thuộc tính tùy ý; y danh sách thuộc tính B, x ∪ y danh sách thuộc tính A 21 Ví dụ phép chia A/B SODA SODA SODA 1 B1 2 B2 B3 MA_NVIEN 123456789 A MA_NVIEN 666884444 123456789 MA_NVIEN 453453453 453453453 453453453 A/B1 A/B2 A/B3 22 Biểu diễn phép A/B dùng toán tử   Phép chia toán tử mà dạng viết tắt Ý tưởng: Tính A/B, tức tính tất trị x “không bị giới hạn” trị y B Trị x “không bị giới hạn” gắn trị y từ B, nhận xy không nằm A Tính trị x “không bị giới hạn” : A/B: π x ( A) − π x ((π x ( A) × B) − A) Tất “không bị giới hạn” 23 Phép kết: θ-kết  Phép kết, ký hiệu , dùng để tổ hợp có liên quan từ quan hệ thành  Các có giá trị rỗng thuộc tính kết nối không xuất kết phép kết  Ví dụ: Tìm tên trưởng phòng ban TR_PHG ← PHONGBAN TRPHG=MANV NHANVIEN KETQUA ← πTENPHG, HONV, TENNV(TR_PHG) 24 Phép kết: θ-kết (tt) TR_PHG TENPHG MAPHG TRPHG … HONV TENLOT TENNV MANV Nghien Cuu NC 002 … Nguyen Thanh Tung 002 … Dieu Hanh DH 003 … Le Thi Nhan 003 … Quan Ly QL 001 … Vuong Ngoc Quyen 001 … KETQUA TENPHG HONV TENNV Nghien Cuu Nguyen Tung Dieu Hanh Le Nhan Quan Ly Vuong Quyen 25 … Phép kết (equi-join)  Nếu θ phép so sánh (=), phép kết gọi phép kết (equi-join)  Kết phép kết có cột giống ⇒ có cột thừa ⇒ bỏ bớt cột thứ thành phép kết tự nhiên, ký hiệu dấu (*) 26 Phép kết (tt) Ví dụ: DA_PHG ← DEAN * PHONG=MAPHG PHONGBAN thừa dấu = DA_PHG ← DEAN * (PHONG,MAPHG)PHONGBAN DA_PHG TENDA MADA DDIEM_DA PHONG TENPHG MAPHG TRPHG Tin hoc hoa TH001 HANOI NC Nghien Cuu NC 002 15/03/2002 Tin hoc hoa TH002 TPHCM NC Nghien Cuu NC 002 15/03/2002 Dao tao DT001 NHATRANG DH Dieu Hanh DH 003 10/10/2002 Dao tao DT002 HANOI DH Dieu Hanh DH 003 10/10/2002 27 NGNC Tìm tên nhân viên có tham gia đề án “TH001”  Lời giải 1: Π TENNV((бMADA=”TH001”PHANCONG) * MANV,MANV NHANVIEN)  Lời giải 2: ρ (Temp1,σ mada=TH 001 phancong ) ρ (Temp 2,Temp1nhanvien) π tennv (Temp 2) nhanvien))  Lời giải 3: π tennv (σ mada =TH 001( phancong  28 Tìm tên nhân viên tham giam đề án có tên ‘Dao tao’  Thông tin tên phòng chỉa có quan hệ phongban nên cần thêm phép kết: π tennv ((σ tenda = ' Dao tao ' dean) phancong  nhanvien)  Cách hiệu hơn: π tennv (π manv ((π madaσ tenda = ' Dao tao' dean)  phancong   nhanvien) 29 Tìm tên nhân viên tham gia đề án có tên ‘Dao tao’ tên ‘Tin hoc hoa’  Tìm đề tài có tên thỏa yêu cầu, sau tìm tên nhân viên tham gia đề án : ρ (Temp,(σ tenda =' Dao tao' ∨ tenda ='Tin hoc hoa' dean)) π tennv (Temp  phancong  nhanvien)  (Có thể dùng phép hợp không ?) 30 Tìm nhân viên tham gia đề án “Dao tao” đề án “Tin học hóa”  Không thể dùng cách câu trên! Phải tìm nhân viên tham gia đề án “Dao tao”, nhân viên giam gia đề án “Tin học hóa”, sau giao tập đó: ρ (Temp1,π manv ((σ tenda = ' Dao tao' dean) phancong )) ρ (Temp 2,π manv ((σ tenda = ' Tin hoc hoc ' dean)  phancong )) π tennv ((Temp1 ∩ Temp 2)  nhanvien) 31 Tìm tên nhân viên tham gia tất đề án công ty  Dùng phép chia ρ (Temp,(π manv ,mada phancong ) / (π mada dean)) π tennv (Temp   nhanvien)  Tìm tên nhân viên tham gia đề án ‘TPHCM’ : ρ (Temp,(π manv , mada phancong ) / (π mada (σ ddiem _ da = 'TPHCM ' dean))) π tennv (Temp   nhanvien) 32 [...]... đổi tên : ρ ( C (1 → MAPHG1,5 → MAPHG 2 ),PHONGBAN × DIADIEMPHG ) 19 Phép chia r / s ≡ π ( R − S ) (r ) − π ( R − S ) ((π ( R − S ) (r ) × s) − r )  Cho lược đồ quan hệ R, S và S⊆R Giả sử r và s tương ứng là các quan hệ trên R và S r/s là quan hệ trên lược đồ R-S gồm các bộ t và mỗi t thỏa điều kiện với mọi bộ ts trong s có bộ tr trong r sao cho tr[S]= ts[S] và tr[R-S]= t[R-S]  Không là toán tử cơ bản,...Phép chiếu π A(r) Các thuộc tính chiếu được cho bởi tập hợp A từ quan hệ r với A là tập hợp con của các thuộc tính của r ( A ⊆ R) Quan hệ kết quả chỉ có những thuộc tính trong danh sách thuộc tính với cùng thứ tự 11 Ví dụ phép chiếu  Cho biết họ tên đầy đủ của các nhân viên πHONV,TENLOT,TENNV(NHANVIEN)... liên quan từ 2 quan hệ thành 1 bộ  Các bộ có giá trị rỗng tại thuộc tính kết nối không xuất hiện trong kết quả của phép kết  Ví dụ: Tìm tên các trưởng phòng ban TR_PHG ← PHONGBAN TRPHG=MANV NHANVIEN KETQUA ← πTENPHG, HONV, TENNV(TR_PHG) 24 Phép kết: θ-kết (tt) TR_PHG TENPHG MAPHG TRPHG … HONV TENLOT TENNV MANV Nghien Cuu NC 002 … Nguyen Thanh Tung 002 … Dieu Hanh DH 003 … Le Thi Nhan 003 … Quan Ly... TENLOT TENNV Nguyen Thanh Tung Dinh Ba Tien Nguyen Manh Hung Tran Thanh Tam Tran Hong Van 13 Phép hợp, phép hiệu, phép giao tập hợp  Tất cả các phép toán này đều cần hai quan hệ đầu vào tương thích khả hợp, nghĩa là chúng phải thoả:  Cùng số thuộc tính  Các thuộc tính `tương ứng ’ có cùng kiểu NHANVIENA HONV NHANVIENB TENNV Vuong Quyen Nguyen Tung Bui Vu HONV TENNV Le Nhan Dinh Tien Bui Vu Nguyen Hung... ∈ r ∧ ts ∈ s)  Gọi nr và ns là số dòng của r và s:  Có nr * ns dòng trong r x s  Ví dụ: PHONGBAN × DIADIEM_PHG  Mỗi dòng của PHONGBAN được ghép đôi với từng dòng của DIADIEM_PHG  Lược đồ kết quả có các thuộc tính là các thuộc tính của PHONGBAN và DIADIEM_PHG, với tên thuộc tính `được kết thừa ’ PHONGBAN MAPHG TENPHG TRPHG DIADIEM_PHG NG_NHANCHUC MAPHG DIADIEM QL Quan Ly 001 22/05/2000 QL TP HCM... Dieu Hanh 003 10/10/2002 DH HA NOI NC Nghien Cuu 002 15/03/2002 18 Tích Descartes (tt) r × s = {t|t = tr ts sao cho tr ∈ r ∧ ts ∈ s) MAPHG – TENPHG TRPHG NG_NHANCHUC MAPHG DIADIEM QL Quan Ly 001 22/05/2000 QL TP HCM QL Quan Ly 001 22/05/2000 DH HA NOI DH Dieu Hanh 003 10/10/2002 QL TP HCM DH Dieu Hanh 003 10/10/2002 DH HA NOI NC Nghien Cuu 002 15/03/2002 QL TP HCM NC Nghien Cuu 002 15/03/2002 DH HA... 2,Temp1nhanvien) π tennv (Temp 2) nhanvien))  Lời giải 3: π tennv (σ mada =TH 001( phancong  28 Tìm tên các nhân viên đã tham giam đề án có tên là ‘Dao tao’  Thông tin về tên phòng chỉa có trong quan hệ phongban nên cần thêm một phép kết: π tennv ((σ tenda = ' Dao tao ' dean) phancong  nhanvien)  Cách hiệu quả hơn: π tennv (π manv ((π madaσ tenda = ' Dao tao' dean)  phancong   nhanvien)... TENLOT TENNV MANV Nghien Cuu NC 002 … Nguyen Thanh Tung 002 … Dieu Hanh DH 003 … Le Thi Nhan 003 … Quan Ly QL 001 … Vuong Ngoc Quyen 001 … KETQUA TENPHG HONV TENNV Nghien Cuu Nguyen Tung Dieu Hanh Le Nhan Quan Ly Vuong Quyen 25 … Phép kết bằng (equi-join)  Nếu θ là phép so sánh bằng (=), phép kết được gọi là phép kết bằng (equi-join)  Kết quả của phép kết bằng có 2 cột giống nhau ⇒ có cột thừa ⇒ nếu bỏ

Ngày đăng: 21/11/2016, 08:52

TỪ KHÓA LIÊN QUAN

w