Khóa DBMS: Các loại khóa ứng viên, siêu, chính, khóa ngoài có ví dụ
Khóa trong DBMS là gì?
TỪ KHÓA trong DBMS là một thuộc tính hoặc tập hợp các thuộc tính giúp bạn xác định một hàng (bộ) trong một mối quan hệ (bảng). Chúng cho phép bạn tìm mối quan hệ giữa hai bảng. Khóa giúp bạn xác định duy nhất một hàng trong bảng bằng cách kết hợp một hoặc nhiều cột trong bảng đó. Khóa cũng hữu ích để tìm bản ghi hoặc hàng duy nhất trong bảng. Khóa cơ sở dữ liệu cũng hữu ích để tìm bản ghi hoặc hàng duy nhất từ bảng.
Ví dụ:
Mã hiệu công nhân | Tên đầu tiên | Họ |
---|---|---|
11 | Andrew | Johnson |
22 | Tom | Gỗ |
33 | Alex | Mạnh khỏe |
Trong ví dụ nêu trên, ID nhân viên là khóa chính vì nó xác định duy nhất một bản ghi nhân viên. Trong bảng này, không nhân viên nào khác có thể có cùng ID nhân viên.
Tại sao chúng ta cần Chìa khóa?
Dưới đây là một số lý do nên sử dụng khóa sql trong hệ thống DBMS.
- Các phím giúp bạn xác định bất kỳ hàng dữ liệu nào trong bảng. Trong ứng dụng thực tế, một bảng có thể chứa hàng nghìn bản ghi. Hơn nữa, các hồ sơ có thể được nhân đôi. Các khóa trong RDBMS đảm bảo rằng bạn có thể xác định duy nhất một bản ghi bảng bất chấp những thách thức này.
- Cho phép bạn thiết lập mối quan hệ và xác định mối quan hệ giữa các bảng
- Giúp bạn thực thi danh tính và tính toàn vẹn trong mối quan hệ.
Các loại khóa trong DBMS (Hệ thống quản lý cơ sở dữ liệu)
Chủ yếu có tám loại Khóa khác nhau trong DBMS và mỗi khóa có chức năng khác nhau:
- Siêu chìa khóa
- Khóa chính
- Chìa khóa ứng viên
- Khóa thay thế
- chính nước ngoài
- Khóa ghép
- Tổ hợp phím
- Phím thay thế
Hãy xem xét từng khóa trong DBMS bằng ví dụ:
- Siêu chìa khóa – Siêu khóa là một nhóm gồm một hoặc nhiều khóa xác định các hàng trong bảng.
- Khóa chính - là một cột hoặc nhóm cột trong bảng xác định duy nhất mỗi hàng trong bảng đó.
- Khóa ứng viên – là tập hợp các thuộc tính xác định duy nhất các bộ dữ liệu trong một bảng. Khóa ứng viên là một siêu khóa không có thuộc tính lặp lại.
- Khóa thay thế – là một cột hoặc nhóm cột trong bảng xác định duy nhất mỗi hàng trong bảng đó.
- Khóa ngoại – là một cột tạo mối quan hệ giữa hai bảng. Mục đích của khóa ngoại là duy trì tính toàn vẹn dữ liệu và cho phép điều hướng giữa hai phiên bản khác nhau của một thực thể.
- Khóa tổng hợp – có hai hoặc nhiều thuộc tính cho phép bạn nhận dạng duy nhất một bản ghi cụ thể. Có thể mỗi cột không phải là duy nhất trong cơ sở dữ liệu.
- Tổ hợp phím - là sự kết hợp của hai hoặc nhiều cột xác định duy nhất các hàng trong bảng. Sự kết hợp của các cột đảm bảo tính duy nhất, mặc dù tính duy nhất của từng cột không được đảm bảo.
- Phím thay thế - Khóa nhân tạo nhằm mục đích xác định duy nhất từng bản ghi được gọi là khóa thay thế. Những loại khóa này là duy nhất vì chúng được tạo khi bạn không có bất kỳ khóa chính tự nhiên nào.
Siêu chìa khóa là gì?
Siêu khóa là một nhóm gồm một hoặc nhiều khóa xác định các hàng trong bảng. Siêu khóa có thể có các thuộc tính bổ sung không cần thiết để nhận dạng duy nhất.
Ví dụ:
EmpSSN | EmpNum | tên emp |
---|---|---|
9812345098 | AB05 | Cho xem |
9876512345 | AB06 | Roslyn |
199937890 | AB07 | James |
Trong ví dụ nêu trên, tên EmpSSN và EmpNum là siêu khóa.
Khóa chính là gì?
KHÓA CHÍNH in DBMS là một cột hoặc nhóm cột trong bảng xác định duy nhất mỗi hàng trong bảng đó. Khóa chính không được trùng lặp, nghĩa là cùng một giá trị không thể xuất hiện nhiều lần trong bảng. Một bảng không thể có nhiều hơn một khóa chính.
Quy tắc xác định khóa chính:
- Hai hàng không thể có cùng giá trị khóa chính
- Mỗi hàng phải có một giá trị khóa chính.
- Trường khóa chính không thể rỗng.
- Giá trị trong cột khóa chính không bao giờ có thể được sửa đổi hoặc cập nhật nếu bất kỳ khóa ngoại nào tham chiếu đến khóa chính đó.
Ví dụ:
Trong ví dụ sau, StudID
là Khóa chính.
Mã sinh viên | Cuộn không | Tên | Họ | |
---|---|---|---|---|
1 | 11 | Tom | Giá cả | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
Khóa thay thế là gì?
PHÍM THAY THẾ là một cột hoặc nhóm cột trong bảng xác định duy nhất mỗi hàng trong bảng đó. Một bảng có thể có nhiều lựa chọn cho khóa chính nhưng chỉ có thể đặt một lựa chọn làm khóa chính. Tất cả các khóa không phải là khóa chính được gọi là Khóa thay thế.
Ví dụ:
Trong bảng này, StudID, Roll No, Email đủ điều kiện để trở thành khóa chính. Nhưng vì StudID là khóa chính nên Roll No, Email trở thành khóa thay thế.
Mã sinh viên | Cuộn không | Tên | Họ | |
---|---|---|---|---|
1 | 11 | Tom | Giá cả | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
Khóa ứng viên là gì?
KHÓA THÍ SINH trong SQL là một tập hợp các thuộc tính xác định duy nhất các bộ dữ liệu trong một bảng. Khóa ứng viên là một siêu khóa không có thuộc tính lặp lại. Khóa chính phải được chọn từ các khóa ứng cử viên. Mỗi bảng phải có ít nhất một khóa dự tuyển. Một bảng có thể có nhiều khóa dự tuyển nhưng chỉ có một khóa chính duy nhất.
Thuộc tính của khóa Ứng viên:
- Nó phải chứa các giá trị duy nhất
- Khóa ứng viên trong SQL có thể có nhiều thuộc tính
- Không được chứa giá trị null
- Nó phải chứa các trường tối thiểu để đảm bảo tính duy nhất
- Xác định duy nhất từng bản ghi trong bảng
Ví dụ về khóa ứng viên: Trong bảng đã cho, Mã số sinh viên, Số báo danh và email là các khóa ứng viên giúp chúng tôi xác định duy nhất hồ sơ sinh viên trong bảng.
Mã sinh viên | Cuộn không | Tên | Họ | |
---|---|---|---|---|
1 | 11 | Tom | Giá cả | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
Khóa ngoại là gì?
KHÓA NGOÀI là một cột tạo mối quan hệ giữa hai bảng. Mục đích của khóa ngoại là duy trì tính toàn vẹn dữ liệu và cho phép điều hướng giữa hai phiên bản khác nhau của một thực thể. Nó hoạt động như một tham chiếu chéo giữa hai bảng vì nó tham chiếu khóa chính của bảng khác.
Ví dụ:
Mã phòng | Tên phòng ban |
---|---|
001 | Khoa học |
002 | Tiếng Anh |
005 | Máy tính |
Mã giáo viên | Họ tên | tên |
---|---|---|
B002 | David | Warner |
B017 | Sara | người đàn ông chay tịnh |
B009 | làm biếng | Brunton |
Trong ví dụ về khóa trong dbms này, chúng ta có hai bảng, dạy và khoa trong một trường học. Tuy nhiên, không có cách nào để biết tìm kiếm nào hoạt động ở bộ phận nào.
Trong bảng này, thêm khóa ngoại trong Deptcode vào tên Giáo viên, chúng ta có thể tạo mối quan hệ giữa hai bảng.
Mã giáo viên | Mã phòng | Họ tên | tên |
---|---|---|---|
B002 | 002 | David | Warner |
B017 | 002 | Sara | người đàn ông chay tịnh |
B009 | 001 | làm biếng | Brunton |
Khái niệm này còn được gọi là Tham khảo Integrity.
Khóa tổng hợp là gì?
KHÓA TỔNG HỢP có hai hoặc nhiều thuộc tính cho phép bạn nhận dạng duy nhất một bản ghi cụ thể. Có thể mỗi cột không phải là duy nhất trong cơ sở dữ liệu. Tuy nhiên, khi kết hợp với cột hoặc các cột khác, tổ hợp phím tổng hợp sẽ trở nên duy nhất. Mục đích của khóa ghép trong cơ sở dữ liệu là xác định duy nhất từng bản ghi trong bảng.
Ví dụ:
Đặt hàngKhông | ID sản phẩm | tên sản phẩm | Số Lượng |
---|---|---|---|
B005 | nhật bản102459 | Chuột | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | Màn hình LCD | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Máy in laser | 3 |
Trong ví dụ này, OrderNo và ProductID không thể là khóa chính vì nó không xác định duy nhất một bản ghi. Tuy nhiên, có thể sử dụng khóa tổng hợp của ID đơn hàng và ID sản phẩm vì nó xác định duy nhất từng bản ghi.
Khóa tổng hợp là gì?
TỔ HỢP PHÍM là sự kết hợp của hai hoặc nhiều cột xác định duy nhất các hàng trong bảng. Sự kết hợp của các cột đảm bảo tính duy nhất, mặc dù tính duy nhất riêng lẻ không được đảm bảo. Do đó, chúng được kết hợp để xác định duy nhất các bản ghi trong một bảng.
Sự khác biệt giữa khóa tổng hợp và khóa tổng hợp là bất kỳ phần nào của khóa tổng hợp đều có thể là khóa ngoại, nhưng khóa tổng hợp có thể hoặc không phải là một phần của khóa ngoại.
Khóa thay thế là gì?
KHÓA ĐẠI DIỆN là Khóa nhân tạo nhằm mục đích xác định duy nhất từng bản ghi được gọi là khóa thay thế. Loại khóa một phần này trong dbms là duy nhất vì nó được tạo khi bạn không có bất kỳ khóa chính tự nhiên nào. Chúng không mang lại bất kỳ ý nghĩa nào cho dữ liệu trong bảng. Khóa thay thế trong DBMS thường là số nguyên. Khóa thay thế là giá trị được tạo ngay trước khi bản ghi được chèn vào bảng.
Họ tên | lastname | Thời gian bắt đầu | Thời gian kết thúc |
---|---|---|---|
Anne | Smith | 09:00 | 18:00 |
jack | Francis | 08:00 | 17:00 |
Anna | McLean | 11:00 | 20:00 |
Cho xem | Willam | 14:00 | 23:00 |
Ở trên, ví dụ đã cho, hiển thị thời gian làm ca của nhân viên khác nhau. Trong ví dụ này, cần có khóa thay thế để nhận dạng duy nhất từng nhân viên.
Chìa khóa thay thế trong sql được phép khi
- Không có thuộc tính nào có tham số của khóa chính.
- Trong bảng khi khóa chính quá lớn hoặc phức tạp.
Sự khác biệt giữa khóa chính và khóa ngoại
Sau đây là sự khác biệt chính giữa khóa chính và khóa ngoại:
Khóa chính | chính nước ngoài |
---|---|
Giúp bạn xác định duy nhất một bản ghi trong bảng. | Đó là một trường trong bảng và là khóa chính của bảng khác. |
Khóa chính không bao giờ chấp nhận giá trị null. | Khóa ngoại có thể chấp nhận nhiều giá trị null. |
Khóa chính là một chỉ mục được nhóm và dữ liệu trong bảng DBMS được tổ chức vật lý theo trình tự của chỉ mục được nhóm. | Khóa ngoại không thể tự động tạo chỉ mục, được nhóm hoặc không được nhóm. Tuy nhiên, bạn có thể tạo chỉ mục trên khóa ngoại theo cách thủ công. |
Bạn có thể có một khóa Chính duy nhất trong một bảng. | Bạn có thể có nhiều khóa ngoại trong một bảng. |
Tổng kết
- Khóa trong DBMS là gì: Khóa trong DBMS là một thuộc tính hoặc tập hợp các thuộc tính giúp bạn xác định một hàng (bộ) trong một mối quan hệ (bảng)
- Chìa khóa trong RDBMS cho phép bạn thiết lập mối quan hệ giữa và xác định mối quan hệ giữa các bảng
- Tám loại khóa trong DBMS là Siêu, Chính, Ứng viên, Thay thế, Ngoại, Hợp chất, Tổng hợp và Khóa thay thế.
- Siêu khóa là một nhóm gồm một hoặc nhiều khóa xác định các hàng trong bảng.
- Một cột hoặc nhóm cột trong bảng giúp chúng ta xác định duy nhất mỗi hàng trong bảng đó được gọi là khóa chính
- Tất cả các khóa khác nhau trong DBMS không phải là khóa chính được gọi là khóa thay thế
- Siêu khóa không có thuộc tính lặp lại được gọi là khóa dự tuyển
- Khóa ghép là khóa có nhiều trường cho phép bạn nhận dạng duy nhất một bản ghi cụ thể
- Khóa có nhiều thuộc tính để xác định duy nhất các hàng trong bảng được gọi là khóa tổng hợp
- Khóa nhân tạo nhằm mục đích xác định duy nhất từng bản ghi được gọi là khóa thay thế
- Khóa chính không bao giờ chấp nhận giá trị null trong khi khóa ngoại có thể chấp nhận nhiều giá trị null.