"무결성"의 두 판 사이의 차이
(→종류) |
leejia1222 (토론 | 기여) (→종류) |
||
5번째 줄: | 5번째 줄: | ||
==종류== | ==종류== | ||
− | *'''독립체 무결성''' | + | *'''독립체 무결성'''(entity integrity) : 행을 특정 테이블의 고유 독립체로 정의하는 것으로 해당 열에 중복된 값을 허가하지 않는 독특한 제약 조건 또는 주요 키(Primary Key) 제약 조건을 설정하여 테이블의 기본 키나 식별자로 사용되는 열의 무결성을 강제하도록 한다. 테이블의 각 행이 고유하고 널이 아닌 기본 키값을 갖는지 확인하는 것과 관련이 있다. 이것은 테이블의 각 행이 테이블에 의해 모델링 된 독립체 유형의 단일 [[인스턴스]]를 나타냄과 동일하다. 독립체 무결성의 관계형 모델은 모든 관계 (또는 테이블)에 기본 키 라고 하는 식별자가 있어야 하며, 같은 관계의 모든 행을 내용으로 식별할 수 있어야 한다. |
− | |||
− | *'''도메인 무결성''' | + | *'''도메인 무결성'''(domain integrity) : 열에 대한 데이터 무결성을 보장하기 위한 것이다. [[컬럼]]의 값이 널 값을 허용하지 않거나, 데이터 타입이 적절한지, 올바른 형식의 데이터가 저장되었는지 등을 확인한다. 체크(Check), 디폴트(Default) , NOT NULL 등의 제약(constraints)들로 이러한 도메인 무결성을 보장할 수 있다. 예를 들어, 생일 날짜 컬럼에 알파벳이 입력되는 경우 도메인 무결성을 위반하는 것이라 볼 수 있다. 오라클 데이터베이스의 경우 물리적으로 주요 키(Primary Key) 제약과 외부키(Foreign Key) 제약을 제외한 속성에 설정하는 모든 제약을 말한다. |
− | |||
− | *'''참조 무결성''' | + | *'''참조 무결성'''(referential integrity) : 개체 간 참조 관계가 존재할 때, 두 개체 간 데이터가 일관성을 가질 수 있도록 보증하는 방법이다. 일반적으로 외부키(Foreign Key)로 제약을 주어 무결성을 보장할 수 있고 데이터 변경이 있을 때(데이터 행 입력 혹은 삭제 시) 데이터 입력 및 수정 시 묵시적으로 수행되는 프로시저(procedure)인 트리거(trigger)를 통해 관련 값들을 재조정할 수 있다. |
− | |||
− | *'''사용자 정의 무결성''' | + | *'''사용자 정의 무결성'''(user-defined integrity) : 위의 세 가지 무결성에 해당하지 않지만, 사용자가 정의한 규칙에 의한 무결성으로 다양한 응용의 필요에 따라 정의한다. 데이터베이스 무결성을 보장하기 위해서는 데이터를 조작하는 프로그램 즉, 응용 내에 무결성 조건 검증 코드를 추가하는 방법, 트리거 이벤트를 통해 무결성 조건을 유지하는 방법, 혹은 [[데이터베이스]] 내의 제약 조건 설정을 통해 무결성을 유지하는 방법 등이 있다. |
− | |||
{{각주}} | {{각주}} |
2019년 10월 28일 (월) 19:31 기준 최신판
무결성(integrity)은 특정한 데이터를 보호하여 그 데이터를 정상적인 상태로 유지하는 성질이다. 블록체인은 어느 누구도 장부의 내용을 위 변조 할 수 없도록 해시 알고리즘이 시스템 전반에 적용되어 무결성을 보장한다.
개요[편집]
무결성은 관계형 데이터베이스에서 데이터의 정확성과 일관성을 유지하고, 데이터에 결손과 부정합이 없음을 보증하는 것을 의미한다. 데이터베이스 내의 데이터에 대한 정확성, 일관성, 유효성, 신뢰성을 보장하기 위해 데이터 변경 혹은 수정 시 여러 가지 제한을 두어 데이터의 정확성을 보증하는 것을 말한다. 관계형 데이터베이스 관리시스템에서는 데이터베이스 설계 시 무결성을 고려한 설계로 데이터를 보호할 필요가 있다. 데이터 무결성은 데이터를 보호하고, 항상 정상인 데이터를 유지하는 것을 말하고, 그 보호를 위하여 여러 가지 연구가 이루어지고 있다. 또 어떤 파일의 갱신을 특정인에게만 인정하는 연구나 만일의 파괴에 대비하여 별도의 매체에 미리 복사해두는 경우 등을 들 수 있다. 운영 체제는 직접 액세스 기억 정치상의 파일에 레이블을 붙이는 기능을 갖추고 있다. 이로써 파일의 취급 방법이 잘못되어도 최신 데이터가 파괴되지 않도록 되어 있다.[1]
종류[편집]
- 독립체 무결성(entity integrity) : 행을 특정 테이블의 고유 독립체로 정의하는 것으로 해당 열에 중복된 값을 허가하지 않는 독특한 제약 조건 또는 주요 키(Primary Key) 제약 조건을 설정하여 테이블의 기본 키나 식별자로 사용되는 열의 무결성을 강제하도록 한다. 테이블의 각 행이 고유하고 널이 아닌 기본 키값을 갖는지 확인하는 것과 관련이 있다. 이것은 테이블의 각 행이 테이블에 의해 모델링 된 독립체 유형의 단일 인스턴스를 나타냄과 동일하다. 독립체 무결성의 관계형 모델은 모든 관계 (또는 테이블)에 기본 키 라고 하는 식별자가 있어야 하며, 같은 관계의 모든 행을 내용으로 식별할 수 있어야 한다.
- 도메인 무결성(domain integrity) : 열에 대한 데이터 무결성을 보장하기 위한 것이다. 컬럼의 값이 널 값을 허용하지 않거나, 데이터 타입이 적절한지, 올바른 형식의 데이터가 저장되었는지 등을 확인한다. 체크(Check), 디폴트(Default) , NOT NULL 등의 제약(constraints)들로 이러한 도메인 무결성을 보장할 수 있다. 예를 들어, 생일 날짜 컬럼에 알파벳이 입력되는 경우 도메인 무결성을 위반하는 것이라 볼 수 있다. 오라클 데이터베이스의 경우 물리적으로 주요 키(Primary Key) 제약과 외부키(Foreign Key) 제약을 제외한 속성에 설정하는 모든 제약을 말한다.
- 참조 무결성(referential integrity) : 개체 간 참조 관계가 존재할 때, 두 개체 간 데이터가 일관성을 가질 수 있도록 보증하는 방법이다. 일반적으로 외부키(Foreign Key)로 제약을 주어 무결성을 보장할 수 있고 데이터 변경이 있을 때(데이터 행 입력 혹은 삭제 시) 데이터 입력 및 수정 시 묵시적으로 수행되는 프로시저(procedure)인 트리거(trigger)를 통해 관련 값들을 재조정할 수 있다.
- 사용자 정의 무결성(user-defined integrity) : 위의 세 가지 무결성에 해당하지 않지만, 사용자가 정의한 규칙에 의한 무결성으로 다양한 응용의 필요에 따라 정의한다. 데이터베이스 무결성을 보장하기 위해서는 데이터를 조작하는 프로그램 즉, 응용 내에 무결성 조건 검증 코드를 추가하는 방법, 트리거 이벤트를 통해 무결성 조건을 유지하는 방법, 혹은 데이터베이스 내의 제약 조건 설정을 통해 무결성을 유지하는 방법 등이 있다.
각주[편집]
참고자료[편집]
- 나동빈, 〈블록체인의 기본, 해시란 무엇인가?〉, 《비트웹》, 2018-02-12
- 〈무결성〉, 《두산백과》
- 〈무결성〉, 《네이버 지식백과》
- 〈데이터 무결성〉, 《위키백과》
- 〈엔터티 무결성〉, 《위키백과》
- 〈도메인(속성) 무결성 규칙〉, 《데이터전문가 지식포털》, 2015-01-20
같이 보기[편집]