数据库的三大范式以及五大约束
实体:表; 属性:表中的数据(字段); 关系:表与表之间的关系;
数据库设计三大范式(重点):
第一范式(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
数据库的三大范式以及五大约束相关推荐
- mysql数据库五大对象_数据库的三大范式以及五大约束
实体:表: 属性:表中的数据(字段): 关系:表与表之间的关系: 数据库设计三大范式(重点): 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 例 ...
- 数据库的三大范式和五大约束(转)
一.三大范式: 1. 第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性: 2. 第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键, ...
- 数据库三大范式及五大约束
数据库的三大范式以及五大约束 数 据 库 今天小 ...
- RDBMS-数据库三大范式、五大约束的通俗解释
一范式就是属性不可分割.属性是什么?就是表中的字段. 不可分割的意思就按字面理解就是最小单位,不能再分成更小单位了. 这个字段只能是一个值,不能被拆分成多个字段,否则的话,它就是可分割的,就不符合一范 ...
- Mysql 数据库设置三大范式 数据库五大约束 数据库基础配置
数据库设置三大范式 1.第一范式(确保每列保持原子性) 第一范式是最基本的范式.如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库满足第一范式. 第一范式的合理遵循需要根据系统给的实际需求 ...
- 2017年10月21日 数据库基础三大范式
1. 数据库里面常用 int 整型 nvarchar 字符串 float 小数型 decimal(,) 小数型 money 小数型 datetime 时间类 ...
- 学习数据库的三大范式
学习数据库的三大范式 第一范式:确保每列的原子性 如果每列(或者每个属性)都是不可再分的最小的数据单元(也称最小的原子单元),则满足第一范式. 第二范式:在第一范式的基础上,确保每列都和主键相关 如果 ...
- (转载)简洁、明晰!数据库设计三大范式应用实例剖析
(转载http://bbs.database.ccidnet.com/read.php?tid=325895) 简洁.明晰!数据库设计三大范式应用实例剖析 引言OL~eR{q ;iC,$vZ 0} ...
- 什么是数据库的三大范式?
数据库的三大范式(重点) 第一范式: 原子性:保证每一列不可再分. 第二范式: 前提:满足第一范式 每张表只描述一件事情. 第三范式: 前提:满足第一范式和第二范式 第三范式需要确保数据表中的每一列数 ...
最新文章
- python简介怎么写-python爬虫简历怎么写
- 我在这里,等你的故事【小废回家看看】
- javascript高级程序设计第3版——第6章 面向对象的程序设计
- LeetCode_每日一题今日份_343.整除拆分
- 实验6 控制结构综合程序设计 7-3 简单计算器
- group by 将null放到其他_为什么我不建议你用去 “ ! = null quot; 做判空?
- IOS遍历未知对象属性、函数
- [css] 怎样把一个div居中?怎样把一个浮动元素居中?怎样把绝对定位的div居中?
- 第一步,统一头文件的大小写
- spring多线程获取不到bean_刚面完的字节跳动java研发面试题整理(含答案):线程+MySQL+Spring+JVM...
- iptables 简介
- 理论物理专题讲义(量子力学与统计物理部分)
- Spring集成Hprose
- 联想笔记本桌面计算机不见了,联想电脑任务栏不见了怎么还原
- 【直线检测】基于LSD实现直线检测含Matlab源码
- (转)2018最新Web前端经典面试试题及答案
- OpenCV4探索学习:OpenCV-4.1.0 Samples官方示例说明
- 计算机网络之物理层-频带传输
- 邮件内容以html形式,如何以邮件的形式发送HTML文件?
- oracle之查询某一列是否含有英文字符
热门文章
- 离散度计算公式 python_被多种离散化场景困扰?8种python技巧!让数据处理更简单...
- 网络带宽和速度测试windows和linux iperf工具
- php获取form传递的变量,PHP-将变量传递给Ninja Form字段
- 百兆以太网传输距离_新品推荐 16+2G口百兆/千兆监控接入型非标PoE交换机!
- 蓝色三角_梅山!长三角唯一近海蓝色海湾成网红打卡地
- 数据结构实验之串二:字符串匹配
- 机器学习系列(5)_从白富美相亲名单看特征选择与预处理(上)
- 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
- 整理:深度学习 vs 机器学习 vs 模式识别
- Java8中的流操作-基本使用性能测试