[SendUScent ] ERD 그리기

Lee Tae-Sung·2021년 10월 30일
0

Project

목록 보기
3/9

SendUScent

1.포스팅 개요

싸피 5기2학기 두번째 프로젝트에 돌입
치열한 아이디어 회의 끝에 향수를 추천해주는 서비스 결정
(우여곡절이 있었지만...)

프론트엔드 직무를 희망하지만 이번 프로젝트는 역할을 기능별로 나눴기 때문에 나 역시도 ERD를 짜는데 기여를 해야했고 관계형 데이터베이스에대해 공부를 하게 되었다.

잘 정리되어있는 블로그를 참고하여 project 시리즈 포스팅을 시작.
https://advenoh.tistory.com/31

2. 공부하며 정리

1) 데이터베이스를 설계하는 방법에는 주로 2가지 방법

  • E-R 모델과 릴레이션 변환 규칙을 이용한 설계
  • 정규화를 이용한 설계

=> 정규화란 중복을 최소화하며 설계

2) E-R 모델과 릴레이션 변환 규칙을 이용한 설계 단계
(1) 데이터 요구사항에 대한 분석(결과:요구사항 명세서)
(2) 개념 스키마 설계(결과:ERD)
(3) 논리 스키마 설계(결과:릴레이션 스키마의 테이블 명세서)
(4) 내부 스키마 설계(결과:DB 스키마 생성 SQL문)

3) 요구사항 분석하기

  • SUS에 가입하려면 회원아이디, 비밀번호, 성별, 나이를 입력해야한다
  • 회원당 한번의 개인 성향 테스트를 할 수 있고 그 테스트 결과들을 저장할 수 있다. (방식은 배열?)
  • SUS에서는 각 향수에대한 데이터(케글데이터)를 저장하고 있다.
  • SUS에서는 테스트 결과를 바탕으로 케글데이터와 비교해 추천알고리즘을 통해 몇몇 향수를 걸러낼 수 있다.

*SUS:Send U Scent(우리 서비스 이름 ㅋ)

4) 개념적 설계로 E-R 다이어그램 만들기
(1) 개체와 속성을 추출

  • 대부분 명사

(2) 개체 간의 관계를 추출

  • 대부분 동사로 선별

  • 관계에 속한 속성도 있을 수 있다.
    => 이 말이 무슨 뜻인지는 모르겠다.

  • 1:1, 1:N, N:M

  • 필수적인 참여, 선택적인 참여
    => ERD를 짜면서(ERD클라우드에서) 관계를 형성할 때,
    identifying vs non identifying relationship를 묻는데
    어떤걸 묻는지 정확히 몰랐다. 해당 사항에 대해 묻는 부분이였다.
    => 특히 다른 벡엔드 포지션을 희망하시는 분들도 정확히 모르셔서 당혹스러웠다.

=> 결국 앞에서 작성한 '요구사항 분석하기' 글에서 명사와 동사를 참고하여 개체와 속성을 추출하고 그 안에서 관계(몇:몇인지 필수? 안필수?) 를 찾아내는 것이다.

=> 지금까지 그냥 감으로 했었던 작업을 해당 방법을 거치면서 체계적으로 진행할 수 있다.

(1)' 개체와 속성 추출

개체속성
회원회원아이디, 비밀번호, 성별, 나이
테스트테스트 결과들(미정)
향수brand, title, date, accords ....

profile
긍정적인 에너지를 가진 개발자, 이태성입니다.

0개의 댓글