数据库第二章课后习题解答

  • 格式:doc
  • 大小:6.38 MB
  • 文档页数:14

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3部分习题及其解答第一章的两道题

3-2 习题2

2.6 分别把习题1.10、习题1.11的ER图转换成关系模型数据结构。

【参考答案】

1.习题1.10的ER图可转换成如下的关系模型数据结构。

①程序员(编号,,性别,年龄,单位,职称),其中编号是关键字;

②程序(程序名称,,专利号,价格),其中程序名称是关键字;

③设计(编号,程序名称,开始时间,结束时间),其中(编号,程序名称)是关键字。

2.习题1.11的ER图可转换成如下的关系模型数据结构。

①工厂(工厂名称,厂址,联系),其中工厂名称是关键字;

②产品(产品号,产品名,规格,单价),其中产品号是关键字;

③工人(工人编号,,性别,职称,工厂名称,雇用期,月薪),其中工人编号是关键字,工厂名称是外关键字,雇用期和月薪是联系属性;

④生产(工厂名称,产品号,月产量),其中(工厂名称,产品号)是关键字,生产关系是表示联系的。

2.8 判断下列情况,分别指出它们具体遵循那一类完整性约束规则?

1.用户写一条语句明确指定月份数据在1~12之间有效。

2.关系数据库中不允许主键值为空的元组存在。

3.从A关系的外键出发去找B关系中的记录,必须能找到。

【解答】

1.用户用语句指定月份数据在1~12之间有效,遵循用户定义的完整性约束规则。

2.关系数据库中不允许主键值为空的元组存在,遵循实体完整性约束规则;

3.从A关系的外键出发去找B关系的记录,必须能找到,遵循引用完整性约束规则。

2.9 判断下列情况,分别指出他们是用DML还是用DDL来完成下列操作?

1.创建“学生”表结构。

2.对“学生”表中的学号属性,其数据类型由“整型”修改为“字符型”。

3.把“学生”表中学号“021”修改为“025”。

【解答】

1.创建“学生”表结构,即定义一个关系模式,用DDL完成。

2.修改“学生”表中学号属性的数据类型,即修改关系模式的定义,用DDL完成。

3.修改“学生”表中学号属性的数据值,即对表中的数据进行操作,用DML完成。

2.12 给出两个学生选修课程关系A和B,属性为、课程名、成绩。分别写出后列各关系代数运算的结果关系。

1.A 和B 的并、交、差、乘积、自然联接。

2.σ成绩> '80' (A ); σ2= '数学'∧3<'90' (B ); π1,3(A ); π课程名(B )。

3.π1,3(σ2='数学'(B ));π(σ成绩>'75'(A <>B ));π(σ课程名='数学'∨课程名='英语' (A -B ))。 4.B A <>1

1=; B A

<>3

322>∧= 。

5.A []<>B ; A <>]B ; A [<>B 。

【解答】

1

2

3

4

5

2.15

elective(sno,cno,grade)

用关系代数表达式表达下列查询:

1.检索学习课程号为C06的学生学号与成绩。

2.检索学习课程号为C06的学生学号与。

3.检索学习课程名为ENGLISH的学生学号与。

4.检索选修课程号为C02或C06的学生学号。

5.检索至少选修课程号为C02和C06的学生学号。

6.检索没有选修C06课程的学生及其所在班级。

7.检索学习全部课程的学生。

8.检索学习课程中包含了S08学生所学课程的学生学号。

【解答】

1.检索学习课程号为C06的学生学号与成绩。

πsno, grade (σcno='C06' (elective)) 或π1,3 (σ2='C06' (elective))

2.检索学习课程号为C06的学生学号与。

πsno, sname (σcno='C06' (student<>elective))

3.检索学习课程名为ENGLISH的学生学号与。

πsno, sname (σcname='ENGLISH' (student<>elective<>course))

4.检索选修课程号为C02或C06的学生学号。

πsno (σcno='C02'∨cno='C06' (elective))

5.检索至少选修课程号为C02和C06的学生学号。

πsno (σ1=4∧2='C02'∧5='C06' (elective⨯elective))

6.检索没有选修C06课程的学生及其所在班级。

πsname, class (student) -πsname, class (σcno='C06' (student<>elective))

7.检索学习全部课程的学生。

πsname (student<>(πsno,o (elective) ÷πcno (course)))

8.检索学习课程中包含了S08学生所学课程的学生学号。

πsno,o (elective) ÷ (πcno (σsno='S08'(elective)))

2.25 已知关系模式R(A,B,C,D,E)和函数依赖集F={AB→C, B→D, C→E, EC→B, AC→B,D→BE},试问AC→BE能否从F导出?

【解答】

方法一:运用推理规则推导。

对已知的AC→B和B→D,根据Å3传递律,AC→D成立;

对已证的AC→D和已知的D→BE,根据Å3传递律,AC→BE成立;即AC→BE能从F中导出。

方法二:按算法2.1(求属性集合X关于函数依赖集F的闭包X+),求(AC)+。