기본 키

테코피디아 신뢰성

기본 키란?

기본 키(Primary Key)는 각 테이블 레코드를 고유하게 식별하도록 지정된 특수 관계형 데이터베이스 테이블 열(또는 열의 조합)이다.

기본 키는 테이블 내의 데이터를 빠르게 구문 분석하기 위한 고유 식별자로 사용된다. 테이블에는 기본 키를 두 개 이상 가질 수 없다.

기본 키의 주요 기능은 다음과 같다:

  • 각 데이터 행에 대해 고유한 값을 포함해야 한다.
  • 널 값을 포함할 수 없다.
  • 모든 행에는 기본 키 값이 있어야 한다.

기본 키는 기본 데이터 모델에 이미 존재하는 하나 이상의 필드를 사용하거나 특정 추가 필드를 기본 키로 생성할 수 있다.

테크피디아가 설명하는 기본 키

기본 키 개념은 효율적인 관계형 데이터베이스에 매우 중요하다. 기본 키와 밀접하게 관련된 외래 키 개념이 없다면 관계형 데이터베이스는 작동하지 않을 것입이다.

실제로 테이블에는 수천 개의 레코드(중복 포함)가 쉽게 포함될 수 있으므로 테이블 레코드를 항상 고유하게 식별할 수 있도록 하려면 기본 키가 필요하다.

각 레코드에 임의로 할당되는 대리 기본 키와 달리, 실제 옵저버블 및 속성에서 나오는 모든 키를 자연 기본 키라고 한다.

거의 모든 개인이 일상 생활에서 무의식중에 자연 기본 키를 자주 다루고 있다.

예를 들어, 학생들은 일상적으로 고유 식별(ID) 번호를 할당받으며, 모든 미국 시민은 정부에서 부여한 고유 식별이 가능한 사회보장번호를 가지고 있다. 도로 주소 또는 운전면허 번호는 각각 위치 또는 자동차를 고유하게 식별하는 데 사용되는 기본 키의 예다.

또 다른 예로, 데이터베이스는 상업 은행이 저장한 모든 데이터를 보유해야 한다. 데이터베이스 테이블 중 두 개에는 기본 및 정적 고객 데이터(이름, 생년월일, 주소, 주민등록번호 등)를 저장하는 CUSTOMER_MASTER와 다양한 은행 계좌 데이터(계좌 생성 날짜, 계좌 유형, 인출 한도 또는 해당 계좌 정보 등)를 저장하는 ACCOUNTS_MASTER가 포함된다.

고객을 고유하게 식별하기 위해 열 또는 열의 조합을 선택하여 두 고객이 동일한 고유 값을 갖지 않도록 보장한다. 따라서 성 및 생년월일과 같은 특정 열은 즉시 제거된다.

좋은 기본 키 후보로는 사회보장번호를 보유하도록 지정된 열이 좋다. 그러나 일부 계정 소유자는 주민등록번호가 없을 수 있으므로 이 열은 후보에서 제외된다.

다음 논리적 옵션은 이메일 주소에 생년월일에 성을 추가하는 등의 열 조합을 사용하는 것인데, 이 경우 길고 번거로운 기본 키가 생성된다.

가장 좋은 방법은 CUSTOMER_ID라는 새 열에 별도의 기본 키를 만드는 것이다. 그러면 데이터베이스에서 고객이 추가될 때마다 고유 번호를 자동으로 생성하여 고유 식별을 보장한다.

이 키가 생성되면 해당 열은 테이블을 생성하는 SQL 스크립트 내에서 기본 키로 지정되며 모든 null 값은 자동으로 거부된다.

각 CUSTOMER_ID에 연결된 계정 번호를 사용하면 고객 쿼리를 안전하게 처리하고 검색 시간을 단축할 수 있다(다른 인덱싱된 테이블과 마찬가지로).

예를 들어 은행 쿼리를 수행할 때 고객에게 성을 입력하라는 요청을 받을 수 있다. 일반적인 성(예: Smith) 쿼리는 여러 결과를 반환할 가능성이 높다.

데이터를 쿼리할 때 기본 키 고유성 기능을 활용하면 하나의 결과를 보장할 수 있다.

관련 용어

Margaret Rouse
Technology Specialist
Margaret Rouse
기술 전문가

본 작가는 수상 경력에 빛나는 기술 작가이자 강사로, 복잡한 기술 주제를 비전문가인 비즈니스 청중에게 설명하는 능력으로 유명합니다. 지난 20년 동안 그녀의 설명은 TechTarget 웹사이트에 게재되었으며, 뉴욕 타임즈, 타임 매거진, USA 투데이, ZDNet, PC 매거진, 디스커버리 매거진의 기사에서 권위자로 인용되었습니다. 마가렛은 IT 및 비즈니스 전문가가 서로의 고도로 전문화된 언어를 사용하는 법을 배우도록 돕는 것을 즐겨합니다. 새로운 정의에 대한 제안이 있거나 기술 설명을 개선할 방법이 있으면 다음과 같이 알려주세요. 이메일, LinkedIn, Twitter.