考点分布:数据库
三级模式 - 两级映射安全
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:
反规范化:
大数据: