数据库第8章

合集下载

第8章 数据库的安全与权限

第8章 数据库的安全与权限
SQL Server 2005是以“默认安全”。SQL Server是一个设计用于在服务器 上运行,能够接受远程用户和应用程序访问的数据库管理系统。为了远程访问 SQL Server实例,需要一种网络协议来建立到SQL Server服务器的连接 可以通过以下操作来配置远程访问,启用远程访问连接。 (1)执行【开始】|【所有程序】|【Microsoft SQL Server 2005】|【配置工具 】|【SQL Server外围应用配置器】命令,进入SQL Server 2005外围应用配置 器窗口。

掌握SQL Server 2005中的权限管理策略
2013年7月5日
第2页
数据库原理及应用案例教程
北京大学出版社
教学重点及难点
重点:

掌握SQL Server 2005中用户和角色的策略 掌握SQL Server 2005中的权限管理策略


难点:
掌握数据库安全控制的各种方法
2013年7月5日
第6页
2013年7月5日
数据库原理及应用案例教程
北京大学出版社
8.1 数据库安全控制机制
数据库的安全性是指保护数据库,以防止不合法的使用使数据泄密、
更改或破坏。是数据库管理员必须认真考虑的问题。具体来讲,数据库管 理员必须制定一套安全控制策略,一方面要保证那些合法用户可以登录到
数据库服务器中,并且能够实施数据库中各种权限范围内的操作;另一方
(2)在强制存取控制方法中,每一个数据对象被标以一定的密级,每
一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有 合法许可证的用户才可以存取。强制存取控制因此相对比较严格。
2013年7月5日
第11页

MySQL数据库应用与开发技术 第8章 触发器

MySQL数据库应用与开发技术 第8章 触发器
• 如果修改后的值大于100,则值为100 • 如果修改后的值小于0,则值为0 • 如果修改后的值为旧值2倍以上,则值为旧值2倍
19
建表脚本
➢ CREATE DATABASE IF NOT EXISTS mydb; ➢ USE mydb;
➢ DROP TABLE IF EXISTS `account`; ➢ CREATE TABLE `account` ( ➢ `id` int(10) unsigned NOT NULL auto_increment, ➢ `user` varchar(45) NOT NULL, ➢ `amount` int(11) NOT NULL default '0', ➢ PRIMARY KEY (`id`) ➢ ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; ➢ INSERT INTO `account` (`id`,`user`,`amount`) VALUES ➢ (1,'李知龙',55), ➢ (2,'卢中明',80), ➢ (3,'乔大平',30);
• 可在before触发器中赋值、取值 • 可在after触发器中取值
old
• 只能用于取值,因为赋值没意义
INSERT语句,只有new合法 DELETE语句,只有old才合法 UPDATE语句,可以同时使用new和old
18
课程练习2
➢ 创建触发器:
upd_check
➢ 功能作用:
修改Account表中的记录的amount字段时,作如下检查:
4
触发器作用
➢ 数据约束
实现数据完整性检查和约束

第8章 数据库系统实现技术

第8章 数据库系统实现技术

数据库系统实现技术1.1 数据库管理系统概述数据库管理系统(Data Base Mangement System DBMS)是在操作系统支持下的一个复杂的和功能强大的系统软件,它对数据库进行统一管理和控制。

1.11 数据库管理系统的基本功能数据定义功能:允许用户使用专门的数据定义语言来对数据库的结构进行描述,包括外模式,模式,内模式的定义,数据库完整性的定义,安全保密的定义,索引的定义,视图的定义等。

这些定义存储在数据字典中,是DBMS运行的基本依据。

数据操作功能:支持用户使用表达能力强且易学易用的数据操作语言或查询语言来表达对数据库中数据所要进行的检索,插入,更新,删除操作,高效的执行用户所表达的对数据库中数据的操作请求。

数据存储和管理功能:支持对大量的,各种类型的数据进行组织,存储和管理工作,包括用户数据,索引,数据字典等的存储管理。

事务管理功能:提供对事物概念的支持和事务管理能力。

支持对数据的并发存取,即多个不同事务同时对数据进行存取,避免同时的访问可能造成的不良后果,并保证数据库具有从多种类型的故障中恢复的能力。

其他功能:包括与网络中其他软件系统的通信功能,一个DBMS与另一个DBMS或文件系统的数据转换功能,异构数据库之间的互访和互操作功能,对新的高级应用提供支持的能力等。

1.12 数据库管理系统的主要部分和各部分的功能数据库系统包括以下三部分:(1)存储管理器:高效的利用辅助存储器来存放数据,并使得数据能够被快速存取。

具体负责外存储器中的数据存储管理和访问,索引的建立和管理,内存中的缓冲区管理等。

(2)查询处理器:高效的执行像SQL这样非常高级的语言表达的数据查询和修改。

具体负责DDL编译,数据安全性定义和安全性控制,数据完整型定义和完整性控制,查询编译,查询优化,查询执行等。

(3)事务管理器:对并发执行的事务进行有效地管理,使之具有ACID特性。

具体负责事务管理,并发控制,日志管理和故障恢复等。

《数据库》第八章 多表连接及子查询

《数据库》第八章 多表连接及子查询
右外连接的两个表之间是有主从关系的,右外连接中右表或 者说写在逗号或者join后面的为右表,运行结果中将包含所 有右表中的记录,左表记录根据匹配关系补充右表信息,如 无关联记录则置NULL处理(如需加索引,请在左表上与右表 关联的公共列上加索引,详见下面章节)。
例:查询出学生信息与院系信息相关连的查询结果集, 要求学院信息是全部的,学生信息作为补充。
SQL> SELECT t1.s_id, t1.s_name,c_id,t2.c_name FROM t_student t1 LEFT OUTER JOIN t_college t2 USING (c_id);
19
Inspur Education
外部连接-右外连接
右外连接(RIGHT [OUTER] JOIN):
这类连接实际应用场景较等值连接来说较为少见,例 :查询一下学生自修课程数大于院系平均自修课程数 的学生与院系的相关信息。
SQL> SELECT t1.s_id, t1.s_name, t2.c_name, t1.s_course FROM t_student t1, t_college t2 WHERE t1.s_course > t2.c_course_avg AND t1.c_id = t2.c_id;
right [outer] join子句+on子句连接
SQL> SELECT t1.s_id, t1.s_name,t2.c_id,t2.c_name FROM t_student t1 RIGHT OUTER JOIN t_college t2 ON t1.c_id = t2.c_id;
right [outer] join子句+using子句连接
公共列是两个或更多表中存在相同数据的列,比如, t_student表和t_college表都包含一个c_id的公共列 。这里的公共列的列名不必一致,主要是存放的数据 要有一定的相关性,甚至是业务上的同类数据。

-数据库原理及应用第二版-第8章数据库设计

-数据库原理及应用第二版-第8章数据库设计
需求说明 概念结构 设计 概念结构 逻辑结构 物理结构
需求 分析
逻辑结构 设计
物理 设计
图 7- 2
8.1.3数据库设计的基本步骤
需求分析阶段 概念结构设计 结构设计阶段 逻辑结构设计 物理结构设计 功能设计 行为设计阶段 事务设计 程序设计 数据库实施阶段 数据库运行和维护
需求分析:收集信息并进行分析和整理,是后 续的各个阶段的基础。概念结构设计:对需求分析 的结果进行综合、归纳形成一个独立于具体的DBMS 的概念模型。逻辑结构设计:将概念结构设计的结 果转换为某个具体的DBMS所支持的数据模型,并对 其进行优化。物理数据库设计:为逻辑结构设计的 结果选取一个最适合应用环境的数据库物理结构。 数据库行为设计:要设计所包含的功能,功能间的 关联关系以及一些功能的完整性要求;数据库实 施:运用DBMS提供的数据语言以及数据库开发工 具,根据逻辑设计和物理设计的结果建立数据库, 编制应用程序,组织数据入库并进行试运行。数据 库运行和维护阶段:投入正式使用,在其使用过程 中不断对其进行调整、修改和完善。
常用的发现事实的方法有: 1、检查文档 2、面谈 3、观察业务的运转 4、研究 5、问卷调查
8.3 数据库结构设计
8.3.1概念结构设计
概念设计的特点和策略 1、概念模型的特点 有丰富的语义表达能力。 易于交流和理解。 易于更改。 易于向各种数据模型转换,易于导出与DBMS 有关的逻辑模型。
必须注意:关系上定义的索引数并不是越多越好, 系统为维护索引要付出代价,查找索引也要付出代价。 例如,若一个关系的更新频率很高,这个关系上定义的 索引数不能太多。因为更新一个关系时,必须对这个关 系上有关的索引做相应的修改。
聚簇存取方法 为了提供某个属性或属性组的查询速 度,把这个或这些属性(称为聚簇码)上具有 相同值的元祖集中存放在连续的物理块称为 聚簇。 一个数据库可建立多个聚簇,一个关系 只能加入一个聚簇。

数据库技术与应用第8章 习题答案

数据库技术与应用第8章 习题答案

第8章数据库恢复技术1. 试述事务的概念及事务的四个特性。

解:事务是用户定义的一个基本操作序列,这个基本操作序列可以包含一个或者多个数据库的基本操作。

事务所包含的基本操作要么都做,要么都不做,它们构成了一个不可分割的工作单元。

事务具有四个基本特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称为ACID特性。

2. 数据库运行中可能产生的故障有哪些?简述不同故障对数据库造成的影响有何不同。

解:数据库运行中可能发生各种各样的故障,大致分为以下几类:事务故障、系统故障、介质故障、其他一些因素导致的故障,如计算机病毒、操作失误等。

不同故障对数据库造成的影响不同,事务故障、系统故障影响事务的正常执行,介质故障和计算机病毒破坏数据库数据。

3. 恢复机制的基本思想是什么?恢复的实现技术有哪些?解:恢复机制的基本思想是:建立冗余数据;利用这些冗余数据实施数据库恢复。

数据转储和登录日志文件是建立冗余数据最常用的技术。

当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。

4. 什么是日志文件?日志文件的作用是什么?登记日志文件的原则是什么?解:日志文件是用来记录事务对数据库的更新操作的文件,是系统运行的历史记载。

日志文件的作用是:用来进行事务故障恢复和系统故障恢复,协助后备副本进行介质故障恢复。

登记日志文件必须要遵循两条原则:一是登记的次序严格按并发事务执行的时间次序。

二是必须先写日志文件,后写数据库。

5. 试述事务故障、系统故障、介质故障的恢复策略和方法。

解:●事务故障的恢复:事务故障的恢复是由系统自动完成的,对用户是透明的。

其过程如下:(1) 反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。

(2) 对该事务的更新操作执行逆操作。

(3) 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。

Removed_数据库第8-11章习题

Removed_数据库第8-11章习题

Removed_数据库第8-11章习题第8章数据库编程⼀、选择题1、修改存储过程使⽤的语句是()。

A. ALTER PROCEDUREB. DROP PROCEDUREC. INSERT PROCEDUED. DELETE PROCEDUE2、创建存储过程的语句是()。

A. ALTER PROCEDUREB. DROP PROCEDUREC. CREATE PROCEDUED. INSERT PROCEDUE3、下⾯()组命令,将变量count值赋值为1。

A.DECLARE @countSELECT @count=1B.DIM count=1C.DECLARE count SELECT count=1D.DIM @count SELECT @count=14、在SQL Server 中删除存储过程⽤()。

A.ROLLBACK B. DROP PROC C.DELALLOCATE D. DELETE PROC10.在SQL Server 编程中,可使⽤()将多个语句捆绑。

A.{} B. BEGIN-END C.( ) D. [ ]⼆、填空题1、在T-SQL编程语句中,WHILE结构可以根据条件多次重复执⾏⼀条语句或⼀个语句块,还可以使⽤()和 CONTINUE 关键字在循环内部控制 WHILE 循环中语句的执⾏。

2、存储过程是存放在()上的预先定义并编译好的T-SQL语句。

3、游标是系统为⽤户开设的⼀个(),存放SQL语句的执⾏结果第9章关系查询处理和查询优化课后作业:P275,2题答案:12、事务的原⼦性是指。

A.事务中包括的所有操作要么都做,要么都不做B.事务⼀旦提交,对数据库的改变是永久的C.⼀个事务内部的操作及使⽤的数据对并发的其他事务是隔离的D.事务必须是使数据库从⼀个⼀致性状态变到另⼀个⼀致性状态3、事务的⼀致性是指。

A.事务中包括的所有操作要么都做,要么都不做B.事务⼀旦提交,对数据为的改变是永久的C.⼀个事务内部的操作及使⽤的数据对并发的其他事务是隔离的D.事务必须是使数据库从⼀个⼀致性状态变到另⼀个⼀致性状态4、事务的隔离性是指。

第8章 数据库系统的概要设计

第8章 数据库系统的概要设计

2.数据库概念结构设计的方法 概念模型是数据模型的前身,它比数据模型更独立于机器、更 抽象,也更加稳定。概念设计的方法有以下4种: (1)自顶向下的设计方法。 该方法首先定义全局概念结构的框架,然后逐步细化为完整的全 局概念结构。 (2)自底向上的设计方法。 即首先定义各局部应用的概念结构,然后将它们集成起来,得到 全局概念结构的设计方法。 (3)逐步扩张的设计方法。 此方法首先定义最重要的核心概念结构,然后向外扩充,生成其 他概念结构,直至完成总体概念结构。 (4)自顶向下与自底向上相结合的方法。 最常采用的策略是自底向上的方法,即自顶向下地进行需求分析, 然后再自底向上地设计概念结构,其方法如图8-1所示。其中,概 念模式对应于概念模型。
8.1.2 数据库系统的概要设计
对于基于结构化的数据库系统开发方法而言,数据库系统在完成 需求分析之后应进入数据库系统的概要设计阶段,此阶段不仅需要 进行数据库概念结构设计(也可简称数据库概念设计)工作,即数 据库结构特性设计;而且还需要确定数据库系统的软件系统结构, 进行模块划分,确定每个模块的功能、接口以及模块间的调用关系, 即进行数据库行为特性的设计过程。 数据库概念结构设计是将系统需求分析得到的用户需求抽象为 信息结构过程。只有将系统应用需求抽象为信息世界的结构,也就 是概念结构后,才能转化为机器世界中的数据模型,并用DBMS实现 这些需求。
成 批 成 绩 单 录 入
打 印 班 级 成 绩
打 印 成 绩 统 计 表
图8-19 成绩管理系统层次图
8.4.2
IPO图
IPO图(input process output图)输入—处理—输出图是在层 次结构图的基础上推出的一种描述系统结构和模块内部处理功能 的工具。在总体设计、详细设计、设计、评审、测试和维护的不 同阶段,都可以使用IPO图对设计进行描述。如下图所示的IPO图 :

第8章--数据完整性和安全性

第8章--数据完整性和安全性
最新课件 4
8.1.2 数据完整性 根据数据完整性措施所作用的数据库对象和范
围不同,可以将数据完整性分为以下几种: 1、实体完整性 又称为行完整性。它把表中的每行都看作一个
实体,要求所有行都具有惟一标识。在SQL Server中,可以通过建立PRIMARY KEY约束、 UNIQUE约束等措施来实施实体完整性。例如, 对“客户信息表”,客户编号就可以作为主键, 每个客户的编号能够惟一地确定该客户对应的 记录信息,那么在输入数据时,则不能有相同 客户编号的记录存在,通过对客户编号这一字 段建立主键约束,可实现“客户信息表”的实 体完整性。
最新课件 13
8.3 触发器及其创建
1、触发器的功能 触发器是一种特殊类型的存储过程,与表紧密相连。
当用户修改表中的数据时,触发器将自动执行,使用 触发器可以实现多个表间数据的一致性。一般可以使 用触发器完成如下功能: (1)级联修改数据库中相关的表。如在产品信息数 据库中有两个表:客户表cust_table 和订单表 order_table。订单表order_table中包含订单信息和 有业务往来的客户信息。如果出于某一需要删除了客 户表cust_table中的某一客户信息,那么在订单表 order_table中所有与该客户有关的记录都应该做相应 的调整。
VALUES (‘1001’, ‘JCP Inc.’, 500000, ‘张言’, ‘53412573’)
GO
最新课件 20
用户在创建触发器以后的使用过程中, 可能会发现使用触发器虽然可以保证数 据引用的完整性,但却会影响系统性能; 有时要将触发器升级为新版本,这都需 要删除触发器,可以在图8.2所示的“定义 触发器的界面”中选定相应的触发器名 称后,单击“删除”按钮,也可以用TSQL语句删除。删除触发器的语句为:

数据库原理与应用(第二版)章 (8)

数据库原理与应用(第二版)章 (8)

数据类型 长度 varchar 20 varchar 50 varchar 10 varchar 20 varchar 10 numeric varchar 15 datetime
主键或外键 primary key
foreign key
foreign key
约束 not null not null booktype. booktypeno not null publishinfo .publishno null not null not null
27
· 出版社与图书之间存在联系,一个出版社可以出版多种 图书,可从一个出版社购买多种图书或多本图书,所以它们之间 存在多对多联系。
· 读者与图书之间存在联系,一个读者可以借多本图书, 一本书可被多个读者借阅,所以它们之间存在多对多联系。
其各个实体之间联系的描述如图8.9的E-R图所示。
28
图8.9 图书管理系统的E-R图 29
3
借书过程:读者在图书馆的终端查询图书信息,将选中的图 书编号给图书管理人员;图书管理人员从书库中找到图书(对于 有权限进库的读者,自己可以从架上选到所需图书后,将图书和 借书卡交给管理人员),并将读者编号和图书编号输入系统(或通 过码阅读器将图书编码和借书卡上的读者条码读入处理系统); 系统根据读者编号查询借阅文件中找到相应记录,确定是否办理 借书手续;若读者符合所有借书条件,则予以借出,同时,系统 在借阅文件中增加一条记录,记入读者编号、图书编码、借阅日 期等内容。如果读者有如下情况之一,将不予办理借书手续:
中文名称 图书编号 图书名称 图书类别 图书作者 出版社编号 价格 ISBN 登记日期
39
表8.6 借阅表 (borrow_returninfo)

MySQL 数据库基础与应用 第8章 存储过程和存储函数

MySQL 数据库基础与应用 第8章 存储过程和存储函数

COMMENT 'string'
| LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
组成。这组语句编译后存储在数据库服务器端,用户通过指定存储过程 的名称并给出参数(如果该存储过程带有参数)来执行。将经常需要执行
的特定的操作写成存储过程,通过过程名,就可以多次调用,从而实现 程序的模块化设计,这种方式提高了程序的效率,节省了用户的时间。
存储过程具有以下特点:
● 存储过程编译后放在数据库服务器端、并在服务器端运行,执 行速度快。
入/输出参数3种,分别用IN、OUT和INOUT这3个关键字来标志。存储过
程中的参数被称为形式参数(简称形参),调用带参数的存储过程则应提
供相应的实际参数(简称实参)。
● IN:向存储过程传递参数,只能将实参的值传递给形参;在存储
过程内部只能读、不能写;对应IN关键字的实参可以是常量或变量。
● OUT:从存储过程输出参数,存储过程结束时形参的值会被赋给
● 存储过程可以用于处理较为复杂的应用问题。
● 存储过程可以提高系统性能 。
● 可存储过程增强了数据库的安全性。
● 可增强SQL语言的功能和灵活性。
● 存储过程允许模块化程序设计。
● 可以减少网络流量。
MySQL 数据库基础与应用
2

8.2 存储过程操作
8.2.1 创建存储过程
创建存储过程使用的语句是CREATE PROCEDURE。 语法格式:

数据库第八章习题答案

数据库第八章习题答案

第八章习题一、选择填空1.下列对派生类的描述中,( )是错的。

A.一个派生类可以作为另一个派生类的基类;B.派生类至少有一个基类;C.派生类的成员除了它自己的成员以外,还包含了它的基类的成员;D.派生类中继承的基类成员的访问权限到派生类保持不变。

2.派生类的对象对它的基类成员中( )是可以访问的。

A.公有继承的公有成员;B.公有继承的私有成员;C.公有继承的保护成员;D.私有继承的公有成员。

3.对基类和派生类的关系的描述中,( )是错的。

A.派生类是即类的具体化;B.派生类是基类的子集;C.派生类是基类定义的延续;D.派生类是基类的组合。

4.派生类的构造函数的成员初始化列中,不能包含( )。

A.基类的构造函数;B.派生类中子对象的初始化;C.基类的子对象的初始化;D.派生类中一般数据成员的初始化。

5.关于子类型的描述中,( )是错误的。

A.子类型就是指派生类是基类的子类型;B.一种类型当它至少提供了另一种类型的行为,则这种类型是另一种类型的子类型;C.在公有继承下,派生类是基类的子类型;D.子类型关系是不可逆的。

6.关于多继承二义性的描述中,( )是错误的。

A.一个派生类的两个基类中都有某个同名成员,在派生类中对该成员的访问可能出现二义性;B.解决二义性的最常用的方法是对成员名的限定法;C.基类和派生类中同时出现的同名函数,也存在二义性问题;D.一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类的成员进行访问时也可能出现二义性。

7.设置虚基类的目的是( )。

A.简化程序;B.消除二义性;C.提高运行效率;D.减少目标代码8.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )。

A.与虚基类下面的派生类个数有关;B.多次;C.二次;D.一次9.若类A和类B的定义如下:class A{int i,j;public:void get();//……};class B:A{int k;public:void make();//…….};void B::make(){k=i*j;}则上述定义中,()是非法的表达式。

第8章 数据库保护复习题

第8章 数据库保护复习题
4. 封锁机制是并发控制的主要手段。封锁机制中有两种基本类型的锁,他们是排它锁和。
答案:共享锁
5. 封锁具有3个环节:第一个环节是申请加锁;第二个环节是①;第三个环节是②。
答案:①获得锁②释放锁
6. 若事务T对数据对象A加了S锁,则其他事务只能对数据A再加①,不能再②,直到事务T释放A上的锁。
答案:①S锁②X锁
答案:数据转换服务(简称DTS)
19.数据库保护包含数据的。
答案:安全性、完整性、并发控制、恢复
20.保护数据安全性的一般方法是。
答案:设置用户标识和存取权限控制
21.数据的安全性是指。
答案:保护数据库,防止未经授权的,或不合法的使用造成的数据泄漏、更改或破坏
22.安全性控制的一般方法有①、②、③、④和视图的保护五级安全措施。
答案:①用户标识鉴定②存取控制③审计④数据加密
23.存取权限包括两方面的内容,一个是①,另一个是②。
答案:①要存取的数据对象②对此数据对象进行操作的类型
24.①和②一起组成了安全性系统。
答案:①授权编译系统②合法权检查机制
25.是DBMS的基本单位,它是用户定义的一组逻辑一致的操作序列。
答案:事务
26.DBMS的基本工作单位是事务,它是用户定义的一组逻辑一致的操作序列;并发控制的主要方法是机制。
D.并发控制的目的就是消除死锁
答案:ABCD
4. 封锁机制是并发控制的主要手段,()封锁协议不但能够防止丢失修改,还可进一步防止读“脏”数据。
A.一级 B.二级 C.三级 D.都可以
答案:BC
5. 若事务T对数据R已加X锁,则其他事务对数据R()。
A.可以加S锁 B.不能加S锁 C.可以加X锁 D.不能加任何锁

数据库习题 第八章

数据库习题  第八章

第8章并发控制
考试时间:
1.解决并发操作带来的数据不一致问题普遍采用()技术。

A.封锁
B.存取控制
C.恢复
D.协商
2.下列不属于并发操作带来的问题是()。

A.丢失修改
B.不可重复读
C.死锁
D.脏读
3.DBMS普遍采用()方法来保证调度的正确性。

A.索引
B.授权
C.封锁
D.日志
4.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。

A.一级封锁协议
B.二级封锁协议
C.三级封锁协议
D.零级封锁协议
5.如果事务T获得了数据项Q上的排他锁,则T对Q()。

A.只能读不能写
B.只能写不能读
C.既可读又可写
D.不能读也不能写
6.设事务T1和T2,对数据库中的数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作()。

A.T1正在写A,T2要读A
B.T1正在写A,T2也要写A
C.T1正在读A,T2要写A
D.T1正在读A,T2也要读A
7.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。

A.一个是DELETE,一个是SELECT
B.一个是SELECT,一个是DELETE
C.两个都是UPDATE
D.两个都是SELECT
第8章并发控制测试结果
题号正确答案:你的答案:
(1) A
(2) C
(3) C
(4) A
(5) C
(6) D
(7) D。

数据库原理与应用系列第八章习题(含答案)

数据库原理与应用系列第八章习题(含答案)

第八章习题(答案)班级:学号: 姓名:1.填空题(1)SQL Server 有两种安全认证模式,即___WINDOWS_______________安全认证模式和______混合______安全认证模式。

(2)SQL SERVER安装好以后,只有2个已经创建的用户:___SA_______和BULTIN/administrators,它们都是超级用户,对数据库拥有一切权限。

(3)数据库的完整性是指数据的___正确性___和___相容性____。

(4)按数据库状态,数据转储分为动态转储和静态转储。

(5)按数据转储方式,数据转储分为海量转储和增量转储。

2.单选题(1)日志文件用于记录( D )。

A、程序运行过程B、数据操作C、程序运行结果D、对数据的更新操作(2)SQL的COMMIT语句的主要作用是( C )。

A、终止程序B、中断程序C、事务提交D、事务回退(3)SQL的ROLLBACK语句的主要作用是( D )。

A、终止程序B、中断程序C、事务提交D、事务回退(4)在数据库系统中,对存取权限的定义称为(B)。

A、命令B、授权C、定义D、审计(5)设有两个事务T1,T2,其并发操作如下表所示,下面评价正确的是(C )。

A、该操作不存在问题B、该操作丢失修改C、该操作不能重复读D、该操作读“脏”数据(6)设有两个事务T1,T2,其并发操作如下表所示,下面评价正确的是(B )。

A、该操作不存在问题B、该操作丢失修改C、该操作不能重复读D、该操作读“脏”数据(7)A、该操作不存在问题B、该操作丢失修改C、该操作不能重复读D、该操作读“脏”数据(8)若事务T对数据对象A加上S锁,则( C )A、事务T可以读A和修改A,其他事务只能再对A加S锁,而不能加X锁B、事务T可以读A但不能修改A,其他事务能对A加S锁和X锁C、事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁D、事务T可以读A和修改A,其他事务能对A加S锁和X锁(9)若事务T对数据对象A加上X锁,则( C )A、事务T可以读A和修改A,其他事务不能对A加X锁B、事务T可以修改A,其他事务不能对A加X锁C、事务T可以读A和修改A,其他事务都不能再对A加任何类型的锁D、事务T修改A,其他事务都不能再对A加任何类型的锁(10)数据库中的封锁机制是( C )的主要方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

并发控制(续)
(2)事务并行(并发)执行
单处理机系统中:交叉并发方式
所有并行事务的并行操作轮流交叉运行
能够减少处理机的空闲时间,提高系统的 效率
并发控制(续)
(2)事务并行(并发)执行
多处理机系统中:同时并发方式
每个处理机都可以运行一个事务,多个处 理机可以同时运行多个事务,实现多个事 务真正的并行运行
加锁的,所以它不能保证可重复读和不读“脏” 数据。
一级封锁协议:没有丢失修改
T1
① Xlock A ② 读A=16 获得 Xlock A 等待 等待 获得 Xlock A 读A=15 A←A-1,写回A=14 Commit,Unlock A
3. 事务1按照一定的条件,从数据库中读取了某 些数据记录后,事务2插入了一些记录,当事 务1再次按相同条件读取数据时,发现多了一 些记录。
后两种不可重复读有时也称为幻影现象
3. 读“脏”数据
事务1修改某一数据,并将其写回磁盘上的数
据库中。
事务2读取同一数据(被事务1修改后的数据)
后,事务1由于某种原因被撤消,这时事务1已 修改过的数据恢复原值
8.3 封锁协议
在运用X锁和S锁对数据对象加锁时,需要约定
一些规则:封锁协议(Locking Protocol) 何时申请X锁或S锁
持锁时间
何时释放X锁或S锁
常用的封锁协议:三级封锁协议
1. 一级封锁协议
事务T 在修改数据R之前必须先对其加X锁,直
到该事务结束才释放
正常结束(COMMIT) 非正常结束(ROLLBACK) 一级封锁协议可防止丢失修改 在一级封锁协议中,如果只是读数据,不需要
数据不一致实例:飞机订票系统
事务 T1 ① 读A=20 事务 T2

③了,数据库 中数据出现错误
A←A-1 写回A=19
并发操作带来的数据不一致性
数据库的并发操作通常会带来3个问题:
丢失修改(lost update)
不可重复读(non-repeatable read)
读“脏”数据(dirty read)
1. 丢失修改
事务 1 与事务 2 从数据库中读出同一数据
并修改,事务 2 的提交结果破坏了事务 1 提交的结果,导致事务 1 的修改被丢失。
例 P265,图8.1 (a)
图8.1 三种数据不一致性
(a) 丢失修改
事务 T1 ① 读A=20 ② ③ A←A-1 写回A=19 ④ A←A-1 写回A=19 读A=20 事务 T2
2. 不可重复读
事务1读取数据后,事务2执行更新操作,
使事务1无法再现前一次读取结果。 例 P265 ,图8.1 (b)
图8.1 三种数据不一致性(续)
(b) 不可重复读
T1 ① 读A=50 读B=100 求 和=150 ② T2
读B=100 B←B*2 写回B=200
③ 读A=50 读B=200 求 和=250 (验算不对)
8.2 封锁
什么是封锁
封锁就是:事务 T 在对某个数据对象(例如 表、记录等)操作之前,先向系统发出请求,
对其加锁;
加锁后事务 T 就对该数据对象有了一定的控 制,在事务 T 释放它的锁之前,其它的事务
不能更新此数据对象。
封锁是实现并发控制的一个非常重要的技术。
基本的封锁类型
DBMS通常提供了多种类型的封锁。一个事务
共享锁 — 读锁,S锁 若事务 T 对数据对象A 加上 S 锁,则其它事
务只能再对A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S 锁。
封锁的相容矩阵
T1 X S T2
X
N
S
N Y
Y
N
Y
-
Y
Y
Y
Y=Yes,相容的请求 N=No,不相容的请求
第八章 并发控制
8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 并发控制概述 封锁 封锁协议 活锁和死锁 并发调度的可串行性 两段锁协议 封锁的粒度 Oracle的并发控制 小结
第八章
8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9
并发控制
并发控制概述 封锁 封锁协议 活锁和死锁 并发调度的可串行性 两段锁协议 封锁的粒度 Oracle的并发控制 小结
并发控制概述
多个事务执行方式主要有2种: (1)事务串行执行
每个时刻只有一个事务运行,其他事务 必须等到这个事务结束以后方能运行 不能充分利用系统资源,不能发挥数据 库共享资源的特点
这样,事务2读到的数据就与数据库中的数据
不一致,是不正确的数据,又称为“脏”数据。
图8.1 三种数据不一致性(续)
T1 T2
(c) 读“脏”数据
① 读C=100 C←C*2 写回C=200 ②
读C=200
③ ROLLBACK C 恢复为100
第八章 并发控制
8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 并发控制概述 封锁 封锁协议 活锁和死锁 并发调度的可串行性 两段锁协议 封锁的粒度 Oracle的并发控制 小结
最理想的并发方式,但受制于硬件环境
事务并发执行带来的问题
可能会存取和存储不正确的数据,破坏事务
的隔离性和数据库的一致性
DBMS必须提供并发控制机制 并发控制机制是衡量一个 DBMS 性能的重要
标志之一
8.1
并发控制概述
并发控制机制的任务
对多个事务的并发操作进行正确调度
保证事务的隔离性 保证数据库的一致性
对某个数据对象加锁后究竟拥有什么样的控制 是由封锁的类型决定的。
基本封锁类型
排它锁(eXclusive lock,简记为X锁) 共享锁(Share lock,简记为S锁)
封锁的2种类型
排它锁 — 写锁,X锁 若事务 T 对数据对象 A 加上 X 锁,则只允许
T读取和修改 A,其它任何事务都不能再对A 加任何类型的锁,直到 T 释放 A 上的锁。
不可重复读的3种情况
1. 事务1读取某些数据后,事务2对其做了修改, 当事务1再次读该数据时,得到与前一次不同 的值(例图8.1(b))。 2. 事务1按照一定的条件,从数据库中读取了某 些数据记录后,事务2删除了其中部分记录, 当事务1再次读取数据时,发现某些记录神密 地消失了。
不可重复读的3种情况
相关文档
最新文档