본문 바로가기

Database/MySQL

PK, FK 특징

레코드는 행(row)을 의미한다.

 

1. PK(Primary Key)

기본키는 레코드(row)를 유일한 값으로 만들어주는 역할을 한다.

하나의 칼럼 혹은 여러 개의 칼럼을 지정해 유일한 값으로 만들 수 있다.

 

ps. pk는 테이블 당 하나만 설정 가능. 하지만 unique는 여러 개 설정 가능.

 

2. FK(Foreign Key)

외래키는 테이블 간 연관관계를 표현하기 위해 사용.

 

3. FK 제약 조건 특징

먼저 참조무결성이 뭔지부터 알고, cacade가 왜 필요한지 생각해보자.

 

*참조무결성(referential integrity)이란?

  • PK를 참조하고 있는 FK가 존재한다면, PK를 삭제 혹은 참조하는 값을 수정할 수 없다.

예를 들어,

p = person (id, name) values (1, 'dexter')

f1 = food (id, name, person_id) values (1, 'banana', 1)

f2 = food (id, name, person_id) values (2, 'rice', 1)

이라고 가정한다면, p를 연관관계에 있는 f1, f2가 참조하고 있으므로 삭제할 수 없다는 의미.

여기서 수정은 참조하는 값 person_id를 수정할 수 없다는 의미.

 

1) CASCADE

  • 외래 키 대상 테이블 값(PK)이 삭제될 시 이 PK와 연관된 테이블의 레코드도 같이 삭제를 한다.

'Database > MySQL' 카테고리의 다른 글

데이터베이스 반정규화(Denormalization)  (0) 2022.05.23
데이터베이스 정규화(Normalization)  (0) 2022.05.23
트랜잭션 특징  (0) 2022.05.07
mysql settings  (0) 2022.01.30
MySQL  (0) 2021.11.09