Khóa DBMS: Ứng viên, Chính, Siêu cấp & Ngoại lai

⚡ Tóm tắt thông minh

Trong hệ quản trị cơ sở dữ liệu (DBMS), khóa là các thuộc tính xác định duy nhất một hàng trong bảng và thiết lập mối quan hệ giữa các bảng. Tám loại khóa, từ khóa siêu cấp và khóa chính đến khóa ngoại và khóa thay thế, đảm bảo tính đồng nhất và toàn vẹn dữ liệu trong cơ sở dữ liệu quan hệ.

  • 🗝️ Mục đích cốt lõi: Khóa xác định một hàng duy nhất và liên kết các bảng liên quan để dữ liệu luôn nhất quán.
  • 🔝 Siêu chìa khóa: Bất kỳ tập hợp thuộc tính nào xác định các hàng, có thể bao gồm các thuộc tính bổ sung ngoài các thuộc tính tối thiểu.
  • Khóa chính: Khóa ứng viên được chọn, không bao giờ rỗng và không bao giờ trùng lặp, mỗi bảng một khóa.
  • 🎯 Khóa ứng viên: Một siêu khóa tối thiểu không có thuộc tính dư thừa; khóa chính được chọn từ các khóa này.
  • 🔁 Khóa thay thế: Bất kỳ khóa ứng cử nào không được chọn làm khóa chính.
  • 🔗 Khóa ngoài: Một cột tham chiếu đến khóa chính của bảng khác để đảm bảo tính toàn vẹn tham chiếu.
  • 🧩 Tổng hợp và thay thế: Khóa tổng hợp kết hợp các cột để đảm bảo tính duy nhất; khóa thay thế là một khóa được tạo ra để thay thế cho các cột khác.

Khóa DBMS Ứng viên Siêu chính

Khóa trong hệ quản trị cơ sở dữ liệu (DBMS) là gì?

Khóa trong hệ quản trị cơ sở dữ liệu (DBMS) Khóa 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ộ dữ liệu) trong một quan hệ (bảng). Chúng cho phép bạn tìm ra 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 sự kết hợp của một hoặc nhiều cột, và chúng cũng hữu ích để tìm một bản ghi duy nhất trong 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ụ trên, Mã 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 có nhân viên nào khác có thể có cùng Mã 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 để sử dụng khóa trong hệ quản trị cơ sở dữ liệu:

  • Khóa 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, và các bản ghi đó có thể bị trùng lặp. Khóa đảm bảo bạn có thể xác định duy nhất một bản ghi trong bảng bất chấp những thách thức này.
  • Chúng cho phép bạn thiết lập và xác định mối quan hệ giữa các bảng.
  • Chúng giúp bạn củng cố bản sắc và sự chính trực trong mối quan hệ.

Các loại khóa trong hệ quản trị cơ sở dữ liệu (DBMS)

Trong hệ quản trị cơ sở dữ liệu (DBMS), chủ yếu có tám loại khóa khác nhau, và mỗi loại khóa có chức năng riêng:

  1. Siêu chìa khóa
  2. Khóa chính
  3. Chìa khóa ứng viên
  4. Khóa thay thế
  5. chính nước ngoài
  6. Khóa ghép
  7. Tổ hợp phím
  8. Phím thay thế

Bảng dưới đây tóm tắt cả tám đặc điểm một cách tổng quan trước khi mỗi đặc điểm được giải thích chi tiết.

Key Tóm lại Độc nhất?
Siêu chìa khóa Bất kỳ tập hợp thuộc tính nào xác định một hàng, các thuộc tính bổ sung đều được cho phép.
Chìa khóa ứng viên Một khóa siêu tối giản, không có thuộc tính dư thừa.
Khóa chính Khóa ứng viên được chọn, không rỗng.
Khóa thay thế Khóa ứng cử viên không được chọn làm khóa chính.
chính nước ngoài Tham chiếu đến khóa chính trong một bảng khác. Không
Khóa ghép Hai hoặc nhiều thuộc tính, mỗi thuộc tính có thể không phải là duy nhất. Kết hợp
Tổ hợp phím Kết hợp hai hoặc nhiều cột để tạo sự độc đáo Kết hợp
Phím thay thế Mã định danh nhân tạo được tạo ra

Khóa siêu cấp là gì?

Khóa siêu cấp là một nhóm các khóa đơn hoặc nhiều khóa dùng để xác định các hàng trong một bảng. Khóa siêu cấp có thể có thêm các thuộc tính không cần thiết cho việc xác định duy nhất.

Ví dụ:

EmpSSN EmpNum tên emp
9812345098 AB05 Cho xem
9876512345 AB06 Roslyn
199937890 AB07 James

Trong ví dụ trên, EmpSSN và EmpNum là các khóa siêu cấp.

Khóa chính là gì?

KHÓA CHÍNH in DBMS Khóa chính là một cột hoặc một nhóm cột trong bảng dù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 hơn một lần trong bảng. Một bảng không thể có nhiều hơn một khóa chính.

Các quy tắc để định nghĩa 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ọ Email
1 11 Tom Giá abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com

Chìa khóa thay thế là gì?

KHÓA THAY THẾ Khóa chính là một cột hoặc một nhóm cột trong bảng dùng để xác định duy nhất mỗi hàng. Một bảng có thể có nhiều lựa chọn cho khóa chính, nhưng chỉ có một lựa chọn được đặt 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 và 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 và Email trở thành khóa thay thế.

Mã sinh viên Cuộn không Tên Họ Email
1 11 Tom Giá 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 Khóa chính là một tập hợp các thuộc tính xác định duy nhất các bản ghi trong một bảng. Khóa ứng cử viên là một khóa siêu cấp không có thuộc tính lặp lại. Khóa chính nên đượ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 ứng cử viên, và một bảng có thể có nhiều khóa ứng cử viên nhưng chỉ có một khóa chính duy nhất.

Các thuộc tính của khóa ứng viên:

  • Nó phải chứa các giá trị duy nhất.
  • Một khóa ứng viên có thể có nhiều thuộc tính.
  • Nó không được chứa giá trị rỗng.
  • Nó nên chứa số lượng trường tối thiểu cần thiết để đảm bảo tính duy nhất.
  • Nó xác định duy nhất từng bản ghi trong bảng.

Ví dụ: Trong bảng bên dưới, StudID, Roll No và Email là các khóa ứng viên giúp chúng ta xác định duy nhất một hồ sơ sinh viên. Mối quan hệ của chúng với khóa chính và khóa siêu cấp là một cách phổ biến để hiểu. phụ thuộc chức năng.

Mã sinh viên Cuộn không Tên Họ Email
1 11 Tom Giá abc@gmail.com
2 12 Nick Wright xyz@gmail.com
3 13 Dana Natan mno@yahoo.com
Khóa ứng viên trong DBMS
Khóa ứng viên trong DBMS

Khóa ngoại là gì?

KHÓA NGOÀI Khóa ngoại là một cột tạo ra 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 thể hiệ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 đến khóa chính của bảng khác.

Ví dụ:

PhòngCode 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ụ này, chúng ta có hai bảng, Giáo viên và Phòng ban, trong một trường học. Như hiện tại, không có cách nào để biết giáo viên nào làm việc ở phòng ban nào.

Bằng cách thêm khóa ngoại DeptCode Thông qua bảng 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 PhòngCode 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à tính toàn vẹn tham chiếu.

Khóa phức hợp là gì?

KHÓA TỔNG HỢP Khóa ké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 riêng lẻ không phải là duy nhất trong cơ sở dữ liệu. Tuy nhiên, khi kết hợp lại, các cột trở nên duy nhất. Mục đích của khóa kép là để xác định duy nhất mỗi 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ể cùng là khóa chính, vì cả hai đều không xác định duy nhất một bản ghi. Tuy nhiên, một khóa kết hợp gồm OrderNo và ProductID sẽ xác định duy nhất mỗi bản ghi.

Khóa tổng hợp là gì?

TỔ HỢP PHÍM Đây là sự kết hợp của hai hoặc nhiều cột dùng để xác định duy nhất các hàng trong bảng. Sự kết hợp 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 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 bảng.

Sự khác biệt giữa khóa phức hợp và khóa tổng hợp là ở chỗ bất kỳ phần nào của khóa phức hợp đều có thể là khóa ngoại, trong khi khóa tổng hợp có thể là 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 THAY THẾ Khóa thay thế là một khóa nhân tạo nhằm mục đích xác định duy nhất mỗi bản ghi. Loại khóa này là duy nhất vì nó được tạo ra khi bạn không có bất kỳ khóa chính tự nhiên nào. Khóa thay thế không mang ý nghĩa gì đối với dữ liệu trong bảng và thường là một số nguyên được tạo ra ngay trước khi bản ghi được chèn.

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

Ví dụ trên cho thấy thời gian làm việc theo ca của các nhân viên khác nhau. Ở đây, cần có một khóa thay thế để xác định duy nhất từng nhân viên. Khóa thay thế trong SQL được sử dụng khi:

  • Không có thuộc tính nào có tham số là khóa chính.
  • Khóa chính quá lớn hoặc quá 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 nhóm, và dữ liệu trong bảng được sắp xếp vật lý theo trình tự của chỉ mục nhóm đó. Khóa ngoại không thể tự động tạo chỉ mục, dù là chỉ mục phân cụm hay không phân cụm. Bạn phải tạo chỉ mục thủ công.
Một bảng chỉ có thể có một khóa chính duy nhất. Bạn có thể có nhiều khóa ngoại trong một bảng.

Câu Hỏi Thường Gặp

Mỗi khóa ứng cử viên có thể xác định duy nhất một hàng. Khóa chính là khóa ứng cử viên mà người thiết kế chọn; các khóa ứng cử viên còn lại trở thành khóa thay thế.

Cả hai đều kết hợp các cột để đảm bảo tính duy nhất. Trong khóa phức hợp, mỗi cột bản thân nó là một khóa ngoại, trong khi khóa tổng hợp chỉ đơn giản là kết hợp hai hoặc nhiều thuộc tính mà không nhất thiết phải là khóa ngoại.

Sử dụng khóa thay thế khi không có thuộc tính tự nhiên nào đáng tin cậy là duy nhất, hoặc khi khóa tự nhiên lớn hoặc có thể thay đổi. Số nguyên được tạo ra sẽ ổn định và giúp việc kết nối trở nên đơn giản hơn.

Đúng vậy. Bằng cách phân tích các cột về tính duy nhất, tỷ lệ giá trị null và tính ổn định, AI có thể lập danh sách các khóa ứng cử viên và đề xuất khóa chính hoặc khóa thay thế, để người thiết kế đưa ra lựa chọn cuối cùng.

Đúng vậy. Khác với khóa chính, khóa ngoại có thể chứa giá trị null, biểu thị một hàng chưa được liên kết với bất kỳ bản ghi cha nào. Khóa ngoại không null phải khớp với khóa chính hiện có.

Tóm tắt bài viết này với: