자바 개발자로, iOS 개발자로...

사실 DB는 대충 아무생각없이 간단한 테이블들이나 만들고 단순한 쿼리정도 짤줄 알았지...


이번에 개인 프로젝트로 시스템 하나 만들면서 나름 생각 있는 scheme를 짜보기로 했다.


대충 머리에 떠오르는대로 entity 구성은 했는데

이놈에 관계란...

어떤 놈을 어떤 놈과 연결지어야 하는지는 알겠는데...

뭔놈의 관계 맺는데 옵션이 이렇게 많냐...


오늘 배운 2가지만 정리해보자


Identifying Relationship


외형상의 특징은 부모 테이블의 PK가 자식 테이블의 PK로 들어간다.

여기서부터 유추할 수도 있겠지만 만일 부모 테이블에 없는 PK로 자식 테이블에 레코드를 생성할 경우

당연히 생성이 되지않는다. 만일 이미 자식 테이블에 PK로 포함된 부모 테이블의 레코드가 삭제되면

(이게 가능한지는 모르겠지만) 당연히 자식 테이블이 이 레코드는 참조가 되질 않을 것이다.


ERD에서는 실선으로 표시를 한다.


Non-Identifying Relationship


외형상의 특징은 부모 테이블의 PK가 자식 테이블의 일반 컬럼으로 들어간다

때문에 부모 테이블에 해당 PK가 없어도 자식 테이블의 레코드는 그 자체로 존재 가능하다.


ERD에서는 점선으로 표시한다.



그림으로 보면




다음은 Mandatory와 Optional


Mandatory


외형상으로는 FK가 항상 Not Null이어야 하는 경우. 즉 항상 관계가 유지되어야 하는 경우


Optional


외형상으로는 FK가 Null이어도 되는 경우. 즉, 관계가 맺어지지 않아도 됨



뭔가 설명이 부실하지만...

차차 공부하면서 익숙해지도록 하자...ㅠ.ㅠ


저작자 표시
신고

'Development > DATABASE' 카테고리의 다른 글

RDBMS 개념 정리 - Relationshp  (0) 2015.04.24

+ Recent posts

티스토리 툴바