공든탑앱 열기

속성과 도메인

SQLD (SQL 개발자) · 데이터 모델링의 이해 · 약 8분

쉽게 말하면

속성은 엔터티를 설명하는 칸 하나예요. 고객이라는 표에 이름, 생년월일, 전화번호 칸이 있다면 그 칸들이 속성이에요. 한 칸에는 값이 하나만 들어가요. 그 칸에 들어갈 수 있는 값의 범위(숫자만, 10글자까지 등)를 도메인이라고 해요.

시험용 정의

속성(Attribute)은 업무에서 엔터티에 대해 관리하려는 더 이상 나눌 필요가 없는 최소 단위의 정보다. 고객의 이름, 생년월일처럼 인스턴스를 설명하고, 테이블에서는 열(컬럼)이 된다. 속성 하나에는 인스턴스마다 값이 하나만 들어간다.

비유로 이해하기

주민등록증 칸 하나하나가 속성이다. '이름' 칸에는 이름 하나만 쓰고, 칸에 들어갈 수 있는 글자 종류와 길이(도메인)도 정해져 있다.

자세히

먼저 알아 둘 말

말뜻
속성값한 인스턴스의 한 속성에 실제로 들어간 값. 고객 '홍길동'의 이름 속성값은 '홍길동'
정합성서로 관련된 데이터의 값이 모순 없이 맞는 상태
원자값더 쪼갤 필요가 없는 값 하나. '서울시 중구'를 시·구로 나눠 관리할 필요가 없다면 그 자체가 원자값이다

엔터티·인스턴스·속성·속성값

  • 한 엔터티는 두 개 이상의 인스턴스를 가진다
  • 한 엔터티는 두 개 이상의 속성을 가진다
  • 한 속성은 (한 인스턴스에서) 하나의 속성값만 가진다. 값이 여러 개면 별도 엔터티로 분리한다(제1정규형)

특성에 따른 분류

종류뜻예
기본 속성업무에서 바로 뽑아낸, 원래 있는 속성. 가장 많다상품명, 단가, 주문일
설계 속성업무에는 없지만 설계하면서 새로 만든 속성. 코드나 일련번호상품코드, 주문순번
파생 속성다른 속성에서 계산·변형해 만든 속성. 적을수록 좋다총금액, 재고수량 합계

구성 방식과 값의 개수에 따른 분류

기준종류뜻
엔터티 구성 방식PK·FK·일반 속성인스턴스를 식별하면 PK, 다른 엔터티에서 받아 왔으면 FK, 나머지는 일반 속성
분해 여부단일 속성 / 복합 속성하나로만 의미가 있으면 단일(이름), 여러 의미로 나눌 수 있으면 복합(주소 = 시·구·동)
값의 개수단일값 / 다중값 속성값이 하나뿐이면 단일값(주민번호), 여러 개면 다중값(전화번호들). 다중값은 별도 엔터티로 뺀다

도메인과 이름 짓기

도메인은 속성이 가질 수 있는 값의 범위다. 자료형, 길이, 허용 값, 제약을 정한다. 예: 성별 = 'M','F' 중 하나, 학점 = 0.0~4.5. 실제 테이블에서는 데이터 타입과 CHECK 제약으로 구현된다.

속성 이름은 현업 용어로, 서술식이 아닌 명사형으로, 약어를 피하고, 데이터 모델 전체에서 유일하게 짓는 것이 좋다 (예: 그냥 '이름' 대신 '고객명', '사원명').

시험에 이렇게 나와요

출제 범위·공식 안내 기반

확인 문제

Q1. 주문 엔터티의 총금액은 주문상세의 수량×단가를 더해 언제든 계산할 수 있다. 이런 속성은?

  1. 파생 속성
  2. 복합 속성
  3. 설계 속성
  4. 기본 속성
정답 보기

1번 파생 속성

다른 속성 값에서 계산하거나 변형해 만든 속성은 파생 속성이다. 원본이 바뀌면 함께 고쳐야 해서 데이터 정합성을 해칠 수 있으므로 꼭 필요한 것만 둔다.

Q2. 업무에 원래 있지는 않지만 설계하면서 새로 만든 코드·일련번호 같은 속성은?

  1. 설계 속성
  2. 기본 속성
  3. 다중값 속성
  4. 파생 속성
정답 보기

1번 설계 속성

설계 속성. 예: 상품코드, 주문순번.

Q3. 속성이 가질 수 있는 값의 범위를 무엇이라 하나?

  1. 카디널리티
  2. 도메인
  3. 인스턴스
  4. 식별자
정답 보기

2번 도메인

도메인. 자료형·길이·허용값으로 정한다.

Q4. 속성에 대한 설명으로 옳은 것은?

  1. 파생 속성은 많을수록 좋다
  2. 한 속성은 한 인스턴스에서 여러 값을 가질 수 있다
  3. 주소처럼 여러 의미로 나눌 수 있는 속성은 복합 속성이다
  4. 한 엔터티는 속성을 하나만 가진다
정답 보기

3번 주소처럼 여러 의미로 나눌 수 있는 속성은 복합 속성이다

주소는 시·구·동으로 나눌 수 있는 복합 속성이다. 한 속성은 한 값, 파생 속성은 최소화, 엔터티는 속성 두 개 이상.

Q5. 주문의 '주문금액'을 주문상세의 단가 × 수량을 더해 계산해 두었다. 이 속성은?

  1. 복합 속성
  2. 기본 속성
  3. 설계 속성
  4. 파생 속성
정답 보기

4번 파생 속성

다른 속성으로 계산되는 값이라 파생 속성이다. 값이 어긋날 수 있어 되도록 줄인다.

Q6. '주소'처럼 시·구·동으로 더 나눌 수 있는 속성은?

  1. 단일 속성
  2. 복합 속성
  3. 파생 속성
  4. 다중값 속성
정답 보기

2번 복합 속성

여러 하위 값으로 나눌 수 있으면 복합 속성이다.

헷갈리기 쉬운 O·X

파생 속성은 데이터 정합성을 해칠 수 있어 꼭 필요한 경우에만 둔다.

정답 보기

O 원본 속성과 파생 속성이 따로 바뀌면 값이 어긋난다.

다중값 속성은 그대로 한 열에 쉼표로 모아 두는 것이 좋다.

정답 보기

X 다중값 속성은 별도 엔터티로 분리한다. 한 칸에 여러 값을 넣으면 제1정규형 위반이다.

도메인은 엔터티와 엔터티 사이의 연결을 뜻한다.

정답 보기

X 엔터티 사이의 연결은 관계다. 도메인은 속성 값의 범위다.

함께 보면 좋은 개념