2010-06-21 3 views
13

ERDB에서 수퍼와 후보 키의 차이점은 무엇입니까?수퍼 키 대 후보 키

감사합니다.

+4

수퍼 키 및 후보 키는 관계형 데이터베이스 모델 용어입니다. "ERDB"는 무엇을 의미합니까? 어쩌면 데이터에 대한 그림 그리기 규칙 세트 인 ER (Entity Relationship) 모델을 언급하고있는 것일 수 있습니다. ER 모델은 관계형 모델과는 다른 것입니다. – sqlvogel

답변

12

후보 키가

+5

+1, 직관적이지 않으므로 "최소"를 정의하는 것이 좋습니다. 예를 들어 테이블 (a, b, c)에서 (a)는 고유하고 (b, c)도 고유하므로 (a)와 (b, c)는 모두 후보 키 여야합니다. – orip

+1

후보 키의 하나의 속성이 제거되면 행을 더 이상 고유하게 식별 할 수 없다는 점에서 최소한의 의미입니다. – libjup

4
  • 후보 키 = 최소 키 행을 식별 할 수있는 최소한의 퍼키이다
  • 슈퍼 = 키 적어도 넓은 나를 위해

키 후보로, 수퍼 키는 일반적으로 후보 키에 대해 모호함을 야기합니다.

+0

후보 키는 최소 수퍼 키입니다. 후보 키가 수퍼 키이기 때문에 수퍼 키가 엄격하게 "더 넓지"않습니다. – sqlvogel

+0

@ david : 모름 감 "최소 수퍼 키"가 아닌가요? – gbn

+0

"일반적으로 모호성이 있습니다"- 무엇을 의미합니까? 예를 들어이 대답 (http://stackoverflow.com/questions/3938736/enforce-constraints-between-tables/3940708#3940708)에서 EmployeeDepartments 테이블에는 후보 키'(employee_ID)'와 수퍼 키'(employee_department_name, employee_ID)'. 두 가지 모두 데이터 무결성에 필요합니다. 어디에서 모호성이 있습니까? – onedaywhen

22

수퍼 키는 고유하게 식별되는 열 집합입니다 ifies 행. 후보 키는 행을 고유하게 식별하는 최소한의 열 집합입니다. 따라서 기본적으로 수퍼 키는 여분의 불필요한 열이있는 후보 키입니다.

+0

"수퍼 키는 여분의 불필요한 열이있는 후보 키이다."- - 여분의 열은 실제로 테이블을 참조하고 데이터 무결성을 보장하는 데 필요할 수 있습니다. '(employee_ID)'는 유일하지만 부서별로 직원을 제한하는 특정 테이블에는'(employee_ID, department_name)'의 키가 필요할 수 있습니다. – onedaywhen

2

의 유지하자 그것을 간단한

퍼키 - 심지어 단일 한 고유 속성이 떨어질 것을 가진 unique 모든 부분 집합 인 경우 유일하게 모든 속성 밖으로 row 낭포를 정의하는 키 집합 superkey 이하.

후보 키 - 어떤 더 이상의 집합이 rows uniquely 식별 할 수있는, 또는 우리가 minimal superkey이라고 간단하게 말할 수있는 유도 할 수 없습니다 벗어난 superkey.