일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 모두의네트워크요약
- Gate
- 십진법
- 이진법 십진법 변환
- Sentiment Analysis
- Binary notation
- dnf
- half adder
- Circuit
- GPT-1
- 모두의네트워크정리
- 모순명제
- ermodel
- relationaldatabaseschema
- CNF
- 명제 동치
- 항진명제
- full adder
- Digital Logic Circuits
- truth table
- statement equivalence
- 써킷
- 진리표
- 명제
- cnn
- 모두의네트워크
- Decimal notation
- Contradiction
- Tautology
- Logical statement
- Today
- Total
NLP Learner in Switzerland
ER model을 Relational Database schema로 변환하기 예제 본문
[풀이 방법] (주의할 부분 : 빨간색)
1. Entity 변환
- 모든 entity는 각각 relation으로 변환한다.
- key attribute가 primary key가 된다.
2. Relationship 변환
- 모든 relationship은 각각 relation으로 변환한다.
- 연결된 entity의 key가 primary key가 된다.
- 그런데 entity가 양쪽으로 두개가 연결되어 있기 때문에 primary key는 multiplicity를 보고 판단한다.
(1) N:M인 경우 : 양쪽 entity의 key를 모두 포함
(2) 1:N 또는 N:1인 경우 : N쪽 entity의 key값을 선택
(3) 1:1 : 두가지 entity의 key중 아무거나 하나 선택
*** 1인 쪽 entity의 primary key도 attribute로 가지기는 한다. 다만 primary key가 아닐 뿐이다.
3. 전체 schema를 최대한 simplify
- 1,2를 수행한 후 같은 key가 있는 relation이 발견되면 병합한다.
- 결론적으로 N:M이 아닌 이상 relationship은 연결된 entity로 만든 relation에 합쳐지게 된다.
[답]
1. Entity 변환
a(v1,v2)
b(v1,v3) FOREIGN KEY (v1) REFERENCES a(v1)
c(v1,v4) FOREIGN KEY (v1) REFERENCES a(v1)
* b와 c entity는 a의 generalization이므로 a의 key를 받아온다.
d(v5,v6)
e(v1,v8, v9) FOREIGN KEY (v1) REFERENCES a(v1)
* e는 weak entity이므로 strong entity b의 key를 받아온다.
f(v10,v11,v12)
2. Relationship 변환
r1(v1,v5,v7) FOREIGN KEY (v1) REFERENCES c(v1),
FOREIGN KEY (v5) REFERENCES d(v5)
* r1의 multiplicity는 N:M이므로 양쪽 entity의 key를 모두 가져온다.
r2(v1,v8) FOREIGN KEY (v1) REFERENCES b(v1),
FOREIGN KEY (v8) REFERENCES e(v8)
r3(v1,v5,v8,v10) FOREIGN KEY (v1, v8 REFERENCES e(v1, v8),
FOREIGN KEY (v5) REFERENCES d(v5),
FOREIGN KEY (v10) REFERENCES f(v10)
* v10은 1쪽 entity의 key이므로 primary key가 될 수 없다.
3. 전체 schema를 최대한 simplify
r2(v1,v8)는 e(v1,v8,v9)와 같은 키를 가진다.
따라서 r2 relationship은 e entity에 합쳐져서 e(v1,v8,v9)만 남는다.
'Database SQL > Exercise' 카테고리의 다른 글
Advanced SQL query 구현 예제 (0) | 2021.04.26 |
---|---|
SQL query 구현 예제 (0) | 2021.04.25 |
SQL query 이해 예제 (2) | 2021.04.24 |
Relational Algebra(RA), Domain Relational Calculus(DRC) 쿼리 예제 (0) | 2021.04.23 |
Relational Algebra(RA), Domain Relational Calculus(DRC) 이해 예제 (0) | 2021.04.22 |