数据库总结(5)——数据库管理

本文深入探讨了数据库管理的关键要素,包括事务处理、故障恢复、并发控制等核心概念,并介绍了完整性及安全性的保障措施。
          前几张主要讲的是怎是创建好的数据库,数据库创建好以后没有管理。数据库系统任然不能正常的运转,而本章的思路相比前几章要清晰的多。先是介绍数据库操作的基本单位—事务,然后分别从数据库的恢复,并发、完整性、安全性的控制四方面介绍了怎样管理数据库。
           数据库为保证数据操作的完整性和正确性引出了事务的概念。事务是数据库操作的最小工作单位,程序的开始就是第一个事务的开始。为了保证数据库中数据的正确性,我们规程事务有四个特性:原子性、一致性、隔离性、持久性。

            可能我们在做机房收费系统的时候没有做数据库的备份,大家有没有想过。我们在敲机房前先是附件数据库,附加数据库 其实就是对数据可的恢复。为了预防数据库出现问题,我们平时要做好两件事情:转储和建立日志。转储就是定时的对数据可进行备份,在数据库视频中也有讲过数据库怎样备份和备份的方案。建立日志要 视情况而定,因为要是利用sql server 建立数据库的话,相应的日志文件系统都会建立。
             库经常出现的故障分为软故障和硬故障。软故障包括:事务故障和系统故障,解决方法是利用日志库撤销(undo)不可靠的修改。硬故障指介质故障是磁盘上的物理数据库遭到毁灭性破坏,解决方法是恢复备份的数据库,在利用日志库重做(redo)事务。
              而利用日志库“重做”和“撤销”事务的原理是利用检查点。个人理解:检查点的作用其实就是内存中的数据更新写入数据库,如果一个事务的结束时间在检出点前,则说明数据已经写入数据库;如果在检查点后,则没有写入数据库。检查点恢复数据的算法又分为两种1、故障点出现在事务结束时间前,这时数据是正确的只是还在内存缓冲区中没有更新,这时只要对事务进行重做(REDO),也就正向扫描日志文件对故障点没有更新的事务进行更新操作。2、故障点出现在事务执行中,这些事务已经是错误操作了。这时就要对事务进行撤销(UNDO),也就是反方向扫描件日志文件把故障点中的事务进行逆操作。

             数据库一般为多个用户服务,这是就要利用并发操作。而利用并发操作 又引发了别的问题,像丢失更新、读脏数据、不可重复读等问题。而这些问题都是围绕着更新和读取数据发生的的。新的问题的出现预示着新的技术的诞生,这是封锁技术就应运而生了。锁是可能应用于数据项上的操作而言的,锁描述了改数据项的状态。既然是描述了改数据项的状态那么可以更具这个把锁分为:1、写锁、简称X锁。根据它是否和其他的相容有叫做排他型封锁。写锁的功能是禁止一些操作,再到写锁结束后。2、读锁,简称S锁。根据它是否和其他的相容有叫做共享型封锁。读锁的功能是事务只能读数据不能写数据。这里需要注意的是,当一个事务结束时他锁对应的锁也就释放了。
             简单的介绍完所得分类和功能后下面说一下锁是如果解决并发锁带来的问题的。首先是调度,当多个事务需要依次执行的时候执行串行调度;如果同时处理多个事务则执行并发调度。然后是封锁协议,更具需要利用不同级别的协议。而然因为锁的利用范围非常广,更具不同的对象要利用不同的锁型。封锁粒度大、系统开销小、但是并发小;封锁粒度小、并发大、但是系统开销大。这是就要利用米老师的一句话了:没有真理,只有合适。
             上面介绍了怎样利用锁解决并发带来的问题,而SQL则是通过存储模式和事务的隔离级别解决并发问题。个人理解:其实就是利用sel语句声明不同的锁、调度和协议级别。原理和上面一样。

            写到这感觉写的确实有点多了(一总结就兴奋啊!)下面简单的总结后面的内容完整性和安全性。
             完整性主要指的是插入数据是否合法、是否有效、是否相容。而怎样保证这些性质那、 这就用到了约束、断言、触发器。约束又分为域约束(对属性值的约束)、基本表约束(主要用于两个表属性值的约束)。断言主要用于多个关系、或者与聚合函数操作有关的约束。触发器则是指主动的去启动其他操作。

             安全性主要指保护数据库、防止不合法的使用、预防数据泄露三个方面。而针对各个方面提出了一些解决方法:像视图、权限、角色、审计(其实就是日志)。这值得分析的是权限和角色的不同:权限是对数据库进行的操作权限、像增、删、改、查。而角色是一种抽象的逻辑分组,代表具有相同权限的用户组。例如一个角色叫操作员,他的权限是对数据库进行查和改。当管理员只让他查数据库时,他的权限变了,但是角色没有变。

         总结:数据库管理其实就是怎样让数据库更好的为用户服务。从用户的角度出发,把用户使用过程中可能出现的问题提出来,并解决。
             

评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值