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

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

第一范式(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;

转载于:https://blog.51cto.com/12945177/1950791

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

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

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

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

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

  3. 数据库三大范式及五大约束

    数据库的三大范式以及五大约束                                                                     数  据   库      今天小 ...

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

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

  5. Mysql 数据库设置三大范式 数据库五大约束 数据库基础配置

    数据库设置三大范式 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式. 第一范式的合理遵循需要根据系统给的实际需求 ...

  6. 2017年10月21日 数据库基础三大范式

    1. 数据库里面常用 int        整型 nvarchar   字符串 float       小数型 decimal(,) 小数型 money      小数型 datetime   时间类 ...

  7. 学习数据库的三大范式

    学习数据库的三大范式 第一范式:确保每列的原子性 如果每列(或者每个属性)都是不可再分的最小的数据单元(也称最小的原子单元),则满足第一范式. 第二范式:在第一范式的基础上,确保每列都和主键相关 如果 ...

  8. (转载)简洁、明晰!数据库设计三大范式应用实例剖析

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

  9. 什么是数据库的三大范式?

    数据库的三大范式(重点) 第一范式: 原子性:保证每一列不可再分. 第二范式: 前提:满足第一范式 每张表只描述一件事情. 第三范式: 前提:满足第一范式和第二范式 第三范式需要确保数据表中的每一列数 ...

最新文章

  1. python简介怎么写-python爬虫简历怎么写
  2. 我在这里,等你的故事【小废回家看看】
  3. javascript高级程序设计第3版——第6章 面向对象的程序设计
  4. LeetCode_每日一题今日份_343.整除拆分
  5. 实验6 控制结构综合程序设计 7-3 简单计算器
  6. group by 将null放到其他_为什么我不建议你用去 “ ! = null quot; 做判空?
  7. IOS遍历未知对象属性、函数
  8. [css] 怎样把一个div居中?怎样把一个浮动元素居中?怎样把绝对定位的div居中?
  9. 第一步,统一头文件的大小写
  10. spring多线程获取不到bean_刚面完的字节跳动java研发面试题整理(含答案):线程+MySQL+Spring+JVM...
  11. iptables 简介
  12. 理论物理专题讲义(量子力学与统计物理部分)
  13. Spring集成Hprose
  14. 联想笔记本桌面计算机不见了,联想电脑任务栏不见了怎么还原
  15. 【直线检测】基于LSD实现直线检测含Matlab源码
  16. (转)2018最新Web前端经典面试试题及答案
  17. OpenCV4探索学习:OpenCV-4.1.0 Samples官方示例说明
  18. 计算机网络之物理层-频带传输
  19. 邮件内容以html形式,如何以邮件的形式发送HTML文件?
  20. oracle之查询某一列是否含有英文字符

热门文章

  1. 离散度计算公式 python_被多种离散化场景困扰?8种python技巧!让数据处理更简单...
  2. 网络带宽和速度测试windows和linux iperf工具
  3. php获取form传递的变量,PHP-将变量传递给Ninja Form字段
  4. 百兆以太网传输距离_新品推荐 16+2G口百兆/千兆监控接入型非标PoE交换机!
  5. 蓝色三角_梅山!长三角唯一近海蓝色海湾成网红打卡地
  6. 数据结构实验之串二:字符串匹配
  7. 机器学习系列(5)_从白富美相亲名单看特征选择与预处理(上)
  8. 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
  9. 整理:深度学习 vs 机器学习 vs 模式识别
  10. Java8中的流操作-基本使用性能测试