Rbtv là gì

Các yếu tố của ràng buộc toàn vẹn

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ó 3 yếu tố: điều kiện, bối cảnh và tầm ảnh hưởng.

i Điều kiệ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, thuật giải, ngôn ngữ đại số tập hợp, đại số quan hệ,… 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. Chẳng hạn, với lược đồ quan hệ SV thì có một ràng buộc toàn vẹn như sau:

Với r là một quan hệ của Sv ta có ràng buộc toàn vẹn sau

" t1,t2 Îr

   t1.MASV  ¹ t2.MASV

cuối  r

ii Bối cảnh

Bối cảnh của một 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  ràng buộc toàn vẹn. 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ệ. Chẳng hạn với ràng buộc toàn vẹn trên thì bối cảnh là một quan hệ Sv

iii 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 các ràng buộc toàn vẹn đó. Các thời điểm cần phải kiểm tra RBTV chính là những thời điểm cập nhật dữ liệu  (thêm

/sửa/ xóa)

Một bảng tâm ảnh hưởng của một RBTV có dạng sau:

TÊN RBTV

THÊM(T)

SỬA (S_

XÓA (X)

r1

+

-

-

r2

...

...

...

...

...

...

...

...

rn

Bảng này chứa toàn các ký hiệu +  hoặc –

Chẳng hạn +   tại ô tương ứng với dòng r1, cột thêm thì có nghĩa là khi thêm một bộ vào quan hệ r1thì cần phải kiểm tra RBTV

Dấu - Tại ô tương ứng với dòng r1, cột sửa thì có nghĩa là khi sửa một bộ trên quan hệ r1 thì không cần phải kiểm tra RBTV này,…


Số lượt truy cập: 6715671

Như các bạn đã biết, một CSDL quan hệ có thể gồm nhiều quan hệ khác nhau và các bộ trong các quan hệ có thể liên hệ với nhau theo một số cách nào đó.

Tuy nhiên, để các liên hệ đó được “thuận tiện” và không gây xung đột thì các CSDL phải thoã mãn một số ràng buộc và các giới hạn nhất định – gọi chung là các ràng buộc để đảm bảo tính hợp lý và nhất quán của các giá trị trong CSDL.

Rbtv là gì

Các ràng buộc có thể tồn tại giữa các thuộc tính hoặc các bộ dữ liệu và đồng thời, các bộ của các quan hệ từ một lược đồ CSDL phải thoả mãn các ràng buộc ở bất kì thời điểm nào.

1. Các loại ràng buộc

Ràng buộc ngầm định: Là các ràng buộc liên quan đến tính chất của một quan hệ như:

  • Giá trị các thuộc tính phải là nguyên tố
  • Không được phép có hai bộ giống nhau trong cùng một quan hệ
  • Thứ tự các bộ trong một quan hệ là không quan trọng,…

Ràng buộc dựa trên ứng dụng: Là ràng buộc liên quan đến ngữ nghĩa và hành vi (behavior) của các thuộc tính. Loại ràng buộc này khó mô tả trong mô hình dữ liệu và chỉ được kiểm tra trong quá trình cập nhật dữ liệu dựa trên nền tảng ứng dụng đã được lập trình.

Ràng buộc dựa trên lược đồ: Là ràng buộc có thể mô tả trực tiếp trong lược đồ của mô hình dữ liệu. Loại ràng buộc này được mô tả bằng ngôn ngữ DDL bao gồm các ràng buộc về:

  • Miền giá trị (domain constraint)
  • Khoá (key constraint)
  • Các giá trị NULL
  • Toàn vẹn thực thể (entity integrity constraint)
  • Toàn vẹn tham chiếu (referential integrity constraint)

Ràng buộc dựa trên lược đồ có thể liên quan đến nhiều quan hệ hoặc trong phạm vi chỉ một quan hệ. Nếu phạm vi chỉ là một quan hệ:

  • Miền giá trị (domain constraint)
  • Khoá (key constraint)
  • Các giá trị NULL
  • Toàn vẹn thực thể (entity integrity constraint)

Phạm vi liên quan đến nhiều quan hệ:

  • Toàn vẹn tham chiếu (referential integrity constraint)
  • Các ràng buộc khác

Ràng buộc miền giá trị: Là loại ràng buộc về giá trị của một thuộc tính xác định nào đó trong một quan hệ cụ thể. Ràng buộc này có thể áp dụng lên một thuộc tính hoặc một nhóm các thuộc tính tự ràng buộc lẫn nhau về giá trị.

Ví dụ: 0 <= điểm <= 10 hoặc 1 <= tháng <= 12

Hay một quan hệ TRASACH có thuộc tính ngayMuonngayTra: ngayMuon <= ngayTra

Ràng buộc về khoá: Thường được biểu diễn bằng các phụ thuộc hàm, là một loại ràng buộc liên bộ phổ biến xác lập sự tồn tại duy nhất của các bộ trong một quan hệ.

Ví dụ: Hai bộ phân biệt của cùng quan hệ không thể có thuộc tính khoá trùng nhau.  Mỗi sinh viên có mã số duy nhất, …

Ràng buộc về giá trị NULL: Ràng buộc này cho biết một thuộc tính có thể nhận giá trị NULL hay không.
Ví dụ:

 - Nếu mỗi bộ của quan hệ SINH VIÊN bắt buộc phải hợp lệ thì thuộc tính tên sinh viên không được phép NULL. Vì vậy tên sinh viên được ràng buộc là NOT NULL.

- Nhưng nếu xét quan hệ KHÁCH HÀNG(id, hoten, dienthoai, tuoi, diachi, luong) thì thuộc tính tuổi và luong có thể ràng buộc là NULL.

Ràng buộc toàn vẹn thực thể: Kiểm tra rằng khoá chính không thể mang giá trị NULL hay nói cách khác – các khoá chính được sử dụng để xác định các bộ trong một quan hệ. Nếu có bất cứ khoá chính nào mang giá trị NULL thì các bộ tương ứng đó sẽ không thể xác định được.

Ví dụ: Nếu có hai hoặc nhiều bộ có khoá chính mang giá trị NULL => thể không thể phân biệt chúng nếu tham khảo chúng từ các quan hệ khác.

Ràng buộc toàn vẹn tham chiếu: Được quy định giữa hai quan hệ và dựa trên ràng buộc thực thể, được sử dụng để duy trì sự thống nhất / nhất quán giữa các bộ trong hai quan hệ. Ràng buộc này được thể hiện qua khái niệm khoá ngoại hay còn gọi là ràng buộc toàn vẹn về khoá ngoại.

Ví dụ: Xét 2 quan hệ bên dưới

Rbtv là gì

Một số ràng buộc khác:

  • RBTV liên thuộc tính giữa nhiều quan hệ
  • RBTV liên bộ giữa các bộ trong các quan hệ
  • RBTV về thuộc tính tổng hợp
> Trong các khóa học LẬP TRÌNH WEB VỚI JAVA, LẬP TRÌNH WEB VỚI PHP cũng như các khóa học khác tại NIIT - ICT Hà Nội, bạn sẽ được hướng dẫn rõ hơn về các ràng buộc này khi làm đồ án (Thường là làm 2 đồ án lớn).

2. Sự tương thông giữa các quan hệ

Sự tương thông giữa các quan hệ là mối liên hệ giữa các quan hệ trong cùng một cơ sở dữ liệu. Dựa vào sự tương thông này, bạn có thể truy xuất các thuộc tính dữ liệu cần thiết từ các quan hệ mà không cần phải xét hết các quan hệ.

Chẳng hạn, ta có lược đồ CSDL như sau:

SINHVIEN (MASV, hoten, namsinh, diachi, #ML)
LOP (ML, tenlop)
MONHOC (MM, tenmon, TC, LT, TH)
DIEM (#MASV, #MM, hk, nk, diem)
GIAOVIEN (MAGV, hotenGv, namsinhGv, diachiGv)
DAY (#MAGV, #MM, hk, nk)

Ta có thể thấy, trong lược đồ CSDL trên có các ràng buộc tham chiếu giữa MSSV giữa hai quan hệ SINHVIEN và DIEM, ML giữa SINHVIEN và LOP, MM giữa MONHOC và DAY, MAGV giữa GIAOVIEN và DAY.

Vậy sự tương thông dữ liệu nằm ở đâu? Đó chính là thông qua các ràng buộc tham chiếu mà ta vừa liệt kê ra.

Ví dụ: Tìm điểm môn CSDL của sinh viên Trương Vô Kỵ

Rbtv là gì

Tổng kết

Tóm lại, ràng buộc là thứ không thể thiếu trong việc thiết kế và vận hành một CSDL trong thực tế. Ràng buộc là kiến thức tiên quyết để bắt đầu xây dựng một CSDL nhất quán và logic để đáp ứng được các nhu cầu khách hàng trong xây dựng và phát triển phần mềm.

Mặc dù, nội dung bài viết chỉ giúp các bạn làm quen với mô hình quan hệ - nhưng bạn hãy đọc lại 2 bài vừa rồi vài lần, nắm vững kiến thức này rồi chuyển qua học cách câu lệnh truy vấn SQL để đảm bảo bạn hiểu sâu về CSDL.

Nó rất quan trọng khi thiết kế CSDL để lập trình web, lập trình ứng dụng đó.

---

HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI

Học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!

Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội

SĐT: 02435574074 - 0914939543

Email:

Fanpage: https://facebook.com/NIIT.ICT/

#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python