Rubberduck-Debugging

DB 식별 비식별 본문

개발자/201801프로젝트_Hello,mind!

DB 식별 비식별

P缶 2019. 1. 10. 10:38


식별자관계,비식별자관계의 의미는 알고 계신듯 하니 설명은 생략하구요...저두 잘은 모르지만 몇자 적어보면... 

1)식별자관계: 

테이블 A와 B가 있는데 B테이블에 있는 로우가 A테이블에 로우가 생성되지 않고서는 절대로 발생되지 않은 경우 식별자관계를 만들어야 합니다. 즉, 자신의 탄생에 결정적 역할을 하는 테이블이 있다면 그건 부모-자식관계이고 식별자 관계로 설정해야 합니다. 
예를 들어 게시판이 있고 첨부파일이 있다고 합시다. 첨부파일은 여러개가 있을 수 있으니 첨부파일 테이블은 게시판 테이블과 별도로 만들죠. 그런데 게시물이 등록되지 않은 상태에서 첨부파일이 등록될 수 있습니까? 절대로 있을 수 없죠. 이런 경우 식별자 관계입니다. 

2)비식별자관계 
내가 태어나는데 절대적,직접적 역할을 하지 않는다면 비식별자 관계입니다. 사원과 부서 테이블이 있는데 만일 식별자관계가 된다면 어떻게 될까요? 사원의 로우는 반드시 부서에 소속부서 로우가 있어야만이 발생될 수 있겠죠? 그럼 회사원이 되었으나 아직 발령을 받지 못해 소속부서가 없는 신입사원은 어떻게 처리할까요? 부서가 배정되기 전까지는 절대 사원에 등록될 수 없습니다. 그리고 한창 일하다가 발령대기 받은 사원은 어떻게 해야할까요? 만일 식별자관계라면 일단 퇴직처리하고 소속부서가 결정되면 다시 입사시키는 복잡한 과정을 거쳐야 할 것입니다. 

보다 자세한 내용을 알고 싶으시면 이화식씨의 [데이타아키텍처] 책 권해드립니다. 모델링에 대해서 ,칼럼 하나 정하는 이치,PK 설정하는 방법,식별/비식별관계를 정하는데 있어 이보다 심도있게 논의한 책은 없을 것 같습니다.




도랑버리겟네