1.3 속성

1. 속성의 이해

1.1 속성이란?

컴퓨팅 분야에서 속성(영어: attribute)이란 객체, 요소, 또는 파일의 성질이다. 속성은 또한 이들의 인스턴스(instance)에 주어진 특정 을 지정하거나 나타내는 데에도 쓰인다.

속성은 메타데이터로 간주하는 것이 더 정확하다. 속성은 일반적으로 성질의 성질이다. [위키백과]

데이터 모델링 관점에서 속성을 정의하자면, 1) 업무에서 필요로 하며 2) 의미상 더 이상 쪼갤 수 없고 3) 엔터티를 설명하며 4) 인스턴스를 구성합니다.

의미상 더 이상 쪼갤 수 없다는 특징을 살펴보면 다음과 같습니다. 생년월일은 하나로서 의미가 있습니다. 생년, 생월 등으로 구분한다면 하나의 속성을 관리 목적에 의해 구분했다고 볼 수 있습니다. SW 비용 산정 기법 중 기능점수 기법에서는 분리된 속성을 하나의 속성으로 계산합니다. 만약 서로 관련이 없는 이름, 전화번호를 하나의 속성 ‘이름전화번호’로 정의한다면 두 개의 의미를 가지므로 기본 속성의 정의를 만족하지 못하게 됩니다. 이렇게 정의된 속성은 내역(Description, 인적사항)이라 할 수 있습니다.

2. 엔터티, 인스턴스, 속성, 속성값

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

  • 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이다.

  • 한 개의 엔터티는 두 개 이상의 속성을 갖는다.

  • 한 개의 속성은 한 개의 속성값을 갖는다.

엔터티, 인스턴스, 속성, 속성값의 관계
SQL 전문가 가이드

2.2 속성의 표기법

속성의 표기법
SQL 전문가 가이드

3. 속성의 특징

  • 해당 업무에서 필요하고 관리하는 정보여야 합니다.

  • 정규화 이론에 근거하여 정해진 주식별자에 함수적 종속성을 가져야 합니다.

  • 하나의 속성은 하나의 값을 가집니다. 다중값일 경우 별도의 엔터티로 분리합니다.

4. 속성의 분류

4.1 속성의 특성에 따른 분류

  • 기본속성: 업무로부터 추출한 모든 속성이 해당합니다. 가장 일반적이고 많은 속성을 차지합니다, e.g., 사원이름: Theodore. 주의할 점은 업무로부터 분석한 속성이라도 이미 업무상 코드로 정의한 경우 속성의 값이 원래 속성을 나타내지 못하므로 기본속성에 해당하지 않습니다.

  • 설계속성: 업무상 필요한 데이터 외에 모델링을 위해 또는 업무의 규칙화를 위해 새롭게 도출하거나 변형한 속성입니다, e.g., 부서번호: 001 (경영관리). 코드성 속성 및 단일(Unique)한 식별자 부여 목적(일련번호, ID)으로 사용합니다.

  • 파생속성: 다른 속성에 영향을 받아 발생하는 속성입니다, e.g., 결제금액 (원가 - 할인 - 포인트 = 결제금액). 보통 계산된 값들이 해당합니다. 다른 속성에 영향을 받으므로 정합성을 유지하기 위한 수단이 필요합니다. 파생속성은 일반 엔터티에서는 많이 사용하지 않으며, 통계 관련 엔터티 또는 배치 작업과 관련한 엔터티에서 많이 이용합니다.

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

  • 기본키(Primary Key): 엔터티의 인스턴스를 식별할 수 있는 속성입니다.

  • 외래키(Foreign Key): 다른 엔터티와 관계가 포함된 속성입니다.

  • 일반속성 : PK, FK를 제외한 모든 속성입니다.

  • 단순속성/복합속성: 속성 세부 의미를 쪼갤 수 있는지 여부에 따라 분류합니다, e.g., 생년월일(생년, 생월, 생일), 주소(시•구•동)*.

  • 단일값 속성/다중값 속성: 속성 하나에 한 개의 값을 가지는 경우를 단일값, 여러 개의 값을 가지는 경우를 다중값 속성이라고 한다, e.g., 주민번호(단일값), 전화번호(다중값-집, 휴대전화 등). 다중값 속성일 경우 1차 정규화 대상입니다.

5. 도메인

데이터 관리 및 데이터베이스 분석에서, 데이터 도메인은 데이터 요소가 포함할 수 있는 값의 범위이다. [위키백과]

예를 들면 상품 엔터티의 평점 속성의 도메인은 0.0에서 5.0 사이의 실수값이 됩니다. 상품명의 경우 길이가 50자리 이내인 문자열로 정의할 수 있습니다. 속성은 도메인 이외의 값을 가지지 못합니다.

즉 속성에 대한 데이터타입, 크기, 제약사항을 지정하는 것입니다.

6. 속성의 명명

속성명은 사용자 인터페이스에 나타나므로 업무와 직결됩니다. 속성명을 명확화하여 혼란을 없애기 위해서 표준사전이라는 업무용 사전(일반적으로 메타시스템에 포함됨)을 구축하여 사용하게 됩니다. 표준단어, 도메인, 표준용어를 정의하여 프로젝트를 진행할 경우 용어적 표준과 데이터타입의 일관성을 확보할 수 있습니다.

  1. 현업 업무에서 사용하는 용어를 사용합니다.

  2. 속성명은 명사형을 사용하고 수식어 사용을 줄입니다.

  3. 약어 사용은 가급적 제한합니다.

  4. 전체 데이터 모델에서 유일성을 확보하는 것이 좋습니다.



References
SQL 전문가 가이드(2020 개정판)
https://dataonair.or.kr
https://www.wikipedia.org