Terriermon - Digimon

2. 속성Attribute

2022. 2. 3. 11:26자격증/SQLD

2-1. 속성(Attribute)란?

 

속성의 사전적 의미는, 어떤 사물의 성질이나 특징, 그것이 없다면 실체를 생각 또는 표현할 수 없는 것으로 정의할 수 있다.

데이터 모델의 관점에서 속성은, 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위로 정의할 수 있다. 

즉, 속성이란 의미상 더 이상 분리되지 않으며, 엔터티를 설명하는 요소이며 인스턴스의 구성요소이다.

 

 

2-2. 속성의 특징

 

속성 또한 엔터티와 같이 다음과 같은 성질을 가지고 있으며, 이러한 성질을 지니지 않는다면 적절하지 못한 속성일 확률이 높다.

 

- 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.

- 정규화 이론에 근간하여 정해진 주 식별자에 함수적 종속성을 가져야 한다.

쉽게 말해, 다양하게 존재하는 인스턴스들에 대해 유일하게 구별할 수 있는 주식별자를 통해서 식별될 수 있어야 한다.

- 하나의 속성에는 단 한개의 값만을 가진다.

 

 

2-3. 엔터티, 인스턴스, 속성, 속성값의 관계

 

엔터티에는 두 개 이상의 인스턴스가 존재한다. 그리고 각각의 엔터티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다. 

분석단계에서는 엔터티 내에 존재하는 여러 개의 인스턴스가 가지는 동일한 성격을 파악하여 이에 이름을 부여하여 엔터티의 속성으로 결정하는 작업이 필요하다. 또한 하나의 속성은 하나의 인스턴스에만 존재할 수 있으며, 속성은 스스로가 또 다른 속성을 가질 수 없고 속성에 대해 어떠한 관계로 기술할 수 없다. 그리고 각 인스턴스는 하나의 속성에 대해 하나의 속성 값만 가질 수 있다.

이를 정리하면 다음과 같다.

 

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

- 한 개의 엔터티는 두 개 이상의 속성을 가진다.

- 한 개의 속성은 한 개의 속성 값을 가진다.

 

 

2-4. 속성의 분류

 

2-4-1. 속성의 특성에 따른 분류

 

- 기본 속성(Basic Attribute)

업무 분석을 통해 바로 정의한 속성을 기본속성이라고 한다. 엔터티에 있어서 가장 일반적이고 많은 속성을 차지한다. 하지만 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 그리고 다른 속성을 계산하거나 영향을 받아 생성된 속성등은 기본속성이 아니다.

 

- 설계 속성(Designed Attribute)

업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 새로 만들어지거나 변형된 속성을 설계 속성이라고 한다. 일반적으로 코드성 속성은 기존의 속성을 업무상 필요에 의해 변형하여 만든 설계 속성이다. 또한 일련번호와 같은 속성 또한 단일한 식별자를 부여하기 위해 모델 상에서 새롭게 정의하는 설계속성이다.

 

- 파생 속성(Derived Attribute)

다른 속성에 영향을 받아 발생하는 속성은 파생 속성이다. 일반적으로 계산된 값들이 이에 해당된다. 파생 속성은 가급적 적게 정의하는 것이 좋다.

 

 

2-4-2. 엔터티 구성방식에 따른 분류

 

- PK(Primary Key) 속성

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

 

- FK(Foreign Key) 속성

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

 

- 일반 속성

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

 

 

2-4-3. 세부 의미 유무에 따른 분류

 

- 단순 속성(Simple Attibute)

나이, 성별과 같은 데이터는 더 이상 다른 속성들로 구성될 수 없는 단순한 속성이므로 단순 속성이라고 한다.

 

- 복합 속성(Composite Attribute)

주소 속성에 대해서는 시, 구, 동, 번지와 같이 여러 세부 속성들로 구성될 수 있는데 이때 주소 속성과 같은 것들을 복합 속성이라고 한다.

 

 

2-5. 도메인(Domain)

 

각 속성은 무한정적인 값을 갖는 것이 아니라 그 범위가 지정된다. 이 때 속성의 값이 가질 수 있는 범위를 그 속성의 도메인이라고 한다. 따라서 속성 값이 가질 수 있는 데이터 타입과 크기 그리고 추가적인 제약사항이라고 생각할 수 있다.

 

 

2-6. 속성의 명명(Naming)

 

속성에 대해 이름을 부여하는데에 있어서는 아래와 같은 원칙이 존재한다.

 

- 해당 업무에서 사용하는 이름을 부여한다.

- 서술식 속성명은 사용하지 않는다.

- 약어사용은 가급적 제한한다.

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



출처: https://doorbw.tistory.com/227 [Tigercow.Door]

반응형

'자격증 > SQLD' 카테고리의 다른 글

2. 식별자(Identifiers)  (0) 2022.02.03
1. 관계(Relationship)  (0) 2022.02.03
1. 엔터티Entity  (0) 2022.02.03
Null값을 특정한 값으로 출력, NVL  (0) 2020.07.10
테이블에서 원하는 값만 출력  (0) 2020.07.10