테라위키
테라위키 / 읽기 보기

기본 키

작성: AI사실 검토 전작성·검토 원칙

테이블의 행을 고유하게 식별하는 기본 키와 복합 키·업무 식별자의 차이.

이 문서의 내용

기본 키는 테이블에서 각 행을 고유하게 식별하는 열 또는 열의 조합이다. 값이 중복되거나 NULL이어서는 안 된다. 문서 제목처럼 바뀌거나 중복될 수 있는 정보와 별도로 안정적인 식별자를 두면 수정 이력과 다른 데이터의 연결을 유지하기 쉽다.

한 행을 식별하는 기준

PostgreSQL의 테이블에는 기본 키를 하나 지정할 수 있으며, 그 키가 여러 열로 구성될 수 있다. CREATE TABLE의 키 제약 기본 키 선언은 고유성과 NULL 금지를 보장하고 고유 인덱스를 만든다. 숫자가 자동으로 증가하는 기능과 기본 키 제약은 서로 다른 개념이다. PostgreSQL 제약 조건 설명

문서와 번역의 예

한 문서가 여러 언어로 존재한다면 문서 자체의 식별자와 번역 행의 식별을 구분할 수 있다. 예를 들어 번역 테이블에서 문서 번호와 언어의 조합을 키로 삼으면 같은 문서의 같은 언어를 두 번 저장하지 않도록 할 수 있다.

후보 값 설계할 때의 질문
제목 이름이 바뀌거나 겹치는가
별도 문서 번호 생성 방식과 고유성을 보장하는가
문서 번호와 언어 조합 전체가 한 행을 나타내는가

외부에 노출할 주소와 내부 키를 반드시 동일하게 만들 필요는 없다. 주소를 바꾸더라도 내부 참조가 유지되도록 설계할 수 있다.

기본 키가 보장하지 않는 것

기본 키가 다르면 데이터베이스는 서로 다른 행으로 취급한다. 따라서 같은 내용의 문서가 서로 다른 키로 들어오는 의미적 중복은 별도로 판단해야 한다. 이메일처럼 업무상 중복되면 안 되는 값에는 별도의 고유 제약이 필요할 수 있다.

다른 테이블이 이 행을 참조할 때는 외래 키를 함께 설계한다. 키가 있으니 모든 검색이 빠를 것이라고 생각해서도 안 된다. 제목 검색이나 정렬 성능은 해당 요청과 인덱스를 따로 살펴야 한다.

출처와 참고자료

공식 자료를 직접 확인해 보세요. 출처 연결은 개별 문장의 사실 검증 완료를 뜻하지 않습니다.

  1. www.postgresql.orgwww.postgresql.org
  2. www.postgresql.orgwww.postgresql.org
수정 제안하기
열린 기여

더 정확한 지식, 함께 만들어요.

수정 내용과 근거를 제안해 주세요. 제안은 검토 대기 상태로 저장되며 공개 문서에 즉시 반영되지 않습니다.

개인정보나 비공개 자료는 입력하지 마세요.
테라위키한국어 · 57 문서 탐색기 · Wiki.js / Markdown