第八章、数据库的管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库原理及应用2007.3荆楚理工学院数据库原理及应用《数据库原理及应用》课程组Jmun_jsjxy@163.com数据库原理及应用2007.3荆楚理工学院第八章数据库的管理数据库原理及应用2007.3荆楚理工学院数据库的保护有完整性保护,安全性保护,并发控制管理,事务管l理,数据库的备份与恢复等.【本章要点】数据库原理及应用2007.3荆楚理工学院数据完整性是指数据的正确性、有效性和相容性。数据库完整性约束条件作用的对象可分为列级、元组级和关系级三种粒度。对列的约束主要指对其取值类型、范围、精度、排序等的约束条件。对元组的约束是指对记录各字段间联系的约束。对关系的约束是指对若干记录间、关系集合上以及关系之间的联系的约束。8.1数据库的完整性实施方法8.1数据库的完整性实施方法数据库原理及应用2007.3荆楚理工学院关系DBMS通常使用声明数据完整性实现完整性约束。声明型数据完整性:作为数据库定义或说明的一部分在语法中实现,是SQL语言的修饰,在CreateTable和AlterTable定义中使用constraint和default语句限制表中数据的值。8.1数据库的完整性施方法数据库原理及应用2007.3荆楚理工学院在使用createtable和altertable语句中,进行完整性限定的子句有:●缺省约束(defaultconstraints):当向数据库中的表中插入数据时,如果用户没有明确给出某列的值,则系统自动为该字段输入指定的值。●检查约束(checkconstraints):限制插入列中的值,如性别字段输入时只允许出现男或女,其它值一律不许出现。8.1数据库的完整性实施方法数据库原理及应用2007.3荆楚理工学院●唯一约束(UniqueConstraints):要求表中在指定的列上没有两行具有相同的值。●参照约束(ReferenceConstraints)/外键约束(ForeignKeyConstraints):要求指定列或者外键中正被插入或者更新的新值,必须在主表的相应主键中已经存在。8.1数据库的完整性实施方法数据库原理及应用2007.3荆楚理工学院利用SQL语言实施完整性约束,它使用CREATETABLE和ALTERTABLE语句中的CONSTRAINT引出完整性约束的子句,一般语法为:CREATETABLE表名(列名数据类型[[CONSTRANIT约束名]PRIMARYKEY[CLUSTERED|NONCLUSTERED]])8.1数据库的完整性实施方法数据库原理及应用2007.3荆楚理工学院数据库的安全性是防止未经授权,非法使用数据,防止数据的泄露,篡改或破坏。对于数据库安全性的控制常可采用权限控制、定义视图和设计触发器程序等方法。8.2数据库的安全性实施方法8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院一、定义视图DBA根据用户的数据需要和访问数据库的权限,定义用户视图。例如,基于职工表建立一个通讯录视图,使用者只能查看职工的姓名和电话号码。实现语句如下:CREATEVIEW通讯录ASSELECT姓名,电话号码FROM职工;8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院二、访问权限控制访问控制(AccessControl)是对用户访问数据库各种资源(包括基本表,视图,各种目录以及实用程序等)的权限(包括创建,撤消,查询,增加,删除,修改,执行等)的控制。这是数据库安全的基本手段。8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院目前许多大型数据库管理系统将数据库用户的权限分为具有DBA特权的数据库用户和一般数据库用户。其中,具有DBA特权的数据库用户拥有对数据库最大的权限,可以支配整个数据库资源。而一般数据库用户是由DBA特权用户创建的,并由DBA用户授予其访问数据库的权限,可以在允许的权限范围内对数据库进行操作。当数据库系统安装之后,DBA对所有数据库资源就拥有所有权限。8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院DBA可以通过SQL语言的GRANT语句授予其他用户对数据库的操作权限。GRANT语句的语法格式是:GRANT系统权限列表ONTABLE表名|ONVIEW视图名TO用户名列表|PUBLIC[WITHGRANTOPTION]8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院可以授予用户的权限有以下几种:●ALTER可以修改指定表的结构。●DELETE可以在指定的表或视图中删除行。●INSERT可以在指定的表中插入行。●SELECT可以查询指定的表或视图。●UPDATE可以更新指定表或视图中的数据。8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院例授予用户TEACHER查询成绩表的权限,并允许他把查询的权限授予他人。GRANTSELECTONTABLE成绩TOTEACHERWITHGRANTOPTION除了显示地授予用户的权限之外,资源的创建者对其资源拥有一切的权限。8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院若DBA撤消某用户的权限,则这个用户转授给其他用户的权限也将同时被撤消。REVOKE语句的语法格式是:REVOKE.系统权限列表ONTABLE表名|ONVIEW视图名FROM用户名列表|PUBLIC;8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院例如:DBA授予用户A查询和修改工资表的权限,同时允许用户A具有转授权。GRANTSELECT,UPDATEONTABLE工资TOUSERAWITHGTRANTOPTION;用户A将所获得的权限又转授给用户B。GRANTSELECT,UPDATEONTABLE工资TOUSERB;DBA撤消用户A对工资表查询和修改的权限,用户B所获得的权限也同时被撤消。REVOKESELECT,UPDATEONTABLE工资FROMUSERA;8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院也可以利用DBMS所提供的设计查询,报表,输入/输出格式工具软件,在设计用户的应用界面时,设定应用的限制属性,实现对数据库访问的控制。例如,在使用这些应用时,审查所授的权限或口令。上面安全性控制一般限制在表、域的级别上,但有一些系统要求在记录一级实施控制。8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院为了实现权限审定方案,合理地分配用户与数据库的操作权限,数据库设计者必须维护一个授权矩阵,它包含被授权者、权限施加对象和授予的权限等三要素。授权矩阵是DBA的主要任务之一。对于大型的数据库来说,数据表越多,管理起来也就越困难,既要确保用户能够访问到他们所需要的数据但又不能获得超出他们权限的数据,因此,在一般的编程工作中,将相同数据上有相同权限的用户放入一个组中进行管理,这样可以大大降低权限设置的工作量。8.2数据库的安全性实施方法数据库原理及应用2007.3荆楚理工学院一、事务的基本概念事务反映现实世界中所需要完整单位提交的一项工作,事务为一个数据库应用中执行一个逻辑功能的操作集。对于一个事务,它必须完整地执行,或者都不执行。8.3事务处理8.3事务处理数据库原理及应用2007.3荆楚理工学院事务具有原子性,永久性,串行性和隔离性等四种基本特性。●原子性:事务的所有操作必须完成,否则事务将被撤消。因此,事务是不可分割的最小工作单位,它的所有操作要么全部执行,要么一个也不执行,它是一个整体。●永久性:指数据库必须保持一致性的状态,当一个事务完成后,数据库必须达到一个新的一致性的状态。8.3事务处理数据库原理及应用2007.3荆楚理工学院●串行性:串行性是指多个事务并发处理的过程。多个并发事务可以同时执行,表面上并发事务处理是并行的,实际上是串行有序地进行处理。●隔离性:指当一个事务执行期间所使用的数据,不能被其它的事务再使用,此事务对当前操作的数据具有独占性,直到此事务结束为止。这种事务的隔离性可保证在多用户的数据库环境中多个用户同时操作一个数据库时能保持数据库的一致性和正确性。8.3事务处理数据库原理及应用2007.3荆楚理工学院二、事务处理过程分析事务是由用户或者程序员根据具体的业务规程进行定义的。当计算机系统防碍了一个事务的正常执行时,事务管理能将数据库复原到原来的一致性的状态。8.3事务处理数据库原理及应用2007.3荆楚理工学院例假设账号为0027-654321的客户购买10件商品代码K01的商品,设这10件商品的总价为200.00元。根据业务规则,在执行购买事务时,应当完成如下的操作过程:UPDATE库存表SET库存量=库存量-10WHERE商品代码=‘K01’;UPDATE进账表SET金额=金额+200.00WHERE账号=‘0027-654321’;8.3事务处理数据库原理及应用2007.3荆楚理工学院通过实际销售业务规则可知,必须完整地执行上述了两个SQL语句之后,这笔交易才算完成。如果这两个SQL语句仅仅执行了其中的一个语句,则必然导致数据库的不一致性。例如如果程序在执行期间,执行了前一句,更新了商品K01的数量,但此时计算机突然断电或死机,则后一个SQL语句是不能被执行的,此时库存表更新了,但进账表中的金额却没有被修改,这样会产生数据库的不一致性。如果发生这种情况,DBMS系统应将数据库恢复到没有更新K01数据之前的一致性状态,当故障排除后,数据库的数据状态是一致的,可以通过再次提交事务来完成购买这个事务。8.3事务处理数据库原理及应用2007.3荆楚理工学院三、SQL的事务管理SQL语言进行事务管理的手段主要通过两个命令来实现,即事务提交COMMIT和事务撤消ROLLBACK(回滚)。事务提交COMMIT是将该事务对数据库的所有更新写回到磁盘的物理数据库中,事务正常结束。事务撤消ROLLBACK是指系统将该事务对数据库的所有已完成的更新操作全部撤消,恢复到事务开始前的一致的状态。8.3事务处理数据库原理及应用2007.3荆楚理工学院在SQL语言对数据库的操作中,一般都是按照用户或应用程序所规定的事务流程顺序执行,直到遇到下列情况之一为止:①执行COMMIT语句,说明对数据库的所有操作都已存入数据库中。COMMIT语句自动结束SQL的事务,并开始新的事务。②执行ROLLBACK语句,说明要撤消对事务开始后的所有对数据库的操作,并且使数据库回滚到事务开始之前的一致性的状态。8.3事务处理数据库原理及应用2007.3荆楚理工学院③程序正常结束,这种情况说明对数据库的所有修改已存入数据库中。④程序被非常终止,说明对数据库的所有改变被撤消,数据库回滚到原来一致性状态。当系统非正常结束时(如掉电、软件故障),系统在重新恢复时会自动执行ROLLBACK命令。8.3事务处理数据库原理及应用2007.3荆楚理工学院SQL还提供了自动提交事务的工作方式,其命令为:SETAUTOCOMMITON与之相反的人工工作方式为:SETAUTOCOMMITOFF一旦规定了自动提交事务方式,则系统将每条SQL命令视为一个事务,并在命令成功执行完成时自动地完成事务的提交。8.3事务处理数据库原理及应用2007.3荆楚理工学院一、并发处理产生的三种不一致性多用户系统:支持多个不同的程序或多个用户独立执行同一个程序同时存取数据库中相同的数据。并发处理:在多用户的数据库系统中,多个事务交迭地执行,称为并发处理。并发处理可能会导致数据完整性与一致性方面的问题,如丢失更新、读出的是未提交的数据、非一致检索的问题等。并发控制:DBMS系统对这种并发操作提供一定的控制以防止它们彼此干扰,从而保证数据库的正确性不被破坏。8.4并发控制8.4并发控制数据库原理及应用2007.3荆楚理工学院典型的并发处理产生的错误结果有如下三种。(1)丢失数据若事务T1和T2是交替执行的,在将更新的结果写回数据库时,T1写了之后,马上由T2写入它所计算出的值,此时最后数据

1 / 56
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功