티스토리 뷰



위와 같은 릴레이션들이 있다.

Reserves의 sid는 외래키이며 Sailors의 sid(기본키)를 참조한다.

또한 Reserves의 또다른 외래키 bid는 Boats의 bid(기본키)를 참조한다. 따라서 선원과 보트의 관계는 M:N관계인것을 알 수 있다.




Q1. 배 103을 예약한 뱃사람의 이름을 구하시오.


오른쪽과 같은 3가지 답이 가능하지만 솔루션 1번이 가장 최적화된 관계대수이다.

2번은 I/O코스트가 매우 크다.











Q2. 적색 배를 예약한 뱃사람의 이름을 구하시오.


아래 관계대수식이 좀더 최적화된 식이다.














Q5. 적색 배나 녹색 배를 예약한 뱃사람의 이름을 구하시오.


이 질의의 결과로 Dustin,Horatio,Lubber라는 이름을 얻게 된다.












Q6. 적색 배와 녹색 배를 예약한 뱃사람의 이름을 구하시오.
















Q3.Lubber가 예약한 배의 색을 구하시오.

















Q4. 적어도 한 척의 배를 예약한 뱃사람의 이름을 구하시오.

Sailros와Reserves를 자연조인한다음, 프로젝션(sname)


-> 질의의 결과로 Dustin, Horatio, Lubber 를 얻게 된다.

Sailros테이블에 보면 Horatio라는 동명이인이 존재한다.

결과 릴레이션에는 중복을 제거 한 상태로 보여주기 때문에 Horatio는 딱 한번만 나타날 것이다.


Q7.적어도 두 척의 배를 예약한 뱃사람의 이름을 구하시오.


나이가 20세를 초과하고 적색 배를 예약하지 않은 뱃사람들의 sid를 구하시오.

프로젝션sid(Sailors 에서 age>20인 튜플들을 셀렉션 한 결과) - 

프로젝션sid((Boats에서 color가 red인 튜플을 셀렉션한 결과) 자연조인 (Reserves) 자연조인 (Sailors))




댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함