본문 바로가기
study_db

데이터모델링의 3가지 요소 : 속성(Attribute)에 대한 이해

by developer_j 2021. 2. 7.
728x90
반응형

1. 속성(Attribute)

속성은 더 이상 쪼개지지 않는 최소의 데이터 단위라고 할 수 있다. 업무에 필요한 데이터이며, 의미상 더 이상 분리되지 않고, 엔터티를 설명하는 인스턴스의 구성요소가 된다.

예를 들자면 등록일시는 등록일(Date) - 등록시(Hour) - 등록분(Minute)으로 쪼개서 관리할 수 있다. 등록일시라는 하나의 데이터를 일, 시, 분으로 구분한 것이다. 직접적인 관련이 있다면 다시 합쳐서 사용이 가능할 것이다. 그러나 반대로 서로 관련이 없는 속성을 하나로 합칠 수는 없다. 이름과 주소를 합쳐 하나의 데이터인 "이름주소"로 만들면 하나의 속성이 이름과 주소라는 두가지의 의미를 갖기 때문에, 기본 속성으로 성립할 수 없다. 

 

2. 속성의 특징 (엔터티의 특징과 흡사)

  • 시스템을 구축하려는 회사 업무 프로세스에 필요한 정보로 구성되어야 한다.
  • 유일한 식별자에 함수적 종속성을 가져야 한다. (예 - 사원 번호라는 유일 식별자로 사원의 전체 속성(데이터)을 가져올 수 있다)
  • 하나의 속성은 하나의 속성값만을 가진다. 하나의 속성에 여러 속성값이 들어가는 것 같다면, 별도의 엔터티를 이용해서 분리하는 게 좋다.(혹은 1차 정규화를 한다 --> 이후의 글에서 설명)

이와 같은 특징들을 만족하지 못한다면 부적절한 속성일 수 있다.

 

3. 속성의 분류

  • 속성의 특성에 따른 분류 ( 기본속성, 설계속성, 파생속성 )

기본 속성 : 사원이름, 직책이름, 고용일자 등 가장 일반적인 속성이다.

예시 테이블 )

사원이름 직책이름 고용일자
developer_j newbie 2021-02-07

설계 속성 : 업무상 필요한 데이터 외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성이다.

예시 테이블 ) 

부서 번호 부서 이름
001 인사팀
002 영업팀
003 개발팀

파생 속성 : 다른 속성에 영향을 받아 발생하는 속성으로, 계산된 값들이 여기에 해당한다. 다른 속성에 영향을 받으므로, 영향받는 속성을 알아두어야 하는 등 유의할 점이 많아서 가급적 적게 정의하는 것이 좋다.

[결제 정보 테이블]
쿠폰번호
포인트금액
총결제금액

위의 테이블에서 총 결제 금액은 실제 판매가에서 쿠폰금액 + 포인트금액을 뺀 나머지 금액이니 계산된 속성이라고 할 수 있다. 

  • 엔터티 구성 방식에 따른 분류 (주키,외래키,일반)

엔터티를 식별할 수 있는 속성을 PK(Primary Key), 다른 엔터티와의 관계에서 포함된 속성을 FK(Foreign Key), 둘 다 아닌 속성을 일반 속성이라고 한다.

한 엔터티가 다른 엔터티의 PK를 참조하는 것이 FK이다. FK는 해당 엔터티에서도 PK가 될 수 있다. 이건 다른 글에서 식별-비식별 관계와 함께 설명할거다.

 

4. 도메인

도메인이란 각 속성이 가질 수 있는 값의 범위를 말한다. 예를 들면 학생 엔터티의 학점이라는 속성은 0.0 ~ 4.5 사이의 실수 값을 가질 수 있으며, 주소라는 속성은 20자리 길이의 문자열로 정의할 수 있다. 각 속성은 도메인 이외의 값을 갖지 못한다.

 

 


다음 포스팅 주제들 : 식별-비식별 관계, 데이터 정규화

일부 출처 : SQL 전문가 가이드(한국데이터베이스진흥원, 2013 Edition)

728x90
반응형