본문 바로가기
공부/MySQL

관계형 데이터 모델링 (1)

by 드인 2020. 2. 27.

1) 데이터 모델링의 순서

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

 

2) 업무파악

기획서

https://ovenapp.io/view/EuTjedDvHdhBQLoxthGrqvBlGp1jBJj6/XDCP1

 

저자참여 (3 of 3)

관계형 데이터 모델링

ovenapp.io

ovenapp

 

3) 개념적 데이터 모델링 

(1) 개념적 데이터 모델링 소개

- 파악한 업무에서 개념을 뽑아내는 과정

- 현실에서 개념을 추출하는 일종의 필터 제공

- 개념에 대해 다른 사람과 소통할 수 있는 언어

=> 이 목적을 이루게 해주는 도구 : Entity Relationship Diagram

- 3개의 관점 : 정보, 그룹, 관계

- eid는 매우 쉽게 표로 전환 가능

 

(2) 관계형 데이터베이스 다운 개념의 구조

- RDB는 내포관계를 허용하지 않음

 

(3) ERD의 구성요소

-글 : 본문, 제목, 생성일 (글의 속성) -> 표의 column

- 작가 - (쓰다) - 글 - (소속) - 댓글 - (쓰다) - 저자 => Relation (PK[기본키], FK[외래키] JOIN)

- Entity => Table

- Attribute => Column

- Relation => PK, FK

- Tuple => Row

 

(4) 엔티티 정의

- UI ~ Database (원인과 결과 관계)

- 가장 먼저 할 일 : 기획서에서 엔티티 찾아내기

- 연관된 데이터 그룹핑

- 엔티티 : 글, 댓글

 

(5) 속성 정의

- 저자는 속성이라기 보다 관계를 통해서

- ERD에서 속성은 원을 사용

- 저자 엔티티에 추가

 

- 글의 속성 : 제목, 작성일, 본문

- 같은 엔티티의 속성이라는 것을 알리기 위해 선으로 연결

- [글] - (제목, 작성일, 본문)

 

- 저자의 속성 : 이름, 자기소개, 가입일

- [저자] - (이름, 자기소개, 가입일)

 

- 댓글의 속성 : 작성일, 본문

- [댓글] - (작성일, 본문)

 

(6) 식별자 지정

- 식별자 : 원하는 대상을 정확하게 타겟팅, 행(튜플)을 식별

- 식별자는 그 대상을 제외한 누구도 같은 값을 가지면 안됨

- 식별자 => 기본키(PK)

- 후보키(candidate) : 식별자가 될 수 있는 키

- 후보키 = 기본키 + 대체키(alternate key)들

- 중복키 : 두 개의 키을 통해 식별

 

- 글 : 식별자가 될 수 있는 속성이 없음 => 대리키(인조키) 만듬 -> 글 아이디 속성 추가

                                                                                        식별자

- 댓글 : 식별자가 될 수 있는 속성 없음 => 댓글 아이디 속성 추가

- 저자 : 저자 아이디 속성 추가

 

(7) 엔티티간의 연결

- 외래키 : 외래에 있는 테이블과 연결할 때 쓰는 키 ex) 저자 아이디

- 관계는 마름모로 표현

- 관계 : 작성, 소속

- [글] - <작성> - [저자] - <작성> - [댓글] - <소속> - [글]

 

(8) Cardinality

- 기수

- 각 선생님은 한 반(1)만 담임한다 - 각 반의 담임(1)은 한명이다 (일대일 관계) [ ]--[ ]

- 각 저자는 여러 글(N)을 작성한다 < 각 댓글은 하나의 저자(1)만 존재 (일대다 관계) [ ]--<-[ ]

- 각 저자는 여러 글을 작성한다 >< 각 글은 여러 저자(N)가 존재 (다대다 관계) [ ]->--<-[ ]

 

(9) Optionality

- 저자와 댓글 관계

- 저자는 댓글을 작성하지 않을 수도 있다(=저자에게 댓글은 Optional) [ ]---o-[ ]

- 각 댓글은 반드시 저자가 있다(=댓글에게 저자는 Mandatory) [ ]-l--o-[ ]

- 저자와 댓글은 1대 N관계 [ ]-l--0<-[ ]

 

(10) ERD 완성

- 엔티티와 관계의 관계

 

(11) Entity Relationship Diagram Helper

erd.yah.ac

 

'공부 > MySQL' 카테고리의 다른 글

관계형 데이터 모델링 (3)  (0) 2020.03.02
관계형 데이터 모델링 (2)  (0) 2020.03.02
SQL join  (0) 2020.02.26
DATABASE2-MySQL(4)  (0) 2019.07.31
DATABASE2-MySQL(3)  (0) 2019.07.31