Linux培训
达内IT学院

400-996-5531

Linux运维中的数据库小知识-约束和范式


今天小编要为各位喜欢Linux运维的小伙伴们分享的文章是关于Linux运维中的数据库小知识,约束和范式。关于数据库的知识小伙伴们都了解哪些呢?你是否知道数据库的约束和范式?下面就来和小编一起看一看吧~

Linux运维中的数据库小知识-约束和范式

一、数据库中的约束指什么?

在数据库中包含五大约束,分别是:

1.主键约束(Primay Key Coustraint) 唯一性,非空性;

2.唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个;

3.默认约束 (Default Counstraint) 该数据的默认值;

4.外键约束 (Foreign Key Counstraint) 需要建立两表间的关系;

5.非空约束( Not Null Counstraint ):设置非空约束,该字段不能为空。

详细介绍:

1、[外键约束 (Foreign Key Counstraint) ]

(1)设置外键的注意事项:

①:只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB;

②:外键与参照列的数据类型必须相同。(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同);

③:设置外键的字段必须要有索引,如果没有索引,设置外键时会自动生成一个索引;

(2)设置外键的语法:

[CONSTRAINT 外键名] FOREIGN KEY(外键字段) REFERENCES 参照表(参照字段);

[ON DELETE SET NULL ON UPDATE CASCADE] -- 设置操作完整。

(3)外键约束的参照操作:

当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对。

参照操作可选值:

RESTRICT: 拒绝对参照字段的删除或修改(默认);

NO ACTION:与RESTRICT相同,但这个指令只在MySql生效;

CASCADE: 删除或更新参照表的参照字段时,外键表的记录同步删除或更新;

SET NULL: 删除删除或更新参照表的参照字段时,外键表的外键设为NULL (此时外键不能设置为NOT NULL)。

2、[主键约束] (Primay Key Coustraint)

(1)主键的注意事项:主键默认非空,默认唯一性约束,只有主键可以设置自动增长(主键不一定自增,自增一定是主键)。

(2)设置主键的方式:

①:在定义列时设置:id INT UNSIGNED PRIMARY KEY。

②:在列定义完成后设置:PRIMARY KEY(id)。

其他约束没有特殊要求因此不做解释。

二、数据库中的范式指什么?

范式, 英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法,以下就是对这三个范式的基本介绍:

第一范式(1NF):

数据表中的每一列(字段),必须是不可拆分的最小单元,也就是确保每一列的原子性。

例如: userInfo: '山东省烟台市 1318162008' 依照第一范式必须拆分成userInfo: '山东省烟台市' userTel: '1318162008'两个字段

第二范式(2NF):

满足1NF后要求表中的所有列,都必需依赖于主键,而不能有 任何一列与主键没有关系(一个表只描述一件事情)。

例如:订单表只能描述订单相关的信息,所以所有的字段都必须与订单ID相关。

产品表只能描述产品相关的信息,所以所有的字段都必须与产品ID相关。

因此在同一张表中不能同时出现订单信息与产品信息。

第三范式(3NF):

满足2NF后,要求:表中的每一列都要与主键直接相关,而不是间接相关(表中的每一列只能依赖于主键)

例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户ID即可,而不能有其他的客户信息,因为其他的用户信息是直接关联于用户ID,而不是关联于订单ID。

注意事项:

1.第二范式与第三范式的本质区别:在于有没有分出两张表。

第二范式是说一张表中包含了多种不同实体的属性,那么必须要分成多张表,第三范式是要求已经分好了多张表的话,一张表中只能有另一张标的ID,而不能有其他任何信息,(其他任何信息,一律用主键在另一张表中查询)。

2.必须先满足第一范式才能满足第二范式,必须同时满足第一第二范式才能满足第三范式。

以上就是小编今天为大家分享的关于Linux运维中的数据库小知识-约束和范式的文章,希望本篇文章能够对正在学习Linux运维或者从事Linux运维工作的你有所帮助。想要了解更多Linux相关知识记得关注达内Linux培训官网哦。

作者:吴建锐

来源:#/wujianrui/p/7077864.html

*声明:内容与图片均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Linux运维工程师在编写脚本时应该注意的技巧有哪些?
下一篇:你知道 Linux shell中“2>&1”吗?它有什么作用?

运维培训班出来好找活吗?

新能源运维工程师是干什么的

云计算就业岗位有哪些?

学物联网工程好就业吗?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省