본문 바로가기

데이터베이스/ERD

[ERD] 비식별관계에서 FK의 Optionality(DA#, ER-win 비교)

ERWIN에서 비식별관계일 때 OPTIONALITY 수정하기

: 자식 엔터티의 Optionality는 Cardinality 설정을 통해 변경할 수 있다. 그러나, 부모 엔터티의 Optionality는 변경이 불가능했다. 왜 그런지 확인해보니, Nulls 조건이 Nulls Allowed로 돼있었기 때문이다. 즉, 부모없는 자식이 생길 수 있는 경우를 허용했기 때문에 무조건 선택적인 관계로만 나타났던 것이다.

 

그런데, 비식별관계로 설정하면서 FK가 NOT NULL이어야 하는 경우가 있다. 처음에는, 식별관계로 설정해서 이러한 NOT NULL 조건을 만족시켰는데, 그러고 보니 자식엔터티의 식별자가 최소성을 만족하지 못하는 현상이 발생했다(거래번호 + 계좌번호) 따라서, 비식별관계를 만족하면서 NOT NULL로 나타내는 방법을 찾아보다가 Nulls 옵션을 발견했다. 아주 기본적인 설정 옵션인데, 툴에 익숙지 않다보니 놓치고 있었던 것이다. 결론적으로, Nulls 조건을 No Nulls(NOT NULL)으로 변경하면, 부모엔터티의 Optionality도 필수적인 관계로 나타낼 수 있다. 

 

 

 

참고

- IE 표기법에서, Optionality 의미

- 아래의 그림: A한테 B는 필수적, B한테 A가 선택적인 관계.

- B한테는 A가 필요없기때문에 공차듯이 뻥 차버린 것!(이렇게 암기하면 편하다)

- 그리고, 아라비안숫자 0이라고 생각하면 된다. A는 0일수도 있다는 뜻!

'데이터베이스 > ERD' 카테고리의 다른 글

[ERD] 자기참조관계 ERD  (0) 2020.05.31