본문 바로가기
자격증들/23) SQLD, SQLP

SQLD 1 - 데이터 모델링의 이해, ERD 표기법, 정규화/반정규화

by tonyhan18 2023. 6. 6.
728x90

1. 데이터 모델링 1

 

2. 데이터 모델링 2 - ERD

'*' 는 꼭 데이터 값이 들어와야하는 필수속성

o는 선택속성을 의미 == null 이 들어가도 되는 것

 

왼 -> 오로 읽는 경우

3. 정규화/반정규화

설계 단계부터 성능과 관련된 내용을 반영해서 설계를 한다.

 

순서를 알고 있으면 좋다.

정규화, 반정규화가 중요.

 

개념들 위주로 알아두기

 

각각의 속성 마다 하나의 값을 가져야 한다.

 

대충 이렇게 업무를 여러개 나누면 유연하지 못한 데이터가 된다.

 

데이터를 한 가지만 넣는게 문제이다.

 

 

실재 정규화는 위와같이 해준다.

 

그래서 기존 엔터티에서 속성값만 늘려주는 방식으로 문제 해결이 가능해진다.

 

1차 정규화는 데이터를 분리해가는 것을 의미하며 제1정규형 결과물은 모든 속성의 값이 원자 값(= 단일 값)으로만 구성되어 있다.

 

또 사원구분코드 하나가 사원구분명을 결정해준다. 이렇게 식별자에 의해 일부 속성이 결정되는 것을 부분종속이라고 부른다. 반대로 식별자에 의해 전체 속성이 결정되면 완전종속이라고 부른다.

 

 그러나 문제점은 구분명을 변경해주면(계약직 -> 무기계약직) 사원구분코드가 동일한게 문제가 생긴다.

 

그래서 2차 정규형을 수행해주어야 한다.

 

주식별자에 모든 속성이 종속된 형태

 

하지만 문제점이 있다. 일반 속성간에도 종속이 되는 이행(이전) 종속이 되어버린다. 그래서 이걸 쪼개주어야 한다.

(부서위치가 부서번호와 부서명에 종속되었다.)

제 3정규형에서는 이전(이행) 종속 없애기

1차 정규화 == 원자화 하는 것

2차 정규화 == 완전 종속화

3차 정규화 == 이행 종족 없애기

 

데이터 중복이나 문제를 없애기 위해 쪼개서 사용한다.

 

성능향상이 주 목적이다.

728x90