[SQLD] 데이터 모델링과 엔터티(Entity), 속성(Attribute), 관계(Relationship)

EUN JY·2022년 8월 30일
2

Database

목록 보기
15/21

1. 모델링

  • 시스템의 대상이 되는 업무를 분석하여 정보 시스템으로 구성하는 과정에서 업무의 내용과 정보 시스
    템의 모습을 적절한 표기법(Notation)으로 표현하는 것
  • 정보 시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는
    무엇인지 분석하는 방법

1-1. 데이터 모델링이란

  • 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
  • 현실 세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
  • 데이터베이스를 구축하기 위한 분석/설계의 과정

1-1-1. 모델링의 특징

  • 추상화 : 현실세계를 일정한 형식에 맞추어 표현
  • 단순화 : 복잡한 현실 세계를 약속된 규약에 의해 표현하여 쉽게 이해할 수 있도록 함
  • 명확화 : 누구나 이해하기 쉽게 하기 위해 정확
    하게 현상을 기술하는 것

1-1-2. 모델링의 관점

  • 데이터 관점(What, Data) : 업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무엇인지에 대해서 모
    델링하는 방법
  • 프로세스 관점(How, Process) : 업무가 실제 하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법
  • 데이터와 프로세스의 상관 관점(Interaction) : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법

1-1-3. 데이터 모델이 제공하는 기능

  • 시스템을 현재 또는 원하는 모습으로 가시화
  • 시스템의 구조와 행동을 명세화
  • 시스템을 구축하는 구조화된 틀을 제공
  • 시스템을 구축하는 과정에서 결정한 것을 문서화
  • 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점을 제공
  • 특정 목표에 따라 구체화된 상세 수준의 표현방법을 제공

1-1-4. 데이터 모델링의 중요성

  • 파급효과(Leverage)
  • 복잡한 정보 요구사항의 간결한 표현(Conciseness)
  • 데이터 품질(Data Quality)

1-2. 데이터 모델링 3단계

  • 추상화 수준에 따라 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델로 정리
    image
    image
    • 개념적 데이터 모델링 : 엔터티(Entity) 중심의 데이터 모델링
    • 논리적 데이터 모델링 : 업무의 흐름에 따른 구체화된 업무 중심 데이터 모델링
    • 물리적 데이터 모델링 : 데이터베이스 저장 구조에 따른 테이블 스페이스 등을 고려한 모델링

1-2-1. 개념적 데이터 모델링

  • 조직, 사용자의 데이터 요구사항을 찾아 분석
  • 핵심 엔터티와 그들 간의 관계를 발견하고, 엔터티-관계 다이어그램을 생성
  • 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원

1-2-2. 논리적 데이터 모델링

  • 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법
  • 논리 데이터 모델의 상세화 : 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등
  • 정규화를 수행하여 논리 데이터 모델의 일관성 확보, 중복 제거
    • 속성들이 적절한 엔터티에 배치되도록 함으로써 보다 신뢰성 있는 데이터 구조를 얻음

1-2-3. 물리적 데이터 모델링

  • 물리적 스키마 : 물리적으로 컴퓨터에 어떻게 저장되는 지에 대한 정의
  • 물리적인 저장 구조(테이블, 칼럼), 저장 장치 종류, 자료 추출에 사용될 접근 방법 등을 결정

1-3. 데이터 독립성

  • 유지보수 비용 절감, 데이터 복잡도 감소, 중복 데이터 최소화를 위함
    image
  • 데이터 독립성 확보 시 효과
    • 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능
    • 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공

1-3-1. 데이터 독립성 요소

image

1-3-2. 영역에 따른 독립성

  • 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마에 영향을 미치지 않음
  • 물리적 독립성 : 내부 스키마가 변경되어도 외부 스키마는 영향 받지 않음
    image

1-4. 데이터 모델링 3요소

  • 엔터티 : 어떤 것(Things)
  • 속성 : 엔터티의 세부적인 사항(Attributes)
  • 관계 : 엔터티의 연관성(Relationship)

1-5. 데이터 모델 표기법(ERD)

  • 1976년 피터첸(Peter Chen)이 Entity-relationship model(E-R Model) 표기법을 만듦
  • 각 업무 분석에서 도출된 엔터티와 엔터티 간의 관계를 이해하기 쉽게 도식화된 다이어그램으로 표시하는 방법
  • 데이터의 흐름과 프로세스와의 연관성을 이야기하는 데 가장 중요한 표기법이자 산출물
    image

1-5-1. ERD 작업 순서

  • 엔터티 그리기 > 엔터티 배치 > 엔터티 간 관계 설정 > 관계명 기술 > 관계의 참여도 기술 > 관계의 필수 여부 기술
    • 관계 설정 시, 중복되는 관계가 발생되지 않도록 유의
    • 관계 참여도를 나타내기 위해 관계차수(Cardinality) 표현
      image
  • 하나(1)의 관계의 경우 IE 표기법은 실선으로 표기, Barker 표기법은 점선과 실선을 혼합하여 표기
    image

1-6. 좋은 데이터 모델의 요소

  • 완전성(Completeness) : 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 함
  • 중복배제(Non-Redundancy) : 저장공간 절약, 데이터의 일관성을 위해 하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록
  • 업무규칙(Business Rules) : 업무규칙을 데이터 모델에 표현하고, 이 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 함
  • 데이터 재사용(Data Reusability) : 통합 모델이어야만 데이터 재사용성을 향상시킬 수 있음
  • 의사소통(Communication) : 데이터 모델이 의사소통의 도구 역할을 함
  • 통합성(Integration) : 동일한 데이터는 조직의 전체에서 한번만 정의되고 이를 여러 다른 영역에서 참조, 활용하는 것이 가장 바람직한 데이터 구조의 형태

2. 엔터티(Entity)

  • 변별할 수 있는 사물 (Peter Chen, 1976)
  • 데이터베이스 내에서 변별 가능한 객체 (C.J Date, 1986)
  • 정보를 저장할 수 있는 어떤 것 (James Martin, 1989)
  • 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 (Thomas Bruce, 1992)
  • 사람, 장소, 물건, 사건, 개념 등의 명사

2-1. 엔터티의 특징

  • 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성(Attribute)을 가짐
  • 엔터티는 인스턴스의 집합, 인스턴스는 엔터티의 하나의 값에 해당

2-1-1. 엔터티의 특징

  • 업무에서 필요로 하는 정보 : 시스템을 구축하고자 하는 업무에서 필요로 하고 관리하고자 하는 정보
  • 식별 가능 : 식별자(Unique Identifier)에 의해 식별이 가능해야 함
  • 인스턴스의 집합 : 영속적으로 존재하는 인스턴스의 집합이 되어야 함
  • 업무 프로세스에 의해 이용 : 업무프로세스(Business Process)가 그 엔터티를 반드시 이용해야 함
  • 속성을 포함 : 엔터티에는 반드시 속성(Attributes)이 포함되어야 함
  • 관계의 존재 : 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 존재해야 함
    • 관계 생략 가능한 경우는 다음과 같음
      • 통계를 위한 엔터티는 통계 업무(Read Only)만을 위해 정의하게 됨
      • 코드성 엔터티는 관계 설정 시 읽기 효율성(Readability)이 저하됨
      • 트랜잭션 로그 테이블 등 시스템 처리 시 내부 필요에 의한 엔터티는 관계 설정 필요 X

2-2. 엔터티의 분류

  • 유무형에 따라 구분하거나 발생 시점에 의해 구분됨
  • 스스로 생성될 수 있는지 여부에 따라 독립 엔터티, 의존 엔터티 구분

2-2-1. 유무형에 따른 분류

  • 엔터티는 유무형에 따라 유형 엔터티, 개념 엔터티, 사건 엔터티로 구분
  • 유형 엔터티(Tangible Entity)
    • 물리적 형태가 있고, 안정적이며 지속적으로 활용되는 엔터티
    • 업무로부터 엔터티를 구분하기 가장 용이
    • ex. 사원, 물품, 강사 등
  • 개념 엔터티(Conceptual Entity)
    • 물리적 형태가 존재하지 않고 관리해야 할 개념적 정보로 구분되는 엔터티
    • ex. 조직, 보험상품 등
  • 사건 엔터티(Event Entity)
    • 업무 수행에 따라 발생되는 엔터티
    • 비교적 발생량이 많으며 각종 통계 자료에 이용됨
    • ex. 주문, 청구, 미납 등

2-2-2. 발생 시점에 따른 분류

  • 엔터티의 발생 시점에 따라 기본 엔터티, 중심 엔터티, 행위 엔터티로 구분
  • 기본/키 엔터티(Fundamental Entity, Key Entity)
    • 그 업무에 원래 존재하는 정보
    • 다른 엔터티와 관계에 의해 생성되지 않고 독립적으로 생성 가능 > 다른 엔터티로부터 주식별자를 상속 받지 않고 고유한 주식별자를 가짐
    • 자신은 타 엔터티의 부모 역할
    • ex. 사원, 부서, 고객, 상품, 자재 등
  • 중심 엔터티(Main Entity)
    • 기본 엔터티로부터 발생되며, 그 업무의 중심적인 역할
    • 데이터 발생량이 많고, 다른 엔터티와의 관계를 통해 많은 행위 엔터티를 생성
    • ex. 계약, 사고, 예금원장, 청구, 주문, 매출 등
  • 행위 엔터티(Active Entity)
    • 두 개 이상의 부모 엔터티로부터 발생
    • 자주 내용이 바뀌거나 데이터 양이 많음
    • 분석 초기 단계에서는 잘 나타나지 않으며 상세 설계 단계나 프로세스와 상관 모델링을 진행하면서 도출
    • ex. 주문 목록, 사원 변경 이력 등

2-3. 엔터티의 명명

  • 현업 업무에서 사용하는 용어를 사용
  • 약어 사용 지양
  • 단수 명사 사용
  • 모든 엔터티에서 유일하게 이름이 부여되어야 함
  • 엔터티 생성 의미대로 이름 부여

3. 속성(Attribute)

  • 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
    image

3-1. 엔터티와 속성, 속성값, 인스턴스

  • 엔터티에는 두 개 이상의 인스턴스가 존재
  • 각각의 엔터티에는 고유의 성격을 표현하는 속성 정보가 두 개 이상 존재
  • 한 개의 속성은 한 개의 속성값을 가짐

3-2. 속성의 특징

  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 함
  • 정규화 이론에 의해 정해진 주식별자에 함수적 종속성을 가짐
  • 하나의 속성에는 한 개의 값만 가짐 (한 속성에 여러 값이 있는 경우 별도 엔터티를 이용하여 분리)

3-3. 속성의 분류

  • 속성의 특성에 따라 구분하거나, 엔터티 구성 방식에 따라 구분

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

  • 기본 속성(Basic Attribute)
    • 업무 분석을 통해 바로 정의한 속성
  • 설계 속성(Designed Attribute)
    • 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
    • 코드성 속성은 업무상 필요에 의해 원래 속성을 변형하여 만든 설계 속성
    • 일련 번호와 같은 속성은 단일(Unique)한 식별자를 부여하기 위해 모델 상에서 새로 정의하는 설계 속성
  • 파생 속성(Derived Attribute)
    • 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
    • 통계관련 엔터티나 배치 작업이 수행되면서 발생되는 엔터티의 경우 사용

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

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

3-4. 도메인(Domain)

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

3-5. 속성의 명명

  • 속성명은 사용자 인터페이스(User Interface)에 나타나기 때문에 업무와 직결되는 항목
  • 용어 사전 : 속성 이름을 정확하게 부여하고 용어의 혼란을 없애기 위해 사용하는 업무 사전
  • 각 속성값의 종류와 범위를 명확하게 하기 위해 미리 도메인을 정의하여 용어 사전과 같이 사용
  • 용어 사전과 도메인 정의를 같이 사용 > 용어적 표준, 데이터 타입의 일관성 확보

3-5-1. 속성의 명명 규칙

  • 현업 업무에서 사용하는 용어를 사용
  • 약어 사용 지양
  • 서술식 속성명 지양
  • 전체 데이터모델에서 유일성 확보

4. 관계(Relationship)

  • 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
  • 관계의 페어링 : 엔터티 안의 인스턴스가 개별적으로 관계를 가지는 것

4-1. 관계의 분류

  • 존재에 의한 관계
    • 부서 엔터티와 사원 엔터티는 소속을 나타내는, 존재 형태에 의해 형성되는 관계
  • 행위에 의한 관계
    • 고객 엔터티와 주문 엔터티는 고객의 주문 행위에 의한 관계

4-2. 관계의 표기법

  • 관계명(Membership) : 관계의 이름
  • 관계차수(Cardinality) : 1:1, 1:M, M:N
  • 관계선택사양(Optionality) : 필수 관계, 선택 관계

4-2-1. 관계명

  • 엔터티가 관계에 참여하는 형태를 지칭
  • 각각의 관계는 두 개의 관계명을 가짐 > 각각의 관계명에 의해 두 가지의 관점으로 표현됨
    image

4-2-2. 관계차수

  • 두 개의 엔터티간 관계에서 참여자의 수를 표현하는 것
  • Crow’s Foot 모델에서 관계차수 표기법 : 선을 이용하여 표현(한 개가 참여하는 경우 실선, 다수가 참여한 경우 까마귀발 모양)
    image
    image
    image

4-2-3. 관계선택사양

  • 참여하는 엔터티가 항상 참여하는지 아닌지 나타내는 방법 > 필수(Mandatory Membership)와 선택 참여(Optional Membership)
  • 주문서와 주문목록은 필수참여관계
  • 상품목록과 주문목록은 선택참여관계
  • 선택참여관계 > ERD에서 관계를 나타내는 선의 선택참여하는 엔터티 쪽을 원으로 표시
    image
profile
개린이

0개의 댓글