일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- r
- 수학
- 다이나믹 프로그래밍
- 우선순위 큐
- 삼성SW역량테스트
- 시뮬레이션
- JavaScript
- 그리디
- 삼성 SW 역량테스트
- Air Table
- ICPC
- 고속 푸리에 변환
- 컴퓨터 구조
- 백준 1753번
- Cloud Pub/Sub
- 다익스트라
- Cloud Run
- dp
- BFS
- 데이터 분석
- 이분탐색
- 접미사 배열
- Bit
- REACT
- CI/CD
- 펜윅 트리
- 생활코딩
- jpa
- 종만북
- LCS
- Today
- Total
코딩스토리
ER Model 그리기 본문
ER Model은 예시를 보면 쉽게 이해가 가능하다.
(예시를 위한 ER Model을 만들다 보니 약간? 의 억지가 있을 수 있으나 양해 바랍니다..)
위의 예시로 먼저 기본적인 ER Model을 파헤쳐보자.
먼저 Student란 Entity가 존재한다.
Entity는 사각형으로 표시한다.
Student Entity는 두 개의 키를 가지고 있다.
키에는 일반적인 Attribute들과 다르게 밑줄을 쳐서 구분한다.
이때 Registration을 보면 또다시 두 개의 Attr을 가지고 있다.
이는 우리가 앞서 공부했던 Composite key, 즉 복합 키를 의미한다.
다음으로 두 개의 동그라미로 표현되고 있는 Attr을 찾아볼 수 있다.
이는 Set Value를 표현한 것이다.
즉 복수전공처럼 다전공자들이 있을 수 있기 때문에 Set Value를 가지게 되고, 위처럼 표현하게 된 것이다.
이제 만약 Subject란 Entity가 있다고 가정해보자. (예시를 위해 최대한 간단하게 만들었다.)
이때 Student와 Subject 두 Entity는 Sign in(참여)이라는 관계(Relation)를 가진다.
이때 궁금증이 들 수 있다.
학생은 여러 과목에 참여할 수 있지 않은가?
또한 한 과목은 여러 학생을 포함할 수 있지 않은가?
맞다. 이렇게 관계(Relation)에 참여할 수 있는 개체의 수를 설명해주는 것을 Cardinality Ratios라고 한다.
Cardinality Ratio는 1 : N , N : N, N : 1로 표현할 수 있으며
해석할 때에는 상대방 숫자를 읽어서 해석한다!
즉 만약 A <-> B가 1 : N 관계를 가지고 있다면 A는 N개의 B를 가질 수 있으며 B는 1개의 A를 가질 수 있다는 것이다.
이제 다음으로 Participation Constraints(참여 제약조건)에 대해 알아보자.
만약 학생이 반드시 한 과목 이상을 들어야 한다면? (실제로도 등록하려면 그래야 되는 걸로 알고 있는데 맞겠지요?)
위와 같이 두 줄로 표현한다.
즉 관계에 반드시 참여해야 한다면 TOTAL Matching이라 하고 두 줄로 표현하고,
참여해도 되고 그렇지 않아도 된다면 PARTIAL Matching이라 하고 한 줄로 표현한다.
이때 해석은 자신을 기준으로 한다.
즉 Subject는 Sign in 관계에 참여하거나 안 해도 되고, Student는 반드시 참여해야 한다는 것이다.
다음으로 Weak Entity에 대해 알아보자.
해당 Entity에 key가 없다면 Weak Entity라고 하며 아래와 같이 두 줄로 나타낸다.
즉 Weak Entity와 관계를 모두 두 줄로 표현한다.
이때의 Entity 2는 Entity1, 즉 Weak Entitiy를 식별할 수 있게 만들어 주기 때문에 Owner Entity, Identifying Entity라고도 한다.
또한 Weak Entity는 Key가 없기 때문에 반드시 관계에 참여해야 하므로 TOTAL Mathcing으로 두 줄로 참여한다.
이렇게 기본적인 ER Model 그리는 방법에 대해 알아보았다. 🎶
'데이터베이스' 카테고리의 다른 글
SQL JOIN 쿼리 정리 (3) | 2021.11.28 |
---|---|
Basic SQL (0) | 2021.11.26 |
Relation Model Constraints (관계형 모델 제약조건) (0) | 2021.11.23 |
Access denied for user 'root'@'localhost' (using password: YES) (8) | 2021.11.17 |
QUICK DBD 사용 후기 (0) | 2021.10.12 |