第六章数据库管理1电子科技大学数据库原理及应用•了解数据库管理必要性•了解DBMS系统结构及其功能•理解数据库事务及其ACID特性•掌握数据库事务程序•学习数据库并发事务调度•了解数据库锁机制及其控制协议•理解数据库安全模型及其用户管理•掌握数据库备份和恢复处理方法【学习目标】2电子科技大学数据库原理及应用一、为什么需要数据库管理6.1数据库管理基础数据库系统随规模增大,系统会变得异常复杂多用户数据库应用带来数据库访问复杂性数据安全和数据隐私对机构和用户都非常重要数据库性能随系统使用发生变化,需要定期维护最大程度地发挥数据库对其所属机构的作用3电子科技大学数据库原理及应用二、数据库管理系统(DBMS)功能数据库定义定义数据库完整性、安全保密、存取路径等数据存取提供数据的操纵语言以便对数据进行查找和增删改数据库运行管理事务管理、自动恢复、并发控制、死锁检测或防止、安全性检查、存取控制、完整性检查、日志记录等数据组织、存储和管理数据字典、用户数据、存取路径的组织存储和管理,以便提高存储空间利用率,并方便存取数据库的建立和维护数据库初建、转储、恢复、重组、重构以及性能检测等数据传输网络通信、数据转换、异构数据库互访等4电子科技大学数据库原理及应用三、数据库管理系统(DBMS)功能模块DBMS功能模块数据库定义数据库存取数据库运行处理数据组织、存储和管理数据库建立、维护和其他DDL翻译程序模块安全性定义程序模块完整性定义程序模块查询处理程序模块数据更新程序模块交互式查询程序模块嵌入式查询程序模块系统初启程序模块安全性控制程序模块完整性控制程序模块事务管理程序模块并发控制程序模块运行日志管理程序模块缓冲区管理程序模块数据组织、维护程序模块存取路径(索引)管理程序模块批量数据装入模块数据转储模块数据库恢复模块数据库重组模块数据转换模块通信模块5电子科技大学数据库原理及应用四、数据库管理员(DBA)职责负责数据库系统开发与运行数据库用户管理数据备份与数据恢复管理数据库性能调优管理6电子科技大学数据库原理及应用五、数据库管理系统(DBMS)结构编译与解释视图转换授权检查完整性检查接口应用程序1管理工具查询工具接口接口应用程序n并发控制事务管理存取控制权限控制执行引擎日志与恢复…性能监控操作系统数据库磁盘存储器DBMS...缓冲区管理存储管理…索引管理语言翻译处理层数据存取控制层数据存储管理层7电子科技大学数据库原理及应用六、SQLSERVER数据库管理系统简介1988年,Microsoft、Sybase和Ashton-Tate公司联合,开发出运行于OS/2操作系统上的SQLServer1.0。1989年,Ashton-Tate公司退出SQLServer的开发。1990年,SQLServer1.1产品面世。1992年,SQLServer4.2产品面世。1994年,Microsoft公司和Sybase公司分道扬镳。1995年,Microsoft公司发布了SQLServer6.0产品,随后的SQLServer6.5产品取得了巨大的成功。1998年,Microsoft公司发布了SQLServer7.0产品,开始进入企业级数据库市场。2000年,Microsoft公司发布了SQLServer2000产品。2005年,Microsoft公司发布了SQLServer2005产品。2008年,Microsoft公司发布了SQLServer2008产品。2012年,Microsoft公司发布了SQLServer2012产品。2014年,Microsoft公司发布了SQLServer2014产品。8电子科技大学数据库原理及应用1.SQLSERVER2014版本SQLServer2014Express(学习版)SQLServer2014Developer(开发版)SQLServer2014WEB(网络版)SQLServer2014Standard(标准版)SQLServer2014BusinessIntelligence(商业智能版)SQLServer2014Enterprise(企业版)9电子科技大学数据库原理及应用2.SQLSERVER2014版本组件10电子科技大学数据库原理及应用11电子科技大学数据库原理及应用3.SQLSERVER数据库系统结构SQLServer数据库Data1_Data.MDFData1_Data.NDFData1_log.LDF物理实现(物理存储结构)用户视图(逻辑存储结构)表索引视图...主数据库文件次数据库文件事务曰志文件12电子科技大学数据库原理及应用5.SQLSERVER数据库组成SQLServer用户数据库系统数据库mastertempdbmsdbmodel工资库销售库...系统元数据、配置信息临时表、临时存储过程提供存储复制、作业调度和管理报警等为创建新数据库提供模板13电子科技大学数据库原理及应用6.SQLSERVER数据库对象数据库对象:数据库、表、视图、索引、约束、存储过程、触发器14电子科技大学数据库原理及应用七、SQLSERVER数据库管理工具SQLServerManagementStudioExpress功能组件是管理SQLServer数据库的图形工具。15电子科技大学数据库原理及应用1.数据库创建16电子科技大学数据库原理及应用命名新建数据库17电子科技大学数据库原理及应用HSD数据库创建完成18电子科技大学数据库原理及应用2.数据库表创建执行SQL语句创建数据库表19电子科技大学数据库原理及应用数据库表创建完成20电子科技大学数据库原理及应用一、为什么需要事务管理6.2事务管理在数据库应用系统中,完成一个业务处理通常需要多个操作步骤才能完成处理。在每个操作步骤中,都可能遭遇失败,若没有一个处理机制,就可能造成操作数据混乱,从而破坏数据一致性。二、事务概念在数据库中,事务(Transaction)是指由构成单个逻辑处理单元的一组数据库访问操作,它们要么都成功执行,要么都不执行。21电子科技大学数据库原理及应用例客户在银行将账户A转账1000元到账户B,其业务操作流程如下:Read(A);A:=A-1000;Write(A);Read(B);B:=B+1000;Write(B)转账处理操作序列语句银行业务系统执行的转账程序要么所有操作都执行,要么所有操作都不执行,以确保账户资金数据的正常状态。22电子科技大学数据库原理及应用在数据库系统中,事务是DBMS执行的最小任务单元。同时,事务也是DBMS最小的故障恢复任务单元和并发控制任务单元。事务执行状态操作失败状态事务提交状态事务回滚状态调度执行操作错误操作成功操作错误Commit执行Rollback执行开始结束操作正常状态三、事务使用23电子科技大学数据库原理及应用四、事务特性事务特性:原子性(Atomicity):事务所有操作在数据库中要么全部执行,要么全部不执行。一致性(Consistency):事务多次执行,其结果应一致。隔离性(Isolation):事务与事务之间隔离,并发执行透明。持续性(Durability):事务完成后,数据改变必须是永久的。为了确保数据库共享访问的数据正确性,要求DBMS的事务管理机制维护事务的ACID特性。24电子科技大学数据库原理及应用五、事务并发执行事务并发执行原因:改善系统的资源利用率减少事务运行的平均等待时间事务并发执行是指多个事务程序在计算机系统中同时运行。25电子科技大学数据库原理及应用六、事务SQL程序在关系数据库系统中,可以利用SQL语言提供的相应语句编写事务程序。BEGINTRANSACTION-事务开始ROLLBACK–事务回滚COMMIT–事务提交SAVETRANSACTION–事务数据保存1.事务SQL语句26电子科技大学数据库原理及应用2.事务程序框架BEGINTRANSACTION事务名称;SQL语句1;SQL语句2;…SAVETRANACTION保存点;SQL语句n;…If@@error0ROLLBACK保存点;ElseCOMMIT;27电子科技大学数据库原理及应用•@@rowcount上一语句影响的行数;•@@error检测上一条语句执行时的错误代码。@@error=0表示执行成功;•@@trancount当前连接的活动事务数事务全局变量的使用方法:begintransaction……/*A组语句序列*/savetransaction保存点1……/*B组语句序列*/if@@error0rollbacktransaction保存点1/*回滚到保存点1*/elsecommittransaction/*提交A和B组语句*/3.事务程序的全局变量28电子科技大学数据库原理及应用例1在课程管理数据库CourseDB中,使用事务程序实现对教材表TEXTBOOK插入数据,其事务SQL程序如下:USECourseDB;BEGINTRANSACTIONT1_book;INSERTINTOTEXTBOOK(book_id,book_name,publish_company)VALUES(‘B001',‘数据库原理及应用','机械工业出版社');INSERTINTOTEXTBOOK(book_id,book_name,publish_company)VALUES('B002',‘SQL数据库实践','电子工业出版社');INSERTINTOTEXTBOOK(book_id,book_name)VALUES(‘B003',‘SQLServer课程设计指导书’);IF@@error0ROLLBACK;COMMIT;4.事务编程29电子科技大学数据库原理及应用该事务程序T1_book在SQLServer数据库运行环境中执行后,其结果见下图所示。30电子科技大学数据库原理及应用例2使用事务向表book中插入数据USECourseDB;BEGINTRANtran_book;INSERTINTObook(book_id,book_name,publish_company)VALUES(‘dep04_s006_01’,‘C++程序设计’,‘机械工业出版社’);SAVETRANint_point;INSERTINTObook(book_id,book_name,publish_company)VALUES(‘dep04_s006_02’,‘C++实验指导书’,‘电子工业出版社’);INSERTINTObook(book_id,book_name)VALUES(‘dep04_s006_03‘,‘C++课程设计指导书’);IF@@error0ROLLBACKTRANint_point;elseCOMMITTRANtran_book;31电子科技大学数据库原理及应用创建数据库:createdatabase;修改数据库:alterdatabase;删除数据库:dropdatabase;备份数据库:dumpdatabase、backupdatabase;还原数据库:loaddatabase、restoredatabase;日志备份:dumptransaction、backuplog;日志还原:loadtransaction、restorelog;配置:reconfigure;磁盘初始化:diskinit;统计:updatestatistics;显示或设置数据库选项:sp_dboption。5.事务中不能使用的SQL语句32电子科技大学数据库原理及应用在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。一个程序通常包含多个事务当用户没有显式地定义事务时,DBMS按缺省规定每执行一个SQL语句将自动构成一个事务。七、DBMS默认事务方式八、事务与程序关系33电子科技大学数据库原理及应用一、为什么需要并发控制6.3并发控制并发控制目的支持并发事务处理,使更多用户并行操作,提高系统的并发访问能力。保证一