싸피 5기2학기 두번째 프로젝트에 돌입
치열한 아이디어 회의 끝에 향수를 추천해주는 서비스 결정
(우여곡절이 있었지만...)
프론트엔드 직무를 희망하지만 이번 프로젝트는 역할을 기능별로 나눴기 때문에 나 역시도 ERD를 짜는데 기여를 해야했고 관계형 데이터베이스에대해 공부를 하게 되었다.
잘 정리되어있는 블로그를 참고하여 project 시리즈 포스팅을 시작.
https://advenoh.tistory.com/31
1) 데이터베이스를 설계하는 방법에는 주로 2가지 방법
=> 정규화란 중복을 최소화하며 설계
2) E-R 모델과 릴레이션 변환 규칙을 이용한 설계 단계
(1) 데이터 요구사항에 대한 분석(결과:요구사항 명세서)
(2) 개념 스키마 설계(결과:ERD)
(3) 논리 스키마 설계(결과:릴레이션 스키마의 테이블 명세서)
(4) 내부 스키마 설계(결과:DB 스키마 생성 SQL문)
3) 요구사항 분석하기
*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 .... |