2016-10-31 6 views
0

나는 매우 후보 키에 대해 공부할 때 교수님에 의해 주어진 아이디어에 의해 혼란스러워했다 (그러나 나는 그에게 물어 가짜 느낌 : p)를데이터베이스 후보 키의 "최소 성"은 무엇을 의미합니까?

는 "K의 어떤 구성 요소가 고유성 속성을 파괴하지 않고 제거 할 수 없습니다 - - minimality (1) (세트가 최소한의 것을 의미한다) 보유하고있는 이러한 특성의 어떤 부분 집합이 없다 "

그리고 내가 그것을

말한다 위키 검색" ". 그것은 또한 예를 보여 주지만 나는 이해하지 못합니다.

제 질문은 여기에서 "제거 된"무엇을 의미합니까? 데이터의 전체 행을 제거한다는 의미라면 데이터 행을 제거하여 고유성을 잃을 수 없으므로 항상 데이터의 고유성을 유지해야합니다. K의 단일 속성 만 제거하고 빈 "블록"이있는 행을 남기면 바보처럼 보이고 데이터가 삭제됩니다. 그래서 누군가가이 속성이 의미하는 것에 대한 간단한 예를 들어 줄 수 있습니까? (좋은 사람과 나쁜 사람을위한 것일 수도 있습니다) 감사합니다 ~

+0

고유 키 속성을 잃지 않고 모든 기능 종속적 열을 후보 키에 추가 할 수 있습니다. 당신의 질문은 정반대의 과정에 관한 것입니다. – joop

답변

2

"제거"는 여기에 데이터를 전혀 건드리지 않습니다. 키에서 하나의 속성/열을 제거한다는 의미입니다. 감소 된 열 집합이 여전히 키 (즉, 데이터 행을 고유하게 식별 함)이면 이전 키가 최소가 아니 었습니다.

예 :

name id amount 
A 1 1000 
B 2 2000 
C 3 1000 

당신은 최소한의 키로 name 또는 id를 사용할 수 있습니다.

[name, id]을 (복합, 다중 열) 키로 사용할 수도 있습니다. 그러나 그 키는 최소가 아닙니다 (키를 하나 가지고 있어도 키를 가질 수 있기 때문입니다).

amount은 키를 전혀 만들지 않습니다.

[amount, id]은 핵심이지만 다시는 최소화되지 않습니다.

+0

오, 정말 고마워요. 나는 복합 열쇠에 대한 아이디어를 전에는 몰랐다. 도와 주셔서 감사합니다. 그리고 후보 키가 프라이 머리 키에 매우 가깝다는 생각을 들었고 프라임 키가 후보 키들 중에서 선택되었습니다. 따라서 대부분의 경우 동일한 속성을 갖지만 기본 키는 프로그래머가 선택한 키입니다. –

+0

예, 기본 키는 해당 키로 지정된 가능한 키 중 하나입니다. 다른 키가 해당 기능을 제공 할 수 있습니다. – Thilo