CertNote/ 출퇴근 학습 노트
로드맵
SQLD · 개발자SQL 개발자 (SQLD)
  • Week 1
    • 1.데이터 모델링 개요
    • 2.3단계 스키마와 모델링 단계
    • 3.엔터티
    • 4.속성
    • 5.관계
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← SQLD/Week 1/Day 4

기준: SQLD 출제 기준·오류 제보

SQLD· AssociateWeek 1 · Day 4읽기 약 8분
핵심 정리
  • 속성은 업무에 필요한, 의미상 더 이상 쪼개지지 않는 최소 데이터 단위다. 엔터티를 설명하고 인스턴스를 구성한다.
  • 한 속성은 한 인스턴스에서 하나의 속성값만 가진다. 값이 여럿이면 별도 엔터티로 뺀다.
  • 특성에 따라 기본·설계·파생 속성, 엔터티 구성 방식에 따라 PK·FK·일반 속성으로 나눈다.
  • 파생 속성은 다른 속성에서 계산되는 값이라 일관성을 해치기 쉽다. 가능한 한 적게 정의한다.
  • 도메인은 속성이 가질 수 있는 값의 범위(타입·크기·제약)다.

Day 4 - 속성

주문 한 건을 무엇으로 설명하나

주문 O1001 을 설명하려면 주문번호, 주문일자, 고객번호, 배송지 주소, 결제금액이 필요하다. 이 하나하나가 속성이다. 엔터티가 "무엇을 관리하나"라면 속성은 "그것의 무엇을 기록하나"다.

정의

  • 업무에서 필요로 하는 정보다.
  • 의미상 더 이상 분리되지 않는 최소의 데이터 단위다.
  • 엔터티를 설명하고 인스턴스의 구성 요소가 된다.

"의미상"이라는 말이 중요하다. 주문일자 2026-11-03 은 글자로는 연·월·일로 쪼갤 수 있다. 그러나 업무에서 주문일자를 하나의 의미로 쓴다면 쪼개지 않은 하나의 속성이다.

엔터티·인스턴스·속성·속성값의 관계

관계규칙쇼핑몰 예
엔터티 – 인스턴스한 엔터티는 두 개 이상의 인스턴스를 가진다주문 엔터티에 O1001, O1002 …
엔터티 – 속성한 엔터티는 두 개 이상의 속성을 가진다주문번호, 주문일자, 결제금액 …
속성 – 속성값한 속성은 한 인스턴스에서 하나의 속성값만 가진다O1001 의 결제금액은 35,000 하나
                 주문번호   주문일자     고객번호   결제금액     ← 속성
  인스턴스 1 →   O1001      2026-11-03   C001       35,000
  인스턴스 2 →   O1002      2026-11-03   C002       12,000
                                                    ↑ 속성값
  • 마지막 규칙은 원자값 원칙이다. 한 칸에 값이 하나만 들어간다.
  • 고객의 연락처가 집·휴대폰·회사 셋이라면 연락처 칸에 셋을 넣지 않는다. 연락처를 별도 엔터티로 빼거나, 의미가 서로 다르면 속성 셋으로 나눈다. 이 판단은 1차 정규화로 이어진다(Week 2).

특성에 따른 분류

분류뜻쇼핑몰 예
기본 속성업무 분석에서 바로 뽑아낸 원래 있는 속성. 가장 많다상품명, 상품가격, 주문일자, 주문수량
설계 속성업무상 원래 없지만 설계하며 새로 만든 속성. 코드나 일련번호가 여기 든다주문상태코드, 주문상품 일련번호
파생 속성다른 속성에서 계산하거나 변형해 얻는 속성주문총금액(수량 × 단가의 합), 고객 누적구매액
  • 설계 속성은 "업무 규칙을 단순하게 표현하려고" 만든다. "배송 준비 중, 배송 중, 배송 완료"를 10, 20, 30 코드로 정의하면 설계 속성이다.
  • 기본 속성처럼 보여도 코드로 다시 정의했거나 일련번호처럼 시스템이 부여한 것이면 설계 속성으로 본다.

파생 속성은 왜 조심하나

[주문상품]
  주문번호  상품  수량  단가
  O1001     펜    2     1,000
  O1001     노트  1     3,000
                 │  2 × 1,000 + 1 × 3,000
                 ▼
[주문]
  주문번호  주문총금액(파생)
  O1001     5,000
  • 주문총금액은 주문상품의 수량 × 단가를 더한 값이다. 주문상품 수량을 3으로 고쳤는데 주문총금액을 함께 고치지 않으면 두 값이 어긋난다.
  • 그래서 파생 속성은 데이터 정합성을 해치기 쉽다. 꼭 필요한 경우에만 정의하고, 정의하면 원천 속성이 바뀔 때 함께 갱신되도록 규칙을 둔다.
  • 조회 성능 때문에 일부러 파생 속성을 두는 것은 반정규화의 한 형태다.

⚠️ 파생 속성은 "가급적 적게" 정의하는 것이 원칙이다. "성능을 위해 가능한 한 많이 정의한다"는 보기는 틀린 설명이다. 계산값을 저장할수록 갱신을 빠뜨릴 곳이 늘어난다.

엔터티 구성 방식에 따른 분류

분류뜻주문 엔터티 예
PK 속성 (Primary Key)엔터티의 인스턴스를 식별할 수 있는 속성주문번호
FK 속성 (Foreign Key)다른 엔터티와의 관계에서 포함된 속성고객번호 (고객 엔터티에서 옴)
일반 속성PK·FK 가 아닌 나머지 속성주문일자, 배송지주소, 결제금액
  • 같은 고객번호도 고객 엔터티에서는 PK 속성이고, 주문 엔터티에서는 FK 속성이다. 분류는 어느 엔터티 안에서 보느냐에 따라 달라진다.
  • PK·FK 와 식별자의 자세한 분류는 Week 2 Day 1 에서 다룬다.

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

교재에 따라 이 분류를 두 가지 축으로 나눠 설명한다. 이름이 비슷해 함께 정리한다.

기준분류뜻쇼핑몰 예
쪼갤 수 있나단순형 (단일) 속성더 작은 단위로 나눌 수 없다주문수량, 상품가격
복합 속성여러 의미 단위로 나눌 수 있다주소(시·구·동·상세주소), 고객명(성·이름)
값이 몇 개인가단일값 속성인스턴스당 값이 하나생년월일
다중값 속성인스턴스당 값이 여럿일 수 있다고객의 여러 배송지, 상품의 여러 색상
  • 복합 속성을 나눌지 말지는 업무가 그 부분을 따로 쓰느냐로 정한다. 구 단위 배송 통계를 낸다면 주소를 시·구·동으로 나눈다.
  • 다중값 속성은 한 칸에 여러 값을 넣을 수 없으므로 관계형 모델에서는 별도 엔터티로 분리한다. 고객의 여러 배송지는 "고객배송지" 엔터티가 된다.
  • 교재에 따라 "단일 속성 / 복합 속성 / 다중값 속성"처럼 한 줄로 묶어 소개하기도 한다. 용어보다 "나눌 수 있나"와 "여러 값인가"를 구분하는 것이 판단 기준이다.

도메인

도메인은 각 속성이 가질 수 있는 값의 범위다.

속성도메인 예
주문수량1 이상 999 이하의 정수
주문상태코드10, 20, 30, 40 중 하나
고객명최대 50자의 문자열, NULL 불가
주문일자날짜 타입
  • 도메인에는 데이터 타입, 크기, 제약 조건이 함께 들어간다.
  • 물리 모델에서는 칼럼의 타입(NUMBER, VARCHAR2(50))과 CHECK·NOT NULL 제약으로 구현된다.
  • 같은 도메인을 여러 속성이 공유할 수 있다. 주문일자·배송일자·결제일자는 모두 "날짜" 도메인을 쓴다. 도메인을 한 번 정의해 두면 속성마다 타입이 달라지는 문제를 막는다.

속성 이름 짓기

원칙좋은 예나쁜 예
현업 업무에서 쓰는 이름결제금액PayAmtVal
서술식 이름 쓰지 않기주문일자고객이주문한날짜
약어 사용 제한배송지주소배지주
전체 모델에서 유일한 이름 권장주문일자, 배송일자일자, 일자
  • 속성 이름은 명사형으로 짓는다. 수식어·소유격이 붙은 서술형은 피한다.
  • 유일한 이름은 "권장"이다. 서로 다른 엔터티에 일자라는 같은 이름이 있으면 SQL 조인 결과에서 무엇이 무엇인지 헷갈리고, 반정규화로 칼럼이 합쳐질 때도 충돌한다.

내일은 엔터티 사이를 잇는 관계와 그 표기법을 본다.

📖 용어

  • 속성(Attribute) : 엔터티를 설명하는, 의미상 더 쪼갤 수 없는 데이터 단위. 테이블의 칼럼 후보.
  • 속성값 : 한 인스턴스에서 속성이 갖는 실제 값. 한 칸에 하나만 들어간다.
  • 설계 속성 : 업무에는 원래 없지만 코드·일련번호처럼 설계하며 새로 만든 속성.
  • 파생 속성 : 다른 속성을 계산하거나 변형해 얻는 속성. 합계·총액 같은 것.
  • 복합 속성 : 주소처럼 더 작은 의미 단위로 나눌 수 있는 속성.
  • 다중값 속성 : 한 인스턴스가 값을 여러 개 가질 수 있는 속성. 별도 엔터티로 분리한다.
  • 도메인(Domain) : 속성이 가질 수 있는 값의 범위. 타입·크기·제약을 포함한다.
  • 정합성 : 서로 관련된 데이터가 어긋나지 않고 맞아떨어지는 상태.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

속성에 대한 설명으로 가장 적절하지 않은 것은?

문제 2

쇼핑몰 주문 엔터티에서 "주문상품의 수량과 단가를 곱해 합산한 주문총금액"은 특성에 따른 속성 분류 중 무엇에 해당하는가?

문제 3

다음 중 도메인에 대한 설명으로 가장 적절한 것은?

문제 4

파생 속성에 대한 설명으로 가장 적절한 것은?

문제 5

고객 한 명이 여러 개의 배송지를 등록할 수 있을 때, 이를 관계형 데이터 모델로 표현하는 방법으로 가장 적절한 것은?

이전엔터티Week 1 · Day 3다음 관계Week 1 · Day 5

참고 공식 자료

  • SQLD 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 주문 한 건을 무엇으로 설명하나
  • 정의
  • 엔터티·인스턴스·속성·속성값의 관계
  • 특성에 따른 분류
  • 파생 속성은 왜 조심하나
  • 엔터티 구성 방식에 따른 분류
  • 구성과 값의 개수에 따른 분류
  • 도메인
  • 속성 이름 짓기
  • 용어
  • 연습 문제