본문 바로가기

정보기술의 샘터........о♡/시스템분석&디자인

관계연산, SQL Query, ER-WIN(논리모델)

1. 관계 데이터베이스에서 아래의 sample table을 참조하여 합집합, 교집합, 차집합, 카티션프로덕트, 실렉트, 프로젝트, 조인, 디비젼의 예를 만들고 답을 쓰시오. (예: S1과 S2의 합집합, A와 B의 디비젼에 대한 결과)

sample table S1

sid

sname

rating

age

22

Dustin

7

45.0

31

Lubber

8

55.5

58

Rusty

10

35.0

sample table S2

sid

sname

rating

age

28

yuppy

9

35.0

31

Lubber

8

55.5

44

guppy

5

35.0

58

Rusty

10

35.0

sample table R1

sid

bid

day

22

101

10/10/96

58

103

11/12/96

sample table A, B

sno

pno

s1

p1

s1

p2

s1

p3

s1

p4

s2

p1

s2

p2

s3

p2

s4

p2

s4

p4

pno

p1

p2

p4

합집합, 교집합, 차집합, 카티션프로덕트, 실렉트, 프로젝트, 조인, 디비젼

 

1. 합집합 (S1 ∪ S2)

 

sid

sname

rating

age

22

Dustin

7

45.0

31

Lubber

8

55.5

58

Rusty

10

35.0

28

yuppy

9

35.0

44

guppy

5

35.0

 

2. 교집합 (S1 ∩ S2)

sid

sname

rating

age

31

Lubber

8

55.5

58

Rusty

10

35.0

 

3. 차집합 (S1 - S2)

sid

sname

rating

age

22

Dustin

7

45.0

 

4. Cartesian Product(S1 x S2)

sid

sname

rating

age

sid

sname

rating

age

22

Dustin

7

45.0

28

yuppy

9

35.0

22

Dustin

7

45.0

31

Lubber

8

55.5

22

Dustin

7

45.0

44

guppy

5

35.0

22

Dustin

7

45.0

58

Rusty

10

35.0

31

Lubber

8

55.5

28

yuppy

9

35.0

31

Lubber

8

55.5

31

Lubber

8

55.5

31

Lubber

8

55.5

44

guppy

5

35.0

31

Lubber

8

55.5

58

Rusty

10

35.0

58

Rusty

10

35.0

28

yuppy

9

35.0

58

Rusty

10

35.0

31

Lubber

8

55.5

58

Rusty

10

35.0

44

guppy

5

35.0

58

Rusty

10

35.0

58

Rusty

10

35.0

 

5. Select(∑age>=45.0(S1, S2))

- SQL:>select * from S1, S2 where age>=45.0;

sid

sname

rating

age

22

Dustin

7

45.0

31

Lubber

8

55.5

6. Project(∏sid,rating(S2))

-SQL:>select sid, rating from S2;

sid

rating

28

9

31

8

44

5

58

10

 

7. JOIN(S1∞R1)

-SQL:>select * from S1, R1 where S1.sid=R1.sid;

S1.sid

sname

rating

age

R1.sid

bid

day

22

Dustin

7

45.0

22

101

10/10/96

58

Rusty

10

35.0

58

103

11/12/96

 

8. DEVISION(A÷B)

sno

s1

 

9. SQL Query

* rating >9 이상이고 S1.sid=S2.sid 일 때 rating=11 값으로 수정..

-update S1

set rating=11

where rating>9 AND (select rating from S2 where rating>9)>9

AND sid IN (select sid from S2);

 

ER-WIN

1. 어떤 대학의 데이터베이스는 교수들(ssn으로 식별)과 과목(courseid로 식별)에 대한 정보를 포함한다. 교수는 과목을 강의한다. 다음의 각 상황이 Teaches 관계 집합과 관계된다. 각 상황에 대하여, (더 이상의 제약조건들은 없다고 가정하고) 그것을 기술하는 ER 다이어그램을 작성하시오.


1) 교수는 같은 과목을 여러 학기에 걸쳐 강의할 수 있으며, 각 개설학기는 기록되어야 한다.

2) 교수는 같은 과목을 여러 학기에 걸쳐 강의할 수 있으며, 가장 최근의 개설학기만 기록될 필요가 있다.(이 조건이 다음의 모든 질문에 똑같이 적용된다고 가정한다).

3) 모든 교수들은 어떤 과목을 반드시 강의하여야 한다.

4) 각 교수들은 오직 한 과목만을 강의한다.

5) 각 교수들은 오직 한 과목만을 강의하며, 각 과목은 어떤 교수에 의해 반드시 강의되어야 한다.

6) 어떤 과목은 교수들의 팀에 의하여 공동으로 강의될 수 있으나, 한 팀에 있는 어느 교수도 이 과목을 혼자서는 가르칠 수 없다.

 

 

 

2. 한 대학 데이터베이스에 관하여 다음과 같은 정보를 고려해 보자.


1) 교수는 ssn, 이름, 나이, 등급, 연구분야를 가지고 있다.

2) 프로젝트는 프로젝트번호, 지원기관(예, 공학재단), 시작일, 종료일, 예산액이 있다.

3) 대학원생은 ssn, 이름, 나이, 학위과정(예, 석사, 박사)을 가지고 있다.

4) 각 프로젝트는 한 명의 교수(그 프로젝트의 책임연구자)에 의해서 관리된다.

5) 각 프로젝트는 한 명 이상의 교수들(그 프로젝트의 책임연구자)에 의해 수행된다.

6) 교수는 여러 프로젝트를 관리할 수 있고 수행할 수도 있다.

7) 각 프로젝트는 한 명 이상의 대학원생들(그 프로젝트의 연구조교들)에 의해 수행된다.

8) 대학원생들이 어떤 프로젝트를 수행할 때에는, 한 명의 교수가 그 프로젝트에 대해 그들의 연구를 감독해야 한다. 대학원생들은 여러 프로젝트를 수행할 수 있으며, 각 수행 프로젝트마다 한명의 감독자가 있어야 한다.

9) 학과는 학과번호, 학과이름, 학과사무실이 있다.

10) 학과는 그 학과를 운영하는 한 명의 교수(학과장)가 있다.

11) 교수들은 하나 이상의 학과에서 근무하고, 근무하는 각 학과별 시간 비율이 그들의 업무와 관련되어 있다.

12) 대학원생들은 그들이 학위 과정을 수행하는 전공학과를 두고 있다.

13) 각 대학원생들은 어떤 과목을 수강할지를 조언하는 선배 대학원생(학생조언자)을 두고 있다.


3. 어떤 회사의 데이터베이스는 (ssn으로 식별되고, 애트리뷰트 salary와 phone을 갖는) 직원, (dno로 식별되고, 애트리뷰트 dname과 budget을 갖는) 부서, 직원의 (애트리뷰트 name과 age를 갖는)자녀들에 대한 정보를 저장하려고 한다. 직원은 부서에서 근무하고 각 부서는 한 직원에 의해 관리된다. 한 자녀는 그 부모(직원이며 한 명의 부모만이 그 회사에서 근무한다고 가정)를 알면 name으로 유일하게 식별되어야 한다. 일단 그 부모가 회사를 떠나면 그 자녀에 대한 정보는 더 이상 필요하지 않다.



4. 전산학과에서 비행기 여행을 자주하는 사람들이 Dane Country Airport 당국에게 그 공항의 서투른 조직 구성에 대하여 불평을 해왔다. 이 결과로, 공항 당국은 그 공항에 관련된 모든 정보가 DBMS를 이용하여 구성되어야 한다고 결정했고, 여러분은 그 데이터베이스를 설계하도록 고용되었다. 여러분의 첫 번째 임무는 그 공항에 배치되어 관리되는 모든 비행기에 대한 정보를 구성하는 것이다. 관련 정보는 다음과 같다.


1) 비행기마다 등록번호가 있으며, 각 비행기는 특정한 모델에 속한다.

2) 그 공항은 여러 비행기 모델을 수용하는데, 각 모델은 모델번호(예, DC-10)로 식별되며 용량(좌석 수)과 중량이 있다.

3) 여러 기술자들이 그 공항에 근무한다. 각 기술자의 이름, ssn, 주소, 전화번호, 봉급을 저장한다.

4) 각 기술자는 하나 이상의 비행기 모델의 전문가이며, 그(그녀)의 전문 분야는 다른 기술자들의 전문 분야와 중복될 수 있다. 기술자들에 대한 이러한 정보도 기록되어야 한다.

5) 항공 관제사들은 매년 의료 진단을 받아야 한다. 각 항공 관제사에 대하여, 가장 최근의 진단 일자를 저장해야 한다.

 

 


http://cafe.daum.net/goerrorzero/EOxb/47