데이터베이스/SQLD

[SQLD 과목1 1장-3절] 속성(Attribute)

kgvovc 2021. 2. 27. 15:37
반응형

1. 속성(Attribute)의 개념

속성이란?

  • 어떤 사물 또는 개념에 없어서는 안 될 징표의 전부(사전적 정의)
  • 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위(모델링 관점의 정의)

2. 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법

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

  • 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다.
  • 한 개의 엔터티는 두 개 이상의 속성을 갖는다.
  • 한 개의 속성은 한 개의 속성값을 갖는다.

나. 속성의 표기법

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

3. 속성의 특징

  • 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
  • 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다.
  • 하나의 속성에는 한 개의 값만을 가진다. 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.

속성은 위와 같은 특징을 가지며, 만약 도출된 속성이 위의 성질들을 만족하지 못하면 적절하지 않은 속성일 확률이 높다.

4. 속성의 분류

가. 속성의 특성에 따른 분류

  • 기본속성: 기본속성은 업무로부터 추출한 모든 속성이 여기에 해당하며 엔터티에 가장 일반적이고 많은 속성을 차지한다. 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 그리고 다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성은 기본속성이다.

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

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

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

분류 기준: PK, FK

  • PK(Primary Key) 속성: 엔터티를 식별할 수 있는 속성
  • FK(Foreign Key) 속성: 다른 엔터티와의 관계에서 포함된 속성
  • 일반속성: 엔터티에 포함되어 있고 PK, FK에 포함되지 않은 속성

분류 기준: 속성 안에 세부 의미를 쪼갤 수 있는지

  • 복합 속성(Composite Attribute): 여러 세부 속성들로 구성될 수 있는 속성

    ex) 주소 속성 -> 시, 구, 동, 번지 등의 세부 속성들로 쪼갤 수 있다.

  • 단순 속성(Simple Attribute): 다른 속성들로 구성될 수 없는 단순한 속성

    ex) 나이, 성별 등의 속성

분류 기준: 속성값을 여러개 가질 수 있는지

  • 단일값 속성: 속성 하나에 한 개의 값을 가지는 속성

    ex) 주민등록번호 같은 속성은 반드시 하나의 값만 존재하므로 단일값 속성.

  • 다중값 속성: 속성 하나에 여러 개의 값을 가지는 속성

    ex) 전화번호 같은 속성은 집, 휴대전화, 회사 전화번호 등 여러 개의 값을 가질 수 있으므로 다중값 속성.

    다중값 속성의 경우 하나의 엔터티에 포함될 수 없으므로 1차 정규화를 하거나, 아니면 별도의 엔터티를 만들어 관계로 연결해야 한다.

5. 도메인(Domain)

어떤 속성의 도메인이란?

  • 각 속성의 가질 수 있는 값의 범위를 그 속성의 도메인(Domain)이라 한다.

    수학에서의 정의역을 영단어로 Domain이라 하는 것을 생각하면 와닿는다.

  • 도메인은 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것이다.

6. 속성의 명명(Naming)

프로젝트에 사용되는 속성 이름을 정확하게 부여하고 용어의 혼란을 없애기 위해 용어사전이라는 업무사전을 사용한다. 또한 각 속성이 가지는 값의 종류와 범위를 명확하게 하기 위해 도메인 정의를 미리 하여 용어사전과 같이 사용한다. 용어사전과 도메인 정의를 같이 사용하여 프로젝트를 진행할 경우 용어적 표준과 데이터 타입의 일관성을 확보할 수 있게 된다.

속성명을 부여하는 원칙은 다음과 같다.

반응형