SQL - Attribute - 속성의 개념, 표기 방법, 특징, 분류, 명명

반응형

 

속성의 개념

  • 업무에서 필요로 하는 인스턴스
  • 의미상 더 이상 분리되지 않는 최소의 데이터 단위
  • 업무상 관리하기 위한 최소의 단위
  • 엔터티에서 한 분야를 담당

<속성 정의 예시, 출처 한국데이터산업진흥원>


엔터티, 인스턴스와 속성, 속성값에 대한 표기법

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

  • 속성 : 엔터티에 속한 보다 자세하고 구체적인 정보를 나타내며 각각의 속성은 구체적인 값을 가짐
  • 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 함
    • 각각의 인스턴스는 속성의 집합으로 설명 될 수도 있음
    • 한 개의 속성은 한 개의 인스턴스에만 존재할 수 있음
  • 한 개의 엔터티는 두 개 이상의 속성을 가짐
  • 한 개의 속성은 한 개의 속성값을 가짐
  • 예시)
    • 엔터티 : '홍길동' 이라는 사람
    • 속성 : 이름, 주소, 생년월일 등
    • 속성 값 : 홍길동, 서울시 강서구, 1999년 1월 1일 등

<엔터티와 속성의 관계 예시, 출처 한국데이터산업진흥원>


속성 표기법

  • 속성은 엔터티 내에 이름을 포함하여 표현

<속성 표기 예시, 한국데이터산업진흥원>


속성의 특징

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

속성의 분류

속성 특성에 따른 분류

  • 기본 속성(Basic Attribute)
    • 업무 분석을 통해 바로 정의한 속성
    • 가장 일반적인 속성
    • 업무로부터 추출한 모든 속성이 여기에 해당
      • 코드성 데이터, 엔터티를 식별하기 위해 부여된 일련번호, 다른 속성을 계산하거나 영향을 받아 생성된 속성 제외
      • 업무로부터 분석한 속성이라도 업무상 코드로 정의한 속성의 경우, 속성의 값이 원래 속성을 나타내지 못하므로 기본 속성이 되지 않음
  • 설계 속성(Designed Attribute)
    • 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
    • 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
    • 예시)
      • 코드성 속성 : 원래 속성을 업무상 필요에 의해 변형하여 만듬
      • 일련번호와 같은 속성 : 단일(Unique)한 식별자를 부여하기 위해 모델 상에서 새로 정의
  • 파생 속성(Derived Attribute)
    • 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
    • 다른 속성에 영향을 받아 발생하는 속성
    • 보통 계산된 값들이 파생 속성에 해당
    • 프로세스 설계 시 데이터 정합성 유지를 위해 유의해야 할 점이 많음
    • 가급적 파생속성을 적게 정의하는 것이 좋음

<속성 특성에 따른 분류 예시, 출처 한국데이터산업진흥원>


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

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

<엔터티 구성방식에 따른 분류 예시, 출처 한국데이터산업진흥원>


도메인(Domain)

  • 각 속성이 가질 수 있는 범위를 의미
  • 즉, 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것
  • 예시1)
    • 엔터티 : 학생
    • 속성 : 학점
    • 도메인 : 0.0 ~ 4.0 사이의 실수 값
  • 예시2)
    • 엔터티 : 학생
    • 속성 : 주소
    • 도메인 : 길이가 20자리 이내인 문자열

속성의 명명(Naming)

  1. 현업에서 사용하는 이름 부여
    • 아무리 일반적인 용어라도 업무에서 사용되지 않으면 속성의 명칭으로 사용하지 않는 것이 좋다.
  2. 서술식 속성명 사용 금지
    • 명사형 이용, 수식어가 많이 붙지 않도록 유의
    • 수식어가 많으면 의미파악이 힘들다.
    • 상세 설계단계에서 물리속성으로 전환하는데 명확한 의미파악이 어렵게 된다.
    • 소유격도 사용하지 않는다.
  3. 가급적 약어 사용 금지
    • 지나치게 약어를 많이 사용하면 업무분석자 내에서도 의사소통이 제약을 받는다.
    • 시스템을 운영할 때도 많은 불편을 초래할 수 있다.
  4. 모든 속성의 이름은 유니크하게
    • 데이터에 대한 흐름을 파악하고 데이터의 정합성을 유지하는데 큰 도움이 된다.
    • 반정규화(테이블통합, 분리, 칼럼의 중복 등)를 적용할 때 속성명의 충돌(Conflict)을 해결하여 안정적으로 반정규화를 적용할 수 있게 된다.

참고

반응형