MySQL3-关系和范式
来源:互联网 发布:最强网络神豪80txt下载 编辑:程序博客网 时间:2024/05/21 11:03
1.关系
数据库设计,需同时考虑实体设计(数据表)和实体间的关系设计。
1.一对一
一张表中的一条记录一定只能与另一张表中的一条记录对应。用具有唯一性的字段来关联两张表。
数据可以合并到同一张表中。
例如,人与身份证号。
2.一对多
一张表中的一条记录可以对应另一张表中的多条记录,但第二张表中的一条记录只能对应第一张表中的一条记录。需要在第二张表中增加字段关联第一张表。
例如,人与银行卡。
3.多对多
一张表中的一条记录可以对应另一张表中的多条记录,同时第二张表中的一条记录也能对应第一张表中的多条记录。需要增加一个表,维护两张实体表之间的关系。中间表与两张实体表都是一对多的关系。
例如,朋友关系,老师和学生,订单与商品。
2.范式
范式(Normal Format)用于解决数据的存储与优化,防止冗余,从而节省空间。
范式是分层结构,从1NF,2NF直到6NF。1NF要求最低,每一层都比上一层更严格。要满足下一层范式必须实现上一层范式。数据库通常用前三种范式。
1.第一范式1NF:字段具有原子性
数据不可拆分,取出后可以直接用,不需要再处理,对应字段就具有原子性。
2.第二范式2NF:表中有复合主键时,表中字段不能出现部分依赖
数据表中有复合主键时,如果表中有字段不是由整个主键确定,则出现部分依赖。此时应将部分依赖的字段拆分成单独的数据表,最终保证表中所有字段全部由复合主键确定;或者取消复合主键,增加一个逻辑主键(为数据表增加ID字段)。
3.第三范式3NF:一张表中的所有字段都直接依赖主键(业务主键而非逻辑主键)
传递依赖:表中的某个字段不是直接依赖主键,而是通过某个非主键字段依赖,最终实现依赖主键。
如果有字段存在传递依赖,需要将这些字段取出到单独的表。
4.逆规范化:一张表提供所有的经常同时查询的数据,而不是去多表查询。
优点:查询速度快。
缺点:数据冗余,浪费空间。
0 0
- MySQL3-关系和范式
- 关系数据模型和范式
- 关系数据库和范式
- MySQL 关系和范式
- MySQL3
- 在Linux下安装和使用MySQL3
- 关系范式
- 关系模型 几大范式和术语的解释
- 数据库——(6)关系和范式
- 范式和反范式
- 关系数据库范式
- 关系数据库的范式
- 关系数据库的范式
- 关系数据库的范式
- 关系数据库之范式
- 关系数据库的范式
- 关系数据库3范式
- 关系数据库范式
- crt格式证书转pem格式证书
- PyCharm 2016破解
- error : 未能加载项目文件。名称不能以“<”字符(十六进制值 0x3C)开头。
- java的html解析器——Jsoup详解
- 笔记(4月30日)
- MySQL3-关系和范式
- 浅谈 mvc、mvp
- struts2关于session设置和接收
- C#设计模式(17)——观察者模式(Observer Pattern)
- Easy-12
- 创业者的福音
- 一次spark任务优化
- CGLib动态代理原理及实现
- description方法