第3章关系数据库系统RDBS一. 简答题1.对于表中几个特殊的列,如主键、候选键和外键,分别用什么限制来保证它们的完整性?对表中其它一般性的列,用什么限制来保证它们的完整性?答:主键:其值必须是唯一,不为空值;候选键:其值必须唯一,可有也只能有一个空值;外键:主键值在修改和删除时,从表中与该主键值相同的外键值可级联(CASCADE)修改和删除,或改为空值、默认值、禁止主表主键值的修改和删除;一般的列:检查约束和断言。
2.SQL SERVER中规则的目的?答:规则的目的针对表中的某一列,指明该列的取值范围。
3.SQL SERVER中在定义某些限制时,分列级与表级,其分类的原则是什么?答:列级检查约束针对表中一列;表级检查约束则针对同一表中多列4.外键限制定义的条件?答:外键限制的列必须是另一个表中的主键。
5.关系代数的基本操作符?笛卡尔乘积最大的作用是什么?答:基本操作符:投影,选择,交,积,差;作用:把任意两个不相关的表相连。
6.为什么说在实际查询中自然连接是用得比较多的?答:可以从两个关系实例的笛卡尔乘积中选出同时满足一个或多个条件等式的行,每个条件等式中的列名相同。
7.关系代数中对结果有重复元组时,如何处理?答:将去掉重复元组。
8.连接的分类?答:条件连接:加入连接条件,对两个关系实施连接;等连接:是条件连接的特例。
要求连接条件由等式组成;自然连接:是等连接的特例。
要求等式中涉及的字段名必须相等;外连接:是涉及有空值的自然连接。
9.外连接又分3种,其依据是什么?答:左外联结,右外联结,全外联结。
二. 单项选择题1. ( ③ )不是关系代数的基本操作。
①Selection ②Projection ③Join ④Intersection 2. ( ③ )用唯一限制来约束。
①主键 ②外键 ③候选键 ④简单键 3. ( ② )与“列”不同义。
①字段 ②元组 ③成员 ④属性三. 判断题(正确打√,错误打×)1. ( √ )关系代数中的改名操作既可用于改名也可用于存放临时关系模式结果。
2. ( × )对主表,插入操作可能会违背参照完整性限制,但删除和更新不会。
3. ( × )等连接是自然连接的特例.4. ( √ )关系代数是与关系模型有关的查询语言。
5. ( √ )外连接可能涉及有空值。
六. 设有如下图所示三个关系实例X 、Y 和Z ,请分别求出下列各表达式的值。
(1)σA = a1(Y ×Z )(2)Y Z (3)X Y Z答:(1){<b1,c2,a1,c1>,<b1,c2,a1,c2>,<b2,c1,a1,c1>,<b2,c1,a1,c2>,<b1,c1,a1,c1>,<b1,c1,a1,c2>,<b1,c3,a1,c1>,<b1,c3,a1,c2>} (2)C A B c1 a1 b2X A B Y B C Z A Ca1 b1 b1 c2 a1 c1 a1 b2 b2 c1 a1 c2 a2 b1 b1 c1 a2 c3 a3 b1 b1 c3 a3 c4c1 a1 b1c2 a1 b1c3 a2 b1c4 a3 null(3)A B Ca1 b1 c1a1 b1 c2a1 b2 c1a2 b1 c31.一个电影资料库有四个实体“电影”,“演员”,“导演”,“电影公司”。
“电影”的属性有电影编号,电影名,电影类型,对白语言;“演员”的属性有演员工作证号,姓名,出生年,性别;“导演”的属性有导演工作证号,姓名,出生年,性别;“电影公司”的属性有公司名称,所在国家。
这些实体间的联系及它们的属性有:演员出演电影,为多对多联系,该联系含角色属性;导演执导电影,每部电影只由一个导演执导;演员和导演属于电影公司;电影公司出品电影,有出品年份属性。
1)请画出ER图,要求标出实体的主键、联系的约束类型和键约束。
2)将此ER图转换为关系模型,要求标出各关系的主键,如果存在的话还应指明其候选键和外键。
3)请用关系代数表达式和SQL分别表达下列查询①查询1957年之前出生的男演员的姓名。
②查询2000年环球公司出品的电影的名字和导演姓名。
③查询张一导演所导演的影片中的主角演员姓名。
答:(1)电影类型(2)演员:演员工作证号为主健;导演:导演工作证号为主健;电影公司:电影公司为主健;电影:电影编号为主键,导演工作证号为外键,电影名为候选键;出演(演员工作证号,电影编号,角色)(演员工作证号,电影编号)为主健,演员工作证号和电影编号各为外键;出品:为主健,电影编号和公司名称各为外键;属于a:为主健,公司名称和演员工作证号各为外键;属于b:为主健,公司名称,导演工作证号各为外键(3)①σ出生年 < 1957(演员)∩σ性别 =男(演员)SELECT *FROM 演员WHERE出生年<1957 INTERSECTSELECT*FROM WHERE性别=男②ρ(Temp,σ出品年份 =2000(出品)∩σ公司名称=环球公司(出品))π电影名,姓名(Temp 电影导演)SELECT 电影名FROM 出品,电影WHERE出品.出品年份=‘2000’AND出品.公司名称=环球公司AND出品.电影编号=电影.电影编号INTERSECTSELECT姓名FROM 出品,电影,导演WHERE出品.出品年份=‘2000’AND出品.公司名称=环球公司AND出品.电影编号=电影.电影编号AND导演.导演工作证号=电影.导演工作证号③π姓名(σ姓名=张一(导演)电影出演演员)SELECCT 姓名FROM 导演,电影,出演,演员WHERE 导演.姓名=‘张一’AND电影.导演工作证号=导演.导演工作证号AND出演.电影编号=演员.工作证号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联系;“出版”的属性有出版日期(Pdate)。
(1)请画出概念数据模型的E-R图,要求标注联系的约束类型和键约束。
(2)将此E-R图表示的数据模型转换为关系模型,要求标出各关系的主键。
(3)给出创建“出版”关系(表)的SQL语句(需要创建相应的主键约束和外键约束)。
(4)创建一个由地址中含有“成都市”的出版社出版的书籍的视图。
(5)请分别用关系代数表达式和SQL查询语句表达下列查询:①由出版社“XNJDP”出版的、由编辑名为“MTQ”校对的书籍的ISBN号和书名。
②由“男”性作者主编的、且由出版社“XNJDP”在2008.1.1至2008.12.31之间出版的书籍的ISBN号和书名。
③由“女”性编辑校对的、且单价在20至40元之间的书籍的ISBN号和书名。
答:(1)2)出版社Publisher (出版社编码Pid,出版社名称Pname,地址Paddr,电话Ptel, 国际图书分类号Isbn, 出版日期Pdate)编辑Editor(编辑工号Eid,姓名Ename,性别Egender,,出生日期, 国际图书分类号Isbn)作者Author(作者编码Aid,姓名Aname,性别Agender,电话Atel, 国际图书分类号Isbn)书籍Book(国际图书分类号Isbn,书名Bname,单价Bprice)。
3)CREATE TABLE Publisher( Pid char NOT NULL,Pname char NOT NULL,Paddr char NOT NULL,Ptel char NOT NULL,Isbn char NOT NULL,Pdete datetime NOT NULL,CONSTREINT Pid_Key PRIMARY KEY (Pid),CONSTRAINT Isbn_constREFERENCES Book( Isbn)ON DELETE CASCADEON UPDATE CASCADE)4) CREATE VIEW Book(Isbn, Bname,Bprice)ASSELECT Isbn, Bname,BpriceFROM Publisher,BookWHERE Publisher .Paddr=‘成都市’AND Publisher.Isbn= Book .Isbn 5)①πIsbn, Bname(σPname=XNJDP(Publisher)σEname=MTQ(Editor) Book)SELECT Isbn, BnameFROM Publisher,Book, EditorWHERE Publisher.Pname=’XNJDP’AND Editor.Ename=’MTQ’ANG Publisher.Isbn= Book .IsbnAND Editor.Isbn= Book .Isbn②πIsbn, Bname(σPname=XNJDP(Publisher)∩σPdate<2008.12.31(Publisher)∩σPdate>2008.1.1(Publisher))σAgender=‘男‘(Author) Book)SELECT Isbn, BnameFROM Publisher,Book, AuthorWHERE Publisher.Pname=’XNJDP’AND Publisher. Pdate<2008.12.31 AND Publisher.Pdate>2008.1.1 AND Author. Agender=‘男’ ANG Publisher.Isbn= Book .Isbn AND Author.Isbn= Book .Isbn③πIsbn, Bname(σEgender=‘女‘(Editor) (σBprice>20(Book)∩σBprice<40(Book)) SELECT Isbn, BnameFROM Book, EditorWHERE Book.Bprice>20 AND Book.Bprice<40 AND Editor. Egender‘女’ANG Editor.Isbn==Book .Isbn(注:文档可能无法思考全面,请浏览后下载,供参考。