数据库的完整性是指数据库中数据的正确性和一致性。它通过一系列约束条件来确保数据符合现实世界的规则,防止无效数据进入数据库。主要包括实体完整性(主码唯一且非空)、参照完整性(外码参照必须存在)和用户定义完整性(自定义业务规则)三类。
数据库的正确性是指数据必须符合现实世界的真实情况,比如年龄字段不能是负数。数据库的相容性是指同一数据在不同地方必须保持一致,不能出现相互矛盾的情况,比如同一个人的年龄在两张表里必须相同。
定义完整性约束条件,就是为数据库设置一系列规则,规定什么样的数据才是合法的。比如规定学号必须唯一且不能为空,年龄必须在0到150岁之间,成绩表中的学号必须在学生表中存在。这些规则由数据库管理系统自动检查和强制实施。
违约处理是指当用户的操作违反了数据库的完整性约束时,数据库管理系统会自动采取的措施。主要包括拒绝执行、级联操作、置空值或设为默认值。
拒绝执行,比如插入一个学号重复的学生记录,系统直接报错并拒绝插入。
级联操作,比如删除某个专业时,系统自动删除该专业所有学生的选课记录。
设为默认值,比如插入新员工时未填写部门,系统自动填入默认的部门编号。
RDBMS 是 Relational Database Management System 的缩写,中文意思是关系数据库管理系统。它是基于关系模型来组织和存储数据的数据库管理系统,比如 MySQL、Oracle、SQL Server 都属于 RDBMS。
触发器是一种特殊的存储过程,它会在指定的表上发生数据修改操作(如插入、更新、删除)时自动被触发执行。通常用于实现更复杂的完整性约束、自动数据同步或业务规则。
关系数据库的规范化理论是指导如何设计合理的数据库表结构的理论体系。它的核心目标是通过分解关系模式来消除数据冗余和操作异常,让数据库结构更清晰、更高效。规范化主要通过一系列范式(如第一范式、第二范式、第三范式、BCNF范式等)来衡量关系模式的合理性,每个范式都代表了不同程度的规范化水平。

1NF:原子
2NF:消除 部分依赖(非主对码)
3NF:消除 传递依赖(非主对码)
BCNF:决定因素都是码(主内部)
4NF:无 非平凡 非函数依赖 的 多值依赖 (这里的表述很重要,多值依赖的定义比函数依赖的定义更广,多值依赖是已知一个X,可以确定若干个Y,当Y的数量为1时就退化为函数依赖了)
5NF:无冗余连接依赖,拆到最干净(所有的依赖关系都交由码来管理,而非主属性不管依赖关系)
最低只要到BC范式就可以无损分解,因为BC范式要求所有的决定因素都是码,而拆解的时候是将各个码拆解到各个小表里面
无损分解指的是把一张表拆开再用自然连接把它们合起来结果和原来的表一模一样
这些范式各自解决的问题:
1NF:解决无法精确操作
2NF:解决删数据把有用信息一起删掉
3NF:解决改一次要改很多行
BCNF:解决3NF 漏网的主属性导致的异常
4NF:解决多值造成的疯狂重复行
5NF:解决表能乱拆乱拼导致的冗余