기본키
- 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개로 한다던지 주문 취소금액은 주문 금액보다 작아야한다던지 등등
'Database' 카테고리의 다른 글
[realMySQL][3] MySQL 서버설정파일 우선순위(my.cnf) (1) | 2022.05.06 |
---|---|
[2] MySQL8 Docker 를 이용한 MySQL 설치(초간단) (MAC M1) (1) | 2022.04.23 |
[2] MySQL 8 설치 및 설정 (MAC) (1) | 2022.04.16 |
[데이터베이스] transaction manager, storage manager, query manager (0) | 2020.06.11 |
intro DBMS (0) | 2020.06.11 |
댓글