컴퓨터/MySQL

MySQL (6) - 무결성 제약조건

달서비 2022. 6. 18. 22:17

지난번에는 테이블을 정의하는 명령어를 (DDL) 정리하였습니다. 명령어를 중심으로 기술하였는데 제약조건에 대하여 설명이 필요할 것 같아 이렇게 적어봅니다. 제약조건을 사용하여 중복이 없는 데이터베이스를 만들 수 있습니다.

이번에는 무결성 제약조건과 MySQL에 있는 제약조건들을 설명해보겠습니다.

데이터베이스 - Pixabay

무결성 제약조건 / MySQL에서 사용하는 함수

무결성 제약조건이란 데이터가 결함이 없는 상태 데이터를 정확하고 일관되게 하기 위하여 저장, 수정, 삭제를 제약하는 조건입니다. 위에서 말한 것과 같이 중복이 없는 데이터베이스를 만드는 것입니다.

 

1. 개체 무결성

각 릴레이션의 기본키를 구성하는 속성은 NULL값이나 중복하는 값을 찾을 수 없다.

 PRIMARY KEY(기본키) - 테이블을 대표하는 컬럼이다.

 

2. 참조 무결성 

외래키의 값은 NULL이거나 릴레이션의 기본키의 값을 가져야 한다 

각 릴레이션에는 참조할 수 없는 값을 가질 수 없다. 

FOREIGN KEY(외래키) - '참조하는 테이블에서 존재하는 값만 사용 가능하다.'

 

3. 도메인 무결성

속성들의 값은 정의된 도메인에 속한 값이다.

CHECK - 정의된 조건에 해당하는 값만 입력할 수 있다.

 

4. 고유 무결성

특정 속성에 대하여 고유한 값을 가지게 된다면, 릴레이션에 각 튜플이 가지는 속성 값은 달라야 한다.

UNIQUE - '유일한 값'으로 존재해야 한다는 것을 의미한다.

 

5. NULL 무결성

릴레이션의 특정 속성은 NULL이 될 수 없다.

→ NOT NULL - '필수 입력사항'을 의미하며 NULL값이 들어갈 수 없다.


6. 키 무결성

각 릴레이션은 최소한 한 개 이상의 키를 가지고 있어야 한다.

 

각각의 무결성을 사용하는 방법 제작 예시

Create table student (
	ID int PRIMARY KEY,
    Name varchar(12) NOT NULL,
    Nickname varchar(20) UNIQUE,
    Gender varchar(5) CHECK (Gender == WOMAN OR Gender == MAN),
    School varchar(20) FOREIGN KEY
);