※ 정규화
1. 정규화란? - 데이터 정합성을 위해 일정한 규칙대로 엔터티를 작은 단위로 분리하는 과정. 데이터 조회성능은 처리조건에 따라 상향되거나 하향될 수 있지만 입력, 수정, 삭제 성능은 일반적으로 향상됨
* 정합성 - 데이터의 정확성과 일관성을 유지하고 보장
* 지나친 정규화는 데이터 조회 시 JOIN의 수가 늘어나 오히려 성능을 저하시키므로 적당히 정규화를 실시
2. 정규화 절차
① 제1정규화(1NF) - 모든 속성은 속성값을 하나만 갖고 유사한 속성이 반복되지 않게 엔터티를 분리
* 속성값을 하나만 가지도록 엔터티 분리
* 유사한 속성이 반복되지 않게 엔터티 분리
② 제2정규화(2NF) - 제1정규형을 만족하고 주식별자가 2개 이상 엔터티가 주식별자에 대한 부분종속을 갖고 있을 경우 엔터티 분리
* 상품명이 주식별자 중 상품코드 속성에만 종속하므로 부분종속을 갖는다. 이를 해결하기 위해 아래와 같이 엔터티를 분리한다.
③ 제3정규화(3NF) - 주식별자가 아닌 모든 속성 간에는 서로 종속될 수 없다.
* 일반속성인 학과가 다른 일반속성인 학과코드에 종속되므로 아래와 같이 엔터티를 분리한다.
④ 보이스-코드 정규화(BCNF) - 제3정규형을 만족하고 주식별자가 보조식별자에 종속된 경우 엔터티 분리
* 주식별자인 수강과목이 보조식별자인 지도교수에 종속되므로 아래와 같이 엔터티를 분리한다.
'자격증 > SQLD' 카테고리의 다른 글
[ SQLD 자격증 ] SQL 기본 및 활용 - 1. SQL 기본 (0) | 2023.05.18 |
---|---|
[ SQLD 자격증 ] 데이터 모델과 SQL - 2. 반정규화(De-Nomalization) (0) | 2023.05.16 |
[ SQLD 자격증 ] 데이터 모델링의 이해 - 5. 식별자(Identifier) (0) | 2023.05.13 |
[ SQLD 자격증 ] 데이터 모델링의 이해 - 4. 관계(Relationship) (0) | 2023.05.13 |
[ SQLD 자격증 ] 데이터 모델링의 이해 - 3. 속성(Attribute) (0) | 2023.05.11 |