SQLD 1-1. 데이터 모델링의 이해

2021. 11. 12. 16:48·SQLD
728x90

[ 모델링 ]


[ 모델링의 이해 ]

 

1. 모델링의 정의

  ∘ 사람, 사물, 개념 등의 다양한 현상을 정해진 표기법에 의해 표기하는 것

  ∘ 가설적 or 일정 양식에 맞춘 표현하는 것

  ∘ 복잡한 현실세계를 단순화시켜 표현하는 것

  ∘ 현실세계의 추상화된 표현

 

2. 모델링의 특징 

  ∘ 추상화, 단순화, 명확화

 

3. 모델링의 관점 

  ∘ 데이터 관점 (what / data) 

  ∘ 프로세스 관점 (how/process) 

  ∘ 상관 관점

 


[ 데이터 모델 ]

 

1. 데이터 모델링의 정의

  ∘ 정보 시스템을 구축하기 위한 데이터 관점의 업무분석 기법

  ∘ 현실세계의 데이터에 대해 약속된 표기법으로 표현하는 과정

  ∘ DB 구축을 위한 분석/설계의 과정

 

 

2. 데이터 모델의 기능 

  ∘ 시스템 가시화를 돕는다.

  ∘ 시스템의 구조&행동 명세화 

  ∘ 시스템을 구축하는 구조화된 틀 제공

  ∘ 시스템 구축 과정 문서화

 

 

3. 데이터 모델링의 중요성&유의점

  ⅰ. 파급 효과 

      ∘ 데이터 구조의 변경으로 인한 작업은 큰 위험요소이다. ⇨ 데이터 설계가 중요함

  ⅱ. 간결한 표현

      ∘ 정보요구사항의 이해와 데이터 정합성 유지를 도움

  ⅲ. 데이터 품질 

      ∘ 데이터 모델링의 유의점

        ① 중복 (Duplication) : DB가 여러 장소에 같은 정보를 저장하는 잘못을 방지해야 한다.

        ② 비유연성 (Inflexibility) : 데이터 정의와 사용 프로세스를 분리함으로써 변경에 대한 유지보수를 쉽게 한다.

        ③ 비일관성 (Inconsistnecy) : 데이터간 상호 연관관계의 명확한 정의로 데이터의 모순을 예방해야 한다.

 

 

 

4. 데이터 모델링 3단계 진행  

   ⅰ. 개념적 데이터 모델링 ( 전사적 데이터 모델링 ) 

        ∘  추상화 수준이 높은 업무 중심적이고 포괄적인 수준의 모델링

        ∘  엔터티, 관계를 발견하고 ERD를 생성

        ∘  데이터 요구사항 발견을 지원, 현 시스템의 변형 이해에 유용

   ⅱ. 논리적 데이터 모델링

        ∘  시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 표현

        ∘  재사용성이 높음

   ⅲ. 물리적 데이터 모델링 

        ∘  실제로 DB에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계  

 

 


 

[ 데이터 독립성 ]

 

1. 데이터 독립성의 필요성

  ∘  유지보수 비용↓, 데이터 중복성↓, 데이터 복잡도↓, 요구사항 대응이 쉽다.

  ∘  각 계층별 View에 영향을 주지 않고 변경이 가능하다

  ∘  단계별 Schema에 따라 DDL과 DML이 다름을 제공한다.

 

 

2. DB 3 단계 구조

  ⅰ. 외부 스키마 (사용자 관점)

    ∘  View 단계 여러 개의 사용자 관점으로 구성

    ∘  DB의 사용자, 프로그래머가 접근하는 DB 정의

  ⅱ. 개념 스키마 (통합 관점)

    ∘  조직 전체의 DB를 기술하는 것

    ∘  DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마

  ⅲ. 내부 스키마 (물리적 저장 구조)

    ∘  DB가 물리적으로 저장된 형식

    ∘  물리적 장치에서 데이터가 실제로 저장되는 방식을 표현한 스키마

 

 

 

3. 데이터독립성의 영역

  1. 논리적 독립성

    ∘  개념 스키마가 변경되어도 외부 스키마에 영향을 미치지 않도록 지원하는 것

         ⇨ 논리적 구조가 변경되어도 응용 프로그램에 영향이 없음

  2. 물리적 독립성

    ∘  내부 스키마가 변경되어도 외부/내부 스키마에 영향을 미치지 않도록 지원하는 것

        ⇨ 저장 장치의 구조 변경은 응용 프로그램 & 개념스키마에 영향 없음

 


 

[ 데이터 모델링의 중요한 세가지 개념 ]

세가지 요소

    ∘  업무가 관여하는 어떤 것 Things

    ∘  어떤 것이 가지는 성격 Attributes

    ∘  업무가 관여하는 어떤 것 간의 관계 Relationships

 


 

[ ERD ]

데이터 모델 표기법

 

ERD 작업 순서

  ① 엔터티 작성

  ② 엔터티 배치

  ③ 엔터티간 관계 설정

  ④ 관계명 기술

  ⑤ 관계의 참여도 기술

  ⑥ 관계의 필수 여부 기술

 


 

[ 좋은 데이터 모델의 요소 ]

 ∘ 완전성

 ∘ 중복 배제

 ∘ 업무 규칙

 ∘ 데이터 재사용

 ∘ 의사소통

 ∘ 통합성

 

 

 

 

 

 


[ 엔터티 : Entity ]


 

[ 엔터티의 개념 ]

 

 ∘ 변변할 수 있는 사물

 ∘ DB 내에서 변별 가능한 객체

 ∘ 정보를 저장할 수 있는 어떤 것 (Thing : 사람, 장소, 물건, 사건, 개념 )

 ∘ 인스턴스의 집합 ( 인스턴스 : 엔터티의 하나의 값 )

 

 

 

 

 

[ 엔터티 표기법 ]

 

 

 

 

 

[ 엔터티의 특징 ]

 

 ∘ 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.

 ∘ 유일성 : 유일한 식별자에 의해 식별이 가능해야 한다. 

 ∘ 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 한다.

 ∘ 엔터티는 업무 프로세스에 의해 이용되어야 한다.

 ∘ 엔터티는 반드시 속성이 있어야 한다.

 ∘ 엔터티는 다른 엔터테와 최소 한 개 이상의 관계가 있어야 한다.

 

 

 

 

 

[ 엔터티 분류 ]

 

   1. 유무에 따른 분류

       ① 유형 엔터티 ⇨ 물리적인 형태 존재

       ② 개념 엔터티 ⇨ 물리적인 형태 없이 관리해야 할 개념적 정보로 구분이 되는 엔터티

       ③ 사건 엔터티 ⇨ 업무를 수행함에 따라 발생되는 엔터티 ( 통계자료에 이용 )

   

   2. 발생시점에 따른 분류

       ① 기본 엔터티 ⇨ 다른 엔터티와의 관계 없이 독립적으로 생성이 가능한 엔터티 ex) 사원, 부서, 고객, 상품

       ② 중심 엔터티 ⇨ 기본엔터티로부터 발생되어 업무의 중심 역할을 하는 엔터티 ex) 계약, 사고, 주문, 매출

       ③ 행위 엔터티 ⇨ 두 개 이상의 부모 엔터티로부터 발생, 상세 설계시 도출 ex) 주문목록, 사원변경이력

 

 

 

 

 

 

[ 엔터티 명명 ]

 

 ∘ 현업 업무에서 사용하는 용어 사용, 약어 사용 자제, 단수명사 사용

 ∘ 모든 엔터티의 이름이 유일, 엔터티 생성 의미대로 이름 부여

 

 

 

 

 

 


[ 속성 ]


[ 속성의 개념 ]

 

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

 

 

 

[ 속성의 특징 ]

 

 ∘ 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.

 ∘ 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다.

 ∘ 하나의 속성에는 한 개의 값만을 가진다.

 

 

 

[ 속성 분류 ]

 

   ① 기본 속성 ⇨ 가장 일반적인 속성

                        ex) 제품이름, 제조년월, 제조원가

   ② 설계 속성 ⇨ 업무상 필요한 데이터 이외에 데이터 모델을 위해 속성을 새로 만들거나 변형하여 정의하는 속성

                        ex) 001-식품용기, 002-약품용기

   ③ 파생 속성 ⇨ 다른 속성에 영향을 받아 발생하는 속성, 보통 계산된값

                        ex) 전체 용기수, 용기의 총금액

 

 

 

[ 속성 명명 ]

 

 ∘ 해당업무에서 사용하는 이름 부여,

 ∘ 서술식 속성명 x,

 ∘ 약어 사용 자제,

 ∘ 전체 데이터모델에서 유일

 

 

 

[ 도메인 ]

 

 ∘ 각 속성이 가질 수 있는 값의 범위

 

 

 

 

 

 

 

 

 


[ 관계 ]


[ 관계의 정의 ]

 

 ∘ 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태, 행위로서 서로에게 연관성이 부여된 상태

 ∘ 엔터티의 정의에 따라 or 속성 정의 및 관계 정의에 따라서 변할 수 있다.

 

 

 

[ 관계 표기법 ]

 

  ① 관계명 : 관계의 이름

  ② 관계차수 - 1:1,  1:N,  N:N

  ③ 관계선택사양 ⇨ 선택연관관계, 필수연관관계

 

 

 

 

 

 

 

 


[ 식별자 ]


[ 식별자 개념 ]

 

 ∘ 여러 집합체를 담고 있는 엔터티를 구분할 수 있는 논리적인 이름

 ∘ 식별자 특징

       유일성 : 주식별자에 의해 엔터티 내 모든 인스턴스들이 유일하게 구별되어야 한다

       최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.

       불변성 : 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다

       존재성 : 주식별자가 지정이 되면 반드시 값이 들어와야 한다. (NOT NULL)

 

 

 

 

[ 식별자 분류 ]

 

 ∘ 대표성 여부 : 주식별자 vs 보조식별자

 ∘ 스스로 생성 여부 : 내부식별자 vs 외부식별자

 ∘ 속성의 수 : 단일식별자 vs 복합식별자

 ∘ 대체 여부 : 본질식별자 vs 인조식별자

 

 

 

 

[ 식별자관계, 비식별자관계에 따른 식별자 ]

 

728x90
저작자표시 (새창열림)

'SQLD' 카테고리의 다른 글

SQLD 1-2. 데이터 모델링의 성능  (0) 2021.11.12
'SQLD' 카테고리의 다른 글
  • SQLD 1-2. 데이터 모델링의 성능
gudwnsgur
gudwnsgur
IT
    250x250
  • gudwnsgur
    gudwnsgur
    gudwnsgur
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 개발이야기
      • Spring
        • 이슈 해결
      • JPA
        • spring data jpa
      • Java
        • Java의 정석
      • Kotlin
        • Kotlin In Action
        • Kotlin 정리
      • 대규모 시스템 설계 기초
      • JavaScript
        • JS ES6+
      • 면접
        • CS
      • SQLD
      • BE 개발
        • spring webflux
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    session
    HTTP
    cookie
    대규모 시스템 설계 기초
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
gudwnsgur
SQLD 1-1. 데이터 모델링의 이해
상단으로

티스토리툴바