반응형

4정규형(4NF, Fourth Normal Form)의 개념


1. 정의

  • 4정규형(4NF)다치 종속(Multivalued Dependency)제거 한 정규형입니다.
  • 어떤 릴레이션이 BCNF를 만족하면서, 다치 종속이 존재하지 않아야 4NF입니다.

1.1 다치 종속이란?

  • 속성 ABC를 각각 독립적으로 결정할 때, A →→ B, A →→ C 와 같은 형태를 말합니다.

  • 즉, 하나의 속성값에 대해 두 개 이상의 속성이 서로 독립적으로 여러 값을 가질 때 이를 다치 종속 이라 하며, 이걸 제거하는 것이 4NF입니다.



2. 예시 테이블 (정규화 전)

  • 학생ID 수강과목 동아리
    1001 데이터베이스 연극동아리
    1001 데이터베이스 사진동아리
    1001 알고리즘 연극동아리
    1001 알고리즘 사진동아리
  • 이 테이블은 다음의 다치 종속을 가집니다:

    • 학생ID →→ 수강과목
    • 학생ID →→ 동아리
  • 과목과 동아리는 서로 독립적인 다치 종속 관계입니다. 따라서 중복된 조합이 생깁니다.



3. 정규화 후 (4NF)

3.1 수강 테이블

  • 학생ID 수강과목
    1001 데이터베이스
    1001 알고리즘

3.2 동아리 테이블

  • 학생ID 동아리
    1001 연극동아리
    1001 사진동아리
  • 이렇게 하면 과목과 동아리를 분리 시켜, 다치 종속을 제거한 상태가 됩니다.

  • 두 테이블 모두 4NF를 만족합니다.



4. SQL 예제

  • sql

      -- 정규화 전 테이블
      CREATE TABLE StudentInfo (
          student_id INT,
          subject VARCHAR(50),
          club VARCHAR(50)
      );
      
      -- 4NF 정규화 후
      CREATE TABLE StudentSubject (
          student_id INT,
          subject VARCHAR(50)
      );
      
      CREATE TABLE StudentClub (
          student_id INT,
          club VARCHAR(50)
      );
    


데이터베이스 정규화 (Database Normalization) 관련글 링크


정규화 정리

  • 정규형 해결하는 문제
    1NF 반복되는 속성 제거
    2NF 부분 함수 종속 제거
    3NF 이행적 함수 종속 제거
    BCNF 후보키가 아닌 결정자 제거
    4NF 다치 종속 제거
    5NF 조인 종속으로 인해 발생하는 중복 제거
    6NF 시간적 속성 이나 변화 이력 관리



  • 도움이 되셨으면 하단의 ❤️ 공감 버튼 부탁 드립니다. 감사합니다! 😄
  • 일부 모바일 환경에서는 ❤️ 버튼이 보이지 않습니다.

728x90
반응형

'SQL' 카테고리의 다른 글

6정규형(6NF, Sixth Normal Form) 개념  (0) 2025.05.06
5정규형(5NF, Fifth Normal Form)의 개념  (0) 2025.05.06
BCNF(Boyce-Codd) 정규형의 개념  (0) 2025.05.05
3정규형(3NF)의 개념  (0) 2025.05.05
2정규형(2NF)의 개념  (0) 2025.05.03

+ Recent posts