💡 핵심 인사이트
약한 개체는 이름표(기본 키)가 없어서 홀로 설 수 없는 서글픈 개체입니다.
반드시 자신을 책임져주는 '부모(강한 개체)'에게 찰싹 달라붙어(식별 관계) 부모의 기본 키를 빌려와야만 비로소 자신의 존재 가치를 인정받고 DB에 살아남을 수 있습니다.
Ⅰ. 약한 개체 (Weak Entity)의 서글픈 탄생
사원 테이블의 김철수(사번: 1001)에게는 아내(이영희)와 아들(김민수)이라는 '부양가족'이 있습니다.
회사 DB에 부양가족이라는 개체를 만들고 이름을 쓱 넣어봅니다. 그런데 회사에 다른 동명이인 '이영희'가 또 등록될 수 있으니 이름만으로는 키(PK)가 될 수 없습니다. 가족들은 사번도 없으니 독립적인 기본 키(PK)를 절대 만들 수가 없습니다!
이처럼 자기 스스로를 유일하게 식별할 수 있는 독자적인 PK가 없는 개체를 약한 개체라고 합니다.
- ERD 기호: 이중 사각형 (▱▱)
Ⅱ. 구원자: 식별 관계 (Identifying Relationship)
스스로 PK가 없는 부양가족(약한 개체)이 살아남는 유일한 방법은, 자신을 부양하는 사원(강한 개체/부모)의 바짓가랑이를 붙잡는 것입니다.
- 부분 키 (Partial Key / 구별자): 약한 개체도 자기들끼리(김철수의 아내와 아들)는 서로를 구분할 수 있는 보조 이름표(예: 가족의 '이름')를 갖는데, 이를 부분 키라고 합니다. 기호는 타원 밑에 점선 밑줄을 긋습니다.
- 식별 관계 (이중 마름모 ◈): 약한 개체가 강한 개체에게 의존하는 특별하고도 강력한 관계입니다.
- PK의 완성 (외래 키의 융합): 약한 개체가 테이블로 만들어질 때, 부모의 PK(사번 1001)를 외래 키(FK)로 훔쳐옵니다. 그리고 자신의 엉성한 부분 키(아내 이름)와 융합하여,
{부모의 사번 + 내 이름}이라는 강력한 복합 기본 키(Composite PK)를 비로소 완성해 냅니다.
[ 사원 (강한 개체) ] [ 부양가족 (약한 개체) ]
사번(PK) | 이름 사번(PK, FK) | 가족이름(PK) | 관계
---------|------- -------------|--------------|-----
1001 | 김철수 ━━━━(식별)━━━━ 1001 | 이영희 | 배우자
1001 | 김민수 | 자녀
위처럼 부양가족 테이블은 사번 혼자서도, 가족이름 혼자서도 행을 식별할 수 없고, 둘을 합쳐야만 1001번의 이영희를 완벽히 찾아냅니다.
Ⅲ. 식별 관계의 운명 공동체 (Cascade Delete)
식별 관계의 가장 무서운 특징은 생사고락을 함께한다는 점입니다.
- 김철수 사원이 퇴사하여 부모 테이블에서 1001번 데이터가 삭제(DELETE)됩니다.
- 그 순간, 부양가족 테이블에 있던 이영희와 김민수의 데이터는 존재의 근원(부모 사번)을 잃어버리게 되므로, DB가 알아서 자식 데이터들을 전부 연쇄 삭제(Cascade Delete)시켜 우주에서 지워버립니다.
📢 섹션 요약 비유: 강한 개체는 자기 이름의 **'독립 세대주(아빠)'**입니다. 약한 개체는 돈을 못 벌어 홀로 월세 계약을 할 수 없는 **'어린 자식'**입니다. 자식은 반드시 아빠의 등본(식별 관계) 밑으로 들어가 아빠 성(부모 PK)을 물려받아야만 동사무소에 존재를 증명할 수 있습니다. 만약 아빠가 집을 팔고 이민을 가면(데이터 삭제), 등본 밑에 묶여있던 자식들도 무조건 함께 이삿짐(연쇄 삭제)을 싸야 하는 완벽한 운명 공동체입니다.