首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据库考点(二)

数据库考点(二)

1.求候选键是求范式或后续规范化处理的基础。求候选键最稳靠的方法是图示法:

(1)将关系的函数依赖关系,用有向图的方式表示。

(2)找出入度为0的属性,并以该属性集合为起点,常是遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键。

(3)若如度为0的属性集不能遍历图中所有几点,则需要尝试性的将一些中间结点(既有入度,又有出度的结点)并入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键。

如果一个属性集可以唯一标识元组,且又不含有多余属性,那么这个属性集就是候选键。

2.转储还可以分为完全转储、增量转储、差量转储。完全转储是每次转储全部数据库;增量转储是指每次只转储上次转储后更新过的数据(变化后的文件);差量转储是对近一次数据库完全备份以来发生的数据变化进行备份。如果数据库很大,事务处理又十分频繁,则增量转储方式是很有效的;而差量转储的优点是速度快,占用较小的时间和空间。

3.处理并发控制的主要方法是采用封锁技术。常见的主要有两种封锁:X封锁、S封锁。

(1)排他型封锁(简称X封锁):如果事务T对数据A(可以是数据项、记录、数据集以至整个数据库)实现了X封锁,那么只允许事务T读取和修改数据A,其他事务要等事务T解除X封锁后,才能对数据A 实现任何类型的封锁。可见X封锁只允许一个事务独锁某个数据,具有排他性。

(2)共享型封锁(简称S封锁):如果事务T对数据A实现了S封锁,那么允许事务T读取数据A ,但不能修改数据A,在所有S封锁解锁之前决不允许任何事务对数据A实现X封锁。

4.数据库管理系统运行的基本单位是事务,事务是用户定义的一个数据库操作序列,这些操作序列要么全做要么全不做,是一个不可分割的工作单位。ACID特性

原子性。数据库的逻辑工作单位,全做或全部做

事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说这些操作是一个整体,对数据库而言全做或全不做,不能部分完成。这一性质即使在系统崩溃之后仍能得到保证,在系统崩溃之后将进行数据库恢复,用来恢复和撤销系统崩溃处于活动状态的事务对数据库的影响,从而保证事务的原子性。系统对磁盘上的任何实际数据的修改之前都会将修改操作信息本身的信息记录到磁盘上。当发生崩溃时,系统能根据这些操作记录当时该事务处于何种状态,以此确定是撤销该事务所做的的所有修改操作还是将修改的操作重新执行。

一致性:将数据库从一个一致性状态转变到另一个一致性状态。

它是一种以一致性规则为基础的逻辑属性。例如,在转账的操作中,各账户金额必须平衡,这一条规则对程序员而言是一个强制的规定,由此而见,一致性与原子性是密切相关的。事务的一致性属性要求事务在并发执行的情况下事务的一致性仍然满足。它在逻辑上是不独立的,由事务的隔离性来表示。

隔离性:不能被其他事务所干扰。

即一个事物内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。他要求即使有多个事务并发执行,看上去每个成功事务按串行调度执行一样。这一性质的另一种称法为可串行性,也就是说系统允许的任何交错操作调度等价于一个串行调度。串行调度的意思是每次调度一个事务,在一个事务的所有操作没有结束之前,另外的事务操作不能开始。由于性能原因,需要进行交错操作的调度,但也希望这些交错操作的调度的效果和某一个串行调度是一致的。DM实现该机制

是通过对事务的数据访问对象加适当的锁,从而排斥其他事务对同一数据库对象的并发操作。

(4)持久性:一旦提交,改变就是永久性的。

系统提供的持久性保证要求一旦事务提交,那么对数据库所做的修改将是持久的,无论发生何种机器和系统故障都不应该对其有任何影响。

5.丢失更新:丢失更新就是指两个事务T1,T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。

不能重复读:不可重复读是指事务T1读取数据后,事务T2执行更新操作,是T1无法再现前一次读取结果,具体来讲还包括三种情况:@事务T1读取某一数据后,事务T2对其做了修改,当事务T1再次读取读该数据时得到与前一次不同的值;@事务T1按一定条件从数据库中读取某些数据记录后,事务T2删除了其中部分记录,当T1再次按相同条件读取数据时,发现某些记录已经消失了@事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当T1再次按照相同条件读取数据时发现多了一些记录。

读“脏”数据:读“脏”数据是指事务T1修改某一数据并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,这时T1修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致。

6.数据约束使用来确保数据的准确性和一致性。常见的四种约束:

(1)实体完整性约束:规定表的每一行在表中是唯一的实体。

(2)域完整性约束:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。(不属于关系模型定义的三种数据约束)

(3)参照完整性约束,是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性防止了数据丢失或无意义的数据在数据库中扩散。

(4)用户定义的完整性约束,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定系数据库的约束条件,反映某一具体应用必须满足的语义要求。

7.故障:

事务故障时非预期的,是不能由应用程序处理的故障如运算溢出、并行事务发生死锁而被选中撤销该事务等。事务故障意味着事务没有到达预期的终点。

系统故障是指造成系统停止运转的任何事件,使得系统重新启动,如中央处理器故障、操作系统故障、突然停电等。

介质故障又称硬故障,是指外存故障,如磁盘的磁头碰撞、瞬时的强磁场干扰等。

关系数据库的规范化(待续)

函数依赖

规范化

模式分解

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180731G0QIHQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券