Bài giảng Cơ sở dữ liệu - Chương 3: Ngôn ngữ định nghĩa và thao tác dữ liệu đối với mô hình quan hệ cung cấp cho người học các kiến thức: Các cách tiếp cận đối với thiết kế ngôn ngữ của CSDL quan hệ, một số ngôn ngữ dữ liệu mức cao. Mời các bạn cùng tham khảo.
1/30/2012 Nội dung Ngôn ngữ định nghĩa thao tác liệu mơ hình quan hệ • Các cách tiếp cận thiết kế ngôn ngữ CSDL quan hệ – Giới thiệu số ngôn ngữ phân loại So sánh đánh giá Nguyễn Hồng Phương • Một số ngơn ngữ liệu mức cao phuongnh@soict.hut.edu.vn http://is.hut.edu.vn/~phuongnh Bộ môn Hệ thống thông tin Viện Công nghệ thông tin Truyền thông Đại học Bách Khoa Hà Nội – QBE (Query By Example) – SQL (Structured Query Language) • Kết luận CSDL ví dụ CSDL ví dụ Supplier SID Enrol Takes Student Id Name 1108 3936 SNAME SIZE CITY S1 Dustin 100 London Rusty 70 Paris Suburb SID SNO SID Course S2 Robert Kew 1108 21 3936 101 S3 Lubber 120 London Glen Bundoora 1108 23 1108 113 S4 M&M 60 NewYork 8507 Norman o a Bundoora u doo a 8507 23 8507 101 S5 MBI 1000 NewOrlean 8452 Mary Balwyn 8507 29 S6 Panda 150 London Product Subject Course No Name Dept No Name Dept 113 BCS CSCE 21 Systems CSCE 101 MCS CSCE 23 Database CSCE 29 VB CSCE 18 Algebra Maths PID – Tì Tìm ủ bả bảng Student có Suburb = Bundoora – Đưa giá trị thuộc tính Name Name 1108 Robert Kew 3936 Gl Glen B d Bundoora 8507 8452 QUANTITY P1 500 S1 P2 400 S1 P4 100 S2 P3 250 S2 P4 50 S3 P1 300 S3 P2 350 P1 Screw red S3 P6 200 P2 Screw green S4 P1 10 P3 Nut red S5 P2 200 P4 Bolt blue P5 Plier green P6 Scissors blue • Tìm sinh viên đăng ký khố học có mã số 113 Suburb Balwyn Id Name 1108 Robert Kew 3936 Glen Bundoora 8507 – Tìm giá trị SID Enrol bảng Enrol có SID Course tương ứng 3936 1108 113 8507 – Đưa Course bảng Student có No SID giá 113 trị tìm thấy Norman Bundoora Mary COLOR PID S1 Student Student Id PNAME SID Câu hỏi (tiếp) Đặt vấn đề: câu hỏi • Tìm tên sinh viên sống Bundoora SupplyProduct 101 8452 Suburb Norman Bundoora y Mary Balwyn y Course 101 113 101 Name Dept BCS CSCE MCS CSCE CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Phân loại ngôn ngữ truy vấn • Ngơn ngữ đại số – câu hỏi = tập phép toán quan hệ – Được biểu diễn biểu thức đại số (quan hệ) • Ngơn N ngữ ữ tính tí h tốn t vịị từ Ngơn g ngữ g đại số q quan hệ ệ – câu hỏi = mô tả mong muốn – Được đặc tả vị từ mà phải thoả mãn – Phân biệt lớp: • ngơn ngữ tính tốn vị từ biến • ngơn ngữ tính tốn vị từ biến miền Phân loại phép toán đại số quan hệ Tổng quan • Gồm phép tốn tương ứng với thao tác quan hệ • Mỗi phép tốn – Đầu vào: hay nhiều quan hệ – Đầu ra: quan hệ • Biểu thức đại số quan hệ = chuỗi phép tốn • Kết thực biểu thức đại số quan hệ • Được cài đặt phần lớn hệ CSDL • Phép tốn quan hệ – – – – Phép Phép Phép Phép chiếu (projection) chọn (selection) kết nối (join) chia (division) • Phép tốn tập hợp – – – – Phép Phép Phép Phép hợp (union) giao (intersection) trừ (difference) tích đề-các (cartesian product) 10 Phép hợp Phép tốn tập hợp • Định nghĩa: Quan hệ khả hợp – quan hệ r s gọi khả hợp chúng xác định miền ề g giá ttrịị – r xác định D1x D2 x…x Dn – s xác định D’1x D’2 x…x D’m – Di = D’i n=m • Đ/n: gồm thuộc quan hệ đầu vào • quan hệ đầu vào phải khả hợp • Cú pháp: R = R1 R2 R1 R1 R2 R2 Subject1 Kết Subject2 Name Course Systems BCS Name Course Database BCS DataMining MCS Database MCS Writing BCS Algebra MCS 11 Name Course Systems BCS Database BCS Database MCS Algebra MCS DataMining MCS Writing 12 BCS CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Phép giao Phép trừ • Đ/n: gồm thuộc hai quan hệ đầu vào • Cú pháp: R1 R2 R1 R2 • Đ/n: gồm thuộc quan hệ thứ không thuộc quan hệ thứ hai – quan hệ phải khả hợp • Cú pháp: R1 \ R2 R1 - R2 \ R1 R1 R2 Subject1 Subject2 Subject1 Name Course Name Course Kết Systems BCS DataMining MCS Name Course Database BCS Database MCS Systems BCS Database MCS Systems BCS Database MCS Algebra MCS Writing BCS R2 R1 Subject2 R2 Kết Name Course Name Course Systems BCS DataMining MCS Name Database BCS Database MCS Database BCS Database MCS Systems BCS Algebra MCS Algebra MCS Writing BCS \ Course 13 14 Phép tích ĐềĐề-các Ví dụ phép tích ĐềĐề-các • Đ/n: kết nối quan hệ thứ với quan hệ thứ hai • Cú pháp: R = R1 x R2 a b c d x y X a a b x y x b c c y x y x y d d Student Sport Id Name Suburb 1108 Robert Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn 15 X SportID Sport 05 Swimming 09 Dancing Student_Sport p Id Name Suburb SportID Sport 1108 Robert Kew 05 Swimming 3936 Glen Bundoora 05 Swimming 8507 Norman Bundoora 05 Swimming 8452 Mary Balwyn 05 Swimming 1108 Robert Kew 09 Dancing 3936 Glen Bundoora 09 Dancing 8507 Norman Bundoora 09 Dancing 8452 Mary Balwyn 09 Dancing 16 Phép chiếu Phép chọn • Đ/n: Lựa chọn số thuộc tính từ quan hệ • Cú pháp: A1, A2, ( R ) • Đ/n: Lựa chọn quan hệ thoả mãn điều kiện cho trước • Cú pháp: condition (R ) C1 C2 C3 C4 C5 R1 R2 R3 R4 C2 C5 Ví dụ: đưa danh sách tên tất sinh viên Student Id Name Suburb 1108 Robert Kew name • Ví dụ: đưa danh sách sinh viên sống Bundoora suburb"Bundoora ( Student ) Student (Student ) Name Robert 3936 Glen Bundoora Glen 8507 Norman Bundoora Norman 8452 Mary Balwyn Mary R2 R3 17 Id Name 1108 Robert Suburb Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn Id Name Suburb 3936 Glen Bundoora 8507 Norman Bundoora 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Phép chọn - Điều kiện ? Ví dụ: chọn chiếu • Điều kiện chọn cịn gọi biểu thức chọn • Biểu thức chọn F: tổ hợp logic toán hạng g Mỗi toán hạng g phép so sánh đơn giản biến hai thuộc tính biến thuộc tính giá trị • Đưa tên sinh viên sống Bundoora – Các phép so sánh F: , , ,, , – Các phép toán logic F: , , name ( suburb "Bundoora Student ) Student Id Name 1108 Robert Suburb Kew 3936 Glen Bundoora Glen 8507 Norman Bundoora Norman 8452 Mary Balwyn Name 19 20 Phép kết nối (join) quan hệ r s Phép kết nối - Ví dụ: • Khái niệm ghép bộ: u = (a1, ,an);v=(b1, ,bm) (u,v) = (a1, ,an,b1, ,bm) • Phép kết nối quan hệ thực chất phép ghép cặp quan hệ thỏa mãn điều kiện chúng • Biểu thức kết nối phép hội toán hạng, hạng toán hạng phép so sánh đơn giản thuộc tính quan hệ r thuộc tính quan hệ s • Cú pháp: R1 join _ condition R • Đưa danh sách sinh viên mã khố học mà sinh viên tham Student Id SID Enrol gia a r b r c v r x s y t z a r x b r x Student Enrol Id Name Suburb 1108 R b t Robert K Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn Kết 21 Phép kết nối bằngbằng-kết nối tự nhiên • Định nghĩa: Nếu phép so sánh điều kiện kết nối phép so sánh kết nối gọi kết nối • Định nghĩa: Phép kết nối thuộc tính tên quan hệ sau kết nối thuộc tính cặp thuộc tính trùng tên bị loại khỏi quan hệ kết phép kết nối gọi kết nối tự nhiên • Cú pháp phép kết nối tự nhiên: R1 * R2 23 Id=SID SID Course 3936 101 1108 113 8507 101 SID Id Name Suburb 1108 1108 Robert Kew Course 113 3936 3936 Glen Bundoora 101 8507 8507 Norman Bundoora 101 22 Phép kết nối tự nhiên - Ví dụ: Takes Enrol SID SNO 1108 21 1108 23 8507 23 8507 29 * SID Course S SID S O SNO C Course 3936 101 1108 21 113 1108 113 1108 23 113 8507 101 8507 23 101 8507 29 101 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Phép kết nối ngồi Ví dụ: chọn, chiếu, kết nối • Đưa tên sinh viên sống Bundoora mã khố học mà sinh viên đăng ký: St d t Student Enrol name ,Course Id N Name Robert Kew 3936 Glen Bundoora 8507 Norman Bundoora 8452 Mary Balwyn Course 3936 101 1108 113 8507 101 a r b r c v ( suburb "Bundoo ( Student Id SID Enrol )) 1108 SID • Phép kết nối trái S b b Suburb Kết Name Course Glen 101 Norman 101 a r b r c v ID Name Suburb 1108 Robert Kew 3936 Glen Bundoora Enrol Norman Bundoora Mary Balwyn Kết SID Course 3936 101 1108 113 8507 101 ID Name Suburb 1108 Robert Kew 113 3936 Glen Bundoora 101 8507 Norman Bundoora 101 8452 Mary Balwyn null 26 Course • Định nghĩa: Phép chia quan hệ r bậc n quan hệ s bậc m (m 75; • Các phép tốn quan hệ: =, !=, , = • Các phép tốn logic: NOT, AND, OR • Phép tốn phạm vi: BETWEEN, IN, LIKE – Kiểu liệu số • attr BETWEEN val1 AND val2 ( (attr>=val1) and (attr SELECT sid FROM SupplyProduct WHERE pid = ‘P1’ INTERSECT SELECT sid FROM SupplyProduct WHERE pid = ‘P2’ • Tìm mã số hãng khơng cung ứng mặt hàng 83 SELECT sid FROM Supplier MINUS SELECT sid FROM SupplyProduct 84 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Các câu truy v vấn ấn lồng Các câu truy v vấn ấn lồng (tiếp) • Kiểm tra thành viên tập hợp với IN NOT IN: • Là trường hợp câu truy vấn (con) viết lồng • Thường sử dụng để – Đưa mã số hãng cung ứng đồng thời mặt hàng P1 P2: – Kiểm tra thành viên tập hợp (IN, NOT IN) – So sánh tập hợp (>ALL, >=ALL,