Các khóa DBMS: Ứng viên, Cao cấp, Chính, Nước ngoài (Ví dụ)

Mục lục:

Anonim

Khóa trong DBMS là gì?

KEYS 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 (tuple) trong một quan hệ (bảng). Chúng cho phép bạn tìm mối quan hệ giữa hai bảng. Các phím 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 trong bảng đó. Khóa cũng hữu ích để tìm bản ghi hoặc hàng duy nhất từ ​​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.

Thí dụ:

Mã hiệu công nhân Tên đầu tiên LastName
11 Andrew Johnson
22 Tom Gỗ
33 Alex mạnh khỏe

Trong ví dụ đã cho ở trên, ID nhân viên là khóa chính vì nó xác định duy nhất một hồ sơ 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.

Trong hướng dẫn này, bạn sẽ học:

  • Phím là gì?
  • Tại sao chúng ta cần một Chìa khóa?
  • Các phím khác nhau trong hệ thống quản lý cơ sở dữ liệu
  • Super key là gì?
  • Khóa chính là gì?
  • Phím thay thế là gì?
  • Khóa ứng viên là gì?
  • Khóa ngoại là gì?
  • Khóa ghép là gì?
  • Khóa Composite là gì?
  • Khóa thay thế là gì?
  • Sự khác biệt giữa khóa chính và khóa ngoại

Tại sao chúng ta cần một Chìa khóa?

Dưới đây là một số lý do để 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 một ứng dụng thế giới thực, một bảng có thể chứa hàng nghìn bản ghi. Hơn nữa, các bản ghi có thể được sao chép. Các phím đả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ệ giữa và xác định mối quan hệ giữa các bảng
  • Giúp bạn thực thi bản sắc và tính toàn vẹn trong mối quan hệ.

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

Chủ yếu có bảy loại khóa khác nhau trong DBMS và mỗi khóa có chức năng khác nhau:

  • Siêu khóa - Siêu khóa là một nhóm các khóa đơn 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à một tập hợp các thuộc tính xác định duy nhất các bộ giá trị trong một bảng. Khóa ứng viên là 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 của dữ liệu và cho phép điều hướng giữa hai trường hợp 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 có thể không phải là duy nhất trong cơ sở dữ liệu.
  • 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ế. 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.
  • Khóa thay thế - Một khóa nhân tạo nhằm mục đích xác định duy nhất mỗi bản ghi được gọi là khóa thay thế. 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.

Super key là gì?

Siêu khóa là một nhóm các khóa đơn 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.

Thí dụ:

EmpSSN EmpNum Empname
9812345098 AB05 Cho xem
9876512345 AB06 Roslyn
199937890 AB07 James

Trong ví dụ đã cho ở trên, EmpSSN và EmpNum name là superkey.

Khóa chính là gì?

PRIMARY KEY 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 có nghĩa là cùng một giá trị không được 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.

Quy tắc xác định khóa chính:

  • Hai hàng không được có cùng giá trị khóa chính
  • Nó phải cho mọi hàng có một giá trị khóa chính.
  • Trường khóa chính không được để trố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 đó.

Thí dụ:

Trong ví dụ sau, StudID là Khóa chính.

StudID Cuộn không Tên đầu tiên LastName E-mail
1 11 Tom Giá bán Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
2 12 Nick Được rồi Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
3 13 Dana Natan Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.

Phím thay thế là gì?

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 đó. 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ó thể đượ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ế.

Thí dụ:

Trong bảng này, StudID, Roll No, Email đủ tiêu chuẩ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ế.

StudID Cuộn không Tên đầu tiên LastName E-mail
1 11 Tom Giá bán Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
2 12 Nick Được rồi Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
3 13 Dana Natan Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.

Khóa ứng viên là gì?

KHÓA KÝ SINH là một tập hợp các thuộc tính xác định duy nhất các bộ giá trị trong một bảng. Khóa ứng viên là 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 viên. Mỗi bảng phải có ít nhất một khóa ứng viên. Một bảng có thể có nhiều khóa ứng viê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 có thể có nhiều thuộc tính
  • Không được chứa giá trị rỗng
  • 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 một bảng

Ví dụ: Trong bảng đã cho Stud ID, Roll No và email là các khóa ứng viên giúp chúng tôi xác định duy nhất hồ sơ học sinh trong bảng.

StudID Cuộn không Tên đầu tiên LastName E-mail
1 11 Tom Giá bán Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
2 12 Nick Được rồi Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.
3 13 Dana Natan Địa chỉ email này đã được bảo vệ từ spam bots. Bạn cần bật Javascript để xem nó.

Khóa ngoại là gì?

NGOẠI KHÓA 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 của dữ liệu và cho phép điều hướng giữa hai trường hợp 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 một bảng khác.

Thí dụ:

DeptCode DeptName
001 Khoa học
002 Tiếng Anh
005 Máy vi tính
ID giáo viên Họ tên Tên
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

Trong khóa này trong ví dụ dbms, chúng ta có hai bảng, giảng dạy và phòng ban trong một trường học. Tuy nhiên, không có cách nào để xem công việc tìm kiếm ở 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.

ID giáo viên DeptCode Họ tên Tên
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Khái niệm này còn được gọi là Tính toàn vẹn tham chiếu.

Phím ghép là gì?

KEY COMPOUND 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 có thể 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ột khác, sự kết hợp của các phím tổng hợp sẽ trở thành 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.

Thí dụ:

OrderNo PorductID tên sản phẩm Định lượng
B005 JAP102459 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, một khóa ghép của ID đơn đặt hàng và ID sản phẩm có thể được sử dụng vì nó nhận dạng duy nhất từng bản ghi.

Phím tổng hợp là gì?

COMPOSITE KEY 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 ghép và khóa tổng hợp là bất kỳ phần nào của khóa ghép đều có thể là khóa ngoại, nhưng khóa tổng hợp có thể hoặc có thể không phải là một phần của khóa ngoại.

Khóa thay thế là gì?

KHÓA SURROGATE 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 đượ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 cho biết bất kỳ ý nghĩa nào đối với dữ liệu trong bảng. Khóa thay thế thường là một số nguyên. Khóa thay thế là một giá trị được tạo ngay trước khi bản ghi được chèn vào bảng.

Họ tên Họ Thời gian bắt đầu Thời gian kết thúc
Anne thợ rèn 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 hiển thị thời gian thay đổi của các nhân viên khác nhau. Trong ví dụ này, cần có một khóa thay thế để xác định duy nhất từng nhân viên.

Các khóa thay thế trong sql được cho 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

Khóa chính Khóa ngoại
Giúp bạn xác định duy nhất một bản ghi trong bảng. Nó là một trường trong bảng là khóa chính của một bảng khác.
Khóa chính không bao giờ chấp nhận giá trị rỗng. Một 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 phân cụ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 phân nhóm. Khóa ngoại không thể tự động tạo chỉ mục, được phân cụm hoặc không được phân cụ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 trong một bảng. Bạn có thể có nhiều khóa ngoại trong một bảng.

Tóm lược

  • Khóa trong SQL 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 (tuple) trong một quan hệ (bảng)
  • Các khóa DBMS 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
  • Bảy loại khóa DBMS là Khóa siêu, Chính, Ứng viên, Thay thế, Nước ngoài, Hợp chất, Tổ hợp và Khóa thay thế.
  • Siêu khóa là một nhóm các khóa đơn 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 tôi 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ông phải là khóa chính được gọi là khóa thay thế
  • Một siêu khóa không có thuộc tính lặp lại được gọi là khóa ứng viên
  • Khóa ghép là một 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ể
  • Một 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
  • Một khóa nhân tạo nhằm mục đích xác định duy nhất mỗi 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.