-
[DataBase] 정규화, 반정규화CS/DataBase 2024. 11. 25. 02:24
이상현상 Anomaly
불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용
정규화를 거치지 않은 데이터베이스에서 발생할 수 있는 현상이다.
삽입이상 Insertion Anomaly
데이터를 삽입할 때 원하지 않는 정보에 의해 삽입할 수 없게되는 현상
삭제이상 Deletion Anomaly
데이터를 삭제할 때 원하지 않는 정보까지 삭제되는 현상
갱신이상 Modification Anomaly
데이터를 갱신할 때 일부 정보만 갱신되어 정보의 불일치성이 일어나는 현상
함수적 종속?
데이터베이스의 릴레이션(relation)에서 두 개의 애트리뷰트(attribute) 집합 간 제약의 일종

완전 함수 종속
pk가 고객 id와 상품 id일 때, 수량은 고객과 상품에 따라 정해진다.
결정자 = pk 일 때 완전 함수 종속이라고 한다.
부분 함수 종속
pk중 상품 id가 주문 상품을 결정한다.
즉, 결정자가 pk의 부분집합이다. 이런 상황을 부분 함수 종속이라고 한다.
이행 함수적 종속
고객id, 상품 id → 수량
고객id, 상품 id ,수량 → 가격
⇒ 고객id, 상품 id → 수량 → 가격
이처럼 X가 Y를 결정짓고, Y가 Z를 결정짓는 상황을 이행적으로 종속돼있다고 한다.
정규화란?
데이터베이스 내의 데이터 구조를 조직화하고 최적화하는 과정
정규화 과정
1NF : 도메인을 원자화
학번 수강 과목 12345678 데이터베이스, 네트워크, 알고리즘 ⬇️
학번 수강 과목 12345678 데이터베이스 12345678 네트워크 12345678 알고리즘 2NF : 부분 함수 종속 제거
학번 수강 과목 교수 성적 12345678 데이터베이스 김철수 3.5 23456789 데이터베이스 김철수 4.0 34567890 네트워크 김영희 3.8 ⬇️
학번 수강 과목 성적 12345678 데이터베이스 3.5 23456789 데이터베이스 4.0 34567890 네트워크 3.8 수강 과목 교수 데이터베이스 김철수 네트워크 김영희 3NF : 이행 함수적 종속 제거
학번 수강 과목 수강료 12345678 데이터베이스 100000 ⬇️
학번 수강과목 12345678 데이터베이스 과목 수강료 데이터베이스 100000 BCNF : 결정자이면서 후보키 아닌 것 제거
학번 특강 이름 교수 12345678 데이터베이스 김철수 학번, 특강 이름 -> 교수
교수 -> 특강 이름
⬇️
학번 특강 이름 12345678 데이터베이스 교수 특강 이름 김철수 데이터베이스 반정규화란?
성능향상과 운영의 편의성을 위해 데이터 모델을 일부러 통합, 중복, 분리시켜 정규화 원칙을 위배하는 행위
'CS > DataBase' 카테고리의 다른 글
트랜잭션 격리 수준 (0) 2025.02.23 SQL의 윈도우 함수 (with PARTITION BY) (2) 2025.02.17 CTE(Common Table Expression) (2) 2025.02.17 [DataBase] 트랜젝션 (2) 2024.12.02 [Database] Index에 대해서 (1) 2024.11.18