식별 / 비식별 관계

HS L·2023년 4월 11일
1

내일배움캠프

목록 보기
26/73

식별관계와 비식별관계

키 키 키 키 키 키 키... 키만보면 이제 토할 것 같다.. 이전에 이어서 식별관계와 비식별관계를 이해하고자 계속 고민해봤다.
'entity간의 관계를 판단할때 그 관계는 어떤 관계다' 라는 정답을 찾기 위해서 며칠을 검색하고 고민해봤지만 정답은 없었다.. 하지만 후련해졌다. 나와같은 고민을 하고 인터넷을 돌아다니시는 분이 계신다면 이 글이 조금이나마 도움이 됐으면 싶다.

식별관계

부모-자식 테이블의 관계에서 부모 테이블의 기본키가 자식 테이블의 기본키이자 외래키로 사용되는 경우

비식별관계

부모-자식 테이블의 관계에서 부모 테이블의 기본키와 별개로 자식 테이블이 자체의 기본키를 사용하는 경우

고찰

이해하고 받아들이고 나서 꾹 막혀있던 것들이 해소되자마자 처음 들었던 생각은 며칠을 고민하고 헷갈려하며 지냈던 이유가 뭘까? 라는 생각이었다.

그 이유는 정답이 없는 문제에서 정해진 정답을 찾기 위해서 였다. 풀어서 말한다면 주어진 문제에서 어떤 목적을 가지고 나아가서 내가 내려야만 하는 정답이었던 것이다.
내가 개발과정에서 구현하고자 하는 두개의 관계를 봤을때 어떤 관점에서 보는지, 어떤 목적에서 그 둘의관계를 판단하고 싶은지를 정하지 않고 남에게서 답을 찾고 있었던 것이다.

예를 들어 보자면 "갑과 을은 어떤 관계다"에서
단지 그 둘을 놓고 비교하는, 정답을 찾는 것이 아닌
어떤것을 확인해서 판단할 것인지를 정하고 그에 따라 정답을 내릴 것인가를 생각해야 한다.
갑과 을에 각각 혈육관계를 확인하기 위한 '나(존재 자체 = 기본키)', '아빠(존재 자체 = 기본키)'를 대입한다면 '나와 아빠는 부자관계(유일한 식별관계)'라는 정답을 내릴 수 있을 것이다.
위와는 다르게 단지 '나(남자)', '아빠(남자)'처럼 그저 성별을 대입한다면 '잼민일(남자)','잼민이(남자)'와 다를 것 없는 그저 '남자'-'남자' 관계다. 이 데이터를 어떻게 쓰느냐에 따라 식별관계가 될 수도 비식별관계가 될 수도 있다.
어떤 두 개체를 두고 관계를 따질때 필요, 목적에 따라 답은 달라질 수 있다는 것이다. 검색하면 많이 볼 수 있는 주문과 상품, 회사와 사원, 게시글과 댓글 등의 관계들도 내가 어떤 목적을 가지느냐에 따라 식별, 비식별관계가 될 수 있다. 내 목적을 정하지 않고 어떤관계인지 정답을 찾다보니 기준점이 없어서 식별관계인데? 비식별관계인데? 하면서 끌려다녔던 것이다. 여러 글 중에서 돌고돌아 가장 참고가 됐고 이해에 도움이 됐던 자료를 참고한다.

식별,비식별 관계 참고링크

식별, 비식별 관계를 정한다는 것은 상황에 따라, 유동적이기 위해, 유일하기 위해, 데이터베이스측면, 비지니스 측면을 고려한 목적에 의해서 답을 내려야 하지 정해진 답은 없다는 것을 알 수 있을 것이다.

개발공부에서도 똑같이 정해진 정답은 없다고 생각한다. 답에 다가갈 수 있는 길은 얼마든지 개척해 나갈 수 있다. 많이 보고 직접 경험하는 과정을 통해 내 답을 찾아가는 개발자가 돼야겠다.

profile
식이

0개의 댓글