본문 바로가기

관계3

FK를 어느쪽에 둘지 결정하기 모델링을 하다보면 어느쪽 테이블에 FK를 둘 지 하는 것이 고민이 될 때가 있습니다. 오늘은 그런 상황에 대해서 살펴보도록 할께요. 먼저 가장 단순하게, 다음과 같은 상황이라면 어떨까요? 1:M 관계 그림과 같이 1:M 관계라면 당연히 M쪽에서 FK를 가지게 됩니다. 아니 가져야 합니다. 1 쪽에서 M 개의 데이터를 수용할 수는 없으니까요. 팀장 쪽에서 팀원 이라는 속성을 팀원1~팀원100 정도로 가지고 있지 않는 한, 팀원의 정보를 가지는 것은 불가능합니다. 한 팀장 밑에 팀원은 여러명 일 테니까요. 데이터는 이렇게 들어가게 되겠지요. ( 아래그림처럼, 테이블에 들어갈 데이터를 예를들어 써보시면 확실하게 이해가 갑니다. 저도 평소에 뭔가 헷갈린다 싶을 때는 꼭 데이터를 예를 들어 적어보는데요, 생각이 .. 2013. 8. 29.
ERD에서 올바른 관계(relationship) 맺어주기 요즘은 현재 운영중인 시스템의 ERD를 보면서 테이블들 간의 관계를 찾아주는 작업을 하고 있습니다. 초기 ERD는 운영 Database에서 reverse 해서 만들었는데, 테이블간의 관계는 전혀 없습니다. 이걸 들여다 보면서 나름 해독하고, 업무 설명 문서를 읽고, 그래도 모르겠는 내용은 물어가며, 이렇게 저렇게 상상의 나래까지 더해서 관계를 찾아가고 있는데요. 꽤 재미있네요. :-) 오늘은 이렇게 관계를 찾아나가던 중, 세 번이나 관계를 바꾸고 나서야 만족스러운 결과를 얻었던 사례를 말씀드리려고 해요. 우리 도서관에 연체한 회원의 목록을 타 도서관에 보내서, 그 쪽 도서관에도 연체한 사람인지 알아보려고 하는 업무라고 가정할께요. 다른 도서관은 우리 도서관의 타 지역 분원 일 수 있구요, 아니면 아예 다.. 2013. 6. 20.
잘못된 관계를 설정 하면 발생하는 일 며칠전 프로젝트 참여인원을 대상으로 데이터 모델링의 기본내용을 강의할 일이 있었는데요, 엔터티란 무엇인가, 관계란 무엇인가, 관계의 유형은 어떤것이 있는가를 한참 설명하고 있는데 한 분이 질문을 하셨습니다. "그런데, 만약에 관계를 잘못 맺으면요. 예를들어 1:1 관계인데, 1:M 으로 설정한다든지요. 그럼 어떤일이 생기나요? 혹은 잘못 맺었다는 것을 어떻게 알 수 있나요?" 흡. 잠시 긴장 했더랬습니다. 당연히 제대로 그려야 한다는 생각만 해왔지, 어떤일이 생길지, 어떻게 알 수 있을지는 깊이 생각해 보지 않았던것 같습니다. 그래서, 잘못 그린다고 무슨일이 나서 알게되지는 않으나, 논리 데이터 모델은 업무 규칙을 잘 표현하려고 노력해야 하고 업무 규칙을 잘 아는 사람이 검증해야 한다고 답하고 마무리 했.. 2013. 5. 23.