数据库设计之 ER图、三大范式
2020-03-26 16:12:39来源:博客园 阅读 ()
数据库设计之 ER图、三大范式
ER图
Entity Relationship,实体关系图。
1、先画出所有实体,矩形圈出来
2、再画出每个实体的属性,椭圆圈出来,实体、属性之前用实线连接。为了方便找出主键,作为主键的属性可以画一条下划线。
3、标注实体之间的关联关系:一对一(1,1)、一对多(1,n),多对多(m,n)。关系用菱形表示,并在菱形2边的线上标上1、m、n这些表示2个实体之间关联关系的字符。
关联关系:
一对一,一个人只对应一张身份证,一张身份证也只对应一个人。(2个一对一)
一对多,一个用户可以拥有多个订单,一个订单只能属于一个用户。(1个一对一、1个一对多)
多对多,一个老师可以教多个学生,一个学生可以有多个老师。(2个一对多)
比如实体A、B,先把A作为1,看B是1还是多;再把B作为1,看A是1还是多。
如果2个都是一对一,那A、B就是一对一;
如果1个一对一、1个一对多,那A、B是一对多;
如果2个都是一对多,那A、B就是多对多。
数据库三大范式
数据库有8种范式(Normal Form),通常只用到前3种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
1NF 属性的原子性(不可再分)
数据库中的每一个字段都要是不可再分隔的基本
2NF 属性完全依赖于主键
一张表中的每一条记录都要是可区分的,只通过主键来区分,所以一张表必须要有一个unique字段。
第二范式建立在第一范式的基础上,满足第二范式必须要先满足第一范式。
3NF 属性不能有依赖传递(不依赖于主键之外的其它属性)
比如tb_student存储学生信息,学生成绩这个列依赖于课程,课程依赖于课程id,tb_student的主键时学生id,表中的记录只能依赖于学生id,
学生成绩不能放在tb_student中,因为放在tb_student中,这一列依赖课程id,依赖的是这张表主键(学生id)之外的列(课程id),所以要划出去单独用一张表来存储学生成绩。
第三范式建立在第二范式的基础上,满足第三范式需要先满足第二范式。
我们设计的关系型数据库要满足以上3种范式。
原文链接:https://www.cnblogs.com/chy18883701161/p/12574716.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java--反射(框架设计的灵魂)案例 2020-06-11
- Java--反射(框架设计的灵魂) 2020-06-11
- 老板让你抗住千万级流量,如何做架构设计? 2020-06-11
- 设计模式-委派/策略模式 2020-06-09
- 深入理解:设计模式中的七大设计原则 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash