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

                                                                    数  据   库

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

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

    第一范式(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.设置外键的注意事项:   

只有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;

转载于:https://www.cnblogs.com/123hll/p/7039455.html

数据库三大范式及五大约束相关推荐

  1. 数据库的三大范式和五大约束(转)

    一.三大范式: 1. 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 2. 第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键, ...

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

    实体:表: 属性:表中的数据(字段): 关系:表与表之间的关系: 数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 例 ...

  3. mysql数据库五大对象_数据库的三大范式以及五大约束

    实体:表: 属性:表中的数据(字段): 关系:表与表之间的关系: 数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 例 ...

  4. RDBMS-数据库三大范式、五大约束的通俗解释

    一范式就是属性不可分割.属性是什么?就是表中的字段. 不可分割的意思就按字面理解就是最小单位,不能再分成更小单位了. 这个字段只能是一个值,不能被拆分成多个字段,否则的话,它就是可分割的,就不符合一范 ...

  5. mysql三大范式 答案_数据库三大范式定义与理解

    数据库三大范式定义与理解 发布时间:2018-06-04 10:24, 浏览次数:291 一.第一范式(1NF) 要求: 要求:每一个分量必须是不可分的数据项. 特点: 1)有主键,且主键不能为空. ...

  6. 关系型数据库三大范式介绍

    文章目录 一.为什么使用范式? 二.什么是数据库三大范式? 1.第一范式 2.第二范式 3.第三范式 三.数据库设计一定要遵循三大范式吗? 四.总结 一.为什么使用范式? 要想设计-个好的关系,必须使 ...

  7. 数据库三大范式(1NF,2NF,3NF)及ER图

    数据库三大范式(1NF,2NF,3NF)及ER图 百度官方解释: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据 ...

  8. 3nf mysql表_数据库三大范式(1NF,2NF,3NF)及ER图

    数据库三大范式(1NF,2NF,3NF)及ER图 百度官方解释: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据 ...

  9. Mysql数据库与数据库三大范式

    作者:左新宇 链接:https://zhuanlan.zhihu.com/p/59394493 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. MySQL 常用命令 ...

最新文章

  1. AC日记——行程长度编码 openjudge 1.7 32
  2. Ubuntu16.04 python2.7升级python3.5
  3. mint java_Linux mint使用
  4. 【pytorch】model.train和model.eval用法及区别详解
  5. java编译后生成字节码_请问java源文件编译后怎么生成字节码文件?
  6. java lambda sorted_Java8:Lambda表达式增强版Comparator和排序
  7. AC自动机——Uva 11468 子串
  8. 从一套表达和通路数据学习常见的绘图展示方式和报错处理
  9. Linux笔记-bash中执行命令并将执行的命令结果存储为变量
  10. 超越传感器和相机 - 将物联网从云端迁移到物理世界
  11. kkFileView ---- 文件预览开源项目
  12. linux中dns服务故障,Linux nslookup命令对DNS域名服务器进行故障排除
  13. 满分作文生成器:生活在代码上
  14. 短说 3.7.1正式版更新【新增悬赏问答、打赏、付费看帖、IP属地】
  15. 云原生大数据平台零信任网络安全实践技术稿
  16. python基础知识
  17. Electron如何支持ESM模块
  18. 面试官-你真的懂computed原理?(源码解读)
  19. 基于jsp的职工年终考核分数计算
  20. 计算机实战项目之 论文+辩论PPT+源码等]精品微信小程序ssm校友录网站+后台管理系统|前后分离VUE

热门文章

  1. axure轮播图怎么设置循环轮播_Axure教程:轮播图制作步骤详解
  2. nginx高性能web服务器详解_Nginx服务器高性能优化轻松实现10万并发访问量
  3. python名片管理系统_Python名片管理系统
  4. 为什么rstudio打开是空白的_既然大家都说装了win10,就不用鲁大师监测显卡温度,为什么呢?...
  5. PAT (Basic Level) Practice1025 反转链表
  6. 概率软逻辑(PSL,Probabilistic soft logic)通用(可处理中文)版本
  7. 不重启的情况下清除网络共享的密码
  8. Monkey King
  9. 前端工程师做事的三重境界:我的进阶之路
  10. Xcode7中 添加 .dylib