
RDBMS에서
- 테이블 : 관계(relation)
- 행 : 튜플(tuple) 또는 레코드(record)
- 열 : 속성을 의미하는 attribute 또는 field
-> 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키
기본키의 속성
1. 테이블에 저장된 행을 식별할 수 있는 유일한 값이어야 한다.
2. 값의 중복이 없어야 한다.
3. NULL 값을 가질 수 없다.
-> PK는 중복되지 않는 유일한 값이라는 특성을 가졌기 때문에
하나 또는 여러 컬럼의 조합으로 만들 수 있다.

EMPLOYEES테이블의PK는EMPLOYEE_IDDEPARTMENTS테이블의PK는DEPARTMENT_IDJOBS테이블의PK는JOB_ID
- 여러 컬럼을 조합하여 PK 역할을 할 수 있게 만든 키
- 하나의 컬럼으로 행을 식별하는 것이 불가능하여 두 개 이상의 컬럼 값을 함께 사용해야 각 행이 유일한 데이터가 됨
ex)
과목정보table의 컬럼 :과목코드,담당교수,전공여부,과목 이름
->과목코드를PK로 설정할 수 있지만, 만약한 명의 교수님이
여러 과목을 가르칠 경우과목코드와 담당교수 컬럼을 묶어서
PK로 설정한다.
대체키라고도 부르며후보키에 속해 있는 키(PK로 지정되지 않은 컬럼)후보키 (Candidate Key):기본키(PK)가 될 수 있는모든 키- 후보키 중
기본키로 지정되지 않은 키를보조키,대체키라고 한다.
ex) Column : 학번, 아이디, 주민번호, 이름, ....
->후보키: 학번, 아이디, 주민번호
->기본키: 학번 /후보키: 아이디, 주민번호
- 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키(PK) 로 지정된 키
- PK를 참조하기 때문에 PK에 무조건 자료가 있어야 한다.
- 중복이 가능하다.

->
DEPARTMENT테이블의PK는DEPARTMENT_ID
이 PK는EMPLOYEES테이블의FK이다.

->
JOBS테이블의PK는JOB_ID컬럼
EMPLOYEES테이블에서JOB_ID컬럼은FK이다.
FK는데이터의 중복을 피하기 위해테이블 사이의 관계를 규명하기 위한 필수 요소
- 중복이 없지만 PK로 쓰긴 애매할 때 사용
- NULL은 허용하지만 중복은 허용하지 않는 키