티스토리 뷰

DATABASE/SQL

[SQL] 데이터 무결성

진심스테이크 2018. 4. 19. 16:08

 

관계형 데이터 베이스 : 임의의 데이터 베이스 내에 존재하는 여러 테이블들이 서로 관계를 갖게 되며 운영

- 데이터 베이스의 테이블 간의 관계를 분명하게 설정

- 제약 조건들을 사용하여 정확한 데이터들을 설정

 

 

: 무언가를 식별하는 고유한 식별자

1. 기본키 (PRIMARY KEY) : 후보키 중 한가지

- null값 불가

2. 슈퍼키 (SUPER KEY) : 각 행을 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합

3. 후보키 (CANDIDATE KEY) : 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합

4. 대체키 (ALTERNATE KEY) : 후보키가 2개 이상일 경우 그 중 하나를 기본키로 지정하고 남은 후보키

5. 외래키 (FOREIGN KEY) : 다른 테이블의 데이터를 참조할 때 없는 값을 참조할 수 없도록 제약

- 공통 칼럼

 

 

무결성 : 데이터 베이스에 저장된 값들이 정확하고 일관성 있는 데이터

1. 도메인 무결성 : 속성이 정의되어 있는 영역을 벗어나지 않도록 규정

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

- DEFAULT 제약 : 입력값을 지정하지 않았을 때 열의 값이 기본값으로 입력되도록 지정하는 값

- NOT NULL : NULL을 허용하지 않음 -> 무조건 값이 입력되어야 함

 

2. 개체 무결성 : 하나의 테이블에 중복된 레코드가 중복되지 않음

- 기본키 제약

- UNIQUE KEY : 값의 중복을 허용하지 않는 제약

#고유 제약은 값이 유일해야 하기 때문에 NULL도 한번만 입력 가능 -> NULL도 중복 불가

- PRIMARY KEY : 열에 유일한 값만 입력 -> NULL값 허용 안함

- CONSTRAINT (제약 조건) : 결점 없이 정확하고 유효한 데이터가 데이터 베이스에 저장될 수 있도록 하기 위해 데이터를 조작하는데에 한계를 규정

  - 제약 조건을 설정

  - 기본 형태

    CONSTRAINT 제약ID 제약 내용 (COLUMN명);

 

3. 참조 무결성 : 행을 입력, 수정, 삭제 할 때 얀관되는 다른 테이블과 데이터가 정확하게 유지

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

  -> 기본키의 칼럼명과 같아야 한다 

 

4. DICTIONARY : 데이터 베이스를 운영하는데 필요한 정보를 관리하는 별도의 객체들

- DATA DICTIONARY

  - 기본 테이블 :

  - 뷰 :

 

5. TABLE LEVEL 

 

6. 제약 변경

- 제약 조건을 주지 않아 조건을 추가하거나, 변경, 삭제

 

 

 

- ADD : 제약 추가

  기본 형태

ALTER TABLE 테이블명 ADD CONSTRAINT 제약이름 제약조건(칼럼명);

 

제약 조건을 보기 위해선 desc로 테이블을 불러와야 한다

 

 

- MODIFY : 제약 수정

  기본 형태 

ALTER TABLE 테이블명 MODIFY 칼럼명 칼럼조건;

 

 

 

- DROP : 제약 삭제

  기본 형태

ALTER TABLE 테이블명 DROP CONSTRAINT 제약이름;

 

 

 

-  DISABLE : 제약 비활성

   - 제약 조건을 삭제하지 않고도 제약 조건을 비활성화하여 사용을 잠시 보류 가능

   기본 형태

DROP TABLE 테이블명 ENABLE CONSTRAINT 제약조건;

 

- CASCADE : 제약 조건 삭제

  - 데이터 베이스내의 임의의 다른 테이블과 PRIMARY KEY 또는 FOREIGN KEY로서 관계가 여전히 존재하는 경우, PRIMARY KEY가 존재하는 테이블을 마음대로 제거할 수 없는 경우에 사용

  기본 형태

DROP TABLE 테이블명 CASCADE CONSTRAINTS;

 

 

 

 

 

 

 

'DATABASE > SQL' 카테고리의 다른 글

[SQL] VIEW  (0) 2018.04.19
[SQL] SCHEMA - 스키마  (0) 2018.04.19
[SQL] TRANSACTION  (0) 2018.04.19
[SQL] DML  (1) 2018.04.19
[SQL] DDL  (0) 2018.04.19
댓글