DB의 ARC 관계는 주로 개체(Entity) 간의 관계(Relationship) 를 설명할 때 사용되는 개념 중 하나로, 데이터베이스 설계(특히 E-R 다이어그램)에서 다음과 같은 맥락으로 사용됩니다. ARC는 “Alternative Relationship Constraint”의 약자입니다.
ARC는 하나의 개체가 여러 관계 중 오직 하나의 관계만을 선택하여 참여해야 하는 제약 조건입니다. 즉, 서로 배타적인 관계(Mutually Exclusive Relationship) 들 중 단 하나의 관계에만 참여할 수 있음을 명시하는 것입니다.
Entity: 차량
Relationship:
개인소유
법인소유
차량은 개인
이 소유할 수도 있고, 법인
이 소유할 수도 있습니다. 하지만 동시에 개인과 법인이 공동 소유하는 경우는 없고, 둘 중 하나만 선택해야 합니다.
이때 차량
과 개인소유
, 법인소유
간의 관계는 ARC로 표현할 수 있습니다.
E-R 다이어그램에서 ARC는 다음과 같이 표현됩니다:
차량
에서 나가는 두 개의 관계선 (개인소유
, 법인소유
)을 반원 형태로 묶음ARC
또는 그 의미를 가지는 태그관계형 DB에서는 ARC 관계를 직접 표현하는 구문은 없지만, 트리거나 어플리케이션 로직으로 제약을 구현할 수 있습니다.
예를 들어:
소유자_ID
, 소유자_구분
(‘개인’ 또는 ‘법인’)을 저장하고,소유자_구분
값에 따라 연결된 테이블만 참조하도록 로직 구성구분 | 설명 |
---|---|
일반 관계 | 여러 개의 관계에 동시에 참여 가능 |
ARC 관계 | 여러 관계 중 단 하나의 관계만 선택 가능 |
총참여 | 반드시 어떤 관계에는 참여해야 함 |
선택참여 | 참여하지 않을 수도 있음 |
자동차는 한 명만 주인이 될 수 있어요. 개인이 될 수도 있고, 회사가 될 수도 있지만, 둘 다 동시에 주인이 될 수는 없어요. 이렇게 하나만 골라서 연결해야 하는 규칙을 ARC라고 해요!
아래는 ARC(Alternative Relationship Constraint) 관계를 Markdown 환경에서 텍스트 기반으로 표현한 예시입니다. 다이어그램의 제약을 고려하여 E-R 다이어그램 스타일을 아스키(ASCII) 아트로 표현하였습니다.
+-------------+
| 차량(V) |
+-------------+
|
|
+----------------+----------------+
| |
+---------------+ +---------------+
| 개인소유(R1) | | 법인소유(R2) |
+---------------+ +---------------+
| |
+-------------+ +-------------+
| 개인(E) | | 법인(E) |
+-------------+ +-------------+
<<< ARC 제약 (XOR: R1 또는 R2 중 하나만 참여) >>>
차량
은 두 관계 개인소유
또는 법인소유
중 하나에만 참여할 수 있습니다.