데이터베이스 후보 키
From CS Wiki
Revision as of 15:30, 13 November 2024 by 핵톤 (talk | contribs) (Created page with "'''후보 키'''(Candidate Key)는 데이터베이스 테이블에서 각 행을 고유하게 식별할 수 있는 속성 또는 속성들의 집합을 의미한다. 후보 키는 테이블 내의 모든 행을 유일하게 구분할 수 있는 최소한의 속성 집합으로, 기본 키(primary key)로 선택될 수 있는 후보가 된다. ==후보 키의 조건== 후보 키가 되기 위해서는 다음 조건을 만족해야 한다. *'''유일성'''(Uniqueness): 후...")
후보 키(Candidate Key)는 데이터베이스 테이블에서 각 행을 고유하게 식별할 수 있는 속성 또는 속성들의 집합을 의미한다. 후보 키는 테이블 내의 모든 행을 유일하게 구분할 수 있는 최소한의 속성 집합으로, 기본 키(primary key)로 선택될 수 있는 후보가 된다.
후보 키의 조건[edit | edit source]
후보 키가 되기 위해서는 다음 조건을 만족해야 한다.
- 유일성(Uniqueness): 후보 키는 테이블 내에서 각 행을 유일하게 식별할 수 있어야 한다. 즉, 동일한 값을 가지는 두 행이 존재할 수 없다.
- 최소성(Minimality): 후보 키는 속성의 최소 집합이어야 한다. 즉, 후보 키의 속성 중 하나라도 제거하면 유일성을 상실해야 한다.
후보 키는 테이블 내에서 기본 키가 아닌 대체 키(alternate key)로도 사용될 수 있다.
예시[edit | edit source]
학생 테이블이 있고, 각 학생의 정보를 저장하는 `학생ID`, `이메일`, `전화번호` 속성이 있다고 가정하자. 이 테이블에서 각 속성들이 후보 키가 될 수 있다.
학생ID | 이름 | 이메일 | 전화번호 |
---|---|---|---|
1 | 홍길동 | [email protected] | 010-1234-5678 |
2 | 이영희 | [email protected] | 010-9876-5432 |
이 예시에서 다음과 같은 후보 키가 존재할 수 있다.
- `학생ID`: 모든 학생을 고유하게 식별하므로 후보 키가 될 수 있다.
- `이메일`: 각 이메일 주소는 고유하므로 후보 키가 될 수 있다.
- `전화번호`: 각 전화번호는 고유하므로 후보 키가 될 수 있다.
- `이름`: 이름은 고유하지 않을 가능성이 크므로 후보 키로 적합하지 않다.
후보 키와 기본 키의 차이[edit | edit source]
- 후보 키는 기본 키로 선택될 수 있는 모든 속성 집합을 의미한다.
- 기본 키는 후보 키 중에서 실제로 테이블의 주요 식별자로 선택된 키이다. 기본 키는 단 하나만 존재할 수 있지만, 후보 키는 여러 개 존재할 수 있다.
관련 개념[edit | edit source]
- 대체 키(Alternate Key): 후보 키 중 기본 키로 선택되지 않은 키를 의미한다.
- 슈퍼 키(Super Key): 유일성은 만족하지만 최소성을 충족하지 않는 속성 집합이다. 후보 키는 슈퍼 키의 부분 집합이다.
후보 키의 중요성[edit | edit source]
후보 키는 데이터베이스 설계에서 매우 중요한 역할을 하며, 데이터의 중복을 방지하고 테이블 내에서 각 행을 고유하게 식별하는 데 필수적이다. 올바른 후보 키 설정은 데이터베이스의 무결성을 유지하고 데이터베이스를 최적화하는 데 기여한다.