1 / 4
文档名称:

大数据开发培训 数据库三大范式浅析.doc

格式:doc   大小:71KB   页数:4页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

大数据开发培训 数据库三大范式浅析.doc

上传人:wdggjhm62 2022/3/5 文件大小:71 KB

下载得到文件列表

大数据开发培训 数据库三大范式浅析.doc

相关文档

文档介绍

文档介绍:-
. z.
大数据开发培训 数据库三大*式浅析
为了建立冗余较小、构造合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为*式。*式是符合*一种设计要求记录都删除,则所有系与系主任的数据也就随之消失了〔一个系所有学生都没有了,并不表示这个系就没有了〕。——删除异常
-
. z.
假设李小明转系到法律系,则为了保证数据库中数据的一致性,需要修改三条记录中系与系主任的数据。——修改异常。
正因为仅符合1NF的数据库设计存在着这样那样的问题,我们需要提高设计标准,去掉导致上述四种问题的因素,使其符合更高一级的*式〔2NF〕,这就是所谓的“规*化〞。
第二*式
第二*式在第一*式的根底之上更进一层。是指2NF在1NF的根底之上,消除了非主属性对于码的局部函数依赖。
函数依赖:假设在一*表中,在属性〔或属性组〕*的值确定的情况下,必定能确定属性Y的值,则就可以说Y函数依赖于*,写作 * → Y。
表中的函数依赖关系例如:
系名 → 系主任
** → 系主任
〔**,课名〕 → 分数
但以下函数依赖关系则不成立:
** → 课名
** → 分数
课名 → 系主任
〔**,课名〕 → **
码:假设当 K 确定的情况下,该表除 K 之外的所有属性的值也就随之确定,则 K 就是码。码也可以理解为主键。
第二*式需要确保数据库表中的每一列都和主键相关,而不能只与主键的*一局部相关〔主要针对联合主键而言〕。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一*数据库表中。
比方要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键,如下表所示。
订单信息表
订单编号
商品编号
商品名称
数量
单位
价格
客户
所属单位
联系方式
001
1
挖掘机
1

1200000¥
*三
**玖智
001
2
冲击钻
8

230¥
*三
**玖智
002
3
铲车
2

980000¥
李四
公司
-
. z.
这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二*式的设计原则。
而如果把这个订单信息表进展拆分,把商品信息别离到另一个表中,把订单工程表也别离到另一个表中,就非常完美了。如下所示。
订单信息表
订单编号
客户
所属单位
联系方式
001
*三
**玖智
002
李四
公司
订单工程表
订单编号
商品编号
数量
001
1
1
001
2
8
002
3
2
 商品信息表
商品编号
商品名称
单位
商品价格
1
挖掘机

1200000¥
2
冲击钻

230¥
3
铲车

980000¥
这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商