일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Sentiment Analysis
- Binary notation
- Gate
- GPT-1
- 항진명제
- half adder
- 명제
- statement equivalence
- cnn
- Digital Logic Circuits
- 모두의네트워크요약
- truth table
- 명제 동치
- full adder
- ermodel
- Circuit
- relationaldatabaseschema
- Logical statement
- 써킷
- 모두의네트워크
- 이진법 십진법 변환
- 진리표
- CNF
- 모순명제
- dnf
- 십진법
- Decimal notation
- Tautology
- Contradiction
- 모두의네트워크정리
- Today
- Total
NLP Learner in Switzerland
Relational Algebra(RA), Domain Relational Calculus(DRC) 쿼리 예제 본문
Relational Algebra(RA), Domain Relational Calculus(DRC) 쿼리 예제
초코빵 2021. 4. 23. 10:00
RA 및 DRC 쿼리 예제
[답]
RA
1. π name(desert)
2. π area(σ name='Madagascar'(island))
3. π countryname, name(ρ countryname←name, country←code(country)⨝language)
4. π mountain(geoMountain⨝(π country(ρ country←code(country))\π country(geoSea))}
5. (ρ country2←country(π country(economy))) \ π country2(ρ country1←country,GDP1←GDP(π country,GDP (economy))⨝GDP1<GDP2(ρ country2←country,GDP2←GDP(π country,GDP (economy))))
* 하 진짜 개복잡하다 ㅡㅡ
* 일단 max, min같은게 나오면 두개의 비교가 무조건 들어가기 때문에 같은 relation을 두번 불러오게 된다.
* 각각의 economy1, 2 relation에서 country와 GDP 컬럼을 가져와서 축소시키는 것까지는 동일
* 그 이후 각각 불러온 컬럼들의 이름을 따로 명명해준다 country1,2 gdp1,2 그래야 비교할 수 있으니깐
* GDP1<GDP2로 GDP가 더 큰 애들을 찾아내고, 이 애들을 전체에서 빼준다(\)
* e.g. 아래와 같은 Economy relation에서 \역슬래시 앞은 A,B,C 전체가 나오고, 역슬래시 뒤에는 B,C만 나오므로 빼주면 가장 작은 A만 남는다.
Economy | |
국가 | GDP |
A | 100 |
B | 200 |
C | 300 |
6. π countryname((ρ country←code, countryname←name(country) ⨝ethnicGroup)÷π name(ethnicGroup))
* 이건 3번을 풀어도 저 나누기만 빼고 다 맞는다... 맨날 왜 나누기가 생각이 안나냐
* RA에서 나누기는, 나눠지는 애를 전부 포함하는 결과값을 찾을 때 쓴다. 나눠지는 애를 최대한 커버하는 결과값을 내놓기 때문이다.
* 뭔말이냐면 e.g. 7÷3=2.xxx 이다. 여기서 2가 몫인 이유는, 7은 3을 2번 최대한 커버할 수 있기 때문이다. 동일하게,
* π name(ethnicGroup))는 전체 ethnicGroup 리스트가 도출되는데, 이 전체 ethnicGroup 리스트를 커버하는 국가를 찾아내는 것이다.
DRC
1. {<n>|∃a,c(<n,a,c>∈desert)}
2. {<a>|∃i,h,t,c(<'Madagascar',i,a,h,t,c>∈island)}
3. {<n1,n2>|∃p(<c,n1,p>∈language∧∃c,ca,pr,a,po(<c,n2,ca,pr,a,po>∈country))}
4. {<m>|∃c,p1(<m,c,p1>∈geoMountain∧¬∃s,p2(<s,c,p2>∈geoSea))}
5. {<c1>|∃g1,a1,s1,i1,if1(<c1,g1,a1,s1,i1,if1>∈economy∧ ∀c2,g2,a2,s2,i2,if2(<c2,g2,a2,s2,i2,if2>∈economy ⇒g1≤g2))}
* 'GDP1(g1)이 GDP2(g2)보다 작음'을 만족하는 모든 경우에서 true인 c1을 찾는다.
6. {<n>|∃c,ca,pr,a,po(<c,n,ca,pr,a,po>∈country∧ ∀c1,e,p1(<c1,e,p1>∈ethnicGroup⇒∃p2(<c,e,p2>∈ethnicGroup)))}
* 아무리 생각해도 왜 답이 이건지 진심 모르겠음. 주변에 물어보는 중...
'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.22 |
ER model을 Relational Database schema로 변환하기 예제 (0) | 2021.04.21 |