数据库原理与应用(SQL Server) 全书试题答案 -第1-13章 数据库概述-数据库技术发展概述_第1页
数据库原理与应用(SQL Server) 全书试题答案 -第1-13章 数据库概述-数据库技术发展概述_第2页
数据库原理与应用(SQL Server) 全书试题答案 -第1-13章 数据库概述-数据库技术发展概述_第3页
数据库原理与应用(SQL Server) 全书试题答案 -第1-13章 数据库概述-数据库技术发展概述_第4页
数据库原理与应用(SQL Server) 全书试题答案 -第1-13章 数据库概述-数据库技术发展概述_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章数据库概述习题一、选择题1.下列说法中,不属于数据库管理系统特征的是()。A.提供了应用程序和数据的独立性。B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合。C.用户访问数据时,需要知道存储数据的文件的物理信息。D.可保证存储数据的可靠性,当硬盘出现故障时,也可防止数据丢失。2.下列四项中,不属于数据库系统特点的是()。A.数据共享 B.数据完整性C.数据冗余度高 D.数据独立性高3.关于数据独立性,下列说法不正确的是()。A.数据库具有较高的数据独立性B.数据库中的数据可以共享C.数据库避免了一切数据的重复D.数据库减少了数据冗余4.下面列出的数据库管理技术发展的三个阶段中,没有专门的软件对数据进行管理的是()。I.人工管理阶段II.文件系统阶段III.数据库阶段A.I和IIB.只有IIC.II和IIID.只有I5.DB,DBS和DBMS之间的关系是()。A.DBS包括DB和DBMS B.DBMS包括DB和DBSC.DB包括DBS和DBMS D.DBS就是DB,也就是DBMS二、简答题1.试述数据、数据库、数据库管理系统、数据库管理员、数据库系统的概念。2.使用数据库系统有什么好处?3.试述文件系统与数据库系统的区别与联系。4.试述数据库系统的特点。5.什么是数据独立性?如何实现?6.数据库系统的组成有哪些?参考答案一、选择题CCCDA二、简答题1.试述数据、数据库、数据库管理系统、数据库管理员、数据库系统的概念。答:数据:描述事物的符号记录称为数据。数据的种类有文字、图形、图象、声音、正文等等。数据与其语义是不可分的。数据库:数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。数据库管理系统:数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件。用于科学地组织和存储数据、高效地获取和维护数据。DBMS主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。数据库管理员(DatabaseAdministrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称。数据库系统:数据库系统(DBS)是指在计算机系统中引入数据库后的系统构成。数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。2.使用数据库系统有什么好处?答:使用数据库系统的好处是由数据库管理系统的特点或优点决定的。使用数据库系统的好处很多,例如可以大大提高应用开发的效率,方便用户的使用,减轻数据库系统管理人员维护的负担等。使用数据库系统可以大大提高应用开发的效率。因为在数据库系统中应用程序不必考虑数据的定义、存储和数据存取的具体路径,这些工作都由DBMS来完成。用一个通俗的比喻,使用了DBMS就如有了一个好参谋好助手,许多具体的技术工作都由这个助手来完成。开发人员就可以专注于应用逻辑的设计而不必为管理数据的许许多多复杂的细节操心。还有,当应用逻辑改变,数据的逻辑结构需要改变时,由于数据库系统提供了数据与程序之间的独立性。数据逻辑结构的改变是DBA的责任,开发人员不必修改应用程序,或者只需要修改很少的应用程序。从而既简化了应用程序的编制,又大大减少了应用程序的维护和修改。使用数据库系统可以减轻数据库系统管理人员维护系统的负担。因为DBMS在数据库建立、运用和维护时对数据库进行统一的管理和控制,包括数据的完整性、安全性,多用户并发控制,故障恢复等等都由DBMS执行。总之,使用数据库系统的优点是很多的,既便于数据的集中管理,控制数据冗余,可以提高数据的利用率和一致性,又有利于应用程序的开发和维护。读者可以在自己今后的工作中结合具体应用,认真加以体会和总结。3.试述文件系统与数据库系统的区别与联系。答:文件系统与数据库系统的区别:文件系统面向某一应用程序,共享性差、冗余度大,独立性差,纪录内有结构、整体无结构,应用程序自己控制;数据库系统面向现实世界,共享性高、冗余度小,具有高度的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力。文件系统与数据库系统的联系:文件系统与数据库系统都是计算机系统中管理数据的软件。表各阶段对比人工管理阶段文件系统阶段数据库系统阶段背景应用背景科学计算科学计算、数据管理大规模数据管理硬件背景无直接存取、存储设备磁盘、磁鼓大容量磁盘、磁盘阵列软件背景没有操作系统有文件系统有数据库管理系统处理方式批处理联机实时处理、批处理联机实时处理、分布处理、批处理(续表)人工管理阶段文件系统阶段数据库系统阶段特点数据的管理者用户(程序员)文件系统数据库管理系统数据的结构化无结构记录内有结构整体无结构整体结构化用数据模型描述数据面向的对象某一应用程序某一应用现实世界中的某个场景数据的共享程度无共享,冗余度极大共享性差、冗余度大共享性高、冗余度小数据的独立性不独立,完全依赖于程序独立性差具有高度的物理独立性和一定的逻辑独立性数据控制能力应用程序自己控制应用程序自己控制保证数据安全性、完整性并发和恢复管理4.试述数据库系统的特点。答:数据库系统的主要特点有:(1)数据结构化:数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。(2)数据的共享性高,冗余度低,易扩充:数据库的数据不再面向某个应用而是面向整个系统,因此可以被多个用户、多个应用、用多种不同的语言共享使用。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充。(3)数据独立性高:数据独立性包括数据的物理独立性和数据的逻辑独立性。数据库管理系统的模式结构和二级映象功能保证了数据库中的数据具有很高的物理独立性和逻辑独立性。(4)数据由DBMS统一管理和控制:数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。为此,DBMS必须提供统一的数据控制功能,包括数据的安全性保护,数据的完整性检查,并发控制和数据库恢复。数据库是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。5.什么是数据独立性?如何实现?答:数据独立性是指应用程序和数据之间相互独立、不受影响,即数据结构的修改不会引起应用程序的修改。数据独立性包括:物理数据独立性和逻辑数据独立性.物理数据独立性是指数据库物理结构改变时不必修改现有的应用程序。逻辑数据独立性是指数据库逻辑结构改变时不用改变应用程序。数据独立性是由DBMS的二级映像功能来实现的。当整个系统要求改变模式时(增加记录类型、增加数据项,由DBMS对各个外模式/模式的映像做相应改变,从而保证了数据的逻辑独立性。当数据的存储结构改变时,由DBMS对模式/内模式的映像做相应改变,从而保证了数据的物理独立性。6.数据库系统的组成有哪些?答:(1)硬件数据库系统的硬件包括计算机的主机、键盘、显示器和外围设备(例如打印机、光盘机、磁带机等)。由于一般数据库系统所存放和处理的数据量很大,加之DBMS丰富的功能软件,使得自身所占用的存储空间很大,因此整个数据库系统对硬件资源提出了较高的要求。这些要求是:①有足够大的内存以存放操作系统、DBMS的核心模块、数据缓冲区和应用程序;②有足够大的直接存取设备存放数据(如磁盘),有足够的存储设备来进行数据备份;③要求计算机有较高的数据传输能力,以提高数据传送率。(2)软件数据库系统的软件除了数据库管理系统之外,还包括操作系统各种高级语言处理程序(编译或解释程序)、应用开发工具软件和特定应用软件等。应用开发工具包括应用程序生成器和第四代语言等高效率、多功能的软件工具,如报表生成系统、表格软件、图形编辑系统等。它们为数据库系统的应用开发人员和最终用户提供了有力的支持。特定应用软件是指为特定用户开发的数据库应用软件,如基于数据库的各种管理软件、管理信息系统(MIS)、决策支持系统(DSS)和办公自动化(OA)等。(3)人员数据库系统中包含的人员主要有数据库管理员(DBA)、程序分析与开发人员、数据库设计人员和最终用户。数据库管理员负责整个系统的正常运行,负责保证数据库的安全和可靠。数据库管理员必须参加数据库设计的全过程;决定数据库的存储结构和存取策略;定义数据的安全性要求和完整性约束条件;监控数据库的使用和运行;数据库的改进和重组、重构;还负责在系统运行期间监视系统的空间利用率、处理效率等性能指标,对运行情况进行记录、统计分析,依靠工作实践并根据实际应用环境不断改进数据库设计。另外,在数据运行过程中,大量数据不断插入、删除、修改,时间一长,数据的组织结构会受到严重影响,从而降低系统性能。因此,数据库管理员要定期对数据库进行重组织,以改善系统性能。修改数据库部分设计,即完成数据库的重构。程序分析与开发人员主要负责应用系统的需求分析、设计和实现,参与应用程序开发整个过程和程序使用与规范说明,确定系统软、硬件配置。数据库设计人员主要负责决定数据库中的信息内容和结构。参与用户需求调查和系统分析。负责数据库中数据的确定及数据库各级模式的设计,并与用户、应用程序员、系统分析员密切合作、共同协商,做好数据库设计。最终用户是数据库应用程序的使用者,他们通过应用程序提供的人机交互界面来操作数据库中的数据。通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表书写等。第2章数据模型与数据库结构习题一、选择题1.以下哪个不是数据模型组成三要素的内容()。A.数据结构B.数据存储C.数据操作D.数据完整性约束2.下列关于概念层数据模型的说法,错误的是()。A.概念层数据模型应该采用易于用户理解的表达方式B.概念层数据模型应该比较易于转换成组织层数据模型C.在进行概念层数据模型设计时,需要考虑具体的DBMS的特点D.在进行概念层数据模型设计时,重点考虑的内容是用户的业务逻辑3.关于E-R模型,错误的是()。A.信息世界的数据模型B.设计数据库时与用户交流时使用C.也称为实体联系图D.是代码编写阶段的工具4.以下关于层次模型的说法中,错误的是()。A.层次数据模型属于格式化数据模型B.层次模型不具备数据和程序的物理独立性C.层次模型有且仅有一个无双亲的根结点D.层次模型是一种以记录类型为结点的有向树结构5.描述数据库全体数据的全局逻辑结构和特性的是()。A.模式B.内模式C.外模式D.用户模式6.要保证数据库的逻辑数据独立性,需要修改的是()。A.模式与外模式的映射B.模式与内模式之间的映射C.模式D.三层模式二、简答题1.什么是数据模型?试述其分类和组成要素。2.什么是概念模型?试述概念模型的作用。3.试述层次模型、网状模型和关系模型的区别与优缺点。4.说明实体-联系中的实体、属性和联系的概念,并举例说明实体之间的联系。5.试述数据库系统的三级模式结构,分别说明每一级模式的作用。6.试述数据库系统的二级映像指什么?如何保证数据库的独立性?

参考答案选择题BCDBAA简答题1.什么是数据模型?试述其分类和组成要素。数据模型是对现实世界数据特征的抽象,用来描述现实中数据的组织方式和操作方式,是现实世界的模拟。数据模型分为概念数据模型、逻辑数据模型、物理数据模型三类。数据模型由数据结构、数据操作和数据完整性约束三要素构成2.什么是概念模型?试述概念模型的作用。概念模型,也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户进行交流的语言3.试述层次模型、网状模型和关系模型的区别与优缺点。区别:层次模型是一种树状结构模型,网状模型是更灵活的多对多关系模型,而关系模型则是使用表格和SQL来建立和管理数据的模型。不同的模型适用于不同的数据场景和需求。层次模型的优点主要有:(1)层次模型的数据结构比较简单清晰。(2)层次数据库的查询效率高。因为层次模型中记录之间的联系用有向边表示,这种联系在DBMS中常常用指针来实现。因此,这种联系也就是记录之间的存取路径。当要存取某个节点的记录值,DBMS就沿着这一条路径很快找到该记录值,所以层次数据库的性能优于关系数据库,不低于网状数据库。(3)层次数据模型提供了良好的完整性支持。层次模型的缺点主要有:(1)现实世界中很多联系是非层次性的,如节点之间具有多对多联系,不适合用层次模型表示。(2)如果一个节点具有多个双亲节点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入拟节点)来解决。对插入和删除操作的限制比较多,因此应用程序的编写比较复杂(3)查询子女节点必须通过双亲节点。(4)由于结构严密,层次命令趋于程序化网状模型的优点主要有:(1)能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系。(2)具有良好的性能,存取效率较高。网状模型的缺点主要有:(1)结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。(2)网状模型的DDL、DML复杂,并且要入某一种高级语言(如COBOL、C)中用户不容易掌握,不容易使用。(3)由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。关系模型具有下列优点:(1)关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。(2)关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索和更新结果也是关系(即表)。数据结构简单、清晰,用户易懂易用。(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。关系模型具有下列缺点:(1)存取路径对用户透明,查询效率往往不如格式化数据模型。(2)为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。4.说明实体-联系中的实体、属性和联系的概念,并举例说明实体之间的联系(1)实体:客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。(2)属性:实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画(3)联系:现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。(5)实体之间的联系有一对一、一对多和多对多等多种类型5.试述数据库系统的三级模式结构,分别说明每一级模式的作用。(1)数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。(2)外模式是保证数据库安全性的一个有力措施。(3)模式是系统为了减小数据冗余、实现数据共享的目标,并对所有用户的数据进行综合抽象而得到的统一的全局数据视图。(4)内模式可以将系统的模式(全局逻辑模式)组织成最优的物理模式,以提高数据的存取效率。改善系统的性能指标。6.试述数据库系统的二级映像指什么?如何保证数据库的独立性?(1)外模式/模式映像、模式/内模式映像(2)数据库的二级映像,保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性。数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。除非应用需求本身发生变化,否则应用程序一般不需要修改。第3章关系数据库习题一、选择题1.一个关系中的候选码是由()。A.可由多个任意属性组成B.至多由一个属性组成C.可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成D.以上都不是2.同一个关系模型的任两个元组值()。A.不能全同B.可全同C.必须全同D.以上都不是3.关系模式的任何属性()。。A.不可再分B.可再分C.命名在该关系模式中可以不惟一D.以上都不是4.在关系代数运算中,专门的关系运算包括()。A.并、差、交、笛卡儿积B.并、差、交、选择、投影C.选择、投影、连接、乘积D.选择、投影、连接、除5.设有关系R,按条件f对关系R进行选择,关系代数表达式正确的是()。A.R×RB.⨝fC.σf(R)二、简答题.简述关系模型的三要素组成。2.简述关系的性质。3.简述关系的完整性4.简述关系模式和关系的区别。5.传统的集合运算和专门的关系运算都有哪些?6.试述等值连接与自然连接的区别与联系。三、根据给定的关系模式完成查询设有一个学生选课数据库,由3个关系模式组成,分别为:S(Sno,Sname,Sage,Sdept);C(Cno,Cname,PCno);SC(Sno,Cno,Grade)。学生表S由学号(Sno)、学生姓名(Sname)、学生年龄(Sage)、学生所在系(Sdept)组成。课程表C由课程号(Cno)、课程名(Cname)、先修课号(PCno)组成。选课表SC由学号(Sno)、课程号(Cno)、成绩(Grade)组成。试写出如下查询的关系代数表达式:(1)查询年龄大于20的学生姓名;(2)查询先修课号为C1的课程号;(3)查询课程号为C2且成绩在85分以上的学生姓名;(4)查询学号为S2的学生选修的课程名;(5)查询计算机专业学生所选修的课程名;(6)查询王华同学未选修课程的课程名;(7)查询全部学生都选修课程的课程号与课程名;(8)查询至少选修C3课程的学生学号和姓名。参考答案选择题CAADC二、简答题.简述关系模型的三要素组成。关系模型的三要素包括关系数据结构、关系操作以及关系的完整性约束。2.简述关系的性质。关系数据库要求其中的关系具有以下6条性质:(1)列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。(2)不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要起不同的属性名。(3)同一关系中,任意两个元组不能完全相同。(4)列的顺序无所谓,即列的次序可以任意交换。(5)行的顺序无所谓,即行的次序可以任意交换。(6)分量必须取原子值,即每一个分量都必须是不可分的数据项。3.简述关系的完整性关系完整性包括实体完整性、参照完整性和用户定义的完整性。实体完整性规则:若属性A(一个或一组属性)是基本关系R的主属性,则A不能取空值。所谓空值就是“不知道”或“不存在”的值。参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。用户定义的完整性规则由用户根据实际情况对数据库中数据的内容进行的规定。4.说明关系模式和关系的区别。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,它可以形式化地表示为R(U,D,DOM,F),其中R为关系名,U为组成该关系的属性名集合,D为U中属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。通常关系模式简记为R(U)。关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。例如,学生关系模式在不同的学年,学生关系是不同的。在实际工作中,人们常常把关系模式和关系都统称为关系。5.传统的集合运算和专门的关系运算都有哪些?(1)传统的集合操作:并、差、交、笛卡儿积。(2)专门的关系操作:投影、选择、连接、除法等。6.试述等值连接与自然连接的区别与联系。θ为“=”的连接运算称为等值连接,它是从关系R与S的广义笛卡儿积中选取A、B属性值相等的那些元组。自然连接是一种特殊的等值连接。它要求两个关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性列去掉。三、根据给定的关系模式完成查询设有一个学生选课数据库,由3个关系模式组成,分别为:S(Sno,Sname,Sage,Sdept);C(Cno,Cname,PCno);SC(Sno,Cno,Grade)。学生表S由学号(Sno)、学生姓名(Sname)、学生年龄(Sage)、学生所在系(Sdept)组成。课程表C由课程号(Cno)、课程名(Cname)、先修课号(PCno)组成。选课表SC由学号(Sno)、课程号(Cno)、成绩(Grade)组成。试写出如下查询的关系代数表达式:(1)查询年龄大于20的学生姓名;ΠSname(σ(2)查询先修课号为C1的课程号;ΠCno(3)查询课程号为C2且成绩在85分以上的学生姓名;ΠSname(4)查询学号为S2的学生选修的课程名;Π(5)查询计算机专业学生所选修的课程名。ΠCname(6)查询王华同学未选修课程的课程名。Π(7)查询全部学生都选修课程的课程号与课程名。ΠCno,Sno(SC(8)查询至少选修C3课程的学生学号和姓名。ΠSno,Cno第4章关系数据库标准语言SQL习题一、选择题1.SQL语言是()语言。A.层次数据库B.网络数据库C.关系数据库D.非数据库2.语句altertableuserinfoaddconstraintuq_useridunique(userid)执行成功后,为userinfo表的字段添加了的约束()。A.userid主键B.userid唯一C.uq_userid外键D.uq_userid检查3.关于子查询,以下说法正确的是()。A.一般来说,表连接都可以用子查询替换B.一般来说,子查询都可以用表连接替换C.相对于表连接,子查询适合于作为查询的筛选条件D.相对于表连接,子查询适合于查看多表的数据4.创建SQL语句如下:createtableuserInfo(userldintidentity(-1,1),userNamenvarchar(20)notnull,cardNOcharnotnull,agesmallint(2),addressntext(300),)执行时,出现错误的行数为()。A.1B.2C.3D.4E.55.已知有SPores表,SPoreid为主键,现在表中共有10条记录,其中一条SPoreid=21。创建视图:createviewview_SPoresasselect*fromSPores执行如下命令:deletefromview_SPoreswhere(SPoreid=21)再执行命令select*fromSPores和select*fromview_SPores假定上述命令全部执行成功,将各自返回记录数()。A.10,10B.10,9C.9,10D.9,96.设计用户表时,身份证号为固定18位长,对该字段最好采用的数据类型()。A.intB.charC.varcharD.text7.在SQLServer2016中,将用户编写的Transact-SQL脚本保存到磁盘上,其文件扩展名为()。A.mdfB.ndfC.ldfD.sql8.下列选项中,属于删除数据库的语句是()。A.CREATEDATABASEB.ALTERDATABASEC.DROPDATABASED.DELETEDATABASE9.建立如下数据库表:createtalbeDepartment(departIDintnotnullprimarykey,deptNamevarchar(20)notnull)createtableEmployee(employeelDintnotnull,deptIDintnotnull,namevarchar(20)notnull)要想保证Employee表中每一个雇员employee)是唯一的,且只能属于在Department表中已经存在的部门,最有的做法是()。A.把employeeID和deptID设为组合主键B.把employeeID设为主键,同时在deptID列上创建一个外键约束C.把employeeID设为主键,同时在deptID列上创建一个检查约束.D.在deptID列上创建一个唯一约束,同时在deptID列上创建一个外键约束10.在创建数据库时,系统会自动将所有用户定义的对象复制到新建数据库中的系统数据库为()。A.masterB.msdbC.modelD.tempdb二、SQL语句1.有两个关系和,写出与下列查询等价的SQL表达式:(1)(2)(3)(4)2.设有一个学生选课数据库,由3个关系模式组成,分别为:S(Sno,Sname,Sage,Sdept);C(Cno,Cname,PCno);SP(Sno,Cno,Grade)。学生表S由学号(Sno)、学生姓名(Sname)、学生年龄(Sage)、学生所在系(Sdept)组成。课程表C由课程号(Cno)、课程名(Cname)、先修课号(PCno)组成。选课表SP由学号(Sno)、课程号(Cno)、成绩(Grade)组成。用SQL完成以下各项操作:(1)查询年龄大于20的学生姓名;(2)查询先修课号为C1的课程号;(3)查询课程号为C2且成绩在85分以上的学生姓名;(4)查询学号为S2的学生选修的课程名;(5)查询计算机专业学生所选修的课程名。(6)查询王华同学未选修的课程的课程名。(7)查询全部学生都选修的课程的课程号与课程名。(8)查询至少选修C3课程的学生学号和姓名。三、简答题1.什么是基本表?什么是视图?两者的区别和联系是什么?2.试述视图的优点。3.在聚合函数中,哪个函数在统计时不考虑NULL?4.在LIKE运算符中“%”的作用是什么?5.在使用UNION合并多个查询语句的结果时,对各个查询语句的要求是什么?6.相关子查询与嵌套查询在执行方面的主要区别是什么?7.对统计结果的筛选应该使用那个子句完成?8.在排序子句中,排序依据列的前后是否重要?“ORDERBYC1,C2”子句对数据的排序顺序是什么?9.TOP子句的作用是什么?参考答案一、选择题1.C2.B3.AC4.DE5.D6.B7.A8.C9.B10.A二、SQL语句1.(1)select*fromSwhereA=10;(2)selectC,DfromR(3)selectS.*,D,E,FfromS,RwhereS.C=R.C(4)selectS.*,R.*fromS,RwhereS.C=R.C2.用SQL完成以下各项操作:查询年龄大于20的学生姓名;SelectSnamefromSwhereSage>20查询先修课号为C1的课程号;SelectCnofromCwherePCno=’C1’查询课程号为C2且成绩在85分以上的学生姓名;SelectSnamefromSwhereSnoin(SelectSnofromSPwhereCno=’C2’andGrade>=85)查询学号为S2的学生选修的课程名;SelectCnamefromCwhereCnoin(SelectCnofromSPwhereSno=’S2’)查询计算机专业学生所选修的课程名。SelectCnamefromCwhereCnoin(SelectCnofromSPwhereSnoin(SelectSnofromSwhereSdept=’计算机’))查询王华同学未选修的课程的课程名。SelectCnofromCexceptSelectCnofromSPwhereSno=(SelectSnofromSwhereSname=’王华’)查询全部学生都选修的课程的课程号与课程名。SelectCno,CnameFromCWhereCnoin(selectCnofromSPGroupbyCnoHavingcount(*)=(selectcount(*)fromS))查询至少选修C3课程的学生学号和姓名。SelectSno,SnameFromSWhereSnoin(selectSnofromSPWhereCno=’C3’)SSgroupbySnohavingcount(*)>=1三、简答题1.什么是基本表?什么是视图?两者的区别和联系是什么?答:基本表是本身独立存在的表,在sQL中一个关系就对应一个表。视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表。即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。2.试述视图的优点。答:(l)视图能够简化用户的操作;(2)视图使用户能以多种角度看待同一数据;(3)视图对重构数据库提供了一定程度的逻辑独立性;(4)视图能够对机密数据提供安全保护。3.在聚合函数中,哪个函数在统计时不考虑NULL?答:count4.在LIKE运算符中“%”的作用是什么?答:代替字符中未知的值进行查询。5.在使用UNION合并多个查询语句的结果时,对各个查询语句的要求是什么?答:要求合并的两个查询的属性列个数和属性名相同。6.相关子查询与嵌套查询在执行方面的主要区别是什么?答:相关子查询:执行依赖于外部查询。执行顺序:先是主查询然后在是子查询。执行过程:从主查询中取出一个元组(表中的行),将元组相关的列的值传递给子查询;子查询将列的值作为条件得到结果;主查询根据子查询得到的结果或者结果集得到满足条件的行,selece控制显示;然后主查询取出下一个元组继续前面的骤,直到所有元组全部处理完毕。嵌套子查询:执行不依赖于外部的查询。执行顺序:先子查询然后在是主查询。子查询的结果不会被显示,会将其传递给外部查,作为外部查询的条件来输出。7.对统计结果的筛选应该使用那个子句完成?答:HAVING子句8.在排序子句中,排序依据列的前后是否重要?“ORDERBYC1,C2”子句对数据的排序顺序是什么?答:重要,ORDERBYC1,C2的排序是先按照C1的升序排列,在相同的C1中按照C2的升序再进行排序。9.TOP子句的作用是什么?答:SELECTTOP子句用于限制查询结果集中返回的行数或行百分比。由于存储在表中的行的顺序是不可预测的,因此SELECTTOP语句始终与ORDERBY子句一起使用,结果集限于前N个有序行数。第5章数据库完整性习题一、选择题1.下列约束用于限制列取值不能重复的是()。A.PRIMARYKEYB.CHECKC.DEFAULTD.UNIQUE2.下列约束用于限制列取值范围的是()。A.PRIMARYKEYB.CHECKC.DEFAULTD.UNIQUE3.下列约束用于实现实体完整性的是()。A.PRIMARYKEYB.CHECKC.DEFAULTD.UNIQUE4.建立一张员工表,当向表中插入数据时,若不提供入职时间,就把系统当前时间作为员工入职时间插入数据库,以下说法正确的是()。A.约束不能使用各种函数,所以无法实现要求的功能。B.可以使用check约束实现,默认值采用日期函数getdate()C.入职时间必须设为日期类型。D.可以使用default约束实现,默认值采用日期函数getdate。5.限制性别只能去“男”和“女”的CHECK约束表达式是()。A.CHECK(SsexIN(男,女))B.CHECK(SsexBETWEEN男AND女))C.CHECK(SsexIN(‘男’,’女’))D.CHECK(SsexBETWEEN‘男’AND‘女’))二、SQL语句1.假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号为主码。用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:(1)定义每个模式的主码;(2)定义参照完整性;(3)定义职工年龄不得超过60岁。2.写出创建如下3个表的SQL语,要求在定义表的同时定义数据的完整性约束。(1)“图书表”结构如下:书号:统一字符编码定长类型,长度为6,主码;书名:统一字符编码可变长类型,长度为30,非空;第一作者:普通编码定长字符类型,长度为10,非空;出版日期:日期型;价格:小数部分1位,整数部分3位。(2)“书店表”结构如下书店编号:统一字符编码定长类型,长度为6,主码;店名:统一字符编码可变长类型,长度为30,非空;电话:普通编码定长字符类型,长度为8,取值不重;地址:普通编码可变长字符类型,长度为40;邮政编码:普通编码定长字符类型,长度为6。(3)“图书销售表”结构如下书号:统一字符编码定长类型,长度为6,非空;书店编号:统一字符编码定长类型,长度为6,非空;销售日期:小日期/时间型,非空;销售数量:小整型,大于等于1。主码为(书号,书店编号,销售日期)。其中,“书号”为引用“图书表”的“书号”的外码;“书店编号”为引用“书店表”的书店编的外码。三、简答题1.什么是数据库的完整性?2.关系数据库管理系统的完整性控制机制应具有哪三方面的功能?3.关系数据库管理系统在实现参照完整性时需要考虑哪些方面?4.在关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?参考答案选择题DBADC二、SQL语句1.Createtable职工(职工号char(10)primarykey,姓名char(10),年龄smallintcheck(Sage<=60),职务char(6),工资int,部门号char(6),foreignkey(部门号)references部门(部门号))Createtable部门(部门号char(6)primarykey,名称char(10),经理名char(10),电话号int,foreignkey(经理名)references职工(姓名))2.写出创建如下3个表的SQL语,要求在定义表的同时定义数据的完整性约束。(1)“图书表”Createtable图书表(书号nchar(6)primarykey,书名varchar(30)notnull,第一作者nchar(10)notnull,出版日期smalldate,价格numeric(3,1))(2)“书店表”Createtable书店表(书店编号nchar(6)primarykey,店名varchar(30)notnull,电话char(8)unique,地址varchar(40),邮政编码nchar(6))(3)“图书销售表”Createtable图书销售表(书号nchar(6)notnull,书店编号nchar(6)notnull,销售日期datenotnull,销售数量smallintcheck(销售数量>=1),Primarykey(书号,书店编号,销售日期)Foreignkey(书号)references图书(书号),Foreignkey(书店编号)references书店(书店编号))三、简答题1.什么是数据库的完整性?答:数据库的完整性是指数据的正确性和相容性。2.关系数据库管理系统的完整性控制机制应具有哪三方面的功能?答:DBMS的完整性控制机制应具有三个方面的功能:(l)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;(3)违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。3.关系数据库管理系统在实现参照完整性时需要考虑哪些方面?答:RDBMs在实现参照完整性时需要考虑以下几个方面:(l)外码是否可以接受空值。(2)册l除被参照关系的元组时的考虑,这时系统可能采取的作法有三种:l)级联删除(CASCADES);2)受限删除(RESTRICTED);3)置空值删除(NULLIFIES)。(3)在参照关系中插入元组时的问题,这时系统可能采取的作法有:l)受限插入;2)递归插入。(4)修改关系中主码的问题。一般是不能用UPDATE语句修改关系主码的。如果需要修改主码值,只能先删除该元组,然后再把具有新主码值的元组插入到关系中。如果允许修改主码,首先要保证主码的惟一性和非空,否则拒绝修改。然后要区分是参照关系还是被参照关系。4.在关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?答:对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。关系数据库规范化理论习题一、选择题二、简答题1.解释下列名词:函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、侯选码、主码、全码、1NF、2NF、3NF、BCNF、多值依赖、4NF、连接依赖、5NF、最小函数依赖集、无损分解2.现要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;描述学会的属性有:学会名、成立年份、地点、人数、学生参加某学会有一个入会年份。=1\*GB2⑴请写出关系模式。=2\*GB2⑵写出每个关系模式的最小函数依赖集,指出是否存在传递依赖,在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分依赖。=3\*GB2⑶指出各个关系模式的候选关键字、外部关键字,有没有全关键字。3.设关系模式R(A,B,C,D),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。=1\*GB2⑴求出R的候选码;=2\*GB2⑵求出F的最小函数依赖集;=3\*GB2⑶将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。4.设有关系模式R(A,B,C),函数依赖集F={AB→C,C→A},R属于第几范式?为什么?参考答案一、选择题ABBCCDCBAB二、简答题1.解释下列名词:函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、侯选码、主码、全码、1NF、2NF、3NF、BCNF、多值依赖、4NF、连接依赖、5NF、最小函数依赖集、无损分解答:函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称"X函数确定Y"或"Y函数依赖于X",记作X→Y。完全函数依赖、部分函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X,都有X′→Y,则称Y对X完全函数依赖;若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖;候选码、主码:设K为R(U,F)中的属性或属性组合,若K→U则K为R的候选码。若候选码多于一个,则选定其中的一个为主码。外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码也称外码。全码:整个属性组是码,称为全码(All-key)。1NF定义:如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF2NF定义:若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF。3NF定义:关系模式R<U,F>中若不存在这样的码X、属性组Y及非主属性Z(ZY),使得X→Y,Y→Z成立,Y→X,则称R<U,F>∈3NF。若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。BCNF定义:关系模式R<U,F>∈1NF,若X→Y且YX时X必含有码,则R<U,F>∈BCNF。等价于:每一个决定属性因素都包含码。多值依赖的定义:设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。4NF定义:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(YX),X都含有码,则R∈4NF。连接依赖:设关系模式R、Ri的属性集是U、Ui,UiU(1≤i≤n).若R每个容许的实例r均满足r=∏U1(r)∞...∞∏Un(r)则称R满足连接依赖,记作∞(R1,...,Rn).若其中某个Ui=U,则称连接依赖是平凡连接依赖。多值依赖也是连接依赖。5NF定义:如果关系模式R中的每一个连接依赖均由R的候选码所隐含,则称此关系模式符合第五范式。最小函数依赖集:如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。①F中的任何一个函数依赖的右部仅含有一个属性;②F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;③F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。无损分解:指的是对关系模式分解时,原关系模型下任一合法的关系值在分解之后应能通过自然联接运算恢复起来。反之,则称为有损分解。2.现要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;描述班级的属性有:班号、专业名、系名、人数、入校年份;描述系的属性有:系名、系号、系办公室地点、人数;描述学会的属性有:学会名、成立年份、地点、人数、学生参加某学会有一个入会年份。=1\*GB2⑴请写出关系模式。=2\*GB2⑵写出每个关系模式的最小函数依赖集,指出是否存在传递依赖,在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分依赖。=3\*GB2⑶指出各个关系模式的候选关键字、外部关键字,有没有全关键字。答:=1\*GB2⑴关系模式:学生S(S#,SN,SB,DN,C#,SA)班级C(C#,CS,DN,CNUM,CDATE)系D(D#,DN,DA,DNUM)学会P(PN,DATE1,PA,PNUM)学生--学会SP(S#,PN,DATE2)其中,S#—学号,SN—姓名,SB—出生年月,SA—宿舍区C#—班号,CS—专业名,CNUM—班级人数,CDATE—入校年份D#—系号,DN—系名,DA—系办公室地点,DNUM—系人数PN—学会名,DATE1—成立年月,PA—地点,PNUM—学会人数,DATE2—入会年份=2\*GB2⑵每个关系模式的极小函数依赖集:S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SAC:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C#D:D#→DN,DN→D#,D#→DA,D#→DNUMP:PN→DATE1,PN→PA,PN→PNUMSP:(S#,PN)→DATE2S中存在传递函数依赖:S#→DN,S#→SA,C#→SAC中存在传递函数依赖:C#→DN(S#,PN)→DATE2和(CS,CDATE)→C#均为SP中的函数依赖,是完全函数依赖=3\*GB2⑶S:主码S#;外码C#,DN;无全码C:主码C#,(CS,CDATE);外码DN;无全码D:主码D#和DN;无外码;无全码P:主码PN;无外码;无全码SP:主码(S#,PN);外码S#,PN;无全码3.设关系模式R(A,B,C,D),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。=1\*GB2⑴求出R的候选码;=2\*GB2⑵求出F的最小函数依赖集;=3\*GB2⑶将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性。答:=1\*GB2⑴F={A→C,C→A,B→AC,D→AC,BD→A}。候选码:BD=2\*GB2⑵Fmin={A→C,C→A,B→C,D→C}=3\*GB2⑶T={AC,BC,DC,BD}4.设有关系模式R(A,B,C),函数依赖集F={AB→C,C→A},R属于第几范式?为什么?答:首先,它是一个关系模式,所以至少满足第一范式;其次,该函数依赖集中不存在部分函数依赖,所以满足第二范式;再次,由于,(ABUC)交A=A,不等于空集,所以由传递函数依赖的定义知道,不存在传递函数依赖,所以满足第三范式;

最后,由于A,B,C都是关系的主属性,所以该关系中存在主属性间的部分函数依赖(AB→C),所以不属于BCNF。所以最高范式为第三范式。第7章数据库设计习题一、选择题1.数据库外模式是在下列哪个阶段设计()。A.数据库概念结构设计B.数据库逻辑结构设计C.数据库物理设计D.数据库实施和维护2.生成DBMS系统支持的数据模型是在下列哪个阶段完成()。A.数据库概念结构设计B.数据库逻辑结构设计C.数据库物理设计D.数据库实施和维护3.根据应用需求建立索引是在下列哪个阶段完成()。A.数据库概念结构设计B.数据库逻辑结构设计C.数据库物理设计D.数据库实施和维护4.员工性别的取值,有的为“男”、“女”,有的为“1”、“0”,这种情况属于()。A.属性冲突B.命名冲突C.结构冲突D.数据冗余二、简答题1.试述数据库设计过程。2.需求分析阶段的设计目标是什么?调查的内容是什么?3.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课可由若工学生选修。请用E-R图画出此学校的概念模型。4.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若于仓库中。请用E-R图画出此工厂产品、零件、材料、仓库的概念模型。参考答案一、选择题BBCA二、简答题1.试述数据库设计过程。答:这里只概要列出数据库设计过程的6个阶段:数据库运行和维护。数据库实施;数据库物理设计;概念结构设计;需求分析;逻辑结构设计;这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、数据库的运行和维护。设计一个完善的数据库应用系统往往是上述6个阶段的不断反复。2.需求分析阶段的设计目标是什么?调查的内容是什么?答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等,充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的内容是“数据”和“处理”,即获得用户对数据库的如下要求:(1)信息要求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。(2)处理要求。指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。(3)安全性与完整性要求。·3.学校中有若干系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课可由若工学生选修。请用E-R图画出此学校的概念模型。答:解析:在画E-R图时,读者可以按照习题中对问题的描述一步一步画出每一句话中涉及的实体,再根据给出的实际语义画出实体之间的联系。例如,每个教研室有若干教员,每个班有若干学生,可以画出教研室和教员,班级和学生之间一对多的联系,从“有的教授和副教授每人各带若干研究生”,一个研究生一般指定一个导师,这是通常的规则,所以可以画出教员和学生之间一对多的联系。E-R图中各实体的属性假设为:系:系编号,系名班级:班级编号,班级名教研室:教研室编号,教研室学生:学号,姓名,学历课程:课程编号,课程名教员:职工号,姓名,职称各联系的属性为:选修:成绩其他联系无属性。4.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若于仓库中。请用E-R图画出此工厂产品、零件、材料、仓库的概念模型。答:解析:对实体之间联系的语义描述有时不是直截了当的,需要从对现实世界的整体描述中进行分析,导出实体之间的某种联系。就如本题中,“零件和仓库的联系”就要从以下描述中分析:“零件按所属的不同产品分别放在仓库中”。因为一个产品由多种零件组成,所以一个仓库中放多种零件。反过来,一种零件是放在一个仓库还是多个仓库中呢?因为一种零件可以用在多种产品上,这些零件按所属的不同产品分别放在仓库中,于是可以知道一种零件可以放在多个仓库中。所以零件和仓库之间是多对多的联系。“材料和仓库的联系”则根据“原材料按照类别放在若干仓库”这句话就可以得出:一个仓库中放多种材料,而一种材料只放在一个仓库中,所以仓库和材料之间是一对多的联系。各实体的属性为:产品:产品号,产品名零件:零件号,零件名原材料:原材料号,原材料名,类别仓库:仓库号,仓库名各联系的属性为:产品组成:使用零件量零件制造:使用原材料量零件存储:存储量材料存放:存放量第8章数据库编程习题一、选择题1.在SQLServer中,查看某个数据库对象的信息的系统存储过程是()。A.sp_helpindexB.sp_helpC.sp_helptextD.sp_stored_procedures

2.在SQLServer中,关于存储过程的说法不正确的是()。A.存储过程一般分为系统存储过程、扩展存储过程和用户自定义存储过程B.存储过程是在数据库管理系统中保存的、预先编译的并能实现某种功能的SQL程序C.存储过程帮助实现了模块化编程D.用户在创建自定义存储过程后不能再被修改3.当对表进行哪项操作时触发器不会自动执行()。A.SelectB.InsertC.UpdateD.Delete4.关于ODBC连接方式,错误的一项是()。A.ODBC管理器负责安装驱动程序,管理数据源B.数据源不是数据库的位置C.系统DNS:ODBC系统数据源存储了如何指定数据库提供者连接的信息D.连接池允许应用程序重用原来打开的连接句柄,节省到服务器的往返程序二、简答题1.使用嵌入式SQL对学生-课程数据库中的表完成下述功能:(1)查询某一门课程的信息。要查询的课程由用户在程序运行过程中指定,放在主变量中。(2)查询选修某一门课程的选课信息,要查询的课程号由用户在程序运行过程中指定,放在主变量中,然后根据用户的要求修改其中某些记录的成绩字段。2.对学生-课程数据库编写存储过程,完成下述功能:(1)统计离散数学的成绩分布情况,即按照各分数段统计人数。(2)统计任意一门课的平均成绩。(3)将学生选课成绩从百分制改为等级制(即A、B、C、D、E)3.使用ODBC编写应用程序来对异构数据库进行各种数据操作。配置两个不同的数据源,编写程序连接两个不同关系数据库管理系统的数据源,对异构数据库进行操作。例如,将KingbaseES数据库的某个表中的数据转移到SQLServer数据参考答案一、选择题BDAB二、简答题1.使用嵌入式SQL对学生-课程数据库中的表完成下述功能:(1)查询某一门课程的信息。要查询的课程由用户在程序运行过程中指定,放在主变量中。答:解析:给出完成查询的嵌入式SQL语句。/*定义主变量:HCno,:HCname,:HCpno,:HCeredit,:givencno*//*读入用户输入的课程号,放人主变量:givencno*/EXECSQLSELECTCno,Cname,Cpno,CereditINTO:HCno,:HCname,:HCpno,:HCcredit/*把SQL查询结果放入主变量中*/FROMCourseWHERECno=:givencno;(2)查询选修某一门课程的选课信息,要查询的课程号由用户在程序运行过程中指定,放在主变量中,然后根据用户的要求修改其中某些记录的成绩字段。答:解析:给出完成查询要使用的游标以及嵌入式SQL语句。/*定义主变量:HSno,:HCno,:HGrade,:givencno,:NEWGrade*//*在程序中输入要查询的课程号,放入主变量:givencno*//*定义游标SCX,对应的SQL语句*/EXECSQLDECLARESCXCURSORFORSELECTSno,Cno,GradeFROMSCWHERECno=:givencno;/*要查询的课程号放在主变量givencno中*/EXECSQLOPENSCX;/*打开游标SCX,指向查询结果的第一行*/for(;;)/*用循环结构逐条处理结果集中的记录*/{EXECSQLFETCHSCXINTO:HSno,:HCno,:HGrade;/*推进游标,将当前数据放入主变量*//*显示查询结果,询问用户是否要更新该条记录的选修成绩*//*如果选择更新操作*//*用户输入新的成绩到:NEWgrade中,然后对当前游标指向的选修课成绩进行更新*/EXECSQLUPDATESC/*嵌入式SQL更新语句*/SETgrade=:NEWgradeWHERECURRENTOFSCX;/*对当前游标指向的选修课成绩进行更新*//*全部处理完SC表后终止循环*/};EXECSQLCLOSESCX;/*关闭游标SCX不再和查询结果对应*//*提交更新*/2.对学生-课程数据库编写存储过程,完成下述功能:(1)统计离散数学的成绩分布情况,即按照各分数段统计人数。答:CREATEPROCEDUREdiscrete_math_grade()ASDECLARECURSORdistFORA/*定义游标*/SELECTgradeFROMSCWHEREcno=(SELECTCnoFROMCourseWHERECname='离散数学');P_100NUMBER:=0;P_90NUMBER:=0:p_80NUMBER:=0;P_70NUMBER:=0;P_60NUMBER:=0:p_othersNUMBER:=0:P_gradeNUMBER;BEGINOPENdist:/*打开游标*/LOOPFETCHdistINTOp_grade;/*使用游标*/EXITWHEN(dis%NOTFOUND):IF(p_grade==100)THENp_100:=p_100+1:ELSIF(p_grade>=90)THENp_90:=p_90+1;ELSIF(p_grade>=80)THENp_80:=p_80+1;ELSIF(p_grade>=70)THENp_70:=p_70+1:ELSIF(p_grade>=60)THENp_60:=p_60+1;ELSEp_others:=p_others+1;ENDIF;ENDLOOP;CLOSEdist;/*关闭游标*/END;(2)统计任意一门课的平均成绩。答:解析:输入任意一门课的课程名,计算选修该课程学生的平均成绩。CREATEPROCEDUREavegrade(incnameCHAR(40))ASBEGINSELECTAVG(Grade)FROMSCWHERECno=(SELECTCnoFROMCourseWHERECname=incname);END;(3)将学生选课成绩从百分制改为等级制(即A、B、C、D、E)答:解析:扫描SC表,把学生选课成绩grade的值由百分制更新为等级制。CREATEPROCEDUREgradetype()ASDECLARECURSORgradecursorFORSELECTgradeFROMSC;scgradeNUMBER;scoreCHAR(1);BEGINOPENgradecursor;/*打开游标*/LOOP/*使用游标*/FETCHgradecursorINTOscgrade;EXITWHEN(gradecursor%NOTFOUND);IF(scgrade>=90ANDscgrade<=100)THENscore:='A';ELSIF(scgrade>=80)THENscore:='B';ELSIF(scgrade>=70)THENscore:='C';ELSIF(scgrade>=60)THENscore:='D';ELSEscore:='E';ENDIF;ENDLOOP;END;3.使用ODBC编写应用程序来对异构数据库进行各种数据操作。配置两个不同的数据源,编写程序连接两个不同关系数据库管理系统的数据源,对异构数据库进行操作。例如,将KingbaseES数据库的某个表中的数据转移到SQLServer数据库的表中。答:解析:该操作涉及两个不同的关系数据库管理系统中的数据源,因此使用ODBC来开发应用程序,只要改变应用程序中连接函数(SQLConnect)的参数,就可以连接不同关系数据库管理系统的驱动程序,连接两个数据源。在应用程序运行前,已经在KingbaseES和SQLServer中分别建立了Student关系表。应用程序要执行的操作是:在KingbaseES上执行SELECT*FROMStudent;把获取的结果集,通过多次执行INSERT语插入到SQLServer的Student表中。第9章数据库安全性习题一、选择题1.对用户访问数据库的权限加以限定是为了保护数据库的()。A.安全性B.完整性C.一致性D.并发性2.在数据库系统中,定义用户可以对哪些数据对象进行何种操作被称为()。A.审计B.授权C.定义D.视图3.SQL中的视图提高了数据库系统的()。A.完整性B.并发控制C.隔离性D.安全性4.找出下面SQL命令中的数据控制命令()。A.GRANTB.COMMITC.UPDATED.SELECT二、简答题1.什么是数据库的安全性?2.数据库不安全的因素主要有哪些?举例说明对数据库安全性产生威胁的因素。3.试述实现数据库安全性控制的常用方法和技术。4.什么是数据库中的自主存取控制方法和强制存取控制方法?5.为什么强制存取控制提供了更高级别的数据库安全性?6.什么是数据库的审计功能,为什么要提供审计功能?7.现有两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号)部门(部门号,名称,经理名,地址,电话号)请用SQL的GRANT和REVOKE语句完成以下授权定义或存取控制功能:(1)用户李灿对两个表有SELECT权限;(2)用户张明月对两个表有INSERT和DELETE权限;(3)用户马欢对职工表有SELECT权限,对工资字段具有更新权限;(4)用户杨紫涵具有修改这两个表的结构的权限;(5)用户陈萍具有对两个表的读,插,改,删权限,并具有给其他用户授权的权限。参考答案一、选择题ABDA二、简答题1.什么是数据库的安全性?答:数据库的安全性(security)是指保护数据库避免不合法的使用,以免数据的泄漏、更改或破坏。数据库不安全的因素主要有哪些?举例说明对数据库安全性产生威胁的因素。答:不安全因素主要有:①非授权用户对数据库的恶意存取和破坏②数据库中重要或敏感的数据被泄露③安全环境的脆弱性。试述实现数据库安全性控制的常用方法和技术。答:实现数据库安全性控制的常用方法和技术有:1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如C2级中的自主存取控制(DAC),B1级中的强制存取控制(MAC);3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。4.什么是数据库中的自主存取控制方法和强制存取控制方法?答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论