码迷,mamicode.com
首页 > 数据库 > 详细

数据库设计及ER模型

时间:2018-11-12 17:29:31      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:联系   学生   fan   .com   gson   gb2312   第三范式   数据   之间   

 

数据库设计

1.第一范式(确保每列保持原子性)

基本的范式,保证数据库表中的所有字段都不可再分解。

2.第二范式(确保表中的每列都和主键相关)

在第一范式的基础上,第二范式需要表中的每一个字段都和主键相关,也就是说只能存在一种类型的数据。不可把多种类型数据放在一个表中。

3.第三范式(确保每列都和主键列直接相关,而不是间接相关)

在满足前两个范式的基础上,第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

 

  • 1.1第一范式

错误:表中的字段还可以再次分解,再拆。

技术分享图片

正确:表中字段不可以再分解。

技术分享图片

  •  第二范式  

错误:表中订单号和商品id是主键,表中的字段没有和所有主键关联,再拆分

技术分享图片

正确:表中的无关联的字段重新创建表,每一个表中的所有字段都和主键相关联

技术分享图片

  • 第三范式

错误:表中的客户信息和商品信息无直接关联,再拆

技术分享图片

 再拆:将间接关联的信息再创建表,每个表的字段信息都是直接关联的

技术分享图片

 

  • 最终实现的目标

技术分享图片

 

E-R模型

E-R模型的基本元素是:实体、联系和属性

  • 实体:现实生活中任何可以被认知,区分的事物。

  • 联系:实体之间的关系,可以一点一,一对多哟,多对多。

  • 属性:实体的某一特性称为属性。

技术分享图片

关系也是一种数据,需要通过一个字段存储在表中

1、一对一:一对一关系是最好理解的一种关系,主键可以设置为在两个表中的任意一个表

在数据库建表的时候可以将人表的主键放置与身份证表里面,也可以将身份证表的主键放置于人表里面

技术分享图片

                       技术分享图片

2、一对多:主键应存放在多的表中

1端是父亲,多端是儿子,所以多端具有1端的属性,也就是说多端里面应该放置1端的主键,那么学生表里面应该放置班级表里面的主键

  •  

 

技术分享图片

 

    技术分享图片

 

3、多对多:新建一张表C,这个表只有两个字段,一个用于存储A的主键值,一个用于存储B的主键值

对于多对多关系,需要转换成1对多关系,那么就需要一张中间表来转换,这张中间表里面需要存放学生表里面的主键和课程表里面的主键,此时学生与中间表示1对多关系,课程与中间表是1对多关系,学生与课程是多对多关系

技术分享图片

 

 技术分享图片

 

 

数据库设计及ER模型

标签:联系   学生   fan   .com   gson   gb2312   第三范式   数据   之间   

原文地址:https://www.cnblogs.com/dayle/p/9946714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!