数据库 第6章 数据库管理_第1页
数据库 第6章 数据库管理_第2页
数据库 第6章 数据库管理_第3页
数据库 第6章 数据库管理_第4页
数据库 第6章 数据库管理_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

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

文档简介

1、1 电子科技大学数据库原理及应用 了解数据库管理必要性 了解DBMS系统结构及其功能 理解数据库事务及其ACID特性 掌握数据库事务程序 学习数据库并发事务调度 了解数据库锁机制及其控制协议 理解数据库安全模型及其用户管理 掌握数据库备份和恢复处理方法2 电子科技大学数据库原理及应用一、为什么需要数据库管理一、为什么需要数据库管理6.1 数据库管理基础w 数据库系统随规模增大,系统会变得异常复杂w 多用户数据库应用带来数据库访问复杂性w 数据安全和数据隐私对机构和用户都非常重要w 数据库性能随系统使用发生变化,需要定期维护w 最大程度地发挥数据库对其所属机构的作用3 电子科技大学数据库原理及应

2、用二、数据库管理系统(二、数据库管理系统(DBMS)功能)功能w 数据库定义定义数据库完整性、安全保密、存取路径等w 数据存取提供数据的操纵语言以便对数据进行查找和增删改w 数据库运行管理事务管理、自动恢复、并发控制、死锁检测或防止、安全性检查、存取控制、完整性检查、日志记录等w 数据组织、存储和管理数据字典、用户数据、存取路径的组织存储和管理,以便提高存储空间利用率,并方便存取w 数据库的建立和维护数据库初建、转储、恢复、重组、重构以及性能检测等w 数据传输 网络通信、数据转换、异构数据库互访等4 电子科技大学数据库原理及应用三、数据库管理系统(三、数据库管理系统(DBMS)功能模块)功能模

3、块DBMS功能模块数据库定义数据库存取数据库运行处理数据组织、存储和管理数据库建立、维护和其他DDL翻译程序模块安全性定义程序模块完整性定义程序模块查询处理程序模块数据更新程序模块交互式查询程序模块嵌入式查询程序模块系统初启程序模块安全性控制程序模块完整性控制程序模块事务管理程序模块并发控制程序模块运行日志管理程序模块缓冲区管理程序模块数据组织、维护程序模块存取路径(索引)管理程序模块批量数据装入模块数据转储模块数据库恢复模块数据库重组模块数据转换模块通信模块5 电子科技大学数据库原理及应用四、数据库管理员(四、数据库管理员(DBA)职责)职责w 负责数据库系统开发与运行w 数据库用户管理w

4、数据备份与数据恢复管理w 数据库性能调优管理6 电子科技大学数据库原理及应用五、数据库管理系统(五、数据库管理系统(DBMS)结构)结构7 电子科技大学数据库原理及应用六、六、SQL SERVER数据库管理系统简介数据库管理系统简介w 1988年,Microsoft、Sybase和Ashton-Tate公司联合,开发出运行于OS/2操作系统上的SQL Server 1.0。w 1989年,Ashton-Tate公司退出SQL Server的开发。w 1990年,SQL Server 1.1产品面世。w 1992年,SQL Server 4.2产品面世。w 1994年,Microsoft公司和S

5、ybase公司分道扬镳。w 1995年,Microsoft公司发布了SQL Server 6.0产品,随后的SQL Server 6.5产品取得了巨大的成功。w 1998年,Microsoft公司发布了SQL Server 7.0产品,开始进入企业级数据库市场。w 2000年,Microsoft公司发布了SQL Server 2000产品。w 2005年,Microsoft公司发布了SQL Server 2005产品。w 2008年,Microsoft公司发布了SQL Server 2008产品。w 2012年,Microsoft公司发布了SQL Server 2012产品。w 2014年,M

6、icrosoft公司发布了SQL Server 2014产品。 8 电子科技大学数据库原理及应用1.SQL SERVER 2014版本w SQL Server 2014 Express (学习版)w SQL Server 2014 Developer (开发版)w SQL Server 2014 WEB (网络版)w SQL Server 2014 Standard (标准版)w SQL Server 2014 Business Intelligence (商业智能版)w SQL Server 2014 Enterprise (企业版)9 电子科技大学数据库原理及应用2.SQL SERVER

7、2014版本组件10 电子科技大学数据库原理及应用11 电子科技大学数据库原理及应用3.SQL SERVER 数据库系统结构主主数数据据库库文文件件次次数据数据库文库文件件事务事务曰志曰志文件文件12 电子科技大学数据库原理及应用5.SQL SERVER 数据库组成系统元系统元数据、配数据、配置信息置信息临时表、临时存临时表、临时存储过程提供存储储过程提供存储复制、作业复制、作业调度和管理调度和管理报警等报警等为创建新数据为创建新数据库提供模板库提供模板13 电子科技大学数据库原理及应用6.SQL SERVER 数据库对象数据库对象:数据库、表、视图、索引、约束、存储过程、触发器14 电子科技

8、大学数据库原理及应用七、七、SQL SERVER 数据库管理工具数据库管理工具SQL Server Management Studio Express功能组件是管理SQL Server 数据库的图形工具。 15 电子科技大学数据库原理及应用1. 数据库创建16 电子科技大学数据库原理及应用命名新建数据库17 电子科技大学数据库原理及应用HSD数据库创建完成18 电子科技大学数据库原理及应用2. 数据库表创建执行SQL语句创建数据库表19 电子科技大学数据库原理及应用数据库表创建完成20 电子科技大学数据库原理及应用一、为什么需要事务管理一、为什么需要事务管理6.2 事务管理在数据库应用系统中,

9、完成一个业务处理通常需要多个操作步骤才能完成处理。在每个操作步骤中,都可能遭遇失败,若没有一个处理机制,就可能造成操作数据混乱,从而破坏数据一致性。二、事务概念二、事务概念在数据库中,事务(Transaction)是指由构成单个逻辑处理单元的一组数据库访问操作,它们要么都成功执行,要么都不执行。21 电子科技大学数据库原理及应用例 客户在银行将账户A转账1000元到账户B,其业务操作流程如下:Read (A);A:=A-1000;Write (A);Read (B);B:=B+1000;Write (B)转账处理操作序列语句银行业务系统执行的转账程序要么所有操作都执行,要么所有操作都不执行,以

10、确保账户资金数据的正常状态。22 电子科技大学数据库原理及应用在数据库系统中,事务是DBMS执行的最小任务单元。同时,事务也是DBMS最小的故障恢复任务单元和并发控制任务单元。三、事务使用三、事务使用23 电子科技大学数据库原理及应用四、事务特性四、事务特性事务特性:w 原子性(Atomicity):事务所有操作在数据库中要么全部执行,要么全部不执行。w 一致性(Consistency):事务多次执行,其结果应一致。w 隔离性(Isolation):事务与事务之间隔离,并发执行透明。w 持续性(Durability ):事务完成后,数据改变必须是永久的。为了确保数据库共享访问的数据正确性,要求

11、DBMS的事务管理机制维护事务的ACID特性。24 电子科技大学数据库原理及应用五、事务并发执行五、事务并发执行事务并发执行原因:w 改善系统的资源利用率w 减少事务运行的平均等待时间事务并发执行是指多个事务程序在计算机系统中同时运行。25 电子科技大学数据库原理及应用六、事务六、事务SQL程序程序在关系数据库系统中,可以利用SQL语言提供的相应语句编写事务程序。w BEGIN TRANSACTION -事务开始w ROLLBACK 事务回滚w COMMIT 事务提交w SAVE TRANSACTION 事务数据保存 1.事务SQL语句26 电子科技大学数据库原理及应用2.事务程序框架BEGI

12、N TRANSACTION 事务名称;SQL语句1;SQL语句2;SAVE TRANACTION 保存点;SQL语句n;If error 0 ROLLBACK 保存点;ElseCOMMIT;27 电子科技大学数据库原理及应用 rowcount上一语句影响的行数; error检测上一条语句执行时的错误代码。error=0表示执行成功; trancount当前连接的活动事务数事务全局变量的使用方法:事务全局变量的使用方法:begin transactionbegin transaction / * A A组语句序列组语句序列* /save transaction save transaction

13、保存点保存点1 1 / * B B组语句序列组语句序列* /if error 0if error 0 rollback transaction rollback transaction 保存点保存点1 1 / *回滚到保存点回滚到保存点1 1 * /elseelse commit transaction commit transaction / *提交提交A A和和B B组语句组语句* / 3.事务程序的全局变量28 电子科技大学数据库原理及应用例1 在课程管理数据库CourseDB中,使用事务程序实现对教材表TEXTBOOK插入数据,其事务SQL程序如下:USE CourseDB ;BEGI

14、N TRANSACTION T1_book;INSERT INTO TEXTBOOK( book_id , book_name , publish_company)VALUES (B001, 数据库原理及应用 , 机械工业出版社 );INSERT INTO TEXTBOOK( book_id , book_name , publish_company )VALUES ( B002, SQL数据库实践 , 电子工业出版社 );INSERT INTO TEXTBOOK(book_id , book_name)VALUES (B003, SQL Server课程设计指导书);IF error0 RO

15、LLBACK ;COMMIT ;4.事务编程29 电子科技大学数据库原理及应用该事务程序T1_book在SQL Server数据库运行环境中执行后,其结果见下图所示。30 电子科技大学数据库原理及应用例2 使用事务向表book中插入数据USE CourseDB ;BEGIN TRAN tran_book ;INSERT INTO book( book_id , book_name , publish_company)VALUES ( dep04_s006_01, C+程序设计,机械工业出版社);SAVE TRAN int_point ;INSERT INTO book( book_id , b

16、ook_name , publish_company )VALUES ( dep04_s006_02, C+实验指导书,电子工业出版社);INSERT INTO book(book_id , book_name)VALUES (dep04_s006_03 ,C+课程设计指导书);IF error0 ROLLBACK TRAN int_point ;elseCOMMIT TRAN tran_book ;31 电子科技大学数据库原理及应用创建数据库:create database;修改数据库:alter database;删除数据库:drop database;备份数据库:dump databas

17、e、backup database;还原数据库:load database、restore database;日志备份:dump transaction、backup log;日志还原:load transaction、restore log;配置:reconfigure;磁盘初始化:disk init;统计:update statistics;显示或设置数据库选项:sp_dboption。5.事务中不能使用的SQL语句32 电子科技大学数据库原理及应用w 在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。w 一个程序通常包含多个事务当用户没有显式地定义事务时,DB

18、MS按缺省规定每执行一个SQL语句将自动构成一个事务。七、七、DBMS默认事务方式默认事务方式八、事务与程序关系八、事务与程序关系33 电子科技大学数据库原理及应用一、为什么需要并发控制一、为什么需要并发控制6.3 并发控制并发控制目的w 支持并发事务处理,使更多用户并行操作,提高系统的并发访问能力。w 保证一个用户的工作不会对另一个用户的工作产生不合理的影响。w 保证用户与其他用户同时操作数据库时,与用户单独操作数据库所得到的结果相同。 当多个事务程序同时在DBMS系统中运行时,可能会对一些共享数据进行各类操作,即一些事务修改数据,另一些事务读取数据。这些并发的共享数据操作,如果在DBMS中

19、没有一定的约束控制,可能会带来数据不一致性或事务程序死锁问题。因此,在DBMS的事务管理中,必须进行并发控制处理。34 电子科技大学数据库原理及应用二、事务并发处理需解决问题二、事务并发处理需解决问题A=16读读A=A-1A=A-1A=15A=15A=16A=16出售1出售1事务T1事务T2最后结果:数据有错1.丢失更新数据A=15售票点2机票数量A售票点135 电子科技大学数据库原理及应用出错原因:w 在并发操作情况下,对T1、T2两个事务的操作序列的调度是随机的。w 当事务T1和T2读入同一数据并修改,最后T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。36 电子科技大学数据库原

20、理及应用2.不可重复读取问题: 事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读该数据时,得到与前一次不同的值。37 电子科技大学数据库原理及应用(1)事务T1按一定条件从数据库中读取了某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录消失了。也称为不可重复读取。(2)事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按相同条件读取数据时,发现多了一些记录。称为幻象读取。同类问题:38 电子科技大学数据库原理及应用3.脏数据读取问题: T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致,即存在所

21、谓脏数据。最终结果:C恢复为100T2的C为20039 电子科技大学数据库原理及应用三、并发事务调度三、并发事务调度并发事务调度就是要用正确的方式调度事务并发执行,使一个事务的执行不受其他事务的干扰,从而避免造成数据的不一致性或事务死锁。事务并发执行带来问题原因:当多个事务同时存取同一数据时,由于不同操作时序,可能出现存取不正确的数据,破坏数据库的一致性。40 电子科技大学数据库原理及应用1.事务调度原理在DBMS中,事务管理器将并发执行事务的SQL数据操作请求提交给并发控制调度器。由并发控制调度器将各个事务的SQL数据操作请求按照一定顺序进行调度执行,并完成对数据库缓冲区进行读写操作。41

22、电子科技大学数据库原理及应用例 银行客户A的账户当前余款为1000元,客户B的账户当前余款为1500元。现在有两个事务T1和T2,其中T1事务将从客户A转账200元到客户B,T2事务也将从客户A转账400元到客户B。2.事务调度策略42 电子科技大学数据库原理及应用账户A余款=400元账户B余款=2100元账户A余款=400元账户B余款=2100元43 电子科技大学数据库原理及应用账户A余款=400元账户B余款=2100元账户A余款=800元账户B余款=1900元44 电子科技大学数据库原理及应用结论:在事务并发执行中,只有当事务调度顺序的执行结果与事务串行执行效果一样时,该并发事务调度才能保

23、证数据库的一致性。符合这样效果的调度称为可串行化调度。DBMS的并发控制调度器必须使得并发事务调度是一种可串行化调度。45 电子科技大学数据库原理及应用四、数据库锁机制四、数据库锁机制为了解决多个事务并发对共享数据进行新增、更新、删除、查询带来的数据一致性问题时,需要采用数据库锁机制。基于锁表的数据库共享资源访问46 电子科技大学数据库原理及应用w 排它锁定(Lock-X)锁定后,不允许其它事务读写锁定资源数据w 共享锁定(Lock-S)锁定后,允许其它事务读取锁定资源数据1. 资源锁定访问在DBMS中,通过加入锁表机制,来实现共享资源锁定访问。2. 资源锁定粒度w 数据库粒度最大w 表粒度较

24、大w 页面粒度中等w 行粒度小3. 资源锁定方式w 隐式锁定DBMS缺省执行w 显式锁定加锁命令显式执行47 电子科技大学数据库原理及应用五、基于锁机制的并发控制协议五、基于锁机制的并发控制协议要实现并发事务共享访问数据时可以被串行化调度执行,还必须约束它们对共享数据的操作访问必须是以互斥方式进行。这就需要用到基于数据库锁机制的并发控制协议。1. 锁操作的相容性排它锁排它锁共享锁共享锁无锁无锁排它锁排它锁否否是共享锁共享锁否是是无锁无锁是是是48 电子科技大学数据库原理及应用2. 加锁协议一级加锁协议:任何事务在修改共享数据对象之前,必须对该数据执行排它锁定指令,直到该事务处理完成,才进行解锁

25、指令执行。例 假定某航班空余机票数据A的当前值为100张。现有分别来自不同售票点的两个并发事务T1和T2,其中T1事务将售出1张机票,T2事务将售出2张机票。以下分别给出它们在不加锁和按一级加锁协议的并发事务调度执行情况,见下图所示。特点:使用一级加锁协议,可避免出现更新丢失问题。但不能解决“不可重复读取”、“脏读”等数据不一致问题。49 电子科技大学数据库原理及应用执行结果A=99执行结果A=9750 电子科技大学数据库原理及应用二级加锁协议:在一级加锁协议基础上,针对并发事务对共享数据进行读操作,必须对该数据执行共享锁定指令,读完数据后即刻释放共享锁定。例 假定某航班空余机票数据A的当前值

26、为100张。现有分别来自不同售票点的两个并发事务T1和T2,其中T1事务将售出1张机票,T2事务进行机票空余数查询。以下分别给出它们在按一级加锁协议执行和按二级加锁协议的事务调度执行情况,见下图所示。特点:该加锁协议不但可以防止“丢失更新”的数据不一致性问题,还可防止出现脏读数据问题。但有可能会出现“不可重复读取”的数据不一致问题。51 电子科技大学数据库原理及应用执行结果A=99执行结果A=10052 电子科技大学数据库原理及应用三级加锁协议:在一级加锁协议基础上,针对并发事务对共享数据进行读操作,必须对该数据执行共享锁定指令,直到该事务处理结束才释放共享锁定。例 假定某航班空余机票数据A的

27、当前值为100张。现有分别来自不同售票点的两个并发事务T1和T2,其中T1事务将售出1张机票,T2事务进行机票空余数查询。以下分别给出它们在按二级加锁协议执行和按三级加锁协议的并发事务调度执行情况,见下图所示。特点:该加锁协议不但可以防止“丢失更新”、“脏读”的数据不一致性问题,还可防止出现“不可重复读取”的数据一致性问题。53 电子科技大学数据库原理及应用执行结果A=99执行结果A=9954 电子科技大学数据库原理及应用加锁协议级别加锁协议级别排它锁排它锁共享锁共享锁不不丢失丢失更新更新不脏读不脏读可重复读可重复读一级一级全程加锁不加是否否二级二级全程加锁开始时加锁,读完数据释放锁定是是否三

28、级三级全程加锁全程加锁是是是3. 不同级别锁协议比较55 电子科技大学数据库原理及应用六、两阶段锁定协议六、两阶段锁定协议并发事务的正确调度准则:一个给定的并发事务调度,当且仅当它是可串行化的,才能保证正确调度。保证可串行化的一个协议是:二阶段锁定协议56 电子科技大学数据库原理及应用二阶段锁定协议规定每个事务必须分两个阶段提出加锁和解锁申请:w 增长阶段,事务可以获得锁,但不能释放锁。w 缩减阶段,事务可以释放锁,但不能获得新锁。事务T增长阶段缩减阶段57 电子科技大学数据库原理及应用事务T1事务T2判断下列事务是否可串行化?加锁解锁加锁解锁加锁加锁解锁解锁结论:若并发事务执行的所有事务都遵

29、从两阶段锁定协议,则这些事务的任何并发调度都是可串行化调度,即这些并发调度执行结果可以保证数据库一致性。58 电子科技大学数据库原理及应用七、死锁问题解决七、死锁问题解决在基于锁机制的并发事务执行中,如果这些事务同时锁定两个以及以上资源时,可能会出现彼此都不能继续执行的状态,即事务死锁状态。1. 事务死锁例 假定两个事务T1和T2,它们都需要加锁访问数据库表Table1和Table2,其事务程序见图6-20a所示。当这两个事务程序调度执行时,只要不是按可串行化调度执行,则它们在执行时会出现死锁状态,见图6-20b所示。59 电子科技大学数据库原理及应用60 电子科技大学数据库原理及应用w 允许

30、用户一次发出当前所需全部资源的锁定,使用完成后,再释放给其它用户访问。w 规定所有应用程序锁定资源的顺序必须完全相同。当发生死锁时,回滚其中的一个事务,并取消它对数据库所做的改动。2. 死锁出现的必要条件3. 防范死锁的策略w 互斥条件w 请求和保持条件w 不剥夺条件w 环路等待条件4. 解决死锁的办法61 电子科技大学数据库原理及应用八、事务隔离级别八、事务隔离级别隔离级别 脏读不可重复读幻读读未提交(Read uncommitted) 可能 可能 可能 读已提交(Read committed) 不可能 可能 可能 可重复读(Repeatable read) 不可能 不可能 可能 可串行化(

31、Serializable ) 不可能 不可能 不可能 说明:每个事务都有一个所谓的隔离级。事务隔离级别设置越高,出现数据不一致的可能性越小,但系统吞吐量也越小。 62 电子科技大学数据库原理及应用一、数据库安全问题一、数据库安全问题6.4 数据库安全 黑客利用系统漏洞,攻击系统运行、窃取和篡改系统数据。 内部人员非法地泄露、篡改、删除系统的用户数据。 系统运维人员操作失误导致数据被删除或数据库服务器系统宕机。 系统故障导致数据库的数据损坏、数据丢失、数据库实例无法启动。 意外灾害事件(火灾、水灾、地震等自然灾害)导致系统被破坏。63 电子科技大学数据库原理及应用二、数据库系统安全模型二、数据库

32、系统安全模型身份验证:用来确认登录用户是否是合法使用者权限控制:通过权限机制控制用户对数据的访问系统防护:OS系统安全机制防范非法系统访问权限控制:通过加密算法对数据库中数据进行加密存储64 电子科技大学数据库原理及应用三、三、DBMS存取控制安全模型存取控制安全模型65 电子科技大学数据库原理及应用例 在3.7.1节的工程项目管理系统中,假定系统用户有三类角色:员工、经理和系统管理员。它们对数据库各个表对象的拥有权限见表6-4所示。表表员工员工经理经理系统管理员系统管理员DEPARTMENTDEPARTMENT读取读取、插入、修改、删除赋予权限、修改结构EMPLOYEEEMPLOYEE读取、

33、插入、修改读取、插入、修改、删除赋予权限、修改结构PROJECTPROJECT读取读取、插入、修改、删除赋予权限、修改结构ASSIGNMENTASSIGNMENT读取读取、插入、修改、删除赋予权限、修改结构66 电子科技大学数据库原理及应用67 电子科技大学数据库原理及应用四、用户管理四、用户管理用户要访问数据库,必须先在DBMS中创建其账号,并成为数据库的用户。此后,用户每次访问数据库,都需要在DBMS进行身份验证,只有合法用户才能进入系统,访问操作数据库对象。DBMS验证用户身份有两种方式: 使用WINDOWS操作系统身份认证来识别用户 使用数据库内部机制来识别用户68 电子科技大学数据库原理及应用用户访问数据库,需要由DBA创建用户账户,赋予登录名和密码。1. 用户创建69 电子科技大学数据库原理及应用实例操作:创建HSD数据库的用户账户HsdUser70 电子科技大学数据库原理及应用2. 用户角色定义71 电子科技大学数据库原理及应用3. 用户角色权限设置72 电子科技大学数据库原理及应用4. 将自定义角色赋予用户73 电子科技大学数据库原理及应用一、数据库系统故障原因一、数据库系统故障原因6.5 数据库备份与恢复

温馨提示

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

评论

0/150

提交评论