Heim > Datenbank > MySQL-Tutorial > 自考《数据库系统原理》(6)之数据库管理

自考《数据库系统原理》(6)之数据库管理

WBOY
Freigeben: 2016-06-07 15:11:57
Original
924 Leute haben es durchsucht

数据库的管理包括事务、恢复、并发控制、完整性和安全性等内容。说到事务,先给大家它的定义。 事务 是构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行。不论发生何种情况,DBS必须保证事务能正确、完整地执行。 看到这样的定义,初学的人

自考《数据库系统原理》(6)之数据库管理

数据库的管理包括事务、恢复、并发控制、完整性和安全性等内容。说到事务,先给大家它的定义。

事务是构成单一逻辑工作单元的操作集合,要么完整地执行,要么完全不执行。不论发生何种情况,DBS必须保证事务能正确、完整地执行。

看到这样的定义,初学的人肯定会晕。举一个例子给大家说,去柜员机取款,当你放进去卡,事务开始(BEGIN TRANSACTION),点击确认要取出二百后,系统正常运行把钱给你,取出你的卡,这个事务结束(COMMIT)。但是如果系统正当运行的时候,忽然断电了,钱也没取出来。你是不是会担心你的银行卡会少二百块钱,这个你放心,现在事务就开始起作用了。当运行失败的时候,那么事务就会回退(ROLLBACK),你卡上的钱是不会动的。这样事务的定义就显而易见了吧,做一件事,要么你就不执行,要么你就完整地执行下来,执行了但没有成功那么就回到原始没有执行的状态。

当然这里说的事务是计算机,那么针对的是数据库。为了保证数据库中的数据是正确的,我们对其性质有什么要求呢?简单来说,就是ACID性质。对于数据库的操作来说,要么你就全部执行,要么就什么也不做,这就是原子性(Atomicity);那么事务执行的时候,数据应该一直要一致,这就是所谓的一致性(Consistency);多个事务同时执行的时候,那么系统和这些事务单独执行时的结果是一样的,此谓隔离性(Isolation);事务完成全部的操作后,对数据库的更新应该永久地存在数据库中,此谓持久性(Durability)。

对数据库的管理主要通过四个方面来实现:数据库的恢复、并发控制、完整性控制盒安全性控制

说到恢复,首先你得做好日常工作的备份啊,这样到数据库出问题的时候,你就可以来恢复了。再说并发控制,听起来很“高大尚”,其实就是很多事务同时对数据库操作,这样很容易出问题啊,数据不一致了,中间丢了一个操作没有更新(丢失问题);一个事务操作了,都没有提交,紧接着下一个事务来读取上一个事务的操作。上一个事务修改了,但下一个事务却没动,这就导致了读出了脏数据问题;两个事务,同时读取同一个数,一个事务把数改了,另一个却没有。此谓不可重复读问题。

为了解决这些问题呢,用了封锁技术来使数据库之间的相关联的数据能够同步。有一种排他型封锁(X锁),说白了就是自己加了锁就不让别人加了,一旦加上了锁,对数据做了修改,除非全部的操作完成了,否则是不能解锁的。这样,丢失更新问题就解决了。还有一个共享锁(S锁),就是自己和别人都能够对同一事物加锁呗,但是有一点,一旦加S锁,数据不能修改,只能读取,必须升级为X锁才行。但就是这样一个好东西也会发生活锁,饿死和死锁问题。这就又引出了一个概念-可串行化。多个事务依次执行,就是串行调度,分时同时处理多个事务就是并发调度,在每个事务中,语句的先后顺序不管在哪都始终是一致的,那么并发调度的执行结果与串行调度执行结果若等价,那么这个并发调度就是可串行化的调度。还有SQL中设置事务的存取方式和隔离级别对并发操作进行了管理,知道这回事就行。

紧接着说数据的完整性,其实就是要保持数据始终是完整的,不受破坏,这样有了一套规则来保证。即所谓的完整性规则。那怎么样来定义这些规则又出现了三个约束。域约束、基本表约束和断言。没弄懂,知道有这回事就好。但是这些约束都太被动了,遇到复杂的操作还需要主动去进行,那么就有了触发器。

最后是数据库的安全性。无论什么安全都是很重要的。比如说专利,没有发明人的授权,你是不能随便用的。这就是所谓的权限问题。再说角色问题,你是提高班的一元,米老师就给你一个胸牌,允许你进入机房学习。没有了这些东西岂不是会非常的不安全啊。

说来说去,数据库就这么些东西,用自己的生活来理解它会变得非常的简单。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage