[Part 1] 3. 속성(Attribute)

yuzu sim's avatar
Aug 08, 2024
[Part 1] 3. 속성(Attribute)

1. 속성(Attribute)

  • 업무에서 대상의 고유한 성질이나 특징을 나타내며, 데이터베이스의 컬럼으로 표현
  • 속성은 더 이상 분리되지 않는 최소의 데이터 단위로, 인스턴스(행)의 구성 요소이며,
    • 업무상 관리하고자 하는 정보
  • 인스턴스의 구성 요소
    • ex) 학생 엔터티에 이름, 학번, 학과번호 등이 속성이 될 수 있음
 

2. 속성값

  • 각각의 속성은 속성값을 가지며 속성값은 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터
  • 하나의 속성은 한개의 속성값만 가질 수 있다.
  • 여러개의 속성값을 작는 경우 별도의 엔터티로 분리 하는 것이 바람직 함

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

  • 한 개의 엔터티는 2개 이상의 인스턴스(행)를 포함(하나의 테이블은 두 개 이상의 행을 가짐)하며, 각 엔터티는 2개 이상의 속성(컬럼)을 가진다.(하나의 테이블은 두 개 이상의 컬럼으로 구성됨)
  • 각 속성은 하나의 속성값을 가지며(각 컬럼의 값은 하나씩만 삽입 가능)
  • 엔터티의 구체적인 정보를 나타낸다.
  • 즉, 속성은 엔터티의 세부사항을 설명하고, 각 속성에 대응하는 값은 구체적이고 단일한 값을 가진다.
    • 예를 들어, 학생 엔터티에서 "이름"이라는 속성은 "홍길동"과 같은 구체적인 값을 가짐

4. 속성의 특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
  • 정해진 주식별자에 함수적 종속성을 가져야 한다.
  • 하나의 속성은 한 개의 값만을 가진다.(한 컬럼의 값은 각 인스턴스마다 하나씩만 저장)
  • 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
  • 하나의 인스턴스는 속성마다 반드시 하나의 속성값을 가진다. => 각 속성이 하나의 값을 갖고 있음을 의미(속성의 원자성)
💡
원자성이란
  • 데이터모델에서 각 엔터티의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 가지는 것을 의미
 

5. 함수적 종속성

  • 함수적 종속성이란 한 속성의 값이 다른 속성의 값에 종속되는 관계를 의미
  • 예를 들어, 어떤 속성 A의 값에 의해 속성 B의 값이 유일하게 결정된다면, B는 A에 함수적으로 종속되었다고 말할 수 있다.
  • 이를 수식으로 표현하면 A → B로 나타낸다.
 

5-1. 완전 함수적 종속

  • 특정 컬럼이 기본키 전체에 대해 완전히 종속될 때를 말함. (즉 PK 전체에 의해 다른 속성이 결정되는 경우)
  • 기본키(PK)를 구성하는 컬럼이 2개 이상일 경우, 모든 PK 값에 의해 종속되는 경우를 완전 함수적 종속이라고 한다.
  • 예시 테이블: 주문 테이블
(주문번호 + 제품번호)에 의해 수량이 결정되는 경우.
주문번호
제품번호
수량
101
A001
10
101
A002
5
102
A001
7
주문번호와 제품번호가 PK이며, 이 두 값을 조합하여 수량이 결정된다. 즉, (주문번호, 제품번호) → 수량은 완전 함수적 종속성을 만족한다.
 

5-2. 부분 함수적 종속

  • 기본키 전체가 아닌, 기본키 일부에 대해 종속될 때 부분 함수적 종속이라고 한다.(즉 PK의 일부에 의해 다른 속성이 결정되는 경우)
  • 예시 테이블: 수강기록 테이블
수강기록 테이블에서 학생번호과목이 PK인 경우, 과목에 의해 교수가 결정된다면 이는 부분 함수적 종속입니다.
학생번호
과목
교수
S001
수학
김교수
S001
영어
이교수
S002
수학
김교수
학생번호와 과목이 PK이지만, 과목에 의해 교수가 결된다. 즉, 과목 → 교수는 부분 함수적 종속성을 만족다.
 

6. 속성의 분류

6-1. 속성의 특성에 따른 분류

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

6-2. 엔터티 구성방식에 따른 분류

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

6-3. 분해 여부에 따른 속성

① 단일 속성
  • 하나의 의미로 구성된 경우 ex) 회원 ID, 이름 등
② 복합 속성
  • 여러개의 의미로 구성된 경우 ex) 주소(시, 구, 동 등으로 분해 가능) 등
③ 다중값 속성
  • 속성에 여러 개의 값을 가질 수 있는 경우
  • 다중값 속성은 엔터티로 분해 ex) 상품 리스트 등

6-4. 속성의 명명규칙

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

6-5. 도메인(Domain)

  • 도메인은 각 속성이 가질 수 있는 값의 범위를 의미함
  • 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것이다
 

6-6. 용어사전

  • 어떤 시스템이든 속성명은 업무와 직결되는 항목이다.
  • 속성의 리름을 정확하면서도 직관적으로 부여 (속성명을 보고 어떤 데이터가 저장된 컬럼이라는 걸 직감할 수 있도록)
  • 용어의 혼란을 없애기 위해, 용어사전이라는 업무사전을 프로젝트에 사용
 

6-7. 시스템 카탈로그

  • 사용자 테이블과는 별개로 시스템 자체에 관련이 있는 데이터를 담고 있는 데이터이며 시스템 테이블로 구성 되어있어 SQL을 이용해 조회 가능함
  • 시스템 카탈로그에 저장된 데이터를 메타 데이터라 하고 SELECT만 가능, INSERT, UPDATE, DELETE 불가능 함
 
Share article

Coding_study