Định nghĩa của khóa chính này có nghĩa là gì?


8

Sách giáo khoa của tôi đưa ra định nghĩa sau đây về khóa chính trong cơ sở dữ liệu quan hệ mà tôi hoàn toàn không hiểu. Trợ giúp sẽ được đánh giá cao.

Đặt là quan hệ. Thì khóa chính cho R là tập hợp con của tập hợp các thuộc tính của R , giả sử K , thỏa mãn hai thuộc tính sau:RRRK

  1. Độc đáo tài sản: Không có hai bộ dữ liệu riêng biệt của có cùng giá trị cho K .RK

  2. Thuộc tính bất khả quy: Không có tập hợp con đúng của có thuộc tính duy nhất.K

Tôi đang bị lạc bởi tài sản Vô tín.


Chú ý: 1) nhiều hơn một tập hợp con của các cột có thể đáp ứng các thuộc tính đó, vì vậy cuối cùng, khóa chính là thứ mà người xác định khóa chính chọn nó là; 2) trong thực tế, các DBMS hỗ trợ các khóa chính thực thi thuộc tính 1, nhưng không phải thuộc tính 2 (mặc dù tôi đã không kiểm tra điều này cho nhiều người).
Revierpost

2
Lưu ý: nếu cuốn sách nói " các khóa chính", sau đó nó được gây hiểu lầm. Có thể và không có gì lạ đối với nhiều nhóm cột khác nhau hiện có thể được coi là PK.
AnoE

Câu trả lời:


7

Hãy xem xét bảng sau:

FirstName  LastName  Pet  FavColour
-----------------------------------
Alice      Jones     dog  red
Alice      Smith     dog  green
Bob        Smith     cat  blue

Khóa là bất kỳ tập hợp các thuộc tính: bất kỳ tập hợp con của {FirstName, LastName, Pet, FavColour}. Thuộc tính duy nhất nói rằng không có hai bản ghi có thể có cùng giá trị cho các thuộc tính trong một khóa. Vì vậy, ví dụ, {FavColour} là một khóa có thuộc tính duy nhất: không có hai bản ghi nào có cùng giá trị cho nó. {Firstname, Lastname} cũng là duy nhất: không có hai bản ghi nào có cùng họ và tên. {Pet}, mặt khác, không phải là duy nhất, vì các bản ghi thứ nhất và thứ hai có cùng giá trị cho thuộc tính đó.

Bây giờ, {FirstName, LastName, Pet, FavColour} cũng là một khóa duy nhất: không có hai bản ghi nào có cùng giá trị cho tất cả các thuộc tính. Nhưng đó là một loại chìa khóa ngớ ngẩn, phải không? Irreducibility nói rằng, nếu bạn loại bỏ bất kỳ thuộc tính nào khỏi khóa của mình, nó sẽ không còn là duy nhất. Vì vậy, {Firstname, LastName, Pet, FavColour} không thể giảm được vì nếu bạn xóa FavColour, bạn sẽ nhận được khóa {FirstName, LastName, Pet}, vẫn có tính duy nhất. Và điều đó không thể giảm được vì bạn có thể vứt bỏ Pet và nhận {FirstName, LastName}, vẫn là duy nhất. Tuy nhiên, {FirstName, LastName} là không thể sửa đổi vì cả {FirstName} và {LastName} đều là duy nhất: có hai người có cùng tên và hai người có cùng họ.


tl; dr: tập hợp các cột nhỏ nhất có thể xác định duy nhất một bản ghi
DForck42

1
@ DForck42 Không, một tập hợp các cột nhỏ nhất có thể xác định duy nhất mọi bản ghi.
David Richerby

Câu hỏi được đặt theo cụm từ cơ sở dữ liệu, mà tôi có thể hiểu là lược đồ, không phải là một trường hợp quan hệ duy nhất. Các khóa của lược đồ quan hệ không thể được xác định bằng cách kiểm tra dữ liệu mẫu. Dữ liệu mẫu có thể cho chúng ta biết các bộ thuộc tính KHÔNG phải là khóa (ví dụ: {Pet} không phải là khóa trong trường hợp này), nhưng phụ thuộc chức năng là cơ sở âm thanh duy nhất để xác định các khóa thực tế.
nvogel

14

K

K

Ví dụ, xem xét mối quan hệ này.

A   B   C

1   4   4
2   4   6
3   6   6

Hãy để chúng tôi điều tra tất cả các khóa có thể.

  1. A - độc đáo và không thể giảm được.
  2. B -- không độc đáo.
  3. C -- không độc đáo.
  4. A,B- giảm đến A.
  5. A,C- giảm đến A.
  6. B,C - độc đáo và không thể giảm được.
  7. A,B,C- giảm đến A.

Do đó, có hai sự lựa chọn cho các khóa primare ở đây: AB,C.


5
K

@ruakh Điểm lấy.
Raphael

1

Tính không thể tin được chỉ đơn giản đề cập đến một tập hợp các thuộc tính tối thiểu mà chúng ta không thể đi bên dưới mà không làm mất tính duy nhất. Ví dụ: trong một bảng người, chúng ta có thể thấy (Họ, Tên) là duy nhất trong khi (Tên) và (Tên) không phải.

Khi chúng tôi có tính duy nhất, chúng tôi có thể tiếp tục thêm các thuộc tính mà không mất nó, vì vậy không thể giải quyết được vấn đề đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.