검수요청.png검수요청.png

"속성 (프로그래밍)"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
82번째 줄: 82번째 줄:
 
; 연속형 <br>
 
; 연속형 <br>
 
- 속성 값이 이산형이 아닌 값 <br>
 
- 속성 값이 이산형이 아닌 값 <br>
- 일반적으로 부동 소수점 변수로 표시 <br><ref name="기본적인 데이터 종류">〈[http://blog.heartcount.io/dd basic data type (기본적인 데이터 종류)]〉, 《하트카운트 블로그》, 2015-08-24 </ref>
+
- 일반적으로 부동 소수점 변수로 표시 <ref name="기본적인 데이터 종류">〈[http://blog.heartcount.io/dd basic data type (기본적인 데이터 종류)]〉, 《하트카운트 블로그》, 2015-08-24 </ref>
 
<ref name="속성 유형">ggg1018, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ggg1018&logNo=220874308104&proxyReferer=https:%2F%2Fwww.google.com%2F 데이터 객체와 속성 유형]〉, 《네이버 블로그》 </ref>
 
<ref name="속성 유형">ggg1018, 〈[https://m.blog.naver.com/PostView.nhn?blogId=ggg1018&logNo=220874308104&proxyReferer=https:%2F%2Fwww.google.com%2F 데이터 객체와 속성 유형]〉, 《네이버 블로그》 </ref>
  

2020년 9월 14일 (월) 11:10 판

속성(屬性, attribute)이란 개체가 가지고 있는 고유한 특성을 말한다. 예를 들어 '회원'이라는 개체는 "성명=홍길동", "성별=남자", "연령=30"이라는 속성을 가질 수 있다. 데이터베이스에서 특정 레코드(record)에 대한 속성값을 표시하기 위해 필드(field)를 사용한다.

개요

속성이란 사전적인 의미로는 사물(事物)의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의할 수 있다. 본질적 속성이란 어떤 사물 또는 개념에 없어서는 안 될 징표(徵表)의 전부이다. 이 징표는 사물이나 개념이 어떤 것인지를 나타내고 그것을 다른 것과 구별하는 성질이라고 할 수 있다. 이런 사전적인 정의 이외에 데이터 모델링 관점에서 속성을 정의하자면, “업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위”로 정의할 수 있다. 업무상 관리하기 위한 최소의 의미 단위로 생각할 수 있고, 이것은 엔터티에서 한 분야를 담당하고 있다.[1]

속성은 엔터티에서 관리되는 구체적인 정보 항목으로 더 이상 분리될 수 없는 최소의 데이터 보관 단위이다. 예를 들어, 엔터티 사원에 속하는 모든 엔터티는 이름을 갖고 있다. 또한 모든 사원에는 입사일자, 사원번호, 생년월일 등의 특성을 가지고 있다. 엔터티 사원에 속하는 모든 인스턴스들이 공통으로 가지는 이러한 특성을 속성(Attribute)이라고 한다. 각 엔터티들은 일련의 속성들에 의해 상세화될 수 있다.[2]

유형

속성 차원은 텍스트, 숫자, 부울 또는 날짜 데이터 유형을 가질 수 있어 데이터의 그룹화, 선택 또는 계산을 위한 여러 가지 함수를 사용할 수 있다. 속성 유형은 속성 차원의 레벨 0 맴버에만 적용된다.

  • 텍스트 속성을 이용하여 기본 속성 맴버 선택 및 계산 시 속성 비교를 수행할 수 있다. 이러한 비교를 수행할 경우 문자가 비교된다. 예를 들어, 패키지 유형 Bottle은 다른 패키지 유형 Can보다 작다.
  • 숫자 속성 차원은 레벨 0 맴버의 이름에 숫자 값을 사용한다. 계산 시 숫자 속성 차원 맴버의 이름(값)을 포함할 수 있다. 예를 들어, 각 제품에 대한 온스당 이익을 계산하기 위해 온스 속성에 지정된 온스 수를 사용할 수 있다. 또 예를 들어 시장 모집단 그룹별로 제품 판매를 분석하기 위해 기본 차원 값 범위와 숫사 속성을 연결할 수도 있다.
  • 데이터베이스의 부울 속성 차원은 두 개의 맴버만 포함한다. 부울 속성 차원이 추가될 때 이 속성 차원에 대해 기본적으로 두 개의 속성 값(True 및 False)이 생성된다. 계정 또는 엔티티와 같은 기본 차원은 부울 데이터 유형을 가지는 하나의 속성 차원과 연결될 수 있다.
  • 날짜 속성은 월-일-년 또는 일-월-년 형식으로 날짜 형식으로 지정하고 순서 정보를 적절하게 지정할 수 있다. 계산 시에 날짜 속성을 사용할 수 있다. 예를 들어, 특정 날짜 이후의 제품 판매 계산에서 날짜를 비교할 수 있다. 사용자는 [애플리케이션 설정] 환경설정에서 [속성 차원 날짜 형식]의 옵션을 선택하여 날짜 형식을 설정할 수 있다.[3]

명목 자료

명목자료(nominal data)는 이름과 관련한(nominal)이란 수식어에서 알 수 있듯이 여러 카테고리들 중 하나의 이름에 데이터를 분류할 수 있을 때 사용된다. 명목 자료는 순서를 매길 수 없고 그냥 셀 수 있다. 평균을 계산하는 것이 의미 없고 퍼센트로는 표현 가능하다. 특별히 명목 자료가 두 개의 범주 중 하나에 속하는 경우 이분 자료(categorical data)라고 불린다.

예시

사람 객체의 명목 속성 : 머리색, 혼인 상태, 직업 등
- 머리색 : 검정, 갈색, 금색, 적색, 적갈색, 회색 등으로 구분 가능
- 혼인 상태 : 독신, 혼인, 이혼, 미망인
- 직업 : 교사, 치과, 개발자, 농부 등

명목 속성의 값

- 기호 또는 명칭
- 숫자로 표시 가능
- 숫자를 사용해도 명목 속성에서 수학적 연산은 의미가 없음
- 유의미한 순서나 정량적인 값을 가지지 않음
- 평균 또는 중위수를 계산하는 것은 무의미한 일이지만 최빈수는 의미가 있음

순서 자료

데이터가 속하는 카테고리들에 순서가 있는 경우 순서 자료(ordinal data)라고 한다. 예를 들어 청팀이 이길 가능성에 대하여 조사하는 경우 그 답변을 “5. 매우 높다. 4. 높다. 3. 중립, 2. 낮다. 1. 매우 낮다."로 디자인할 수 있다. 명목 자료와 마찬가지로 숫자를 세고 퍼센트로 표현할 수 있다. 평균에 대하서는 신중해야 한다. 명목 자료에 대해 평균을 계산해서는 안된다는 사람들이 있는데 이건 매우 높다에 5를, 높다에 4를 할당한 것처럼 그 각각의 숫자에 수학적/과학적 의미가 있는 것이 아니기 때문이다.

예시

(1) 패스트 푸드 식당에서 구입 가능한 음료의 크기에 해당하는 드링크 사이즈 속성
- 소형, 중형, 대형 3가지 값이 있으며 의미 있는 순서를 가진다.

(2) 직급 - 조교, 부교수, 정교수 - 이병, 일병, 상병, 병장

- 순서 속성은 객관적으로 측정할 수 없는 품질의 주관적인 평가를 등록하는 데 유용하다.
ex) 설문조사(만족도 조사) : 0, 1, 2, 3, 4 순으로 매우 불만족, 약간 불만족, 중립, 만족, 매우 만족 - 순서 속성은 값의 범위를 유한 개수의 순서 범주로 구분하여 해당 값을 분할함으로써 얻을 수 있음
- 중심 경향은 최빈수, 중위수로 표현할 수 있지만 평균으로 나타낼 수 없음

정성적 속성

- 명목형, 이진형, 순서형 속성
- 실제 크기나 양 없이도 객체의 특징을 설명
- 정성적 속성의 값은 범주를 나타내는 단어를 이용

구간 자료

시간을 비율 자료(ratio data)라고 보는 사람이 있는데 기본적으로 하루 중 특정 시점을 나타내는 시간은 구간자료(interval data)다. 데이터의 연속된 측정 구간 사이의 간격이 동일한 경우 구간 자료라고 부른다. 구간 자료는 명목 자료를 가지므로 다양한 연산을 수행할 수 있다. 절대적 원점(zero point)이 없다. 예를 들면 00:00이라는 자료의 값이 측정한 시간의 값이 없다는 것이 아닌 그냥 자정에 시간을 측정했다는 뜻이다.

간격 척도 속성

- 동일한 크기 단위로 측정함 - 속성의 값은 순서를 갖고 양수, 0 또는 음수를 가짐 - 값의 순서를 설정할 수 있고, 값 사이의 차이 정도 비교 가능 - 간격 척도 속성은 절대 영점이 존재하지 않음

비율 자료

현재 시각이 13:30 인데 시계를 보고 13:00 부터 계산하였을 때 30분을 기다린 것일 때 이 '30분'이 비율 자료(ratio data)다. 비율 자료의 경우 구간자료와 다르게 절대적 원점(meaningful zero point)이 존재하며 구간자료에서 00:00 이라는 값은 기다린 시간이 0초라는 뜻이다. 나이, 돈, 몸무게 이런게 주로 비율 자료로 다루어 진다.

비율 척도 속성

- 절대 영점을 갖고 있는 숫자 속성 - 어떤 값을 다른 값의 곱이나 비율로 표현할 수 있음 - 정렬할 수 있고, 값의 차이, 평균, 중위수, 최빈수를 계한할 수 있음

이산형 vs 연속형

구간형이나 비율형 자료는 이산형(discrete)이나 연속형(continuous) 둘 중의 하나의 속성을 갖게 된다. 측정값이 정수로 딱딱 떨어지는 경우 이산형이고 연속된 무수히 많은 값 중 하나를 가질 수 있는 경우 연속형이 된다. 연속형 데이터는 실제 표현될 때 적당히 반올림 되어 표현된다. 현실에서 측정/이해하고자 하는 변수는 종종 하나 이상의 데이터 타입에 속하겨 되며 데이터 타입은 어떤 측정 방법을 택하느냐에 따라 결정된다. 나이를 예로 들자면 나이는 비율 자료로 수집될 수 있지만 순서 자료로 수집될 수 있다. 반면, 명목 자료나 순서 자료를 둘 다 카테고리 유형 데이터인 구간 자료나 비율 자료로 수집할 수 없다. 보다 보편적으로 이야기 하자면 데이터 측정은 주어진 데이터의 본질적인 속성보다 더 높고/낮은 수준으로 내려갈 수는 있어도 더 정교한/높은 수준으로 올라갈 수는 없다.

이산형

- 유한 또는 셀 수 있는 무한 값의 집합
- 정수로 표현될 수 있거나 아닐 수 도 있음

연속형

- 속성 값이 이산형이 아닌 값
- 일반적으로 부동 소수점 변수로 표시 [4] [5]

특징

표기법

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

엔터티에는 두 개 이상의 인스턴스가 존재하고 각각의 엔터티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다. 업무에서는 엔터티를 구성하는 특징이 무엇인지 또한 각각의 인스턴스들은 어떤 성격의 데이터로 구성되는지를 파악하는 작업이 필요하다. 분석단계에서 엔터티 내에 존재하는 여러 개의 인스턴스가 가지는 동일한 성격은 무엇인지를 파악하고 이에 이름을 부여하여 엔터티의 속성으로 기술하는 작업이 필요하다. 예를 들면 사원은 이름, 주소, 전화번호, 직책 등을 가질 수 있다. 사원이라는 엔터티에 속한 인스턴스들의 성격을 구체적으로 나타내는 항목이 바로 속성이다. 각각의 인스턴스는 속성의 집합으로 설명될 수 있다. 하나의 속성은 하나의 인스턴스에만 존재할 수 있다. 속성은 관계로 기술될 수 없고 자신이 속성을 가질 수도 없다.

속성의 표기법

속성의 표기법은 엔터티 내에 이름을 포함하여 표현하면 된다.

속성의 특성

속성은 업무분석을 통해 바로 정의한 속성을 기본속성(Basic Attribute), 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성을 설계속성(Designed Attribute), 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성을 파생속성(Derived Attribute)이라고 한다.

기본속성

기본 속성은 업무로부터 추출한 모든 속성이 여기에 해당하며 엔터티에 가장 일반적이고 많은 속성을 차지한다. 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 그리고 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성은 기본속성이다. 주의해야 할 것은 업무로부터 분석한 속성이라도 이미 업무상 코드로 정의한 속성이 많다는 것이다. 이러한 경우도 속성의 값이 원래 속성을 나타내지 못하므로 기본속성이 되지 않는다.

설계속성

설계속성은 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성이다. 대개 코드성 속성은 원래 속성을 업무상 필요에 의해 변형하여 만든 설계속성이고 일련번호와 같은 속성은 단일(Unique)한 식별자를 부여하기 위해 모델 상에서 새로 정의하는 설계속성이다.

파생속성

파생속성은 다른 속성에 영향을 받아 발생하는 속성으로서 보통 계산된 값들이 이에 해당된다. 다른 속성에 영향을 받기 때문에 프로세스 설계 시 데이터 정합성을 유지하기 위해 유의해야 할 점이 많으며 가급적 파생속성을 적게 정의하는 것이 좋다.

엔터티 구성방식

PK(Primary Key) 속성

엔터티를 유일하게 구분할 수 있는 속성을 PK 속성이라고 한다.

FK(Foreign Key) 속성

다른 엔터티와의 관계에 있어서 포함된 속성을 FK 속성이라고 한다.

일반 속성

엔터티에 포함되어 있고, PK 또는 FK에 포함되지 않는 속성을 일반 속성이라고 한다.[6]

엔터티를 식별할 수 있는 속성을 PK(Primary Key)속성, 다른 엔터티와의 관계에서 포함된 속성을 FK(Foreign Key)속성, 엔터티에 포함되어 있고 PK, FK에 포함되지 않은 속성을 일반속성이라 한다. 또한 속성은 그 안에 세부 의미를 쪼갤 수 있는지에 따라 단순형 혹은 복합형으로 분류할 수 있다. 예를 들면 주소 속성은 시, 구, 동, 번지 등과 같은 여러 세부 속성들로 구성될 수 있는데 이를 복합 속성(Composite Attribute)이라 한다. 또한 나이, 성별 등의 속성은 더 이상 다른 속성들로 구성될 수 없는 단순한 속성이므로 단순 속성(Simple Attribute)이라 한다. 일반적으로 속성은 하나의 값을 가지고 있으나, 그 안에 동일한 성질의 여러 개의 값이 나타나는 경우가 있다. 이 때 속성 하나에 한 개의 값을 가지는 경우를 단일값(Single Value), 그리고 여러 개의 값을 가지는 경우를 다중값(Multi Value) 속성이라 한다. 주민등록번호와 같은 속성은 반드시 하나의 값만 존재하므로 이 속성은 단일값 속성(Single-Valued Attribute)이라 하고, 어떤 사람의 전화번호와 같은 속성은 집, 휴대전화, 회사 전화번호와 같이 여러 개의 값을 가질 수 있다. 자동차의 색상 속성도 차 지붕, 차체, 외부의 색이 다를 수 있다. 이런 속성을 다중값 속성(Multi-Valued Attribute)이라 한다. 다중값 속성의 경우 하나의 엔터티에 포함될 수 없으므로 1차 정규화를 하거나, 아니면 별도의 엔터티를 만들어 관계로 연결해야 한다.[1]

특성

1. 속성의 어원적 의미

속성이라는 의미에는 가공되지 않은 것이라는 의미도 포함되어 있다. 이 말은 곧 원천적인 것을 의미한다. 또한 고유한 성질이란 의미도 가지고 있는데 이 말은 남의 도움을 받지 않더라도 자기만이 가지고 있는 독자적인 성질이 반드시 있어야 함을 뜻한다. 혼자서도 독자적인 성질을 가지고 있느냐에 대한 문제는 절대적이 아니라 상대적이라는 것 때문에 판단이 쉽지 않다. 즉 어떤 시스템의, 어떤 엔터티에서, 어떤 목적으로 사용하려고 하느냐에 따라서 달라지기 때문에 사람의 종합적인 판단이 필요하다는 것이다. 이러한 속성의 어원적인 특징들은 속성 검증의 원칙으로도 사용된다.

2. 속성도 일종의 집합이다.

물리 데이터 모델링 단계에서 엔터티는 테이블이 되고, 속성은 칼럼이 된다. 결국 속성에는 데이터 값이 들어가게 되며, 그 값들은 여러 종류를 가지게 된다. 가령, 사원 정보 엔터티의 직책 속성에는 사원, 대리, 과장, 부장 … 등 여러 종류의 값들이 존재한다. 만약 이 값들의 종류 하나 하나를 개체 라고 한다면, 직책이란 속성은 결국 이들을 구성요소로 하는 집합이란 뜻이 된다.

3. 릴레이션십도 속성이다.

물리 데이터 모델링 단계에 가서 보면 릴레이션십 또한 결국은 일종의 속성이 될 수 밖에 없다. 물론, 원론적으로 본다면 이를 무조건 릴레이션십으로 표현하는 것이 옳다는 것에는 이견이 있을 수 없다. 왜냐하면 우리가 작성하는 논리적 데이터 모델이란 업무를 체계적으로 형상화하는 것이지 데이터베이스의 구조를 정의하는 것이 아니기 때문이다. 엄격히 말한다면 논리적 데이터 모델에는 데이터베이스나 컴퓨터와 같은 물리적 요소들은 전혀 감안하지 않은 상태에서 정의되어야 한다.

4. 속성들 간은 서로 독립적이다.

속성들은 반드시 식별자에 직접 종속되어야 한다. 이 말은 정규화의 제2정규형에 해당하는 말이 다. 만약 속성들 간에 종속성이 존재한다면 이들은 별도의 엔터티로 분리되어야 한다. 이것이 바로 제3정규형이다.[2]

각주

  1. 1.0 1.1 속성 (Attribute)의 개념〉, 《데이터 전문가 지식포털》
  2. 2.0 2.1 속성 개념〉, 《데이터 전문가 지식포털》
  3. 속성 데이터 유형 이해〉, 《오라클》
  4. basic data type (기본적인 데이터 종류)〉, 《하트카운트 블로그》, 2015-08-24
  5. ggg1018, 〈데이터 객체와 속성 유형〉, 《네이버 블로그》
  6. doorbw, 〈엔터티(ENTITY)와 속성(ATTRIBUTE)〉, 《tistory》

참고자료

같이 보기


  검수요청.png검수요청.png 이 속성 (프로그래밍) 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.