Blog & Event
4 phút đọc

Phân Biệt Surrogate Key Và Nutural Key

Trong quá trình làm việc với các Data Table, chúng ta tiếp xúc rất nhiều với Primary Key. Cột thông tin Primary Key dùng để định danh mỗi bản ghi trong bảng hoặc thiết lập mối quan hệ với nhiều bảng. Surrogate Key và Nutural Key có thể coi là 2 dạng Primary Key khác nhau, dùng cho nhiều mục đích khác nhau.

Surrogate key

Surrogate key là một giá trị do hệ thống tạo ra, không mang ý nghĩa kinh doanh nhưng được sử dụng để xác định bản ghi duy nhất trong bảng. Bản thân khóa có thể được tạo thành từ một hoặc nhiều cột. Sơ đồ sau đây hiển thị một ví dụ về bảng có Surrogate key (cột AddressID) cùng với một số dữ liệu mẫu. Lưu ý rằng key không có ý nghĩa kinh doanh, key chỉ đóng vai trò là một số nguyên.

Natural key

Natural key là một cột hoặc tập hợp các cột đã tồn tại trong bảng (ví dụ, chúng là thuộc tính của thực thể trong mô hình dữ liệu) và xác định duy nhất một bản ghi trong bảng. Vì các cột này là thuộc tính của thực thể nên rõ ràng chúng có ý nghĩa kinh doanh. Sau đây là ví dụ về bảng có Natural key (cột SSN) cùng với một số dữ liệu mẫu. Lưu ý rằng khóa cho dữ liệu trong bảng này có ý nghĩa kinh doanh.

Ưu điểm của Natural key

  • Các giá trị khóa có ý nghĩa kinh doanh và có thể được sử dụng làm khóa tìm kiếm khi truy vấn bảng
  • Các cột và chỉ mục khóa chính đã tồn tại sẵn nên không cần thêm dung lượng đĩa cho cột/chỉ mục bổ sung sẽ được sử dụng bởi cột Surrogate key

Nhược điểm của Natural key

  • Có thể cần thay đổi/làm lại key nếu yêu cầu kinh doanh thay đổi. Ví dụ: nếu bạn đã sử dụng SSN cho nhân viên của mình và công ty của bạn mở rộng ra bên ngoài Hoa Kỳ thì không phải tất cả nhân viên đều có SSN nên bạn sẽ phải tìm ra khóa mới cho bảng cơ sở dữ liệu của mình.
  • Khó duy trì hơn nếu khóa yêu cầu nhiều cột. Việc xử lý một cột chính được tạo chỉ bằng một cột sẽ dễ dàng hơn nhiều.
  • Hiệu suất kém hơn vì giá trị khóa thường lớn hơn và/hoặc được tạo thành từ nhiều cột.
  • Không thể nhập bản ghi cho đến khi biết giá trị khóa.
  • Đôi khi có thể khó chọn một Natural key tốt. Có thể có nhiều key để chọn, mỗi key có sự đánh đổi riêng khi nói đến thiết kế hoặc hiệu suất.

Ưu điểm của Surrogate key

  • Khóa không có ý nghĩa kinh doanh nên không có thay đổi nào dựa trên yêu cầu kinh doanh.
  • Hiệu suất tốt hơn vì giá trị khóa nhỏ hơn.
  • Surrogate key được đảm bảo là duy nhất.

Nhược điểm của Surrogate key

  • Các cột/chỉ mục bổ sung cho Surrogate key sẽ yêu cầu thêm dung lượng ổ đĩa
  • Yêu cầu nhiều phép nối hơn với các bảng con vì dữ liệu tự nó không có ý nghĩa gì.
  • Không thể sử dụng giá trị khóa thay thế làm khóa tìm kiếm

Mastering Data Analytics hân hạnh cùng bạn đồng hành trong ngành Data. Các lớp Business Intelligence được tổ chức khai giảng hàng tháng. Truy cập Khóa học Business Intelligence để cập nhật thời gian khai giảng khóa mới nhất nhé. Bạn cũng đừng quên follow Fanpage Mastering Data Analytics để nhận nhiều kiến thức bổ ích về Data mỗi ngày nhé! Nếu có thắc mắc về khóa học, gọi đến hotline 0961486648 để được giải đáp trực tiếp và nhanh nhất.