为什么需要数据完整性
数据的完整性是指数据的 精确性 (Accuracy) 和 可靠性 (Reliability)。它的目的是为了防止数据库中存在不符合语义规定的数据或者错误信息的输入而造成无效的操作,数据完整性分为四类:
1、实体完整性
实体完整性将定义为特定表的唯一实体,它规定表的每一行记录在表中是唯一的。实体完整性在表中的约束体现为:主键 (Primary Key) 约束、唯一 (unique) 约束。
Primary Key:主键是表中一列或多列,用来唯一标识一行数据。例如:学号
Unique:可以用来确保在非主键列中不存在重复值,列值可以是NULL(空)
2、域完整性
实体完整性是指数据表中的应该输入那些数值,而域完整性则是考虑如何限制向表中输入的数值的范围。域完整性的约束为:外键(Foreign Key)约束、默认值(Default)约束、非空(Not Null)约束。
Foreign Key:一个表中的 FOREIGN KEY 指向另一个表中的主键
Default:用于向列中插入默认值
Not Null:用于强制该列不许为NULL(空)
注意:外键约束有两个名词
(1)主表(父表):对于两个具体关系的表而烟,相关联的字段中主键所在表的即为主表
(2)从表(子表):对于两个具体关系的表而烟,相关联的字段中外键所在表的即为从表
3、引用完整性
引用完整性是指保证主关键字(被引用表) 和外部关键字(引用表)之间的参照关系。引用完整性是基于外键与主键之间的关系。Mysql 中的引用完整性是通过外键 (FOREIGN KEY) 约束来实现的。
4、自定义完整性
用户自定义完整性是指针对某一具体关系型数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
如何让数据库的表格设计更加规范
数据库设计就是将数据库中的数据实体以及这些数据之间的关系,进行规划和结构化的过程。
数据库设计的步骤
数据库设计分为6个阶段:
1.需求分析阶段
准确了解与分析用户需求,是整个设计过程的基础,也是最困难、最耗时间的阶段。
2.概念结构设计阶段
这一阶段是整个数据库设计的关键,通过用户需求进行综合、归纳及抽象,形成一个独立于具体 DBMS 的概念模型,同时在这个阶段绘制 E-R 模型图。
3.逻辑结构设计阶段
将概念结构转换为某一个 DBMS 所支持的数据模型,并对其进行优化。
4.数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括储存结构和存取方法)。
5.数据库实施阶段
运用 DBMS 提供的数据语言、工具、根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库并进行试运行。
6.数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在运行过程中必须不断地对其进行评价、调整及修改。
规范设计
如何重新规范设计表?在数据库设计时,有一些专门的规则,称为数据库的设计规范,遵守这些规则,您将创建良好的数据库,数据库设计中著名的三大范式理论。
三范式规范化数据库设计
1NF. 确保每一列的原子性,既不可在分性
2NF. 确保表中的每列与主键相关
3FN. 确保每列都和主键直接相关,而不是间接相关
数据规范化主要是将数据库精简为最简洁的形式,表中除去任何冗余的列,标识出所有依赖于其他数据的数据。
提醒:不要轻易违反数据库设计的规范化原则。如果处理不好,可能会出现一系列异常情况。