관계의 정의

관계 : 엔터티의 인스턴스 간에 논리적인 연관성을 가지는 형태나 행위
엔터티 간의 업무적 연관성을 표현
관계의 표현
2개 엔터티 사이의 관계는 2개의 관계명을 가짐
ex) 고객은 주문을 생성한다 / 주문은 고객에 의해 생성된다
관계의 분류
종류
🔹 존재에 의한 관계 : 항상 존재하는 관계 (ex: 사원은 부서에 속한다)
🔹 행위에 의한 관계 : 특정 행위로 발생하는 관계 (ex: 고객이 상품을 구매)
카디널리티(참여자 수)
🔹 1:1 관계 : 양쪽 엔터티의 인스턴스가 1:1로 대응
🔹 1:M 관계 : 한쪽 엔터티 인스턴스가 여러 인스턴스와 관계
🔹 N:M 관계 : 양쪽 엔터티의 인스턴스가 다대다 관계
관계의 선택성
🔹 필수적 관계 : 반드시 관계를 가져야 함 (실선)
🔹 선택적 관계 : 관계를 가질 수도 있고 아닐 수도 있음 (점선으로 표시)
관계명 표기 규칙
🔹 관계의 이름은 현재형 동사 사용
🔹 관계 참여자의 관점에서 능동적으로 명명
🔹 관계는 양방향으로 명명 (능동/수동)
식별자의 정의
식별자 : 엔터티 내에서 인스턴스를 구별하는 속성 또는 속성 조합
논리 모델링에서는 "식별자", 물리 모델링에서는 "키(Key)"라는 용어 사용
식별자의 특성
🔴 유일성 : 인스턴스를 유일하게 구분할 수 있어야 함
🔴 최소성 : 필요 최소한의 속성으로 구성
🔴 불변성 : 값이 변하지 않아야 함
🔴 존재성 : 반드시 값이 존재해야 함 (NULL은 X)
식별자의 분류
🔹 대표성에 따른 분류
- 주 식별자 : 엔터티를 대표하는 식별자 (ex: 사원번호)
- 보조 식별자 : 대체 식별 가능한 식별자 (ex: 주민등록번호)
🔹 생성 방식에 따른 분류
- 내부식별자 : 엔터티 내에서 스스로 생성되는 식별자 (ex: 고객번호)
- 외부식별자 : 다른 엔터티로부터 받아오는 식별자 (ex: 주문의 고객번호)
🔹 속성의 수에 따른 분류
- 단일 식별자 : 하나의 속성으로 구성된 식별자 (ex: 고객번호)
- 복합식별자 : 여러 속성의 조합으로 구성된 식별자 (ex: 주문번호 + 상세순번)
🔹 대체 가능성에 따른 분류
- 본질식별자 : 업무적으로 지연 발생한 식별자 (ex: 주민등록번호)
- 인조식별자 : 시스템에서 임의로 부여한 식별자 (ex: 일련번호)
식별자 도출 기준
🔹 업무에서 자주 사용되는 속성 우선
🔹 명칭이나 내역과 같은 서술형 속성 X
🔹 속성의 수가 적은 것 우선
🔹 향후 변경 가능성이 적은 속성 우선
식별자 관계와 비식별자 관계
🔹 식별자 관계 : 부모 엔터티의 주식별자가 자식 엔터티의 주식별자에 포함되는 관계 (실선)
🔹 비식별자 관계 : 부모 엔터티의 주식별자가 자식 엔터티의 일반 속성으로 포함되는 관계
🔹 관계 설정 기준
- 자식 인스턴스가 부모 없이 독립적 존재 가능 ➡ 비식별자 관계
- 자식 인스턴스의 존재가 부모에 종속적 ➡ 식별자 관계
- 복합식별자가 너무 많아지면 ➡ 비식별자 관계 고려
- 객체 재사용 필요시 ➡ 비식별자 관계 고려
- 이력 관리 엔터티 ➡ 식별자 관계 고려
'🍏 개발일기 > 으쌰으쌰 SQLD 자격증 준비' 카테고리의 다른 글
| 데이터 모델과 SQL & GROUP BY절, HAVING절, ORDER BY 절 (0) | 2026.02.12 |
|---|---|
| 노랭이 88P 부터 시작 78번 ~ 89번 (0) | 2026.02.11 |
| 노랭이 85P 부터 시작 74번, 75번, 76번, 77번 (0) | 2026.02.11 |
| 관계형 데이터베이스 개요 & 엔터티 (0) | 2026.02.10 |
| 데이터 모델링의 이해 (0) | 2026.02.09 |