数据库第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图 :
  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种情况
相关文档
最新文档