속성

박선규's avatar
Sep 30, 2024
속성

속성(Attribute)의 개녑

  • 속성은 업무에서 필요로 하는 고유한 성질, 특징을 의미(관찰 대상) → 컬럼으로 표현할 수 있는 단위!
  • 업무상 인스턴스로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위
  • 인스턴스의 구성 요소
    • ex) 학생 엔터티에 이름, 학번, 학과번호 등이 속성이 될 수 있음
       
속성을 물리적인 단계로 보면 컬럼이라고 불리는데 컬럼을 언제 어떻게 설계하는지 한번 고민해보면 그 의미가 쉬울 것이다.
업무에서 필요로 하는 고유한 성질 값을 우리가 컬럼으로 보통 표현을 한다.
ex) 가계부에서 지출일자, 지출 항목, 금액 이런식으로 구분하는데 그런 특징을 얘기하고 있다.
인스턴스 입장에서는 더 이상 분리되지 않는 최소의 데이터 단위이다.
ex) 인스턴스라고 하는 건 하나의 행위니까 학생 엔터티에 홍길동이라고 하는 학생의 정보가 입력된다고 가정하자. 그러면 그 정보를 분해를 하게되면 이름, 학번, 학과번호 같은 것들로 분리가 될 수 있는데 이런 단위를 속성이라고 본다.

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

  • 한 개의 엔터티는 2개 이상의 인스턴스의 집합이어야 한다(하나의 테이블은 두 개 이상의 행을 가짐
  • 한 개의 엔터티는 2개 이상의 속성을 갖는다(하나의 테이블은 두 개 이상의 컬럼으로 구성됨)
  • 한 개의 속성은 1개의 속성값을 갖는다(각 컬럼의 값은 하나씩만 삽입 가능)
  • 속성은 엔티티에 속한 엔티티에 대한 자세하고 구체적인 정보를 나타냄, 각 속성은 구체적인 값을 가짐
 
ex) 과목이라는 속성에 하나의 인스턴스로 수학과 과학이 동시에 들어가면 안된다. 한 칸에는 수학, 그 밑의 라인에 과학 이런식으로는 들어갈 수 있다.
 

속성의 특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다
  • 정해진 주식별자에 함수적 종속성을 가져야 한다
    • 학번(주 식별자 PK)에 따라 학생 이름이 달라지기 때문에 학번에 함수적 종속성을 띈다.
  • 하나의 속성은 한 개의 값만을 가진다.(한 컬럼의 값은 각 인스턴스마다 하나씩만 저장)
  • 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다
  • 하나의 인스턴스는 속성마다 반드시 하나의 속성값을 가진다
⇒ 각 속성이 하나의 값을 갖고 있음을 의미(속성의 원자성)
 
** 원자성이란
  • 데이터 모델에서 각 엔터티의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 가지는 것을 의미한다.
 
보통 각 행들을 식별할 수 있는 식별자를 주식별자라고 한다. 예를 들어 학생 엔터티를 보면 학번이 주식별자가 될 수 있다. 학번에 의해서 결정되는 요인을 함수적 종속성을 띈다고 표현한다.
ex) 학번이 달라지면 이름이 달라진다.
→ 이름이라는 속성은 주식별자인 학번에 함수적 종속성을 띈다.
 
 

함수적 종속성

  • 한 속성이 다른 속성의 값에 종속적인 관계를 갖는 특징을 말함
  • 즉, 어떤 속성 A의 값에 의해 다른 속성 B도 유일하게 결정된다면, B는 A에 함수적으로 종속됐다 하고, 이를 수식으로 나타내면 A → B 라고 표현함

1) 완전 함수적 종속성

  • 특정 컬럼이 기본키에 대해 완전히 종속될 때를 말함
  • PK를 구성하는 컬럼이 2개 이상일 경우 PK값 모두에 의한 종속관계를 나타낼 때 완전 함수 종속성 만족
    • ex) (주문번호 + 제품번호)에 의해 수량 컬럼의 값이 결정됨
notion image
pk를 구성하는 컬럼이 하나일 수도 있고 여러 개 일수도 있는데, pk를 구성하는 컬럼 모두를 고려했을 때 특정 속성이 완전히 결정된다.
ex) 주문이라고 하는 엔터티를 보면 주문 번호도 있고 한 번 주문할 때마다 여러 제품을 주문할 수 있다면 주문 번호만으로 각 행이 식별되지 않는다. 그래서 이 때는 주문번호랑 제품번호가 pk인데 수량이라고 하는 것을 보면 제품 번호만으로도 수량이 결정되지 않는다. 얘는 주문번호와 제품 번호를 둘 다 고려했을 때 수량이라고 하는 컬럼이 결정되는 것이기 때문에 이럴 때 수량이라고 하는 컬럼이 pk에 대해서 완전 함수적 종속이다 라고 한다.
 

2) 부분 함수적 종속

  • 기본키 전체가 아니라, 기본키 일부에 대해 종속될 때를 말함
    • ex) 수강기록 테이블에서 학생번호와 과목이 pk라고 가정할 때, 과목에 의해서도 교수가 결정되면 부분 함수적 종속 관계!
notion image
 
부분 함수적 종속이라는 것은 말 그대로 pk중에 일부로만 결정이 될 수 있는 것이다.
예를 들어 한 학생이 여러 개의 과목을 수강할 수 있다고 치자. 이 때는 학생 번호만으로 식별할 수 없어서 학생번호랑 과목이 pk라고 되어있다. 근데 강사라고 하는 것은 사실상 과목에 의해서 결정이 되는 것이지 학생 번호에 의해서 결정이 되는 것은 아니다. 이런 경우에 강사라고 하는 속성은 과목에 대한 속성에 영향을 받는데 이럴때는 pk 중에 일부에 의해 결정된다라고 하고 이걸 표현할 때는 부분 함수적 종속이라고 표현을 한다.
 

속성의 분류

1) 속성의 특성에 따른 분류

  1. 기본 속성
      • 업무로부터 추출된 모든 속성
      • 엔터티에 가장 일반적으로 많이 존재하는 속성
        • ex) 원금, 예치기간 등
  1. 설계 속성
      • 기본 속성 외에 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성
        • ex) 상품코드, 지침코드, 예금분류 등
  1. 파생 속성
      • 다른 속성에 의해 만들어지는 속성
      • 일반적으로 계산된 값들이 해당
      • 데이터 정합성을 유지하기 위해 가급적 적게 정의하는 것이 좋음
        • ex) 합계, 평균, 이자 등

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

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

3) 분해 여부에 따른 속성

  1. 단일 속성
      • 하나의 의미로 구성된 경우
        • ex) 회원 ID, 이름 등
  1. 복합 속성
      • 여러 개의 의미로 구성된 경우
        • ex) 주소(시, 구, 동 등으로 분해 가능) 등
  1. 다중값 속성
      • 속성에 여러 개의 값을 가질 수 있는 경우
      • 다중값 속성은 엔터티로 분해
        • ex) 상품 리스트 등
 
예를 들어 전화번호 같은 경우에는 투 폰일 경우 여러 개의 값을 가질 수 있는데 이를 다중값 속성이라고 한다.
 

속성의 명명규칙

  1. 해당 업무에서 사용하는 이름을 부여
  1. 서술식 속성명은 사용하지 않음
  1. 약어의 사용은 가급적 제한
  1. 전체 데이터 모델에서 유일한 명칭

도메인(Domain)

  • 도메인은 각 속성이 가질 수 있는 값의 범위를 의미함
  • 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것이다.
 
예를 들어 학년은 1,2,3,4학년 이런 식으로 값의 범위를 갖는데 이런 것을 도메인이라고 한다.
 
Share article

p4rksk