[DB] 무결성, 정규화, 반정규화, ANOMALY

이정환·2023년 7월 25일

[CS] DATABASE

목록 보기
6/21

- 무결성

  • ==무결성은 데이터베이스에서 데이터의 낮은중복성을 보장하는 것을 의미합니다. 데이터베이스의 무결성은 데이터의 불변성과 제약 조건의 준수를 보장하여 데이터의 신뢰성을 유지합니다. 개체무결성, 참조무결성, 도메인무결성, 무결성 제약조건 등이 있습니다.
    1. 개체 무결성(Entity Integrity): 주 키(primary key) 값은 NULL이거나 중복되지 않도록 제약 조건을 설정하여 개체 무결성을 보장합니다.
    2. 참조 무결성(Referential Integrity): 외래 키(foreign key) 값은 참조하는 테이블의 주 키 값과 일치하거나 NULL이어야 하며, 참조된 레코드가 삭제되지 않도록 제약 조건을 설정하여 참조 무결성을 보장합니다.
    3. 도메인 무결성(Domain Integrity): 각 열의 데이터 유형과 범위에 대한 제약 조건을 설정하여 도메인 무결성을 보장합니다.
    4. 무결성 제약 조건(Integrity Constraints): 데이터베이스 시스템에서 제약 조건을 설정하여 데이터의 무결성을 강제로 유지합니다. 예를 들어, 고유성(unique), 외래 키 제약 조건 등을 사용할 수 있습니다.

- 정규화

  • ==정규화는 데이터베이스 설계에서 중복을 제거하고 데이터의 의존성을 관리하기 위해 사용되는 프로세스입니다. 정규화를 통해 데이터의 무결성과 일관성을 유지하고 데이터의 중복을 최소화하여 데이터베이스를 효율적으로 구성할 수 있습니다. 제1,2,3 등 정규형이 있습니다.
    • 정규형 필요 조건
      1. 제1정규형(1NF): 각 열은 원자 값(Atomic Value)만 포함하고, 중복된 열이 없어야 합니다.
      2. 제2정규형(2NF): 모든 부분 함수적 종속성(Partial Functional Dependency)이 제거되어야 합니다.
      3. 제3정규형(3NF): 이행적 함수적 종속성(Transitive Functional Dependency)이 없어야 합니다.
      4. 보이스-코드 정규형(BCNF): 모든 결정자(Determinant)가 후보 키(Candidate Key)인 상태여야 합니다.

- 반정규화

  • ==반정규화는 성능 향상을 목적으로 정규화된 데이터베이스를 일부러 중복을 허용하거나 데이터 구조를 변경하여 재조정하는 과정입니다. 반정규화를 통해 쿼리의 성능 향상과 데이터 모델의 간소화를 달성할 수 있습니다. 반정규화는 주로 읽기 연산이 많은 시스템에서 사용되며, 주의해서 사용해야 합니다.

- Anomaly (정규화 하지 않아서 생기는 이상현상)

  • == anomaly는 정규화 하지 않아서 생기는 CRUD 이상현상 입니다.

0개의 댓글