目录

数据库-关系数据库设计

数据库-关系数据库设计

关系数据库设计理论 包括

1.数据依赖

2.范式

1NF,2NF,3NF,BCNF

3.关系模式的规范化

设计步骤

数据分析->数据建模->关系数据库模式->关系数据库管理

https://i-blog.csdnimg.cn/blog_migrate/c9bae1550277db7215346b29bfe8c1c2.png

ER模型

实体指数据对象

实体集指一类实体构成的集合

实体某一特性称为属性

一、函数依赖

关系:描述实体及其属性、实体间的联系。是一张二维表,是所涉及属性的笛卡尔积的一个子集

关系模式:用来定义关系。五元组R(U,D,DOM,F)

关系数据库:基于关系模型的数据库,利用关系来描述现实世界。

关系数据库的模式:定义这组关系的关系模式的全体。

关系模式

https://i-blog.csdnimg.cn/blog_migrate/19bcb63a1d9293490ad1be5c97d771f8.png

数据依赖

https://i-blog.csdnimg.cn/blog_migrate/a99f9602ee74a7c0ca07e948325d97ce.png

https://i-blog.csdnimg.cn/blog_migrate/bcf096331ef708a8ce3f940b9dbf5162.png

数据依赖的主要类型:函数依赖FD、多值依赖MVD、连接依赖

关系模式的简化表示

https://i-blog.csdnimg.cn/blog_migrate/6299ada76f75a44e2a709d495087d0f6.png

数据依赖对关系模式的影响

https://i-blog.csdnimg.cn/blog_migrate/d2837b0060236c0fc11b427e9768840f.png

https://i-blog.csdnimg.cn/blog_migrate/adeb2045132e9822fcf17ce9eef7cdb9.png

规范化理论

https://i-blog.csdnimg.cn/blog_migrate/c47956b01499527fa4d6f9238ac1bc5c.png

定义

函数依赖

https://i-blog.csdnimg.cn/blog_migrate/da047bc54a92309608f73e370e62a211.png

一对一

https://i-blog.csdnimg.cn/blog_migrate/99c70c369fea51a16afe5a7011644219.png

平凡函数依赖,非平凡函数依赖       Y是否含于X

https://i-blog.csdnimg.cn/blog_migrate/fe051d30a944f1aa3005a1e66b7a1279.png

完全函数依赖,部分函数依赖

https://i-blog.csdnimg.cn/blog_migrate/9d14a8b968682ca977f8cd6437f555d1.png

https://i-blog.csdnimg.cn/blog_migrate/97f4a9560a262f7144501dbbbfbfc45a.png

传递函数依赖

https://i-blog.csdnimg.cn/blog_migrate/ff6ea0bb4e9a9ca73cb18d654ac22d51.png

https://i-blog.csdnimg.cn/blog_migrate/81430b7379da991b6dca5344bb0f222d.png

【候选码的求解理论和算法】

对于给定的关系R(A1,A2,…An)和函数依赖集F,可将其属性分为4类:

L类  仅出现在函数依赖左部的属性。

R 类  仅出现在函数依赖右部的属性。

N 类  在函数依赖左右两边均未出现的属性。

LR类  在函数依赖左右两边均出现的属性。

二、范式

https://i-blog.csdnimg.cn/blog_migrate/cc82d93a8a43401b53c209d60450ddfb.png

第一范式

第一范式是指数据库的每一列都是不可分割的基本数据项

第一范式是对关系模式的最基本的要求     例

https://i-blog.csdnimg.cn/blog_migrate/70dd528475214b7997267e3d73890af2.png

第二范式

第二范式建立在第一范式的基础上,即满足第二范式一定满足第一范式,第二范式要求数据表每一个实例或者行必须被唯一标识。除满足第一范式外还有两个条件,一是表必须有一个主键;二是没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分。

每一行的数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来。

https://i-blog.csdnimg.cn/blog_migrate/8d46499f25d511090a9b8fcfdeabdb81.png

https://i-blog.csdnimg.cn/blog_migrate/173a77a491c777319fc67ec4992fa12c.png

第三范式

某一范式是第二范式,且每一个非主属性都不传递依赖于该范式的候选键

https://i-blog.csdnimg.cn/blog_migrate/b7a83ff17d7579133fb3b3d7d0285804.png

https://i-blog.csdnimg.cn/blog_migrate/d51d45db934e7499423ab9e2cd0cf5de.png

https://i-blog.csdnimg.cn/blog_migrate/a45fd97458f73a54e3c1d00416c4d061.png

BC 范式(BCNF)

在第三范式的基础上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合第三范式。

(1)所有非主属性对每一个码都是完全函数依赖;

(2)所有的主属性对于每一个不包含它的码,也是完全函数依赖;

(3)没有任何属性完全函数依赖于非码的任意一个组合。

https://i-blog.csdnimg.cn/blog_migrate/54b121dae96f58d8c110b00a1fa09b21.png

https://i-blog.csdnimg.cn/blog_migrate/a4fbd3e59e7e5a2cfc165fb0ea9d8967.png

3NF与BCNF的关系

如果关系模式R∈BCNF,必定有R∈3NF

如果R∈3NF,且R只有一个候选码,则R必属于BCNF

3NF与BCNF的区别与联系:当3NF的码只有一个主属性时,其就是BCNF范式

三、关系模式的规范化

1.关系模式规范化的步骤

https://i-blog.csdnimg.cn/blog_migrate/d7c7ff69cccdbb2ce7f4bf96dd912ae4.png

https://i-blog.csdnimg.cn/blog_migrate/f5590b0e695a3e5a7f12df01bc1e25dd.png

2.关系模式的分解

模式分解特性的四种情况:

1)既不具有无损连接性,又不具有函数依赖的保持性。(不可取的分解)

2)具有无损连接性。

3)具有函数依赖的保持性。

4)既具有无损连接性,又具有函数依赖的保持性 。(最好的分解特性)

https://i-blog.csdnimg.cn/blog_migrate/9bf498b1d91e16f5917f41eb40198cb3.png

https://i-blog.csdnimg.cn/blog_migrate/92bedae28ff0a38bf0ec696774ab3413.png

https://i-blog.csdnimg.cn/blog_migrate/8b8848c36d23d0ee2dd791d7507aff59.png

小结  并不是规范化程度越高,模式就越好