ERD - 스타벅스 모델링

더미벨·2022년 5월 31일
2

ERD


Entity Relation Diagram의 약자로 흔히 ER 다이어그램이라고 한다.
ERD는 모델링의 기초 청사진이라고 할 수 있다.

청사진을 잘 짜는 것이 중요한 이유는 처음에 모델링을 잘못하면 이후에 수정하는데 더 많은 비용과 시간이 소요되기 때문에 처음에 모델링을 탄탄히 하는 것이 중요하다.

또한, 나만 알아볼 수 있는 코드로 작성하는 것이 아닌 제 3자도 알아볼 수 있게 코드를 작성하는 것도 매우 중요하다.

일반적으로 다양한 테이블들의 명칭에 대한 컨벤션과 다른사람들과 함께 사용하기 위한 규칙/룰이 있기 때문에 그부분을 잘 지켜 코드를 작성해야 한다.

정규화과정이란?


데이터의 남용과 오용을 막기 위해 마주한 상황에 최적화된 방법을 찾는 것을 말한다.

정규화를 함으로 인해 각 데이터에 들어간 요소들은 각각 유니크한 값이 되는데, 그 유니크한 값들이 해당 테이블에서만 작동할 수 있게 작업하는 것이다.

여기서 중요한 점은 '마주한 상황에서' 최적화를 한다는 것인데, 예를 들어 해당 프로젝트에 산정된 예산이 많으면 데이터를 더더더 잘 정제할 수 있겠지만, 보통 기업에서 일을 할 때에는 한정된 예산 안에서 데이터를 정리해야하기 때문에 이 부분 또한 고려하여 정규화를 진행한다.



데이터모델링 - 스타벅스


팀과제로 dbdiagram을 사용하여 스타벅스 음료 페이지를 모델링 해보았다.

  • 필수 구현 사항: 음료, 카테고리, 영양 정보, 알러지, 음료 이미지, 음료 설명, 신상 여부
  • 구현 제외 사항: 프로모션, 음료 사이즈

ERD를 짤 때 주의할 점

  • 각 테이블의 제목은 주로 복수형으로 작성한다. 하위 항목들을 포함하고 있기 때문이다.
  • 표기법은 하나로 통일한다.(ex)snake_case, camelCase 등)

1) 메뉴 - 카테고리
: 하나의 메뉴탭에 여러 개의 카테고리가 연결되어 있기 때문에 일대다.

2) 카테고리 - 음료
:하나의 카테고리에 여러 개의 음료가 연결되어 있기 때문에 역시 일대다.

3) 신상여부, 음료 이미지, 상세정보
신상여부와 음료 이미지, 상세정보는 각각 하나의 음료와 연결되기 때문에 일대일관계라고 생각해서 음료의 각 항목으로 넣어보았다.

4)음료 - 알레르기
한가지 음료에 여러가지 알레르기 요소가 들어갈 수 있고, 반대로 한가지 알레르기 요소가 여러가지의 음료에 포함될 수 있기 때문에 양방향으로 일대다, 즉 다대다 관계가 된다.
다대다이기 때문에 중간 테이블을 하나 더 만들어 각각의 id와 연결해주었다.

5)음료 - 영양정보
처음에는 음료와 영양정보가 일대일관계라고 생각해 drinks의 하위 항목에 nutrition을 넣었다가 피드백시간에 보여주신 참고화면에서는 nutrition을 한 테이블로 따로 빼서 다시 수정했다..^^;
멘토님께 왜 1:1관계인데 테이블을 따로 생성해야하냐고 여쭤보니 데이터베이스를 만드는 데 정답은 따로 없으며, 정규화과정을 거칠 때 테이블이 따로 빠지는 경우도 있다고 하셨다.



데이터베이스 수업을 듣고 느낀점


프론트엔드 커리큘럼을 타고 있기 때문에 데이터베이스를 깊게 알아야할까라는 생각도 했었지만, 결국 현업에서는 백엔드와 협업해야 하기 때문에 데이터베이스의 구조를 잘 파악해 두는 것이 중요하겠다는 생각이 들었다.
앞으로도 백엔드부분이라고 소홀히 하지 않고 열심히 해야쥐 아자아자~~^^!

profile
프론트엔드 개발자👩‍💻

0개의 댓글