자격증 & 문제풀이/SQLD 정리

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

YSY^ 2020. 8. 14. 12:08

제 1절. 데이터모델의 이해

  1. 모델링의 이해
    1) 모델링의 정의 : 복잡한 현실세계를 일정한 표기법에 의해 표현하는 일
    2) 모델링의 특징
    ㄱ) 추상화(모형화, 가설적) : 현실세계를 일정한 형식에 맞추어 표현
    ㄴ) 단순화
    ㄷ) 명확화
    3) 모델링의 관점
    ㄱ) 데이터관점 : 업무가 어떤 데이터와 관련있는지, 데이터간의 관계가 무엇인지.
    ㄴ) 프로세스관점 : 업무가 무엇을 어떻게 하는지
    ㄷ) 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향받는지

  2. 데이터모델링의 기본개념의 이해

    • 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법
    • 현실세걔의 데이터에 대해 약속된 표기법에 의해 표현되는 과정
    • 데이터베이스를 구축하기 위한 분석,설계의 과정
  3. 데이터 모델링의 중요성/유의점
    1) 중요성
    ㄱ) 파급효과 : 데이터구조변경작업으로 인한 다른변경작업들은 전체 시스템 구축 프로젝트의 큰 위험요소
    ㄴ) 요구사항의 간결한 표현
    ㄷ) 데이터품질 : 데이터품질 문제는 오랜기간 숙성된 데이터를 전략적으로 활용하려는 시점에 발생, 데이터구조에 신경써야 함
    2) 유의점
    ㄱ) 중복
    ㄴ) 비유연성 : 데이터정의와 데이터사용프로세스가 분리되지 않음
    ㄷ) 비일관성 : 데이터 간 상호 연관 관계에 대한 명확한 정의가 없음

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

1) 개념적 데이터 모델링 : 업무중심적, 포괄적, 추상적, 엔터티관계 다이어그램
2) 논리적 데이터 모델링 : key, 속성, 관계 등을 정확하게 표현
3) 물리적 데이터 모델링 : 실제 데이터 베이스에 이식하고 성능과 저장여부를 고려

  1. 프로젝트 생명주기(Life Cycle)

현실 프로젝트에서는 개념적 데이터모델이 생략된 개념/논리 데이터모델링이 분석단계 때 대부분 수행

  1. 데이터모델링에서 데이터독립성 이해
    1) 데이터독립성의 필요성

    데이터 독립성의 효과

    • 각 view의 독립성을 유지하고 계층별 view에 영향을 주지 않고 변경 가능
    • 단계별 스키마에 따라 데이터 정의어(DDL)과 데이터조작어(DML)가 다름을 제공
    • 데이터 독립성을 이해하기 위해서는 ANSI 표준 모델을 보면되며, 특히 3단계인 구조, 독립성, 사상 3가지를 이해야한다.

    2) 데이터베이스 3단계 구조(ANSI/SPARC의 3단계 구성의 데이터독립성 모델)

    • 논리적데이터 독립성 → 개념스키마가 변경되도 외부스키마에 영향주지 않음
    • 물리적데이터 독립성 → 내부스키마가 변경되도 외부/개념스키마에 영향주지 않음

3) 데이터독립성 요소
ㄱ) 외부스키마 : 개개인의 사용자가 보는 개인적 DB스키마
ㄴ) 개념스키마 : 모든사용자의 관점 통합, 조직전체의 DB를 기술
ㄷ) 내부스키마 : 내부단계, 내부스키마로 구성, 물리적DB, 저장장치

4) 사상(Mapping) : 상호 독립적인 개념 연결

  • 논리적 사상 : 외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결된다는 것
  • 물리적 사상 : 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조
  1. 데이터모델링의 3가지 개념

    • 어떤 것 : 실제 실무 현장에서는 복수/집합개념도 엔터티로 짧게 명명
               엔터티를 집합개념으로 사용하는 경우, 개별요소에 대해서는 인스턴스/어커런스를 단수의 개념           
    • 관계(Relationship) : 단수든 복수든 대부분 관계라고 표현

  1. 데이터모델링의 이해관계자

  1. 데이터 모델의 표기법인 ERD이해
    1) 데이터모델 표기법

    2) ERD모델링

  1. 좋은 데이터 모델의 요소
    1) 완전성(Completeness) : 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의
    2) 중복배제(Non-Redundancy) : 동일한 사실은 반드시 한번만 기록
    3) 업무규칙(Business Rules) : 데이터모델에 업무규칙 표현하여 다같이 공유
    4) 데이터 재사용(Data Reusability) : 통합모델 및 데이터와 어플리케이션을 독립하여 재사용성 높이기
    5) 의사소통(Communication) : 업무규칙을 동일한 의미로 받아들이고 정보시스템 활용
    6) 통합성(Integration) : 동일한 데이터는 한번만 기록, 이를 다른 영역에서 참조, 활용

제 2 절 : 엔터티

  1. 개념
    • 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
    • 엔터티는 업무상 관리가 필요한 관심사에 해당한다.
    • 엔터티는 저장이 되기 위한 어떤 것(Thing)이다.

  2. 특징
    1) 업무에서 필요로하는 정보
    2) 유일한 식별자로 식별 가능
    3) 여러개의 인스턴스를 포함
    4) 반드시 속성이 존재
    5) 다른 엔터티와의 관계가 1개 이상

  3. 분류

1) 유무형에 따라 : 유형, 사건, 개념  
2) 발생시점에 따라  
  ㄱ) 기본엔터티 : 업무에 원래 존재하는 정보, 독립적으로 생성, 다른엔터티로부터 주식별자 상속안받음  
  ㄴ) 중심엔터티 : 기본엔터티로부터 발생  
  ㄷ) 행위 엔터티 : 두개 이상의 부모 엔터티로부터 발생
  1. 엔터티의 명명
    1) 가능하면 현업업무에서 사용하는 용어
    2) 가능하면 약어사용 안함
    3) 단수명사 사용
    4) 모든엔터티에서 유일하게 이름 부여
    5) 생성 의미대로 이름 부여

제 3절 속성

  1. 개념 : 업무에서 필요로하는 인스턴스에서 관리하고자 하는 최소의 데이터 단위

  1. 특징
    • 업무에서 필요
    • 주식별자에 함수적 종속성을 가짐
  1. 분류
    1) 특성에 따른 분류
    • 기본속성 : 업무로 부터 추출한 모든 속성
    • 설계속성 : 기본속성 이외에 데이터모델링을 위해 만든 속성(ex.일련번호)
    • 파생속성 : 다른 속성으로부터 파생

2) 구성방식에 따른 분류

  • 복합속성 : 여러세부속성들로 구성 ex)주소 : 시+구+동
  • 단순속성 : 나이 성별 등cf)도메인 : 속성이 가질 수 있는 값의 범위

제 4절 관계

  1. 개념

  2. 분류

  1. 관계의 표기법
    1) 관계명 : 포함/소속
    2) 관계차수 : 1:1, 1:N, N:N
    3) 관계선택사양 : 필수관계, 선택관계(Foreign Key로 연결될 경우 Null을 허용할 수 있는 항목이 된다)

  2. 관계의 정의 및 읽기

제 5 절 : 식별자

  1. 개념

    • 식별자는 엔터티를 구분지으며, 엔터티를 대표할 수 있는 속성
    • 엔터티에는 반드시 하나의 유일한 식별자가 존재
  2. 특징

    • 유일성 : 주 식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분됨
    • 희소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
    • 불변성 : 주식별자의 값은 한번 지정되면 불변
    • 존재성 : null 안됨
  3. 분류
    1) 대표성여부

    • 주식별자 : 다른 엔터티와 참조관계를 연결할 수 있는 식별자
    • 보조식별자 : 대표성을 가지지 못해 참조관계 연결할 수 없음
      2) 스스로 생셩여부
    • 내부식별자/외부식별자
      3) 속성의수 : 단일식별자/복합식별자
      4) 대체여부
    • 본질식별자 : 업무로부터 만들어짐(복잡한 구성을 가짐)
    • 인조식별자 : 인위적으로 반들어짐(본질식별자가 복잡한 구성을 가졌기 때문)
  4. 식별자관계와 비식별자관계
    1) 식별자관계 : 자식엔터티의 주식별자로 부모엔터티의 주식별자가 상속
    2) 비식별자관계 : 부모엔터티의 주식별자가 자식엔터티의 일반속성으로 상속

    • 자식엔터티에서 받은 속성이 반드시 필수가 아니기에 부모 없는 자식이 생성될 수 있는 경우
    • 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우.
    • 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때.
    • 자식엔터티에서 별도의 주식별자를 생성하는 겻이 더 유리할 경우.
      3) 식별자관계로만 설정할 경우 문제점
    • 주식별자의 속성 수가 많아지는 엔터티가 생김
      4) 비식별자관계로만 설정할 경우 문제점
    • SQL문에 많은 조인이 걸리게 되고 그에따라 복잡성이 증가하고 성능이 저하
728x90
반응형