词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 程序开发    数据库   

数据库中的约束和三大范式

标签: 数据库中 约束 范式

顶[0] 发表评论(0) 编辑词条

目录

一.数据库中的范式:编辑本段回目录


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


第一范式(1NF):


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


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


userInfo: '山东省烟台市' userTel: '1318162008'两个字段


第二范式(2NF):


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


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


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


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


第三范式(3NF):


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


例如:订单表中需要有客户相关信息,在分离出客户表之后,订单表中只需要有一个用户


ID即可,而不能有其他的客户信息,因为其他的用户信息是直接关联于用户ID,而不是关联


于订单ID。


注意事项:


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


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


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


二:数据库中的五大约束:编辑本段回目录


数据库中的五大约束包括:


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)。


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

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇rabbit MQ总结
下一篇百万级数据库优化方案

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>