MySQL_11_范式优化

@

范式优化

概念

主码:从一个关系中的候选码选出一个作为主码

候选码:表中的某个属性或/属性组可以唯一确定一个元组

1)一个关系表中可以有多个候选码,但只能有一个主码


数据字典:系统中各类数据描述的集合,用于存储和检索各种数据描述

数据字典 意义
数据项 数据的最小单位(不可再分的数据单位)
组成:数据项名,数据项含义说明,别名,数据类型,长度
数据结构 数据之间的组合关系 (一个数据结果可以由若干数据项(数据结构)组成)
组成:数据结构名,含义说明,数据组成(数据项/数据结构)
数据流 可以是数据项,也可以是数据结构
组成:数据流名,说明,数据流来源,数据流去向,数据组成
数据存储 处理过程中要存储的数据(手工文档或计算机文档)
组成:数据存储名,说明,编号, 输入的数据流,输出的数据流,数据组成
处理过程 处理逻辑一般用判定表或判定树来描述
过程:处理过程名,说明,输入数据流,输出数据流,处理说明

1)实体:客观存在、可相互区分的现实世界对象的集合

2)属性:实体所具有的某一特性(有“型”和“值”之分)

3)联系:实体内部的联系(组成实体的各属性之间的联系)

实体之间的联系(不同实体型之间的联系)

4)码(键):唯一标识实体的属性集

5):属性的取值范围

//联系分为:一对一、一对多、多对多(且联系也可以具有属性)

//实例:实体中每个具体的记录值


图形方式表示各个概念:
在这里插入图片描述


关系模型

关系模型关系名(属性1,属性2,······属性N)

1)关系:一张表

2)元组:表中的一行

3)属性:表中的一列

4)分量:元组的一个属性值

5)域:属性的取值范围


关系的每一个分量必须是一个不可分的数据项(表中不能还有表),关系模型的三类完整性:

1)实体完整性(行完整性):主要依赖主码约束实行;

2)参照完整性:主要依赖外码约束实现(属于表间规则,涉及表之间的参照);

3)用户定义的完整性


E-R图

E-R图转换成关系模式:

  1. 一个一对一联系转换为一个关系模式

  2. 转换为一个独立的关系模式

    关系的属性:与该联系相连的各实体的码以及联系本身的属性

    关系的候选码:每个实体的码均是该关系的候选码

  3. 与某一端对应的关系模式合并

    合并后关系的属性:加入另一端实体的码和联系本身的属性

    合并后关系的码:不变

  4. 一个一对多联系转换为一个关系模式

  5. 转换为一个独立的关系模式

    关系的属性:与该联系相连的各实体的码以及联系本身的属性

    关系的码:N端实体的码

  6. 与N端对应的关系模式合并

    合并后关系的属性:在N端对应的关系模式中加入1端关系的码和联系本身的属性

    合并后关系的码:不变

  7. 一个多对多联系转换为一个关系模式

    关系的属性:与该联系相连的各实体的码以及本身的属性

    关系的码:各实体码的组合


数据依赖

用规范化理论改造关系模式,消除其中不合适的数据依赖

R(U,D,dom,F)

1)R:关系名;

2)U:属性集合;

3)D:属性来自的域;

4)dom:属性向域的映射;

5)F:属性间数据的依赖关系


数据依赖:关系内部属性与属性之间的一种约束关系

1)完整性约束的一种表现形式


依赖分为:函数依赖(FD)和多值依赖(MVD)

1)不合适的数据依赖会导致关系模型的异常


不平凡函数依赖:X→Y,且Y不是X的子集

1)反之为平凡函数依赖


完全函数依赖(F表示):(X,Z)→Y,且X和Z都不能单独确定Y

1)反之为部分函数依赖(P表示)


传递函数依赖:X→Z,Z→Y,则X→Y

1)之为直接依赖函数


范式

主属性:包含在任何候选码中的属性

非主属性:不包含在任何候选码中属性(全码没有非主属性)


范式:符合某一种级别的关系模式的集合

第一范式(1NF):所有属性都是不可分割的基本数据项

第二范式(2NF):每一个非主属性完全函数依赖于码

第三范式(3NF):不存在传递函数依赖于码

BC范式(BCNF):每个非平凡函数依赖的决定因素都含码

第四范式(4NF):不允许有非平凡且非函数依赖的多值依赖

第五范式(5NF):关系模式R中的每一个连接依赖均由R的候选码所隐含

1)2NF∈1NF,3NF∈2NF(以此类推,1NF是最大的范式)

2)范式间的转化:低→高(分解),高→低(连接)

3)分解要具有无损连接性

posted @ 2022-05-05 13:31  爱和可乐的w  阅读(102)  评论(0编辑  收藏  举报