DB/SQL 전문가 가이드

[과목 I 1장 3절] 속성

꾸준함. 2025. 2. 22. 20:36

1. 속성의 개념

  • 속성 (Attribute)이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의 가능
  • 데이터 모델링에서 속성은 `업무에 필수적인 인스턴스로 관리되며, 의미상으로 더 이상 분리할 수 없는 최소 단위의 데이터`를 의미
    • 업무상 관리하기 위한 최소의 의미 단위로 생각할 수 있고, 이 것은 엔터티에서 한 분야를 담당하고 있음

 

https://snnchallenge.tistory.com/183

 

  • 속성의 정의를 정리해 보면 다음과 같음
    • 업무에서 필요로 함
    • 의미상 더 이상 분리되지 않음
    • 엔터티를 설명하고 인스턴스의 구성요소가 됨

 

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

 

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

  • 엔터티에는 두 개 이상의 인스턴스가 존재하고, 각각의 엔터티는 고유한 성격을 표현하는 속성 정보를 두 개 이상 가짐
  • 업무에서는 엔터티를 구성하는 특징이 무엇인지 또한 각각의 인스턴스들은 어떤 성격의 데이터로 구성되는지를 파악하는 작업이 필요
  • 분석 단계에서 엔터티 내 존재하는 여러 개의 인스턴스가 가지는 동일한 성격은 무엇인지를 파악해 이에 이름을 부여하고, 엔터티의 속성으로 기술하는 작업이 필요
  • 엔터티 내에 있는 하나의 인스턴스는 각각의 속성들에 대해 한 개의 속성값만을 가질 수 있음
  • 속성은 엔터티에 대한 자세하고 구체적인 정보를 나타내며 각각의 속성은 구체적인 값을 갖게 됨
  • 엔터티, 인스턴스, 속성, 속성값에 대한 관계를 분석하면 다음과 같은 결과를 얻을 수 있음
    • 한 개의 엔터티는 두 개 이상의 인스턴스의 집합
    • 한 개의 엔터티는 두 개 이상의 속성을 가짐
    • 한 개의 속성은 한 개의 속성값을 가짐

 

https://snnchallenge.tistory.com/183

 

나. 속성의 표기법

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

 

https://snnchallenge.tistory.com/183

 

3, 속성의 특징

  • 속성은 다음과 같은 특징을 가지며 만약 도출된 속성이 다음의 성질을 만족하지 못하면 적절하지 않을 확률이 높음
    • 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 함
    • 정규화 이론에 근거하여 정해진 주식별자에 함수적 종속성을 가져야 함
    • 하나의 속성은 한 개의 값만을 가지며 하나의 속성에 여러 개의 값이 있는 다중 값일 경우 별도의 엔터티를 이용하여 분리해야 함

 

4. 속성의 분류

 

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

  • 속성의 업무 분석을 통해 바로 정의한 속성을 기본 속성, 원래 업무상 존재하지는 않지만 설계를 하면서 도출해 내는 속성을 설계 속성, 그리고 다른 속성으로부터 계산, 변형, 생산되는 속성을 파생 속성이라고 함

 

1. 기본 속성 (Basic Attribute)

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

 

2. 설계 속성 (Designed Attribute)

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

 

3. 파생 속성 (Derived Attribute)

  • 다른 속성에 영향을 받아 발생하는 속성으로, 보통 계산된 값들이 이에 해당
  • 다른 속성에 영향을 받기 때문에 프로세스 설계 시 데이터 정합성을 유지하기 위해 유의해야 할 점이 많으므로 가급적 파생 속성을 적게 정의하는 것이 좋음
  • 파생 속성의 경우 값이 계산된 로직을 속성의 정의서에 기록했다가 향후 속성 값 검증 시 활용되기도 함
  • 될 수 있으면 꼭 필요한 경우에만 정의하여 업무 로직이 속성 내부에 숨지 않게 하는 것을 권장
  • 파생 속성을 정의한 경우 속성 정의서에 파생 속성이 갖는 업무로직을 기술하여 데이터 정합성을 유지할 수 있어야 함

 

https://snnchallenge.tistory.com/184

 

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

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

 

https://snnchallenge.tistory.com/184

 

  • 또한 속성은 그 안에 세부 의미를 쪼갤 수 있는지에 따라 단순형 혹은 복합형으로 분류 가능
    • ex) 주소 속성은 시, 구, 동, 그리고 번지와 같은 여러 세부 속성들로 구성될 수 있으며 이를 복합 속성 (Composite Attribute)
    • ex) 나이, 성별 등의 속성은 더 이상 다른 속성들로 구성될 수 없는 단순한 속성이므로 단순 속성 (Simple Attribute)

 

  • 일반적으로 속성은 하나의 값을 가지고 있으나, 그 안에 동일한 성질의 여러 개의 값이 나타나는 경우가 있음
    • 단일값 (Single Value): 속성 하나에 한 개의 값을 가지는 경우 
    • 다중값 (Multi Value): 속성 하나에 여러 개의 값을 가지는 경우

 

  • 주민등록번호와 같은 속성은 반드시 하나의 값만 존재하므로 단일값 속성 (Single-Valued Attribute)
  • 자동차의 색상 속성의 경우 차, 지붕, 차체, 외부의 색이 모두 다를 수 있으며 이런 속성을 다중값 속성 (Multi-Valued Attribute)이라고 부름
    • 다중값 속성의 경우 하나의 엔티티에 포함될 수 없으므로 1차 정규화를 진행하거나 별도의 엔터티를 만들어 관계로 연결해야 함

 

5. 도메인 (Domain)

  • 각 속성은 가질 수 있는 값의 범위가 있는데 이를 그 속성의 도메인이라고 함
    • ex) 학생이라는 엔터티가 있을 때 학점이라는 속성의 도메인은 0.0에서 4.5 사이의 실수 값

 

  • 도메인을 좀 더 이해하기 쉽게 정리하면, 엔터티 내에서 속성에 대한 데이터 타입과 크기 및 제약 사항을 지정하는 것

 

6. 속성의 명명

  • 클라이언트/서버 및 웹 환경이든 속성명이 곧 사용자 인터페이스에 나타나기 때문에 업무와 직결되는 항목
  • 따라서 속성명을 정확하게 부여하고 용어의 혼란을 없애기 위해 용어 사전이라는 업무 사전을 프로젝트에 사용하게 됨
  • 또한, 각 속성이 가지는 값의 종류와 범위를 명확하게 하기 위해 도메인 정의를 미리 정의하여 용어 사전과 같이 사용
  • 용어 사전과 도메인 정의를 같이 사용하여 프로젝트를 진행할 경우 용어적 표준과 데이터 타입의 일관성을 확보할 수 있음
  • 속성명을 부여하는 원칙은 다음과 같음
    • 해당 업무에서 사용하는 이름을 부여
    • 서술식 속성명은 사용하지 않음
    • 약어 사용은 가급적 제한함
    • 전체 데이터 모델에서 유일성을 확보하는 것이 좋음

 

참고

SQL 전문가 가이드 2020 개정판 - 한국데이터산업진흥원

반응형

'DB > SQL 전문가 가이드' 카테고리의 다른 글

[과목 I 1장 5절] 식별자  (0) 2025.02.23
[과목 I 1장 4절] 관계  (0) 2025.02.22
[과목 I 1장 2절] 엔터티  (0) 2025.02.22
[과목 I 1장 1절] 데이터 모델의 이해  (1) 2025.02.22