본문 바로가기

정보관리기술사/데이터베이스

데이터 무결성 (Data Integrity)

반응형

I. 데이터베이스 정합성을 유지하기 위한 데이터 무결성 개요

가. 데이터 무결성 (Data Integrity)의 정의

1) 허가를 받은 사용자가 수행하는 모든 작업에 있어 Database에 저장된 데이터의 일관성(Consistency)

 정확성(Correctness)을 유지하기 위한 Database의 제약조건

2) 데이터베이스의 정확성(Correctness) 또는 정밀성(Accuracy)을 유지하기 위한 데이터베이스개념

 

나. 데이터 무결성 제약(Constraint)의 개념

1) 데이터의 ACID를 보장하기 위하여 데이터베이스 상태가 항상 만족시켜야할 규범

2) 무효갱신으로부터 데이터를 안전하게 보호하기 위한 데이터베이스의 설계 규칙

 

다. 데이터 무결성 제약조건의 장점

1) 테이블 생성시 무결성 제약조건을 정의 가능

2) 테이블에 대해 정의, 데이터 딕셔너리에 저장되므로 응용 프로그램에서 입력된 모든 데이터에 대해 동일하게 적용

3) 제약조건을 활성화, 비활성화 할 수 있는 융통성(트랜잭션의 특징)

특 징

설명

Atomicity

(원자성)

- 트랜잭션은 분해가 불가능한 최소의 단위로서 연산 전체가 처리되거나 전체가 처리되지 않아야 함(All or Nothing)

- Commit, Rollback 연산, 트랜잭션관리 컴포넌트 담당

Consistency

(일관성)

- 트랜잭션이 실행을 성공적으로 완료하면 언제나 모순 없이 일관성 있는 데이터베이스 상태를 보존함

- DBMS의 무결성 제약조건 처리가 담당

Isolation

(고립성)

- 트랜잭션이 실행 중에 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근할 수 없음

- 동시성제어 컴포넌트 담당

Durability

(영속성)

- 성공이 완료된 트랜잭션의 결과는 영구()적으로

데이터베이스에 저장됨

- 회복관리 컴포넌트 담당

II. 데이터 무결성의 종류 및 확보방안

가. 데이터 무결성의 종류(개참속키사도)

무결성

개념

제약조건 예

기능

개체 무결성

(Entity Integrity)

- 기본키는 반드시 값을 가짐

- 기본키는 유일성을 보장하는 최소한의 집합

Primary Key,

NOT NULL

NULL 허용 안함

참조 무결성

(Referential Integrity)

- 외래키 속성은 참조할 수 없는 값을 지닐 수 없음

- 외래키 값은 그 외래키가 기본키로 사용된 릴레이션의 기본키 값이거나 NULL 값일 것

Foreign Key

부모와 자식 사이 입력, 수정, 삭제 제약

속성 무결성

(Attribute Integrity)

- 컬럼은 지정된 데이터 형식을 반드시 만족하는 값만 포함

 

Character,

Date, LONG

VARCHAR2,

NUMBER

정의된 값만 입력

키 무결성

(Key Integrity)

- 한 릴레이션에 같은 키 값을 가진 튜플들은 허용 안 됨

Primary Key + Unique Index

중복배제

사용자 정의

무결성

- 모든 데이터는 업무 규칙 (Business  Rule)을 준수해야 함

Trigger,

User Define Data Type,

Check,

DEFAULT Value

업무적 의미 값만 허용

도메인 무결성

(Domain Integrity)

- 특정 속성 값이 미리 정의된 도메인 범위에 속해야 함

CHECK, Default

허용된 범위 값 입력

 


 

나. 데이터 무결성 확보방안

DBMS 요소

내용

Primary Key

- 지정된 컬럼들이 유일성 위배없음 보장

- Primary Key not NULL (Null값 허용안함)

Unique

- 다중 보조키 개념 지원

- Primary Key와 마찬가지로 지정된 컬럼들의 유일성이 위배되지 않음 보장

- Unique NULL 허용

Foreign Key

- 테이블 간의 논리적 관계 유지보장

- Foreign Key값은 반드시 참조하는 테이블의 Primary Key

- Foreign Key 값은 NULL 값 허용

- Cascaded Option : Master 삭제시 레코드 함께 삭제

- Nullified Option : Master 삭제시 해당 값 NULL로 세팅

- Restricted Option : Foreign Key 존재시 Master 레코드 삭제 불가

Data Type

- 데이터의 형을 제한함으로써 데이터 무결성 유지

Check

- 데이터를 추가할 때마다 SQL 서버가 해당 값이 해당 컬럼들에

지정된 Check 제약 위배 여부 검사

Default

- 특정 컬럼에 대해 명시적으로 값을 입력하지 않은 경우에 SQL

서버가 자동적으로 지정된 값을 삽입

- INSERT 또는 UPDATE에서 DEFAULT 키워드를 사용할 수 있음

Trigger

- 테이블의 내용을 변경하려는 특정 사건(DB 연산)에 대해서

DBMS가 미리 정의된 일련의 행동(DB 연산)들을 수행하는 메커니즘

- DBMS 서버에 의해 자동적으로 호출

- 데이터에 대한 변경을 시도할 때마다 자동적으로

호출(데이터의 변경 전 상태와 변경 후의 상태를 사용)

- 트랜잭션의 철회(rollback)와 같은 동작을 수행할 수 있음

- 저장 프로시저의 특별한 형태로서 SQL의 모든 기능을 이용할 수 있음

- 참조 무결성을 위해 사용될 수도 있음. 참조 무결성이 위배되는 경우에 원하는 동작을 하도록 트리거를 구성

 

다. 참조무결성의 예시

1) 참조 무결성 예시

 

 

  - 고객 테이블과 주문 테이블의 관계에서 주문 테이블의 새로운 데이터를 입력하기 위해서는

   반드시 고객 테이블에 사전에 정보가 들어가 있어야 함

   - 참고로, 참조 무결성이 DBMS에 걸려있는 테이블에서는 인덱스가 생성되어 있지 않으면

   성능 상의 문제가 나타날 수 있음

 

2) 무결성 예시 테이블

III. 데이터 무결성 유지를 위한 동시성 제어 유형 및 비교 방법

가. 동시성 제어 기법 유형 è 무결성유지

 

 

 

나. 동시성 제어 기법 유형 비교

구분

2PL

타임스탬프

낙관적 검증

다중제어

특징

- 확장,수축

단계 구분

- 오류가능성

사전 방지

- 구현 용이

- 교착상태

방지

- 대기시간

없음

- 직렬성 보장

- 조회위주

DB에 효과적

- 오류가 없는 환경에 적합

- 트랜잭션

종료 시

일괄 처리

- 여러 개의  버전을 유지

- 다른 트랜잭션에서는 이전버전의 읽기를 보장

문제점

- 교착상태

발생 가능

- 대기시간이

길어짐

- 연쇄복귀

가능성

- 복귀 시 자원 낭비 (Rollback)

- 많은 저장공간 필요

- hot-backup 시스템 지원

사용

시점

 

웹페이지 등의 조회중심의 업무처리

- 업무구분이 명확하여 중복이 없을 시

 

 

 

V. 데이터 무결성 유지를 위한 회복 기법 유형 및 유형비교 방법

가. 데이터베이스 회복 기법 종류

 

구분

설명

로그기반 회복 기법

- 로그 파일을 이용한 복구

- Redo, Undo를 결정하기 위해서 로그 전체를   조사해야 되기 때문에 시간이 너무 많이 걸림

(로그기반)

즉시갱신

기법

- 로그파일을 이용한 복구

- REDO,UNDO를 결정하기 위해서 로그 전체를 조사해야 되기 때문에 시간이 너무 많이 걸림

- REDO를 할 필요가 없는 트랜잭션을 또다시 REDO해야 하는 문제 발생

 

(로그기반)

지연갱신

기법

- 트랜잭션 단위가 종료될 때까지 DB Write 연산을 지연시키고 동시에 DB 변경 내역을 Log 에 보관한 후 트랜잭션이 완료되면 Log 를 이용하여 데이터베이스에 Write 연산을 수행
-
트랜잭션이 종료된 상태이면 회복 시 Undo 없이 Redo 만 실행
-
트랜잭션이 종료가 안된 상태였으면 Log 정보는 무시함

 

Check Point 기법

- 효율적인 로그 이용을 위한 Chech Point

- 로그파일과 검사점(Check Point)을 이용한 복구

- 로그기반보다 상대적 으로 회복 속도가 빠름

그림자 페이지기법

- 그림자 페이지(Shadow Paging) 테이블 이용한  복구

- Undo가 간단하고 Redo가 불필요 하므로 수행 속도가 빠르고 간편.

 

 

나. 데이터베이스 회복 기법간 비교

구분

로그기반 기법

CheckPoint회복기법

그림자 페이징 기법

복구과정

UNDO,REDO 사용

UNDO 사용

그림자 테이블 교체

복구속도

느림

로그보다 빠름

빠름

디스크

사용

적은 사용량

적음

많음

복구

데이터

하나의 파일을  

로그로 사용

하나의 로그 파일

분산된 그림자 테이블

확장성

확장이 용이

용이

알고리즘 복잡

 

 

VI. 데이터 무결성을 위한 데이터 정규화

 

정규화

정규화 내용

1차 정규화

복수의 속성값을 갖는 속성을 분리

2차 정규화

주식별자에 종속적인지 않은 속성의 분리

부분종속 속성(PARTIAL DEPENDENCY ATTRIBUTE)  분리

3차 정규화

속성에 종속적인 속성의 분리

이전종속 속성(TRANSITIVE DEPENDENCY) 의 분리

보이스-코드 정규화

다수의 주식별자 분리(후보키가 여러 개)

4 정규화

다가 종속(Multi-Valued Dependency) 속성분리

5 정규화

결합종속(Join Dependency)일 경우는 세 개 이상의 N개로 분리

 

 

VII. 데이터 무결성의 확보 목적 (기대효과)

가. Data의 정확성 확보로 신뢰할 수 있는 정보 제공

나. Data의 일관성 유지로 자료의 효율적인 관리

다. 데이터 무결성 규칙 강제 시행은 장점과 함께 약간의 성능저하를 동반함.  

 

 

반응형