컴퓨터공학 공부/SQLD (SQL 전문가 가이드)

SQLD 자격증 공부 데이터 모델링의 이해-엔터티, 속성(SQL 전문가가이드)

개발학생 2024. 3. 26. 17:41
반응형

*본 게시물은 2013년도 SQL 전문가 가이드 교재(일명 '노랭이')를 참고하여 공부하고 정리한 게시물입니다

 

1과목 데이터 모델링의 이해: 제1장 데이터 모델링의 이해

1. 엔터티

1) 정의

업무에서 관리해야 하는 데이터의 집합, 명사형, 인스턴스의 집합
-> 업무에 필요하거나 유용한 정보를 저장하고 관리하기 위한 집합적인 것(thing)

2) 특징

  • 업무에서 필요하고 관리하고자 하는 정보
  • 유일한 식별자를 가짐
  • 2개 이상의 인스턴스를 포함한 집합
  • 업무 프로세스가 반드시 이용함
  • 속성을 가짐
  • 한 개 이상의 관계를 가짐

3) 종류

(1) 유무형에 따른 분류

  • 유형 엔터티: 물리적 형태가 있고 지속적으로 활용되는 엔터티(사원, 물품, 강사 등)
  • 개념 엔터티: 물리적 형태가 없는 엔터티(조직, 보험상품)
  • 사건 엔터티: 업무를 수행함에 따라 발생되는 엔터티로, 비교적 발생량이 많아 각종 통계 자료에 이용될 수 있음
     (주문, 청구, 미납 등)

(2) 발생시점에 따른 분류

기본 엔터티(Key Entity, 키 엔터티): 다른 엔터티나 관계에 의해 생성되지 않고, 독립적으로 생성되는 엔터티
   -> 타 엔터티의 부모 역할

   => 사원, 부서, 고객, 상품, 자재 등

중심 엔터티(Main Entity): 기본 엔터티와 행위 엔터티의 중간에 존재하는, 기본 엔터티로부터 발생하는 핵심 엔터티

   -> 데이터의 양이 많이 발생하고, 다른 엔티티와의 관계를 통해 많은 행위엔터티 생성
   => 계약, 사고, 예금원장, 청구, 주문, 매출 등

 행위 엔터티(Active Entity, 사건 엔터티): 비즈니스 프로세스를 실행하면서 생성되는 엔터티

   -> 2개 이상의 부모 엔터티로부터 발생, 지속적으로 정보가 추가되고 변경되어 데이터양이 가장 많음
       분석 초기 단계에서는 잘 나타나지 않고, 상세 설계단계나 프로세스와 상관모델링을 진행하며 도출 가능

  => 주문목록, 사원변경이력 등

4) 명명 규칙

- 현업 업무에서 사용하는 용어 사용

- 약어 지양 

- 단수 명사

- 유일성 보장(중복 명명 금지)

- 명확성(업무 목적과 맞는 이름 부여)

 

2. 속성

1) 정의

  • 엔터티가 가지는 최소 의미 단위이자, 인스턴스의 구성요소
    => 업무에서 필요로 하는 인스턴스에서 관리하고자 하는, 의미상 더 이상 분리되지 않는 최소의 데이터 단위

2) 엔터티와 인스턴스 및 속성과 속성값 간의 관계

3) 속성 표기법

  • IE 표기법

  • Barker 표기법

4) 특징

  1. 반드시 업무에서 필요하여 관리하고자 하는 정보(예시: 강사의 교재이름)
  2. 정규화 이론 기반으로 정해진 주 식별자에, 함수적으로 종속됨
  3. 한 속성에 값 하나만 가짐 (한 속성에 여러 값이 있는 다중값이면 정규화 필요 - 별도 엔터티로 분리)

5) 종류

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

  • 기본 속성(Basic Attribute): 비즈니스 프로세스에서 도출되는 본래의 속성
    => 예시: 코드성 데이터/엔터티 식별을 위해 부여된 일련번호/
                   다른 속성을 계산하거나 영향을 받아 생성된 속성을 제외한 모든 속성
  • 설계 속성(Designed Attribute): 데이터 모델링 과정에서 업무 규칙화를 위해 새로 만들거나 변형하여 정의하는 속성(1:1 치환)
    => 예시: 코드성 속성(원래 속성을 변형), 일련번호(단일한 식별자 부여를 위해 모델 상에서 새로 정의)
  • 파생 속성(Derived Attribute, 계산값): 다른 속성에 의해 만들어지는[계산되는] 속성
       (↔ 저장 속성은 유도 속성을 생성하는 데 사용되는 속성)
    -> 다른 속성에 영향을 받아 프로세스 설계 시 데이터 정합성 유지를 위해 주의할 점이 많아지므로, 가급적 적게 정의 

(2) 분해 가능 여부에 따른 분류

‒ 단일 속성: 하나의 의미
‒ 복합 속성: 여러 의미, 단일 속성으로 분해 가능
ex) 주소
‒ 단일값 속성: 하나의 값
‒ 다중값 속성: 여러 값, 엔터티로 분해 가능

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

‒ 기본키 속성: 엔터티를 식별할 수 있는 속성
‒ 외래키 속성: 다른 엔터티와의 관계에서 포함된 속성
‒ 일반 속성: 엔터티에 포함되고 PK나 FK 속성이 아닌 속성

6) 도메인(Domain)

  • 속성이 가질 수 있는 값의 범위(예시: 학생 엔터티에서 학점이라는 속성의 도메인은 0.0~4.5 사이의 실수 값)
  • 엔터티 내에서 속성에 대한 데이터타입과 크기 그리고 제약사항을 지정하는 것

7) 속성의 명명(Naming)

  • C/S(Client/Server) 환경, Web 환경에서는 속성명이 곧 사용자 인터페이스(User Interface)에 나타나므로 업무와 직결되는 항목
    -> 속성 이름을 정확하게 부여하고 용어의 혼란을 없애기 위해, '용어사전'이라는 업무사전을 프로젝트에 사용

(1) 해당 업무에서 사용하는 이름 부여

(2) 서술식 속성명 사용 금지

- 명사형을 이용하고, 수식어가 많이 붙지 않도록 유의하여 작성

(3) 약어사용 가급적 제한

- 업무분석자 내에서도 의사소통이 제약을 받고, 시스템을 운영할 때도 많은 불편을 초래할 수 있음

(4) 전체 데이터모델에서 유일성 확보

- 데이터의 흐름을 파악하고 데이터 정합성을 유지하는데 큰 도움이 되며, 반정규화(테이블 통합, 분리, 칼럼의 중복 등)를 적용할 때 속성명의 충돌을 해결하여 안정적으로 반정규화를 적용할 수 있게 됨

반응형