KHÓA CHÍNH, KHÓA NGOẠI VÀ RÀNG BUỘC DỮ LIỆU

Khóa chính, khóa ngoại và ràng buộc dữ liệu

1-  Khóa chính (hay ràng buộc khóa chính) được sử dụng để định danh duy nhất mỗi record trong table của cơ sở dữ liệu.

Dữ liệu (value) của field khóa chính phải có tính duy nhất (unique). Và không chứa các giá trị Null.

Mỗi table nên chỉ có một khóa chính, khóa chính có thể tạo ra từ nhiều field của table.

2- Khóa ngoại của một table được xem như con trỏ trỏ tới khóa chính của table khác.

Để các dữ liệu được không gây xung đột với nhau thì phải thỏa mãn một số ràng buộc và các giới hạn nhất định, và cái này được 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.

3- Ràng buộc toàn vẹn (RBTV) là một điều kiện được định nghĩa trên một hay nhiều quan hệ khác nhau. Các RBTV là những điều kiện bất biến mà mọi thể hiện của quan hệ đều phải thỏa ở bất kỳ thời điểm nào.

Lý do phải có RBTV:

-> Bảo đảm tính kết dính của các thành phần cấu tạo nên CSDL.

-> Bảo đảm tính nhất quán của dữ liệu.

-> Bảo đảm CSDL luôn biểu diễn đúng ngữ nghĩa thực tế.

Các yếu tố của RBTV:

Bối cảnh: là những quan hệ có khả năng àm cho RBTV bị vi phạm.

Nội dung: phát biểu bằng ngôn ngữ hình hức (phép tính quan hệ, đại số quan hệ, mã iả,…)

Tầm ảnh hưởng: là bảng 2 chiều, xác định tác thao tác ảnh hưởng. Các ký hiệu được dùng trong bảng: 

  • Ký hiệu + : có thể gây ra vi phạm trên RBTV
  • Ký hiệu – : không thể ra gây vi phạm trên RBTV
  • Ký hiệu +(A) :  có thể gây ra vi phạm RBTV khi thao tác trên thuộc tính A
  • Ký hiệu -(*) :  không thể gây ra vi phạm RBTV do thao tác không thực hiện được .

Phân loại ràng buộc toàn vẹn:

Ràng buộc có bối cảnh trên một quan hệ:

  • -Miền giá trị của thuộc tính
  • – Liên thuộc tính
  • – Liên bộ

Ràng buộc bối cảnh gồm nhiều quan hệ:

  • RBTV phụ thuộc tồn tại
  • RBTV liên bộ, liên quan hệ
  • RBTV liên thuộc tính, liên quan hệ

Ràng buộc toàn vẹn có chu trình.

Đầu tiên chúng ta sẽ nói về RBTV miền giá trị của thuộc tính.

RBTV miền giá trị của thuộc tính là ràng buộc về quy định cho giá trị của thuộc tính để nó hợp lệ.

Ví dụ như bảng HOCSINH(MSSV, Ten, GT, NGAYSINH) thì ta có RBTV miền giá trị của Diemthi là giá trị từ 0 đến 10.

Bối cảnh: HOCSINH.

Quan hệ đại số: t ∈ HOCSINH(t.GT IN {“NAM”, “NỮ”})

Bảng tầm ảnh hưởng:

THÊM SỬA XÓA
HOCSINH + +(GT)

Tiếp theo là về RBTV liên thuộc tính.

RBTV liên thuộc tính là ràng buộc cá thuộc tính cùng một quan hệ.

Ví dụ:  DEAN(MaDA, TenDA, NgayBDDA, NgayKTDA)

NgayBDDA phải bé hơn hoặc bằng NgayKTDA.

Quan hệ đại số:

d ∈ DEAN (d.NgayBDDA <= d.NgayKTDA).

Bối cảnh: quan hệ DEAN.

Bảng tầm ảnh hưởng:

Thêm Sửa Xóa
DEAN + +(NgayBDDA, NgayKTDA)

Sau RBTV liên thuộc tính, chúng ta có RBTV liên bộ.

RBTV liên bộ là ràng buộc giữa các bộ (hay còn hiểu là dòng dữ liệu) trên cùng một quan hệ.

Ví dụ: HOCVIEN(MAHV, TEN, NGAYSINH)

Ta có, mỗi học viên có một mã số riêng biệt.

Quan hệ đại số:

t1, t2 ∈ HOCVIEN (t1.MAHV ≠ t2.MAHV).

Bối cảnh:  quan hệ HOCVIEN

Bảng tầm ảnh hưởng:

THÊM SỬA  XÓA
HOCVIEN +(MAHV) -(*)

Kế đến ta đến với RBTV phụ thuộc tồn tại hay còn được gọi là RBTV phụ thuộc tham chiếu và có thêm motộ tên khác là ràng buộc khóa ngoại.

Ví dụ: PHONGBAN (MAPH, TENPH, TRPH, NGNC)

NHANVIEN (MANV, HOTEN, NTNS, PHAI, MA_NQL, MAPH, LUONG) 

Ta có, mỗi trưởng phòng phải là một nhân viên trong công ty.

Quan hệ đại số:

p ∈  PHONGBAN, n ∈ NHANVIEN(p.TRPH = N.MANV)

Bối cảnh: NHANVIEN, PHONGBAN

Bảng tầm ảnh hưởng:

THÊM SỬA XÓA
PHONGBAN + +(TRPH)
NHANVIEN -(*) +

Cuối cùng ta có ràng buộc liên thuộc tính liên quan hệ:

RBTV liên thuộc tính, liên quan hệ là ràng buộc mà giá trị thuộc tính của một bộ trên quan hệ R có liên quan đến giá trị của thuộc tính của một bộ trên quan hệ S.

Ví dụ: DEAN(MaDA, TenDA, NgayBDDA, NgayKTDA)

PHANCONG(MaDA, MaNV, CongViec, NgayBDCV)

Ta có, NgayBDDA phải bé hơn hoặc bằng NgayBDCV.

Quan hệ đại số:

g ∈  PHANCONG, ! d ∈ DEAN

(d.MaDA = g.MaDA ∧ d.NgayBDDA <=  g.NgayBDCV).

Bối cảnh: PHANCONG, DEAN.

Bảng tầm ảnh hưởng:

Đăng nhận xét

Mới hơn Cũ hơn