[DB] Design Issues

임승섭·2023년 4월 23일
0

Database system

목록 보기
4/22

Common Mistakes in E-R diagram

(a). dept_name이 중복되어 있다. student에서 제거시킬 필요가 있다. departmen에서는 primary key 역할을 하기 때문에 제거시키면 안된다.

(b). 이렇게 하면 student의 과제를 딱 하나밖에 저장하지 못한다.
proj 1 : pass / proj 2 : pass / proj 3 : fail
이런 식으로 정보를 저장하고 싶은데 single value라서 불가능하다

(c). student와 section 사이에 뭐가 많이 생겼다.
일단 assignment를 하나의 entity로 만든다. 여기에 assignment에 대한 정보(제출 기한, late 페널티 등등)을 저장할 수 있다.
이 entity를 가운데에 두고 양쪽으로 relationship을 만들었다.

(d). 단순히 single value였던 걸 multi value로 바꿔주었다. 깔끔하고 좋긴 하지만 (c)처럼 assginment에 대한 정보를 저장할 수는 없다.

Entity vs Attribute

(a). phone number를 entity의 attribute로 저장하였다.
(b). phone이라는 새로운 entity를 만들었다. 이렇게 하면 phone에 대한 여러 정보를 저장할 수 있고, many to many로 만들었기 때문에 역시 여러 개의 phone number를 저장할 수 있다.


단순히 student와 section 사이에 relationship만 만들면, 학생의 수업 수강 여부만 확인할 수 있다. 관계가 있으면 수강, 없으면 수강x.
그런데 위 그림처럼 만들면 그 수강에 대한 정보를 더 저장할 수 있다. 수강 여부에 추가해서, 초수강인지 재수강인지 등등 추가적인 정보 저장이 가능하다.

0개의 댓글