제4장 관계 대수와 SQL - 연습문제 (29문제)
본 자료는 5페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
해당 자료는 5페이지 까지만 미리보기를 제공합니다.
5페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

제4장 관계 대수와 SQL - 연습문제 (29문제)에 대한 보고서 자료입니다.

본문내용

투플이, 릴레이션 S에는 M개의 투플이 들어 있다. 아래의 관계 연산자의 결과에 포함될 수 있는 최대 투플 수는?
(1) R ∪ S
- N+M
(2) R × S
- N X N
(3)σCOND (R) 조건(Cond)을 만족하는 튜플의 수
28. 아래의 네 릴레이션을 보고 다음 질의들을 SQL로 표현하라.
STUDENT(SID, SNAME, STARTYEAR, DID)
샘플 투플: (3430028, ‘조민수’, 2005, 10)
DEPARTMENT(DID, DNAME, PHONE)
샘플 투플: (10, ‘컴퓨터학과’, ‘2210-9999’)
PROFESSOR(PNAME, DID, BUILDING, OFFICE, EMAIL)
샘플 투플: (‘안명석’, 10, ‘IT관’, 6315, ‘msahn@uos.ac.kr\')
EXAM(SID, CID, PROFESSOR, GRADE)
샘플 투플: (3430028, ‘COMP-321\', \' 안명석’, ‘A0\')
(1) 2005년에 컴퓨터학과에 입학한 모든 학생들에 대해서 학번과 이름을 검색하라. 학생의 이름의 오름차순으로 결과가 나타나야 한다.
SELECTSID, SNAME,
FROMSTUDENT,
WHERESTARTYEAR=2005,
ORDER BY SNAME;
(2) 과목 ‘COMP-321\' 과 ’COMP-234\'에 대해서 시험을 실시한 교수들의 이름을 검색하라.
SELECTP.PNAME,
FROMPROFESSOR AS P, EXAM AS E,
WHEREP.PNAME=E.PROFESSOR AND (E.CID=\'COMP-321\' OR E.CID=\'COMP=234\');
(3) 오직 한 과목에 대해서만 시험을 치른 학생(즉, 릴레이션 EXAM에 한 개의 투플만 들어 있는 학생)들의 학번을 검색하라.
SELECTSID
FROMExam
group by sid
having count(*) =1;
(4) 적어도 두 과목의 시험을 실시한 교수들의 이름을 검색하라. 결과에서 중복이 제거되도록 하라.
SELECT DISTINCT PROFESSOR
FROM exam
group by professor
having count(*) > 1;
아래의 5), 6), 7) 문제에 대하여 아래의 테이블과 튜플들을 삽입한 후에...질의를 실행시켜 볼 것.
create table exam
(sid integer,
cid char(5),
grade char(5)
);
insert into exam values (2001, \'c10\', \'A0\');
insert into exam values (2001, \'c11\', \'B0\');
insert into exam values (2001, \'c12\', \'A0\');
insert into exam values (2002, \'c10\', \'C0\');
insert into exam values (2002, \'d5\', \'A0\');
insert into exam values (2002, \'d6\', \'A+\');
insert into exam values (2003, \'e1\', \'A0\');
insert into exam values (2003, \'e2\', \'A0\');
insert into exam values (2003, \'e3\', \'A0\');
(5) 적어도 한 시험의 성적이 ‘A0\'인 학생들의 학번을 검색하라. 결과에서 중복이 제거되도록 하라.
select sid
from exam
where grade = \'a0\'
group by sid
having COUNT(cid) >= 1
또는
select distinct sid
from foo as f
WHERE
(SELECT count(DISTINCT cid) FROM foo WHERE sid = f.sid AND grade=\'A0\') >= 1
(6) 적어도 두 시험의 성적이 ‘A0\'인 학생들의 학번을 검색하라.
select sid
from exam
where grade = \'a0\'
group by sid
having COUNT(cid) >= 2
또는
select distinct sid
from foo as f
WHERE
(SELECT count(DISTINCT cid) FROM foo WHERE sid = f.sid AND grade=\'A0\') >= 2
(7) 모든 시험의 성적이 ‘A0\' 인 학생들의 학번을 검색하라.
select distinct sid
from exam as f
WHERE
(SELECT count(DISTINCT cid) FROM exam WHERE sid = f.sid AND grade=\'A0\')
=
(SELECT count(DISTINCT cid) FROM exam WHERE sid = f.sid);
앞에 것은 이 학생이 A0 받은 과목의 수 이고
뒤에 것은 이 학생이 들은 과목의 수이므로 그들이 같으면 다 A0를 받은 것이 된다.
(8) 각 과목의 평균 성적을 검색하라.
grade가 평점이 아닌 점수라면 아래의 질의가 맞지만..현재 평점(A0...)형태이므로 평균을 구할 수 없다.
select avg(grade)
from exam
gooup by cid
A
B
C
1
2
3
1
1
2
2
2
2
3
2
1
29. 아래의 두 릴레이션 R과 S를 보고 물음에 답하라.
D
B
C
1
2
3
2
1
2
3
1
2
R S
(1)ΠA,B(σC < D(R) ▷◁ (σC = 2 v D= 3(S))
V는 or을 의미함.
(σC = 2 v D= 3(S) 의 결과
2 1 2
3 1 2
σC < D(R) 결과
1 1 2
2 2 2
3 2 1
σC < D(R) ▷◁ (σC = 2 v D= 3(S) 결과
1 1 2 2
1 1 2 3
ΠA,B(σC < D(R) ▷◁ (σC = 2 v D= 3(S)) 결과
1 1
(2) R =▷◁ S
A
B
C
D
1
2
3
1
1
1
2
2
1
1
2
3
2
2
2
^
3
2
1
^
31. 변수 X, Y, Z가 아래와 같은 값을 각각 가질 때 논리식의 결과를 채우라. T는 true, F는 false, U는 unknown을 의미한다.
X
Y
Z
(X AND Y) OR (NOT Z)
U
T
T
U
U
F
F
T
U
F
T
F
U
T
U
U
U
U
U
U
  • 가격8,400
  • 페이지수15페이지
  • 등록일2012.12.11
  • 저작시기2008.3
  • 파일형식한글(hwp)
  • 자료번호#825405
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니