数据库第13章
数据库习题库

第1章绪论1.数据库数据具有__________、__________和__________三个基本特点。
答案:永久存储、有组织、可共享2.试述数据、数据库、数据库系统、数据库管理系统的概念。
3.使用数据库系统有什么好处?4.数据库管理系统是数据库系统的一个重要组成部分,它的功能包括__________、__________、__________、__________。
答案:数据定义功能、数据操纵功能、数据库的事物管理和运行管理、数据库的建立和维护功能5.数据库系统是指在计算机系统中引入数据库后的系统,一般由__________、__________、__________和__________构成。
答案:数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员6.试述文件系统与数据库系统的区别和联系。
7.数据库管理技术的发展是与计算机技术及其应用的发展联系在一起的,它经历了三个阶段:__________阶段,__________阶段和__________阶段。
答案:人工管理、文件系统、数据库系统8.举出适合用文件系统而不是数据库系统的例子;再举出适合用数据库系统的应用例子。
9.数据库具有数据结构化、最小的__________、较高的__________和易扩展性等特点。
答案:冗余度、数据独立性10试述数据库系统的特点。
11.DBMS还必须提供__________保护、__________检查、__________、__________等数据控制功能。
答案:数据的安全性数据的完整性并发控制数据库恢复12.数据库管理系统的主要功能有哪些?答案:①数据库定义功能;②数据存取功能;③数据库运行管理;④数据库的建立和维护功能。
13.模式(Schema)是数据库中全体数据的__________和__________的描述,它仅仅涉及到__________的描述,不涉及到具体的值。
答案:逻辑结构、特征、型14.试述数据模型的概念、数据模型的作用和数据模型的三个要素。
数据库应用技术(第二版)习题参考答案

第一章:1、订单管理系统的功能有哪些?答:订单管理系统的功能主要有客户查询商品信息、客户预订商品并提交订单、销售人员处理客户的订单信息、销售人员管理商品信息、客户信息等。
2、说明ER模型的作用?答:ER模型(实体关系模型)是描述概念世界,建立概念世界的工具,ER方法把管理系统所要描述的问题划分为单个的实体,通过实体间的联系实现有效、自然地模拟现实世界。
3、什么是关系模型?关系的完整性包括哪些内容?答:关系模型就是用二维表格结构来表示实体及实体之间联系的模型,关系模型包括四类完整性:域完整性、实体完整性、参照完整性和用户定义的完整性。
4、按照功能,SQL语言分为哪4部分?答:按照功能,SQL语言分为数据定义语言、查询语言、数据操纵语言、数据控制语言。
5、规范化范式是依据什么来划分的?它与一事一地的原则有什么联系?答:规范化范式根据一个关系满足数据依赖的程度不同,可规范化为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
规范化范式遵循一事一地的原则,将描述一个独立事物的属性组成一个关系。
第二章:1、SQL Server 2005有哪些新增特性?答:SQL Server 2005的新特性主要体现在企业数据管理、开发人员生产力、商务智能三个方面。
企业数据管理体现在高可用性、管理工具、安全性和可伸缩性;开发人员生产力体现在Common Language Runtime集成、集成XML、Transact-SQL增强和SQL服务代理;商务智能体现在分析服务、数据转换服务、报表服务和数据挖掘。
2、SQL Server 2005安装的软件和硬件环境是什么?答:SQL Server 2005安装的软件和硬件环境参见教材表2-3、2-4、2-5、2-6。
3、SQL Server 2005有哪些版本?有哪些服务组件?答:SQL Server 2005包括企业版、标准版、工作组版、开发版和简易版五个版本,服务组件主要有SQL Server 数据库引擎、Analysis Services、Reporting Services、Notification Services、Integration Services等。
数据仓库和数据挖掘技术

13.1.3 数据仓库组成
1.数据源 2.数据抽取工具 3.元数据 4.访问工具 5.数据集市(Data Marts) 6.数据仓库管理 7.信息发布系统
13.1.4 数据仓库架构
1.两类基本数据仓库架构 数据仓库架构有两种:一类是Inmon提出的CIF架构(Corporate Information Factory,即企业信息工厂),一类是Kimball提出的 MD架构(Mutildimensional Architecture,即多维体系结构)。 (1)CIF架构主要包括集成转换层(I&T)、操作数据存储 (ODS)、数据仓库(EDW)、数据集市(DM)、探索仓库 (EW)等部件。 (2)MD架构主要包括数据准备区(Staging Area)和数据集市。 MD的数据准备区在功能上相当于 CIF 的staging area+EDW,主 要负责数据准备工作,是一致性维表的产生、保存和分发的场所。 数据集市主要是采用一致性维表来完成维度建模,多个数据集市一 起合并成“虚拟”数据仓库,数据集市可以是存在于一个数据库中, 也可以分布存储在不同数据库中。
知识要点: SQL Server登录
数据仓库 数据挖掘
13.1 数据仓库
本章导读:
管理信息系统的成功应用积累了各行各业的大量数据,基本上满足了用户对数据存储、 查询和统计的需要,但数据库容量的指数增长和对数据库应用的贫乏形成了强烈的反差, 导致了大量的数据垃圾出现,无法从中提取内在关联信息或决策支持数据,如同奈斯比 特在《大趋势》中所说“我们正在被信息所淹没,但我们却由于缺乏知识而感到饥饿”。 20世纪80年代后期出现了数据仓库思想的萌芽出发点就是解决如何从繁杂数据中提取决 策数据来支持企业领导和决策服务的数据库技术。 13.1.1数据仓库发展历程 1.开始阶段(1978-1988) 2.全企业集成(Enterprise Intergration,1988) 3.企业级数据仓库(EDW,1991) 4.数据集市(1994-1996) 5.争吵与混乱(1996-1997) 6.合并(1998-2001 7.数据仓库的现状和趋势)
第13章 备份和恢复

第13章数据库的备份和恢复本章学习目标在企业数据库系统中,数据备份与恢复工作也是一项不可忽视的非常重要的管理工作。
只有经常注意对数据进行备份,才可以在一些“灾难”事故发生后,使自己的损失降到最低的程度。
本章主要就来讲述数据库的恢复和备份方面的知识,主要内容包括备份和恢复的需求与基本概念以及数据库的备份与恢复方法等。
通过本章的学习,读者应了解数据库备份和恢复的需求及其基本知识,掌握数据库备份与恢复的基本方法。
学习重点与难点☑需求分析与基本知识☑备份设备的创建与查看☑数据库备份方法☑恢复数据库的方法13.1 备份和恢复概述尽管系统中采取了各种措施来保证数据库的安全性和完整性,但硬件故障、软件错误、病毒、误操作或故意破坏仍是可能发生的,这些故障会造成运行事务的异常中断,影响数据的正确性,甚至会破坏数据库,使数据库中的数据部分或全部丢失。
因此数据库管理系统都提供了把数据库从错误状态恢复到某一正确状态的功能,这种功能称为恢复。
数据库的恢复是以备份为基础的,SQL Server 2000的备份和恢复组件为存储在SQL Server数据库中的关键数据提供了重要的保护手段。
13.1.1 备份和恢复的需求分析数据库备份就是制作数据库结构、对象和数据的拷贝,以便在数据库遭到破坏的时候能够修复数据库。
数据库恢复就是将数据库备份加载到系统中。
数据库中的数据丢失或被破坏可能是由于以下原因造成的:(1)计算机硬件故障:由于使用不当或产品质量等原因,计算机硬件可能会出现故障,不能使用。
如硬盘损坏会使得存储于其上的数据丢失。
(2)软件故障:由于软件设计上的事物或用户使用的不当,软件系统可能会误操作数据引起数据破坏。
(3)病毒:破坏性病毒会破坏系统软件、硬件和数据。
(4)误操作:如用户使用了诸如DELETE、UPDATE等命令而引起数据丢失或被破坏。
(5)自然灾害:如火灾、洪水或地震等,它们会造成极大的破坏,会毁坏计算机系统及其数据。
数据库第13章课后习题答案

第1章数据库系统概论三、简答题1. 答:数据库DB是长期存储在计算机内、有组织的、统一管理的相关数据的集合。
DB能为各种用户共享,具有较小冗余度、数据间联系严密而又有较高的数据独立性等特点。
2. 答:数据库管理系统DBMS是位于用户与操作系统〔OS〕之间的一层数据管理软件,它为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。
DBMS 总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型等。
3. 答:①数据定义语言及其翻译处理程序;②数据操纵语言及其编译〔或解释〕程序;③数据库运行控制程序;④实用程序。
4. 答:文件系统中的文件是面向应用的,一个文件根本上对应于一个应用程序,文件之间不存在联系,数据冗余大,数据共享性差,数据独立性差;数据库系统中的文件不再面向特定的某个或多个应用,而是面向整个应用系统,文件之间是相互联系的,减少了数据冗余,实现了数据共享,数据独立性高。
5. 答:①实现数据的集中化控制;②数据的冗余度小,易扩大;③采用一定的数据模型实现数据构造化;④防止了数据的不一致性;⑤实现数据共享;⑥提供数据库保护;⑦数据独立性;⑧数据由DBMS统一管理和控制。
6. 答:数据独立性是指数据库中的数据独立于应用程序,即数据的逻辑构造、存储构造与存取方式的改变不影响应用程序。
数据独立性一般分为数据的逻辑独立性和数据的物理独立性。
数据逻辑独立性是指数据库总体逻辑构造的改变〔如修改数据定义、增加新的数据类型、改变数据间的联系等〕不需要修改应用程序。
数据物理独立性是指数据的物理构造〔存储构造、存取方式等〕的改变,如存储设备的更换、物理存储格式和存取方式的改变等不影响数据库的逻辑构造,因而不会引起应用程序的改变。
7. 答:数据库系统中数据不是面向单个应用组织的,而是直接面向数据本身及数据间的内在联系来组织的,因此可以方便地供多用户多应用共享,这样,数据的冗余度就大幅度降低了。
数据库原理与应用(清华大学版)课后答案第13章 数据库完整性

数据库完整性练习题13及参考答案1.什么是数据完整性如果数据库不实施数据完整性会产生什么结果答:数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的重要标准。
如果数据库不实施数据完整性,在用INSERT 、DELETE 、UPDATE 语句修改数据库内容时,数据的完整性可能会遭到破坏,就可能会存在下列情况:无效的数据被添加到数据库的表中,如:将学生考试成绩输入成负数;对数据库的修改不一致,如:在一个表中修改了某学生的学号,但该学生的学号在另外一个表中却没有得到修改;将存在的数据修改为无效的数据,如:将某学生的班号修改为并不存在的班级号。
2.数据完整性有哪几类如何实施它们分别在什么级别上实施答:数据完整性分为以下3类:(1)域完整性:是指一个列的输入有效性,是否允许为空值。
强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK 约束和规则)或可能值的范围(通过FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。
如:学生的考试成绩必须在0~100之间,性别只能是“男”或“女”。
(2)实体完整性:是指保证表中所有的行唯一。
实体完整性要求表中的所有行都有一个唯一标识符。
这个唯一标识符可能是一列,也可能是几列的组合,称之为主键。
也就是说,表中的主键在所有行上必须取唯一值。
强制实体完整性的方法有:索引、UNIQUE 约束、PRIMARY KEY 约束或IDENTITY 属性。
如:student 表中sno (学号)的取值必须唯一,它第 章 13唯一标识了相应记录所代表的学生,学号重复是非法的。
学生的姓名不能作为主键,因为完全可能存在两个学生同名同姓的情况。
(3)参照完整性:是指保证主关键字(被引用表)和外部关键字(引用表)之的参照关系。
它涉及两个或两个以上表数据的一致性维护。
外键值将引用表中包含此外键的记录和被引用表中主键和外键相匹配的记录关联起来。
Qt 5开发及实例 第13章 Qt 5数据库

1.SELECT语句
(9)IN子查询。查找选修了课程号为101的学生情况。
SELECT * FROM students WHERE studentid IN ( SELECT studentid FROM courses WHERE courseid = '101' )
在执行包含子查询的SELECT语句时,系统首先执行子查询,产生一个结果表,再执行外查询。本例中, 首先执行子查询:
/* IN子句 */
| expression { = | < | <= | > | >= | <> | != | !< | !> } { ALL | SOME | ANY } ( subquery )
/* 比较子查询 */
| EXIST ( subquery )
/* EXIST子查询 */
}
1.SELECT语句
第13章 Qt 5数据库
——数据库基本概念
1.数据和数据库(DB)
利用计算机进行数据处理,首先需要将信息以数据形式存储到计算机中,因为数据是可以被 计算机接收和处理的符号。根据所表示的信息特征不同,数据有不同的类别,如数字、文字、表 格、图形/图像和声音等。
数据库(DataBase,DB),顾名思义,就是存放数据的仓库,其特点是:数据按照数据模型 组织,是高度结构化的,可供多个用户共享并且具有一定的安全性。
SELECT studentid FROM courses, students,grades WHERE courseid = '101' AND students.studentid = grades.studentid AND courses.courseid = grades.coursesid
Delphi中BDE数据库应用程序开发

13.1.1 TTable控件 2. TTable控件的主要方法 (1) 移动记录指针的方法。 常用的方法有四个:First:将记录指针定位 到表中第一条记录;Last:将记录指针定位 到表中最后一条记录;Next:将记录指针定 位到表中下一条记录;Prior:将记录指针定 位到上一条记录。在使用中,有时可也用数 据浏览控件中的TDBNavigator来代替。
13.1.2 TQuery控件 Query控件是一个数据集控件,和Table控件有 很多相同的属性、事件、方法。它提供一种 使用SQL语句进行数据访问的方法。该方法 可以访问数据库中的一个或多个表,TQuery 控件是程序员使用SQL语言开发数据库应用 程序的有力工具,可以使用TQuery控件对一 个远地的数据库SQL服务器进行访问,建立 客户∕服务模式的应用程序。
13.1.2 TQuery控件 (6) SQL属性:该属性用于设置该数据集使用 的SQL语句,单击该属性右边的按钮会打开 一个编辑框可以在该编辑框中输入SQL查询 语句,该语句可以使用多个参数,参数前面 使用冒号: 标注,可通过Params属性或 ParamByName方法设置参数值。 【例13-5】使用SQL语句动态实现往学生表中 添加数据。 程序如下
图13-1 数据访问页上的数据访问控件
13.1 数据访问控件 BDE数据集控件包含了用于各种BDE数据引擎 的数据集构件,这些构件封装了数据库连接、 数据表格、数据查询等特性。如图13-2所示。
图13-2 BDE数据集控件
13.1.1 TTable控件 TTable控件是数据库应用程序开发最常用的控 件,它用于连接数据库的一个基表,或基表 中的所有列和行,或部分列和行。在一个应 用程序窗体中放置一个TTable控件的过程如 下: (1) 在控件选择板上选择BDE页。 (2) 单击TTable图标。 (3) 单击鼠标,获得一个TTable控件。 (4) 为TTable控件设置有关的属性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用FIRST、LAST和PRIOR,所以无法回滚读取以前的数据;
如果选择了SCROLL选项,则可能使用所有的FETCH操作。
29 当使用Transact-SQL扩展语法定义游标时,有以下约
执行结果如图13-1所示。
22
图13-1 打开游标
23
13.3.2 读取游标
当游标被成功打开后,就可以从游标中逐行读取数据,
以进行相关处理。从游标中读取数据主要使用FETCH语句。 读取游标的语法格式如下:
FETCH
[[NEXT|PRIOR|FIRST|LAST|ABSOLUTE {n|@nvar}|RELATIVE {n|@nvar}] FROM] {[GLOBAL] cursor_name | @cursor_variable_name} [INTO @variable_name [,...n]]
OPTIMISTIC:说明在数据被读入游标后,如果游标中
某行数据已发生变化,那么对游标数据进行更新或删除可 能会导致失败。如果声明中已指定了关键字 FAST_FORWARD,则不能指定OPTIMISTIC。
15 ● TYPE_WARNING:指定如果游标从所请求的类型
隐性转换为另一种类型,则给客户端发送警告消息。
7 ● INSENSITIVE:定义一个游标,以创建将由该游
标使用的数据的临时副本。对游标的所有请求都从tempdb
中的临时表中得到应答,因此,在对该游标进行提取操作 时返回的数据中不反映对基表所做的修改,并且该游标不
允许修改。
● SCROLL:说明所定义的游标可以前滚、后滚,可 使用所有的提取选项(FIRST,LAST,PRIOR,NEXT,
中的数据,则无数据记录返回,并把游标置于第一行之前。 ● FIRST:返回游标中的第一行,并将其作为当前行。 ● LAST:返回游标中的最后一行,并将其作为当前 行。
25 ● ABSOLUTE {n | @nvar}:如果n或@nvar为正数,
则表示从游标中返回的数据行数;如果n或@nvar为负数,
3
13.1 游 标 的 概 念
执行SELECT语句进行查询时返回一个结果集,结果
集只能作为一个整体进行处理,而不能对其中的部分行做 单独处理。但是在实际应用开发中,往往需要对结果集中
的不同行进行不同的处理,游标正是SQL Server提供的一
种机制,它能够对结果集进行逐行处理,其工作方式类似 于指针,可以指向结果集中的任意位置以此对指定位置的 数据进行处理。
1
第13章 游标和其他概念
13.1 游标的概念 13.2 定义游标 13.3 游标的使用 13.4 事务 13.5 并发控制
2
【技能目标】
学会使用游标;理解事务的概念并学会基本的事务操
作;理解并发控制的基本方法。
【知识目标】
理解游标的概念;掌握定义游标的方法;掌握游标的 使用方法;理解事务的概念和属性;掌握基本的事务操作; 了解并发控制的基本方法。
4 使用游标要遵循“定义游标→打开游标→读取游标→
关闭游标→释放(删除)游标”的顺序。
5
13.2 定 义 游 标
定义游标使用DECLARE CURSOR语句,有两种语法
格式:一种是SQL-92标准的游标定义,另一种是TransactSQL扩展的游标定义。
6
1. SQL-92标准的游标定义
SQL-92标准游标定义的语法格式如下:
其他参数的含义与SQL-92标准中的一样。 【例13-4】 定义局部游标,游标的移动方向可以前滚
和后滚。
DECLARE cur_student2 CURSOR LOCAL SCROLL SCROLL_LOCKS
FOR
SELECT sno,sname FROM student WHERE YEAR(borndate)='1989'
Transact-SQL扩展的游标定义的语法格式如下:
DECLARE cursor_name CURSOR [LOCAL | GLOBAL]
[FORWARD_ONLY | SCROLL]
[STATIC | KEYSET | DYNAMIC | FAST_FORWARD] [READ_ONLY | SCROLL_LOCKS | OPTIMISTIC] [TYPE_WARNING] FOR select_statement [FOR UPDATE [OF column_name [,…n]]]
10 【例13-3】 将例13-1定义的游标cur_student1定义成可
更新的游标。
DECLARE cur_student1 CURSOR FOR
SELECT sno,sname,ssex,borndate FROM student
FOR UPDATE
11
2. Transact-SQL扩展的游标定义
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR select_statement
[FOR {READ ONLY | UPDATE [ OF column_name [,…n]]}] 参数说明如下: ● cursor_name:游标名。必须遵从标识符命名规则。
24 参数说明如下:
● NEXT:返回结果集中当前行的下一行,并且当前
行递增为结果行。如果FETCH NEXT是第一次读取游标中 的数据,则返回结果集中的第一行。NEXT是默认的游标
提取
选项。 ● PRIOR:返回结果集中当前行的前一行,并且当
前行递减为结果行。如果FETCH PRIOR是第一次读取游标
@cursor_variable_name} 参数说明如下:
● GLOBAL:说明打开的是全局游标,省略时打开
局部游标。 ● cursor_name:打开的游标名。若一个全局游标和
一个局部游标都使用同一个游标名,则如果使用GLOBAL,
便表明其为全局游标,否则表明其为局部游标。 ● @cursor_variable_name:游标变量名,该变量名引 用了一个游标。
14 ● READ_ONLY | SCROLL_LOCKS | OPTIMISTIC:
说明游标或基表的访问属性。
READ_ONLY:说明所声明的游标为只读的,不能通 过该游标更新数据。
SCROLL_LOCKS:说明通过游标完成的定位更新或定
位删除可以成功。如果声明中已指定了关键字 FAST_FORWARD,则不能指定SCROLL_LOCKS。
则返回游标内从最后一行数据算起的第n或@nvar行数据; 如果n或@nvar为0,则没有行返回。n必须为整型常量,且
@nvar必须为smallint、tinyint或int。
● RELATIVE {n | @nvar}:与ABSOLUTE有一点区 别,即其计算n是以当前行为基点的。
● INTO @variable_name [,…n]:将使用FETCH语
定:
(1) 如果定义了FORWARD-ONLY或FAST_FORWARD 选项,则只能使用FETCH NEXT语句读取游标。
(2) 如果没有定义DYNAMIC、FORWARD_ONLY或
FAST_FORWARD选项,而定义了KEYSET、STATIC或 SCROLL中的任何一个,则可使用所有的FETCH操作。
返回值 -m -1 0 m
含
义
游标被异步填充,m 为游标中的记录行数 游标是动态的 无游标打开 游标已被完全填充,m 为游标中的记录行数
20 【例13-5】 打开例13-4中定义的游标cur_student2,查看该
游标的数据行数。
DECLARE cur_student2 CURSOR LOCAL SCROLL SCROLL_LOCKS
● READ ONLY:说明所定义的游标是只读的。
● UPDATE [OF column_name [,…n]]:定义游标内可 更新的列。如果指定OF column_name [,…n]参数,则只允
许修改所列出的列。如果在UPDATE中未指定列的列表,
则可以更新所有列。
9 【例13-1】 在学生成绩管理系统数据库SCMS中,定 义一个查询学生表student的 游标。 DECLARE cur_student1 CURSOR FOR SELECT sno,sname,ssex,borndate FROM student 【例13-2】 将查询系部表department的结果集定义一个 只读游标。 DECLARE cur_department CURSOR FOR SELECT * FROM department FOR READ ONLY
18 打开游标后,可以使用全局变量@@ERROR来判断游
标打开是否成功。打开成功返回0值,否则返回非0值。游
标被成功打开后,可以使用全局变量@@CURSOR_ROWS 来获取游标中的记录行数。@@CURSOR_ROWS返回值及
含义如S返回值及含义
RELATIVE,ABSOLUTE)。如果省略SCROLL,则只能使
用NEXT提取选项。
8 ● select_statement:SELECT语句。由该查询产生与
所定义的游标相关联的结果集。在SELECT语句中不能出
现COMPUTE、COMPUTE BY、FOR BROWSE和INTO这 样的关键字。
16
13.3 游 标 的 使 用
13.3.1 打开游标
游标定义好之后,要从游标中读取数据,必须先打开 游标。在SQL Server中,使用OPEN语句打开游标,然后通 过执行在DECLARE CURSOR语句中指定的Transact-SQL语 句来填充游标。