数据库设计及ER模型

 

数据库设计

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

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

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

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

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

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

 

  • 1.1第一范式

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

数据库设计及ER模型_第1张图片

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

数据库设计及ER模型_第2张图片

  •  第二范式  

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

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

数据库设计及ER模型_第3张图片

  • 第三范式

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

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

 

  • 最终实现的目标

数据库设计及ER模型_第4张图片

 

E-R模型

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

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

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

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

数据库设计及ER模型_第5张图片

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

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

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

数据库设计及ER模型_第6张图片

                       数据库设计及ER模型_第7张图片

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

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

  •  

 

数据库设计及ER模型_第8张图片

 

    数据库设计及ER模型_第9张图片

 

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

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

数据库设计及ER模型_第10张图片

 

 数据库设计及ER模型_第11张图片

 

 

转载于:https://www.cnblogs.com/dayle/p/9946714.html

你可能感兴趣的:(数据库设计及ER模型)