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

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

第3部分 习题及其解答

第一章的两道题

设计

N

开始时间

结束时间

版权

专利号

月薪

3-2 习题2

分别把习题、习题的ER 图转换成关系模型数据结构。 【参考答案】

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

程序员(编号,姓名,性别,年龄,单位,职称),其中编号是关键字; ② 程序(程序名称,版权,专利号,价格),其中程序名称是关键字;

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

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

① 工厂(工厂名称,厂址,联系电话),其中工厂名称是关键字; ② 产品(产品号,产品名,规格,单价),其中产品号是关键字;

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

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

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

生产

月产量

雇用

雇用期

1.用户写一条语句明确指定月份数据在1~12之间有效。 2.关系数据库中不允许主键值为空的元组存在。

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

1.用户用语句指定月份数据在1~12之间有效,遵循用户定义的完整性约束规则。 2.关系数据库中不允许主键值为空的元组存在,遵循实体完整性约束规则; 3.从A 关系的外键出发去找B 关系的记录,必须能找到,遵循引用完整性约束规则。

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

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

2.对“学生”表中的学号属性,其数据类型由“整型”修改为“字符型”。 3.把“学生”表中学号“021”修改为“025”。 【解答】

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

2.修改“学生”表中学号属性的数据类型,即修改关系模式的定义,用DDL 完成。 3.修改“学生”表中学号属性的数据值,即对表中的数据进行操作,用DML 完成。

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

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

2.> '' (A ); 2= ''∧<'' (B ); ,(A ); (B )。

3.

关系A

姓名 课程名 成绩 李红

数学

89

罗杰明 英语 78

关系B

姓名 课程名 成绩 黄边晴

C++语言 86 李红

数学

89

4.B A 1

1=; B A

3

322>∧= 。

5.A [] B ; A ]B ; A [ B 。 【解答】

1.结果关系见表(a)~表(e)。

2.结果关系见表(f)~表(i)。

表(f) ' '(A ) 结果关系

姓名 课程名 成绩 李红

数学

89 表(g) '''' (B ) 结果关系

姓名 课程名 成绩 李红

数学

89

3

4.结果关系见表(m)~表(n)。

5

表(h) (A) 结果关系

姓名成绩

李红89

罗杰明78

表(i) (B) 结果关系

课程名

C++语言

表(j) (''(B)) 结果关系

姓名成绩

李红89

表(k) (''(A

B)) 结果关系

姓名

表(l) (''''(A-B)) 结果关系

姓名

假设教学数据库中已建立三个关系:

学生关系 student(sno,sname,sex,birth,height,class,address) 课程关系 course(cno,cname,credit) 选修关系 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的学生学号。

表(q) A [ B 结果关系

姓名

课程名 成绩 李红 数学 89 黄边晴

C++语言

86

相关文档
最新文档