Development

관계형 데이터 모델 - 정규형이란?

개발자 강정 2022. 6. 16. 10:15

관계형 데이터베이스는 여러 테이블들을 JOIN하는 방식으로 원하는 형식의 데이터를 얻을 수 있다.

이 때 각 테이블의 정보가 중복되지 않고, 독립적으로 구조화하기 위해 정규화 과정을 거친다.

이 때 정규형(Normal Form)은 보통 3단계로 분류한다.

표 예시 - 정규화하기 전

  1. 제1정규형(1NF)

    • 원자 값: 각 셀에는 고유한 단일 값이 포함된다.

    • 테이블을 변경하지 않고 데이터를 추가할 수 있다.

    • 서로 다른 관계를 서로 다른 테이블로 분리

    • 외래 키와 함께 테이블 간의 관계 유지

      제1정규형

  2. 제2정규형(2NF)

    • 1NF를 만족

    • 테이블의 모든 열은 Primary Key에 의존

      제2정규형

  3. 제3정규형(3NF)

    • 2NF를 만족
    • No transitive dependencies

제3정규형

3NF를 사용하는 이유

데이터를 업데이트하고 싶을 때 한 개의 테이블만 업데이트하면 되도록 만들기 위해서이다.

정규화를 고도화할 수록 무조건 좋을까?

데이터베이스의 JOINS는 유연성이 뛰어나지만 느리다.

대량의 읽기 작업을 처리하는 경우, 다시 비정규화를 진행하기도 한다.

데이터의 무결성을 희생하여 성능의 향상을 가져온다.