范式理论关系规范化.ppt

上传人:za****8 文档编号:6234808 上传时间:2020-02-20 格式:PPT 页数:43 大小:212.94KB
返回 下载 相关 举报
范式理论关系规范化.ppt_第1页
第1页 / 共43页
范式理论关系规范化.ppt_第2页
第2页 / 共43页
范式理论关系规范化.ppt_第3页
第3页 / 共43页
点击查看更多>>
资源描述
第4章范式理论 本章内容 关系模式的设计问题函数依赖范式模式分解作业 关系模式的设计问题 问题针对一个具体问题或一个项目 应该如何构造一个适合于它的数据模式 即应该构造几个关系模式 每个关系模式又由哪些属性组成等 这是数据库的设计问题 确切的讲 是关系数据库的逻辑设计问题 关系模式的设计问题 示例考虑为管理职工的工资信息而设计一个关系模式 假设三列都有非空的约束 且工资级别决定工资 关系模式的设计问题 问题 1 信息的不可表示问题插入异常 如果没有职工具有8级工资 则8级工资的工资数额就难以插入删除异常 如果仅有职工赵明具有4级工资 如果将赵明删除 则有关4级工资的工资数额信息也随之删除了2 信息的冗余问题数据冗余 职工很多 工资级别有限 每一级别的工资数额反复存储多次更新异常 如果将5级工资的工资数额调为620 则需要找到每个具有5级工资的职工 逐一修改 关系模式的设计问题 解决之道 分解 分解 再分解 关系模式的设计问题 有关学生的关系模式S Sno SName Sdept DEAN Cno Grade 主码是什么 存在哪些问题 望闻问切 四种异常 不良的数据依赖 不良特性插入异常 如果学生没有选课 关于他的个人信息及所在系的信息就无法插入删除异常 如果删除学生的选课信息 则有关他的个人信息及所在系的信息也随之删除了更新异常 如果学生转系 若他选修了k门课 则需要修改k次数据冗余 如果一个学生选修了k门课 则有关他的所在系的信息重复 4 1函数依赖 4 1 1函数依赖基本概念4 1 2一些术语和符号4 1 3为什么要讨论函数依赖 4 1函数依赖 函数依赖原始概念函数公式 Y f X 表示X和Y之间在数量上的对应关系 即给定一个X值 都会有一个Y值和它对应 也可以说X函数决定Y 或Y函数依赖于X 而在关系数据库中讨论函数或函数依赖注重的是语义上的关系 比如 省 f 城市 如果 城市 是自变量X 则 省 是因变量或函数值Y 并且把X函数决定Y 或Y函数依赖于X表示为 X Y 概念 关系模式一个关系的属性名的集合R A1 A2 An 叫做关系模式 其中 R为关系名 A1 A2 An为属性名 i 1 2 n 由定义可以看出 关系模式是关系的框架 或者称为表框架 指出了关系由哪些属性构成 是对关系结构的描述 函数依赖 函数依赖 函数依赖基本概念定义 如果有一个关系模式R A1 A2 An X和Y为 A1 A2 An 的子集 那么对于关系R中的任意一个X值 都只有一个Y值与之对应 则称X函数决定Y 或Y函数依赖于X 记作X Y 例如 对学生关系模式 Student Sno Sname Sdept Sage 有 Sno SName Sno Sdept Sno Sage对学生选课关系模式 SC Sno Cno Grade 有 Sno Cno Grade 函数依赖 函数依赖基本概念术语 设关系模式为R A1 A2 An 它的一个关系为R t R表示t是R的一个元组 t Ai 则表示元组t中相应于属性Ai的一个分量 若A Ai1 Ai2 Aik 其中Ai1 Ai2 Aik是A1 A2 An中的一部分 则A称为属性列或域列 t A t Ai1 t Ai2 t Aik 表示元组t在属性列A上诸分量的集合 函数依赖 函数依赖基本概念形式化定义 设R U 是属性集U上的关系模式 X Y U r是R U 上的任意一个关系 如果对 t s r 若t X s X 则t Y s Y 成立那么称 X函数决定Y 或 Y函数依赖于X 记作X Y 称X为决定因子 练习 检验 A C C A A B D 找出可能的函数依赖 练习 函数依赖 有关学生的关系模式S Sno SName Sdept DEAN Cno Grade 找出S中存在的函数依赖 平凡函数依赖如果X Y 但Y X 则称其为非平凡的函数依赖 否则称为平凡的函数依赖如 Sno SName SName是平凡的函数依赖 函数依赖 完全函数依赖 部分函数依赖在R U 中 如果X Y 且对于任意X的真子集X 都有则称Y对X完全函数依赖 记作否则称为Y对X部分函数依赖 记作 XY XY 函数依赖 找出S中存在的部分函数依赖 传递函数依赖在R U 中 如果则称Z对X传递函数依赖 记作X Y如 Sno SDept SDept DEAN则Sno DEAN 函数依赖 t t 职工工资表 找出职工工资表中的传递函数依赖 函数依赖 示例 有关系模式 SC Sno Sname Deptno Deptname Cno Cname Grade 其中函数依赖关系有 函数依赖 为什么要讨论函数依赖 见书P82 解决关系模式中存在的如下问题数据冗余问题数据更新问题数据插入问题数据删除问题 4 2关系规范化 4 2 1关系模式中的码4 2 2范式 关系模式中的码 设U表示关系模式R的属性全集 即U A1 A2 An 用F表示关系模式R上的函数依赖集 则关系模式R可表示为R U F 关系模式中的码 1 候选码设K为R U F 中的属性或属性组 若K U 则K为R候选码 K为决定R全部属性值的最小属性组 主码 关系R U F 中可能有多个候选码 则选其中一个作为主码全码 候选码为整个属性组 主属性与非主属性 在R U F 中 包含在任一候选码中的属性称为主属性 不包含在任一候选码中的属性称为非主属性 f 关系模式中的码 其关系模式为R P W A 其中各属性含义分别为 演奏者 performance 作品 works 和听众 audience 例1 SC Sno Cno Grade 其候选码为 Sno Cno 也为主码则主属性为 Sno Cno Grade为非主属性 例2 有如下语义 一个演奏者可演奏多个作品 某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品 其候选码为 P W A 因为只有这三者才能确定一场音乐会 我们称全部属性均为主码的表为全码表 关系模式S Sno SName SDept DEAN Cno Grade 主码 函数依赖 关系模式中的码 函数依赖 Sno Cno GradeSno SName Sno Cno SNameSno SDept Sno Cno SDeptSDept DEAN 关系模式中的码 2 外码定义 若R U F 的属性 组 X X属于U 是另一个关系S的主码 则称X为R的外码 例 SC中的Sno是Student关系的主码 Cno是Course关系的主码 所以SC中的Sno和Cno是SC表的外码 范式 定义范式是对关系的不同数据依赖程度的要求 通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化 范式 1 第一范式定义 不包含重复组的关系 即不包含非原子项的属性 例 范式 分量是否需要再分 与具体应用有关 如果用到值的一部分 则需要进一步分割 如 范式 如果只是查询出生日期 则它满足1NF如果查询两人生日是否相同 则只比较月 日 需要将生日分解 就不满足1NF 2 第二范式定义 如果R U F 1NF 并且R中的每个非主属性都完全函数依赖于主码 则R U F 2NF 范式 分析 因为 Sno Cno 是主码 所以 Sno Cno Sdept但又有 Sno Sdept 因此有 Sno Cno Sdept所以关系S不是2NF的 P 例 关系S Sno Sname Sdept DEAN Cno Grade 是否2NF 将S分解为满足2NF的表格分解过程为 1 首先 对于组成主码的属性集合的每一个子集 用它作为主码构成一个表 SC Sno Cno S2 Sno C2 Cno 范式 2 对于每个表 将依赖于此主码的属性放置到此表中 SC Sno Cno Grade S2 Sno Sname Sdept DEAN 3 若没有属性依赖于该主码 则将该子表删除 删除C2表S分解后的表为 SC Sno Cno Grade S2 Sno Sname Sdept DEAN 首先 在这个关系模式中 描述多少个学生就会重复描述该学生所在系的系主任 因此还存在数据冗余 其次 当新组建一个系时 如果此系还没有招收学生 但已分配了系主任 则无法将此系的信息插入到数据库中 因为这时的学号为空 这是插入异常 由此我们看到第二范式的表同样还可能存在操作异常情况 因此我们需要对此关系模式做进一步的分解 范式 继续分析 先讨论S2表 看是否还存在问题 3 第三范式定义 如果R U F 1NF 并且所有非主属性都不传递依赖于主码 则R U F 3NF 对关系模式S2 Sno Sname Sdept DEAN 因为有 Sno Sdept Sdept DEAN因此有 Sno DEAN因此 不是3NF的关系模式 而对于关系模式SC Sno Cno Grade 经分析可知其满足3NF 范式 传递 将S2由2NF分解为3NF的过程 1 对于不是候选码的每个决定因子 从表中删去依赖于它的所有属性 决定因子Sdept不是候选码 则从表中删去依赖于Sdept的属性DEAN 得到表S21 Sno Sname Sdept 范式 2 新建一个表 新表中包含在原表中所有依赖于该决定因子的属性 得到表S22 Sdept DEAN 3 将决定因子作为新表的主码 因此 非规范的关系模式S Sno Sname Sdept DEAN Cno Grade 最终分解为 SC Sno Cno Grade S21 Sno Sname Sdept S22 Sdept DEAN 通常在数据库设计中 关系模式一般要求达到3NF 范式 关系模式的分解准则 模式分解满足条件 模式分解具有无损连接性 模式分解能够保持函数依赖 无损连接是指分解后的关系通过自然连接可以恢复成原来的关系 即通过自然连接得到的关系与原来的关系相比 既不多出信息 又不丢失信息 保持函数依赖分解是指在模式的分解过程中 函数依赖不能丢失的特性 即模式分解不能破坏原来的语义 作业 如图所示的关系R 1 是第几范式 为什么 2 是否存在删除操作异常 若存在 具体说明 3 将它分解为高一级范式
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!