728x90
- 목차
- 데이터 모델링이란
- ER 모델 구성 요소
- 관계형 데이터 모델 이론
- abc
- 속성 도출-그룹핑-관계 연결
1. 데이터 모델링이란
- modeling의 종류 및 설계 순서
- 개념 모델링 : 분석
- 논리 모델링 : 설계
- 물리 모델링 : 구현
- 중요도
- 1. 2. 가 중요 : 업무에 관련된 모든 것의 모델링
- 3번 : 성능, 보안
1.1. 정의
- 정의
- 영속성을 갖는 데이터에 대한 시스템 구조를 사람이 이해할 수 있도록 형상화하는 과정
- 업무에서 사용하는 각종 데이터를 포함해 업무 내용, 절차(결제/휴먼계정)등을 구축하고자 하는 시스템의 데이터를 구조화하고 형상화하는 과정
- 개념적, 논리적, 물리적 3가지의 의미를 가진다.
- 실제 의미
- 실제 업무를 db table로 나타내고 표현하는 것
- 모델을 만드는 것
- data modeling의 종류
- 개체관계 모델 (ER) - 대표적
- 관계 모델 (RM)
- 계층 모델 (HM)
- modeling 학습 예시
- 업무 : 예약, 주문, 배송
- 규칙은 쉬운데 업무를 표현해 내는 것은 어렵다.
- 튜닝같은 것들은 공식화 되어있기 때문에 쉽다.
- 하지만 업무 설계를 하는 개념 모델링, 논리 모델링은 a 방식으로 할지, b 방식으로 할지 고민하고 서비스마다 방식이 달라져서 어렵다
- 가치있는 것은 어떤 업무에 따라서 modeling이 달라지고 팀원과 토론을 하는 것이 중요
->팀원들과 하는 것이 물론 부족하지만 직접해보는 것이 회사의 시스템을 이해하기가 쉽다. - 예시_예약
- 예약한 것을 저장 -> db 사용 -> 모델링
- 예약이 뭔지 다시 한번 고민
- search보단 abc 방식에 따라 모델링 수행
- 해당 과정에서부족한 점을 깨닫는 것이 중요
- 모델링 학습 주제 선정
- 실생활에 최대한 익숙한 것(=서비스에 관해서 익숙한 것)이 초급자의 학습에 유리
- 업무 : 예약, 주문, 배송
- 데이터 모델링 작업
- 업무를 파악하여 개념들을 정리, 분류 해서 엔티티(class), 속성(iv), 관계(상속, 포함)로 형상화
- 예시 이미지
1.2. abc 방식
- 속성 도출 : 화면에 나오는 data - db에 다 존재하는 것
- 그룹핑 : 관계있는 것끼리 class로 묶은 것 - db table로 나뉘는 것
- 관계 맺어주기 : 상속, 포함 - db에도 그런 게 있겠지 하고 생각하기!!
- abc 순서가 중요하지 않고 해당 과정을 거친다는 것을 파악하는 것이 중요
- 학습 방향
- db 설계나 java 객체지향 설계가 똑같다. db가 더 쉽다.
- db 설계가 객체지향 설계 보다 쉽고 좋은 책들이 많다.
- 공부 순서 : db 모델링 설계 -> 객체지향 설계
- abc 모델링 예
- 인터넷 뱅킹 - 프로젝트
- 엔티티(=class ,db table) : 속성(iv)
- 개인: 이름, 주소, 나이
- 기업: 이름, 전번, 주소, 사업자번호
- 상품: 대출, 예금, 적금, 예금 번호
- 엔티티(=class ,db table) : 속성(iv)
- 개인과 기업 관계 없음
- 개인과 상품, 기업과 상품 관계 존재
- 인터넷 뱅킹 - 프로젝트
1.3. ER 모델(entity-Relationship Model)
- 개념 모델링을 구체화 한것
- 업무를 entity 간의 관계로 표현
- 업무를 개체(속성)와 관계(상속, 포함)라는 2가지 개념으로 표현하는 모델
- ER 모델 (Entitiy-Relationship Model) : 표현하고자하는 현실 세계의 업무를 개체, 관계라는 2가지 개념으로 표현하는 모델
- 개념 모델링 중 하나로 구체화 한 것
- 업무를 entity 간의 관계로 표현
- db table , class
ex) 고객, 상품 <- 업무를 이렇게 표현한다. 익숙해지기
- db table , class
- 논리 : entity
- 물리 : db table
1.4. ER 모델의 질적 특성
- 완전성: 업무를 빠짐 없이 표현
- 정확성: 속성 사용X, 부모-자식 관계 명확
- 최소성: 중복 금지
- 자명성: 이름 그대로 의미를 잘 들어내야한다.
- 확장성: 고객 교육을 잘 시켜야한다. 새로운 요구사항이 들어올 경우 잘 반영되도록 (ocp)
- 표현성: 주소1 -> 고객기본 주소, 주소2 -> 고객 상세 주소
- 가독성