데이터베이스 ER 모델링에서 개체(Entity)는 크게 강한 개체(Strong Entity)와 약한 개체(Weak Entity)로 구분됩니다. 두 개체는 존재 방식, 키 구조, ER 다이어그램 표기법에서 뚜렷한 차이를 보이며, 이를 정확히 이해하는 것은 올바른 데이터베이스 설계의 기초가 됩니다.
강한 개체(Strong Entity)란?
강한 개체는 스키마 내에서 다른 어떤 개체에도 의존하지 않고 독립적으로 존재할 수 있는 개체입니다. 강한 개체는 자신을 고유하게 식별할 수 있는 기본 키(Primary Key)를 반드시 가지며, 강한 개체들의 모임을 '강한 개체 집합(Strong Entity Set)'이라고 부릅니다.
ER 다이어그램에서 강한 개체는 단일 사각형으로 표현되며, 두 강한 개체 사이의 관계(Relationship)는 단일 마름모로 나타냅니다.
강한 개체의 예시
예를 들어 '학생(Student)' 개체는 학번이라는 고유한 기본 키를 가지므로, 다른 개체의 도움 없이 스스로 식별될 수 있는 전형적인 강한 개체입니다.
약한 개체(Weak Entity)란?
약한 개체는 강한 개체에 의존하며, 대응하는 강한 개체가 없다면 존재할 수 없는 개체입니다. 약한 개체는 자신을 소유하는 강한 개체의 기본 키를 참조하는 외래 키(Foreign Key)를 가지며, 이 외래 키는 부분 판별자 키(Partial Discriminator Key)라고도 불립니다.
ER 다이어그램에서 약한 개체는 이중 사각형으로 표현되며, 강한 개체와 약한 개체 사이의 관계는 이중 마름모로 나타냅니다.
약한 개체의 예시
'건물(Building)'과 '층(Floor)'의 관계를 생각해 보면, 층은 건물 없이는 아무런 의미가 없습니다. 층 번호만으로는 고유하게 식별할 수 없고 반드시 속한 건물과 함께 식별해야 하므로, 층은 약한 개체에 해당합니다.
강한 개체 vs 약한 개체 주요 차이점 비교
다음은 강한 개체와 약한 개체의 핵심적인 차이점을 5가지 기준으로 정리한 비교표입니다.
| 번호 | 구분 기준 | 강한 개체 (Strong Entity) | 약한 개체 (Weak Entity) |
|---|---|---|---|
| 1 | 키(Key) | 항상 자체적인 기본 키(Primary Key)를 가집니다. | 강한 개체의 기본 키를 참조하는 외래 키(Foreign Key)를 가집니다. |
| 2 | 의존성(Dependency) | 다른 개체에 의존하지 않고 독립적으로 존재합니다. | 대응하는 강한 개체가 없으면 존재할 수 없습니다. |
| 3 | 표기법(Represented by) | 단일 사각형으로 표현됩니다. | 이중 사각형으로 표현됩니다. |
| 4 | 관계 표현(Relationship) | 두 강한 개체 간의 관계는 단일 마름모로 표현됩니다. | 강한 개체와 약한 개체 간의 관계는 이중 마름모로 표현됩니다. |
| 5 | 참여 여부(Participation) | 개체 관계에 참여할 수도 있고, 참여하지 않을 수도 있습니다. | 항상 개체 관계에 참여합니다. |
정리
강한 개체는 기본 키를 통해 독립적으로 식별 가능한 개체인 반면, 약한 개체는 소유 개체(Owner Entity)인 강한 개체에 종속적으로 존재하는 개체입니다. ER 다이어그램 작성 시에는 사각형과 마름모의 단일·이중 표기 차이를 정확히 구분하여 사용해야 하며, 이러한 구분은 데이터 무결성을 유지하고 명확한 스키마를 설계하는 데 중요한 역할을 합니다.