https://opentutorials.org/course/3883/25270
개념적 모델링은 결코 쉬운 부분이 아닙니다.
현실의 '모델'의 개념을 뽑아 낼 수 있게 도와주는 '도구'가 있다. 바로 'ERD'입니다.
: ERD (Entity Relationship Diagram)
- 현실의 개념을 추출하는 '필터'
- 개념에 대해서 대화할 수 있게 해주는 '언어'
관계형 데이터 모델링 으로는 아랫 쪽 같이 데이터를 나누는 것이 좋습니다.
( 우선, 큰 틀의 흐름으로 파악 해봅시다.)
어떻게든 데이터 모델링을 하여 표로 표현 할 수 있을 것입니다..(거대 단일 테이블로써)
이는 큰 문제가 발생할 수 있습니다.
예를 들어 어마어마하게 많은 데이터를 갖고 있으면, '중복되는 컬럼에 중복되는 내용'들이 많아 질 수 있습니다.
그렇게되면, '조회 및 편집'에 대해 많은 리소스를 사용하게 됩니다.
- 이는 곧 시간적, 금전적 자원을 많이 사용하게 됩니다.
또한, 중복된 자원을 편집하다 보면, 실수가 생길 수 있습니다.
'주제'에 따라서 테이블(모델)을 쪼개는 방법이있습니다.
이렇게 '주제'로서 모델을 나누어 작성하게 된다면,
- 첫 번째. 주제에 따라 그룹 지을 수 있습니다.
- 두 번째. 조회 할 시, 필요한 자료만 조회 할 수 있으므로 많은 리소스를 아낄 수 있습니다. ( 편집 역시.)
- 세 번째. JOIN을 할 수 있습니다!
여기서 나오는 주제, 개념은 객체 'Entity' (=table)이라 합니다.
ex) '댓글', '글', '저자'..
이 '객체와 객체 사이'에 '관계 Relation'(PK, FK)가 있으며, - 이를 통해 Join 합니다.
ex) 소속, 쓰다
이 주제를 구성하고 있는 요소들을 '속성' 'Attribute' (= column)이라 합니다.
ex) 글 - ID / 제목 / 본문 / 생성일 / ...
## 엔티티 Entity
모델링을 할 시, 가장 먼저 엔티티를 구분 지어야한다.
팁으로는 '쓰기'(update)화면을 참조하게 되면 엔티티를 찾는데 도움이 된다.
## 식별자 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역시 표현 가능
'Dev Note > DB, MY-SQL' 카테고리의 다른 글
#01. 데이터 모델링 - 업무파악 (0) | 2020.05.31 |
---|---|
#00. 데이터 모델링의 순서 (0) | 2020.05.31 |
참고 글. 퍼옴) JDBC, Connection, ConnectionPool, Datasource, JdbcTemplate이란 ? (0) | 2018.09.28 |