数据库课后题答案 第6章 管理数据库其他对象
数据库系统原理及应用教程第四版课后答案(苗雪兰 刘瑞新) 机械工业出版社第6章汇总

6.2答: ① SELECT 姓名,联系电话 FROM 供应商 WHERE 所在城市='天津 ② SELECT * FROM 工程 WHERE 预算 BETWEEN 50000 AND 100000 ORDER BY 预算 DESC ③ SELECT 工程代号 FROM 供应零件 WHERE 供应商代码='S1 ④ SELECT 零件.零件名, 供应零件.数量 FROM 零件,供应零件 WHERE 零件.零件代码=供应零件.零件代码 AND 供应零件.工程代码= 'J2' ⑤ SELECT 零件代号 FROM 供应商, 供应零件 WHERE供应商.供应商代码=供应零件.供应商代码 AND 供应商.所在城 市='上海'
6.1答: ① CREATE TABLE 职工(职工号 CHAR(10) NOT NULL UNIQUE, 姓名 CHAR(8) NOT NULL, 年龄 SMALLINT, 性别 CHAR(2), CONSTRAINT C1 CHECK(性别 IN ('男','女'))) Go CREATE TABLE 社会团体(编号 CHAR(8) NOT NULL UNIQUE, 名称 CHAR(12) NOT NULL, 负责人 CHAR(8), 活动地点 VARCHAR(50), CONSTRAINT C2 FOREIGN KEY(负责人) REFERENCES职工(职工号)) Go CREATE TABLE 参加(职工号 CHAR(8), 编号 CHAR(8), 参加日期 DATE, CONSTRAINT C3 PRIMARY KEY(职工号, 编号), CONSTRAIN C3 FOREIGN KEY(职工号) REFERENCES 职工(职工号)) Go ②SELECT 职工号, 姓名 FROM 职工, 社会团体, 参加 WHERE 职工.职工号=参加.职工号 AND 参加.编号=社会团体.编号 AND社会团体.名称 IN ('唱歌队', '篮球队') ③SELECT * FROM 职工 WHERE NOT EXISTS ( SELECT * FROM 参加 WHERE 参加.职工号=职工.职工号) ④ SELECT * FROM 职工 WHERE NOT EXISTS (SELECT * FROM 参加 WHERE NOT EXISTS (SELECT * FROM 社会团体 WHERE 参加.职工号=职工.职工号 AND 参加.编号=社会团体.编号))
数据库6版第二、六章习题解答 (1)

数据库5版第二章习题解答表结构employee(person-name,street, city)worker (person-name, company-name, salary)company (company-name, city )manages (person-name, manager-name)2.1 主码employee(person-name,street, city)worker (person-name, company-name, salary)company (company-name, city )manages (person-name, manager-name)2.7a)Πperson-name(σcity=”Miami”(employee))b) Πperson-name(σsalary >100000 (works))c) Πperson-name(σcity=”Miami”∧salary >100000(employee∞works))2.12a)Πperson-name(σcompany-name=”first…”(works) )b) Πperson-name, city(σcompany-name=”first…”(employee∞works) )c) Πperson-name, street,city(σcompany-name=”first…”∧salary >100000 (employee∞works))6.2a) 找出与其经理居住在同一城市同一街道的所有员工的姓名。
分析:用e1扩充manages中员工的属性,用e2扩充manages中经理的属性Πe1.person-name(σe1.person-name=manages.person-name∧manages.manager-name=e2.person-name∧e1.street=e2.street∧e1.city=e2.city( (ρe1(employee)×manages×ρe2(employee)))b) 找出此数据库中不在First Bank Corporation 公司工作的所有员工姓名。
数据库原理课后答案第六章

第6章数据库设计一、选择题1、下列对数据库应用系统设计的说法中正确的是应用程序员可以不必参与数据库的概念结构设计2、在需求分析阶段,常用数据流图描述用户单位的业务流程。
3、下列对E-R图设计的说法中错误的是集成后所得的E-R图中可能存在冗余数据和冗余联系,应予以全部清除4、下列属于逻辑结构设计阶段任务的是将E-R图转换为一组关系模式5、将一个一对多联系型转换为一个独立关系模式时,应取多端实体型的关键属性为关键字。
6、将一个M对N(M>N)的联系型转换成关系模式时,应转换为一个独立的关系模式7、在从E-R图到关系模式的转化过程中,下列说法错误的是关系模式的规范化程度越高,查询的效率就越高8、对数据库的物理设计优劣评价的重点是时空效率A.B.动态和静态性能C.用户界面的友好性D.成本和效益9、下列不属于数据库物理结构设计阶段任务的是确定选用的DBMS10、确定数据的存储结构和存取方法时,下列策略中将表和索引存储在同一磁盘上不利于提高查询效率。
二、填空题1、在设计分E-R图时,由于各个子系统分别面向不同的应用,所以各个分E-R图之间难免存在冲突,这些冲突主要包括_命名冲突_、_属性冲突_和_结构冲突_三类。
2、数据字典中的_数据项_是不可再分的数据单位。
3、若在两个局部E-R图中都有实体“零件”的“重量”属性,而所用重量单位分别为公斤和克,则称这两个E-R图存在_属性_冲突。
4、设有E-R图如图6.18,其中实体“学生”的关键属性是“学号”,实体“课程”的关键属性是“课程编码”,设将其中联系“选修”转换为关系模式R,则R的关键字应为属性集_学号与课程编码__。
5、确定数据库的物理结构主要包括三方面内容,即:_确定数据存放位置和存储结构_、_确定数据存取方法_和_系统配置_。
6、将关系R中在属性A上具有相同值的元组集中存放在连续的物理块上,称为对关系R基于属性A进行_聚簇_。
7、数据库设计的重要特点之一要把_结构(数据)_设计和__行为(处理)_设计密切结合起来,并以_结构(数据)_为核心而展开。
数据库课后题答案 第6章 管理数据库其他对象

第6章管理数据库其他对象本章要点:1、视图及视图与表的关系2、视图的创建、管理和操作3、规则、默认值的概念及创建、捆绑、修改和删除4、自定义数据类型的创建、修改、删除和查看5、触发器的概念、作用及两种触发器的工作原理和执行过程6、触发器的创建及管理6.1 视图6.1.1 视图的概念视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果。
视图被定义后便存储在数据库中,通过视图看到的数据只是存放在基表中的数据。
当对通过视图看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。
视图可以是一个数据表的一部分,也可以是多个基表的联合。
6.1.2 视图的优点⏹视图可以屏蔽数据的复杂性,简化用户对数据库的操作。
⏹视图可以让不同的用户以不同的方式看到不同或者相同的数据集。
⏹可以使用视图重新组织数据。
⏹视图可以定制不同用户对数据的访问权限。
6.1.3 创建视图1、创建视图之前的注意事项:⏹只能在当前数据库中创建视图。
⏹一个视图中行、列的限制。
⏹如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。
⏹视图与基表的关系⏹不能在视图上创建索引,不能在规则、默认的定义中引用视图。
2、创建视图(1)使用企业管理器创建视图在企业管理器中展开要创建视图的数据库,用鼠标右键单击“视图”选项,在弹出的快捷菜单中选择“新建视图”命令,打开后,这个界面我们在前面介绍select语句的时候已经给大家介绍过了。
在此不再赘述了,请大家对照书本的例子练习。
(2)使用Transact-SQL语句创建视图CREATE VIEW[ < database_name > .] [ < owner > .]view_name [ ( column [ ,...n ] ) ][ WITH < view_attribute > [ ,...n ] ]ASselect_statement[ WITH CHECK OPTION ]< view_attribute > ::={ ENCRYPTION | SCHEMABINDING |VIEW_METADATA }举例:在“studentborrow”数据库中,创建一个仅包含“高等教育出版社”出版图书的视图语句:create view 高等教育出版社asselect *from 图书信息where 出版社名称='高等教育出版社'创建一个视图,其中的内容是所有价格低于10元的图书,并加密视图的定义。
数据库原理与应用教程第四版 第六章答案

免责声明:私人学习之余整理,如有错漏,概不负责1.关系规范化中的操作异常有哪些?是由什么引起的?解决方法是什么?操作异常有数据冗余问题、数据更新问题、数据插入问题、数据删除问题。
其产生的原因是关系模式没有设计好,某些属性之间存在不良的函数依赖。
解决方法是进行模式分解,把一个不良的关系模式分解为两个或多个关系模式。
2.第一、二、三范式的定义分别是什么?第一范式:不包含重复组的关系,即不包含非原子项的属性。
第二范式:属于第一范式,且每个非主属性都完全函数依赖于主码。
第三范式:属于第二范式,且所有非主属性都不传递依赖于主码。
3.什么是部分函数依赖?什么是传递函数依赖?举例说明。
部分函数依赖:在关系模式R(U)中,如果X→Y,并且存在X的一个真子集X0,使得X0→Y,则称Y对X部分函数依赖。
传递函数依赖:在关系模式R(U)中,设X,Y,Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖于X。
4.第三范式的关系模式是否一定不包含部分函数依赖?不一定。
可列举以下关系模式:关系模式(A,B,C,D)中AB和BC为候选码,AC相互依赖,D完全依赖于AB或BC,则ABC为主属性。
令AB为主码,此关系模式中各属性不可再分,且非主属性D完全依赖于主码,并不传递依赖于主码,则其为第三范式,但主属性C部分依赖于主码AB。
实际例子:(学号,课程号,身份证号,成绩)候选码:(学号,课程号)和(课程号,身份证号)主码:(学号,课程号)主属性:学号,课程号,身份证号非主属性:成绩5.对于主码只有一个属性组成的关系模式,如果它是第一范式,则它是否也一定是第二范式?第一范式主码只有一个属性,则不存在部分依赖关系,即一定是第二范式。
6.学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)关系模式…。
指出候选码,判断是第几范式,转为第三范式并指出主码与外码。
数据库第六章习题答案

第六章习题答案一、选择填空1、A2、C3、D4、B5、D6、A7、C8、A9、D 10、A11、C 12、A 13、B 14、C 15、C 16、D 17、B 18、C 19、A 20、D21、C 22、B二、判断下列描述的正确性,对者划√,错者划×。
1、√2、×3、×4、×5、√6、√7、×8、√9、×10、√11、√12、√13、√14、√15、×16、√17、√18、√19、√20、×21、×22、×三、分析下列程序的输出结果。
1、运行该程序输出结果如下所示。
Default constructor calledConstructor calleda=0,b=0a=4,b=82、运行该程序输出结果如下所示。
a=7,b=93、运行该程序输出结果如下所示。
1044、运行该程序输出结果如下所示。
1035,789.5045、运行该程序输出结果如下所示。
1{}{0,1,2,3,4,5,6,7,8}1{11,12,13,14,15,16,17,18,19}{19,18,17,16,15,14,13,12,11}6、运行该程序输出结果如下所示。
Starting1:Default constructor called.Default constructor called.Default constructor called.Eding1:Starting2:Constructor: a=5,b=6Constructor: a=7,b=8Constructor: a=9,b=10Ending2:Destructor called.a=9,b=10Destructor called.a=7,b=8Destructor called.a=5,b=6Destructor called.a=5,b=6Destructor called.a=3,b=4Destructor called.a=1,b=27、运行该程序输出结果如下所示。
电大数据库系统与应用,形考册第6章,习题与参考答案

第6章习题与参考答案一.单项选择题1.下列关于视图的说法,正确的是〔B。
A.视图与基本表一样,也存储数据B.对视图的操作最终都转换为对基本表的操作C.视图的数据源只能是基本表D.所有视图都可以实现对数据的增、删、改、查操作2.在视图的定义语句中,只能包含〔A。
A.数据查询语句B.数据增、删、改语句C.创建表的语句D.全部都可以3.视图对应数据库三级模式中的〔A。
A.外模式B.内模式C.模式D.其他4.下列关于视图的说法,正确的是〔B。
A.通过视图可以提高数据查询效率B.视图提供了数据的逻辑独立性C.视图只能建立在基本表上D.定义视图的语句可以包含数据更改语句5.创建视图的主要作用是〔D。
A.提高数据查询效率B.维护数据的完整性约束C.维护数据的一致性D.提供用户视角的数据6.设有学生表〔学号,姓名,所在系。
下列建立统计每个系的学生人数的视图语句中,正确的是〔D。
A.CREATE VIEW v1ASSELECT 所在系, COUNT<*> FROM 学生表GROUP BY 所在系B.CREATE VIEW v1ASSELECT 所在系, SUM<*> FROM 学生表GROUP BY 所在系C.CREATE VIEW v1<系名,人数> ASSELECT 所在系, SUM<*> FROM 学生表GROUP BY 所在系D.CREATE VIEW v1<系名,人数> ASSELECT 所在系, COUNT<*> FROM 学生表GROUP BY 所在系7.设用户在某数据库中经常需要进行如下查询操作:SELECT * FROM T WHERE C1='A' ORDER BY C2设T表中已在C1列上建立了主键约束,且该表只建有该约束。
为提高该查询的执行效率,下列方法中可行的是〔C。
A.在C1列上建立一个聚集索引,在C2列上建立一个非聚集索引B.在C1和C2列上分别建立一个非聚集索引C.在C2列上建立一个非聚集索引D.在C1和C2列上建立一个组合的非聚集索引8.下列关于索引的说法,正确的是〔C。
第6章 管理数据库

第6章管理数据库在创建完成数据库之后,就可以对数据库进行管理操作,主要包括查看、修改和删除。
查看是指可以浏览数据库的各种属性和状态;修改是指可以修改数据库的名称、大小、自动增长等;删除数据库是对不需要的数据库进行删除,以释放多余的磁盘空间。
6.1 查看数据库信息Microsoft SQL Server 2008系统中,查看数据库信息有很多种方法,例如,可以使用目录视图、函数和存储过程等查看有关数据库的基本信息。
下面分别来介绍这几种查看数据库信息的基本方式。
1.使用目录视图常见的查看数据库基本信息的操作有:●使用sys.databases数据库和文件目录视图查看有关数据库的基本信息●使用sys.database_files查看有关数据库文件的信息●使用sys.filegroups查看有关数据库组的信息●使用sys.maste_files查看数据库文件的基本信息和状态信息2.使用函数可以使用DATABASEPROPERTYEX函数来查看指定数据库中的指定选项的信息,该函数一次只能返回一个选项的设置。
例如,要查看【图书管理系统(BookDateBase)】数据代码的执行结果如图6-1所示:图6-1查看数据库选项设置3.使用存储过程使用sp_spaceused存储过程可以显示数据库使用和保留的空间。
下面来查看【图书管理系统(BookDateBase)】数据库的空间大小和已经使用的空间等信息。
如图6-2所示。
图6-2使用sp_spaceused存储过程可以查看所有数据库的基本信息,仍然来查看【图书管理系统(BookDateBase)】数据库的信息,如图6-3所示。
图6-3使用sp_helpdb存储过程除上面介绍的几种方法外,还可以利用Microsoft SQL Server Management Studio窗口来查看数据库信息。
在【对象资源管理器】窗格中右击要查看信息的数据库,选择【属性】命令,在弹出的【数据库属性】对话框中就可以查看到数据库的常规信息、文件信息、文件组信息、选项信息等,如图6-4所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章管理数据库其他对象
本章要点:
1、视图及视图与表的关系
2、视图的创建、管理和操作
3、规则、默认值的概念及创建、捆绑、修改和删除
4、自定义数据类型的创建、修改、删除和查看
5、触发器的概念、作用及两种触发器的工作原理和执行过程
6、触发器的创建及管理
6.1 视图
6.1.1 视图的概念
视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果。
视图被定义后便存储在数据库中,通过视图看到的数据只是存放在基表中的数据。
当对通过视图看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。
视图可以是一个数据表的一部分,也可以是多个基表的联合。
6.1.2 视图的优点
⏹视图可以屏蔽数据的复杂性,简化用户对数据库的操作。
⏹视图可以让不同的用户以不同的方式看到不同或者相同的数据集。
⏹可以使用视图重新组织数据。
⏹视图可以定制不同用户对数据的访问权限。
6.1.3 创建视图
1、创建视图之前的注意事项:
⏹只能在当前数据库中创建视图。
⏹一个视图中行、列的限制。
⏹如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。
⏹视图与基表的关系
⏹不能在视图上创建索引,不能在规则、默认的定义中引用视图。
2、创建视图
(1)使用企业管理器创建视图
在企业管理器中展开要创建视图的数据库,用鼠标右键单击“视图”选项,
在弹出的快捷菜单中选择“新建视图”命令,打开后,这个界面我们在前
面介绍select语句的时候已经给大家介绍过了。
在此不再赘述了,请大家
对照书本的例子练习。
(2)使用Transact-SQL语句创建视图
CREATE VIEW
[ < database_name > .] [ < owner > .]
view_name [ ( column [ ,...n ] ) ]
[ WITH < view_attribute > [ ,...n ] ]
AS
select_statement
[ WITH CHECK OPTION ]
< view_attribute > ::=
{ ENCRYPTION | SCHEMABINDING |
VIEW_METADATA }
举例:
在“studentborrow”数据库中,创建一个仅包含“高等教育出版社”出版图书的视图
语句:
create view 高等教育出版社
as
select *
from 图书信息
where 出版社名称='高等教育出版社'
创建一个视图,其中的内容是所有价格低于10元的图书,并加密视图的定义。
create view ddd
with encryption
as
select *
from 图书信息
where 定价<10
此时右单击视图“低价图书”->属性->文本行定义不可见
(2)使用向导创建视图
选择“工具”->“向导”->“数据库向导”->“创建视图向导”,根据向导的提示一步一步操作即可。
6.1.4 查看视图信息
1、使用企业管理器查看视图信息
2、使用系统存储过程查看视图信息
sp_help 数据库对象名称
sp_helptext 视图(触发器、存储过程)
sp_depends 数据库对象名称
举例:查看视图高等教育出版社定义
exec sp_helptext 高等教育出版社
6.1.5 修改视图
1.使用企业管理器修改视图
2.使用Transact-SQL语句修改视图
ALTER VIEW view_name
[(column[,...n])]
[WITH ENCRYPTION]
AS
select_statement
[ WITH CHECK OPTION ]
6.1.6 重命名视图
1.使用企业管理器重命名视图
2.使用系统存储过程重命名视图
sp_rename old_name,new_name
6.1.7 使用视图
⏹修改视图中的数据时每次修改都只能影响一个基表。
⏹不能修改那些通过计算得到的字段。
⏹如果在创建视图时指定了WITH CHECK OPTION选项,那么所有使用视图修改数据库信息时,必须保证修改后的数据满足视图定义的范围。
⏹执行UPDATE、DELETE命令时,所删除与更新的数据必须包含在视图的结果集中。
⏹如果视图引用多个表时,无法用DELETE命令删除数据,若使用UPDATE命令则应与INSERT操作一样,被更新的列必须属于同一个表。
6.1.8 删除视图
1、使用企业管理器删除视图
2、使用Transact-SQL语句删除视图
DROP VIEW {view_name} [,…n]
第二节用户自定义数据类型
用户自定义数据类型并不是真正的数据类型,它只是提供了一种加强数据库内部元素和基本数据类型之间一致性的机制。
通过使用用户自定义数据类型,能够简化对常用规则和默认值的管理。
6.2.1 创建用户自定义数据类型
1、使用T-SQL语句
可以使用系统存储过程sp_addtype来创建用户自定义数据类型。
语法:
sp_addtype type_name[,system_type]{‘null’,|’not null’|’notnull’}。