본문 바로가기

#02. 데이터 모델링 - 개념적 데이터 모델링

https://opentutorials.org/course/3883/25270

 

개념적 데이터 모델링 1 - 생활코딩

수업소개 개념적 데이터 모델링과 Entity Relationship Diagram이 무엇인지 소개합니다.  강의1 강의2 강의3 강의4

opentutorials.org

개념적 모델링은 결코 쉬운 부분이 아닙니다.

 

현실의 '모델'의 개념을 뽑아 낼 수 있게 도와주는 '도구'가 있다. 바로 'ERD'입니다.

 

: ERD (Entity Relationship Diagram)

  - 현실의 개념을 추출하는 '필터'

  - 개념에 대해서 대화할 수 있게 해주는 '언어'

관계형 데이터 모델링 으로는 아랫 쪽 같이 데이터를 나누는 것이 좋습니다.

( 우선, 큰 틀의 흐름으로 파악 해봅시다.) 

 

 

 

 

어떻게든 데이터 모델링을 하여 표로 표현 할 수 있을 것입니다..(거대 단일 테이블로써)  

이는 큰 문제가 발생할 수 있습니다.

 

 

예를 들어 어마어마하게 많은 데이터를 갖고 있으면, '중복되는 컬럼에 중복되는 내용'들이 많아 질 수 있습니다.

 

그렇게되면, '조회 및 편집'에 대해 많은 리소스를 사용하게 됩니다.

- 이는 곧 시간적, 금전적 자원을 많이 사용하게 됩니다.

또한, 중복된 자원을 편집하다 보면, 실수가 생길 수 있습니다.

 

'주제'에 따라서 테이블(모델)을 쪼개는 방법이있습니다.

 

 

 

 

이렇게 '주제'로서 모델을 나누어 작성하게 된다면, 

    - 첫 번째. 주제에 따라 그룹 지을 수 있습니다. 

    - 두 번째. 조회 할 시, 필요한 자료만 조회 할 수 있으므로 많은 리소스를 아낄 수 있습니다. ( 편집 역시.)

    - 세 번째. JOIN을 할 수 있습니다! 

 

 

 

여기서 나오는 주제, 개념은 객체 'Entity' (=table)이라 합니다.

ex) '댓글', '글', '저자'..

 

이 '객체와 객체 사이'에 '관계 Relation'(PK, FK)가 있으며, - 이를 통해 Join 합니다. 

ex) 소속, 쓰다

 

이 주제를 구성하고 있는 요소들을 '속성' 'Attribute' (= column)이라 합니다.

ex) 글 - ID / 제목 / 본문 / 생성일 / ...

 

 

 

## 엔티티 Entity

 

모델링을 할 시, 가장 먼저 엔티티를 구분 지어야한다. 

팁으로는 '쓰기'(update)화면을 참조하게 되면 엔티티를 찾는데 도움이 된다.

 

 

ERD tool : draw.io

 

 

## 식별자 Identifier

식별자를 지정하는 이유는?

대상에 대해 정확히 타겟팅을 하기 위해서다.

 

그럴려면?! 

주민등록번호와 같이 그 대상은 유일한값을 가지고 있어야 한다. 

 

이 식별자는 훗날, PK, 즉 기본키가 될 것입니다. 

 

 

### id 종류 

 

기본키 Primary Key (PK)

대체키 alternate key

후보키 candidate key

중복키 ( n:m) - composite Key

## 관계 Relation ship

 

'PK' <-> 'FK' 를 연결하여 관계를 갖습니다.

 

 

## Cardinality / Optionality

 

### Cardinality : 기수... 

 

1:1

1:n

 

 

n:m

### Optionality 옵션, 선택

optionality (옵션) : 동그라미로 표시

<-> Mandatory (필수) : 작대기로 표시

 

물론, Cadinality역시 표현 가능