Primary Key & Foreign Key
#
Find similar titles
- 최초 작성자
-
최근 업데이트
hcpark@insilicogen.com
Structured data
- Category
- Database
Table of Contents
Primary Key와 Foreign Key를 배워야 하는 이유? #
- Data-Base 구축 시 각 Data-Table을 잘 관리하기 위해 하나의 고유한 Data를 지정하고 이에 파생되는 다른 Data들을 관리하기 위해 배워야 한다.
기본 키 (Primary Key) #
- Data-Table에 있는 유일하게 구분되는 Data-Key를 기본 키(Primary Key)라 부른다.
- Primary Key는 유일한 값이기 때문에 중복된 값을 가질 수 없다.
- Primary Key는 공백을 가질 수 없습니다.
특징 #
-
고유성 (Uniqueness)
Primary Key는 각 행(row)을 식별하는 데 사용되며, 모든 값은 고유해야 한다. 즉, 특정 열의 Primary Key 값은 중복되지 않는다.
-
NULL 값의 허용 불가능 (Non-nullable)
Primary Key 값은 NULL이 될 수 없다. 각 행은 반드시 Primary Key 값을 가져야 한다.
-
일반적으로 숫자나 문자열
데이터베이스 대부분에서 Primary Key는 정수 또는 문자열과 같은 데이터 타입일 수 있다.
-
테이블의 기본 정렬 기준
데이터베이스 시스템은 주로 테이블을 Primary Key로 정렬하므로, 검색 및 연산이 효율적으로 수행된다.
-
기본 키 제약 조건
Primary Key로 지정된 열은 해당 테이블에서 기본 키 제약 조건을 가진다.
외래 키 (Foreign Key) #
- 한 Table과 참조되는 다른 Table 간의 연결되는 Primary Key Column을 Foreign Key라 합니다.
- Foreign Key는 다른 Primary Key를 참조하는 속성 또는 속성들의 집합을 의미한다.
- Foreign Key는 참조관계의 기본 키와 같은 속성을 가진다.
특징 #
-
다른 테이블의 Primary Key를 참조
Foreign Key는 다른 테이블의 Primary Key를 참조하여 관계를 설정한다.
-
무결성 제약 조건
Foreign Key는 참조된 Primary Key 값이나 NULL이어야 한다. 즉, 참조 무결성을 유지한다.
-
한 테이블 내에서 외래 키값은 중복 가능
특정 테이블 내에서 Foreign Key 값은 중복될 수 있다.
-
삭제 및 갱신 규칙 설정 가능
Foreign Key를 사용하여 부모 테이블에서 행을 삭제하거나 갱신할 때 자식 테이블의 관련 행도 자동으로 처리할 수 있는 규칙을 정의할 수 있다.
후보 키 (Candidate Key) #
- Primary Key와 Foreign Key와 같은 각 Data를 식별하기 위해 사용되는 속성들의 집합입니다.
특징 #
-
고유성 보장
후보 키는 각 행을 고유하게 식별할 수 있는 키로, 특정 열 또는 열의 조합이다.
-
최소성 (Minimality)
후보 키는 최소성을 가져야 한다. 즉, 후보 키에 포함된 어떠한 열도 제거하면 더 이상 고유성을 유지할 수 없어야 한다.
-
NULL 값의 허용 불가능
후보 키값은 NULL이 될 수 없다.
-
후보 키의 예시
특정 테이블에서 후보 키는 여러 개일 수 있다. 예를 들어, 학생 테이블에서 학번과 주민등록번호가 후보 키가 될 수 있다.
슈퍼 키 (Super Key) #
- 하나 이상의 속성이 하나의 Data를 구별하면 그것은 슈퍼 키 (Super Key)라 정의한다.
특징 #
-
고유성을 가짐
슈퍼 키는 각 행을 고유하게 식별할 수 있는 키로, 후보 키일 필요는 없다.
-
후보 키 및 추가 열의 조합
슈퍼 키는 후보 키일 수도 있고, 후보 키에 추가적인 열을 포함할 수도 있다.
-
NULL 값의 허용 불가능
슈퍼 키값은 NULL이 될 수 없다.
-
슈퍼 키의 예시
특정 테이블에서 슈퍼 키는 후보 키인 열 뿐만 아니라 다른 열들의 조합일 수 있다. 예를 들어, 학생 테이블에서 학번이나 주민등록번호와 학년을 합친 것이 슈퍼 키가 될 수 있다.
그림 1. Primary Key와 Foreign Key와의 관계 (출처 : 잉고래 블로그)