![数据库应用与设计:第5章 数据库管理_第1页](http://file4.renrendoc.com/view/b962abde63b3b7103fcfeac27fe4bdab/b962abde63b3b7103fcfeac27fe4bdab1.gif)
![数据库应用与设计:第5章 数据库管理_第2页](http://file4.renrendoc.com/view/b962abde63b3b7103fcfeac27fe4bdab/b962abde63b3b7103fcfeac27fe4bdab2.gif)
![数据库应用与设计:第5章 数据库管理_第3页](http://file4.renrendoc.com/view/b962abde63b3b7103fcfeac27fe4bdab/b962abde63b3b7103fcfeac27fe4bdab3.gif)
![数据库应用与设计:第5章 数据库管理_第4页](http://file4.renrendoc.com/view/b962abde63b3b7103fcfeac27fe4bdab/b962abde63b3b7103fcfeac27fe4bdab4.gif)
![数据库应用与设计:第5章 数据库管理_第5页](http://file4.renrendoc.com/view/b962abde63b3b7103fcfeac27fe4bdab/b962abde63b3b7103fcfeac27fe4bdab5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章数据库管理本章主要内容数据管理与数据库管理数据库安全管理事务管理恢复管理并发控制数据库应用与设计本章学习目标了解数据管理和数据库管理的主要内容;深刻理解事务的概念和基本性质,并掌握事务管理的命令;理解数据库备份的技术和机制,掌握SQLServer数据库备份和恢复的一般方法;理解并发控制的基本概念和必要性,掌握SQLServer数据库并发控制的一般方法。数据库应用与设计本章重点和难点重点:事务管理、备份与恢复、并发控制,是数据库管理者必须掌握的知识和技术。难点一是如何制定备份和恢复的策略,当数据库遇到故障时可以在最短的时间内将数据库恢复到完全正确的一致状态;二是如何制定并发控制策略,使得并发执行的应用系统有最高的效率。数据库应用与设计5.1数据管理与数据库管理两个阶段1.数据库规划和设计阶段的管理2.数据库实施、运行和维护阶段的管理数据库应用与设计数据库规划和设计阶段的管理协助决策者制定整体的信息系统开发策略;进行可行性研究、并对数据库开发进行整体规划;建立全局概念数据模型,并定义数据需求;建立数据收集标准、并定义数据格式;测算数据量和增长速度;定义数据使用模式和使用频率;定义数据访问规则,确定数据安全策略;概念数据库设计;逻辑数据库设计;培训用户,使其了解有关数据标准、职责和法律责任;确保各种文档的完整等。数据库应用与设计数据库实施、运行和维护阶段的管理评价和选择具体的数据库管理系统;物理数据库设计;数据库实现;建立测试策略;数据库安全管理;培训用户如何使用新的系统;监控数据库的性能、并不断进行优化;定期进行备份、确保恢复机制;关注软件、硬件的发展和成本,在必要时提出系统升级的方案;保证文档的完整性和内部资料的延伸等。数据库应用与设计思考题讨论在数据库实施前的数据管理工作是如何进行的?例如,如何对数据库开发进行整体规划?如何建立全局概念数据模型?如何建立数据收集标准?如何定义数据访问规则?如何确定数据安全策略等?讨论如何评价和选择具体的数据库管理系统。讨论数据库管理员的职责、以及数据库管理员如何实施其相关的职责。作业:以以上思考题为提纲撰写论文“数据库管理员在数据库建设各个阶段的职责”(在教学网站提交)数据库应用与设计5.2数据库安全管理数据库应用与设计数据库安全概述安全性措施的层次物理层人员层操作系统层网络层数据库系统层数据库应用与设计数据库管理系统的身份识别机制身份识别的3个层次系统登录数据库访问数据操作数据库应用与设计数据库应用与设计数据库用户分类系统管理员用户数据库管理员用户数据库对象用户一般用户数据库应用与设计SQLServer的用户和角色管理一般系统管理员用户管理数据库管理员用户数据库管理员用户管理数据库对象用户数据库对象用户向一般用户进行查询和操作授权。用户与角色数据库应用与设计用户和角色登录用户映射数据库用户登录用户和数据库用户角色用户角色成员角色数据库应用与设计系统预定义角色sysadmin:具有系统管理员全部权限的角色。serveradmin:负责配置数据库服务器的设置。setupadmin:负责添加和删除链接的服务器。securityadmin:负责管理服务器的登录。processadmin:负责管理在SQLServer实例中运行的进程。dbcreator:负责创建和改变数据库。bulkadmin:可以执行BULKINSERT语句(数据库数据的装载)。数据库应用与设计数据库预定义角色db_owner:在数据库中有全部权限,即具有数据库管理员全部权限的角色。db_accessadmin:负责数据库用户的管理。db_securityadmin:负责数据库的安全管理,如负责权限管理、角色和角色成员资格管理等。db_ddladmin:主要负责数据库的完整性和一致性检查及管理。db_backupoperator:主要负责数据库的备份。db_datareader:可以查询数据库中任何用户表中的所有数据。db_datawriter:可以更改数据库中任何用户表中的所有数据。db_denydatareader:不能查询数据库中任何用户表中的任何数据。db_denydatawriter:不能更改数据库中任何用户表中的任何数据。数据库应用与设计public角色public角色是一个特殊的数据库角色,每个数据库用户都是该角色的成员。public角色具有如下特点:public角色自动获得数据库中用户的所有默认权限;不需要、也无法将用户指派给public角色,因为默认情况下所有用户都属于该角色;每个数据库(包括所有系统数据库和所有用户数据库)都有public角色;不可以删除public角色。数据库应用与设计登录用户管理SQLServer在安装时默认的系统管理员用户是sa登录用户管理创建登录用户修改登录用户删除登录用户数据库应用与设计创建登录用户命令的基本格式CREATELOGIN
login_name
{WITHPASSWORD='password'[MUST_CHANGE][,DEFAULT_DATABASE=
database][,CHECK_EXPIRATION={ON|OFF}]}数据库应用与设计举例:建立一个用户名为wu、口令为wqx的登录用户CREATELOGIN
wuWITHPASSWORD='wqx'数据库应用与设计举例:建立一个用户名为qiu、口令为whx的登录用户,并且在第一次登录时强制必须修改口令CREATELOGIN
qiuWITHPASSWORD='whx'MUST_CHANGE,CHECK_EXPIRATION=ON数据库应用与设计修改登录用户命令的基本格式ALTERLOGINlogin_name{{ENABLE|DISABLE}|WITHPASSWORD='password'[,OLD_PASSWORD='oldpassword'][,DEFAULT_DATABASE=database][,NAME=login_name]}数据库应用与设计举例:暂时禁止用户wu登录ALTERLOGIN
wuDISABLE数据库应用与设计举例:重新允许用户wu登录ALTERLOGIN
wuENABLE数据库应用与设计举例:由系统管理员将用户wu的口令修改为whx。ALTERLOGIN
wu
WITHPASSWORD='whx'数据库应用与设计举例:将用户wu的登录名修改为cuiw(注意口令没有改变)。ALTERLOGIN
wu
WITHNAME=
cuiw数据库应用与设计举例:用户cuiw在登录后自己将口令修改为wyh(此时需要提供旧的口令,假设旧口令是whx)。ALTERLOGIN
cuiwWITHPASSWORD='wyh'OLD_PASSWORD='whx'数据库应用与设计删除登录用户命令的基本格式DROPLOGINlogin_name数据库应用与设计举例:删除登录用户名为qiu的用户。DROPLOGIN
qiu数据库应用与设计数据库用户管理数据库用户管理建立新的数据库用户修改已有数据库用户删除数据库用户数据库应用与设计建立数据库用户的命令CREATEUSERuser_name[LOGINlogin_name][WITHDEFAULT_SCHEMA=schema_name]数据库应用与设计举例:指定登录用户cuiw为“学生”数据库的用户,并指定模式student为默认模式CREATEUSER
cuiwWITHDEFAULT_SCHEMA=student数据库应用与设计修改已有数据库用户的命令ALTERUSERuser_nameWITH{NAME=new_user_name|DEFAULT_SCHEMA=schema_name}[,...n]数据库应用与设计举例:将数据库用户cuiw名称改为cuiwei,默认模式改为dboALTERUSERcuiwWITHNAME=cuiwei,DEFAULT_SCHEMA=dbo数据库应用与设计删除数据库用户的格式DROPUSERuser_name数据库应用与设计举例:取消cuiwei的当前数据库用户资格,即删除该用户DROPUSERcuiwei数据库应用与设计数据库管理员用户数据库管理员是由系统管理员授权产生的,通常有如下两种方式:用户被授权可以执行CREATEDATABASE命令(参见5.2.4)或被指定Dbcreator角色,这时该用户可以建立数据库、并负责自己所建立数据库的全部管理工作,因此自然履行数据库管理员的职责;用户可以被指定为已有数据库的db_owne角色,该角色为数据库管理员角色。数据库应用与设计将用户指定为系统预定义角色的成员使用系统存储过程:
sp_addsrvrolemembersp_addsrvrolemember[@loginame=]'login',[@rolename=]'role'数据库应用与设计举例:指定用户cuiw为Dbcreator角色。sp_addsrvrolemember@loginame='cuiw',
@rolename='dbcreator'数据库应用与设计将用户指定为某个数据库角色的成员使用系统存储过程
sp_addrolemembersp_addrolemember
[@rolename=]'role',[@membername=]'user'数据库应用与设计举例:指定用户cuiw为“学生”数据库的数据库管理员。假设用户cuiw已经是“学生”数据库的用户,则可以使用系统过程sp_addrolemember将用户cuiw指定为db_owner角色:sp_addrolemember@rolename='db_owner',@membername='cuiw'数据库应用与设计角色管理角色管理包括定义角色(CREATEROLE)更改角色名称(ALTERROLE)指定用户角色(sp_addrolemember)取消用户角色(sp_droprolemember)删除角色(DROPROLE)数据库应用与设计定义角色命令的基本格式CREATEROLErole_name[AUTHORIZATIONowner_name]数据库应用与设计更改角色名称命令的基本格式是ALTERROLErole_nameWITHNAME=new_name数据库应用与设计取消某个用户的指定角色使用系统存储过程
sp_droprolemembersp_droprolemember
[@rolename=]'role',[@membername=]'user'数据库应用与设计删除角色命令的格式DROPROLErole_name数据库应用与设计假设在“学生”数据库中,并假设用户zhang和wang为该数据库的用户。例14:建立角色course_man,并指定由用户zhang管理。CREATEROLEcourse_manAUTHORIZATIONzhang例15:将角色course_man的名称修改为tech_man。ALTERROLEcourse_manWITHNAME=tech_man例16:指定用户wang为角色tech_man的成员。sp_addrolemember@rolename='tech_man',@membername='wang'数据库应用与设计SQLServer的用户权限管理授权命令GRANT收回授权的命令REVOKE禁止继承权限的命令DENY。Ug某用户的权限集合Dg直接授予的权限集合Rg继承某角色的权限集合Rd某用户被禁止的权限集合Ug=Dg∪(Rg-Rd)数据库应用与设计权限通常分为两类创建对象的权限使用各种CREATE命令创建相应对象的权限通常由DBA管理使用对象的权限查询和操作关系、执行存储过程等的权限通常有对象创建者管理所以权限管理也分为两类数据库应用与设计授权创建对象的GRANT语句GRANT{ALL|permission[,...n]}TOprincipal[,...n][WITHGRANTOPTION][ASprincipal]这里的权限(permission)主要是创建各种数据库对象的CREATE命令,包括CREATETABLE、CREATEVIEW、CREATEDEFAULT、CREATEPROCEDURE、CREATERULE等还包括备份数据库的BACKUPDATABASE和BACKUPLOG权限sa还可以授权CREATEDATABASE权限数据库应用与设计授权创建对象的GRANT语句GRANT{ALL|permission[,...n]}TOprincipal[,...n][WITHGRANTOPTION][ASprincipal]ALL说明授予全部权限,也可以用选项permission[,...n]逐一授予指定的权限;TOprincipal[,...n]说明被授予权限的一个或多个主体,可以是用户名或角色名WITHGRANTOPTION说明被授予权限的用户或角色也可以行使同样的GRANT权限;ASprincipal说明当使用GRANT授权时是作为某个用户或某个角色在行使职权。数据库应用与设计例5-17:在学生数据库中授予角色tech_man具有CREATETABLE的权限。GRANTCREATETABLETOtech_man数据库应用与设计例5-18:授予用户wang创建视图的权利,并且允许该用户将创建视图的权利授予其他合法用户。GRANTCREATEVIEWTOwangWITHGRANTOPTION数据库应用与设计授权对象上操作权限的GRANT语句GRANT{ALL|permission[(column[,...n])][,...n]}ONsecurableTOprincipal[,...n][WITHGRANTOPTION][ASprincipal]这里的权限(permission)
对表或视图可以是SELECT、
DELETE、INSERT、UPDATE和REFERENCES等,对存储过程或函数可以是EXECUTE
数据库应用与设计授权对象上操作权限的GRANT语句GRANT{ALL|permission[(column[,...n])][,...n]}ONsecurableTOprincipal[,...n][WITHGRANTOPTION][ASprincipal]ONsecurable说明授予权限的对象,可以是表、视图、存储过程等对象;ALL说明授予全部权限,也可以用选项permission[,...n]逐一授予指定的权限当查询和更新限制在某些列时,可以使用(column[,...n])指定具体的列其他选项含义同前数据库应用与设计GRANTSELECT,UPDATE(考试成绩)ON选课TOtech_manWITHGRANTOPTION例5-19:将选课表的查询权限和对考试成绩字段的修改权限授予角色tech_man。数据库应用与设计例5-20:用户wang将对选课表的查询权限授予用户zhang(由于例5-19选用了短语WITHGRANTOPTION)。GRANTSELECTONstudent.选课TOzhangAStech_man数据库应用与设计收回授权的命令REVOKEREVOKE[GRANTOPTIONFOR]{ALL|permission[(
column[,...n])][,...n]}[ONsecurable]FROMprincipal[,...n][CASCADE][ASprincipal]包含了收回创建对象的权限(不含ON短语)和收回对象上操作的权限(包含ON短语)。GRANTOPTIONFOR说明从指定角色或用户撤销再授权的权限。CASCADE的含义是级联,即指示当前正在撤消的权限也将从其他被该主体授权的主体中撤消;使用
CASCADE参数时,还必须同时指定GRANTOPTIONFOR参数。
数据库应用与设计例5-21:撤销角色tech_man对选课表的SELECT权限再授权的权利(不撤销该角色成员对选课表的SELECT权限)。REVOKEGRANTOPTIONFORSELECTON选课FROMtech_manCASCADE数据库应用与设计REVOKEUPDATEON选课FROMtech_manCASCADE例5-22:从角色tech_man撤销对选课表的UPDATE权限数据库应用与设计禁止继承权限的DENY命令DENY{ALL|permission[(column[,...n])][,...n]}[ONsecurable]TOprincipal[,...n][CASCADE][ASprincipal]包含了禁止继承创建对象的权限(不含ON短语)和禁止继承对象上操作的权限(包含ON短语)。数据库应用与设计例5-23:禁止用户wang对选课表进行更新。DENYUPDATEON选课TOwang数据库应用与设计思考题查阅相关资料了解SQLServer的Windows验证(与操作系统集成的)和数字证书验证,讨论它们与常规验证的区别,并分析各自的特点。查阅相关资料了解SQLServer的数据加密等其他安全措施,写一篇短文全面阐述SQLServer的安全技术。查阅CREATELOGIN和ALTERLOGIN命令的完整格式,全面了解对登录用户管理的内容。为什么登录到数据库管理系统的用户却不一定能访问数据库?登录用户和数据库用户是什么关系?数据库应用与设计思考题查阅CREATEUSER和ALTERUSER命令的完整格式,全面了解对数据库用户管理的内容。全面讨论和理解数据库访问和操作的多级认证,讨论各级认证的方法和作用。讨论通过角色进行用户权限管理的内容及其为权限管理带来的方便。权限管理包括授权(GRANT)、收回授权(REVOKE)和禁止权限(DENY),讨论各自命令中各个短语的功能,以及这些短语在权限管理中发挥的特殊作用。数据库应用与设计5.3事务管理事务(Transaction)是数据库应用的基本性质之一,是管理数据库运作的一个逻辑单位。多个用户的应用要同时正确运行,需要用事务来控制(并发控制);为了保证不丢失数据,也需要事务来控制(恢复控制)。
数据库应用与设计5.3.1事务的概念和性质事务是构成单一逻辑工作单元的操作集合。买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入数据库应用与设计什么是事务?事务可以看作是作业或任务,它是完成用户一个特定工作的一组命令,是构成单一逻辑工作单元的操作集合。数据库应用与设计为什么需要事务的概念呢?恢复的需要并发操作的需要买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入数据库应用与设计事务的性质
原子性(Atomicity)
一致性(Consistency)隔离性(Isolation)持久性(Durability)
事务的这些性质通常称为ACID特性数据库应用与设计原子性
事务的原子性强调了一个事务是一个逻辑工作单元,是一个整体,是不可分割的。一个事务所包含的操作要么全部做,要么全部不做。买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入数据库应用与设计事务的性质
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)持久性(Durability)
事务的这些性质通常称为ACID特性数据库应用与设计一致性
一个事务执行一项数据库操作,事务将使数据库从一种一致性的状态变换成另一种一致性状态。
在事务执行前,总是假设数据库是一致的,那么当事务成功执行后,数据库肯定仍然是一致的。
买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入(账目平衡)数据库应用与设计事务的性质
原子性(Atomicity)
一致性(Consistency)隔离性(Isolation)持久性(Durability)
事务的这些性质通常称为ACID特性数据库应用与设计隔离性
如果每个事务单独执行能保持原子性和一致性,这些事务并发执行也能保持原子性和一致性,则是事务的隔离性。两个以上教师同时登录考试成绩?数据库应用与设计事务的性质
原子性(Atomicity)
一致性(Consistency)隔离性(Isolation)持久性(Durability)
事务的这些性质通常称为ACID特性数据库应用与设计持久性
事务的持久性是指一旦事务成功完成,该事务对数据库所施加的所有更新都是永久的。在ATM取钱后银行系统突然发生故障?数据库应用与设计ACID性质——DBMS的功能如果让用户程序来实现结果会怎样?数据库应用与设计事务管理的命令BEGINTRANSACTION(开始事务)COMMITTRANSACTION(提交事务)SAVETRANSACTION(保存事务)ROLLBACKTRANSACTION(撤销事务)数据库应用与设计开始事务BEGIN{TRAN|TRANSACTION}数据库应用与设计提交事务COMMIT{TRAN|TRANSACTION}数据库应用与设计保存事务SAVE{TRAN|TRANSACTION}{savepoint_name|@savepoint_variable}数据库应用与设计撤销事务ROLLBACK{TRAN|TRANSACTION}[savepoint_name|@savepoint_variable]数据库应用与设计隐含事务与自动事务隐含事务模式——不用BEGIN开始事务,而是遇到特定命令时自动开始事务自动事务模式——自动事务提交SETIMPLICIT_TRANSACTIONS{ON|OFF}设置隐含事务模式的命令:数据库应用与设计事务管理如果SETIMPLICIT_TRANSACTIONSON,即为隐含事务模式时:可以不用BEGINTRANSACTION命令开始一个事务,而是当首次执行某个相关操作命令时都会自动启动一个事务;事务中可以用SAVETRANSACTION设置事务断点;最后必须用COMMITTRANSACTION提交事务、或者用ROLLBACKTRANSACTION撤销事务。数据库应用与设计事务管理如果SETIMPLICIT_TRANSACTIONSOFF,即为非隐含事务模式、并且需要事务管理时:必须用BEGINTRANSACTION命令显式开始一个事务;事务中可以用SAVETRANSACTION设置事务断点;最后必须用COMMITTRANSACTION提交事务、或者用ROLLBACKTRANSACTION撤销事务。数据库应用与设计事务管理如果SETIMPLICIT_TRANSACTIONSOFF,即为非隐含事务模式,此时如果没有用BEGINTRANS命令开始事务,则每条成功执行的命令都作为事务自动提交,这种情况不能用COMMIT或ROLLBACK命令提交或撤销事务。这是自动事务提交,或没有进行事务管理,此类模式尽量避免。数据库应用与设计思考题1. 讨论并画图示意在数据库操作中什么情况下会破坏事务的原子性和一致性。2. 讨论并画图示意在数据库操作中什么情况下会破坏事务的隔离性。3. 讨论并深刻理解隐含事务与自动事务。数据库应用与设计思考题4. 阅读如下程序段、讨论事务的提交和撤销,指出程序执行的最终结果,并分析是否满足事务的原子性和一致性。BEGINTRANSACTIONCREATETABLETestTran(ColaINTPRIMARYKEY,ColbCHAR(3))INSERTINTOTestTranVALUES(1,'aaa')COMMITTRANSACTIONBEGINTRANSACTIONINSERTINTOTestTranVALUES(2,'bbb')ROLLBACKTRANSACTIONBEGINTRANSACTIONINSERTINTOTestTranVALUES(3,'ccc')COMMITTRANSACTION数据库应用与设计思考题5. 阅读如下程序段、讨论事务断点的保存和使用,指出程序执行的最终结果,并分析是否满足事务的原子性和一致性。BEGINTRANSACTIONCREATETABLETestTran(ColaINTPRIMARYKEY,ColbCHAR(3))INSERTINTOTestTranVALUES(1,'aaa')SAVETRANSACTIONtranspoint1INSERTINTOTestTranVALUES(2,'bbb')ROLLBACKTRANSACTIONtranspoint1INSERTINTOTestTranVALUES(3,'ccc')COMMITTRANSACTION数据库应用与设计5.4恢复管理数据库的恢复管理是指由于软故障(应用程序出错、系统出错等使事务中断的故障)或硬故障(磁盘损坏使数据丢失的故障)使数据库中的数据产生不一致后可以恢复到一致性的过程。买卖交易——一手交钱一手交货订票——查询、订位、(交钱)、出票(往返票?)转帐——转出、转入(账目平衡)交易完成后磁盘损坏数据库应用与设计软故障及其恢复所有使事务中断、而又没有损坏磁盘介质的故障,都可以看作是软故障。造成软故障的原因:突然掉电引起的事务中断
硬件故障引起的事务中断
客户应用程序出错引起的事务中断
系统程序故障引起的事务中断
遇到以上各种故障怎么办?数据库应用与设计软故障及其恢复解决方法:只需要通过事务控制将数据库恢复到事务修改之前的状态,即通过执行ROLLBACKTRANSACTION命令撤消未执行完的事务。软故障破坏了事务的原子性和一致性。数据库应用与设计如何在程序中捕获软故障并撤销事务?在设计事务时要考虑可能出现的软故障尝试(TRY)执行可能出现故障的事务,随后捕获(CATCH)状态判断是否出现故障数据库应用与设计TRY和CATCH语句的格式如下:BEGINTRY{sql_statement
|statement_block}ENDTRYBEGINCATCH{sql_statement
|statement_block}ENDCATCH数据库应用与设计TRY和CATCH语句举例SETXACT_ABORTONBEGINTRYBEGINTRANSACTION--第二条记录不能插入,将产生一个错误
INSERTINTOstudent.课程VALUES('X00017','实用数据库',32,'专业选修','010126')
INSERTINTOstudent.课程VALUES('X00017','数据库开发',32,'专业选修','010126')--假设事务的所有语句成功执行则提交事务
COMMITTRANSACTIONENDTRYBEGINCATCH--测试XACT_STATE函数的值--0说明与事务提交或撤销无关--1说明事务正常---1说明事务异常,可能需要部分或全部撤销事务
IF(XACT_STATE())=-1BEGINPRINTN'事务不能提交,撤销事务!'
ROLLBACKTRANSACTIONENDENDCATCH课程表的触发器影响事务的状态数据库应用与设计TRY和CATCH语句举例SETXACT_ABORTONBEGINTRY BEGINTRANINSERTINTOstudent.院系VALUES(7,'机电工程学院','张专业','010126') INSERTINTOstudent.院系VALUES(7,'外国语学院','李专业','010126')COMMITTRANENDTRYBEGINCATCHIF(XACT_STATE())=-1BEGINPRINTN'事务不能提交,撤销事务!'ROLLBACKTRANSACTIONENDENDCATCH数据库应用与设计硬故障及其恢复什么是硬故障?任何原因(自然损耗、天灾、人祸)引起的硬盘故障使得数据库不能启动或访问,并造成数据丢失。如何解决硬故障造成的数据丢失?利用备份进行恢复。如何将数据完全恢复?在备份的基础上应用日志如何在最短的时间恢复数据库?备份恢复策略数据库应用与设计硬故障及其恢复硬故障的恢复技术解决的是事务的持久性。所谓持久性就是当完成对数据库的更新后(当然是事务提交后)使得更新能够永久有效,不会因为任何故障而丢失,即便是硬盘损坏也能够将数据库恢复到最新的、一致的状态。数据库应用与设计备份和日志日志是对备份的补充。备份是脱机的,日志是联机的、实时的。将日志和主数据库安排在不同的物理存储设备上,甚至安排在远程的物理设备上。数据库应用与设计备份类型全备份增量备份事务日志备份数据库应用与设计恢复模式简单恢复模式完整恢复模式通过ALTERDATABASE命令设置RECOVERY选项(恢复模式)ALTERDATABASE<数据库>SETRECOVERY{SIMPLE|FULL}数据库应用与设计恢复的目标既要尽可能将数据库恢复到最新状态、尽量减少数据的丢失,还要尽可能快速的恢复数据库、减少系统停止运行带来的损失。完全恢复和尽快恢复数据库应用与设计恢复策略恢复策略实际包含备份策略和恢复策略备份部分备份的类型和频率备份所需硬件的特性和速度备份的测试方法备份媒体的存储位置和方法(包括安全注意事项)恢复部分能否完全恢复、能否在规定的时间内完成恢复?调整备份策略和方法数据库应用与设计备份数据库的命令BACKUPDATABASEdatabase_nameTO<backup_device>[WITHDIFFERENTIAL]备份日志的命令BACKUPLOGdatabase_nameTO<backup_device>数据库应用与设计恢复或还原数据库的命令RESTOREDATABASEdatabase_nameFROM<backup_device>
WITH{RECOVERY|NORECOVERY}利用日志进行恢复的命令RESTORELOGdatabase_nameFROM<backup_device>WITH{RECOVERY|NORECOVERY}数据库应用与设计简单恢复模式的数据库备份和恢复简单恢复模式的数据库备份包括全备份和差异备份,简单恢复模式不管理日志,因此不包含日志备份。什么是差异备份?数据库应用与设计简单恢复模式备份序列示意数据库应用与设计简单恢复模式恢复序列示意全备份数据库损坏更新操作1差异备份1更新操作2差异备份2更新操作3相对相对恢复顺序:全备份+差异备份2在简单恢复模式下差异备份的基准是最近一次的全备份。数据库应用与设计完整恢复模式的数据库备份和恢复完整恢复模式通过使用日志备份在最大范围内防止出现故障时丢失数据,这种模式需要备份和还原事务日志(日志备份)。完整恢复模式下的数据库备份包括全备份、差异备份和日志备份。需要强调的是当数据库遇到灾难后,不是马上进行恢复工作,而是首先备份活动日志或称为尾日志。数据库应用与设计完整恢复模式下的最简单备份和恢复策略数据库应用与设计完整恢复模式恢复序列示意全备份数据库损坏更新操作1差异备份更新操作2日志备份更新操作3相对相对恢复顺序:全备份+差异备份+日志备份+尾日志备份尾日志备份差异备份的基准是上次全备份,日志备份的基准上次备份。数据库应用与设计系统数据库的备份和恢复除master以外的其他系统数据库的备份和恢复方法与用户数据库类似而master数据库的损坏可能导致SQLserver根本不能运行,所以恢复master数据库是一项特殊的任务。数据库应用与设计情形一如果master数据库轻微损坏或信息丢失,SQLServer还能启动,则可以直接根据master数据库的完整备份恢复master数据库(master数据库只能在单用户模式下完成恢复或还原)。数据库应用与设计数据库严重损坏而无法启动SQLServer实例SQLServer2000:使用重建master数据库的实用工具Rebuildm.exe重建master数据库,。SQLServer2005:从命令提示符安装SQLServer2005的方式中,通过指定安装程序参数REBUILDDATABASE重建所有系统数据库。然后使用普通方法利用备份恢复master数据库。情形二数据库应用与设计思考题阐述在恢复管理中日志的重要作用。一般数据库管理系统有哪些备份类型?讨论在恢复管理中应该如何使用这些备份技术。什么是简单恢复模式和完全恢复模式?讨论什么情况下可以使用简单恢复模式?什么情况下应该使用完全恢复模式?备份和恢复策略的最理想模式是什么样的?要达到所谓最理想的模式至少应该考虑哪些问题?数据库的备份和恢复通常是由谁负责的?一般用户需要得到什么授权或指定为什么角色可以进行备份和恢复工作?查阅相关资料,全面了解备份、恢复技术。数据库应用与设计5.5并发控制多个用户可能会同时操作一个数据库、同时操作一个基本表、同时操作一条记录、甚至同时操作一个字段,这些用户的操作可能会互相干扰多个教师同时录入考试成绩、可能会出现同时录入同一个学生不同课程的成绩,这时会对同一个字段(绩点)进行计算修改,有可能出错数据库应用与设计为什么需要并发控制因为并发用户会产生干扰,使数据库发生错误并发控制的目的就是避免干扰,保证数据库不出错干扰现象包括丢失更新读“脏”数据不可重复读幻象读数据库应用与设计问题1:丢失更新多个事务在同一时刻读了相同的数据,随后各自进行了更新,后发生的更新替代了先发生的更新——先发生的更新丢失了丢失更新的例子录入考试成绩(计算绩点)售票系统银行卡系统(主、附卡)销售系统……数据库应用与设计问题2:读“脏”数据当一个事务读取了另一个事务正在更新、但没有提交的数据时可能产生所谓的读“脏”数据问题,也称作“脏读”(DirtyRead)或未提交读。未提交读的例子录入考试成绩(计算绩点)售票系统银行卡系统(主、附卡)销售系统……数据库应用与设计问题3:不可重复读当一个事务需要校验或再确认数据时,可能会出现再读数据已经不对了。不可重复读的例子录入考试成绩(计算绩点)售票系统银行卡系统(主、附卡)销售系统……数据库应用与设计问题4:幻象读和不可重复读相关,当用相同的条件查询记录时,记录个数忽多忽少,有一种“幻象”的感觉原因是有事务在对相同的表做插入或删除操作数据库应用与设计事务的隔离性并发的事务之所以相互干扰,是因为它们交叉在一起,没有隔离开。这些事务按照一定的顺序逐一执行都是正确的。如何保证这些事务并发执行也是正确的?即如何保证事务的隔离性。数据库应用与设计可串行化可串行化通常看作是多个事务并发执行的正确性准则。具体判定方法如下:各单个事务如能将数据库从一个正确状态转变为另一个正确状态,则认为该事务是正确的;按任何一个串行顺序依次执行多个事务也是正确的(这里的串行顺序假定各个事务间彼此独立、不交叉)。事务的交叉执行过程是正确的,当且仅当其与串行执行过程等价,则称事务是可串行化的。数据库应用与设计如何保证并发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 媒体行业内容创作授权合同
- 城市智能交通管理系统建设合同
- 建材购销合同简单范本
- 协议酒店年度合同
- 标准体育场地租赁合同范文
- 技术开发委托合同范本
- 进出口合同的履行
- 员工借调服务合同
- 道路交通事故纠纷法律知识一本全-记录
- 基于膜解剖的腹腔镜与机器人结直肠肿瘤手术学-随笔
- 医院物业服务组织机构及人员的配备、培训管理方案
- 外观判定标准
- 江西上饶市2025届数学高二上期末检测试题含解析
- 脑卒中后吞咽障碍患者进食护理团体标准
- 工行人工智能风控
- 2023风电机组预应力混凝土塔筒与基础结构设计标准
- 小学语文阅读教学落实学生核心素养方法的研究-结题报告
- 一年级的成长历程
- 2024年南京铁道职业技术学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 正月十五元宵节介绍课件
- 病毒性肺炎疾病演示课件
评论
0/150
提交评论