2. KEY

1day2coffee·2023년 4월 26일

DB

목록 보기
3/4

KEY
정의: 하나의 테이블에서 각 레코드를 고유하게 식별할 수 있는 컬럼 or 컬럼의 조합

조건: NOT NULL, UNIQUE

후보 키 (Candidate Identifier)
주 식별자가 될 가능성이 있는 식별자

모든 식별자는 주 식별자가 될 수 있는 후보이므로, 식별자와 후보 식별자는 사실상 동일어

결정자(Determinant)
이 값을 알면 나머지 속성 값도 알 수 있는 속성 (ex. FD: 고객번호 → 고객명: 고객번호를 알면 고객명도 알 수 있다.)

Primary Key (PK)
테이블 컬럼에서 각 레코드를 유일하게 실별할 수 있는 컬럼 또는 컬럼들의 집합

후보 키들 중에 대표 키로 선정된 식별자

최소한의 속성 조합이 주 식별자가 되도록 해야 한다.

특징
테이블 내의 각 레코드가 정확하게 식별되도록 보장한다.

다양한 종류의 무결성을 설정하고 강화하는 것을 도와준다.

테이블 관계를 설정하도록 해준다.

TIP: 주 식별자를 정할때는 고객이 제공하는 정보보다는 기업이 설계한 컬럼을 사용하는 것이 좋다(ex. 주민번호 대신 고객번호 사용)

Primary key 설계
고려사항
유일하고, 모든 레코드에 NOT NULL인 컬럼을 찾는다.

후보 식별자가 없는 경우 임의의 식별자를 만들어 부여한다. (인조식별자)

레코드의 발생 가능한 최대 수를 예측한다. (ex. 1년에 몇 개 정도 발생하는가? 처리대상이 대략 몇 개인가?)

설계
예상되는 레코드 갯수를 기준으로 Primary key의 데이터 타입을 정한다.(short, smallint, int 등)

자릿수를 맞춰야 한다면 데이터 타입을 varchar() 로 한다.(ex. 000001, 000132 등)

숫자를 PK로 할 경우 자동증분(Auto increment)을 사용하면 insert 시 중복을 막아주어 편리하다.

PK의 많은 의미를 부여하는 것은 좋지 않다. UNIQUE, NOT NULL 이 두 가지만 만족시키면 된다.

0개의 댓글