Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
2,87 MB
Nội dung
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 – QBE (Query By Example) – SQL (Structured Query Language) 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 • Kết luận CSDL ví dụ CSDL ví dụ Supplier SID SIZE CITY Dustin 100 London Rusty 70 Paris 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 Norman o a Bundoora u doo a S5 MBI 1000 NewOrlean S6 Panda 150 London Name 1108 3936 8507 Mary Balwyn 8507 23 8507 29 8507 101 No Name Dept No Name Dept 113 BCS CSCE 21 Systems CSCE MCS CSCE 23 Database CSCE 29 VB CSCE 18 Algebra Maths PID – Tì Tìm ủ bảng bả 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 Product Subject Course 101 SNAME S1 Suburb Id 8452 Enrol Takes Student 101 8452 Suburb Norman Bundoora Mary y 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 ề g giá ttrịị miền – 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 Database BCS Database MCS Algebra MCS Name Course Systems BCS Name Course Database BCS DataMining MCS Database MCS Writing BCS Algebra MCS DataMining MCS Writing 12 BCS 11 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 \ R1 R2 R2 Subject2 Subject1 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 Subject2 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 Đề Đề • Đ/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 Sport Student 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 name R2 R3 • Ví dụ: đưa danh sách sinh viên sống Bundoora suburb"Bundoora ( Student ) Student (Student ) Id Name Suburb Name Id Name 1108 Robert Kew Robert 1108 Robert Suburb Kew Glen Bundoora 3936 Glen Bundoora Glen 3936 8507 Norman Bundoora Norman 8507 Norman Bundoora 8452 Mary Balwyn Mary 8452 Mary Balwyn 17 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ã khoá 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 SID Course S SID S O SNO C Course 1108 21 3936 101 1108 21 113 1108 23 1108 113 1108 23 113 8507 23 8507 101 8507 23 101 8507 29 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 Course Glen 101 Norman 101 a r b r c v Phép chia • Đưa danh sách sinh viên mã khố học mà sinh viên đăng ký có ID Name Suburb 1108 Robert Kew 3936 Glen Bundoora 8452 Enrol Norman Bundoora Mary Balwyn 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 Kết Course • Định nghĩa: Phép chia quan hệ r bậc n quan hệ s bậc m (m sử dụng trỏ (pointer) để truy cập liệu tệp Tổ chức tệp đống (Heap file) Tổ chức tệp đống (Heap file) • Tổ chức liệu • Các thao tác (tiếp) – Bản ghi lưu trữ khối, không tuân theo thứ tự đặc biệt k1 k2 k3 k4 k5 k6 k7 k8 • Các thao tác – Tìm kiếm ghi: tìm kiếm ghi có giá trị khóa cho trước => qt tồn tệp – Thêm ghi: thêm ghi vào sau ghi cuối – Xóa ghi: thao tác xóa bao hàm thao tác tìm kiếm Nếu có ghi cần xóa đánh dấu xóa => hệ thống cần tổ chức lại đĩa định kỳ – Sửa ghi: tìm ghi sửa hay nhiều trường CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Tổ chức tệp đống (Heap file) • Ví dụ: Tổ chức tệp băm (Hashed files) • Hàm băm: h(x) nhận giá trị đoạn [0,k], ví dụ: h(x)=x mod k • Tổ chức tệp liệu Thêm ghi giá trịị có g khóa 32 – Phân chia ghi vào cụm – Mỗi cụm gồm nhiều khối khối – Mỗi khối chứa số lượng ghi cố định – Tổ chức lữu trữ liệu cụm áp dụng theo tổ chức đống Xóa ghi có giá trị khóa 64 Tổ chức tệp băm (Hashed files) • Tiêu chí chọn hàm băm: phân bố ghi tương đối đồng theo cụm Tổ chức tệp băm (Hashed files) h(x) = x mod Store hash 4 Tổ chức tệp băm (Hashed files) Store – Tìm kiếm ghi: để tìm ghi có khóa x, tính h(x) cụm chứa ghi, sau tìm kiếm theo tổ chức đống – Thêm ghi: thêm ghi có giá trị khóa x hash 10 12 18 17 Tổ chức tệp băm (Hashed files) • Các thao tác h(x) = x mod 12 10 17 18 10 • tệp có ghi có trùng khóa x =>bản ghi sai (vì khóa nhất!) • khơng có ghi trùng khóa, ghi thêm vào khối chỗ trống cụm, hết chỗ tạo khối 11 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt 1/30/2012 Tổ chức tệp băm (Hashed files) – Xóa ghi: tìm kiếm ghi xóa – Sửa đổi ghi: • trường cần sửa có tham gia vào khóa việc sửa loại bỏ ghi thêm ghi (bản ghi thuộc vào cụm khác) • trường cần sửa khơng thuộc khóa: tìm kiếm sửa Nếu ghi khơng tồn xem có lỗi Tổ chức tệp dẫn(Indexed Files) • Giả sử giá trị khóa ghi xếp tăng dần • Tệp dẫn tạo cách chọn giá trị khóa ghi • Tệp dẫn bao gồm cặp (k,d), k g giá trịị khoá g ghi đầu tiên,, d địa khối (hay trỏ khối) 13 Tổ chức tệp dẫn(Indexed Files) • Tìm kiếm tệp dẫn 14 Tổ chức tệp dẫn(Indexed Files) • Các thao tác – Cho giá trị khóa ki, tìm ghi (km,d) tệp dẫn cho km