본문 바로가기
Database

[데이터베이스] 기본키와 외래키 그리고 제약조건의 설계

by onejunu 2020. 6. 11.

기본키

 

- primary key

- 데이터를 구분하는 가장 근본이 되는 값

- not null & unique

 

외래키

 

학번 이름 수강과목
b6xxxx 김길동 1
b7xxxx 조길동 2
b5xxxx 박길동 3
수강과목id 과목이름
1 자료구조
2 프로그래밍 언어

 

외래키는 위 처럼 다른 테이블의 '기본키'를 참조할때 외래키라고 한다.

박길동은 3번 과목이 없지만 3번 수강과목을 들었다고 되어있는 데 이런 현상을 dangling 이라고 한다. 이는 참조 무결성을 위반한 것이다.

 

제약조건의 설계

 

-개체 무결성(entity integrity)

 

기본키는 null 을 가질수 없다.

 

- 참조 무결성 (referential integrity)

 

외래키는 참조하는 테이블에 존재하여야 한다.

 

- 도메인 무결성 (domain integrity)

 

데이터의 값은 해당 컬럼에서 존재할 수 있는 값이어야 한다. 예를 들어 나이가 1000살 이라는 말도안되는 값이 들어가면 도메인 무결성을 어긴 것이다.

 

- 사용자 정의 무결성 (general integrity)

 

사용자가 정의한 제약조건이다. 예를 들어 영화최고등급을 별 5개로 한다던지 주문 취소금액은 주문 금액보다 작아야한다던지 등등

댓글