2010-06-21 33 views
13

Điểm khác biệt giữa khóa Siêu và Ứng viên trong ERDB là gì?Siêu khóa so với khóa Ứng viên

Cảm ơn.

+4

Superkey và Candidate Key là các thuật ngữ mô hình cơ sở dữ liệu quan hệ. "ERDB" có nghĩa là gì? Có lẽ bạn đang đề cập đến mô hình Mối quan hệ thực thể (ER) là một tập hợp các quy ước để vẽ hình ảnh về dữ liệu. Mô hình ER là một cái gì đó khác với mô hình quan hệ. – sqlvogel

Trả lời

12

chủ chốt ứng cử viên là một superkey tối thiểu

+5

+1, cộng với việc xác định "tối thiểu" ở đây là tốt vì nó không trực quan. Ví dụ trong bảng (a, b, c), với (a) là duy nhất và cũng (b, c) là duy nhất, cả hai (a) và (b, c) nên là các khóa ứng cử viên. – orip

+1

Tối thiểu theo nghĩa là nếu một thuộc tính từ khóa ứng cử viên bị xóa, thì hàng không thể được xác định duy nhất nữa. – libjup

4
  • chính Candidate = tối thiểu chìa khóa để xác định một hàng
  • Siêu key = ít nhất rộng như một ứng cử viên chủ chốt

Đối với tôi, một khóa siêu thường sẽ giới thiệu sự mơ hồ về khóa ứng cử viên

+0

Khoá ứng cử viên là một siêu khóa tối thiểu. Vì vậy, một siêu âm không phải là nghiêm chỉnh "rộng lớn hơn" bởi vì một khóa ứng cử viên là một siêu quá. – sqlvogel

+0

@david: không phải là "siêu tối thiểu" một oxymoron? – gbn

+0

"thường giới thiệu sự mơ hồ" - ý bạn là gì? Ví dụ, trong câu trả lời này (http://stackoverflow.com/questions/3938736/enforce-constraints-between-tables/3940708#3940708) bảng EmployeeDepartments có một khóa ứng viên '(employee_ID)' và một siêu khóa '(employee_department_name, employee_ID) '. Cả hai đều được yêu cầu cho toàn vẹn dữ liệu, đâu là sự mơ hồ? – onedaywhen

22

Siêu dữ liệu là tập hợp các cột duy nhất nhận dạng ifies một hàng. Khóa Ứng viên sẽ là một tập hợp các cột MINIMAL xác định duy nhất một hàng. Vì vậy, về cơ bản Superkey là một khóa Ứng viên với các cột không cần thiết bổ sung trong đó.

+0

"Superkey là chìa khóa ứng cử viên có thêm cột không cần thiết" - - các cột bổ sung có thể thực sự cần thiết để tham khảo bảng và đảm bảo tính toàn vẹn dữ liệu, ví dụ '(employee_ID)' là duy nhất nhưng một khóa trên '(employee_ID, department_name)' có thể được yêu cầu cho một số bảng hạn chế nhân viên theo bộ phận của họ. – onedaywhen

2

Hãy giữ nó đơn giản

superkey - Một tập hợp các phím định nghĩa duy nhất một Vì vậy row trong số tất cả các thuộc tính nếu ngay cả bất kỳ một đơn là unique sau đó tất cả các tập con có mà thuộc tính duy nhất rơi dưới superkey.

Ứng viên chủ chốt - Một superkey trong đó có tập hợp con có thể tiếp tục được bắt nguồn đó có thể xác định rows uniquely, Hoặc chúng ta chỉ có thể nói rằng nó là minimal superkey.

Các vấn đề liên quan