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

考点分布:数据库

 

三级模式 - 两级映射安全

 

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

关系代数:异步

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

交:两个模式中全部属性值完成相同的行函数

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

笛卡尔积:新模式的行数=两个模式行数之积,新模式的列包括两个模式的全部列spa

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

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

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

 

 

 

 

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

 

超键:惟一标识元组(能够存在冗余)

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

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

外键:其它关系的主键

 

函数依赖:

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

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

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

 

 

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

 

求候选键的方法:

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

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

三、若是上一步没法彻底遍历,则加入一些中间结点,直至能够遍历全部结点,则这些结点就是候选键。

 

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

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锁被释放。

数据库完整性约束:

一、实体完整性约束

二、参照完整性约束

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

触发器

 

数据库安全:

 

 

数据备份:

 

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

 

分布式数据库概念:

 

 

数据仓库和数据挖掘:

 

联邦数据库:

 

NoSQL:

 

反规范化:

 

大数据:

相关文章
相关标签/搜索