데이터베이스 | 무결성 & 정합성

Jihun Kim·2022년 9월 4일
0

데이터베이스

목록 보기
7/7

데이터 무결성과 정합성

무결성

무결성(Integrity)란 데이터의 정확성, 일관성 및 유효성이 유지되는 특성을 말한다.

  • 데이터가 정확하고 완전해야 한다.
    • 즉, 개발자가 의도한 상태로 존재해야 한다.
  • 무결성에는 제약 조건이 존재한다.

무결성 제약조건의 종류

개체 무결성(Entity Integrity)

pk(기본키)는 NULL이 올 수 없으며 unique 해야 한다.

  • 개체 식별에 오류가 없도록 하기 위한 조건이다.

참조 무결성(Referential Integrity)

외래키는 참조할 수 없는 값을 가질 수 없다.

  • 개체의 fk는 참조되는 개체의 pk와 일치하거나 NULL이어야 한다.
  • 이는 두 개체의 연관된 인스턴스 사이의 일관성을 유지하기 위한 제약이다.

도메인 무결성(Domain Integrity)

속성 값과 관련된 제약으로, 올바른 데이터가 입력되었는지 확인하는 것을 말한다.

  • 필드 타입, null 값의 허용 등 해당 속성에 맞는 데이터가 들어가야 한다.
  • 가령, 전화번호 필드에는 숫자가 들어가야 하는데 “전화번호입니다~”가 들어간다면 이는 무결성이 훼손된 것이다.

키 무결성(Key Integrity)

릴레이션(테이블)에는 최소한 하나의 키가 존재해야 한다.


NULL 무결성(Null Integrity)

“유저 아이디”와 같은 특정 속성 값은 null을 가질 수 없다.

  • 따라서 스키마를 정의할 때 해당 속성이 null을 가질 수 없음을 미리 정의할 경우, 해당 속성에는 null이 들어가면 안된다.

고유 무결성(Unique Integrity)

릴레이션의 특정 속성이 고유한 값을 갖도록 조건이 주어진다면, 그 속성들은 모두 달라야 한다(고유한 값을 가져야 한다).



정합성

어떤 데이터들의 값이 서로 일치할 때 “데이터 정합성이 맞다”고 표현한다.

  • 중복 데이터를 많이 사용할 경우(반정규화 되어 있는 경우) 데이터 정합성이 깨질 수 있다.
  • 데이터는 서로 모순 없이 일관되게 일치해야 한다
    .

어떤 데이터는 정합성에는 이상이 없지만 무결성은 훼손되어 있을 수 있다.

즉, 사용자의 잔고에 int가 아닌 boolean이 동일하게 들어간 경우 중복 데이터가 전부 동일하지만 그 값이 올바르지 않은 상태이다. 이 경우, 정합성은 만족하지만 무결성은 훼손된 상태인 것이다.

profile
쿄쿄

0개의 댓글