2 minute read

  • 데이터의 무결성

    데이터의 정확성, 일관성, 유효성이 유지되는 것.

    RDBMS의 중요한 기능

    데이터에 적용되는 연산에 제한을 두어 유지

    • 종류

      • 개체 무결성

        모든 테이블이 기본 키(primary key)로 선택된 필드(column) 가져야 함

        기본 키로 선택된 필드는 고유한 값을 가져야 하며, 빈 값은 허용하지 않음

      • 참조 무결성

        참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 갖도록 유지되는 것

      • 도메인 무결성

        테이블에 존재하는 필드의 무결성을 보장하기 위한 것

        필드의 타입, NULL 값 허용 등에 대한 사항을 정의하고 올바른 데이터가 입력됐는지 확인하는 것

      • 무결성 규칙

        데이터의 무결성을 지키기 위한 모든 제약 사항

        비즈니스 규칙은 DB를 이용하는 각각의 유저에 따라 서로 다르게 적용되지만 무결성 규칙은 DB 전체에 공통적으로 적용되는 규치

    • DB 데이터의 무결성을 유지하기 위한 중요한 수단으로 사용

      • 종류

        • 슈퍼 키

          테이블에 존재하는 필드들의 부분집합

          유일성을 만족해야 함

        • 후보 키

          슈퍼키 중에서 최소성을 만족하는 키

          기본 키가 될 수 있는 후보

          테이블에 존재하는 전체 필드의 기본 집합

          유일성, 최소성을 만족시켜야 함. (유일성 : 모든 레코드에서 해당 필드에 중복된 값이 나타나지 않는다는 속성. 최소성 : 최소한의 필드로 레코드를 유일하게 구별할 수 있어야 한다는 속성)

        • 기본 키

          테이블에서 특정 레코드를 구별하기 위해 후보 키 중에서 선택된 고유한 식별자

          유일성, 최소성을 가져야 하며, NULL 값을 가질 수 없음.

          • 고려사항

            1. 값이 자주 변경되지 않는 값을 선택

              기본 키로 선택된 필드는 값이 변경될 때 마다 유일성, NULL값 검사 당을 해야하기 때문에 자주 변경되면 성능 떨어짐

            2. 값이 단순한 것을 선택

            기본 키로 선택된 필드에 저장되는 데이터가 많은 자릿수를 갖는 정수이거나 많은 문자를 포함하는 문자열 이라면 기본 키 비교 시 그만큼 더 많은 리소스를 가지며 성능 떨어짐

        • 대체 키

          후보 키 중에서 기본 키로 선택된 것들을 제외한 모든 키

        • 복합 키

          한 개 이상의 필드를 포함하는 키

        • 외래 키

          테이블의 키 중에서 다른 테이블의 레코드를 유일하게 식별할 수 있는 키

          한 테이블의 레코드에서 다른 테이블의 레코드를 참조하기 위해 이용됨

          속성을 제약조건으로 사용하여 참조 무결성과 관련된 문제가 발생하지 않도록 함

          • 속성

            • 하나의 필드 또는 전체 필드의 부분집합으로 구성됨

            • 중복된 값과 NULL 값 가질 수 있음

            • 반드시 참조되는 테이블에서 유일한 값을 갖는 필드를 참조해야 함

            • 참조되는 테이블에 존재하는 값만을 가져야 함. NULL 값은 실제로 존재하는 값은 아니지만 DB에서는 예외로 함

          • 참조 무결성

            참조 대상이 존재하지 않는 외래 키를 허용하지 않음

            지키기 위해 RESTRICTED, CASCADE, SET NULL 이라는 개념을 외래 키에 적용할 수 있도록 기능 제공함

            • RESTRICTED

              레코드를 변경 또는 삭제하고자 할 때 해당 레코드를 참조하고 있는 개체가 있다면 변경 또는 삭제 연산을 취소함

            • CASCADE

              레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고 잇는 개체도 변경 또는 삭제됨

            • SET NULL

              레코드를 변경 또는 삭제하면, 해당 레코드를 참조하고 있는 개체의 값을 NULL 로 설정

출처 : https://untitledtblog.tistory.com/123

Categories:

Updated: