2013软外(欧美对日)数据库应用技术课后题答案20141229--新版

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库应用技术课后题答案第1页共22页第一章关系型数据库(p71)1.C2.D3.C4.D5.D6.B7.D8.B9.B10.C11.A12.A13.C14.A15.B16.B17.A22.已知一个关系数据库的模式如下:S(SNO,SNAME,SCITY)P(PNO,PNAME,COLOR,WEIGHT)J(JNO,JNAME,JCITY)SPJ(SNO,PNO,JNO,QTY)供应商S由供应商代码SNO、供应商姓名SNAME、供应商所在城市SCITY组成;零件P由零件代码PNO、零件名PNAME、颜色COLOR、重量WEIGHT组成;工程项目J由工程项目代码JNO、工程项目名JNAME、和所在城市JCITY组成;供应情况SPJ由供应商代码SNO、零件代码PNO、工程项目代码JNO、供应数量QTY组成。用关系代数表达式表示下面的查询要求:(1)求供应工程J1零件的供应商代码SNO(2)求供应工程J1零件P1的供应上代码SNO(3)求供应工程J1零件为红色的供应商代码SNO(4)求没有使用天津供应商生产的红色零件的工程项目代码JNO(5)求至少用了供应商S1所供应的全部零件的工程项目代码数据库应用技术课后题答案第2页共22页JNO答:(1)))(('1'SPJJJNOSNO(2)))(('1''1'SPJPPNOJJNOSNO(3)))(('''1'SPJPCOLORJJNOSNO红色(4)))()(()(''''PSPJSJCOLORCITYJNOJNO红色天津(5)))(()('1',SPJSPJSSNOPNOJNOPNO23.建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨数据库应用技术课后题答案第3页共22页论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?解:(1)关系模式如下:学生:S(Sno,Sname,Sbirth,Dept,Class,Sloc)班级:C(Class,Major,Dept,Cnum,Cyear)系:D(Dept,Dno,Office,Dnum)学会:P(Pname,Pyear,Paddr,Pnum)学生--学会SP(Sno,Pname,SPyear)(2)每个关系模式的最小函数依赖集如下:(a)、学生S(Sno,Sname,Sbirth,Dept,Class,Sloc)的最小函数依赖集如下:SnoSname,SnoSbirth,SnoClass,ClassDept,DeptSloc传递依赖如下:由于SnoClass,ClassSno,ClassDept所以Sno与Dept之间存在着传递函数依赖。由于SnoDept,DeptSno,DeptSloc所以Sno与Sloc之间存在着传递函数依赖。由于ClassDept,DeptClass,DeptSloc所以Class与Sloc之间存在着传递函数依赖。(b)、班级C(Class,Major,Dept,Cnum,Cyear)的最小函数依赖集如下:数据库应用技术课后题答案第4页共22页ClassMajor,ClassCnum,ClassCyear,MajorDept,(Major,Cyear)→Class由于ClassMajor,MajorClass,MajorDept所以Class与Dept之间存在着传递函数依赖。(c)、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:DeptDno,DnoDept,DnoOffice,DnoDnum根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。(d)、学会P(Pname,Pyear,Paddr,Pnum)的最小函数依赖集如下:PnamePyear,PnamePaddr,PnamePnum该模式不存在传递依赖。(e)、学生--学会SP的最小函数依赖集如下:(Sno,Pname)→SPyear(3)各关系模式的候选码、外部码,全码如下:A、学生S候选码:Sno;外部码:Dept、Class;无全码B、班级C候选码:Class和(Major,Cyear);外部码:Dept;无全码C、系D候选码:Dept或Dno;无外部码;无全码D、学会P候选码:Pname;无外部码;无全码数据库应用技术课后题答案第5页共22页学生--学会SP候选码:(Sno,Pname)外部码:Sno,Pname;无全码第二章(略)第三章(略)第四章SQL应用基础(p181)1.C2.A3.D4.D5.C6.C7.B8.A9.BCD10.B11.B12.D13.C14.请从表EMP中查找工资低于2000的雇员的姓名、工作、工资,并按工资降序排列。selectename,job,salfromempwheresal2000orderbysaldesc;15.请从表中查询工作是CLERK的所有人的姓名、工资、部门号、部门名称以及部门地址的信息。selectename,sal,emp.deptno,dname,locfromemp,deptwhereemp.deptno=dept.deptnoandjob=’CLERK’;16.查询表EMP中所有的工资大于等于2000的雇员姓名和他的经理的名字。selecta.ename,b.enamefromempa,empbwherea.mgr=b.empnoanda.sal=2000;17.在表EMP中查询所有工资高于JONES的所有雇员姓名、工作和工资。(和第19题重复了)数据库应用技术课后题答案第6页共22页selectename,job,salfromempwheresal(selectsalfromempwhereename=’JONES’);18.列出没有对应部门表信息的所有雇员的姓名、工作以及部门号。selectename,job,deptnofromempwheredeptnonotin(selectdeptnofromdept);20.查找工资在1000~3000之间的雇员所在部门的所有人员信息select*fromempwheredeptnoin(selectdistinctdeptnofromempwheresalbetween1000and3000);21.查询列出来公司就职时间超过24年的员工名单selectenamefromempwherehiredate=add_months(sysdate,-288);22.查询显示每个雇员加入公司的准确时间,按××××年××月××日时分秒显示。selectename,to_char(hiredate,'yyyy-mm-ddhh24:mi:ss')fromemp;23.查询所有1981年7月1日以前来的员工姓名、工资、所属部门的名字selectename,sal,dnamefromemp,deptwhere数据库应用技术课后题答案第7页共22页emp.deptno=dept.deptnoandhiredate=to_date(‘1981-07-01’,’yyyy-mm-dd’);24.查询公司中按年份月份统计各地的录用职工数量selectto_char(hiredate,'yyyy-mm'),loc,count(*)fromemp,deptwhereemp.deptno=dept.deptnogroupbyto_char(hiredate,'yyyy-mm'),loc;25.查询部门平均工资最高的部门名称和最低的部门名称selectdnamefromdeptwheredeptno=(selectdeptnofrom(selectdeptnofromempgroupbydeptnoorderbyavg(sal))whererownum=1)unionallselectdnamefromdeptwheredeptno=(selectdeptnofrom(selectdeptnofromempgroupbydeptnoorderbyavg(sal)desc)whererownum=1);26.对每一个雇员,显示employee_id、last_name、salary和salary增加15%,并且表示成整数,列标签显示为New_SalarySELECTemployee_id,last_name,salary,ROUND(salary*1.15,0)NewSalaryFROMemployees;27.写一个查询用首字母大写,其它字母小写显示雇员的last_names,显示名字的长度,对所有名字开始字母是J、A或数据库应用技术课后题答案第8页共22页M的雇员,给每列一个适当的标签。用雇员的last_names排序结果。SELECTINITCAP(last_name)Name,LENGTH(last_name)LengthFROMemployeesWHERElast_nameLIKE'J%'ORlast_nameLIKE'M%'ORlast_nameLIKE'A%'ORDERBYlast_name;28.对每一个雇员,显示其last_name,并计算从雇员受雇日期到今天的月数,列标签MONTHS_WORKED。按受雇月数排序结果,四舍五入月数到最靠近的整数月。SELECTlast_name,ROUND(MONTHS_BETWEEN(SYSDATE,hire_date))MONTHS_WORKEDFROMemployeesORDERBYMONTHS_BETWEEN(SYSDATE,hire_date);29.向部门表dept插入新部门(50,’MANAGEMENT’,’BEIJING’)并查询部门表的全部信息。INSERTINTOdept(deptno,dname,loc)VALUES(50,'MANAGEMENT','BEIJING');SELECT*FROMdept;30.将部门号为50的地址改为’SHANGHAI’,再执行一次回滚,数据库应用技术课后题答案第9页共22页然后提交。UPDATEdeptSETloc='SHANGHAI'WHEREdeptno=50;ROLLBACK;COMMIT;第五章数据表对象(p203)1.B2.B3.D4.D5.D6.createtableStudent1(Snonumber(6)primarykey,--主键Snamevarchar2(12)notnull,Sentrancedatedate,Smajorvarchar2(20)notnull,Ssexchar(2)check(Ssexin('男','女')),--性别约束Sageintegernotnullcheck(Sagebetween4and40)--年龄约束);createtableCourse1(Cnonumber(6)primarykey,--主键Cnamevarchar2(20)notnull,Cperiodintegernotnull,数据库应用技术课后题答案第10页共22页Ccreditintegernotnullcheck(Ccreditbetween1and9)--学分约束);createtableGrade1(Snonumber(6),Cnonumber(6),Scorenumber(2),primarykey(Sno,Cno)--联合主键);altertableStu

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功