数据库的三大特性可谓是:实体、属性和关系。

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

第一范式(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. (转载)简洁、明晰!数据库设计三大范式应用实例剖析

    (转载http://bbs.database.ccidnet.com/read.php?tid=325895) 简洁.明晰!数据库设计三大范式应用实例剖析 引言OL~eR{q   ;iC,$vZ 0} ...

  2. 数据库设计三大范式和ER模型

    1. 数据库设计之三范式的介绍 范式: 对设计数据库提出的一些规范,目前有迹可寻的共有8种范式,一般遵守3范式即可. 第一范式(1NF): 强调的是列的原子性,即列不能够再分成其他几列.(1NF强调字 ...

  3. 数据库设计三大范式【转载】

    数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系.所以建立科学的,规范的的数据库是需要满足一些 规范的来优化数据数据存储方式.在关系型数据库中 ...

  4. mysql数据库设计三大范式_了解数据库设计三大范式

    数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系.所以建立科学的,规范的的数据库是需要满足一些 规范的来优化数据数据存储方式.在关系型数据库中 ...

  5. 数据库基础 数据库设计三大范式

    转载自: http://www.cnblogs.com/knowledgesea/p/3667395.html 数据库设计范式 什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的 ...

  6. 数据库设计三大范式之第一范式不可违反

    首先关于数据库三大范式是什么,我们不再多说,网上很多博客写的都很好,例如以下链接: https://blog.csdn.net/qq_26878363/article/details/81533273 ...

  7. 数据库设计三大范式,还记得吗?

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 来源:https://www.cnblogs.com/knowledgesea/p/36 ...

  8. 数据库设计三大范式应用实例剖析(转载)

    引言 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟, ...

  9. 【MySQL性能优化】数据库设计三大范式(二)

    转载自http://chenhaoxiang.cn/2018/02/04/2158/ 数据库设计无非遵循的就是减少冗余量,第二点就是遵循三范式 第一范式(1NF) 确保每一列的原子性 也就是如果每一列 ...

  10. 数据库设计三大范式应用实例剖析

    引言 数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟, ...

最新文章

  1. Java中String、StringBuffer和StringBuilder的区别
  2. CEGUI Lua 编码
  3. 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)...
  4. Python数值计算:一 使用Pylab绘图(1)
  5. 【后端开发】分析抖音后台架构
  6. 机器学习+深度学习相关课程地址总结
  7. 漫步数理统计十七——条件分布与期望
  8. mysql数据=_mysql 数据操作
  9. 0动态规划中等 LeetCode97. 交错字符串
  10. 计分器 java_非常实用的java语言自动答题计时计分器[Java代码]
  11. 房贷新政或助楼市回暖 北京二手房两天涨10万
  12. linux磁盘配额分区,Linux磁盘配额
  13. Assembler如何把跳转汇编变成机器码的(一)
  14. 2020总结及2021展望
  15. JNI 静态注册和动态注册
  16. qq2007服务器中断,自动重启pubwin2007服务器脚本
  17. 观察 | 家长焦虑,教培着急,暑期“培训热”今年还会持续吗?
  18. 如何学好c++,还是好好看书籍吧!
  19. 多文档程序 两个menu框架_汇总9款优秀的开源小程序UI框架
  20. C++定义全局变量的两种方式

热门文章

  1. Hie with the Pie (状压 DP)
  2. h5封装去底部_贪婪洞窟H5:也出微信小游戏了!还是原来贪婪的味道
  3. EasyUI多级表头设置
  4. 关于QTableWidget 表头设置无效的原因
  5. 程序员为什么要学习软件工程
  6. 【数学建模学习④】飞行管理问题
  7. java录入会员信息_Java编程语言基础 第三章 实现会员信息录入功能
  8. [英语阅读]希腊古剧场对高跟鞋说“不”
  9. 定义电竞AI,引领数据体育-火星数据
  10. logrus固定当天日志文件名称源码修改