Liên kết khoá ngoại và khoá chính

Bởi Kiên Smart Data
0 Nhận xét

Mục đích của việc liên kết khoá ngoại và khoá chính giữa 2 bảng có tác dụng đảm bảo độ chính xác và toàn vẹn thông tin lẫn nhau giữa 2 bảng.

Giải thích

Trong thực tế, các loại thông tin khác nhau không được lưu trữ cùng chung 1 bảng mà sẽ được phân tách thành nhiều bảng để tiện cho việc quản lý. Ví dụ, thông tin khách hàng và lịch sử giao dịch của 1 ngân hàng sẽ được lưu trữ thành 2 bảng riêng biệt mục đích là quản lý thông tin của khách hàng 1 cách độc lập và tăng tốc độ truy xuất dữ liệu khi cần tra cứu.

Sơ lược về đặc điểm từng khoá

Khoá chính:

Đặc điểm của khoá chính là dữ liệu trong cột phải là duy nhất tức là không có sự trùng lặp lẫn nhau của dữ liệu. Thông thường khoá chính sẽ được gán cho cột có dữ liệu là đặc điểm nhận dạng của từng chủ thể, ví dụ: Số căn cước công dân, mã nhân viên, mã sản phẩm… để chắc chắn rằng sẽ không có sự trùng lặp giữa các dữ liệu này.

Ví dụ: trong bảng NHÂN_VIÊN, cột [Mã_Nhân_Viên] sẽ không có mã nhân viên ‘abc001’ nào được lặp lại 2 lần.

Ngoài ra, có thể tạo được khoá chính chứa nhiều trường dữ liệu. Ví dụ: có kết hợp 2 trường [Mã_Nhân_Viên] và [Tên_Nhân_Viên] để tạo thành 1 khoá chính duy nhất bằng cú pháp:

CREATE TABLE NHÂN_VIÊN ( Mã_Nhân_Viên VARCHAR(15), Tên_Nhân_Viên NVARCHAR (30), Số_Điện_Thoại VARCHAR(11), Số_CMND_CCCD VARCHAR(20), Địa_Chỉ NVARCHAR(50), CONSTRAINT NHANVIEN_PK PRIMARY KEY (Mã_Nhân_Viên,Tên_Nhân_Viên));

Khoá ngoại

Đặc điểm của khoá ngoại cũng là chứa dữ liệu có đặc điểm nhận dạng của từng chủ thể nhưng có thể lặp lại nhiều lần. Khoá ngoại trong 1 bảng sẽ được gán cho cột có sử dụng thông tin nào đó của 1 bảng mà thông tin đó là khoá chính của 1 bảng đó.

Ví dụ: Trong bảng CHẤM_CÔNG sẽ chứa trường dữ liệu [Mã_Nhân_Viên] và trường này sẽ lặp lại rất nhiều lần nhưng mục đích cũng là để phân biệt được thông tin của từng nhân viên.

Liên kết khoá ngoại và khoá chính giữa 2 bảng.

Như vậy trong 2 ví dụ của khoá ngoại và khoá chính trên, ta thấy được sự liên kết giữa khoá ngoại của bảng CHẤM_CÔNG và khoá chính của bảng NHÂN_VIÊN. Từ đó rút ra kết luận, khoá ngoại của 1 bảng phải liên kết với khoá chính của một bảng nếu có sự liên kết dữ liệu của 2 trường đó giữa 2 bảng.

Ngoài ra, có thể liên kết khoá ngoại của 1 bảng với 1 trường trong khoá chính có nhiều trường.

Ví dụ: trong bảng NHÂN_VIÊN sau khi tạo khoá chính 2 trường như trên, ta vẫn có thể liên kết khoá ngoại [Mã_Nhân_Viên] của bảng CHẤM_CÔNG với trường khoá chính [Mã_Nhân_Viên] nằm trong khoá chính NHANVIEN_PK gồm 2 trường.

Kết Luận

Thông qua bài viết này, SmartData mong muốn có thể giúp các bạn hiểu rõ hơn về cách thức liên kết khoá ngoại và khoá chính cũng như có thể áp dụng kiến thức này vào trong thực tiễn.

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data