Key Attribute 종류들

October 13, 2023


읽기전에 보면 좋은 글

무결성 제약조건 정리

키 (Key)

데이터베이스의 키는 무언가를 식별하는 고유한 식별자(identifier) 기능을 합니다.

즉, 키는 데이터베이스에서 조건에 만족하는 레코드를 찾는 경우, 다른 행과 구별할 수 있는 고유한 기준이 되는 속성의 집합입니다.

keys

예제 테이블은 아래의 STUDENTDEPARTMENT를 사용하겠습니다.

s-d

슈퍼 키 (Super key)

슈퍼 키는 테이블에 존재하는 필드들의 부분집합으로, 유일성(Uniqueness)을 만족해야 합니다.

STUDENT 테이블에서 id 필드는 슈퍼 키가 될 수 있습니다.

그리고 { id, dept_no }는 전체 필드 중 일부를 선택한 집합이며, 이것으로도 레코드를 유일하게 식별할 수 있어 슈퍼 키가 될 수 있습니다.

후보 키 (Candidate key)

유일성 + 최소성

후보 키(candidate key)는 슈퍼 키 중에서 최소성 (irreducibility)을 만족하는 키와 동일합니다. 후보 키는 기본 키가 될 수 있는 후보를 나타냅니다.

후보 키는 테이블에 존재하는 전체 필드의 부분집합으로 유일성최소성을 만족해야 합니다.

  • 유일성 - 모든 레코드에서 해당 필드에 중복된 값이 나타나지 않음
  • 최소성 - 최소한의 필드로 레코드를 유일하게 구별할 수 있어야 함

STUDENT 테이블의 dept_no는 중복될 수 있기 때문에 유일성을 만족하지 않아 후보 키가 될 수 없습니다.

또한, { id, dept_no }로 이루어진 부분 집합은 STUDENT 테이블의 id 필드만으로도 레코드를 유일하게 구별 가능해서 최소성을 만족하지 않으므로 후보 키가 될 수 없습니다.

기본 키 (Primary key)

기본 키는 테이블에서 특정 레코드를 식별하기 위해 후보 키 중, 고유한 식별자 1개를 정한 것입니다. 기본 키는 후보 키와 마찬가지로 유일성최소성을 가져야 하며, NULL 값을 가질 수 없습니다.

테이블에서 단 1 개만 선택이 가능하기 때문에 값이 자주 변경되지 않고, 단순한 값을 선택하는 것이 좋습니다.

대체 키 (Alternate key)

대체 키는 후보 키가 2개 이상일 경우, 어느 하나를 기본 키로 지정하고 남은 키들을 의미합니다.

복합 키 (Composite key)

복합 키는 한 개 이상의 필드를 포함하는 키로, 앞서 언급한 { id, dept_no }와 같은 키가 복합 키의 한 예입니다.

외래 키 (Foreign key)

외래 키는 한 테이블의 키 중에서 다른 테이블의 레코드를 유일하게 식별할 수 있는 키를 의미합니다. 한 테이블의 레코드에서 다른 테이블의 레코드를 참조하기 위해 사용됩니다.

외래 키는 원래의 테이블에서는 유일한 키이지만 다른 테이블에서 참조할 대상 컬럼으로 쓰인다면 유일하지 않아도 됩니다.

예를 들어, DEPARTMENT 테이블의 기본 키인 dept_no는 개체 무결성에 의해 유일합니다. 하지만 이 키가 외래 키로 STUDENT 테이블에서 학생의 학과 번호로 쓰인다면, 컴퓨터공학과인 학생이 여러 명인 것처럼 유일하지 않는 경우도 있습니다.

정리

는 컬럼을 구분하기 위한 컬럼으로 고유한 식별자를 의미합니다.


Profile picture

이재원

이해하기 쉬운 코드를 작성하려 고민합니다.


© 2024 Won's blog Built with Gatsby