I. 데이터 무결성의 개요
가. 데이터 무결성의 정의
개체 간 적용되는 규칙을 위반하지 않도록 제약(Constraints)하여 데이터의 일관성, 정확성 유지 방법
나. 데이터 무결성의 중요성
중요성 | 설명 |
---|---|
합리적 의사결정 | – 현실을 정확히 반영 데이터가 신속, 명확 의사결정 |
데이터 중복 감소 | – 중복 데이터 증가에 따른 데이터 불일치 현상 |
데이터 신뢰성 | – 비즈니스 룰에 적합한 데이터 생산, 관리 |
II. 데이터 무결성의 기법
가. 데이터 무결성 유형
무결성 규칙 | 설명 |
---|---|
개체 유일성 | 기본키는 Null 불가하며, 유일해야 하는 속성 예) 고객번호가 없는 레코드는 존재 불가 |
참조 일관성 | 테이블 간 관계로 연결된 데이터는 일관성 유지 필요 예) 주문고객의 고객번호는 존재하거나 Null값 |
속성 일치성 | 속성의 값은 그 속성이 정의된 도메인에 속한 타입 일치 예) 고객 번호는 정수이어야 함 |
사용자 정의 만족 | 값들은 사용자가 정의한 제약조건을 만족 예) 주문 취소금액은 주문 금액보다 작음 |
키 유일성 | 한 개체에 같은 값을 가진 레코드는 불허 예) 동일한 고객번호는 존재하지 않음 |
나. 무결성 제약조건 유형
구분 | 제약 유형 | 사례 |
---|---|---|
선언적 방법 | NOT NULL | 모든 열 NULL 허용하나, NOT NULL 제약조건 시 해당 컬럼에 NULL 비허용 |
Unique Key | 두 행이 지정된 열, 열 집합 중요 값 갖지 않음 | |
Primary Key | 하나 이상의 열 그룹은 고유한 식별자 | |
Foreign Key | 상위 테이블 및 하위 테이블 칼럼 구현 | |
Check | 열, 열집합 각 행에 대해 지정된 조건 | |
절차적 방법 | 트리거 | 특정 조건에 도달하면 자동 동작 |
Stored Procedure | DBMS 지원 절차적 언어 | |
Application | 비즈니스 로직 표현 시 무결성 확보 |
III. 데이터 무결성 확보 방안
가. 무결성 적용 개념도
구현 방법 | 설명 |
---|---|
DB | 물리적 무결성 반영, 테이블에 선언적 방법 기술 |
DBMS | 무결성 반영, 트리거, Stored Procedure, DB암호화 등 |
미들웨어 | 권한 설정, 접근 통제, 2PC |
네트워크 | 해킹, 웜 등 데이터 변조 및 파괴 방지 기법 |
클라이언트 | 입력 과정 실수 방지, APP 내 프로그램 오류 제거 |
나. 담당자 별 무결성 확보 방안
담당자 | 적용 절차 |
---|---|
사용자 | 사용자 교육 통한 오류 데이터 입력 방지 |
DBA | 보안관리, 장애 처리, 백업 및 복구 |
설계자 | 모델링 과정에서 무결성을 고려한 DB 설계 |
개발자 | 비즈니스 로직 구현 및 충분한 테스트 실시 |
IV. 무결성 확보를 위한 고려사항
가. 개발 및 운영 관점 무결성 확보 방안
설계 및 구현 관점 | – 데이터 모델링 시부터 무결성 고려한 설계가 중요 – 개발 과정에서 무결성 훼손 가정하여 코딩 수행 – 개발 전 과정을 통하여 품질관리활동 통해 정확성향상 |
운영 관점 | – 사용자 교육 및 입력화면에서의 완벽한 입력 체크 – 변경 필요 시 변경 절차에 따라 백업 후 처리 중요 |
나. 데이터 무결성 강화 방법
유형 | 설명 |
---|---|
응용 프로그램 소스 | – 데이터 조작 프로그램 내 데이터 생성/수정/삭제 시 무결성 조검 검증 코드 추가 |
트리거 | – 트리거 이벤트 시 저장SQL 실행 후 무결정 조건 실행 |
제약조건 | – 제약조건 기능을 선언하여 무결성을 유지 |