1 / 35

Sơ lược về ràng buộc toàn vẹn

Sơ lược về ràng buộc toàn vẹn. Nhóm trình bày: Nghiêm Kiên Luân Lê Hữu Nghĩa. Nội dung. 1. Ràng buộc toàn vẹn là gì?. 2. Phân loại RBTV và ví dụ. 3. So sánh RDB VÀ OODB. Ràng buộc toàn vẹn.

asis
Download Presentation

Sơ lược về ràng buộc toàn vẹn

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sơ lược về ràng buộc toàn vẹn Nhóm trình bày:Nghiêm Kiên Luân Lê Hữu Nghĩa

  2. Nội dung 1 Ràng buộc toàn vẹn là gì? 2 Phân loại RBTV và ví dụ 3 So sánh RDB VÀ OODB

  3. Ràng buộc toàn vẹn • Định nghĩa: Ràng buộc toàn vẹn là qui tắc mà các dữ liệu trong CSDL phải thỏa mãn qui tắc này ở bất kỳ thời điểm nào • Các ràng buộc toàn vẹn được xem là một công cụ để diễn đạt ngữ nghĩa của CSDL • Công việc kiểm tra RBTV có thể do hệ quản trị CSDL hỗ trợ hoặc do người phân tích thiết kế cài đặt. • Việc kiểm tra RBTV có thể thực hiện lúc thao tác dữ liệu (insert,delete,update) hoặc bất kỳ lúc nào khác.

  4. Ví dụ HSSV(masv, hoten, ngaysinh,ngayvaohoc, malop) Các ràng buộc: C1: masv phải duy nhất C2: phái  {nam, nữ} C3: ngaysinh + n ≤ ngayvaohoc C4: hoten ≠ NULL

  5. Các yếu tố của RBTV • Một RBTV có 3 yếu tố: điều kiện (condition), bối cảnh (relations) và tầm ảnh hưởng (scope) • Điều kiện của một RBTV: được biểu diễn bằng ngôn ngữ tư nhiên, giải thuật, đại số tập hợp, đại số quan hệ hay phụ thuộc hàm. VD: RB C1 “masv là duy nhất” được biểu diễn • Ng2 tự nhiên:”mỗi sinh viên có masv không trùng với bất kỳ sinh viên nào khác” • Giải thuật: sv1  HSSV, sv2  HSSV If sv1 ≠ sv2 then sv1.masv ≠ sv2.masv • Phụ thuộc hàm:masv  hoten, phai, ngaysinh,…

  6. Các yếu tố của RBTV • Bối cảnh của RBTV: là các quan hệ mà RBTV đó liên quan đến. VD: HSSV(masv, hoten, ngaysinh,ngayvaohoc, malop) LOP(malop, tenlop, makhoa) KHOA(makhoa,tenkhoa) • Bối cảnh: ”masv duy nhất”,” phái  {nam, nữ}”, “ngaysinh + n ≤ ngayvaohoc” là quan hệ HSSV • Bối cảnh: “mỗi sinh viên chỉ học một lớp” là 2 quan hệ HSSV và LOP

  7. Các yếu tố của RBTV • Bảng tầm ảnh hưởng:Chobiết RBTV có được kiểm tra khi thực hiện tác vụ tương ứng. • C1:“masv là duy nhất” • C5: ”mỗi SV chỉ học một lớp” • C6: “Mỗi lớp chỉ thuộc một khoa” T-Thêm, X-Xoá, S-Sửa Dấu + là cần kiểm tra RBTV khi thực hiện tác vụ tương ứng Dấu – thì không cần kiểm tra

  8. Phân loại RBTV

  9. Phân loại RBTV • Các RB tĩnh: RB cần phải được thỏa tại mỗi trạng thái đơn của CSDL. • Các RB động: hạn chế các chuỗi chuyển tiếp trạng thái có thể có. Một cách phân loại khác: • Các RB cục bộ: định nghĩa các quy tắc trên tập các quan hệ/đối tượng có cùng các thuộc tính chung. • Các RB toàn cục: mô tả các quy tắc giữa các quan hệ/đối tượng thuộc các lớp khác nhau.

  10. Sơ lược các loại RBTV

  11. RBTV về khóa chính Đối tượng sinh viên MãSV: SV01 Tên: Tuấn ChiềuCao: 1.65 CânNặng: 60 Khóachínhkhôngđượcrỗng Khóachínhphảiduynhất Khôngchophépsửađổithuộctínhkhóa chính Chú ý: trong OODB mỗi đối tượng khi được tạo ra đã có OID do hệ thống sinh ra là duy nhất trong hệ thống Vd: SinhViên

  12. RVTV về miền trị, RB khác NULL • RB miền trị: • Liên quan đến miền trị của các thuộc tính trong quan hệ/ đối tượng • Có bao nhiêu thuộc tính thì có bấy nhiêu miền trị • Việc kiểm tra miền trị thực hiện khi nhập dữ liệu và sửa dữ liệu • Vd: phái  {nam, nữ} điểm ≥ 0 and điểm ≤ 10 • RB khác NULL: Vd: HọTên không được NULL Lương không được NULL, nếu không nhập thì gán giá trị mặc định nào đó

  13. RB liên thuộc tính Là RB giữa các thuộc tính trong cùng 1 quan hệ/đối tượng Được kiểm tra khi nhập mới hoặc sửa dữ liệu Vd: HSSV(masv, hoten, phai, ngaysinh, ngayvaohoc, malop) RBTV: ngaysinh + n ≤ ngayvaohoc

  14. RB liên bộ SV02 học tới 12 tc Là mối quan hệ giữa các bộ trong cùng quan hệ / lớp Vd: học(mãsv, mãmh, sốtc, điểm) RB: trong 1 học kỳ sinh viên chỉ được học tối đa 10 tc

  15. RB số lượng tham chiếu (OODB) • Số lượng min | max cho từng tham chiếu • Các dạng quan hệ giữa các đối tượng • 1 :1 : một đối tượng chỉ quan hệ với một đối tượng • 1 : n (list): 1 đối tượng quan hệ với nhiều đối tượng khác, có quan tâm đến thứ tự • 1 : n (set): 1 đối tượng quan hệ với nhiều đối tượng khác, không quan tâm đến thứ tự • Tương tự cho: • n (list) : 1 n (set) : 1 • m(list) : n (list) m(list) : n (set) • m(set) : n (list) m(set) : n (set)

  16. RB số lượng tham chiếu (OODB) MãDA: D02 … ĐượcTG: MãNV: N01 … ThamGia: … … … Vd: một nhân viên không tham gia nhiều hơn 2 dự án Mỗi dự án có ít nhất 5 đến 50 nhân viên tham gia

  17. RB các đối tượng về mặt ngữ nghĩa (OODB) • RB về mặt ngữ nghĩa cho lược đồ, giúp cho mô hình hóa ứng dụng một cách trung thực hơn • Vd: • RB: một người không được kết hôn với chính mình => đặc tả: kết hôn <> this (trường hợp đơn giản) • RB: Cha mẹ không được kết hôn với con => đặc tả: not((kết hôn = X) and (X.con = this)) X là ký tự không kết thúc sẽ được sử dụng để đánh giá biểu thức tại thời điểm kiểm tra RB

  18. RB tham chiếu • Còn gọi là RBTV phụ thuộc tồn tại hay RB khóa ngoại • Khóa ngoại phải NULL hoặc là phải tồn tại trong quan hệ mà nó đóng vai trò là khóa chính • Có 2 loại: tham khảo đến cùng một quan hệ tham khảo đến quan hệ khác • Vd: SinhViên(mãsv, họtên, mãlớptrưởng)

  19. RB tham chiếu (tt) • Vd: SinhViên(mãsv, họtên, mãlớp) Lớp(mãlớp, tênlớp) • Chú ý: mô hình OODB mặc nhiên thỏa RB tham chiếu vì một đối tượng muốn tham chiếu trực tiếp đến đối tượng khác thì đối tượng được tham chiếu đến phải tồn tại

  20. RB liên bộ liên quan hệ • Là mối quan hệ giữa một hay nhiều bộ của quan hệ này với nhiều bộ của quan hệ khác • Vd: SinhViên(mãsv, họtên, mãlớp) Lớp(mãlớp, tênlớp, sốsv)

  21. RB liên bộ liên quan hệ (tt) A = 100, B = 135, C = 50 • Vd: PhiếuNhập(mãPN, mãvậttư, sốlượng) PhiếuXuất(mãPX, mãvậttư, sốlượng)

  22. RBTV vòng (có chu trình) KHÔNG được tồn tại vòng giữa các quan hệ Rất khó để kiểm tra tự động, thường do người lập trình tự viết code kiểm tra Vd: NhânViên(mãnv, họtên, mãnql)

  23. RBTV động Là RB liên quan đến trạng thái cũ và trạng thái mới của CSDL Vd: SinhViên(mãsv, họtên, tuổi) RB: sau mỗi năm tuổi phải tăng lên 1

  24. RBTV động • Vd: NhânViên(mãnv, họtên) BằngCấp(mãnv, bằngcấp, ngày cấp)

  25. RB liên quan đến QH cha con, kết hợp Cách đặc tả ràng buộc loại này được trình bày theo từng dạng quan hệ giữa các lớp, mỗi dạng quan hệ thường có các ràng buộc liên quan đến các tính chất như: cách định nghĩa lớp gồm chỉ định tường minh hay không tường minh, tính đầy đủ (completeness) gồm sự tham gia toàn bộ (total) hay sư tham gia bộ phận (partial), tính phân biệt (disjointness) hay còn gọi là tính loại trừ lẫn nhau gồm tính phân biệt (disjoint) hay trùng lặp (overlap). Ví dụ: lớp NhânViên có các lớp con là: TrưởngPhòng, KỹSư, KỹThuậtViên, ThưKý. Nhưng chỉ có 3 lớp KỹSư, KỹThuậtViên và ThưKý là loại trừ lẫn nhau, lớp TrưởngPhòng không có tính chất loại trừ đối với các lớp con khác. Có thể có một KýSư giữ chức TrưởngPhòng

  26. Sự kế thừa các RB • Sự kế thừa hiểu theo nghĩa rộng có thể là sự thừa kế từ các lớp cha đến các lớp con, mà cũng có thể là sự thừa kế từ một lớp đến các thể hiện của nó • Trong quan hệ cha con, lớp con sẽ thừa kế mọi thuộc tính, mọi quan hệ cũng như ràng buộc từ các lớp cha. Tuy nhiên, có một số trường hợp đặc biệt xuất phát tự thực tế. Từ đó, công cụ cho phép khai báo lược đồ CSDL và đặc tả các ràng buộc cũng cần phải có một số cơ chế để cài đặt các trường hợp đặc biệt này. • Vd: lớp C thừa kế từ lớp A và lớp B: • RB trong lớp A: t < x • RB trong lớp B: t > x => cần chỉ định C không thừa kế 1 trong 2 RB trên

  27. So sánh thông qua các dạng chuẩn

  28. So sánh thông qua các dạng chuẩn • Dạng chuẩn 1NF: • Trong RDB, một ô trong bảng phải chứa trị nguyên tố => cần nhiều dòng để biểu diễn 1 thể hiện có nhiều hơn 1 trị ở một cột của bảng => dữ liệu bị trùng lặp • Trong OODB, một thuộc tính có thể biểu diễn 1 tập các giá trị => dữ liệu ít bị dư thừa => mô hình hoá ứng dụng 1 cách trung thực hơn

  29. Ví dụ Đối tượng Sinh Viên Đối tượng Xếp Loại Đối tượng Môn học Tên: Tuấn Chiều_cao: 1.65 Cân nặng: 60 Xếp loại □ Điểm: 7 Môn học: □ Sinh viên: □ Môn học: MH01 số tc: 4 Môn học: MH02 số tc: 5 Điểm: 8 Môn học: □ Sinh viên: □

  30. So sánh thông qua các dạng chuẩn • Dạng chuẩn 2NF: X → A: Nếu A không nguyên tố thì X là siêu khoá hoặc X không là tập con của khoá VD:SinhViên(MãSV,MãMH, TênSV,ChiềuCao,CânNặng,TênMH, Điểm) RB: MãSV → ChiềuCao • Cách giải quyết ở cả hai mô hình là giống nhau: định nghĩa các class/bảng riêng biệt

  31. So sánh thông qua các dạng chuẩn • Chuẩn 3NF: vế phải không nguyên tố thì vế trái phải là khoá • VD: MônHọc(MãMH,TênMH,SốTC,Dãy,Phòng) RB: Phòng → Dãy • Cách giải quyết đối với RDB: chia thành 2 bảng MônHọc(MãMH,Tên,SốTC,Phòng) & PhòngHọc(Dãy,Phòng) Đối tượng Môn Học Đối tượng Phòng Đối tượng dãy MãMH: MH01 TênMH: CSDL SốTC: 4 Phòng: □ Phòng: 102 Dãy: □ Tên: khoa CNTT

  32. So sánh thông qua các dạng chuẩn • Chuẩn BCNF: vế trái phải là siêu khoá • VD: SinhViên(MãSV, Tên, ChiềuCao, CânNặng) MônHọc(MãMH, Tên, SốTC) NgườiHướngDẫn(MãNHD, Tên, CơQuan) HướngDẫn(MãSV, MãNHD, MãMH) RB: MãSV,MãNHD → MãMH MãMH → MãNHD vi phạm BCNF • Phân rã: Sviên_NHD(MãSV, MãNHD) Mhoc_NHD(MãMH,MaNHD) • RDB thường có nhược điểm không bảo toàn phụ thuộc hàm khi phân rã các bảng để đạt BCNF nên thường chấp nhận 3NF • RB được thực hiện bằng mã chương trình

  33. So sánh thông qua các dạng chuẩn Tên: Dương CơQuan: viện CNTT MônHoc: □ MãMH: MH01 TênMH: CSDL SốTC: 4 NgườiHD: □ MãMH: MH02 TênMH: CTDL SốTC: 5 NgườiHD: □ Tên: Dương CơQuan: trường KT MônHoc: □ MãMH: MH03 TênMH: CTMT SốTC: 3 NgườiHD: □ Tên: Nam ChiềuCao: 1.72 CânNặng: 58 MônHọc: □

  34. So sánh thông qua các dạng chuẩn • Trong OODB: RB: MãSV,MãNHD → MãMH vẫn chưa được ép buộc Giải quyết: giao của tập các môn học trong đối tượng sinh viên và tập các môn học trong mỗi đối tượng người hướng dẫn không được lớn hơn 1.

  35. Thank You !

More Related