23.02.07

Kuno17·2023년 2월 6일
0

TIL/WIL

목록 보기
17/38
post-thumbnail

데이터의 정규화

제1 정규화

하나의 키에 하나의 값만 저장

이러한 테이블은 제1정규형 테이블이라고 한다.

그렇다면 다음과 같은 경우에는 이러한 테이블도 문제가 발생한다.

여기서 만약에 헬스의 가격변동이 생겨서 7000원으로 변경해야 한다면?
전부 수작업으로 변경해야한다. 만약 회원 데이터가 100개가 넘어간다면?
상당히 힘들어진다.

그런대 자세하게보면 가격은 회원의 수강등록현황과는 그다지 큰 상관이 없다 만약 이 테이블을
아레와 같이 분리한다면.

이렇게 된다면 각 프로그램의 가격을 한번 변경하면 일괄적으로 변경할 수 있다.

현재 테이블의 주제와 관련없는 컬럼을 다른 테이블로 빼는 다음과 같은 작업을 제2정규화라고 한다.
제2 정규형의 정확한 정의는 partial dependency를 제거한 테이블을 말한다.

?? partial dependency

이를 알려면 우선 Composite primary key를 알아야 한다
primary key ->데이터를 구분할 수 있는 고유한 값

여기서 회원번호와 프로그램 두가지를 합치면 primary key와 같은 역할이 가능하다. 이 두개의 컬럼을 Composite primary key라고 한다.

partial dependency는 primary key에 종속된 컬림 프로그램 컬럼에 가격 컬럼은 종속된다. -> partial dependency가 있다 라고 판단.

제3정규형
제2정규형을 만들었다면 다음과 같다

이때 여기는 Composite primary key가 없기 때문에 partial dependency도 없다

여기서 출신 대학을 주목하면 primary key와 전혀 상관이 없고 강사라는 잔챙이 컬럼에 종속되어 있다. 이를 분리해서 만들면 제3정규화가 이루어진다.

다만 단점으로는 만약 강사의 출신 대학만 알고싶다면 바로 출력할 수 없고 해당 테이블을 끌어와서 사용해야 한다.

참조영상
https://www.youtube.com/watch?v=Y1FbowQRcmI

profile
자바 스터디 정리 - 하단 홈 버튼 참조.

0개의 댓글