티스토리 뷰
Chap03.
논리적 모델링
〈★정규화 (DB normalization)〉
관계형 데이터베이스에서 데이터를 구조화하는 작업
≫ 정규화가 되지 않은 테이블은 제1정규화부터 순서를 지켜주는 것이 좋음
≫ 중복된 데이터가 없어서 제1정규화 할 필요가 없다면
바로 제2정규화부터 건너뛰어 진행할 수 있다.
〈정규화 과정〉
① 제 1 정규화
≫ 왼쪽은 사번(주식별자) 반복되어 유일성 위배
중복되는 값이 있으면 분리시키기(일반 속성도)
1)
2) 제 3 정규화 포함
② 제 2 정규화 (부분 종속 분리)
≫ 일반 속성 중 / 주식별자(PK) 일부에만 종속된 것들을 빼서 따로 모아주겠다는 뜻 (부분종속)
품목단가는 품목코드에 따라 달라질 수 있다.
품목단가는 주문번호에 따라 달라지지 않는다.
≫ 따라서 품목단가는 품목코드에 종속되어 있다.
1)
③ 제 3 정규화
≫ 일반 속성 사이에서 종속 관계가 있는 속성을 찾아 제거하는 것
고객번호가 고객명, 고객주소를 포함할 수 있기 때문에 주식별자로 지정!
1)
〈이상 (Anomaly)〉
DB 모델링 TIP
1. 데이터 집어넣지 않아도 식별 / 비식별 관계 판단 가능
≫ 제 2 정규화에서는 꺼내오면 무조건 식별 관계
(원래 있던 것을 그대로 맞춰줘야 하기 때문에.)
≫ 제 3 정규화에서는 꺼내오면 무조건 비식별 관계
(원래 있던 일반 속성을 맞춰줘야 하기 때문에.)
2. 부모 / 자식을 빠르게 뽑아내는 방법
≫ 내가 분리시킨(밖으로 빼낸) 엔티티가 무조건 부모
(새로 만든 쪽이 부모 : 꺼낸 속성이니 넣어줘야 해서)
DB 모델링 정리
모델링 하는 이유 : 협업 (의사소통을 위해)
개념적 모델링만 하면 중복이 발생할 수 있음
따라서, 상세화시키기 위해 논리적 모델링을 함.
논리적 모델링에 필요한 것 : 정규화
┌식별 관계 : 외래식별자가 주식별자 역할까지 할 경우
└비식별 관계 : 외래식별자가 일반 속성으로 들어갈 경우
(비식별 → 식별 관계로 진행을 해야 한다)
※ 외래키 제약 조건은 JOIN을 가능케 하려는 것이 아님.
참조할 값이 있을 때 오류를 최소화하고자 외래키를 사용하는 것
'KH' 카테고리의 다른 글
230328 HTML5 (0) | 2023.03.27 |
---|---|
230323 DB 모델링 (Chap04.물리적 모델링) (0) | 2023.03.27 |
230323 DB 모델링 (Chap02. 개념적 모델링) (0) | 2023.03.23 |
230323 DB 모델링 (Chap01. DB 모델링 개요) (0) | 2023.03.23 |
230322 JDBC TEST (0) | 2023.03.22 |