DB/data modeling

1. db 모델링 이론 _ 데이터 모델링이란

wooweee 2023. 5. 22. 14:44
728x90
  •  목차
    1. 데이터 모델링이란
    2. ER 모델 구성 요소
    3. 관계형 데이터 모델 이론

 

  • abc
    1. 속성 도출-그룹핑-관계 연결

 

1. 데이터 모델링이란

  • modeling의 종류 및 설계 순서
    1. 개념 모델링 : 분석
    2. 논리 모델링 : 설계
    3. 물리 모델링 : 구현

  • 중요도
    • 1. 2. 가 중요 : 업무에 관련된 모든 것의 모델링
    • 3번 : 성능, 보안

1.1. 정의

  • 정의
    • 영속성을 갖는 데이터에 대한 시스템 구조를 사람이 이해할 수 있도록 형상화하는 과정
    • 업무에서 사용하는 각종 데이터를 포함해 업무 내용, 절차(결제/휴먼계정)등을 구축하고자 하는 시스템의 데이터를 구조화하고 형상화하는 과정

    • 개념적, 논리적, 물리적 3가지의 의미를 가진다.

  • 실제 의미
    • 실제 업무를 db table로 나타내고 표현하는 것
    • 모델을 만드는 것
  • data modeling의 종류
    1. 개체관계 모델 (ER) - 대표적
    2. 관계 모델 (RM)
    3. 계층 모델 (HM)

 

  • modeling 학습 예시
    • 업무 : 예약, 주문, 배송

    • 규칙은 쉬운데 업무를 표현해 내는 것은 어렵다.
      • 튜닝같은 것들은 공식화 되어있기 때문에 쉽다.
      • 하지만 업무 설계를 하는 개념 모델링, 논리 모델링은 a 방식으로 할지, b 방식으로 할지 고민하고 서비스마다 방식이 달라져서 어렵다
    • 가치있는 것은 어떤 업무에 따라서 modeling이 달라지고 팀원과 토론을 하는 것이 중요
      ->팀원들과 하는 것이 물론 부족하지만 직접해보는 것이 회사의 시스템을 이해하기가 쉽다.

    • 예시_예약
      • 예약한 것을 저장 -> db 사용 -> 모델링
      • 예약이 뭔지 다시 한번 고민
      • search보단  abc 방식에 따라 모델링 수행 
        • 해당 과정에서부족한 점을 깨닫는 것이 중요
    • 모델링 학습 주제 선정
      • 실생활에 최대한 익숙한 것(=서비스에 관해서 익숙한 것)이 초급자의 학습에 유리

 

  • 데이터 모델링 작업
    • 업무를 파악하여 개념들을 정리, 분류 해서 엔티티(class), 속성(iv), 관계(상속, 포함)로 형상화
    • 예시 이미지

 

1.2. abc 방식

  1. 속성 도출 : 화면에 나오는 data - db에 다 존재하는 것
  2. 그룹핑 : 관계있는 것끼리 class로 묶은 것 - db table로 나뉘는 것
  3. 관계 맺어주기 :  상속, 포함 - db에도 그런 게 있겠지 하고 생각하기!!
  • abc 순서가 중요하지 않고 해당 과정을 거친다는 것을 파악하는 것이 중요

 

  • 학습 방향
    • db 설계나 java 객체지향 설계가 똑같다. db가 더 쉽다.
    • db 설계가 객체지향 설계 보다 쉽고 좋은 책들이 많다.
    • 공부 순서 : db 모델링 설계 -> 객체지향 설계

 

  • abc 모델링 예
    1. 인터넷 뱅킹 - 프로젝트
      • 엔티티(=class ,db table) : 속성(iv)
        • 개인: 이름, 주소, 나이
        • 기업: 이름, 전번, 주소, 사업자번호
        • 상품: 대출, 예금, 적금, 예금 번호
    2. 개인과 기업 관계 없음

    3. 개인과 상품, 기업과 상품 관계 존재

 

 

 

 

 

1.3. ER 모델(entity-Relationship Model)

  • 개념 모델링을 구체화 한것
  • 업무를 entity 간의 관계로 표현
  • 업무를 개체(속성)와 관계(상속, 포함)라는 2가지 개념으로 표현하는 모델

 

  • ER 모델 (Entitiy-Relationship Model) : 표현하고자하는 현실 세계의 업무를 개체, 관계라는 2가지 개념으로 표현하는 모델 
    • 개념 모델링 중 하나로 구체화 한 것
    • 업무를 entity 간의 관계로 표현
      • db table , class
        ex) 고객, 상품 <- 업무를 이렇게 표현한다. 익숙해지기
    • 논리 : entity
    • 물리 : db table

 

1.4. ER 모델의 질적 특성

  • 완전성: 업무를 빠짐 없이 표현
  • 정확성: 속성 사용X, 부모-자식 관계 명확
  • 최소성: 중복 금지
  • 자명성: 이름 그대로 의미를 잘 들어내야한다.
  • 확장성: 고객 교육을 잘 시켜야한다. 새로운 요구사항이 들어올 경우 잘 반영되도록 (ocp)
  • 표현성: 주소1 -> 고객기본 주소, 주소2 -> 고객 상세 주소
  • 가독성