Phát biểu dụng nhất về ràng buộc toàn vẹn trong cơ sở dữ liệu là gì

Giáo Trình Cơ Sở Dữ Liệu Trang 45 Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng chương 4 RÀNG BUỘC TOÀN VẸN [Integrity Constraint] 4.1 RÀNG BUỘC TOÀN VẸN 4.1.1 Khái Niệm Ràng Buộc Toàn Vẹn Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bộ; sự liên hệ này có thể xảy ra trong cùng một quan hệ hoặc trong các quan hệ của một lược đồ CSDL. Các mối liên hệ này là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan trong CSDL đều phải thoả mãn ở mọi thời điểm. Những điều kiện bất biến đó được gọi là ràng buộc toàn vẹn.. Trong thực tế ràng buộc toàn vẹn là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực. Chẳng hạn mỗi sinh viên phải có một mã sinh viên duy nhất, hai thí sinh dự thi vào một trường phải có số báo danh khác nhau, một sinh viên dự thi một môn học không quá 3 lần,… Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ các ràng buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong hồ sơ phân tích thiết kế - đó là một việc làm rất quan trọng. Ràng buộc toàn vẹn được xem như là một công cụ để diễn đạt ngữ nghĩa của CSDL. Một CSDL được thiết kế cồng kềnh nhưng nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn có giá trị cao hơn rất nhiều so với một cách thiết kế gọn nhẹ nhưng nghèo nàn về ngữ nghĩa vì thiếu các ràng buộc toàn vẹn của CSDL. Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành vào thời điểm cập nhật dữ liệu [ thêm, sửa, xoá]. Những ràng buộc toàn vẹn phát sinh phải cần được ghi nhận và xử lý một cách tường minh [thường là bởi một hàm chuẩn hoặc một đoạn chương trình]. Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là hai trong số những vấn đề quan trọng trong quá trình phân tích thiết kế cơ sở dữ liệu, nếu không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến Giáo Trình Cơ Sở Dữ Liệu Trang 46 Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng những hậu quả nghiêm trọng về tính an toàn và toàn vẹn dữ liệu , đặc biệt là đối với những cơ sở dữ liệu lớn. 4.1.2 Các Yếu Tố Của Ràng Buộc Toàn Vẹn Mỗi ràng buộc toàn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh hưởng và hành động phải cần thực hiện khi phát hiện có ràng buộc toàn vẹn bị vi phạm: 4.1.2.1.Điều kiện Điều kiện của ràng buộc toàn vẹn là sự mô tả, và biểu diễn hình thức nội dung của nó Điều kiện của một ràng buộc toàn vẹn R có thể được biểu diễn bằng ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy vấn SQL,… ngoài ra điều kiện của ràng buộc toàn vẹn cũng có thể được biểu diễn bằng phụ thuộc hàm [khái niệm phụ thuộc hàm sẽ được đề cập trong chương 5] Sau đây là một số ràng buộc toàn vẹn trên lược đồ CSDL quản lý sinh viên . Mỗi lớp học phải có một mã số duy nhất để phân biệt với các lớp học khác trong trường. Mỗi lớp học phải thuộc về một khoa của trường. Mỗi sinh viên có một mã số sinh viên duy nhất, không trùng với bất cứ sinh viên nào trong trường. Mỗi học viên phải đăng ký vào một lớp học trong trường. Mỗi học viên chỉ được thi tối đa 3 lần cho mỗi môn học. Tổng số học viên của một lớp phải lớn hơn hoặc bằng số lượng đếm được của một lớp tại một thời điểm nào đó. 4.1.2.2.Bối cảnh Bối cảnh của ràng buộc toàn vẹn là những quan hệ mà ràng buộc đó có hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra khi tiến hành cập nhật dữ liệu. Bối cảnh của một ràng buộc toàn vẹn có thể là một hoặc nhiều quan hệ. Giáo Trình Cơ Sở Dữ Liệu Trang 47 Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng Chẳng hạn với ràng buộc toàn vẹn R trên thì bối cảnh của nó là quan hệ Sinhvien 4.1.2.3.Bảng tầm ảnh hưởng Trong quá trình phân tích thiết kế một CSDL, người phân tích cần lập bảng tầm ảnh hưởng cho một ràng buộc toàn vẹn nhằm xác định thời điểm cần phải tiến hành kiểm tra khi tiến hành cập nhật dữ liệu. Thời điểm cần phải kiểm tra ràng buộc toàn vẹn chính là thời điểm cập nhật dữ liệu. Một bảng tầm ảnh hưởng của một ràng buộc toàn vẹn có dạng sau: Tên RBTV Thêm[T] Sửa[S] Xoá[X] r1 + r2 - r3 -[*] rn Bảng này chứa toàn các ký hiệu + , – hoặc -[*]. Chẳng hạn + tại [dòng r1, cột Thêm] thì có nghĩa là khi thêm một bộ vào quan hệ r1 thì RBTV bị vi phạm. Dấu - Tại ô [dòng r2, cột sửa] thì có nghĩa là khi sửa một bộ trên quan hệ r2 thì RBTV không bị vi phạm. ,… Quy ước: -Không được sửa thuộc tính khoá. -Nếu không bị vi phạm do không được phép sửa đổi thì ký hiệu là -[*]. 4.1.2.4.Hành động cần phải có khi phát hiện có RBTV bị vi phạm: khi một ràng buộc toàn vẹn bị vi phạm, cần có những hành động thích hợp. Thông thường có 2 giải pháp: Thứ nhất: Đưa ra thông báo và yêu cầu sửa chữa dữ liệu của các thuộc tính cho phù hợp với quy tắc đảm bảo tính nhất quán dữ liệu. Thông báo phải Giáo Trình Cơ Sở Dữ Liệu Trang 48 Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng đầy đủ và phải thân thiện với người sử dụng. Giải pháp này là phù hợp cho việc xử lý thời gian thực. Thứ hai:Từ chối thao tác cập nhật. Giải pháp này là phù hợp đối với việc xử lý theo lô. Việc từ chối cũng phải được lưu lại bằng những thông báo đầy đủ, rõ ràng vì sao thao tác bị từ chối và cần phải sữa lại những dữ liệu nào ? Khóa nội, khoá ngoại, giá trị NOT NULL là những ràng buộc toàn vẹn miền giá trị của các thuộc tính. Những ràng buộc toàn vẹn này là những ràng buộc toàn vẹn đơn giản trong CSDL. Các hệ quản trị cơ sở dữ liệu thường có các cơ chế tự động kiểm tra các ràng buộc toàn vẹn về miền giá trị của khoa nội, khoá ngoại, giá trị NOT NULL. Việc kiểm tra ràng buộc toàn vẹn có thể tiến hành vào những thời điểm sau đây. Thứ nhất: Kiểm tra ngay sau khi thực hiện một thao tác cặp nhật CSDL. Thao tác cặp nhật chỉ được xem là hợp lệ nếu như nó không vi phạm bất cứ một ràng buộc toàn vẹn nào , nghĩa là nó không làm mất tính toàn vẹn của CSDL Nếu vi phạm ràng buộc toàn vẹn , thao tác cặp nhật bị coi là không hợp lệ và sẽ bị hệ thống huỷ bỏ [hoặc có một xử lý thích hợp nào đó] Thứ hai: Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra ràng buộc toàn vẹn được tiến hành độc lập với thao tác cặp nhật dữ liệu. Đối với những trường hợp vi phạm ràng buộc toàn vẹn , hệ thống có những xử lý ngầm định hoặc yêu cầu người sử dụng xử lý những sai sót một cách tường minh. 4.2. PHÂN LOẠI RÀNG BUỘC TOÀN VẸN Trong quá trình phân tích thiết kế CSDL, người phân tích phải phát hiện tất cả các ràng buộc toàn vẹn tiềm ẩn trong CSDL đó. Việc phân loại các ràng buộc toàn vẹn là rất có ích, nó nhằm giúp cho người phân tích có được một định hướng để phát hiện các ràng buộc toàn vẹn, tránh bỏ sót. Các ràng buộc toàn vẹn có thể được chia làm hai loại chính như sau: Giáo Trình Cơ Sở Dữ Liệu Trang 49 Biên soạn : Phan Tấn Quốc- Trường Cao Đẳng Kỹ Thuật Cao Thắng Thứ nhất: Ràng buộc toàn vẹn có phạm vi là một quan hệ bao gồm :Ràng buộc toàn vẹn miền giá trị, ràng buộc toàn vẹn liên thuộc tính, ràng buộc toàn vẹn liên bộ. Thứ hai: Ràng buộc toàn vẹn có phạm vi là nhiều quan hệ bao gồm :Ràng buộc toàn vẹn phụ thuộc tồn tại, ràng buộc toàn vẹn liên bộ - liên quan hệ, ràng buộc toàn vẹn liên thuộc tính - liên quan hệ. Để minh hoạ cho phần lý thuyết của chương này, chúng ta xét ví dụ sau đây: Ví dụ 4.1 Cho một CSDL C dùng để quản lý việc đặt hàng và giao hàng của một công ty. Lược đồ CSDL C gồm các lược đồ quan hệ như sau: Q1: Khach [MAKH, TENKH, DIACHIKH, DIENTHOAI] Tân từ: Mỗi khách hàng có một mã khách hàng [MAKH] duy nhất, mỗi MAKH xác định tên khách hàng [TENKH], địa chỉ [DIACHIKH], số điện thoại [DIENTHOAI]. Q2: Hang[MAHANG,TENHANG,QUYCACH, DVTINH] Tân từ: Mỗi mặt hàng có một mã hàng [MAHANG] duy nhất, mỗi MAHANG xác định tên hàng [TENHANG], quy cách hàng [QUYCACH], đơn vị tính [DVTINH]. Q3: Dathang[SODH,MAHANG, SLDAT, NGAYDH, MAKH] Tân từ: Mỗi mã số đặt hàng [SODH] xác định một ngày đặt hàng [NGAYDH] và mã khách hàng tương ứng [MAKH]. Biết mã số đặt hàng và mã mặt hàng thì biết được số lượng đặt hàng[SLDAT]. Mõi khách hàng trong một ngày có thể có nhiều lần đặt hàng Q4: Hoadon[SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT] Tân từ: Mỗi hoá đơn tổng hợp có một mã số duy nhất là SOHD, mỗi hoá đơn bán hàng có thể gồm nhiều mặt hàng. Mỗi hoá đơn xác định ngày lập hoá đơn

RÀNG BUỘC TOÀN VẸN 1. RBTV, Các yếu tố của RBTV 2. Phân loại ràng buộc toàn vẹn Ràng buộc toàn vẹn [RBTV] là một quy tắc định nghĩa trên một [hay nhiều] quan hệ do môi trường ứng dụng quy định. Đó chính là quy tắc để đảm bảo tính nhất quán của dữ liệu trong CSDL.  Mỗi RBTV được định nghĩa bằng một thuật toán trong CSDL.

Bạn đang xem trước 20 trang tài liệu Bài giảng Cơ sở dữ liệu - Chương 2: Ràng buộc toàn vẹn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên

1RÀNG BUỘC TOÀN VẸN 1. RBTV, Các yếu tố của RBTV 2. Phân loại ràng buộc toàn vẹn 21. RBTV, Các yếu tố của RBTV 1.1. Định nghĩa 1.2. Các yếu tố của RBTV 31.1. Định nghĩa  Ràng buộc toàn vẹn [RBTV] là một quy tắc định nghĩa trên một [hay nhiều] quan hệ do môi trường ứng dụng quy định. Đó chính là quy tắc để đảm bảo tính nhất quán của dữ liệu trong CSDL.  Mỗi RBTV được định nghĩa bằng một thuật toán trong CSDL. 41.1. Định nghĩa  Ví dụ  R1 : Mỗi lớp học có 1 mã số duy nhất để phân biệt với mọi lớp học khác.  R2 : Mỗi lớp học phải thuộc một KHOA của trường.  R3 : Mỗi học viên có 1 mã số riêng biệt, không trùng với các học viên khác.  R4 : Mỗi học viên phải đăng ký vào một lớp của trường. 51.1. Định nghĩa  Khóa nội, Khóa ngoại, NOT NULL ... là những RBTV về miền giá trị của các thuộc tính.  Trong thực tế, tất cả các RBTV của một CSDL phải được phát hiện đầy đủ  Trong một CSDL, RBTV được xem như một công cụ để diễn đạt ngữ nghĩa của CSDL đó.  Trong suốt quá trình khai thác CSDL, các RBTV đều phải được thỏa mãn ở bất kỳ thời điểm nào 6Phương pháp kiểm tra RBTV  Hệ quản trị CSDL có các cơ chế tự động kiểm tra các RBTV về miền giá trị của Khóa nội, Khóa ngoại, NOT NULL qua khai báo cấu trúc các bảng  Thông qua những thủ tục kiểm tra và xử lý vi phạm RBTV do những người phân tích - thiết kế cài đặt 7Thời điểm kiểm tra RBTV  Kiểm tra ngay khi thực hiện 1 thao tác cập nhật CSDL [thêm, sửa, xóa]. Thao tác cập nhật chỉ được xem là hợp lệ nếu như nó không vi phạm bất cứ một RBTV nào.  Kiểm tra định kỳ hay đột xuất. Đối với những trường hợp vi phạm RBTV, hệ thống sẽ có những xử lý thích hợp. 81.2. Các yếu tố của RBTV  Điều kiện: tức là nội dung của RBTV, từ đó xác định cách biểu diễn.  Bối cảnh xảy ra RBTV: trên một hay nhiều quan hệ, cụ thể trên các quan hệ nào.  Tầm ảnh hưởng của RBTV: Khả năng tính toàn vẹn dữ liệu bị vi phạm  Hành động cần phải có khi phát hiện có RBTV bị vi phạm. 91.2. Các yếu tố của RBTV  Điều kiện của RBTV:  Điều kiện của RBTV là sự mô tả, và biểu diễn hình thức nội dung của nó, có thể được biểu diễn bằng ngôn ngữ tự nhiên, thuật giải [bằng mã giả - Pseudo Code, ngôn ngữ tựa Pascal], ngôn ngữ đại số tập hợp, đại số quan hệ hoặc bằng các phụ thuộc hàm 10 1.2. Các yếu tố của RBTV  Điều kiện của RBTV – Ví dụ:  Cho 1 CSDL quản lý hóa đơn bán hàng gồm các bảng sau:  HÓAĐƠN [Số-hóa-đơn, Số-mặt-hàng, Tổng-trị-giá].  DM_HÀNG [Mã-hàng, Tên-hàng, Đơn-vị-tính].  CHITIẾT-HĐ [Số-hóa-đơn, Mã-hàng, Số-lượng-đặt, Đơn- giá, Trị-giá]. 11 1.2. Các yếu tố của RBTV  Điều kiện của RBTV – Ví dụ:  R1 :“Mỗi hóa đơn có 1 Số hóa đơn riêng biệt, không trùng với hóa đơn khác”:  hđ1, hđ2  HÓAĐƠN, hđ1  hđ2  hđ1.Số-hóa- đơn  hđ2. Số-hóa-đơn.  R2 : “Số-mặt-hàng = số bộ của CHITIẾT_HĐ có cùng Số-hóa-đơn”:  hđ  HÓAĐƠN thì: hđ.Số-mặt-hàng = COUNT [cthđ  CHITIẾT_HĐ, cthđ.Số- hóa-đơn = hđ.Số-hóa-đơn] 12 1.2. Các yếu tố của RBTV  Điều kiện của RBTV – Ví dụ:  R3 : “Tổng các trị giá của các mặt hàng trong CHITIẾT_HĐ có cùng Số-hóa-đơn phải bằng Tổng- trị-giá ghi trong HÓAĐƠN”:  hđ  HÓAĐƠN thì: hđ.Tổng-trị-giá = SUM [cthđ.Trị-giá] đối với các cthđ  CHITIẾT_HĐ sao cho : cthđ. Số-hóa-đơn= hđ. Số-hóa-đơn. 13 1.2. Các yếu tố của RBTV  Điều kiện của RBTV – Ví dụ:  R4 : “Mỗi bộ của CHITIẾT_HĐ phải có mã hàng thuộc về danh mục hàng”: CHITIẾT_HĐ [Mã-hàng]  DM_HÀNG[Mã-hàng] cthđ  CHITIẾT_HĐ,  hh  DM_HÀNG, sao cho: cthđ.Mã-hàng=hh.Mã-hàng. 14 1.2. Các yếu tố của RBTV  Bối cảnh của RBTV:  Bối cảnh có thể định nghĩa trên một quan hệ cơ sở hay nhiều quan hệ cơ sở. Đó là những quan hệ mà RBTV được áp dụng trên đó 15 1.2. Các yếu tố của RBTV  Bối cảnh của RBTV – ví dụ:  Trong ví dụ trên, bối cảnh của các ràng buộc toàn vẹn như sau  R1 :chỉ là một quan hệ HÓAĐƠN  R2 : 2 quan hệ HÓAĐƠN và CHITIẾT_HĐ;  R3 : 2 quan hệ HÓAĐƠN và CHITIẾT_HĐ;  R4 : 2 quan hệ CHITIẾT_HĐ và DM_HÀNG. 16 1.2. Các yếu tố của RBTV  Tầm ảnh hưởng của RBTV:  Một RBTV có thể liên quan đến một số quan hệ, và chỉ khi có thao tác cập nhật [Thêm, Sửa, Xóa] mới có nguy cơ dẫn đến vi phạm RBTV, đo đó cần xác định rõ thao tác nào dẫn đến việc cần phải kiểm tra RBTV. 17 1.2. Các yếu tố của RBTV  Tầm ảnh hưởng của RBTV:  Trong quá trình phân tích, thiết kế một CSDL, người phân tích cần lập bảng xác định tầm ảnh hưởng cho mỗi ràng buộc toàn vẹn nhằm xác định khi nào thì phải tiến hành kiểm tra các ràng buộc toàn vẹn đó 18 1.2. Các yếu tố của RBTV  Bảng Tầm ảnh hưởng:  Bảng tầm ảnh hưởng gồm 4 cột: cột 1 chứa tên các bảng liên quan tới RBTV; 3 cột tiếp theo là thao tác Thêm / Sửa / Xóa 1 bộ giá trị  Nếu RBTV có nguy cơ bị vi phạm thì tại ô đó người ta đánh dấu bằng dấu cộng [+], và có thể chỉ rõ thêm các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm RBTV bằng cách liệt kê chúng dưới dấu [+]. 19 1.2. Các yếu tố của RBTV  Bảng Tầm ảnh hưởng [tt]:  Nếu RBTV không có nguy cơ bị vi phạm khi cập nhật CSDL thì đánh dấu trừ [-]  Nếu không bị vi phạm vì không được phép sửa đổi thì ký hiệu là trừ với dấu sao [ -[*] ]. 20 1.2. Các yếu tố của RBTV  Tầm ảnh hưởng của RBTV – ví dụ: Bảng tầm ảnh hưởng của R1 Quan heä Theâm Söûa Xoùa HOÙAÑÔN + - [*] [Soá-hoùa-ñôn] - Bảng tầm ảnh hưởng của R2 Quan heä Theâm Söûa Xoùa HOÙAÑÔN CHITIEÁT_HÑ + + + [Soá-maët-haøng] +[Soá-hoùa-ñôn] + + 21 1.2. Các yếu tố của RBTV  Tầm ảnh hưởng của RBTV – ví dụ: Bảng tầm ảnh hưởng của R3 Quan heä Theâm Söûa Xoùa HOÙAÑÔN CHITIEÁT_HÑ + + + [Toång-trò-giaù] + [Trò-giaù] + + Bảng tầm ảnh hưởng của R4 Quan heä Theâm Söûa Xoùa CHITIEÁT_HÑ DM_HAØNG +[Maõ-haøng] - - [*] - [*] - + 22 1.2. Các yếu tố của RBTV  Tầm ảnh hưởng của RBTV – ví dụ: Bảng tầm ảnh hưởng tổng hợp QH HOÙA-ÑÔN CHITIEÁT-HÑ DM_HAØNG RB T S X T S X T X S R1 + -[*] - R2 + + + + - + R3 + + + + + + R4 + -[*] - - -[*] + 23  DocGia[MaDG, TenDg]  Sach[MaS, TenS, MaLoai]  Loai[MaLoai, TenLoai]  PhieuMuon[SoPM, MaDG, NgayM]  CTMuon[SoPM, MaS, NgayT] 24 1.2. Các yếu tố của RBTV  Hành động khi RBTVï bị vi phạm: Hành động [phản ứng] gồm 2 phần -Thông báo: thông báo cho người dùng biết dữ liệu vi phạm RBTV nào và cần sửa lại như thế nào -Xử lý: Đưa ra phương án xử lý khi RBTV bị vi phạm, có thể từ chối thao tác hoặc tiếp tục cho hiệu chỉnh dữ liệu 25 1.2. Các yếu tố của RBTV  Hành động khi RBTVï bị vi phạm: Thông thường có 2 giải pháp:  Đưa ra thông báo và yêu cầu sửa chữa dữ liệu cho phù hợp với RBTV. Thông báo phải đầy đủ và tạo được sự thân thiện với người sử dụng. Giải pháp này là phù hợp cho việc xử lý thời gian thực.  Từ chối thao tác cập nhật. Giải pháp này là phù hợp đối với việc xử lý theo lô [Batch processing]. 26 2.Phân loại ràng buộc toàn vẹn 1. RBTV có bối cảnh là 1 bảng 1. RBTV về miền giá trị 2. RBTV liên thuộc tính 3. RBTV liên bộ 2. RBTV có bối cảnh là nhiều bảng 1. RBTV về phụ thuộc tồn tại 2. RBTV liên thuộc tính – liên quan hệ 3. RBTV liên bộ – liên quan hệ 4. RBTV do có chu trình 27 2.Phân loại ràng buộc toàn vẹn RBTV về miền giá trị  Trong hầu hết các CSDL quan hệ, loại RBTV này là rất phổ biến.  Mỗi thuộc tính được đặc trưng không chỉ bởi kiểu giá trị, mà còn bị giới hạn bởi miền giá trị trong kiểu dữ liệu đó.  Do đó, khi thực hiện các thao tác cập nhật [thêm, xóa, sửa] cho quan hệ đều phải kiểm tra RBTV này. 28 2.Phân loại ràng buộc toàn vẹn RBTV về miền giá trị – ví dụ:  Trong quan hệ KQUẢ-THI[MASV, MAMH, LANTHI, DIEM], do quy định mỗi sinh viên chỉ được thi 1 môn tối đa 3 lần, và điểm thi của môn học trong mọi lần thi không bị âm và không vượt quá 10. Có 2 RBTV về miền giá trị trong quan hệ:  R1: kq KQUẢ-THI thì 0  kq.Lầnthi  3  R2: kq KQUẢ-THI thì 0  kq.Điểm  10 29 2.Phân loại ràng buộc toàn vẹn RBTV liên thuộc tính  Đó là loại RBTV có liên quan tới nhiều thuộc tính của một quan hệ.  Thông thường đó là các phụ thuộc tính toán, hoặc một suy diễn từ giá trị của một hay nhiều thuộc tính trong cùng một bộ giá trị 30 2.Phân loại ràng buộc toàn vẹn RBTV liên thuộc tính-ví dụ  Trong Quan hệ CHITIẾT_HĐ trên, có RBTV liên thuộc tính là: cthđ  CHITIẾT_HĐ / cthđ.Trị-giá = cthđ.Số- lượng-đặt * cthđ.Đơn-giá  Quan hệ NHANVIEN [Mã-NV, Họ-tên, phai, Ngày- sinh, Ngày-TD, Hệ-số-lương] Với quy định 18 tuổi trở lên mới được tuyển. Ta có RBTV liên thuộc tính sau: nv  NHANVIEN / Year[nv.Ngay-TD] – Year[nv.Ngay-sinh]  18 31 2.Phân loại ràng buộc toàn vẹn RBTV liên bộ  Đây là loại RBTV có liên quan tới nhiều bộ và có thể tới nhiều thuộc tính của [các] bộ giá trị trong một quan hệ. Ví dụ:  Mã số sinh viên không được trùng nhau  Điểm thi lần sau > lần trước:kq KQUẢ-THI Nếu kq.Lần-thi = 1 thì 0  kq.Điểm  10 hoặc: Nếu kq.Lần thi > 1 thì kq’ KQUẢ-THI Sao cho kq’.Lần-thi = kq.Lần-thi - 1 và kq.Điểm  kq’.Điểm 32 2.Phân loại ràng buộc toàn vẹn RBTV về phụ thuộc – tồn tại  RBTV về phụ thuộc tồn tại còn được gọi là phụ thuộc về khóa ngoại. Đây là loại RBTV phổ biến trong các CSDL.  Bộ giá trị của quan hệ này được thêm vào một cách hợp lệ nếu tồn tại một bản ghi tương ứng của 1 quan hệ khác.  Phụ thuộc tồn tại xảy ra nếu có một trong hai trường hợp sau:  Có sự hiện diện của khóa ngoại.  Có sự lồng khóa giữa các quan hệ. 33 2.Phân loại ràng buộc toàn vẹn RBTV về phụ thuộc – tồn tại  Ví dụ:  Mỗi sinh viên phải thuộc 1 lớp  Mỗi lớp phải thuộc 1 khoa  Mỗi Điểm phải của 1 sinh viên, 1 môn  Mỗi nhân viên phải thuộc 1 phòng  Mỗi Mã-hàng trong Chitiết-HĐ phải tồn tại trong quan hệ Hàng-hóa  Mỗi Số-hóa-đơn trong Chitiết-HĐ phải tồn tại trong quan hệ Hóa-Đơn 34 2.Phân loại ràng buộc toàn vẹn RBTV liên thuộc tính – liên quan hệ: Một thuộc tính trong 1 quan hệ này có mối liên hệ với 1 thuộc tính trong 1 quan hệ khác. Ví dụ:  Ngày giao hàng phải sau ngày đặt Hóađơn.Ngày-giao >= Đặthàng. Ngày-đặt  Trưởng phòng phải từ 40 tuổi trở lên Year[NgayNhChuc] – Year[Ngsinh] >= 40 35 2.Phân loại ràng buộc toàn vẹn RBTV liên bộ – liên quan hệ: Một thuộc tính của quan hệ này có mối liên hệ với các bộ của 1 quan hệ khác. Ví dụ:  Mỗi giáo viên phải dạy ít nhất 1 lớp  Hóađơn.Sốmặthàng = số bộ của Chitiết-HĐ có cùng số hóa đơn  Mỗi phiếu mượn chỉ được mượn tối đa 3 quyển sách. 36 2.Phân loại ràng buộc toàn vẹn RBTV do có chu trình  Biểu diễn cấu trúc CSDL dưới dạng đồ thị như sau: Mỗi nút của đồ thị biểu diễn 1 quan hệ hoặc 1 thuộc tính.  Quan hệ được biểu diễn bằng nút tròn trắng []  Thuộc tính được biểu diễn bởi một nút tròn đen nhỏ hơn [].  Các nút được chỉ rõ bằng tên của quan hệ hoặc thuộc tính. Thuộc tính thuộc một quan hệ được biểu diễn bởi một cung nối giữa nút tròn trắng và nút tròn đen đó. 37 2.Phân loại ràng buộc toàn vẹn RBTV do có chu trình Nếu trên đồ thị, ta thấy xuất hiện 1 đường khép kín thì ta nói rằng trong lược đồ CSDL có sự hiện diện của chu trình. Sự hiện diện này làm nảy sinh một vấn đề mới: Xác định khả năng đảm bảo tính nhất quán của dữ liệu, đó là một RBTV, do sự hiện diện của chu trình. 38 2.Phân loại ràng buộc toàn vẹn RBTV do có chu trình Ví dụ:  Q1 [Mã-nhân-viên, Mã-phòng]  Q2 [Mã-phòng, Mã-đề-án]  Q3 [Mã-đề-án, Tên-đề-án]  Q4 [Mã-đề-án, Mã-nhân-viên] 39 2.Phân loại ràng buộc toàn vẹn  Giả thiết 1: Với tân từ sau: Mỗi nhân viên được phân công vào tất cả các đề án do phòng đó phụ trách.  2 con đường mang ý nghĩa giống nhau. Đường dài hơn Q1 kết nối với Q2 [ký hiệu là Q1 I>

Chủ Đề