염두리안 2025. 1. 2. 13:39
728x90
반응형

데이터베이스 이상현상(anomaly): DB에서 삽입, 삭제, 업데이트를 제대로 할 수 없게 되는 경우 | 데이터 모델링을 제대로 하지 않았기에 발생

  • 삽입이상) 새로운 데이터를 자연스럽게 저장할 수 없는 경우
  • 업데이트이상) 데이터 업데이트시 정확성을 지키기 어려워지는 경우
  • 삭제이상) 원하는 데이터만 자연스럽게 삭제할 수 없는 경우

정규화(Normalization): 테이블을 정규형에 맞게 만들어나감 | DB에서 삽입, 삭제, 업데이트 이상을 없앨 수 있음

 

1NF(제1정규형): 테이블 내 모든 로우의 모든 컬럼 값들은 나눌 수 없는 단일 값이어야 함

  • 한 컬럼에 같은 종류의 값을 여러 개 저장하고 있을 때: 해당 컬럼을 하나의 테이블로 분리해 모델링
  • 한 컬럼에 서로 다른 종류의 값을 여러 개 저장하고 있을 때: 한 컬럼을 여러 개로 분리해 모델링

함수 종속성(Functional Dependency): x의 값에 따라서 y의 값이 결정될 때, y는 x에 함수 종속성이 있다고 함 (x → y)

 

Candidate Key: 하나의 로우를 특정 지을 수 있는 속성들의 최소 집합

 

2NF(제2정규형): 제1정규형에 부합해야 함 | 테이블에 Candidate Key의 일부분에 대해서만 함수 종속성이 있는 non-prime attribute가 없어야 함

 

3NF(제3정규형): 제2정규형에 부합해야 함 | 테이블 안에 있는 모든 속성들은 오직 Primary key에 댛서만 함수 종속성이 있어야 함(테이블의 모든 속성은 직접적으로 테이블 속성에 대한 내용이어야 함)

 

비정규화: 정규형에 부합하는 테이블을 정규형을 지키지 않게 바꾸는 것 | 성능 개선과 조회 용도로만 사용할 때 함

 

728x90
반응형