数据库设计及ER模型

Posted dayle

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库设计及ER模型相关的知识,希望对你有一定的参考价值。

 

数据库设计

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

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

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

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

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

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

 

  • 1.1第一范式

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

技术分享图片

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

技术分享图片

  •  第二范式  

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

技术分享图片

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

技术分享图片

  • 第三范式

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

技术分享图片

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

技术分享图片

 

  • 最终实现的目标

技术分享图片

 

E-R模型

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

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

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

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

技术分享图片

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

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

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

技术分享图片

                       技术分享图片

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

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

  •  

 

技术分享图片

 

    技术分享图片

 

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

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

技术分享图片

 

 技术分享图片

 

 

以上是关于数据库设计及ER模型的主要内容,如果未能解决你的问题,请参考以下文章

MySQL高级--10--ER模型数据表的设计原则 数据库对象编写建议

第六章 数据库设计之ER模型

数据库设计与 ER 模型 - 数据库系统原理

数据库设计系列之四--ER图

ER图和概念数据模型的关系

数据库模型图和ER图区别是啥?