Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

공부하자

정규화(Normalization) 본문

Database

정규화(Normalization)

kmhello 2023. 3. 20. 22:01

1. 정규화란?

  - 데이터 베이스의 변경 시 일어날 수 있는 이상현상을 제거하기 위해 관계형 데이터 베이스의 설계에서 데이터를 구조화하는 프로세스.

  - 단계별로 구분하여 정규화가 높아질수록 이상현상이 줄어듦

 

2. 정규화의 장점

  - DB 변경 시 발생하는 이상현상을 제거

                                           : 삽입 이상 - 레코드 삽입 시 특정 속성에 해당하는 값이 없어 NULL을 입력해야 하는 현상

                                           : 삭제 이상 - 레코드 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상

                                           : 갱신 이상 - 레코드 갱신 시 중복된 데이터의 일부만 갱신되어 일어나는 데이터 불일치 현상

  - 새로운 데이터 형의 추가로 인한 확장 시, 구조 변경에 용이함

  - DB와 연동된 응용 프로그램의 생명을 연장

 

3. 정규화의 단점

  - 테이블의 분해로 인해 JOIN 연산 증가

  - 데이터를 처리할 떄 속도 저하가 발생할 가능성이 큼

  - JOIN이 많이 발생하여 성능이 저하될 시, 반정규화를 적용해야 함

                                                                          : 정규화한 것을 다시 되돌아 가는 것

 

4. 정규화의 종류

      1) 제1 정규형 

           - 각 컬럼은 하나의 속성값만 가져야 함

           - 하나의 컬럼은 같은 타입의 값을 가져야 함

           - 각 컬럼은 유일한 이름을 가져야 함

           - 컬럼의 순서는 상관 X

       2) 제2 정규형

            - 1정규형을 만족

            - 모든 컬럼이 부분적 종속이 없어야 함(완전 함수 종속 상태)

                                                                               : 속성 A의 값을 알면 속성 B의 값이 유일하게 정해지는 관계

        3) 제3 정규형

            - 1정규형을 만족

            - 기본키를 제외한 속성들 간의 이행 종속성이 없어야 함

                                                                : a는 b이고 b는 c 일 때, a는 c이다 

         4) BCNF

             - 3정규형 만족

             - 모든 결정자가 후보키 집합에 속해야 함 

          5) 제4 정규형

              - BCNF 만족

              - 다치 종속이 없어야 함

                  : 같은 테이블 내의 독립적인 두 개 이상의 컬럼이 또 다른 컬럼에 종속되는 상태

          6) 제5 정규형

              - 4정규형 만족

              - 조인 종속 제거

                 : 하나의 테이블을 여러개로 분해 했다가 다시 조인했을 때, 데이터의 손실이 없고 필요 없는 데이터가 생기는 상태

 

'Database' 카테고리의 다른 글

Transaction  (0) 2023.04.08
Data Modeling  (0) 2023.03.20
INDEX  (0) 2023.03.20
Transaction  (0) 2023.03.20
View  (1) 2023.03.19