intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cơ sở dữ liệu: Chương 5 - Ngôn ngữ SQl

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PDF | Số trang:0

210
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Cơ sở dữ liệu: Chương 5 - Ngôn ngữ SQl sau đây bao gồm những nội dung về phép chia trong SQL. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này. Với các bạn chuyên ngành Công nghệ thông tin thì đây là tài liệu hữu ích.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở dữ liệu: Chương 5 - Ngôn ngữ SQl

  1. CHƯƠNG 5 NGÔN NGỮ SQL
  2. KNOWLEDGE FOR SHARE Tài liệu tham khảo [1] Đỗ Phúc, Nguyễn Đăng Tỵ. Giáo trình cơ sở dữ liệu. Đại học Quốc gia Tp.HCM. [2] Đồng Thị Bích Thủy. Giáo trình cơ sở dữ liệu. Đại học Quốc gia Tp.HCM. [3] Trần Ngọc Bảo. Slide bài giảng CSDL Đại học Sư Phạm TP.HCM [4] Lê Minh Triết. Slide bài giảng CSDL Đại học Sư Phạm TP.HCM 2 5/3/2013
  3. KNOWLEDGE FOR SHARE 4. Truy vấn dữ liệu Phép chia trong SQL R A B C D E S D E RS A B C  a  a 1 bi a 1 ai  a   a  a 1 b 1  a   a  b 1  a  a 1  a  b 3  a  a 1  a  b 1  a  b 1 RS là tập các giá trị ai trong R sao cho không có giá trị bi nào trong S làm cho bộ (ai, bi) không tồn tại trong R 3 5/3/2013
  4. KNOWLEDGE FOR SHARE 3. Phép toán tập hợp Phép chia ÷ (Division)  Được dùng để lấy ra một số bộ trong quan hệ R sao cho thỏa với tất cả các bộ trong quan hệ S  Ký hiệu R  S – R(Z) và S(X) • Z là tập thuộc tính của R, X là tập thuộc tính của S •XZ  Kết quả của phép chia là một quan hệ T(Y) – Với Y=Z-X – Có t là một bộ của T nếu với mọi bộ tSS, tồn tại bộ tRR thỏa 2 điều kiện • tR(X) = tS(X) R(Z) S(X) T(Y) • tR(Y) = t X Y 4 5/3/2013
  5. KNOWLEDGE FOR SHARE 3. Phép toán tập hợp Phép chia ÷ (Division) R A B C D E S D E  a  a 1 a 1  a  a 1 b 1  a  b 1  a  a 1  a  b 3 RS  a  a 1  a  b 1 A B C  a  b 1  a   a  5 5/3/2013
  6. KNOWLEDGE FOR SHARE 3. Phép toán tập hợp Phép chia ÷ (Division)  Cho biết nhân viên tham gia tất cả các đề án – Quan hệ: PHANCONG, DEAN – Thuộc tính: MANV πMANV(PHANCONG ÷DEAN) 6 5/3/2013
  7. KNOWLEDGE FOR SHARE 3. Phép toán tập hợp Phép chia ÷ (Division)  Cho biết nhân viên tham gia tất cả các đề án do phòng số 4 phụ trách – Quan hệ: PHANCONG, DEAN – Thuộc tính: MANV – Điều kiện: PHG=4 πMANV(σPHONG=4(PHANCONG ÷DEAN)) 7 5/3/2013
  8. KNOWLEDGE FOR SHARE 3. Phép toán tập hợp Phép chia ÷ (Division)  Biểu diễn phép chia thông qua tập đầy đủ các phép toán ĐSQH (xem khái niệm tập đầy đủ ở slide sau) R(Z) S(X) T(Y)  Các bước: X Y Q1  Y(R)  Chọn Y trên R X:DA Q2  Q1  S  Tích RY x S Y:NV Q3  Y(Q2  R)  ((RY x S)-R)Y Z:PCôg (Q3: Đến đây ta tìm ra những Y không tham gia đầy đủ vào S) T  Q1  Q3  RY - ((RY x S)-R)Y 8 5/3/2013
  9. KNOWLEDGE FOR SHARE 3. Phép toán tập hợp Phép chia ÷ (Division) R S MADA MANV MADA DA01 NV01 DA01 DA01 NV02 DA02 DA02 NV01 Q2=Q1xS Q3= Y(Q2  R) DA03 DA03 NV01 MADA MANV MANV DA01 NV01 * NV02 Q1=RY DA01 NV02 * MANV DA02 NV01 * T NV01 MANV DA02 NV02 NV02 NV01 DA03 NV01 * DA03 NV02 5/3/2013 9
  10. KNOWLEDGE FOR SHARE 4. Truy vấn dữ liệu SELECT R1.A, R1.B, R1.C FROM R R1 Phép chia trong SQL WHERE NOT EXISTS ( SELECT * Sử dụng FROM S NOT EXISTS WHERE NOT EXISTS ( để biểu diễn SELECT * FROM R R2 WHERE R2.D=S.D AND R2.E=S.E AND R1.A=R2.A AND R1.B=R2.B AND R1.C=R2.C ) ) 10 5/3/2013
  11. KNOWLEDGE FOR SHARE 4. Truy vấn dữ liệu Phép chia trong SQL Sử dụng truy vấn lồng để biểu diễn phép chia SELECT R.A,R.B,R.C FROM R WHERE R.A+R.B+R.C NOT IN ( SELECT Q2.A+Q2.B+Q2.C FROM (SELECT R.A,R.B,R.C,S.* FROM R,S) Q2 WHERE Q2.A+Q2.B+Q2.C+Q2.D+Q2.E NOT IN (SELECT R.A+R.B+R.C+R.D+R.E FROM R) ) -- Q3 LÀ A,B,C KHÔNG THAM GIA ĐẦY ĐỦ VÀO S 11 5/3/2013
  12. KNOWLEDGE FOR SHARE 4. Truy vấn dữ liệu Phép chia trong SQL Sử dụng hàm count SELECT MANV,COUNT(MADA) FROM PHANCONG GROUP BY MANV HAVING COUNT(MADA)=(SELECT COUNT(MADA) FROM DEAN) 12 5/3/2013
  13. KNOWLEDGE FOR SHARE 4. Truy vấn dữ liệu Phép chia trong SQL  Tìm tên các nhân viên được phân công làm tất cả các đề án – Tìm tên các nhân viên mà không có đề án nào là không được phân công làm – Tập bị chia: PHANCONG(MA_NVIEN, MADA) – Tập chia: DEAN(MADA) – Tập kết quả: KQ(MA_NVIEN) – Kết KQ với NHANVIEN để lấy ra TENNV 13 5/3/2013
  14. KNOWLEDGE FOR SHARE 4. Truy vấn dữ liệu Phép chia trong SQL SELECT NV.TENNV FROM NHANVIEN NV, PHANCONG PC1 WHERE NV.MANV=PC1.MANV AND NOT EXISTS ( SELECT * FROM DEAN DA WHERE NOT EXISTS ( SELECT * FROM PHANCONG PC2 WHERE PC2.MADA=DA.MADA AND PC1.MANV=PC2.MANV )) 14 5/3/2013
  15. HẾT
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2