속성과 도메인
쉽게 말하면
속성은 엔터티를 설명하는 칸 하나예요. 고객이라는 표에 이름, 생년월일, 전화번호 칸이 있다면 그 칸들이 속성이에요. 한 칸에는 값이 하나만 들어가요. 그 칸에 들어갈 수 있는 값의 범위(숫자만, 10글자까지 등)를 도메인이라고 해요.
시험용 정의
속성(Attribute)은 업무에서 엔터티에 대해 관리하려는 더 이상 나눌 필요가 없는 최소 단위의 정보다. 고객의 이름, 생년월일처럼 인스턴스를 설명하고, 테이블에서는 열(컬럼)이 된다. 속성 하나에는 인스턴스마다 값이 하나만 들어간다.
비유로 이해하기
주민등록증 칸 하나하나가 속성이다. '이름' 칸에는 이름 하나만 쓰고, 칸에 들어갈 수 있는 글자 종류와 길이(도메인)도 정해져 있다.
자세히
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 속성값 | 한 인스턴스의 한 속성에 실제로 들어간 값. 고객 '홍길동'의 이름 속성값은 '홍길동' |
| 정합성 | 서로 관련된 데이터의 값이 모순 없이 맞는 상태 |
| 원자값 | 더 쪼갤 필요가 없는 값 하나. '서울시 중구'를 시·구로 나눠 관리할 필요가 없다면 그 자체가 원자값이다 |
엔터티·인스턴스·속성·속성값
- 한 엔터티는 두 개 이상의 인스턴스를 가진다
- 한 엔터티는 두 개 이상의 속성을 가진다
- 한 속성은 (한 인스턴스에서) 하나의 속성값만 가진다. 값이 여러 개면 별도 엔터티로 분리한다(제1정규형)
특성에 따른 분류
| 종류 | 뜻 | 예 |
|---|---|---|
| 기본 속성 | 업무에서 바로 뽑아낸, 원래 있는 속성. 가장 많다 | 상품명, 단가, 주문일 |
| 설계 속성 | 업무에는 없지만 설계하면서 새로 만든 속성. 코드나 일련번호 | 상품코드, 주문순번 |
| 파생 속성 | 다른 속성에서 계산·변형해 만든 속성. 적을수록 좋다 | 총금액, 재고수량 합계 |
구성 방식과 값의 개수에 따른 분류
| 기준 | 종류 | 뜻 |
|---|---|---|
| 엔터티 구성 방식 | PK·FK·일반 속성 | 인스턴스를 식별하면 PK, 다른 엔터티에서 받아 왔으면 FK, 나머지는 일반 속성 |
| 분해 여부 | 단일 속성 / 복합 속성 | 하나로만 의미가 있으면 단일(이름), 여러 의미로 나눌 수 있으면 복합(주소 = 시·구·동) |
| 값의 개수 | 단일값 / 다중값 속성 | 값이 하나뿐이면 단일값(주민번호), 여러 개면 다중값(전화번호들). 다중값은 별도 엔터티로 뺀다 |
도메인과 이름 짓기
도메인은 속성이 가질 수 있는 값의 범위다. 자료형, 길이, 허용 값, 제약을 정한다. 예: 성별 = 'M','F' 중 하나, 학점 = 0.0~4.5. 실제 테이블에서는 데이터 타입과 CHECK 제약으로 구현된다.
속성 이름은 현업 용어로, 서술식이 아닌 명사형으로, 약어를 피하고, 데이터 모델 전체에서 유일하게 짓는 것이 좋다 (예: 그냥 '이름' 대신 '고객명', '사원명').
시험에 이렇게 나와요
- 기본·설계·파생 속성 구분 (파생 속성은 최소화)
- 단일·복합, 단일값·다중값 속성 구분
- 도메인 = 속성이 가질 수 있는 값의 범위
- 엔터티·인스턴스·속성·속성값 관계 (한 속성은 한 값)
출제 범위·공식 안내 기반
확인 문제
Q1. 주문 엔터티의 총금액은 주문상세의 수량×단가를 더해 언제든 계산할 수 있다. 이런 속성은?
- 파생 속성
- 복합 속성
- 설계 속성
- 기본 속성
정답 보기
1번 파생 속성
다른 속성 값에서 계산하거나 변형해 만든 속성은 파생 속성이다. 원본이 바뀌면 함께 고쳐야 해서 데이터 정합성을 해칠 수 있으므로 꼭 필요한 것만 둔다.
Q2. 업무에 원래 있지는 않지만 설계하면서 새로 만든 코드·일련번호 같은 속성은?
- 설계 속성
- 기본 속성
- 다중값 속성
- 파생 속성
정답 보기
1번 설계 속성
설계 속성. 예: 상품코드, 주문순번.
Q3. 속성이 가질 수 있는 값의 범위를 무엇이라 하나?
- 카디널리티
- 도메인
- 인스턴스
- 식별자
정답 보기
2번 도메인
도메인. 자료형·길이·허용값으로 정한다.
Q4. 속성에 대한 설명으로 옳은 것은?
- 파생 속성은 많을수록 좋다
- 한 속성은 한 인스턴스에서 여러 값을 가질 수 있다
- 주소처럼 여러 의미로 나눌 수 있는 속성은 복합 속성이다
- 한 엔터티는 속성을 하나만 가진다
정답 보기
3번 주소처럼 여러 의미로 나눌 수 있는 속성은 복합 속성이다
주소는 시·구·동으로 나눌 수 있는 복합 속성이다. 한 속성은 한 값, 파생 속성은 최소화, 엔터티는 속성 두 개 이상.
Q5. 주문의 '주문금액'을 주문상세의 단가 × 수량을 더해 계산해 두었다. 이 속성은?
- 복합 속성
- 기본 속성
- 설계 속성
- 파생 속성
정답 보기
4번 파생 속성
다른 속성으로 계산되는 값이라 파생 속성이다. 값이 어긋날 수 있어 되도록 줄인다.
Q6. '주소'처럼 시·구·동으로 더 나눌 수 있는 속성은?
- 단일 속성
- 복합 속성
- 파생 속성
- 다중값 속성
정답 보기
2번 복합 속성
여러 하위 값으로 나눌 수 있으면 복합 속성이다.
헷갈리기 쉬운 O·X
파생 속성은 데이터 정합성을 해칠 수 있어 꼭 필요한 경우에만 둔다.
정답 보기
O 원본 속성과 파생 속성이 따로 바뀌면 값이 어긋난다.
다중값 속성은 그대로 한 열에 쉼표로 모아 두는 것이 좋다.
정답 보기
X 다중값 속성은 별도 엔터티로 분리한다. 한 칸에 여러 값을 넣으면 제1정규형 위반이다.
도메인은 엔터티와 엔터티 사이의 연결을 뜻한다.
정답 보기
X 엔터티 사이의 연결은 관계다. 도메인은 속성 값의 범위다.