개발일기/CS(면접)
RDBMS의 정규화란?
w.llama
2024. 7. 19. 21:16
RDBMS의 정규화란?
- 데이터베이스 설계에서 중복을 최소화 하고 데이터의 일관성과 무결성을 유지하기 위한 과정
- 제1정규화
- 각 열이 원자값만을 포함하도록 테이블을 구헝합니다.
Ex) 한열에 여려개의 취미를 나열하는 대신 각 취미를 별도의 행으로 분리한다 - 제2정규화
- 부분 함수 종속을 제거한다. 기본키가 복합키인 경우, 기본키의 일부에만 종속되는 속성을 별도의 테이블로 분리 - 제3정규화
- 이행적 함수 종속을 제거합니다. 기본키가 아닌 속성에 의존을 다른 속성을 별도의 테이블로 분리한다 - BCNF(Boyce-Codd Normal Form정규화 형태)
-모든 결정자가 후보키여야한다 이는 제3정규화보다 더 엄격한 조건을 적용한다
- 정규화의 주요목정은 데이터 중복을 줄이고 데이터 일관성을 유지하며, 갱신 이상(Update Anoomalies)을 방지하는 것이다. 이를 통해 데이터 베이스의 구조를 최적화 하고 효율적인 데이터 관리가 가능해진다
하지만 과도한 정규화는 테이블 간의 조인 연산을 증가시켜 성능 저하를 일으킬 수 있다. 따라서 실제 시스템 요구사항과 성능을 고려해 저절한 수준의 정규화를 적용해야한다
- 제1정규화