[Modeling] 데이터모델링

seokki kwon·2022년 9월 11일
0

modeling

목록 보기
1/1

데이터모델링 순서 및 흐름

업무파악
ㅤ🔻
개념적 데이터 모델링
ㅤ🔻
논리적 데이터 모델링
ㅤ🔻
물리적 데이터 모델링

개념적 데이터 모델링
실제 계획한 웹 또는 앱의 기능들을 정의하고 ERD 로 표현하는 작업

논리적 데이터 모델링
실제 작성한 ERD 를 기반으로 테이블에 대한 정보들을 관계도로 나타냄

물리적 데이터 모델링
사용할 데이터베이스 선정 및
논리적 데이터 모델링 에서 작성한 ERD 관계도를 바탕으로
실제 SQL 문을 작성하고 실제 데이터베이스를 정의함

업무파악

해결하려고 하는 현실세계의 문제를 컴퓨터를 이용하여 문제를 해결하는 과정

기획서 작성

https://ovenapp.io
ovenapp 을 이용해서 프로젝트를 진행전 프로토타입을 만들어보자
항상 기획에 있어서 당사자들과 의논을 통하여
기획에 대한 이해관계를 동기화 하는것이 중요하다

개념적 데이터 모델링 시작

파악한 업무에서 개념을 뽑아내는 과정인 개념적 데이터 모델링 을 해보자
개념적 데이터 모델링 을 잘한다면 논리적, 물리적 모델링이 용이해진다.

ERD(Entity Relationship Diagram)

현실은 생각보다 훨씬 복잡한 관게로 이루어져 있다
그러한 현실세계의 관계를 개념적으로 뽑아내는것은 쉽지않다
그러한 관계를 뽑아내서 단순한 관점으로 바라보게 해주는것이 ERD

ERD는 현실을 3개의 관점으로 바라볼 수 있게 해준다

1.정보
2.그룹
3.관계

3가지의 관점으로 바라볼 수 있게 해주는것이 ERD(Entity Relationship Diagram) 또한 ERD를 기반으로 매우 쉽게 표로 전환이 가능하다.

RDB에 적합한 방법


글 -> 댓글 -> 저자 가 존재하고
글 -> 저자 가 존재한다
이렇게 봤을때 댓글,글,저자 라는 요소로 나누는것이
관계형데이터베이스 에 적합하다고 한다 왜그런것일까?

우선 기본적으로 RDB는 내포관계를 허용하지 않기에 첫번째 표의경우는
해당하는 방법이 아니라고 할 수 있다.

테이블과 테이블을 이어서 보여지는 거대단일 테이블 방식은
앱의 규모가 커지거나 서비스가 커질때 컬럼의 수가 많아지고 번잡해질 수 있다

사진의 3번째 아래의 방법은 글, 저자, 댓글 이라는 3개의 테이블로 나누고
저자아이디 라는 값을 참조하여 글, 댓글 이라는 테이블에서
저자 테이블의 정보를 가져올 수 있다

가져와서 합성하는 방법은 JOIN 이라는 메커니즘을 이용한다.

ERD의 구성요소

위에서 나눈 댓글, 글, 저자 는 Entity 라고도 하며 후에는 table로 전환이 될것이다.


의문점🤔
글 이라는 Entity 에는 제목,본문,생성일 이라는 컬럼이 있다 그러면
왜 저자라는 Entity 의 정보는 글이라는 Entity에 들어가지 않을까?

저자 라는 정보는 글, 댓글 등 여러가지 테이블에 쓰이는 정보이기에 나눠준다.

Entity 관계


저자, 글, 댓글 등의 관계를 나중에는 PK,FK 등으로 사용하고
JOIN을 이용하여 테이블을 연결하게 될것이다.


후에는 강의에서 나타내는 Entity, Attribute, Realation, Tuple 등이 실제로 정의를 할때는 저러한 용어로 쓰이게 될것이다.

profile
웹 & 앱개발 기록

0개의 댓글