SQLD 출제 핵심 요약 3(데이터모델링의 이해 1과목)

0

SQLD 요약 정리

목록 보기
9/10

데이터모델링

  • 고객과 함께 고객의 업무 프로세스를 이해해야 데이터 모델링을 제대로 할 수 있다.
  • 현실 세계를 데이터베이스에서 표현하기 위한 추상화 과정이다.
  • 데이터 모델링 표기법을 사용해서 모델링한다.
  • 고객의 업무 프로세스 내 비즈니스 프로세스 규칙을 정의하여 데이터 모델로 표현 할 수 있어야 한다.
  • 고객이 이해하기 쉽게 간결하게 모델링 해야한다.

데이터 모델링의 특징

  • 추상화(Abstraction)
    • 현실 세계를 일정한 양식(표기법)에 맞게 간략하게 표현한다.
  • 단순화(Simplification)
    • 누구나 이해하기 쉽도록 약속된 규약에 의한 제한된 표기법 또는 언어를 이용하여 표현한다.
  • 명확화(Clarity)
    • 명확하게 의미가 한 가지로 해석되어야 함으로 애매모호함을 제거하고 정확하게 현상을 기술한다.

데이터모델링의 단계

개념적 모델링

  • 추상화 수준이 가장 높음
  • 업무 측면의 모델링
  • 전자적이고 포괄적인 모델링
  • 핵심 엔터티 추출
  • ERD작성
  • 대충 노트에 데이터베이스를 모델링할지 적어둔 상태

논리적 모델링

  • 특정 데이터베이스 모델에 종속이 된다.
  • 세부속성, 식별자, 관계 등을 정확하게 표현
  • 데이터 정규화 완료
  • 재사용성이 높음
  • PK, FK와 같은 제약조건, 연결, 정규화 등 ERD를 사용해 정규화까지 완료된 상태 당장도 사용 가능하지만 물리적 모델링의 과정을 거치지 않으면 비효율 적인 상태 해당 상태에서 사용가능.

물리적 모델링

  • 물리적인 성능과 데이터 저장을 고려한 설계
  • 가장 구체적인 데이터모델링
  • 추상화 수준이 가장 낮은 단계
  • 성능, 보안, 가용성을 고려한 데이터베이스 모델링 진행
  • 성능적인 면에서 완벽한 상태 객관화 되어있는 상태로 서비스를 할 수 있는 상태이자 효율적인 상태

데이터모델링의 3가지 관점

데이터 관점

  • 데이터와 업무 간 어떤 관련이 있는지 데이터와 데이터 사이의 관계가 무엇인지 모델링한다. 비즈니스 프로세스에서 사용되는 데이터를 의미한다.
  • 구조분석, 정적분석

프로세스 관점

  • 실제하는 업무에 따라 무엇을 어떻게 하는지 모델링한다. 비즈니스 프로세스에서 수행하는 작업을 의미한다.
  • 시나리오 분석, 도메인 분석, 동적 분석

데이터와 프로세스의 상관 관점

  • 업무의 처리(프로세스)와 데이터 간의 서로 어떤 영향을 주고 받는지 모델링 한다. 프로세스와 데이터 간의 관계를 의미한다.
  • CRUD

데이터모델링을 위한 ERD(Entity Relationship Diagram)

  • 데이터모델링을 사람이 알아보기 쉽게 만든 시스템
  • 1976년 피터첸이 만든 표기법으로 데이터모델링의 표준으로 지금까지 사용되어지고 있다.
  • ERD작성 순서
    • 엔터티 도출
    • 엔터티 배치
    • 엔터티 관계 설정
    • 관계명 기술
    • 관계 참여도 기술
    • 관계 필수 여부 기술
  • 대표적인 표기법
    • Chen, IE, Barker, UML 등
    • IE와 Barker가 가장 많이 출제됨.

3단계 구조 스키마

  • 데이터베이스의 독립성을 위하여 3단계 구조 스키마가 존재한다.
  • 사용자(외부 스키마), 설계자(내부 스키마), 개발자(개념 스키마)의 각기 관점에 따라 데이터베이스를 기술하고 이들간의 관계를 ANSI표준으로 정했다.
  • 데이터의 독립성 확보를 통해서 데이터 복잡도 감소, 데이터 중복 제고, 사용자 요구사항 변경에 따른 대응력 향상, 관리 및 유지보수 비용 절감 등의 장점이 생긴다.
  • 각 계층을 뷰라고 부르며 3단계 계층으로 분리되어 서로 독립성을 확보한다.

데이터베이스 3단계 구조 특징

외부 스키마(외부 단계)

  • 데이터베이스의 개별 사용자 관점의 이해와 표현, 응용프로그램이 접근하는 데이터베이스, 여러 개의 외부 스키마 존재(사용자가 접근하는 데이터 베이스)

개념 스키마(개념 단계)

  • 데이터베이스 관리자의 관점으로 규칙과 구조 표현 데이터베이스의 전체적인 논리구조 일반적으로 스키마는 개념 스키마를 지칭함.(DB에 저장되고 ERD를 통해 표현되는 스키마를 뜻함.)

내부 스키마(내부 단계)

  • 데이터베이스 시스템 설계자 관점으로 저장 장치 관점의 이해 및 표현 데이터가 실제로 데이터베이스에 물리적으로 어떻게 저장되는지 확인한다.(DB를 설계한 사람이 효율적인 관점으로 보는 것을 뜻하는듯.)

엔터티

  • 데이터의 집합
  • 저장되며 관리되는 데이터
  • 개념, 사건, 장소등의 명사

유형과 무형에 따른 분류

유형 엔터티

  • 물리적이며 안정적이며 지속적인 엔터티
  • 명확하게 눈에 보이는 것
    • 사원, 제품, 교수 등

개념 엔터티

  • 물리적이진 않지만 개념적으로 존재하며 정보로 구분되는 엔터티(강의, 금융상품, 부서 등)
  • 명확하게 보이진 않지만 실체가 있고 따로 번호를 주지 않아도 구분이 가능한 것. 각각에 특징으로 명명할 수 있는 것들을 뜻함.
    • 도서부, 교육부, 서예부
    • SQLD 기출 강의, 기초부터 배우는 JPA 강의

사건 엔터티

  • 비즈니스 프로세스에 따라 발생되는 엔터티 데이터가 많다.(구매, 판매, 영업, 수납 등)
  • 명확하게 보이지 않고 통칭하는 구매, 대여, 판매 등의 개념은 있으나 통칭하는 개념이 없다면 주로 구매번호, 대여번호 등 번호를 붙여서 구분하는 것
    • 구매번호 : A001, 대여번호 : B001, 주문번호 : C001 등

발생 시점에 따른 엔터티 분류

  • 기본 엔터티, 중심 엔터티, 행위 엔터티 순으로 생긴다고 생각하면된다.
  • 쇼핑을 하기 위해 쇼핑몰에 가입했다.(기본 엔터티 : 고객정보)
  • 쇼핑몰에 주문을 하고 구매를 완료했다.(중심 엔터티 : 주문)
  • 쇼핑몰에서 나의 이전 구매 내역을 보려고 한다.(주문으로 인해 생겼던 나의 구매 내역임.)(행위 엔터티 : 주문내역)

기본 엔터티

  • 키 엔터티라고 하며 독립적인 생성 및 관리된다.
    • 고객, 부서, 판매제품

중심 엔터티

  • 기본 엔터티로 부터 발행되는 행위, 엔터티를 생성하는 중간 엔터티이다.
    • 계좌, 주문, 수납 등등

행위 엔터티

  • 상위에 있는 2개 이상의 엔터티로부터 발생되는 엔터티이다.
    • 주문 이력, 접속 이력, 수납 이력 등등

속성(Attribute)

  • 엔터티가 가지는 항목
  • 속성은 더 이상 분리되지 않는다.
  • 업무에 필요한 데이터를 저장 한다.
  • 인스턴스의 구성 요소로 최소의 데이터 단위이다.
  • 속성의 특징
    • 속성은 업무에서 관리되는 정보이다.
    • 속성은 하나의 값만 가진다.
    • 주식별자에게 함수적으로 종속된다. 기본키에 따라 속성의 값도 변경 될 수 있다.

특성에 따른 속성의 종류

기본 속성

  • 비즈니스 프로세스에서 도출한 본래의 속성
  • 만들어내는 속성이 아니다. 이미 있는 것을 쓴다고 생각하면 편하다.
    • 이름 ID, 전화번호, 등록일시 등

설계 속성

  • 데이터 모델링 과정에서 발생되는 속성
  • 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성
    • 상품코드, 지점코드, 부서번호 등

파생 속성

  • 다른 속성에 의해서 만들어지는 속성
  • 다른 속성에 영향을 받으므로 영향받는 속성을 알아두어야 하는 등 가급적 적게 정의하는 것이 좋다.
    • 합계, 평균, 포인트 금액, 총 결제 금액 등
profile
비전공자 개발초보입니다!

0개의 댓글