《系统架构师》——数据库系统

考点分布:

 

三级模式 - 两级映射

 

E-R模型:实体-关系-属性

关系代数:

并:两个模式中直接合并成一个模式,新模式的行数=两个模式行数之和

交:两个模式中所有属性值完成相同的行

差:模式A 与 模式B 之差 = 模式A -(模式A 并 模式B)

笛卡尔积:新模式的行数=两个模式行数之积,新模式的列包括两个模式的所有列

联接:根据指定属性值来联接两个模式,组成一个新模式。

投影:针对单个模式而言,即选择指定列出来,作为一个新模式

选择:针对单个模式而言,容易与投影混淆,选择出指定列为指定值的行作为一个新模式

 

 

 

 

非规范化的关系模式,可能存在数据冗余、更新异常、插入异常和删除异常的问题。

 

超键:唯一标识元组(可以存在冗余)

候选键:在超键的基础上消除多余属性(应该就是我们常设计的无冗余的联合主键),一般一个模式只有一个候选键,但也有多个候选键的情况

主键:在候选键中任选一个(联合主键中的其中一项)

外键:其它关系的主键

 

函数依赖:

1、完全函数依赖:其它属性可以由超键推导,而不能由超键中任何一个子集推导,就称为完全函数依赖,从规范上来说是好的设计。

2、部分函数依赖:超键中的某一个子集也能推导出其它属性,就称为部分函数依赖,这是我们需要避免的。(避免了这个就达成了2NF)

3、传递函数依赖:超键可以推导出属性A,属性A也可以推导出属性B,则B传递函数依赖于超键。(避免了就达成了3NF)

 

 

将 E-R 模型转换成关系模式时,一个实体都转换成一个关系模式,1:1联系不用单独转换成关系模式, 1:n 关系可以单独转换也可以不转换,m:n 关系单独转换成一个关系模式。

 

求候选键的方法:

1、将关系模式按函数依赖关系用有向图表示

2、找所有入度为0的结点,遍历该有向图,若能遍历,则这些结点就是候选键

3、如果上一步无法完全遍历,则加入一些中间结点,直至可以遍历所有结点,则这些结点就是候选键。

 

数据库范式:逐步解决插入异步、删除异常、数据冗余

1NF:属性不可拆分(其实就是避免一个属性值包括复合数据)

2NF:消除非主属性对候选键的部分依赖(满足完全函数依赖,对候选键去冗余)

3NF:消除非主属性对候选键的传递依赖(消除传递依赖,非主属性只能依赖于主属性,不能依赖于其它非主属性)

BCNF:消除主属性对候选键的传递依赖(不允许某个主属性可以由其它主属性或非主属性推导,当只有一个候选键时,等同于3NF)

BCNF要侧重说明,比如一张关系表为 (玩家ID,昵称,物品编号,物品数量),其中昵称不允许重复。那 (玩家ID,物品编号) ->(昵称,物品数量),(昵称,物品编号)->(玩家ID,物品数量),这样这张关系表就存在两个候选键 (玩家ID,物品编号) 和 (昵称,物品编号)了,而这里玩家ID和昵称作为主属性,是可以被其它属性推导出来的。这样就不符合BCNF了。所以,BCNF只有当存在多个候选键时才和3NF有所区别。

 

无损分解:个人总结,判断是否为无损分解,先将依赖关系中所有入度为0(即无法被推导)的属性作为一个子模式(如果没有拆分出这样的子模式,一定是有损分解,当然有该子模式的超集也是可以的),在这个子模式基础上根据依赖关系,如果能推导出所有属性就是无损分解。

 

并发控制:

封锁协议

S锁:共享锁(share locks),又称读锁,只可以读取数据,当某事务对对象加上S锁之后,其它事务只能对该对象加S锁,而不能加X锁,直到所有的S锁都被释放。

X锁:排它锁(eXclusive lock),又称写锁,可以读取和修改数据,当事务对对象加上X锁之后,其它事务都不能对该对象加任何锁,直到该X锁被释放。

数据库完整性约束:

1、实体完整性约束

2、参照完整性约束

3、用户自定义完整性约束

触发器

 

数据库安全:

 

 

数据备份:

 

分布式数据库的体系结构:

 

分布式数据库概念:

 

 

数据仓库和数据挖掘:

 

联邦数据库:

 

NoSQL:

 

反规范化:

 

大数据:

 

posted @ 2017-10-12 13:51  轻典  阅读(1217)  评论(0编辑  收藏  举报