本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。
问题描述
表(TABLE)是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。SQL数据库中用于存储数据的工具。
表是包含数据库中所有数据的数据库对象。
表定义为列的集合。与电子表格相似,数据在表中式按行和列的格式组织排列的。表中的每一列都设计为存储某种类型的信息(例如日期、名称、美元金额或数字)。表上有几种控制(约束、规则、默认值和自定义用户数据类型)用于确保数据的有效性。
解决方案
1 三大范式
第一范式:强调的是表中列的原子性(原子性:指事务的不可分割性,一个事务的所有操作要么不间断地全部被执行,要么一个也没有执行),可以理解为该列不能够分成其他的几列。
第二范式:保证表中必须有一个主键;表的每一列都必须和该表的主键相关(主键的所有部分,不能是主键的一部分)。
第三范式:确保表中的每一列都直接和主键相关联,即不能存在传递依赖(非主键列1依赖于非主键列2,非主键列2依赖于主键)的情况)。
2 主键与外键
(1) 主键:主键是指在表中可以唯一表示表中每一行的一列(或列的组合)。其特点是:不可以重复,不可以为空,一个表只能有一个主键。
例如:表(账号,昵称,密码)中账号列就满足其特点可以充当表的主键。
(2) 外键:外键是将两个表连接在一起的键,一个表的主键可以在另一个表中当作这个表的外键,进而将两个表连接在一起。其特点是:可以重复,可以为空,一个表可以有多个外键。
例如:表1(账号,昵称,密码)中的账号列(主键)就可以在表2(身份证id,名字,性别,生日,住址,账号)中的外键,从而将表1和表2关联起来。
结语
在数据库的建立中满足三大范式可以很大程度上的减小数据库的冗余,提升数据库的性能;主键的正确建立可以保证数据的唯一性,外键的正确建立可以保证数据的完整性和一致性,同时将不同的表关联在一起。
实习编辑:李欣容
稿件来源:深度学习与文旅应用实验室(DLETA)