반응형

간단한 쇼핑몰 모델링으로 보는  ER 구조 파악

 

1. 구성

개념적으로는 회원 - 상품(M:M)  구조이지만 실제 개발에서는 구매 테이블을 넣고 회원 - 구매 - 상품 (1:M, M:1) 관계로 테이블이 생성된다

 

2. 점선과 실선

관계선 표기법의 종류중 Richard Barker 관계선 방식이다

Mandatory(필수/실선) 와 Optional(선택/점선) 관계로 확인할 수있으며

회원 - 구매 (1:M) 관계를 예시로 보자면 

   (1) 회원은 구매내역이 필수가 아니다 (Optional)

   (2) 구매내역에는 회원정보가 필수이다 (Mandatory)

Information Engineering 방식은 아래의 그림처럼 표현 된다

Information Engineering 방식

 

 

3. 쿼리에서의 사용

필수 는 inner join  선택은 left join 관계로 표현하면 된다

회원의 구매내역은 구매내역을 left join 으로

구매내역 목록은 회원을 inner join 으로 표현하라는 관계도로 파악하면 된다

 

4. 양쪽이 선택(Optional)인 경우

   (1) 이벤트만 생성해놓고 상품은 추가되지 않는 경우 (Optional)

   (2) 상품에 이벤트가 적용되지 않는 경우 (Optional)

5. 식별 비식별 관계

식별 관계는 각각의 관계 테이블의 FK를 PK로 지정하는 경우이고

비식별 관계는 FK로 지정해 조인을 하는 방식이다

식별관계에서는 FK의 변경에 따른 PK 업데이트가 번거로워질 수 있고,

비식별 관계에서는 기본적으로 데이터를 특정하기 위해선 join을 여러번 사용해야한다는 단점이있다

 

6. 정규화 처리

1:M 으로 한테이블 안에서 중복이 발생할 경우에는 테이블을 나눠야한다

구매내역에서 사용할 쿠폰이 여러개이기 때문에 테이블이 나뉨

 

반응형

'IT > Database' 카테고리의 다른 글

데이터베이스 성능 향상기법 - 인덱스 (mysql 기반)  (0) 2021.02.21

+ Recent posts