관계형 데이터베이스는 여러 테이블들을 JOIN하는 방식으로 원하는 형식의 데이터를 얻을 수 있다.
이 때 각 테이블의 정보가 중복되지 않고, 독립적으로 구조화하기 위해 정규화 과정을 거친다.
이 때 정규형(Normal Form)은 보통 3단계로 분류한다.
제1정규형(1NF)
원자 값: 각 셀에는 고유한 단일 값이 포함된다.
테이블을 변경하지 않고 데이터를 추가할 수 있다.
서로 다른 관계를 서로 다른 테이블로 분리
외래 키와 함께 테이블 간의 관계 유지
제1정규형
제2정규형(2NF)
1NF를 만족
테이블의 모든 열은 Primary Key에 의존
제2정규형
제3정규형(3NF)
- 2NF를 만족
- No transitive dependencies
3NF를 사용하는 이유
데이터를 업데이트하고 싶을 때 한 개의 테이블만 업데이트하면 되도록 만들기 위해서이다.
정규화를 고도화할 수록 무조건 좋을까?
데이터베이스의 JOINS는 유연성이 뛰어나지만 느리다.
대량의 읽기 작업을 처리하는 경우, 다시 비정규화를 진행하기도 한다.
데이터의 무결성을 희생하여 성능의 향상을 가져온다.
'Development' 카테고리의 다른 글
SQL과 NoSQL은 언제 써야할까? (0) | 2022.06.15 |
---|---|
비전공 개발자의 첫 취업 (2) (0) | 2022.06.12 |
[TIL] 코틀린 쿡북 / 실전 카프카 (0) | 2022.06.09 |
비전공 개발자의 첫 취업 (1) (0) | 2022.06.05 |
[TIL] 트리 알고리즘 강의, 문제 풀이 / 면접 정보 공유 서비스 프로젝트 (0) | 2022.02.14 |