[DB] SQL 데이터의 무결성 제약조건

데이터 무결성이란

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



데이터 제약조건이란

정확하고 유효한 데이터가 데이터베이스에 저장 될 수 있도록 하기 위하여 데이터를에 한계를 규정한 것



KEY

이 장의 제목인 무결성 제약조건에서 자주 보이는 용어들이 있는데, 그 중에서도 슈퍼키,기본키,외래키 등  키(=key)라는 개념이 나오게 된다. 그렇기 때문에 이 장에서 간략하게 KEY에 대한 정의를 말하고 넘어가겠다. 라는 것은 '무언가를 식별하는 고유한 식별자(identifier)기능'을 하게된다. 자세한 내용은 실제 키라는 개념을 사용하게 되는 키 종류 설명때 더 자세히 설명 하도록 하겠다.


KEY의 종류

 슈퍼키

각 행을 유일하게 식별할 수있는 하나 또는 그 이상의 속성들의 집합 

 후보키

각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합 

 대체키 

후보키가 두 개 이상일 경우 그 중에서 어느 하나를 기본키로 지정하고 남은 후보키들을 뜻함. 대체키는 기본키로 선정되지 않은 후보키를 의미한다 

 기본키

 하나의 테이블에 중복된 레코드가 존재하지 않도록 규정하는 것

외래키 

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


무결성의 종류


무결성 ->도메인 무결성 -check

    -not null

    -default

     

       

     ->  개체 무결성  - primary key(=기본키)

     - unique


      

     ->   참조 무결성  - foreign key



도메인 무결성 


속성이 정의 되어 있는 영역을 벗어나지 않도록 규정


[check]

값의 범위를 정해 놓는 제약


기본 형태 : create table 테이블명(

id number

constraint primary key(10));



[not null]

null을 허용하지 않는다는 말로써 이 제약조건에선 반드시 값이 입력되어야 한다.


기본 형태 :  create table 테이블명(

id number not null

username varchar2(20));




[default] 

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


기본 형태 :  create table 테이블명(

id number primary key(10)

loc varchar2(13) default 'i425' );



개체 무결성

중복된 레코드가 존재하지 않도록 규정하는 것(=기본키 제약 이라고도 부른다)


[unique]
값의 중복을 허용하지 않는 제약

기본 형태 :  create table 테이블명(

id number primary key(10)

loc varchar2(13) unique );


[primary key](=기본키)

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


기본 형태 :  create table 테이블명(

id number primary key(10));


참조 무결성

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


FOREIGN KEY

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

참조될 테이블이 먼저 만들어지고 값이 입력되어야 한다이때참조될 열의 값은

참조될 테이블에서 PRIMARY KEY로 설정되어 있어야한다.


DICTIONARY

스키마사용자객체권한데이터베이스의 정보 등등오라클 데이터베이스를 운영하는데 필요한 정보를 관리하는 별도의 객체들을 일컫는다.

Data Dictionary 기본 테이블과 뷰의 두가지 형태가 있는데기본 테이블은 데이터베이스에 관한 정보를 갖고 있는 테이블로 오라클 서버만 기록할 수 있고 데이터가 은폐되어 있으므로 사용자가 직접 접근할 수 없다.

뷰는 기본 테이블의 내용을 보여주는 방식으로사용자는 뷰를 마치 테이블 처럼 사용할 수 있다.


TABLE LEVERL

테이블의 각열을 생성할 때 제약을 언제 생성하는지에 따라서 2가지의 레벨 제약으로 나뉜다


제약변경

제약조건을 주지 않아 추가하거나, 제약조건을 변경, 삭제하는 경우 alter이용하여 변경가능

ALTER TABLE 테이블명 ADD CONSTRAINT 제약 이름 제약 조건;

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

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


제약 비활성

제약 조건을 삭제하지 않고도 제약 조건을 비활성화하여 사용을 잠시 보류할 수 있도록 하는 기능이다.

ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건;

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


CASCADE CONSTRAINTS

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

이럴 경우 삭제하는 방법으로 CASCADE가 쓰인다

<기본형식>

DROP TABLE 테이블 이름 CASCADE CONSTRAINTS





'IT > [DB]' 카테고리의 다른 글

[DB]SubQUERY 알아보기  (1) 2018.04.21
[DB]sql Join의 개념과 종류  (0) 2018.04.21
[DB] SQL DML을 알아보자!!  (1) 2018.04.19
[DB]SQL의 DDL을 알아보기!!!  (0) 2018.04.19
[DB]Group Function / 집합 set  (0) 2018.04.18
TAGS.

Comments