SQL

SQL - 정규화

데이터_박과장 2023. 10. 28. 15:31

정규화

2장에서 가장 어려운 정규화와 반정규화입니다. 이번 글에선 정규화부터 하겠습니다.

 

정규화는 논리적 데이터모델링에 속하며, Key/속성/관계에 대한 정의를 다루고 재사용성이 높다는 특징을 가진다고 했었습니다. (1과목 10. 데이터 모델링의 특징에서 설명한 부분입니다.) 정규화를 통해 데이터의 입력/수정 등등을 할 때, 데이터들이 꼬이는 것을 막기 위해 분류작업을 하는게 목표입니다.

  • 정규화는 1차부터 5차까지있지만 문제로 자주 나오는건 1~2차까지입니다. (가끔 3차도 나옵니다)
  • 이번 글에서 사용한 사진들은 'SQL전문가 정미나선생님의 유튜브 채널' / 'SQL 자격검정 실전문제'

 

1차 정규화?

1차 정규화는 모든 속성은 반드시 하나의 값만 가져야한다는 특징을 갖고 있습니다. 쉽게 말해서 '중복되는 속성을 제거하는 작업입니다.'

 

해당 사진처럼 중복/반복되는 속성을 분류해주는게 1차 정규화입니다.

얘보면 X유형기능분류코드N 이런식으로 9개가 있습니다. 중복되는게 있죠? 이를 처리하는게 1차 정규화입니다.

 

2차 정규화?

2차 정규화는 모든 속성은 기본키에 종속되어야 하며, 일부만 종속되는 것도 안된다. 라는 특징입니다. 얘는 문제를 풀때보면 테이블이랑 '함수 종속성(FD)'가 같이 주어질텐데요.

 

함수 종속성을 보면 PK(기본키)가 보일텐데요. 아래 사진을 봅시다.

얘는 관서번호, 납부자번호가 PK가 되고 이것에 종속된게 직급명, 통신번호입니다. 또 다른거로는 관서번호가 PK고 종속된건 관리점번호, 관서명, 상태, 관서등록일자입니다.

근데 테이블은 하나만 주어졌죠. 따라서 함수종속성에 따라 테이블을 2개로 나눠서 따라 작성하는게 2차 정규화입니다.

 

3차 정규화?

기본키가 아닌 다른 속성들끼리 종속되어선 안된다. 라는 특징입니다. (이행 종속 불가)

3차까지는 나오긴해도 잘은 안나오니 위 사진만 참고합시다.

'SQL' 카테고리의 다른 글

SQL - 데이터 적재 및 사용 (소상공인 데이터셋)  (0) 2023.10.28
SQL - 문장의 종류  (0) 2023.10.28
SQL - 성능데이터 모델링  (0) 2023.10.28
SQL - 속성  (1) 2023.10.28
SQL - 엔터티  (0) 2023.10.28