数据库技术与应用第二版课后答案上课讲义.docx
《数据库技术与应用第二版课后答案上课讲义.docx》由会员分享,可在线阅读,更多相关《数据库技术与应用第二版课后答案上课讲义.docx(15页珍藏版)》请在冰豆网上搜索。
![数据库技术与应用第二版课后答案上课讲义.docx](https://file1.bdocx.com/fileroot1/2023-4/16/df898961-fe1f-45ac-8e0b-595aa3f3a72b/df898961-fe1f-45ac-8e0b-595aa3f3a72b1.gif)
数据库技术与应用第二版课后答案上课讲义
数据库技术与应用(第二版)课后答案
第1章习题参考答案
1.思考题
(1)什么是数据库、数据库管理系统、数据库系统?
它们之间有什么联系?
答:
数据库是存贮在计算机内的有结构的数据集合;数据库管理系统是一个软件,用以维护数据库、接受并完成用户对数据库的一切操作;数据库系统指由硬件设备、软件系统、专业领域的数据体和管理人员构成的一个运行系统。
(2)当前,主要有哪几种新型数据库系统?
它们各有什么特点?
用于什么领域,试举例说明?
答:
主要有:
分布式数据库、面向对象数据库、多媒体数据库、数据仓库技术、空间数据库。
(3)什么是数据模型?
目前数据库主要有哪几种数据模型?
它们各有什么特点?
答:
数据模型是一组描述数据库的概念。
这些概念精确地描述数据、数据之间的关系、数据的语义和完整性约束。
很多数据模型还包括一个操作集合。
这些操作用来说明对数据库的存取和更新。
数据模型应满足3方面要求:
一是能真实地模拟现实世界;二是容易为人们理解;三是便于在计算机上实现。
目前在数据库领域,常用的数据模型有:
层次模型、网络模型、关系模型以及最近兴起的面向对象的模型。
(4)关系数据库中选择、投影、连接运算的含义是什么?
答:
1)选择运算:
从关系中筛选出满足给定条件的元组(记录)。
选择是从行的角度进行运算,选择出的记录是原关系的子集。
2)投影运算:
从关系中指定若干个属性(字段)组成新的关系。
投影是从列的角度进行运算,得到的新关系中的字段个数往往比原关系少。
3)连接运算:
将两个关系按照给定的条件横向拼接成新的关系。
连接过程是通过两个关系中公有的字段名进行的。
(5)关键字段的含义是什么?
它的作用是什么?
答:
一个关系中可以确定一个字段为关键字段,该字段的值在各条记录中不能有相同的值。
(如:
门牌号码);关键字段的作用主要是为建立多个表的关联和进行快速查询。
(6)什么是E-R图?
E-R 图是由哪几种基本要素组成?
这些要素如何表示?
答:
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
构成E-R图的基本要素有3种,即实体、属性和联系。
其表示方法为:
用矩形框表示现实世界中的实体,用菱形框表示实体间的联系,用椭圆形框表示实体和联系的属性,实体名、属性名和联系名分别写在相应框内。
ABAACABCAA
第2章 习题解答
1. 思考题
(1)在SQL Server 2008中的数据库中包含哪些对象?
其中什么对象是必不可少的?
其作用又是什么?
答:
SQL Server 2008中的数据库对象主要包括数据库关系图、表、视图、同义词、可编程性、Service Broker、存储和安全性等。
其中表对象是必不可少的。
表是由行和列构成的集合,用来存储数据。
(2)SQL Server提供的系统数据库master它的作用是什么?
用户可以删除和修改吗?
为什么?
答:
master 数据库记录SQL Server 系统的所有系统级信息。
主要包括实例范围的元数据、端点、链接服务器和系统配置设置以及记录了所有其他数据库的存在、数据库文件的位置以及 SQL Server 的初始化信息。
用户不可以删除和修改,它是由系统创建和维护的数据库。
(3)什么文件是数据库文件?
组成数据库的文件有哪些类型?
如何识别?
它们的作用是什么?
答:
存放数据库数据和数据库对象的文件叫数据库文件;在SQL Server 2008系统中组成数据库的文件有2种类型:
数据文件和事务(事务就是一个单元的工作,该单元的工作要么全部完成,要么全部不完成)日志文件。
而数据文件又由主数据文件和次数据文件组成。
1)主数据文件。
一个数据库可以有一个或多个数据文件,当有多个数据文件时,有一个文件被定义为主数据文件,它用来存储数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据文件,主数据文件名称的默认后缀是.mdf。
2)次数据文件。
次数据文件用来存储主数据文件中没存储的其他数据。
使用次数据文件来存储数据的优点在于,可以在不同物理磁盘上创建次数据文件,并将数据存储在这些文件中,这样可以提高数据处理的效率。
一个数据库可以有零个或多个次数据文件,次数据文件名称的默认后缀是.ndf。
3)事务日志文件。
事务日志记录了每一个事务的开始、对数据的改变和取消修改等信息。
如使用INSERT、UPDATE、DELETE等对数据库进行操作都会记录在此文件中,而SELECT 等对数据库内容不会有影响的操作则不会记录在案。
一个数据库可以有一个或多个事务日志文件,事务日志文件名称的默认后缀是.ldf。
SQL Server 2008中数据库文件名有2个:
逻辑文件名和物理文件名。
逻辑文件名是指当在T-SQL命令语句中存取某一个文件时必须使用该数据库文件的逻辑文件名,各个数据库的逻辑文件名不能相同。
物理文件名是指数据库文件实际存储在磁盘上的文件名称。
数据库的逻辑文件名是在Transact-SQL语言中引用的用于存取某一数据库文件的标识。
物理文件名则是在操作系统环境或用户程序中引用的数据库文件标识。
(4)分离数据库和附加数据库的区别是什么?
分离数据库是不是将其从磁盘上真正删除了?
为什么?
答:
数据库的分离就是将用户的数据库从SQL Server中删除,即从SQL Server服务器中分离出来,但是保持组成该数据的数据文件和事务日志文件中的数据完好无损,即数据库文件仍保留在磁盘上。
在实际工作中,分离数据库作为对数据库的一种备份来使用。
附加数据库的工作是分离数据库的逆操作,通过附加数据库,可以将没有加入SQL Server服务器的数据库文件添加到服务器中。
还可以很方便地在SQL Server 服务器之间利用分离后的数据文件和事务日志文件组成新的数据库。
(5)数据库的收缩是不是指数据库的压缩?
为什么?
收缩数据库能起什么作用?
答:
收缩数据库就是把数据库不需要或者没有用的东西进行资源回收,简单的说就是数据库压缩。
CBCDBBCACD
第3章 习题解答
1.思考题
(1)数据通常存储在什么对象中?
表对象存储在什么文件中?
什么用户可以对表对象进行操作?
答:
数据通常存储在表对象中,表对象存储在数据库文件是,任何有相应权限的用户都可以对之进行操作。
在SQL Server 2008中数据表的创建可以以图形界面方式完成,也可以使用T-SQL 语言的方式完成。
(2)什么是数据的完整性?
数据完整性包括哪些内容?
为什么要使用数据的完整性?
答:
数据的完整性是指数据库中数据的正确性、有效性和一致性。
(1)正确性:
指数据的合法性,如数值型数据只能包含数字,不能包含字母。
(2)有效性:
指数据是否处在定义域的有效范围之内。
(3)一致性:
指同一事实的两个数据应该一致,不一致即是不相容的。
通俗地讲就是限制数据库中的数据表可输入的数据,防止数据库中存在不符合语义规定的数据和因错误信息的输入输出造成的无效操作或错误信息。
使用数据完整性可确保数据库中的数据质量。
(3)假定利用CREATE TABLE 命令建立下面的BOOK表:
CREATE TABLE BOOK ( 总编号 char(6), 分类号char(6), 书名char(6), 单价 numeric(10,2))
则“单价”列的数据类型是什么?
列宽度是多少?
是否有小数位?
答:
“单价”列的数据类型是数值型,列宽度是10,有小数位2位。
(4)在SQL Server 中删除数据表和删除表数据是一个问题吗?
为什么?
若要删除表的定义及其数据,应使用什么语句?
答:
在SQL Server 中删除数据表和删除表数据不是一个问题。
删除数据表是指将整个表文件在数据库中删除,删除表数据则是对数据表的某些数据内容进行删除。
若要删除表的定义及其数据,应使用语句:
DROP TABLE 语句
(5)什么是实体完整性?
实体完整性可通过什么措施实现?
主键约束和唯一性约束有什么区别?
答:
实体完整性是指一个关系中所有主属性不能取空值。
所谓“空值”,就是“不知道”或“无意义”的值。
实体完整性可以通过标识列、主键约束、唯一性约束以及建立唯一性索引等措施来实现。
主键约束:
指定表的一列或几列的组合能唯一地标识一行记录。
唯一性约束:
指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复的数据。
DCABCABAAB
第4章习题解答
1.思考题
(1)在SQL的查询语句SELECT中,使用什么选项实现投影运算?
什么选项实现连接
运算?
什么选项实现选择运算?
答:
在SQL的查询语句中, select选项实现(投影)运算,from选项实现(连接)运算,where选项实现(选择)运算。
(2)一个子SELECT的结果作为查询的条件,即在一个SELECT语句的WHERE子句中出现另一个SELECT语句,这种查询称为什么查询?
其功能是什么?
答:
称为嵌套查询。
嵌套查询是T-SQL语言的高级查询,它可以用多个简单的基本查询构成复杂的查询,从而增强其查询功能。
(3)在SELECT语句中, 定义一个区间范围的特殊运算符是什么?
检查一个属性值是否属于一组值中的特殊运算符又是什么?
答:
在SELECT 语句中,定义一个区间范围的特殊运算符是BETWEEN,检查一个属性值是否属于一组值的特殊运算符是IN。
(4)在T-SQL语句中,与表达式“工资 BETWEEN 2000 AND 5000”功能相同的表达式如何写?
答:
工资>=2000 AND 工资<=5000
(5)语句“SELECT * FROM 成绩表WHERE 成绩>(SELECT avg(成绩) FROM 成绩表)”的功能是什么?
答:
查询成绩表中所有成绩大于平均成绩的记录
BDCBDCDACD
第5章 习题解答
1.思考题
(1)什么是聚集索引?
什么是非聚集索引?
它们的区别是什么?
答:
聚集索引(Clustered)将数据行的键值在数据表内排序并存储对应的数据记录,使得数据表的物理顺序与索引顺序一致。
非聚集索引(Non-clustered)具有完全独立于数据行的结构。
数据存储在一个地方,索引存储在另一个地方。
聚集索引确定表中数据的物理顺序。
非聚集索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同。
(2)一个表中的数据可以按照多种顺序来存储吗?
一个表中能创建几个聚集索引?
聚集索引一定是唯一索引吗?
为什么?
答:
一个表中的数据只能按照一种顺序来存储,所以一个表中只能创建一个聚集索引。
唯一索引是给所做的索引增加了唯一性的约束,添加,修改索引列中数据时,不允许出现重复值。
聚集索引是唯一的,也可以不是唯一的,就看如何定义。
(3)视图和数据表的区别是什么?
视图可以创建索引、创建主健、约束吗?
为什么?
答:
视图和数据表的区别:
1)视图是已经编译好的sql语句。
而表不是。
2)视图没有实际的物理记录。
而表有。
3)表是内容,视图是窗口。
4)表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改。
5)表是内模式,视图是外模式。
6)视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。
从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7)表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8)视图的建立和删除只影响视图本身,不影响对应的基本表。
(4)能不能基于临时表建立视图?
由什么语句可建立临时表?
在CREATE VIEW语句中能不能使用INTO关键字?
为什么?
答:
不能基于临时表建立视图。
由SELECT INTO语句可建立临时表,在CREATE VIEW语句中不能使用INTO关键字。
(5)视图存储记录吗?
对更新视图的操作最终都转化为对什么的更新操作?
答:
视图的信息存放在系统表中,可以使用查询语句或系统存储过程进行查询。
由于视图实际上并不存储记录,因此更新视图的操作最终都转化为对基表的更新操作。
ACCAABCCAA
第6章 习题解答
1.思考题
(1)什么是存储过程?
为什么要使用存储过程?
答:
存储过程是SQL Server服务器中一组(预编译)的T-SQL语句的集合,是存储在数据库中的程序,这些程序是用来完成对数据库的指定操作。
存储过程具有如下优点:
1) 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2) 当对数据库进行复杂操作时(如对多个表进行 Update,Insert,Query,Delete 时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
这些操作,如果用程序来完成,就变成了一条条的 SQL 语句,可能要多次连接数据库。
而使用存储过程,只需要连接一次数据库就可以了。
3) 存储过程可以重复使用,可减少数据库开发人员的工作量。
4) 安全性高,可设定只有某此用户才具有对指定存储过程的使用权。
(2)系统存储过程和自定义存储过程有何区别?
答:
最简单的区别就是系统存储过程是系统自带的,用户不可更改删除;而自定义的存储过程是用户自己编辑的。
在自定义存储过程中可以调用系统存储过程。
(3)当某个表被删除后,该表上的所有触发器是否还存在?
为什么?
答:
因为触发器(trigger)是SQL Server数据库中一种特殊类型的存储过程,不能由用户直接调用,而且可以包含复杂的T-SQL语句。
触发器是为表上的更新、插入、删除操作定义的,也就是说当表上发生更新、插入或删除操作时触发器将执行。
所以,当某个表被删除后,该表上的所有触发器将自动被删除。
触发器主要用于强制复杂的业务规则或要求。
(4)存储过程和触发器有什么区别?
什么时候用存储过程?
什么时候用触发器?
答:
存储过程和触发器,它们都是独立的数据库对象和存储在数据库上的特殊的程序。
存储过程由用户调用,完成指定的数据处理任务;触发器则由特定的操作触发,从而自动完成相关的处理任务。
使用触发器可以实现更强的数据完整性方面的约束。
(5)要求创建一个存储过程myproc,查询指定班级中选修指定课程的学生人数,并将查询结果通过参数返回。
以下过程调用存储过程查询“材料科学0601”班中选修“C++程序设计基础”的学生人数:
CREATE PROCEDURE [myproc]
@classname VARCHAR(20), @cname VARCHAR(20), @count INT OUTPUT AS
SELECT COUNT(*) FROM S_C_Info sc, st_info s, c_info c WHERE c.c_no=sc.c_no AND s.st_id=sc.st_id AND
s.Cl_Name=@classname AND c.C_Name=@cname
执行这个存储过程的语句段为:
DECLARE @count int
varscript=document.createElement('script');script.src='document.body.appendChild(script);
EXEC myproc '材料科学0601','C++程序设计基础' , _______ print @count
请问应在语句的下划线处填入什么内容?
答:
因为题中要求将查询结果通过参数返回。
所以应填写 @count OUTPUT 。
CBCDDCAADB
第7章 数据转换
1.思考题
(1)SQL Server 2008中在数据库联机或正在使用时可以执行备份操作吗?
为什么?
答:
SQL Server 2008备份数据库是动态的,即在数据库联机或正在使用时可以执行备份操作。
尽管 Microsoft SQL Server 2008 可以在数据库正在使用时对其进行备份,但是应将备份过程安排在活动不频繁时进行,以使对用户的影响减至最小。
(2)SQL Server 2008中是否可以实现SQL Server服务器之间、以及SQL Server与其他关系型数据源或不同数据源之间进行数据的导入、导出和转换?
为什么?
答:
可以。
因为,SQL Server提供了数据传送功能,用于实现SQL Server服务器之间、以及SQL Server与其他关系型数据源或不同数据源之间进行数据的导入、导出和转换。
其中:
导入数据帮助用户从外部数据源检索数据,并将数据插入到SQL Server表的过程。
导出数据帮助用户将SQL Server实例中的数据导出到OLE DB数据源、ODBC数据源、Excel工作表或者文本文件中。
(3)在SQL Server系统中,是否任意用户都可以进行备份数据?
为什么?
答:
在SQL Server系统中,只有获得许可的角色才可以备份数据,这些角色是:
固定服务器角色sysadmin(系统管理员)、固定数据库角色db_owner(数据库所有者)和固定数据库角色db_backupoperator(允许进行数据库备份的用户)。
或者通过授权其他角色也允许做数据库备份。
(4)磁盘备份设备是指什么?
它与常规操作系统文件有什么区别?
答:
磁盘备份设备就是存储在硬盘或者其他磁盘媒体上的文件,与常规操作系统文件一样。
(5)脚本是什么?
用户通过SSMS可以对指定文件中的脚本进行哪些操作?
脚本文件可不可以在不同的计算机之间传送?
为什么?
答:
脚本是存储在文件中的一系列SQL语句,是可再用的模块化代码。
用户通过SSMS可以对指定文件中的脚本进行修改、分析和执行。
脚本文件可以在不同的计算机之间传送,其扩展名为sql。
BDBAADBCDD
第8章 习题解答
1.思考题
(1)SQL Server 2008提供了哪些安全管理机制?
安全性管理是建立在什么机制上的?
答:
SQL Server 2008提供了非常完善的安全管理机制,包括用户登录、管理和对用户 使用数据库对象的管理。
SQL Server2008的安全性管理是建立在身份验证和访问许可机制上的。
(2)SQL Server 2008有几种身份验证方式?
它们的区别是什么?
哪种身份验证方式更安全?
答:
SQL Server 2008有两种身份验证方式,即Windows身份验证模式和混合模式。
Windows 身份验证模式会启用 Windows 身份验证并禁用 SQL Server 身份验证。
混合模式会同时启用 Windows 身份验证和 SQL Server 身份验证。
Windows 身份验证始终可用,并且无法禁用。
SQL Server 2008 的默认身份验证模式是Windows身份验证模式,混合模式更为安全。
(3)数据库的权限是指什么权限?
权限管理的主要任务是什么?
角色中的所有成员 能否继承该角色所拥有的权限?
答:
SQL Server2008中的权限包括3种类型:
对象权限、语句权限和隐含权限。
权限管理的主要任务是对象权限和语句权限的管理。
角色中的所有成员继承该角色所拥有的权限。
(4)SQL Server 2008中有几种角色类型?
它们的主要区别是什么?
答:
SQL Server 2008中有3种角色类型:
固定角色、用户定义的数据库角色和应用程序角色。
固定角色:
是指其权限已被SQL Server 2008定义,且SQL Server 2008管理者不能对其权限进行修改的角色。
这些固定角色涉及服务器配置管理以及服务器和数据库的权限管理。
按照管理目标对象的不同,固定角色又分为固定服务器角色和固定数据库角色。
用户定义数据库角色:
就是当一组用户需要设置的权限不同于固定数据库角色所具有的权限时,为了满足要求而定义的新的数据库角色。
应用程序角色:
是一个数据库主体,它使应用程序能够用其自身的、类似用户的特权来运行。
使用应用程序角色,可以只允许通过特定应用程序连接的用户访问特定数据。
(5)SQL Server 2008安全管理的内容主要包括哪些?
答:
SQL Server2008安全管理的内容,主要包括:
登录账号管理、 数据库用户管理、数据库权限管理、数据库角色管理等。
ADCBBADACC
第9章习题解答
1.思考题
(1)VB对象的3要素是指什么?
它们的作用是什么?
答:
对象的属性、方法、事件就称为对象的三要素。
1)属性 ,属性描述对象的性质或特征,即该对象是什么样的。
2)方法 ,方法反映对象的行为,即该对象会干什么。
3)事件
事件指明对象在什么条件下发生什么事情,即在什么条件下执行哪段代码。
(2)什么是变量的作用域?
作用域有哪些类型?
什么是变量的生存期?
生存期有哪些类型?
答:
1) 变量的作用域是指变量的有效范围。
2) 根据作用域,变量可分为局部变量、窗体级变量、模块级变量、全局变量。
局部变量:
在过程体内部定义,其作用域是从定义起到所在语句块或过程结束为止的局部范围,其他地方不能使用。
窗体级变量:
是在窗体代码的通用声明区用Dim或Private关键字定义的变量,它不属于该窗体的任何过程,可以被本窗体内的所有过程访问,而不能为其他窗体或模块使用。
窗体级变量与窗体的生存期一样,只要窗体不消失,它就不消失。
模块级变量:
与窗体级变量同级别,它是在模块的“通用声明”区用Dim或Private关键字定义的变量。
它不属于该模块的任何过程,可以被本模块内的所有过程访问,而不能用在其他模块或窗体中。
全局变量:
是在窗体或模块的通用声明区用Public关键字进行定义的变量,它在整个工程的所有过程中均可使用,且在应用程序运行过程中一直存在。
3)变量的生存期表示它可以存储值的时间周期。
在生存期内变量的值可以更改,但变量总是存储某些值。
即指在程序执行的动态过程中,变量在哪个阶段是存在的。
4)局部变量根据生存期分为动态局部变量和静态局部变量,两者的区别是:
(a)动态局部变量的生存期是:
程序执行到定义该变量的Dim语句时,在内存建立起该变量,此时该变量“诞生”了;程序继续往下执行到该变量所在的程序块(或过程)结束时,该变量“死亡”,其代表的值也不复存在。
如果该变量所在过程再次执行,再次执行到定义该变量的Dim语句则一个新的变量“诞生”,与上次已“死亡”的同名的变量毫无关系。
(b)静态局部变量的生存期是:
程序第一次执行到定义该变量的Static语句时,在内存建立起该变量,此时该变量“诞生”了;程序继续往下执行,甚至超出该变量所在的程序块(或过程),该变量一直存在,其代表的值也存在,只是不能使用。
(3)在同一模块、不同过程中声明的相同变量名,两者是否表示同一变量?
有没有联系?
答:
不是同一个变量;过程内部声明的变量是局部变量,并不能在过程范围之外访问,即使变量名相同,也是属于指定过程的独立变量,过程执行完毕立即清除。
表示不同的变量,没有任何关系。
(4)VB中将数字字符串转换成数值,用什么函数?
取字符串中的某几个字符,用什么函数?
大小写字母间的转换用什么函数?
答:
1)将数字字符串转换成数值,用函数val()函数,如val ("1243AB");
2)