TIL - 20260106

juni·2026년 1월 5일

TIL

목록 보기
230/317

0106 SQLD 학습 (3/10): 속성 (Attribute)


✅ 1. 속성(Attribute)이란?

  • 속성이란 엔터티(Entity)가 가지는 세부적인 정보 항목으로, 엔터티를 설명하는 최소의 데이터 단위입니다.
  • 하나의 엔터티는 2개 이상의 속성을 가지며, 각 속성은 고유한 이름과 값을 가집니다. 데이터베이스에서는 컬럼(Column)으로 변환됩니다.
  • 예시: 학생 엔터티는 학번, 이름, 생년월일, 학과 등의 속성을 가집니다.

✅ 2. 속성의 특징

  • 하나의 속성은 각 엔터티 인스턴스(하나의 행)에 대해 반드시 하나의 값만을 가져야 합니다.
  • 만약 하나의 속성이 여러 개의 값을 가질 수 있다면(e.g., 한 학생의 '취미'가 '축구, 농구, 독서' 등 여러 개일 경우), 이는 제1정규형(1NF)에 위배되며, 별도의 엔터티로 분리하는 등 모델링 과정에서 정규화가 필요합니다.

✅ 3. 속성의 분류

  • 속성은 생성 방식, 값의 개수, 분해 가능성 등 여러 기준에 따라 분류할 수 있습니다. 이 분류를 이해하는 것은 속성의 성격을 파악하고 정규화를 수행하는 데 중요합니다.
분류 기준종류설명예시
생성 방식기본 속성
(Basic Attribute)
• 업무 분석을 통해 자연스럽게 도출되는 가장 일반적인 속성.상품명, 주문일자, 회원 이름
설계 속성
(Designed Attribute)
• 업무에는 존재하지 않지만, 모델링 과정에서 식별이나 분류를 위해 인위적으로 생성하는 속성.상품코드, 주문번호, 회원ID
파생 속성
(Derived Attribute)
• 다른 속성으로부터 계산되거나 유추할 수 있는 속성.
조회 성능을 위해 저장할 수 있으나, 데이터 불일치의 위험이 있음.
총주문금액 (각 주문 항목 금액의 합), 나이 (생년월일로부터 계산)
값의 개수단일값 속성
(Single-valued)
• 하나의 인스턴스에 대해 하나의 값만 가지는 속성. (대부분의 속성)생년월일, 이름
다중값 속성
(Multi-valued)
• 하나의 인스턴스에 대해 여러 개의 값을 가질 수 있는 속성.
정규화 대상으로, 별도의 엔터티로 분리해야 함.
전화번호 (집, 회사), 취미
분해 가능성단순 속성
(Simple Attribute)
• 더 이상 작은 단위로 분해할 수 없는 속성.나이, 성별
복합 속성
(Composite Attribute)
• 여러 개의 의미 있는 작은 단위로 분해할 수 있는 속성.
정규화 대상으로, 필요시 분해하여 관리.
주소 (시, 구, 동, 상세주소), 이름 (성, 이름)

✅ 4. 도메인 (Domain)

  • 도메인이란 하나의 속성이 가질 수 있는 값의 범위를 의미합니다.

  • 이는 단순히 데이터 타입(e.g., VARCHAR, NUMBER)뿐만 아니라, 더 구체적인 비즈니스 규칙(길이, 허용 값 목록 등)을 포함합니다.

  • 예시:

    • 성별 속성의 도메인: 데이터 타입은 CHAR(1)이며, 값은 '남' 또는 '여'만 허용된다.
    • 나이 속성의 도메인: 데이터 타입은 NUMBER(3)이며, 값은 0 이상 150 이하만 허용된다.
    • 주문상태 속성의 도메인: 데이터 타입은 VARCHAR(10)이며, 값은 '주문접수', '결제완료', '배송중', '배송완료' 중 하나여야 한다.
  • 목적: 도메인을 명확히 정의함으로써, 데이터의 무결성(Integrity)과 일관성(Consistency)을 보장할 수 있습니다.


📌 요약

  • 속성은 엔터티를 구성하는 최소의 데이터 단위이며, 데이터베이스의 컬럼에 해당합니다.
  • 속성은 생성 방식(기본, 설계, 파생)과 구조적 특징(단일값/다중값, 단순/복합)에 따라 분류할 수 있습니다.
  • 특히, 다중값 속성복합 속성은 데이터 모델링 과정에서 정규화를 통해 분리하거나 분해해야 할 주요 대상입니다.
  • 도메인은 속성이 가질 수 있는 값의 범위와 규칙을 정의하여, 데이터의 무결성을 보장하는 중요한 개념입니다.

0개의 댓글