본문으로 건너뛰기
SQLD 준비실
이론 전체 목차 열기 3 / 32

데이터 모델링의 이해 · 모델링 구성요소 3 / 32

속성, 관계, 식별자

엔터티를 완성하는 속성, 관계, 식별자의 의미와 분류를 시험에서 구분할 수 있게 정리합니다.

출제 빈도 ★★★★ 관련 문제 6개 | 속성관계식별자

엔터티만으로는 모델이 완성되지 않습니다

엔터티는 관리 대상의 집합입니다. 하지만 엔터티 이름만으로는 어떤 데이터를 저장하고, 어떻게 구분하고, 다른 엔터티와 어떻게 연결되는지 알 수 없습니다. 그래서 속성, 식별자, 관계를 함께 정의해야 합니다.

속성

속성은 엔터티가 가지는 세부 정보입니다. 사원 엔터티라면 사원번호, 사원명, 입사일, 부서번호가 속성이 될 수 있습니다.

분류의미
기본 속성업무에서 직접 수집되는 속성이름, 생년월일, 주문일
설계 속성시스템 설계를 위해 추가한 속성주문번호, 고객ID
파생 속성다른 값으로 계산 가능한 속성총주문금액, 나이

파생 속성은 편리하지만 중복을 만들 수 있습니다. 예를 들어 총주문금액은 주문상세의 수량과 단가로 계산할 수 있으므로 저장 여부를 신중히 결정해야 합니다.

식별자

식별자는 엔터티의 인스턴스를 유일하게 구분하는 속성 또는 속성 집합입니다.

구분의미
주 식별자대표로 선택한 식별자
보조 식별자후보는 되지만 대표로 선택되지 않은 식별자
내부 식별자엔터티 내부 속성으로 구성
외부 식별자다른 엔터티와의 관계에서 가져온 식별자
단일 식별자속성 하나로 식별
복합 식별자둘 이상 속성으로 식별

좋은 주 식별자는 유일성, 최소성, 불변성, 존재성을 만족해야 합니다. 즉 중복되지 않고, 꼭 필요한 속성만 포함하고, 쉽게 바뀌지 않으며, NULL이 아니어야 합니다.

관계

관계는 엔터티 사이의 업무적 연관성입니다. 관계를 읽을 때는 세 가지를 확인합니다.

확인 항목질문
관계명두 엔터티가 어떤 의미로 연결되는가
관계 차수1:1, 1:N, M:N 중 무엇인가
선택성반드시 연결되어야 하는가, 없어도 되는가

예를 들어 고객과 주문은 보통 고객 1명이 여러 주문을 할 수 있으므로 1:N 관계입니다. 이때 주문이 반드시 고객을 가져야 한다면 주문 쪽 고객 관계는 필수 관계입니다.

식별 관계와 비식별 관계

식별 관계는 부모의 식별자가 자식의 주 식별자에 포함되는 관계입니다.

주문(주문번호)
주문상세(주문번호, 주문순번)

주문상세주문번호 없이는 식별되기 어렵습니다. 이런 경우 식별 관계로 표현할 수 있습니다.

비식별 관계는 부모 식별자가 자식의 일반 외래키가 되는 관계입니다. 자식의 주 식별자는 별도로 있고, 부모 키는 참조용으로만 들어갑니다.

속성은 무엇을 저장할지, 식별자는 어떻게 구분할지, 관계는 어떻게 연결할지를 정합니다.