Post

[SQL] 속성(Attribute)

[SQL] 속성(Attribute)

속성의 개념


속성의 정의

  • 업무에 필요로 한다.
  • 의미상 더 이상 분리되지 않는다.
  • 엔터티를 설명하고 인스턴스의 구성요소가 된다.

속성이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의할 수 있다. 사전적인 정의 이외에 데이터 모델링 관점에서 속성을 정의하자면, ‘업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더이상 분리할 수 없는 최소의 데이터 단위’ 로 정의할 수 있다. 즉, 업무상 관리하기 위한 최소의 의미 단위로 생각할 수 있고, 이것은 엔터티에서 한 분야 를 담당하고 있다.


속성의 특징


속성의 특징은 다음과 같다.

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


속성의 분류


속성은 분류형태에 따라 다양하게 나뉜다. 내용은 다음과 같다.

  • 속성의 특성에 따른 분류

    • 기본속성

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

    • 설계속성

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

    • 파생속성

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

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

    • PK속성

      엔터티를 식별할 수 있는 속성

    • FK속성

      다른 엔터티와의 관계에서 포함된 속성

    • 일반속성

      엔터티에 포함되어 있고 PK/FK에 포함되지 않은 속성

  • 세부의미에 따른 분류

    • 단순속성

      나이, 성별 등의 더이상 다른 속성들로 구성될 수 없는 단순한 속성

    • 복합속성

      주소와 같이 시·구·동 등의 여러 세부속성들로 구성 수 있는 속성

  • 속성값 갯수에 따른 분류

    • 단일값속성

      주민등록번호와 같이 반드시 하나의 값만 존재하는 속성

    • 다중값속성

      자동차의 색상이라는 의미가 차 지붕 색, 차체색 등 여러 색상값을 의미할 수 있는 것처럼 여러 개의 값을 가지는 속성


도메인


각 속성은 가질 수 있는 값의 범위가 존재하며 이를 그 속성의 도메인이라 한다. 예를 들어 학생이라는 엔터티가 있을 때 학점이라는 속성의 도메인은 0.0에서 4.5 사이의 실수 값인 것이다. 여기서 물론 각 속성은 도메인 이외의 값을 가지지 못한다. 따라서 도메인을 좀 더 이해하기 쉽게 말하자면, 언테티 내에서 속성에 대한 데이터타입과 크기·제약사항을 지정하는 것이다.


속성의 명명


CS환경이든 Web환경이든 속성명이 곧 UI에 나타나기 때문에 업무와 직결되는 항목이다. 때문에 속성명을 정확하게 부여하고 용어의 혼란을 없애기 위해 용어사전이라는 업무사전을 프로젝트에 사용하게 된다.

속성을 명명하는 일반적인 기준은 다음과 같다.

  • 해당 업무에서 사용하는 이름 부여
  • 서술식 속성명은 지양
  • 약어 사용은 가급적 제한
  • 전체 데이터 모델에서 유일성을 확보하는 것이 유리

읽어주셔서 감사합니다. 😊

Reference
SQL 전문가 가이드 - Kdata 한국데이터산업진흥원

This post is licensed under CC BY 4.0 by the author.