티스토리 뷰

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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함