ERD를 편하게 그리려고 MySQL Workbench를 켰는데 관계를 설정하는 도구 중 점선으로 되어 있는 것도 있었고 실선으로 되어 있는 것도 있었다. 설명을 보니 실선은 Identifying Relation, 점선은 Non-Identifying Relation이었다. 이는 다음과 같은 예로 쉽게 설명된다.

책은 소유자에게 속해있다. 소유자는 여러 권의 책을 소유할 수 있다. 그러나 책은 소유자 없이도 존재할 수 있으며 소유자를 바꿀 수도 있다. 책과 소유자의 이러한 관계를 Non-Identifying Relation라고 한다.

책은 저자에 의해 쓰여졌고 저자는 복수 권의 책을 썼을 수 있다. 그러나 책은 저자에 의해 쓰여져야 하며 저자 없이 존재할 수 없다. 그러므로 이 관계는 Identifying Relation이다.

좀 더 구체적인 정의로 가볼까?

부모 테이블의 유니크 키나 기본키로 지정된 칼럼이 자식 테이블의 기본키 컬럼과 연결된 경우 실선으로 표기되고 Identifying Relation라고 한다.

부모 테이블의 유니크 키나 기본키로 지정된 컬럼이 자식 테이블의 일반 컬럼과 연결된 경우 점선으로 표기되고 Non-Identifying Relation라고 한다.

+ Recent posts