데이터의 무결성
-
데이터의 무결성
데이터의 정확성, 일관성, 유효성이 유지되는 것.
RDBMS의 중요한 기능
데이터에 적용되는 연산에 제한을 두어 유지
-
종류
-
개체 무결성
모든 테이블이 기본 키(primary key)로 선택된 필드(column) 가져야 함
기본 키로 선택된 필드는 고유한 값을 가져야 하며, 빈 값은 허용하지 않음
-
참조 무결성
참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되는 것
-
도메인 무결성
테이블에 존재하는 필드의 무결성을 보장하기 위한 것
필드의 타입, NULL 값 허용 등에 대한 사항을 정의하고 올바른 데이터가 입력됐는지 확인하는 것
-
무결성 규칙
데이터의 무결성을 지키기 위한 모든 제약 사항
비즈니스 규칙은 DB를 이용하는 각각의 유저에 따라 서로 다르게 적용되지만 무결성 규칙은 DB 전체에 공통적으로 적용되는 규치
-
-
키
DB 데이터의 무결성을 유지하기 위한 중요한 수단으로 사용
-
종류
-
슈퍼 키
테이블에 존재하는 필드들의 부분집합
유일성을 만족해야 함
-
후보 키
슈퍼키 중에서 최소성을 만족하는 키
기본 키가 될 수 있는 후보
테이블에 존재하는 전체 필드의 기본 집합
유일성, 최소성을 만족시켜야 함. (유일성 : 모든 레코드에서 해당 필드에 중복된 값이 나타나지 않는다는 속성. 최소성 : 최소한의 필드로 레코드를 유일하게 구별할 수 있어야 한다는 속성)
-
기본 키
테이블에서 특정 레코드를 구별하기 위해 후보 키 중에서 선택된 고유한 식별자
유일성, 최소성을 가져야 하며, NULL 값을 가질 수 없음.
-
고려사항
-
값이 자주 변경되지 않는 값을 선택
기본 키로 선택된 필드는 값이 변경될 때 마다 유일성, NULL값 검사 당을 해야하기 때문에 자주 변경되면 성능 떨어짐
-
값이 단순한 것을 선택
기본 키로 선택된 필드에 저장되는 데이터가 많은 자릿수를 갖는 정수이거나 많은 문자를 포함하는 문자열 이라면 기본 키 비교 시 그만큼 더 많은 리소스를 가지며 성능 떨어짐
-
-
-
대체 키
후보 키 중에서 기본 키로 선택된 것들을 제외한 모든 키
-
복합 키
한 개 이상의 필드를 포함하는 키
-
외래 키
테이블의 키 중에서 다른 테이블의 레코드를 유일하게 식별할 수 있는 키
한 테이블의 레코드에서 다른 테이블의 레코드를 참조하기 위해 이용됨
속성을 제약조건으로 사용하여 참조 무결성과 관련된 문제가 발생하지 않도록 함
-
속성
-
하나의 필드 또는 전체 필드의 부분집합으로 구성됨
-
중복된 값과 NULL 값 가질 수 있음
-
반드시 참조되는 테이블에서 유일한 값을 갖는 필드를 참조해야 함
-
참조되는 테이블에 존재하는 값만을 가져야 함. NULL 값은 실제로 존재하는 값은 아니지만 DB에서는 예외로 함
-
-
참조 무결성
참조 대상이 존재하지 않는 외래 키를 허용하지 않음
지키기 위해 RESTRICTED, CASCADE, SET NULL 이라는 개념을 외래 키에 적용할 수 있도록 기능 제공함
-
RESTRICTED
레코드를 변경 또는 삭제하고자 할 때 해당 레코드를 참조하고 있는 개체가 있다면 변경 또는 삭제 연산을 취소함
-
CASCADE
레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고 잇는 개체도 변경 또는 삭제됨
-
SET NULL
레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고 있는 개체의 값을 NULL 로 설정
-
-
-
-
-
출처 : https://untitledtblog.tistory.com/123