속성(Attribute)·도메인(Domain) 완벽 정리
속성 정의·특징·분류·도메인 개념·명명규칙까지 한눈에 정리
1. 속성의 정의
속성이란?
업무에서 필요로 하는 인스턴스로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위이다. 엔터티를 설명하는 특성이며, 데이터베이스에서는 컬럼(Column)으로 구현된다.
엔터티·인스턴스·속성·속성값 관계
- • 엔터티에는 두 개 이상의 인스턴스가 존재
- • 인스턴스에는 두 개 이상의 속성이 존재
- • 속성은 하나의 속성값을 가짐
- • 속성은 엔터티를 설명하고, 인스턴스의 구성요소
2. 속성의 특징
속성의 4가지 특징
- • 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다
- • 정규화 이론에 의해 주식별자에 함수적 종속해야 한다
- • 하나의 속성은 한 개의 값만 가진다 (다중값 속성 불가)
- • 하나의 인스턴스에 대해 하나의 값만 가져야 한다
주식별자에 함수적 종속
속성은 반드시 주식별자(PK)에 의해 결정되어야 한다. 예: "사원번호"가 결정되면 "사원명"이 결정된다. 사원번호 → 사원명 (함수적 종속).
3. 특성에 따른 속성 분류
기본·설계·파생 속성
| 분류 | 정의 | 예시 |
|---|---|---|
| 기본 속성 | 업무에서 직접 추출한 속성 | 이름, 나이, 전화번호, 제품명 |
| 설계 속성 | 설계 과정에서 인위적으로 만든 속성 | 사원번호, 주문번호, 코드 |
| 파생 속성 | 다른 속성으로부터 계산·변환된 속성 | 합계, 평균, 나이(생년월일에서 파생) |
파생 속성 주의사항
파생 속성은 가능하면 적게 정의하는 것이 바람직하다. 데이터 정합성 유지가 어렵고, 원본 데이터가 변경될 때 파생 속성도 함께 갱신해야 하는 부담이 있다.
속성 수 비교
일반적으로 기본 속성 > 설계 속성 > 파생 속성 순으로 수가 많다. 기본 속성이 가장 많고, 파생 속성은 최소화해야 한다.
4. 구성 방식(엔터티 내 구성)에 따른 분류
PK·FK·일반 속성
| 분류 | 설명 | 예시 |
|---|---|---|
| PK 속성 | 엔터티의 인스턴스를 고유하게 식별 | 사원번호 |
| FK 속성 | 다른 엔터티와의 관계로 포함된 속성 | 부서코드(FK) |
| 일반 속성 | PK·FK가 아닌 나머지 속성 | 이름, 입사일 |
5. 도메인(Domain) 개념
도메인이란?
각 속성이 가질 수 있는 값의 범위(허용 가능한 값의 집합)를 의미한다. 데이터 타입, 크기, 제약 조건 등을 포함하는 개념이다.
도메인 예시
| 속성 | 도메인 | 설명 |
|---|---|---|
| 학점 | 0.0 ~ 4.5 | 실수, 소수점 1자리 |
| 성별 | {'M', 'F'} | CHAR(1), 2개 값만 허용 |
| 나이 | 1 ~ 150 | 정수, 양수만 허용 |
| 사원명 | VARCHAR(50) | 가변 문자열, 최대 50자 |
도메인의 역할
- • 데이터 무결성 보장 — 허용 범위 밖의 값 입력 방지
- • 표준화 — 동일한 성격의 속성에 동일한 도메인 적용
- • 변경 용이성 — 도메인 변경 시 해당 속성 일괄 적용 가능
6. 속성 명명 규칙
명명 규칙 원칙
- • 해당 업무에서 사용하는 이름을 부여한다
- • 서술식 속성명은 사용하지 않는다 (예: "사원의 이름" X → "사원명" O)
- • 약어 사용을 가급적 지양한다
- • 전체 데이터 모델에서 유일한 이름을 부여한다 (동일 속성명이 여러 엔터티에서 사용 가능하나 의미 일관성 유지)
속성 명명 예시
| 나쁜 이름 | 좋은 이름 | 이유 |
|---|---|---|
| 사원의 이름 | 사원명 | 서술식 지양 |
| empnm | 사원명 | 약어·영문 지양 |
| 데이터1 | 주문금액 | 의미 있는 이름 부여 |
7. 속성의 수와 설계 품질
적정 속성 수
하나의 엔터티에 속성이 너무 많으면(50개+) 분리를 고려해야 한다. 반대로 속성이 2개 미만이면 엔터티 자격이 없다.
다중값 속성 처리
하나의 속성에 여러 값이 들어가면 안 된다. 다중값 속성은 별도 엔터티로 분리해야 한다.
잘못된 예:
전화번호: "010-1234, 02-5678" (하나의 컬럼에 다중값)
올바른 예:
전화번호 엔터티를 별도로 분리하여 1:N 관계
8. 속성과 엔터티의 관계
속성 vs 엔터티 판단 기준
| 상황 | 판단 | 이유 |
|---|---|---|
| 값이 하나만 존재 | 속성 | 단일값은 속성으로 처리 |
| 값이 여러 개(다중값) | 엔터티로 분리 | 1NF 위반 방지 |
| 독립적으로 관리 필요 | 엔터티로 분리 | 별도 식별·관리 필요 |
9. 시험 빈출 포인트
자주 출제되는 유형
- • 기본·설계·파생 속성 구분 — "사원번호는 어떤 속성인가?" → 설계 속성
- • 파생 속성 특징 — 다른 속성으로부터 계산, 가급적 최소화
- • 도메인 정의 — 속성이 가질 수 있는 값의 범위
- • 속성 명명 규칙 — 서술식 금지, 약어 지양, 업무 용어 사용
- • 속성은 주식별자에 함수적 종속 — PK가 결정되면 속성값이 결정됨
- • 하나의 속성은 하나의 값 — 다중값은 엔터티로 분리해야 함
혼동 주의 포인트
- • "나이"의 분류 — 생년월일에서 계산 가능하므로 파생 속성
- • "주문번호"의 분류 — 업무에서 직접 추출이 아니라 설계 시 부여하므로 설계 속성
- • 도메인 vs 데이터 타입 — 도메인은 데이터 타입을 포함하는 상위 개념 (범위 + 제약조건 포함)
개념을 확인했다면 문제로 실력을 검증해보세요