Toàn vẹn tham chiếu

Nhập môn Cơ sở dữ liệu quan hệ bằng SQL

Timo Grossenbacher

Data Journalist

Toàn vẹn tham chiếu

  • Bản ghi tham chiếu bảng khác phải trỏ đến bản ghi tồn tại trong bảng đó
  • Xác định giữa hai bảng
  • Thực thi qua khóa ngoại
Nhập môn Cơ sở dữ liệu quan hệ bằng SQL

Vi phạm toàn vẹn tham chiếu

Toàn vẹn tham chiếu từ bảng A đến bảng B bị vi phạm...

  • ...nếu bản ghi ở bảng B bị xóa trong khi được bản ghi ở bảng A tham chiếu.
  • ...nếu chèn vào bảng A một bản ghi tham chiếu đến bản ghi không tồn tại ở bảng B.
  • Khóa ngoại ngăn chặn các vi phạm!
Nhập môn Cơ sở dữ liệu quan hệ bằng SQL

Xử lý vi phạm

CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE NO ACTION
);
CREATE TABLE a (
 id integer PRIMARY KEY,
 column_a varchar(64), 
 ...,
 b_id integer REFERENCES b (id) ON DELETE CASCADE
);
Nhập môn Cơ sở dữ liệu quan hệ bằng SQL

Xử lý vi phạm (tiếp)

ON DELETE...

  • ...NO ACTION: Báo lỗi
  • ...CASCADE: Xóa tất cả bản ghi tham chiếu
  • ...RESTRICT: Báo lỗi
  • ...SET NULL: Gán cột tham chiếu thành NULL
  • ...SET DEFAULT: Gán cột tham chiếu về giá trị mặc định
Nhập môn Cơ sở dữ liệu quan hệ bằng SQL

Hãy xem một số ví dụ!

Nhập môn Cơ sở dữ liệu quan hệ bằng SQL

Preparing Video For Download...