본문 바로가기

Programming/[DB]

[DB] 데이터의 무결성

관계형 데이터 베이스

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

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

 

열쇠는 무언가를 열거나 잠글 때 사용 하는 것으로, 같은 것이 하나도 없다.

 

이와 같이 키(Key)라는 것은 무언가를 식별하는 고유한 식별자(identifier) 기능을 한다.

 

, 키는 데이터베이스에서 조건에 만족하는 관계의 행을 찾거나 순서대로 정렬할 때 다른 행과 구별할 수 있는 유리한 기준이 되는 속성의 집합이다.

 

종류

슈퍼키(super key) : 각 행을 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합
후보키(candidate key) : 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합이다.
대체키(alternate key) : 후보키가 두 개 이상일 경우 그 중에서 어느 하나를 기본키로 지정하고 남은 후보키들대체키이다. 대체키는 기본키로 선정되지 않은 후보키를 의미한다.

무결성

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

 

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

제약조건

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

 

CONSTRAINT

Constraint는 제약조건을 설정할 때 쓰인다.

Constraint 뒤에 제약조건의 id를 설정할 수 있다.

 

Constraint 를 생략할 시 제약id를 자동으로 생성해준다.

 

<기본형식>

Constraint 제약id 제약내용(COLUMN );

 

무결성

 

 

도메인 무결성

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

CHECK 제약

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

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

 

DEFAULT 제약

 

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

 

NOT NULL 제약

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

 

개체 무결성

하나의 테이블에 중복된 레코드가 존재하지 않도록 규정하는 것, 기본키 제약이라고도 부른다.

UNIQUE

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

 

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

 
PRIMARY KEY(기본 키, 주키)

열에 유일한 값만 입력 되도록 제약을 주는 것으로 NULL값을 허용하지 않음

 

UNIQUE NOT NULL이 합쳐진 것

 

참조 무결성

 

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

 

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

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

[DB] SUBQUERY  (0) 2018.04.20
[DB] JOIN  (0) 2018.04.20
[DB] 데이터베이스의 분석 설계 과정  (0) 2018.04.19
[DB] TRANSACTION  (0) 2018.04.19
[DB] DML  (0) 2018.04.19