概念-第一范式第二范式第三范式

(完全照搬:来源:http://mp.weixin.qq.com/s?__biz=MzIyNjE4NDcyMA==&mid=2247484110&idx=1&sn=cf05a9edd8345d7612f1c136edf6e135&chksm=e87519b1df0290a773f8bc07bd09ad565646a96196ce1c486f914915b79a96c82bb6d2eba215&mpshare=1&scene=1&srcid=0619b5vgTpPnpxLvftNdg5uk#rd)

数据库的三大范式以及五大约束

2017-06-19架构之家

今天小编来讲一下数据库的相关知识点,数据库的三大特性可谓是:实体属性和关系。

实体:表; 属性:表中的数据(字段); 关系:表与表之间的关系;

数据库设计三大范式(重点):

第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性;

例如:userInfo:山东省烟台市 131777368781 userAds:山东0省烟台市 userTel:131777368781

第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情;

例如:订单表只描述订单相关的信息,所以所有字段都必须与订单id相关 产品表只描述产品相关的信息,所以所有字段都必须与产品id相 关;因此不能在一张表中同时出现订单信息与产品信息;如下图所示:

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

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

【如何更好的区分三大范式】

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

【数据库五大约束】

1.primary KEY:设置主键约束;

2.UNIQUE:设置唯一性约束,不能有重复值;

3.DEFAULT 默认值约束,height DOUBLE(3,2)DEFAULT 1.2 height不输入是默认为1,2

4.NOT NULL:设置非空约束,该字段不能为空;

5.FOREIGN key :设置外键约束。

【主键】

1.主键的注意事项?

主键默认非空,默认唯一性约束,只有主键才能设置自动增长,自动增长一定是主键,主键不一定自动增长;

2.设置主键的方式?

在定义列时设置:ID INT PRIMARY KEY

在列定义完之后设置:primary KEY(id)

【外键】

1.设置外键的注意事项:

只有INNODB的数据库引擎支持外键,修改my.ini文件设置default-storage-engine=INNODB 外键必须与参照列的数据类型必须相同(数值型要求长度和无符号都相同,字符串要求类型相同,长度可以不同)。

2设置外键的语法:

CONSTRAINT 外键名 FOREIGN KEY (外键字段)REFERENCES 参照表 (参照字段) ON DELETE SET NULL ON UPDATE CASCADE 设置参照完整性

3.外键约束的参照操作?

参照表的完整性操作:当对参照表的参照字段进行删除或更新时,外键表中的外键如何应对;

参照操作可选值:

RESTRICT拒绝参照表删除或更新参照字段;

RESTRICT和NO ACTION相同,但这个指令只在mysql生效;

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

SET NULL 删除或更新参照表的参照字段时,外键表的外键设为NULL;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 41,123评论 0 48
  • 目录 简介 在Android中存储数据有时会用到数据库,Android给我们提供了 一系列的API来操作数据库,非...
    慕涵盛华阅读 1,056评论 1 2
  • MySQL5.6从零开始学 第一章 初始mysql 1.1数据库基础 数据库是由一批数据构成的有序的集合,这些数据...
    星期四晚八点阅读 1,193评论 0 4
  • 你是一枚超凡脱俗的人间仙子,用那空灵曼妙的舞姿演绎着无限欢快的生命姿态。 在平和,恬淡虚无的境界里将人生的智慧,体...
    梅酒煮年华阅读 346评论 0 0
  • 距离高考还有最后的10几天,因为高考乃人生中最为重要的一场考试,所以高考考生也进入了最后的冲刺阶段,可是有的人却在...
    summersg阅读 269评论 0 0