정규화

0

DB

목록 보기
7/17
  • 중복된 자료를 없애기 위해서 하는 것이 정규화다.
  • 정규화의 목적 : 테이블이 계속 쪼개지는 것.
    어떤 관계로 쪼갤 것인가? 함수 종속성으로 쪼갠다.
    -> 사번이 함수 결정자(pk)라 하고, 사번을 이용하면 사원명과 급여를 알 수 있다.-> 함수 종속자(일반컬럼)
    -> 일반 컬럼은 PK에 종속성(함수종속)을 갖는다.

- 1 정규화

: 테이블의 컬럼이 원자값을 갖도록 테이블을 분해하는 것이다.

2 정규화

: 복합키인 경우에만 하면된다. 복합키일 경우에만 2차 정규화를 할지 안 할지 결정. 2개의 PK에 완전한 종속성을 갖는 일반컬럼으로 나눠져서 같은 테이블로만 구성한다. 다르면 다른 테이블로 나눔

3 정규화

: 2차정규화를 진행한 테이블에 대해 이행적 종속(일반컬럼들 사이에서 함수종속성이 있는가 확인)이 없도록 테이블을 분해

  • 강좌이름(결정자)에 대한 수강료(종속자)이지, 학생에 대한 수강료가 아님

예제

  • 원래 상품에 모든것을 담았다면, 제조일자, 칼로리, 단백질이 상품번호에 대한 영양정보일 수 있지만 3차정규화를 진행해서 상품과 상품영양정보를 따로 뺀것
  • 위와 같은 로직을 어떻게 짤것인지를 정해야 클래스를 나눌 수 있다.
profile
백엔드를 공부하고 있습니다.

0개의 댓글