Primary Key, Foreign Key에 대해 설명해주세요.
Primary Key (기본 키):
•
기본 키는 테이블 내에서 각 행을 식별하는 데 사용되는 고유한 식별자입니다.
•
각 행은 기본 키 값이 달라야 하며, 기본 키는 NULL 값을 가질 수 없습니다.
•
기본 키는 공백을 가질 수 없습니다.
•
주로 테이블에서 레코드를 식별하고 검색하기 위해 사용됩니다.
•
예를 들어, 학생 테이블에서 학생의 학번이나 유일한 ID가 기본 키가 될 수 있습니다.
Foreign Key (외래 키):
•
외래 키는 한 테이블의 필드로서, 다른 테이블의 기본 키와 관계를 형성합니다.
•
외래 키를 사용하면 테이블 간에 연결을 만들 수 있으며, 이를 통해 데이터 간의 일관성을 유지할 수 있습니다.
•
외래키는 참조관계의 기본 키와 같은 속성을 가집니다.
•
예를 들어, 학생 테이블에서 각 학생의 소속 반을 나타내는 외래 키가 반 테이블의 기본 키를 참조할 수 있습니다.
그 외 키의 종류
슈퍼키 Super Key :
해당 개체를 고유하게 식별 할 수 있는 속성의 집합 (주민등록번호 앞자리, 뒷자리, 이름 등)
슈퍼키 또는 합성키라 불린다. 하나의 열이 키로사용되는 것이 아닌 2개 이상의 열이 합쳐서 기본키로 사용되는 것이다.
•
유일성 O, 최소성 X
•
유일성의 특성을 만족하는 속성들의 집합. 중복된 값이 존재하지 않는다. 서로 구분만 가능하면 수퍼키라 할 수 있다.
◦
[학생번호]의 경우 중복되는 경우가 없기 때문에 유일성을 만족하므로 슈퍼키가 될 수 있다.
◦
[이름,나이,성별]의 경우 이 세가지 모두가 일치하는 사람이 존재할 수 있으므로 유일성을 만족하지 못한다. 따라서 수퍼키로 사용할 수 없다.
◦
[학생번호,나이,성별]의 경우 학생번호 한가지만으로 각 튜플(레코드,행)을 구별할 수 있기 때문에 유일성을 만족한다. 따라서 수퍼키로 사용할 수 있다.
•
[학생번호,나이,성별]같은 경우 유일성을 만족하는 학생번호를 포함하고 있으므로, [학생번호,나이,성별,학년,수업목록]등 학교 내부 범주에 있는 어떠한 속성을 추가해도 학생번호성질 하나덕분에 유일성을 만족한다.
◦
중요함.
후보키 Candidate Key :
•
유일성 O, 최소성 O
•
수퍼키 중에서 최소성을 만족하는 키를 칭한다. 즉, 유일성과 최소성을 모두 만족하는 속성들의 집합이다.
•
후보키들중 메인으로 선정되는 키가 Primary Key 기본키이다.
•
아래와 같이 수퍼키가 있다고 할때,
◦
[학생번호,나이,성별]의 경우, 학생번호가 있다면 나이와 성별은 특정 학생을 구별할 때 필요없다. 없어도 전혀 문제가 안됨. 여기서 나이와 성별을 제거한 [학생번호]의 경우 최소성을 만족하며 후보키가 될 수 있다.
복합키 Composite key :
•
두개 이상의 컬럼을 묶어서 하나의 기본키로 지정하는것.
•
기본키는 하나의 테이블에 하나만 존재할 수 있다, 또한 기본키는 하나 이상의 컬럼으로 구성되어 있다.
◦
기본키가 만약 복합키라면, 복합키 또한 당연히 유일성과 최소성을 만족해야한다.
대체키 Alternate key :
•
기본키를 제외한 나머지 후보키들을 의미한다.