레코드는 행(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 |