Development
관계형 데이터 모델 - 정규형이란?
개발자 강정
2022. 6. 16. 10:15
관계형 데이터베이스는 여러 테이블들을 JOIN하는 방식으로 원하는 형식의 데이터를 얻을 수 있다.
이 때 각 테이블의 정보가 중복되지 않고, 독립적으로 구조화하기 위해 정규화 과정을 거친다.
이 때 정규형(Normal Form)은 보통 3단계로 분류한다.
제1정규형(1NF)
원자 값: 각 셀에는 고유한 단일 값이 포함된다.
테이블을 변경하지 않고 데이터를 추가할 수 있다.
서로 다른 관계를 서로 다른 테이블로 분리
외래 키와 함께 테이블 간의 관계 유지
제1정규형
제2정규형(2NF)
1NF를 만족
테이블의 모든 열은 Primary Key에 의존
제2정규형
제3정규형(3NF)
- 2NF를 만족
- No transitive dependencies
3NF를 사용하는 이유
데이터를 업데이트하고 싶을 때 한 개의 테이블만 업데이트하면 되도록 만들기 위해서이다.
정규화를 고도화할 수록 무조건 좋을까?
데이터베이스의 JOINS는 유연성이 뛰어나지만 느리다.
대량의 읽기 작업을 처리하는 경우, 다시 비정규화를 진행하기도 한다.
데이터의 무결성을 희생하여 성능의 향상을 가져온다.