관계(Relationship)
관계란?
두 개 이상의 엔티티 간 연관성을 의미하며, 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위 관계로 나눌 수 있음
존재 관계
엔티티 간의 연관성이 존재 자체로 성립되는 관계. 예를 들어, 엄마와 아기, 직원과 부서, 학생과 학과
행위 관계
특정한 행위나 이벤트를 통해 연관성이 생기는 관계. 예를 들어, 회원과 주문, 학생과 출석부
표기법
관계명(Membership) : 관계의 이름, 명확한 문장으로 표현해야 하며 현재형이어야 함. 예를 들어, 학생은 학과에 소속된다
관계차수(Cardinality) : 관계의 기수성(참여하는 수), 일반적으로 1:1, 1:M, M:N 형식으로 구분. 예를 들어, 한 학생은 여러 수업을 들을 수 있고 하나의 수업은 여러 학생을 수용할 수 있다면 M:N 관계
관계선택사양(Optionality) : 관계가 필수 요소인지 선택 사항인지의 여부. 예를 들어, 주문과 주문상품의 관계는 필수, 학생과 출석부의 관계는 선택
식별자(Identifiers)
식별자란?
엔티티가 가지는 속성 중에서 각 인스턴스를 구분할 수 있게 해주는 대표 격인 속성
주 식별자
기본 키(PK, Primary Key)에 해당하는 속성으로 하나의 속성이 주 식별자가 될 수도 있고 여러 개의 속성이 주 식별자가 될 수도 있음
- 유일성 : 각 인스턴스에 유니크함을 부여하여 식별할 수 있게 함
- 최소성 : 유일성을 보장하는 최소 개수의 속성이어야 함
- 불변성 : 속성값이 되도록 변하지 않아야 함
- 존재성 : 속성값이 NULL일 수 없음
식별자의 분류
대표성 여부
- 주 식별자(Primary Identifier) : 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자로 다른 엔티티와 참조 관계로 연결
- 보조 식별자(Alternate Identifier) : 인스턴스를 식별할 수 있지만 대표 식별자가 아니며 다른 엔티티와 참조 관계로 연결되지 않음
스스로 생성되었는지 여부
- 내부 식별자(Internal Identifier) : 엔티티 내부에서 스스로 생성된 식별자
- 외부 식별자(Foreign Identifier) : 다른 엔티티에서 온 식별자, 다른 엔티티와의 연결고리 역할
단일 속성의 여부
- 단일 식별자(Single Identifier) : 하나의 속성으로 구성된 식별자
- 복합 식별자(Composite Identifier) : 두 개 이상의 속성으로 구성된 식별자
대체 여부
- 원조 식별자(Original Identifier) : 업무 프로세스에 존재하는 식별자로 가공되지 않은 원래의 식별자(본질 식별자)
- 대리 식별자(Surrogate Identifier) : 주 식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자(인조 식별자)
식별자 관계 vs. 비식별자 관계
식별자 관계(Identification Relationship) : 엔티티 간의 강한 연결 관계로, 부모 엔티티의 식별자가 자식 엔티티의 주 식별자가 되는 관계. 부모 엔티티가 있어야 자식 엔티티가 생성될 수 있으며 관계는 실선으로 표현. 자식 엔티티는 부모 엔티티의 식별자를 필수로 참조
비식별자 관계(Non-Identification Relationship) : 엔티티 간의 약한 연결 관계로, 부모 엔티티의 식별자가 자식 엔티티의 주 식별자가 아닌 일반 속성이 되는 관계. 부모 엔티티 없는 자식 엔티티가 생성될 수 있으며 관계는 점선으로 표현. 자식 엔티티는 부모 엔티티의 식별자를 참조하지 않거나 참조가 선택적
'SQL' 카테고리의 다른 글
SQL 기본 RDB와 SELECT 문 (0) | 2025.03.04 |
---|---|
데이터 모델과 SQL 반정규화 (0) | 2025.03.03 |
데이터 모델과 SQL 정규화 (0) | 2025.03.02 |
데이터 모델링의 이해 엔티티와 속성 (0) | 2025.02.28 |
데이터 모델링의 이해 개요 (0) | 2025.02.27 |