개발놀이터

데이터베이스 제약조건 본문

CS 지식/데이터베이스

데이터베이스 제약조건

마늘냄새폴폴 2022. 12. 22. 02:04

테이블 작성시에 Constraint를 사용해서 입력하는 자료에 대해서 제약, 즉 규칙을 정해줄 수 있는데요. 이때 정해진 제약에 따라서 데이터가 입력이 됩니다. 제약에 배반된다면 자료 입력이 거부되면서 오류가 납니다. 

 

즉, 데이터 무결성을 지키기 위한 데이터 무결성 제약조건에 대해서 알아볼까 합니다. 데이터 무결성이란 권한이 부여된 계정이나 사람만이 접근 가능하고, 정확하고 완전한 데이터들이 저장되어 있는 상태를 생각하시면 됩니다. 

 

데이터의 무결성을 위해서 데이터베이스에서는 5가지의 제약조건을 제공하고 있습니다. 

 

 

이제 각각에 대해서 알아보도록 하겠습니다. 

 

1. NOT NULL

-구문 형식

  1. NOT NULL은 INSERT 시 즉, 데이터 입력시에 누락이 되어서는 안되는 부분이라는 것입니다. NULL값이 들어가게 되면 오류가 납니다.
  2. NULL이 기본 값이므로 NULL을 명시해주는 컬럼 2와 NULL을 명시해주지 않은 컬럼 3은 동일하다고 보시면 됩니다.
  3. INSERT 시에 컬럼 2와 컬럼 3에 NULL값을 넣기 위해서는 'NULL' 또는 빈칸없이 '' (작은 따옴표 두개) 로 해주시면 됩니다. 안에 공백을 넣게되면 NULL 값이 아닌 공백 값으로 들어갑니다. 

 

2. UNIQUE

-구문 형식

  1. UNIQUE는 해당 테이블에 있어서 존재하는 값이 유일해야 합니다. 
  2. 이때, NULL 값에 대해서는 UNIQUE 제약이 적용되지 않습니다.
  3. 테이블을 만들 때 제일 밑에 CONSTRAINTS 제약명 UNIQUE (컬럼2, 컬럼3) 과 같이 CONSTRAINTS의 이름을 지정이 가능합니다.
  4. 예를들어 컬럼2에 A라는 값이 컬럼3에 B라는 값이 들어가고 다른 튜플에는 컬럼2에 A라는 값이 컬럼3에 C라는 값이 들어간다면 (A, B), (A, C) 조합인 경우 유니크 제약조건이 깨지지 않습니다. 컬럼2가 같다고 하더라도 그 조합이 다르기 때문에 오류가 발생하지 않습니다. 

 

3. PRIMARY KEY

-구문 형식

  1. PRIMARY KEY 즉, 기본키는 하나의 테이블에 있는 데이터들을 식별하기 위한 기준으로 인식되는 제약조건입니다.
  2. 그렇기 때문에 UNIQUE와 달리 한개의 테이블에 하나만 생성이 가능합니다.
  3. 기본키는 NOT NULL + UNIQUE의 속성을 가집니다. 즉, NULL값이 있으면 안되고 해당 컬럼의 데이터는 중복되지 않고 유일해야 합니다.
  4. 기본키를 명시하는 방법은 위와 같이 두가지가 있으며 동일합니다. 다만 아래쪽은 기본키의 이름을 지정해줄 수 있습니다.

 

4. FOREIGN KEY

-구문 형식

  1. FOREIGN KEY 즉, 외래키는 해당 컬러멩 참조하는 테이블로부터 존재하는 값들만 사용한다는 의미의 제약조건입니다. 만일 참조하는 테이블에 해당하는 값이 없을시에는 INSERT나 UPDATE시에 오류가 나게 됩니다.
  2. 외래키는 여러개의 컬럼에 중복적으로 적용 가능합니다.
  3. 외래키로 두 테이블이 부모 테이블과 자식 테이블로 관계를 맺고 있을시에, 자식 테이블이 참조하는 데이터는 부모 테이블에서 삭제가 불가능합니다. (무결성 제약조건)
  4. 외래키를 명시하는 방법은 위와 같이 두가지가 있으며 동일합니다. 다만 아래쪽은 외래키의 이름을 지정해줄 수 있습니다. 

 

5. CHECK

-구문 형식

  1. CHECK는 조건에 부합하는 데이터만 입력이 가능하도록 하는 제약조건입니다.
  2. 조건에는 기본연산자나 비교연산자, IN, NOT IN 등이 사용 가능합니다.

 

 

이렇게 데이터베이스의 제약조건에 대해서 알아봤습니다. UNIQUE 제약조건에 대해서 궁금해서 알아보다가 기왕 이렇게 된거 한번 정리하는게 좋겠다는 생각으로 포스팅하게 되었습니다. 긴 글 읽어주셔서 감사합니다. 다음 포스팅에서 봬요!

 

출처

https://runtoyourdream.tistory.com/129

 

[SQL] 제약조건, Constraint(NOT NULL, UNIQUE, PRIMARY KEY(기본키), FOREIGN KEY(외래키))!

테이블 작성시에 Constraint를 사용해서 입력하는 자료에 대해서 제약, 즉 규칙을 정해줄 수 있는데요. 이때 정해진 제약에 따라서 데이터가 입력이 됩니다. 제약에 배반된다면 자료 입력이 거부되

runtoyourdream.tistory.com