目录
- 规范化理论
- 并发控制
- 数据库完整性约束
- 数据备份
规范化理论
-
函数依赖
- 部分函数依赖:在一个关系中,一个非主属性依赖于该关系的某个候选键的一部分属性。
举个例子,假设有一个关系R(A,B,C,D),其中(A,B)是候选键。 如果C仅依赖于A,而不依赖于B,那么C就是一个部分函数依赖。 因为C只依赖于候选键的一部分属性A,而不是整个候选键(A,B)。
- 传递函数依赖:在一个关系中,一个非主属性依赖于另一个非主属性,而不仅仅依赖于主属性。
例如,假设有一个关系表格 R,其中有三个属性 A、B 和 C,且存在如下的函数依赖:A → B 和 B → C。 那么,由于存在 A → B 和 B → C 两个函数依赖,就可以推出 A → C 这个函数依赖,即 A 的取值能够唯一决定 C 的取值。 这种 A → C 的函数依赖就是传递函数依赖。
- 部分函数依赖:在一个关系中,一个非主属性依赖于该关系的某个候选键的一部分属性。
-
范式
逐步优化,以解决插入异常、删除异常和数据冗余的问题。-
第一范式(1NF):每个属性都是原子性的
第一范式要求属性值不可再分,即每个属性都是不可分割的原子值,不能再细分成更小的数据项。例如,一个人的姓名不能再分为姓和名两个属性。
-
第二范式(2NF):满足1NF,每个非主属性都完全依赖于主键,消除非主属性对候选键的部分依赖
第二范式要求每个非主属性都完全依赖于主键,即每个非主属性必须与主键相关,而不能只与主键的一部分相关【所以,如果候选键只有一个那肯定不满足第二范式】。这样可以消除数据冗余,避免数据更新时出现异常情况。例如,一个订单表中的商品名称和价格必须与订单号相关,而不能只与客户编号相关。
-
第三范式(3NF):满足2NF,每个非主属性都不依赖于其他非主属性,消除非主属性对候选键的传递依赖
第三范式要求每个非主属性都不依赖于其他非主属性,即不存在传递依赖关系。这样可以消除数据冗余,避免数据更新时出现异常情况。例如,一个学生表中的学生姓名和班级名称必须与学生编号相关,而不能只与班级编号相关。
-
巴斯-科德范式(BCNF):满足3NF,每个决策属性都与候选键有函数依赖关系,消除主属性对候选键的传递依赖
BCNF要求每个决策属性都与候选键有函数依赖关系,即不存在任何非平凡函数依赖关系。这样可以消除数据冗余,避免数据更新时出现异常情况。例如,一个教师表中的教师姓名和教师编号必须与科目名称相关,而不能只与科目编号相关。
-
-
模式分解
保持函数依赖的分解是指在无损分解的基础上,保持原来的函数依赖关系不变。保持函数依赖的分解需要满足以下条件:
要保持原来的函数依赖关系不变。 要将原来的关系模式分解成多个关系模式,使得每个关系模式都只包含一部分属性。 要满足无损分解的条件。
无损分解是指将一个关系模式分解成多个关系模式,使得在进行关系代数运算时不会损失任何信息。 具体来说,无损分解需要满足以下条件:
要将原关系模式的所有属性都包含在新的关系模式中。 要保证新的关系模式之间没有重复的数据。 要能够通过连接新的关系模式来还原原来的关系模式。
并发控制
并发产生的问题:
-
丢失更新
-
不可重复读
-
读”脏“数据
解决方案— —封锁协议:
-
一级封锁协议:可防止丢失修改
-
二级封锁协议:可防止丢失修改和防止读“脏”数据
-
三级封锁协议:可防止丢失修改、防止读“脏”数据和防止数据重复读
-
两段锁协议:可串行化、可能发生死锁
封锁方式:
- S封锁是指在网络设备上设置规则,阻止特定的IP地址或端口访问网络。S封锁通常用于防止网络攻击,例如拒绝服务攻击(DDoS)或钓鱼攻击。
- X封锁是指在网络设备上设置规则,阻止特定的应用程序或协议访问网络。X封锁通常用于防止恶意软件或间谍软件等恶意应用程序的传播。
数据库完整性约束
-
实体完整性约束【针对于主键】
-
参照完整性约束【针对于外键】
-
用户自定义完整性约束
-
触发器【通过写脚本来实现数据库的管理要求】
数据备份
-
冷备份是在系统关闭或者不可用的情况下进行备份。这种备份方式可以确保数据的完整性和一致性,但是需要停止系统运行,可能会影响业务的正常运行。
-
热备份是利用备份软件,在系统正常运行的情况下进行备份。这种备份方式不需要停止系统运行,可以保证业务的连续性和可用性,但是备份过程中可能会影响系统的性能。
备份方式 | 优点 | 缺点 |
---|---|---|
冷备份(静态备份) | 数据备份不会影响主要的生产环境,因为备份是在另一个系统或设备上进行的。冷备份是一种简单的备份方法,易于管理和维护。冷备份通常比热备份更经济实惠,因为不需要额外的硬件或软件。 | 冷备份通常需要停机时间,因为数据必须在备份期间暂停或关闭。冷备份需要更多的手动操作,因为备份必须手动启动和停止。冷备份通常需要更长的恢复时间,因为数据必须从备份设备恢复到主要生产环境。不能按表或按用户恢复。 |
热备份(动态备份) | 高可用性:热备份可以确保系统的持续运行,即使出现故障,也可以快速切换到备份系统,保证系统的高可用性。数据完整性:热备份可以确保备份数据的完整性,避免数据丢失或损坏。时间效率:热备份可以在系统运行时备份数据,不需要停机或者重启系统,可以节省备份时间,提高数据备份的效率。 | 成本高:热备份需要更多的硬件和软件资源,成本较高。需要专业技术:热备份需要专业技术支持,需要专业人员进行配置和管理。安全性问题:热备份可能会面临安全性问题,需要采取相应的安全措施来保护备份数据的安全。不能出错,否则后果严重。 |