일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- softeer
- 백준
- 정보처리산업기사
- 코딩봉사
- python
- 코딩교육봉사
- 공부일지
- 프로그래머스
- CJ UNIT
- 스프링
- programmers
- C++
- 파이썬
- MYSQL
- 알고리즘
- 백준 알고리즘
- SQL
- 소프티어
- SW봉사
- 자바
- 백준알고리즘
- 시나공
- 데이터베이스
- BFS
- java
- 문제풀이
- 회고
- 1과목
- kotlin
- 코틀린
- Today
- Total
JIE0025
[데이터모델링] ER 모델 , 관계 데이터 모델로 사상 본문
완성된 ER모델이 실제 DB로 구축되기 위하여
논리적 모델링 단계를 거치는데 , 이단계에서 사상(mapping)이 이루어진다.
사상 알고리즘 단계
단계 | 사상할 대상 | 구분 |
1단계 | 개체 타입 | 강한 개체 타입 |
2단계 | 약한 개체 타입 | |
3단계 | 관계 타입 | 이진 1:1 관계 타입 |
4단계 | 이진 1:N 관계 타입 | |
5단계 | 이진 N:M 관계 타입 | |
6단계 | 속성 | N진 관계 타입 |
7단계 | 다중값 속성 |
사상 방법의 종류
밑줄 : 기본키
기울은 글꼴 : 참조, 외래키(?)
방법 1
오른쪽 개체 타입을 기준으로 관계 R표현
E1 ( KA2, A2 ) E2 ( KA2, A4, KA1 ) |
방법 2
왼쪽 개체 타입을 기준으로 관계 R표현
E1 ( KA1, A2, KA2 ) E2 ( KA2, A4 ) |
방법 3
단일 릴레이션 ER로 통합, 관계 R표현
ER ( KA1, A2, KA2, A4 ) |
방법 4
개체 E1, E2 와 관계 타입 R을 모두 독립된 릴레이션으로 표현
E1 ( KA1, A2 ) R (KA!, KA2) E2 ( KA2, A4 ) |
1. 개체 타입의 사상
1단계
강한 개체 타입 (정규 개체 타입 E)
- 사원 개체 타입에 대응하는 릴레이션 사원을 생성한 후 속성들을 표현한다.
- 기본키와 외래키는 PK, FK로 표시
사원( 사번 , 이름 )
2단계
약한 개체 타입
자신의 키와 함께, 강한 개체 타입의 키를 외래키로 사상해 자신의 기본키를 구성
가족 ( 사번(FK), 이름 , 출생일 )
가족 개체는 사원 개체에 종속된 약한 개체 타입이다.
사원 개체 타입의 키인 사번 속성을 외래키(FK)로 포함한다.
2. 관계 타입의 사상
3단계
이진 1:1 관계 타입
- 개체가 가진 정보 유형에 따라 판단
- 외래키에 NULL이 덜 발생하는 방법을 사용하면 된다.
- 방법 1~4 , 어떤것으로도 사상해도 된다.
4단계
이진 1:N 관계 타입
- N의 위치에 따라 방법1, 방법2 유형으로 사상
아래 예시를 보면
>> N이 오른쪽에 있으므로,
오른쪽에 위치한 학생 릴레이션에 <학과 릴레이션 학과코드>를 외래키로 사용
- 반대로 학과 릴레이션에 학생 릴레이션 학번을 저장하는 것은 불가능
학과 ( 학과코드, 학과명 )
학생 ( 학번, 이름, 학과코드(FK) )
5단계
이진 M:N 관계 타입
6단계
N진 관계 타입
5단계
이진 M:N 관계 타입
- 방법 4 로 사상된다. (방법 4는 개체1, 개체2, 관계를 다 분류하는것)
즉 교수, 과목을 분류하고, R(관계)에는 두 개체의 키를 속성으로 만들면 된다.
교수 ( 사번, 이름 )
과목 ( 과목코드, 과목명 )
수업 ( 사번, 과목코드 )
6단계
N진 관계 타입
차수가 3 이상인 다진 관계 타입일 때,
방법 4로 사상
강좌 ( 강좌코드, 과목명 )
학생 ( 학번, 학과 )
강의실 ( 호실, 위치 )
수강 ( 학번, 강좌코드, 호실 )
3. 다중값 속성의 사상
7단계
다중값 속성
속성의 개수를 알 수 없을 때 방법 1
속성의 개수가 제한적으로 정해질 때 방법2
취미는 다중값 속성이고 속성의 개수를 알 수 없으므로
방법 1 을 사용해야 한다.
학생( 학번, 이름)
취미 ( 학번, 취미이름 )
'백엔드 > 데이터베이스' 카테고리의 다른 글
[DB] 트랜잭션(Transaction) 개념, 예제 (0) | 2022.10.13 |
---|---|
[데이터 모델링] 모델링 예제 (ER다이어그램,관계 데이터 모델) (2) | 2021.06.06 |
[데이터모델링] E-R 다이어그램 - web에서 그리기 (2) | 2021.06.05 |
[데이터모델링] ER모델 개념, IE표기법 (0) | 2021.06.05 |
[MySQL] 제약조건 (0) | 2021.06.04 |