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