티스토리 뷰

Database

[SQL] 무결성, 제약조건

쩨리쩨리 2018. 4. 24. 15:11
반응형

* 관계형 데이터베이스

 

- 관계형 데이터베이스란 임의의 데이터베이스 내에 존재하는 여러 테이블들이 서로 관계를 가지며 운영되는 것을 의미한다.

- 관계형 데이터베이스는 테이블 간의 관계를 분명하게 설정하고, 제약조건들을 사용하여 정확한 데이터들을 설정하는 것이 중요하다.

- 정확한 데이터란 메모리 공간을 차지하고 있는 안 쓰이는 데이터를 제외한 개체와 속성간에 밀접한 관련이 있는 데이터를 의미한다.

- 즉, 관계형 데이터베이스는 불필요한 데이터를 제약조건으로 걸러내고 테이블간에 밀접한 관련이 있는 필요한 데이터들만 남아있는 데이터베이스를 의미한다.

 

 

 

 

 

 

* 제약조건(CONSTRAINT)

 

- 제약조건은 결점이 없이 정확하고 유효한 데이터가 데이터베이스에 저장될 수 있도록 하기 위하여 데이터를 조작하는데 한계를 규정한 것이다.

- 즉, 사용자가 원하는 데이터만 걸러내도록 조건을 만드는 것을, 제약조건을 건다라고 말한다.

- 제약조건을 걸때 CONSTRAINT를 사용한다.

- CONSTRATINT 뒤에 제약조건의 ID를 부여할 수 있다.

- CONSTRATINT를 생략할 시 제약 ID를 자동으로 오라클 시스템에서 생성해준다.

 기본형태

 CONSTRAINT 제약id 제약내용(칼럼명);

 

 

 

 

 

 

 

* 무결성

 

- 데이터베이스에 저장된 값들이 정확하고 일관성 있는 데이터임을 나타내는 의미

- 데이터베이스는 무결성이 보장되도록 여러 개체에 규정을 부여하여 운영한다.

- 즉, 필요없는 데이터는 걸러내고 필요한 데이터만 남아있는 상태를 말한다.

- 무결성을 유지하는 것은 데이터베이스 관리시스템(DBMS)의 중요한 기능이며, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다.

- 무결성의 종류로는 개체무결성, 참조무결성, 도메인 무결성이 있다.

 

 

 

 

 

 

 

 

 

1. 도메인 무결성

 

- 속성이 정의되어 있는 영역을 벗어나지 않도록 규정하는 것이다.

- 도메인 무결성에는 CHECK, DEFAULT, NOT NULL 제약이 있다.

 

 

 

 

- CHECK 제약

- 값의 범위를 정해 놓는 제약

- CHECK 제약을 사용해서 조건에 맞는 데이터만 입력 받을 수 있다.

- 아래 코드는 ID가 2보다 큰 숫자만 입력되도록 CHECK 제약으로 지정해놨는데 1을 입력해서 오류가 뜬것이다.

 

 

 

 

 

- DEFAULT 제약

- 입력 값을 지정하지 않았을때 열의 값이 기본값으로 입력되도록 지정하는 값이다.

- 아래 사진은 LOC 칼럼의 내용을 디폴트제약을 이용하여 디폴트 값을 지정해놨다. LOC 칼럼에 아무것도 입력하지 않으면 디폴트 값이 들어간다.

 

 

 

 

- NOT NULL 제약

- 데이터를 입력받을때 NULL을 허용하지 않는다.

- NULL을 허용하지 않기 때문에 반드시 값이 입력되어야 한다.

 

 

 

 

 

 

2. 개체 무결성

 

- 하나의 테이블에 중복된 행이 존재하지 않도록 규정하는 것이다.

- 즉, 모든 테이블이 기본키로 선택된 컬럼을 가져야 하는 것이다.

- 기본키 제약이라고도 부른다.

- 개체 무결성에는 UNIQUE, PRIMARY KEY 가 있다.

 

 

 

 

- UNIQUE KEY

- 값의 중복을 허용하지 않는 제약이다.

- 고유제약은 값이 유일해야 하는 제약이기 때문에 NULL도 한번만 입력가능하다.

- 다시말해서 NULL값도 중복되면 안된다.

 

 

 

 

 

- PRIMARY KEY(기본키, 주키)

- 열에 유일한 값만 입력 되도록 제약을 주는 것이다.

- UNIQUE키와 다른 점은 NULL 값을 허용하지 않는 것이다.

- PRIMARY KEY는 UNLQUE키와 NOT NULL 제약이 합쳐진 것이다.

- 아래 사진에 NOU NULL은 생략해도 된다.

 

 

 

 

 

3. 참조 무결성

- 행을 입력, 수정, 삭제할 때 연관되는 다른 테이블과의 데이터가 정확하게 유지되도록 규정하는 것이다.

- 참조 무결성은 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 가져야한다.

- 참조 무결성에는 FOREIGN KEY가 있다.

 

 

- FOREIGN KEY(외래키)

- 다른 테이블의 데이터를 참조할 때 없는 값을 참조할 수 없도록 제약을 주는 것이다.

- 참조될 테이블이 먼저 만들어지고 값이 입력되어야 한다.

- 이때, 참조될 열의 값은 참조될 테이블에서 PRIMARY KEY로 설정되어 있어야한다.

 

 

 

기본키, 외래키에 대해서 잘 모르겠다면 앞의 포스팅을 참고해보자 !

반응형
댓글
공지사항