数据库第三章作业

更新时间:2023-11-14 19:50:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 关系数据库系统RDBS

作业

一. 简答题

1. 表间数据完整性的实现方式? 答:外键约束。

2. 对于表中几个特殊的列,如主键、候选键和外键,分别用什么限制来保证它们的完整性?对

表中其它一般性的列,用什么限制来保证它们的完整性? 答:主键:主键约束。 候选键:唯一约束。 外键:外键约束。

一般性列:检查约束和断言。

3. SQL-92标准支持的完整性限制是否一定会在SQL SERVER中实现,举例说明?

答:不一定。 SQL-92标准推荐断言,SQL Server不支持断言。 SQL Server支持触发器,SQL-92标准没有定义触发器。

4. SQL SERVER中缺省和规则的目的? 答:指定列的取值范围。 5. 外键限制定义的条件?

答:定义外键约束的列必须是另一个表中的主键或候选键。

6. 请说明在维护表间数据完整时外键限制与触发器的3点不同之处。 答:

1.○错误信息的管理上:约束与触发器在遇到问题时都可以返回给用户一定的错误信息。但 是,

触发器可以返回数据库管理员自定义的错误信息,而且还可以实现较为复杂的逻辑控制, 而约束只能够通过标准化的系统错误信息来传递错误消息;

2.性能上的差异分析:从性能上来说,约束的执行性能都要高一点。虽然约束的执行性能 比○

较高,但是其向用户提供的错误信息确实非常有限的。

3.管理维护的工作量:由于约束基本上都是数据库现成的解决方案。无论是索引约束还是 外○

键约束,又或者是check约束。往往在数据库系统中已经有了现成的解决方案。数据库管理员通过直接引用这些解决方案即可以实现特定的功能,而不用再费力的编写触发器来实现。而触发器中系统没有现成的可以引用,而都需要数据库管理员通过实际清理来进行编写 7. 关系代数的基本操作符?笛卡尔乘积最大的好处是什么?最大的缺点又是什么?

1基本操作符:SELECTION (选择)、PROJECTION(投影)、UNION(并,或称联答:○

合)、INTERSECTION(交)、DIFFERENCE(差)、CROSS PRODUCT(积,或称笛卡尔乘积)。

2最大的作用:可将两张或多张有关联(即有相同的列)或无关联的表的数据组合起来。 ○

3最大缺点:组合后可能有许多无意义的数据组合。 ○

8. 为什么说在实际查询中自然连接是用得比较多的? 答:当两个关系通过外键联系时,自然联结将用得非常频繁。 9. 关系代数中对结果有重复元组时,如何处理?SQL中呢?

1关系代数中:去掉重复元组。 ○2SQL中:保留重复元组。 答:○

10. 连接的分类?为何有3种外连接?

1条件联结、等联结、自然联结、外联结。 答:○

2因为R|╳|S有三种情况即可能S中没有匹配R的行则为左联结,或R中没有匹配S的行则○

为右联结,若R、S中均无匹配的行,则为全外联结。

二. 单项选择题

1. ( ③ )不是关系代数的基本操作。

①Selection ②Projection ③Join ④Intersection 2. ( ③ )用唯一限制来约束。

①主键 ②外键 ③候选键 ④简单键 3. ( ② )与?列?不同义。

①字段 ②元组 ③成员 ④属性

三. 改错题(将划线部分改正填入各题后的括号中)

1. 关系代数中笛卡尔乘积操作的好处是可进行选择和投影。( 可将两张或多张有关联(即

有相同的列)或无关联的表的数据组合起来 )

2. 外连接是条件连接的特例。( 外连接是自然连接的特列 ) 3. 关系代数是与ER模型有关的查询语言。( 关系模型 )

六. 设有如下图所示三个关系实例X、Y和Z,请分别求出下列各表达式的值。

(1)σA = a1(Y×Z)

(2)Y Z (3)X Y Z

X A B Y B C Z A C a1 b1 b1 c2 a1 c1 a1 b2 b2 c1 a1 c2 a2 b1 b1 c1 a2 c3 a3 b1 b1 c3 a3 c4 答:○1

B (C) A (C) b1 c2 a1 c1

b2 c1 a1 c1 b1 c1 a1 c1 b1 c3 a1 c1 b1 c2 a1 c2 b2 c1 a1 c2 b1 c1 a1 c2 b1 c3 a1 c2 ○2 A B C a1 b2 c1 a1 b1 c1 a1 b1 c2 a2 b1 c3 a3 null c4 ○3 A B C a1 b1 c1 a1 b1 c2 a1 b2 c1 a2 b1 c3

1. 一个电影资料库有四个实体“电影”,“演员”,“导演”,“电影公司”。“电影”的属

性有电影编号,电影名,电影类型,对白语言;“演员”的属性有演员工作证号,姓名,出生年,性别;“导演”的属性有导演工作证号,姓名,出生年,性别;“电影公司”的属性有公司名称,所在国家。

这些实体间的联系及它们的属性有:演员出演电影,为多对多联系,该联系含角色属性;导演执导电影,每部电影只由一个导演执导;演员属于电影公司;导演属于电影公司;电影公司出品电影,有出品年份属性。

1) 请画出ER图,要求标出实体的主键、联系的约束类型和键约束。

2) 将此ER图转换为关系模型,要求标出各关系的主键,如果存在的话还应指明其候选键和外键。

3) 假定“电影公司”为主表,“导演”为从表,请利用触发器方式,定义从表到主表方向的完整性。

4) 请用关系代数表达式和SQL分别表达下列查询

① 查询1957年之前出生的男演员的姓名。

② 查询2000年环球公司出品的电影的名字和导演姓名。

③ 查询张一导演所导演的影片中的主角演员姓名。

1 答:○

出生年电影编号电影名电影类型对白语言姓名演员工作证号性别演员m出演n电影nm出品年份n指导属于a出品mn1电影公司m属于bn导演公司名称所在国家导演工作证号姓名性别出生年 ○2电影(电影编号,电影名,电影类型,对白语言,导演工作证号,公司名称),电影编号为主键,导演工作证号和公司名称分别为外键。

演员(演员工作证号,姓名,出生年,性别,公司名称),演员工作证号为主键,公司名称为外键。

导演(导演工作证号,姓名,出生年,性别,公司名称),导演工作证号为主键,公司名称为外键。

电影公司(公司名称,所在国家),公司名称为主键。

出演(演员工作证号,电影编号,角色),(演员工作证号,电影编号)为主键,演员工作证号和电影编号分别为外键。

执导(导演工作证号,电影编号),电影编号为主键,导演工作证号和电影编号分别为外键。 属于1(演员工作证号,公司名称),演员工作证号为主键,演员工作证号和公司名称分别为外键。

属于2(导演工作证号,公司名称),导演工作证号为主键,导演工作证号和公司名称分别为

外键。

出品(电影编号,公司名称,出品年份),电影编号为主键,电影编号和公司名称分别为外键。 ○3CREATE TRIGGER 导演_iu ON 导演

FOR INSERT, UPDATE AS DECLARE @num_rows INT SELECT @num_rows = @@rowcount IF @num_rows = 0 RETURN IF ( SELECT count(*) FROM 电影公司 d, inserted i

WHERE d.公司名称 = i.公司名称 ) != @num_rows BEGIN RAISERROR 53334 ROLLBACK TRANSACTION RETURN END RETURN

○4一○π姓名(σ出生年 < 1957(演员)∩σ性别 = 男(演员))

SELECT 姓名 FROM演员

WHERE出生年 < 1957 AND 性别 = ‘男’

二π电影名, 导演.姓名(σ出品年份 = 2000(出品 电影 导演)∩σ公司名称 = 环球公司(出○

品 电影 导演))

SELECT 电影名, 导演.姓名

FROM出品 NATURAL JOIN 电影NATURAL JOIN导演 WHERE出品年份 = 2000 AND 公司名称 = ‘环球公司’

三π演员.姓名(σ导演.姓名 = 张一(导演 执导 出演 演员)) ○

SELECT 演员.姓名

FROM 导演 NATURAL JOIN 执导 NATURAL JOIN 出演 NATURAL JOIN 演员 WHERE 导演.姓名 = ‘张一’

2. 某出版社管理系统有四个实体,即出版社(Publisher)、编辑(Editor)、作者(Author)

和书籍(Book)。“出版社”的属性有出版社编码(Pid)、出版社名称(Pname)、地址(Paddr)和电话(Ptel);“编辑”的属性有编辑工号(Eid)、姓名(Ename)、性别(Egender)、出生日期;“作者”的属性有作者编码(Aid)、姓名(Aname)、性别(Agender)、电话(Atel);“书籍”的属性有国际图书分类号(Isbn)、书名(Bname)、单价(Bprice)。

这些实体间的联系及它们的属性有:作者“主编”(ZX)书籍,为1:n联系;编辑“校对”(JD)书籍,为1:n联系;出版社“出版”(CB)书籍,为1:n联系;“出版”的属

本文来源:https://www.bwwdw.com/article/7emv.html

Top