기본 키와 고유 키의 근본적인 차이점은 기본 키는 NULL 값을 허용하지 않지만 NULL 값은 고유 키 제약 조건 내에서 허용된다는 것입니다.
비교 차트
비교 근거 | 기본 키 | 고유 키 |
---|---|---|
기본 | 테이블의 각 행에 대한 고유 식별자로 사용됩니다. | 또한 기본 키로 정의되지 않은 행을 고유하게 결정합니다. |
NULL 값 수용 | 기본 키는 NULL 값을 허용하지 않습니다. | Unique는 NULL 값을 허용합니다. |
테이블에 정의 할 수있는 키 수 | 하나의 기본 키만 | 하나 이상 |
색인 | 클러스터 된 인덱스를 만듭니다. | 비 클러스터형 인덱스를 만듭니다. |
기본 키의 정의
열이 해당 테이블의 각 튜플 (행)을 고유하게 식별하는 경우 해당 열의 기본 키로 열을 호출 할 수 있습니다. 테이블에 + 결성 제한 조건을 강요합니다. 하나의 기본 키만 테이블에 허용됩니다. 기본 키는 중복 및 NULL 값을 허용하지 않습니다. 기본 키는 드물게 변경이 발생할 수있는 테이블에서 기본 키가 매우 드물게 변경된다는 것을주의하여 선택됩니다.
테이블의 도움으로 기본 키의 개념을 이해합시다. 여기서 우리는 Roll_number, Name, Batch, Phone_number, Citizen_ID와 같은 속성을 가진 Student 테이블이라는 테이블을 생성합니다.
기본 키는 외래 키에 의해 참조 될 수 있습니다. 테이블에 고유 한 클러스터 된 인덱스 를 작성합니다. 클러스터 된 인덱스에서 데이터 행은 키 값에 따라 정렬되거나 테이블 또는 뷰에 저장됩니다. 한 테이블에 하나의 클러스터 된 인덱스 만있을 수 있습니다. 그 이유는 테이블의 데이터 행을 한 번만 정렬 할 수 있기 때문입니다.
고유 키의 정의
기본 키와 마찬가지로 고유 키 제약 조건은 관계에서 고유 튜플을 고유하게 식별합니다. 그러나, 그들 사이에 특정 차이가 있습니다. 테이블은 하나 이상의 고유 키를 가질 수 있습니다. 고유 키 제약 조건은 열에 대해 하나의 NULL 값만 허용 할 수 있습니다.
Roll_number, Name, Batch, Phone_number 및 Citizen_ID 특성을 가진 Student 테이블이있는 유사한 예제를 통해이 점을 이해해 봅시다. 롤 번호 속성은 기본 키와 함께 할당됩니다.
고유 제한 조건은 외부 키가 참조합니다. 누군가가 기본 키가 아닌 C 럼 및 C 럼 그룹에 대해 제한 조건을 적용하려고 할 때 g 용할 수 있습니다. 기본 키와 달리 비 클러스터형 인덱스를 생성합니다. 비 클러스터형 인덱스는 데이터 행과 구별되는 구조를 가지고 있습니다. 각 키 - 값 항목은 키 값을 포함하는 데이터 행을 가리키며 따라서 포인터를 사용합니다.
기본 키와 고유 키의 주요 차이점
- 기본 키로 선언 된 속성은 NULL 값을 허용하지 않습니다. 한편, 속성이 고유으로 선언되면 하나의 NULL 값을 허용 할 수 있습니다.
- 테이블에는 기본 키만있을 수 있지만 테이블에는 여러 개의 고유 제한 조건이있을 수 있습니다.
- 기본 키가 정의 될 때 자동으로 생성되는 클러스터 된 인덱스입니다. 반대로 고유 키는 클러스터되지 않은 인덱스를 생성합니다.
결론
기본 키와 고유 키는 모두 열이나 열 그룹의 고유 한 값을 가진 테이블의 행에 대한 고유 식별자의 용도로 사용됩니다. 이러한 키 제약 조건은 모든 테이블이 최대 하나의 기본 키를 가질 수있는 반면 테이블은 기본 키가 아닌 여러 개의 고유 키를 가질 수있는 곳에서 상당히 차별화됩니다.