当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 萨王数据库系统概论第三版习题解答第1-11章
第1章绪论(P38)11.试给出一个实际情况的E一R图,要求有三个实体型,而且3个实体型之间有多对多联系。3个实体型之间的多对多联系和三个实体型两两之间的三个多对多联系等价吗?为什么?答:3个实体型之间的多对多联系和3个实体型两两之间的3个多对多联系是不等价,因为它们拥有不同的语义。3个实体型两两之间的三个多对多联系如下图所示。12.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用E一R图画出此学校的概念模型。答:13.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E一R图画出此工厂产品、零件、材料、仓库的概念模型。答:第2章关系数据库(P74)5.设有一个SPJ数据库,包括S,P,J,SPJ四个关系模式,用关系代数完成如下查询:1)求供应工程J1零件的供应商号码SNO:πSno(σJno=‘J1’(SPJ))2)求供应工程J1零件P1的供应商号码SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1零件为红色的供应商号码SNO:πSno(πSno,Pno(σJno=‘J1’(SPJ))∞πPno(σColor=‘红’(P)))4)求没有使用天津供应商生产的红色零件的工程号JNO:πJno(J)-πJNO(πSno(σcity=‘天津’(S))∞πSno,Pno,Jno(SPJ)∞πPno(σColor=‘红‘(P)))5)求至少用了供应商S1所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ))第3章关系数据库标准语言SQL(P127)3.用SQL语句建立第二章习题5中的4个表。答:对于S表:S(SNO,SNAME,STATUS,CITY);建S表:CREATETABLES(SNOCHAR(2)PRIMARYKEY,SNAMECHAR(6),STATUSCHAR(2),CITYCHAR(4));对于P表:P(PNO,PNAME,COLOR,WEIGHT);建P表:CREATETABLEP(PNOCHAR(2)PRIMARYKEY,PNAMECHAR(6),COLORCHAR(2),WEIGHTINT);对于J表:J(JNO,JNAME,CITY);建J表:CREATETABLEJ(JNOCHAR(2)PRIMARYKEY,JNAMECHAR(8),CITYCHAR(4))对于SPJ表:SPJ(SNO,PNO,JNO,QTY);建SPJ表:SPJ(SNO,PNO,JNO,QTY)CREATETABLESPJ(SNOCHAR(2),PNOCHAR(2),JNOCHAR(2),QTYINT,PRIMARYKEY(SNO,PNO,JNO),FOREIGNKEY(SNO)REFERENCES(SNO),FOREIGNKEY(PNO)REFERENCEP(PNO),FOREIGNKEY(JNO)REFERENCEJ(JNO))5.针对习题3中的四个表试用SQL语言完成以下各项操作:(1)找出所有供应商的姓名和所在城市。SELECTSNAME,CITYFROMS(2)找出所有零件的名称、颜色、重量。SELECTPNAME,COLOR,WEIGHTFROMP(3)找出使用供应商S1所供应零件的工程号码。SELECTJNOFROMSPJWHERESNO='S1'(4)找出工程项目J2使用的各种零件的名称及其数量。SELECTP.PNAME,SPJ.QTYFROMSPJ,PWHEREP.PNO=SPJ.PNOANDSPJ.JNO='J2'(5)找出上海厂商供应的所有零件号码。SELECTPNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDCITY='上海'(6)找出使用上海产的零件的工程名称。SELECTJNAMEFROMSPJ,S,JWHERES.SNO=SPJ.SNOANDJ.JNO=SPJ.JNOANDS.CITY='上海'(7)找出没有使用天津产的零件的工程号码。SELECTJNOFROMSPJWHEREJNONOTIN(SELECTJNOFROMSPJ,SWHERES.SNO=SPJ.SNOANDS.CITY='天津')(8)把全部红色零件的颜色改成蓝色。UPDATEPSETCOLOR='蓝'WHERECOLOR='红'(9)由S5供给J4的零件P6改为由S3供应。UPDATESPJSETSNO='S3'WHERESNO='S5'ANDJNO='J4'ANDPNO='P6'(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。DELETEFROMSPJWHERESNO=‘S2’DELETEFROMSWHERESNO=’S2’(11)请将(S2,J6,P4,200)插入供应情况关系。INSERTINTOSPJVALUES(‘S2’,‘J6’,‘P4’,200)第4章数据库安全性(P148)8.请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:(a)用户王明对两个表有SELECT权力。GRANTSELECTON职工,部门TO王明(b)用户李勇对两个表有INSERT和DELETE权力。GRANTINSERT,DELETEON职工,部门TO李勇(c)每个职工只对自己的记录有SELECT权力。GRANTSELECTON职工WHENUSER()=NAMETOALL;(d)用户刘星对职工表有SELECT权力,对工资字段具有更新权力。GRANTSELECT,UPDATE(工资)ON职工TO刘星(e)用户张新具有修改这两个表的结构的权力。GRANTALTERTABLEON职工,部门TO张新;(f)用户周平具有对两个表所有权力(读,插,改,删数据),并具有给其他用户授权的权力。GRANTALLPRIVELIGESON职工,部门TO周平WITHGRANTOPTION;(g)用户杨兰具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,他不能查看每个人的工资。CREATEVIEW部门工资ASSELECT部门.名称,MAX(工资),MIN(工资),AVG(工资)FROM职工,部门WHERE职工.部门号=部门.部门号GROUPBY职工.部门号GRANTSELECTON部门工资TO杨兰;9.把习题8中(1)---(7)的每一种情况,撤销各用户所授予的权力(1)REVOKESELECTON职工,部门FROM王明;(2)REVOKEINSERT,DELETEON职工,部门FROM李勇;(3)REOVKESELECTON职工WHENUSER()=NAMEFROMALI;(4)REVOKESELECT,UPDATEON职工FROM刘星;(5)REVOKEALTERTABLEON职工,部门FROM张新;(6)REVOKEALLPRIVELIGESON职工,部门FROM周平;(7)REVOKESELECTON部门工资FROM杨兰;DROPVIEW部门工资;第5章数据库完整性(P164)6.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。答CREATETABLEDEPT(DeptnoCHAR(2),DeptnameCHAR(10),ManagerCHAR(10),PhoneNumberCHAR(12)CONSTRAINTPK_SCRIMARYKEY(Deptno));CREATETABLEEMP(EmpnoCHAR(4)PRIMARYKEY,EnameCHAR(10),AgeSMAILLINT,CONSTRAINTC1CHECK(Age=60),JobCHAR(9),SalNUMERIC(7,2),DeptnoCHAR(2),CONSTRAINTFK_DEPTNOFOREIGNKEY(Deptno)REFFERENCESDEPT(Deptno));第6章关系数据库理论(P195)2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。学生:学号、姓名、出生年月、系名、班号、宿舍区。班级:班号、专业名、系名、人数、入校年份。系:系名、系号、系办公地点、人数。学会:学会名、成立年份、办公地点、人数。语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系模式的候选码、外部码,有没有全码存在?解:(1)学生(学号,姓名,出生年月,系名,班号,宿舍区)最小函数依赖集如下:学号姓名,学号出生年月,学号班号,班号系名,系名宿舍区传递依赖如下:由于学号系名,而系名宿舍区,学号宿舍区所以学号与宿舍区之间存在着传递函数依赖。由于班号系名,系名宿舍区,班号宿舍区所以班号与宿舍区之间存在着传递函数依赖。由于学号班号,班号系名,学号系名所以学号与系名之间存在着传递函数依赖。班级(班号,专业名,系名,人数,入校年份)最小函数依赖集如下:班号专业名,班号人数,班号入校年份,专业名系名.由于班号专业名,专业名系名,班号系名所以班号与系名之间存在着传递函数依赖。系(系名,系号,系办公地点,人数)最小函数依赖集如下:系名系号,系号系名,系号系办公地点,系号人数根据上述函数依赖可知,系号与系办公地点,系名与人数之间不存在传递依赖。学会(学会名,成立年份,办公地点,人数)最小函数依赖集如下:学会名成立年份,学会名办公地点,学会名人数该模式不存在传递依赖。学生-学会(学号,学会名,入会年份)最小函数依赖集如下:(学号,学会名)入会年份该模式不存在传递依赖。第7章数据库设计(P234)12.试把第一章习题12和13中的E-R图转换为关系模型第一章习题12:学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生;每个班有若干学生,每个学生选修若干课程,每门课可由若干学生选修。请用E一R图画出此学校的概念模型。第一章习题13:某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E一R图画出此工厂产品、零件、材料、仓库的概念模型。对应的关系模型为(其中有下横线的属性是主码属性)产品(产品号,产品名)零件(零件号,零件名)材料(材料号,材料名,类别,仓库号,存放量)仓库(仓库号,仓库名)组成(产品号,零件号,使用零件量)制造(零件号,材料号,使用材料量)储存(零件号,仓库号,储存量)第八章(无)第九章(P275)2.第十一章(无)第十一章并发控制(P306)9.10.今有3个事务的一个调度r3(B)r1(A)w3(B)r2(B)r2(A)w2(B)r1(B)w1(A),该调度是冲突可串行化的调度嘛?为什么?答:可以。先把r1(A)和w3(B)交换,有r3(B)w3(B)r1(A)r2(B)r2(A)w2(B)r1(B)w1(A)再把r1(A)和r2(B)r2(A)w2(B)交换,有r3(B)w3(B)r2(B)r2(A)w2(B)r1(A)r1(B)w1(A)等价于一个串行调度:T3,T2,T1
本文标题:萨王数据库系统概论第三版习题解答第1-11章
链接地址:https://www.777doc.com/doc-2087859 .html