Bài giảng Cơ sở dữ liệu - Chương 3: Các ngôn ngữ dữ liệu đối với mô hình quan hệ - Vũ Tuyết Trinh

Nội dung
{ Các cách tiếp cận đối với thiết kế ngôn ngữ của
CSDL quan hệ
z Giới thiệu một số ngôn ngữ và phân loại
¾ So sánh và đánh giá
{ Một số ngôn ngữ dữ liệu mức cao
z QBE (Query By Example)
z SQL (Structured Query Language)
{ Kết luận 
pdf 45 trang xuanthi 30/12/2022 340
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 3: Các ngôn ngữ dữ liệu đối với mô hình quan hệ - Vũ Tuyết Trinh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_3_cac_ngon_ngu_du_lieu_doi_vo.pdf

Nội dung text: Bài giảng Cơ sở dữ liệu - Chương 3: Các ngôn ngữ dữ liệu đối với mô hình quan hệ - Vũ Tuyết Trinh

  1. Nhập môn cơ sở dữ liệu Nội dung { Các cách tiếp cận đối với thiếtkế ngôn ngữ của CSDL quan hệ z Giới thiệu một số ngôn ngữ và phân loại ¾ So sánh và đánh giá { Một số ngôn ngữ dữ liệu mức cao z QBE (Query By Example) z SQQ(L (Structured Query Langgguage) { Kếtluận 3 Đặtvấn đề { Mục đích của ngôn ngữ dữ liệu { Tại sao có nhiều ngôn ngôn ngữ dữ liệu? { Ngôn ngữ cấpthấp vs. Ngôn ngữ cấp cao? 4 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 2
  2. Nhập môn cơ sở dữ liệu Phân loại các ngôn ngữ truy vấn { Ngôn ngữđạisố z 1 câu hỏi = 1 tập các phép toán trên các quan hệ z Được biểu diễn bởi một biểu thức đại số (quan hệ) { Ngôn ngữ tính toán vị từ z 1 câu hỏi= 1 môtả của các bộ mong muốn z Được đặctả bởi mộtvị từ mà các bộ phảithoả mãn z Phââbn biệt 2 lớp: { ngôn ngữ tính toán vị từ biếnbộ { ngôn ngữ tính toán vị từ biếnmiền 7 Ngôn ngữ đại số quan hệ Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 4
  3. Nhập môn cơ sở dữ liệu Phép chiếu { Đ/n: Lựa chọn một số thuộc tính từ một quan hệ. { Cú pháp: ∏ A1,A2, (R) C1 C2 C3 C4 C5 C2 C5 ™ Ví dụ: đưa ra danh sách tên củatấtcả các sinh viên ∏ name (Stud ent ) Student Kết quả Id Name Suburb Name 1108 Robert Kew Robert 3936 Glen Bundoora Glen 8507 Norman Bundoora Norman 8452 Mary Balwyn Mary 11 Phép chọn { Đ/n: Lựa chọn các bộ trong một quan hệ thoả mãn điều kiện cho trước. { Cú pháp: σ (R) R1 R2 R2 R3 R3 R4 ™ Vídụ: đưa ra danh sách những sinh viên sống ở BdBundoora σ suburb="Bundoora (Student) Student Kết quả Id Name Suburb Id Name Suburb 1108 Robert Kew 3936 Glen Bundoora 3936 Glen Bundoora 8507 Norman Bundoora 8507 Norman Bundoora 8452 Mary Balwyn 12 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 6
  4. Nhập môn cơ sở dữ liệu Ví dụ -chọn, chiếuvàkếtnối { đưa ra tên của các sinh viên sống ở Bundoora và mã khoá học mà sinh viên đó đăng ký ∏ name,Course (σ suburb="Bundoo (Student >< Id =SID Enrol )) Student Id Name Suburb 1108 Robert Kew Kết quả 3936 Glen Bundoora Name Course 8507 Norman Bundoora Glen 101 8452 Mary Balwyn Enrol Norman 101 SID Course 3936 101 1108 113 8507 101 15 Phép kếtnốitự nhiên { Đ/n: là phép kết nối với điều kiện bằng trên các thuộc tính trùng tên ™ Ví dụ: Takes Enrol SID SNO SID Course 1108 21 3936 101 1108 23 1108 113 8507 23 * 8507 101 8507 29 SID SNO Course 1108 21 113 1108 23 113 8507 23 101 8507 29 101 16 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 8
  5. Nhập môn cơ sở dữ liệu Phép chia { Đ/n: cho R1 và R2 lần lượt là các quan hệ n và m ngôi. Kết quả của phép chia R1 cho R2 là một quan hệ (n-m) ngôi { Cú pháp: R1:R2 a x a y x a a z : z b x c y ™ Ví d ụ: Subject Course Name Course Kết quả Course Systems BCS Name Database BCS BCS : Database Database MCS MCS Algebra MCS 19 Phép hợp { Đ/n: gồm các bộ thuộc ít nhất một trong hai quan hệ đầu vào z 2 quan hệ khả hợp được xác định trên cùng miền giá trị { Cú pháp: R ∪ R 1 2 R1 R1 ∪ R2 R2 Kết quả Name Course ™ Ví d ụ: Systems BCS Subject Database BCS Name Course Subject2 Database MCS Systems BCS Name Course Algebra MCS Database BCS DataMining MCS DataMinin MCS ∪ g Database MCS Writing BCS Algebra MCS Writing BCS20 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 10
  6. Nhập môn cơ sở dữ liệu Phép tích đề-các { Đ/n: là kết nối giữa từng bộ của quan hệ thứ nhất và mỗi bộ của quan hệ thứ hai { Cú pháp: R1 x R2 a x a y a b x b x b y c y d X c x c y d x d y 23 Ví dụ phép tích đề-các Student Id Name Suburb Sport 1108 Robert Kew SportID Sport 05 Swimming 3936 Glen Bundoora X 8507 Norman Bundoora 09 Dancing 8452 Mary Balwyn Student_Sport 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 24 8452 Mary Balwyn 09 Dancing Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 12
  7. Nhập môn cơ sở dữ liệu Tổng quan { Ứng dụng logic toán vào CSDL { Nhắc lại về litálogic toán z Biểu thức logic: nhận 1 trong 2 giá trị ĐÚNG hoặc SAI z Biến: 1 đại lượng biến thiên trong 1 miền giá trị z Hằng: 1 đại lượng không đổi z Hàm: 1 ánh xạ từ 1 miền giá trị vào tập hợp gồm 2 giá trị hoặc đúng, hoặc sai z Vị từ:là1bi: là 1 biểuuth thức đượccxâyd xây dựng dựa trên b/t logic z Phép toán logic: phủ định (¬) kéo theo (⇒), và (∧) hoặc(∨) z Lượng từ: với mọi (∀), tồn tại(∃) { Phân loại: z Phép tính vị từ biếnbộ z Phép tính vị từ biếnmiền 27 Phép tính vị từ biếnbộ { Đ/n: là ngôn ngữ vị từ có biến là các bộ { Định nghĩa hình thức { t | P(t) } z t : tập các bộ kết quả sao cho vị từ P là đúng đối với t z P: là một biểu thức có duy nhất 1 biến tự do t { Một số quy ước: z t[A]: giá trị của bộ t tạiith thuộc tính A z t[X]: giá trị của bộ t trên tập các thuộc tính X z t∈ R: bộ t là một bộ trong quan hệ R 28 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 14
  8. Nhập môn cơ sở dữ liệu Biểu thứctổng quát { Một biểu thức nguyên tố là một biểu thức. { P1 là biểu thức ⇒¬P1, (P1) là các biểu thức { P1 và P2 là biểu thức ⇒ P1 ∧ P2 , P1 ∨ P2 , P1 ⇒ P2 là các biểu thức { P1 là biểu thức chứa 1 biến bộ tự do u, và R là 1 quan hệ ⇒∃u ∈ r (P1(u)), ∀ u ∈ r (P1(u)) cũng là các biểu thức 31 Các phép biến đổi tương đương { P1 ∧ P2 ⇔ ¬(¬P1 ∨¬P2) { t ∈ r (P1(t)) ⇔ ¬∃ t∈r (¬P1(t)) { P1 ⇒ P2 ⇔ ¬P1 ∨ P2 32 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 16
  9. Nhập môn cơ sở dữ liệu Biểuthức an toàn { Đ/n : {t | P(t)} là an toàn nếu tất cả các giá trị xuất hiện trong kết quả là các giá trị từ DOM(P) ™ Ví dụ 9 P(t) = t∈Sport ^ t[Sport] != ‘‘Football’’ (an toàn) 8 P(t) = ¬(t∈Sport) (không an toàn) 35 Phép tính vị từ biếnmiền { Đ/n: là ngôn ngữ vị từ có biến là các miền giá trị { Định nghĩa hình thức { | P(x1, , xn)} z x1, , xn là các biến miền hay các hằng miền z P: là một biểu thức chỉ có các biến tự do xi 36 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 18
  10. Nhập môn cơ sở dữ liệu Biểu thứctổng quát { Một biểu thức nguyên tố là một biểu thức. { P1 là 1 ⇒ ¬P1, (P1) là biểu thức { P1 và P2 là biểu thức ⇒ P1 ∧ P2 , P1 ∨ P2 , P1 ⇒ P2 là biểu thức { P1(x) là một biểu thức ⇒ ∃ x (P1(x)), ∀ x (P1(x)) là biểu thức 39 Tính an toàn của các biểuthức { Đ/n: một biểu thức { | P(x1, , xn)} là an toàn nếu tất cả các giá trị xuất hiện trong kết quả là các giá trị từ DOM(P) 40 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 20
  11. Nhập môn cơ sở dữ liệu Khả năng bổ sung của các ngôn ngữ { Tính toán số học: các phép toán số học +,-,*,/ { Lệnh gán và hiển thị: hiển thị quan hệ kết quả hay gán một quan hệ đã được tính toán đến một tên quan hệ khác. { Hàm tập hợp: tính giá trị tbìhtíhttrung bình, tính tổng, chọn giá trị nhỏ nhất hay lớn nhất 43 Bài tậpbiến đổitương đương { Viết định nghĩa các phép toán ĐSQH vớicác biểuthức tính toán vị từ { Tìm biểuthứctương đương trong ngôn ngữ ĐSQH và ngôn ngữ tính toán vị từ 44 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 22
  12. Nhập môn cơ sở dữ liệu QBE (Query-By-Example) { Là một ngôn ngữ truy vấn dữ liệu { Các câu truy vấn được thiết lập bởi một giao diện đồ hoạ { Phù hợp với các câu truy vấn đơn giản, tham chiếu đến ít b ảng { Một số sản phẩm: IBM (IBM Query Management Facility), Paradox, MS. Access, 47 Truy vấn trên một quan hệ Student ID Name Suburb P._x Bundoora { P.~ Print { phép tính vị từ biến miền tương đương: { |∃i,x,s (i,x,s) ∈ Student ^ s = ‘‘Bundoora’’} { Biểu thức đại số quan hệ tương đương σ suburb="Bundoora (Student) 48 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 24
  13. Nhập môn cơ sở dữ liệu Các tính toán tập hợp { Các phép toán: AVG, COUNT, MAX, MIN, SUM { Ví dụ: đưa ra tên các thành phố và số lượng sinh viên đếntừ thành phốđó Student ID Name Suburb _id G.P. P.COUNT._id { G. ~ Grouping 51 Hộp điềukiện { Đượcsử dụng để biểu diễn z Điềukiện trên nhiềuhơn 1 thuộc tính z Điềukiện trên các trường tính toán tập hợp x { Ví dụ: đưa ra danh sách các thành phố có nhiều hơn 5 sinh viên Student ID ¬ Name Suburb Condition _id G.P. COUNT._id > 5 52 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 26
  14. Nhập môn cơ sở dữ liệu Định nghĩadữ liệu trong QBE { sử dụng cùng qui cách và giao diện đồ hoạ như đối vớiit truy vấn. I.Student I. ID Name Suburb KEY I. Y N N TYPE I. CHAR(5) CHAR(30) CHAR(30) DOMAIN I. Sid SName Surb INVERSION I. Y N N 55 Định nghĩadữ liệu trong QBE (2) { Các khung nhìn I.View V I. ID Name Course I. _id _name _course Student ID Name Suburb Enrol SID Course _id _name _id _course 56 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 28
  15. Nhập môn cơ sở dữ liệu Các thành phầncủaSQL { Ngôn ngữ mô tả dữ liệu (Data Definition Language) z Cấu trúc các bảng CSDL z Các mối liên hệ của dữ liệu z Quy tắc, ràng buộc áp đặt lên dữ liệu { Ngôn ngữ thao tác dữ liệu (Data Manipulation Language) z Thêm, xoá, sửa dữ liệu trong CSDL { Ngôn ng ữ quảnlýdn lý dữ liệu(u (Data Contltrol Language) z Thay đổi cấu trúc của các bảng dữ liệu z Khai báo bảomật thông tin z Quyềnhạncủangười dùng trong khai thác CSDL 59 Cú pháp câu lệnh truy vấn SQL SELECT [DISTINCT] , , FROM , , [WHERE ] [GROUP BY , , ] [ORDER BY | [ASC|DESC]] [HAVING ] 60 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 30
  16. Nhập môn cơ sở dữ liệu Biểu diễn điềukiệnlựachọn {Các phép toán quan hệ: =, !=, , = {Các phép toán logic: NOT, AND, OR {Phép toán phạmvi: BETWEEN, IN, LIKE z Kiểu dữ liệu số { attr BETWEEN val1 AND val2 (⇔ (attr>=val1) and (attr<=val2) ) { attr IN (val1, val2, ) (⇔ (attr=val1) or (attr=val2) or ) z Kiểu dữ liệu xâu { LIKE: sử dụng đối sánh mẫu xâu với các ký tự % (thay thế cho 1 ký tự bất kỳ), * (thay thế cho 1 xâu ký tự bất kỳ) 63 Bài tập { Viết câu lệnh SQL đưa ra danh sách tên sinh viên họcmôn ‘‘Database’’ hoặc môn ‘‘VB’’ { Viết câu lệnh SQL đưa ra danh sách các sinh viên đăng ký các khoá họccómã113 hoặc 101 { Đưa ra danh sách các khoá học (Course) mà tên của khoá học chứa cụm ‘‘CS’’ 64 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 32
  17. Nhập môn cơ sở dữ liệu Phép toán đổitên { Từ khoá AS SELECT c1 as name1, c2 as name2 FROM TableName { Ví dụ: đưa ra danh sách mã sinh viên, tên sinh viên và tên môn học mà sinh viên đó tham gia SELECT SID , Student.Name as SName, Subject. Na me as Subject FROM Student,Takes, Subject WHERE (Id=SID) and (SNO = No) 67 Sử dụng biếnbộ trong SQL { Sử dụng từ khoá AS trong mệnh đề FROM { Ví dụ SELECT SID , Stud.Name as SName, Sub.Name as Subject FROM Student as Stud,Takes, Subject as Sub WHERE ((dId= SID ) an d (SN O = N o) 68 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 34
  18. Nhập môn cơ sở dữ liệu Phân nhóm các bản ghi kếtquả { Phân nhóm các bản ghi kếtquả theo giá trị của 1ho1 hoặc nhiều thuộc tính SELECT , , FROM , , [WHERE ] [GROUP BY , , ] { Ví dụđưa ra tên các sinh viên nhóm theo thành phố của sinh viên đó SELECT Suburb, Name FROM Student GROUP BY Suburb SELECT Suburb, Count(Id) FROM Student GROUP BY Suburb 71 Điềukiệnhiểnthị các bản ghi kếtquả { Lựa chọn các bản ghi kết quả để hiển thị SELECT , , FROM , , [WHERE ] HAVING { Ví dụ: đưa ra tên các thành phố có nhiều hơn 3 sinh viên SELECT Suburb, COUNT(ID) FROM Student GROUP BY Suburb HAVING COUNT(ID) > 3 72 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 36
  19. Nhập môn cơ sở dữ liệu Các hàm thư viện { Hàm tính toán trên nhóm các bản ghi z MAX/MIN z SUM z AVR z COUNT 75 Các hàm thư viện(2) { Hàm tính toán trên bản ghi z Hàm toán học: ABS, SQRT, LOG, EXP, SIGN, ROUND z Hàm xử lý xâu ký tự: LEN, LEFT, RIGHT, MID z Hàm xử lý thời gian: DATE, DAY, MONTH, YEAR, HOUR, MINUTE, SECOND z Hàm chuyển đổikiểugiátrị: FORMAT 76 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 38
  20. Nhập môn cơ sở dữ liệu Các câu lệnh cập nhật dữ liệu (2) { Xoá DELETE FROM table WHERE cond_exp; { Sửa UPDATE table SET col1 = exp1, col2=exp2, col2=exp2, WHERE cond_exp; { Ví d ụ z DELETE FROM Student WHERE Suburb = ‘‘Bundoora’’; z UPDATE Student SET Suburb = ‘‘Evry’’ WHERE Suburb = ‘‘Evr’’; 79 Định nghĩadữ liệuvớiSQL { Các thông tin được định nghĩa bao gồm z Sơđồquan hệ z Kiểudữ liệu hay miềngiátrị củamỗithuộc tính z Các ràng buộc toàn vẹn z Các chỉ sốđốivớimỗibảng z Thông tin an toàn và uỷ quyền đốivớimỗibảng z Cấutrúclưu trữ vậtlýcủamỗibảng trên đĩa ¾ Đượcbiểudiễnbởicáclệnh định nghĩadữ liệu 80 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 40
  21. Nhập môn cơ sở dữ liệu Kiểu ràng buộc { RBTV về giá trị miền CONSTRAINT CHECK { RBTV về khoá chính CONSTRAINT PRIMARY KEY (fk1,fk2, ) { RBTV về khoá ngoại hay phụ thuộc tồn tại CONSTRAINT FOREIGN KEY (fk1,fk2, ) REFERENCES tab(k1,k2) 83 Thêm/xoá/sửa cộtcủacácbảng { Thêm ALTER TABLE ADD COLUMN [NOT NULL] { Xoá ALTER TABLE DROP COLUMN { Sửa ALTER TABLE CHANGE COLUMN 84 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 42
  22. Nhập môn cơ sở dữ liệu Xử lý câu hỏi truy vấn Câu lệnh SQL Phân tích Biểu thức cú pháp ĐSQH Biểu thức (parser) Bộ tối ưu ĐSQH (optimizer) tối ưu Bộ sinh mã (code generator) Chương trình tối ưu 87 Các điểmcầnlưu ý { Các ngôn ngữ dữ liệu z ĐSQH vs. vị từ z QBE vs. SQL { Sự tương đương của các ngôn ngữ z Ngôn ngữĐSQH và ngôn ngữ vị từ z Biến đổigiữa câu truy vấnSQL vàbiểuthức đạisố quan hệ 88 Vũ Tuyết Trinh, b/m Các hệ thống thông tin, khoa CNTT, ĐHBKHN 44