数据库作业,求高手帮忙

szj0128 2010-04-29 05:29:53
设计题:
(一)现有关系数据库如下:
学生(学号,姓名,性别,专业,奖学金)
课程(课程号,名称,学分)
学习(学号,课程号,分数)
用关系代数表达式实现下列4小题
(1) 检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数。
(2) 检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名专业和分数。
(3) 检索不学课程号为“C135”课程的学生信息,包括学号、姓名和专业。
(4) 检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业。
用SQL语言实现下列5-8题
(5) 检索不学课程号为“C135”课程的学生信息,包括学号、姓名和专业。
(6) 检索至少学过课程号为“C135”和“C219”的学生信息,包括学号、姓名和专业。
(7) 从学生表中删除成绩出现过0分的所有学生信息。
(8) 定义“英语”专业学生所学课程的信息视图AAA,包括学号、姓名、课程号和分数。
(二)设有雇员表emp(empno,ename,age,sal,tel,deptno),
其中:empno--编号,name--姓名,age --年齡,sal--工资,tel--电话,deptno--部门号。请按下列要求用SQL编程。(每小题3分,共15分)
(1)查询家有电话的职工信息。
(2)查询工资在500至800元之间的雇员信息
(3)按年龄递增顺序显示雇员编号、姓名、年龄、工资

(4)求部门号为D_01的平均工资
(5)查找部门号为D_01的40岁以上而工资在400元以下的雇员名单。
(三)现有如下关系模式:
R (A#,B#,C,D,E)
其中A#B#组合为码
R上存在的函数依赖有A#B#->E,B#->C,C->D
试回答下列问题:(11分)
(1) 该关系模式满足2NF吗?为什么?
(2) 如果将关系模式R分解为:
R1(A#,B#,E)
R2(B#,C,D)
指出关系模式R2的码,并说明该关系模式最高满足第几范式?

(四)
S(SNO,SNAME, ADDRESS,TEL)
SNO:供应商代码 SNAME:姓名 ADDRESS:地址 TEL:电话
J(JNO,JNAME,LEADER,BG)
JNO:工程代码 JNAME:工程名 LEADER:负责人 BG:预算
P(PNO,PNAME,SPEC,CITY,COLOR)
PNO:零件代码 PNAME:零件名 SPEC:规格 CITY:产地 COLOR:颜色
SPJ(SNO,JNO,PNO,QTY)
SNO:供应商代码 JNO:工程代码 PNO:零件代码 QTY:数量
用SQL语言实现下列5小题:(每小题3分,共15分)
(1) 求供应工程J1零件的供应商号SNO;
(2) 求供应工程J1零件P1的供应商号SNO;
(3) 求供应工程J1红色零件的供应商号SNO;
(4) 求没有使用天津供应商生产的红色零件的工程号JNO;
(5) 求至少用了S1供应商所供应的全部零件的工程号JNO。
...全文
395 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
永生天地 2010-04-29
  • 打赏
  • 举报
回复
作业。。。
喜-喜 2010-04-29
  • 打赏
  • 举报
回复
一、
(1)∏学号,姓名,课程名,分数(σ专业='英语'(学生) ∞ 学习 ∞ 课程)
(2)∏学号,姓名,专业,分数(σ分数>90(σ 专业='数据库原理'(学生) ∞ 学习))
(3)∏学号,姓名,专业(学生)-∏学号,姓名,专业(σ课程号='C135'(学习) ∞ 学生)
(4)∏学号,姓名,专业(学生)-∏学号,姓名,专业(σ分数<60(学习) ∞ 学生)
(5)select 学号,姓名,专业 from 学生 where 学号 not in (select 学号 from 学习 where 课程号='C135')
(6)select 学号,姓名,专业 from 学生
where 学号 in(select 学号 from 学习 where 课程号='C135'
and exists(select 1 from 学习 where 课程号='C219'))
(7)delete from 学生 where 学号 in(select 学号 from 学习 where 分数=0)
(8)create view AAA as
select s.学号,姓名,c.课程号,分数 from 学生 s,学习 sc,课程 c
where s.学号=sc.学号 and c.课程号=sc.课程号 and c.名称='英语'

二、
(1)select * from emp where tel is not null
(2)select * from emp where sal between 500 and 800
(3)select empno,ename,age,sal from emp order by age
(4)select sal_avg=avg(sal) from emp where deptno='D_01'
(5)select ename from emp where deptno='D_01' and age>40 and sal<400

三、
(1) 不满足2NF。原因:C、D均部分函数依赖于码
(2) 关系模式R2的码为B#,R2中存在 B#->C,C->D 传递函数依赖,所以关系模式R2最高满足2NF。

四、
(1)select SNO from SPJ where JNO='J1'
(2)select SNO from SPJ where JNO='J1' and PNO='P1'
(3)select SNO from SPJ,P where JNO='J1' and SPJ.PNO=P.PNO and COLOR='红色'
(4)select SNO from SPJ where SNO not in (select SNO from SPJ,P,S
where SPJ.PNO=P.PNO and S.SNO=SPJ.SNO and COLOR='红色' and ADDRESS='天津')
(5)select JNO from (select JNO,PNO from SPJ
where PNO in (select PNO from SPJ where SNO='S1'))t
group by JNO having count(PNO)=(select count(PNO) from SPJ where SNO='S1')
极夜之辉 2010-04-29
  • 打赏
  • 举报
回复
试试看!
htl258_Tony 2010-04-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dawugui 的回复:]
晚上再做.
[/Quote]交给你了
szj0128 2010-04-29
  • 打赏
  • 举报
回复
谢谢高手啊,明天要交,麻烦晚上帮个忙做了啊
dawugui 2010-04-29
  • 打赏
  • 举报
回复
晚上再做.
nianran520 2010-04-29
  • 打赏
  • 举报
回复

22,299

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧