primary key 예제

기본 키는 기본 키가 사용되는 다른 테이블의 관련 정보에 대한 고유 링크입니다. 레코드를 만들 때 입력해야 하며 변경해서는 안 됩니다. 데이터베이스의 각 테이블에는 주 키에 대한 열이 두 개 있습니다. 외래키 사람폰.PhoneNumberTypeID는 기본 키 전화 번호 유형.PhoneNumberTypeID와 관련이 있습니다. 기본 키는 후보 키에서 선택해야 합니다. 모든 테이블에는 최소한 단일 후보 키가 있어야 합니다. 우리가 정말로 페달을 밟고 싶다면, 외국 키는 기본 키를 가리킬 필요가 없습니다. 외래 키 포인트가 되는 열의 유일한 진정한 요구 사항은 고유 값을 포함해야 한다는 것입니다. 예를 들어 직원 테이블이 다음과 같다고 가정해 보겠습니다: 참고: 경우에 따라 특성만으로는 테이블의 레코드를 고유하게 식별할 수 없으며, 이 경우 테이블에서 행을 고유하게 식별할 수 있는 특성 집합을 찾으려고 합니다. 이 예제 후에 그 예가 표시됩니다. 위의 예에서 EmpSSN 및 EmpNum 이름은 수퍼키입니다.

이 예제에서는 activity_id 또는 customer_id 열의 값이 중복될 수 있지만 두 열의 각 값 조합은 고유해야 합니다. 기본 키는 실제 관찰 가능한 것으로 구성될 수 있으며, 이 경우 기본 키라고 하며, 키로 작동하도록 생성되고 데이터베이스 외부의 식별에 사용되지 않는 특성을 서로게이트 키라고 합니다. 예를 들어, (특정 국적의) 사람들의 데이터베이스의 경우 출생 시간과 위치는 자연스러운 키일 수 있습니다.[b]. 국가 식별 번호는 자연 키로 사용할 수 있는 특성의 또 다른 예입니다. 고객_ID만으로는 단일 고객이 둘 이상의 주문을 할 수 있으므로 동일한 Customer_ID 값의 행을 둘 이상 할 수 있으므로 기본 키가 될 수 없습니다. 다음 예제에서 볼 수 있듯이 고객 ID 1011은 9023 및 9111의 경우 제품과 함께 두 개의 주문을 했습니다. 관계형 미적분및 관계형 대수를 통해 표현된 관계형 모델은 기본 키와 다른 종류의 키를 구분하지 않습니다. 기본 키는 주로 응용 프로그램 프로그래머의 편의를 위해 SQL 표준에 추가되었습니다. [인용 필요] 위의 예에서 직원 ID는 직원 레코드를 고유하게 식별하기 때문에 기본 키입니다. 이 테이블에서는 다른 직원이 동일한 직원 ID를 가질 수 없습니다. 다음 예제에서 StudID기본 키입니다. 이제 기본 키가 두 개 이상의 열로 구성될 수 있고 행을 고유하게 식별해야 한다는 위의 정의를 고려할 때 CustomerNo 및 고객 전화 번호가 기본 키로 포함된 열을 선택할 수 있습니다.

즉, 요구 사항을 충족하지만, 우리가 아무 이유없이 복잡성을 추가하기 때문에 그것은 분명히 어리석은. 위의 예는 다른 직원의 교대 근무 타이밍을 보여 주었습니다. 이 예제에서는 각 직원을 고유하게 식별하기 위해 서로게이트 키가 필요합니다. 예를 들어 데이터베이스는 상업 은행에 저장된 모든 데이터를 보유해야 합니다. 데이터베이스 테이블 중 두 가지에는 기본 및 정적 고객 데이터(이름, 생년월일, 주소, 사회 보장 번호 등)를 저장하는 CUSTOMER_MASTER와 다양한 은행 계좌 데이터(계정 생성 날짜, 계정 유형, 인출 한도 또는 해당 계정 정보 등)