목차


 Normalization

데이터 베이스의 변경 시 일어 날 수 있는 이상현상을 제거하기위해

관계형 데이터베이스의 설계에서 데이터를 구조화하는 프로세스

단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 됨


 

 정규화의 장점

DB 변경시에 발생하는 이상현상을 제거 가능

   ● 이상 현상

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

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

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

 

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

 

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


 

 정규화의 단점

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

 

데이터를 처리할 때 속도의 저하가 발생 할 가능성이 존재

 

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


 

 정규화의 종류

제1 정규형

    각 컬럼은 하나의 속성값만을 가져야 함 (각 컬럼에 값이 하나씩만 들어가 있어야함)

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

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

    컬럼의 순서는 상관없어야함

 

제2 정규형

   제1 정규형을 만족 해야함

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

      ● 함수 종속성

        ○ 속성 A의 값을 알면 속성 B의 값이 유일하게 정해지는 관계 (ex. 주민번호를 알면 그사람이 누군지 알 수 있음)

        ○ A -> B 로 표기하며 A는 B의 결정자 라고 칭함

          (특정값(ex. emp_no)을 알고있을때, 다른 값(ex. first_name, last_name, ...)들을 알 수 있는것)

        ○ 모든 속성에 대해 함수 종속성을 만족하는 것은 완전 함수 종속상태 라고함

 

제3 정규형

    제2 정규형을 만족 해야함

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

       ● 이행 종속성 : A는 B이고 B는 C일때, A는 C이다가 성립하는 현상

 

BCNF

    제3 정규형을 만족 해야함

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

    

제4 정규형

    BCNF를 만족 해야함

    다치 종속이 없어야함

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

 

제5 정규형

    제4 정규형을 만족 해야함

    조인 종속을 제거 해야함

     ● 조인 종속 : 하나의 테이블을 여러개로 분해 했다가 다시 조인했을 때,

        데이터의 손실이 없고 필요없는 데이터가 생기는 상태


 

Github

Link

 

'HeidiSQL > SQL_ex' 카테고리의 다른 글

Data Modeling  (0) 2023.03.20
Transaction  (0) 2023.03.20
INDEX  (0) 2023.03.19
VIEW  (0) 2023.03.19
table 2  (0) 2023.03.19

+ Recent posts