关系数据库设计理论中,起核心作用的是_关系数据库设计理论主要包括

关系数据库设计理论中,起核心作用的是_关系数据库设计理论主要包括关系数据库设计理论设计一个好的关系数据库系统,关键是要设计一个好的数据库模式(数据库逻辑设计问题)数据库逻辑设计主要解决的问题关系数据库应该组织成几个关系模式关系模式中包括哪些属性“不好”的数据库设计举例:为学校设计一个关系数据库关系模式:UN(Sno,Cno,G,Sdept,MN)Sno:描述学生Sdept:描述系名MN:描述系…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

关系数据设计理论

设计一个好的关系数据库系统,关键是要设计一个好的数据库模式(数据库逻辑设计问题)

数据库逻辑设计主要解决的问题

关系数据库应该组织成几个关系模式

关系模式中包括哪些属性

“不好”的数据库设计

举例:为学校设计一个关系数据库

关系模式: UN(Sno,Cno,G,Sdept,MN)

  • Sno:描述学生
  • Sdept:描述系名
  • MN:描述系主任
  • Cno:描述课程
  • G:描述学习成绩
  • 根据对现实世界的分析,可得出:Sno,Cno是码
  • 按照关系模式UN装入部分数据

对数据库操作时,会出现以下问题

    1. 数据冗余(系主任名的存储次数)
      • 数据重复存储:浪费存储空间,数据库维护困难(更新异常)
    1. 插入异常(一个系刚成立)
      • 主码为空的记录不能存在与数据库,导致不能进行插入操作
    1. 删除异常(一个系的学生全部毕业)
      • 删除操作后,一些相关信息无法保存在数据库中

要消除以上的“弊病”,把上面的关系数据库模式分解为三个关系模式

  • S(Sno,Sdept)
  • SG(Sno,Cno,G)
  • Dept(Sdept,MN)

函数依赖

类似于变量之间的单值函数关系

Y=F(X),其中自变量X的值,决定一个唯一的函数值Y

在一个关系模式里的属性,由于它在不同元组里属性值可能不同,由此可以把关系中的属性看作变量

一个属性与另一个属性在取值上可能存在制约关系

函数依赖就是属性间的逻辑依赖关系

定义1 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集.对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称X函数决定Y,或Y函数依赖于X,记作:X Y.

X通常称为“决定因素”

几点说明

    1. 函数依赖是语义范畴的概念.它反映了一种语义完整性约束,只能根据语义来确定一个函数依赖.
    1. 函数依赖是指关系R模式的所有关系元组均应满足的约束条件,而不是关系模式中的某个或某些元组满足的约束条件
    1. 函数依赖与属性间的联系类型有关
      • (1)若属性X和Y之间有“一对一”的联系,
      • (2)若属性X和Y之间有“多对一”的联系,
      • (3)若属性X和Y之间有“多对多”的联系,
    1. 如果X Y,并且Y不是X的子集,则称X Y是非平凡的函数依赖;如果Y是X的子集,则称X Y是平凡的函数依赖;

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

完全函数依赖

部分函数依赖

码的形式定义

候选码的两个性质

    1. 标识的唯一性: 对于R(U)中的每一元组,K的值确定后,该元组就相应确定了.
    1. 无冗余性: K是属性组的情况下,K的任何一部分都不能唯一标识该元组(定义中的完全函数依赖的意义)

规范化

简介

  • 用几个简单的关系去取代原来结构复杂的关系的过程叫做关系规范化.
  • 规范化理论是研究如何把一个不好的关系模式转化为好的关系模式的理论
  • 规范化理论是E.E.Codd在1971年首先提出的
  • 规范化理论是数据库设计过程中的一个非常有用的辅助工具

范式

  • 简介
    • 规范化理论是围绕着范式建立的.
    • 满足不同程度要求的约束集则称为不同的范式.
    • 如果一个关系满足某个指定的约束集,则称它属于某个特定的范式.
    • 较高层次的范式比较低层次的范式具有“更合乎要求的性质”
    • 一个低一级范式的关系模式,通过投影运算可以转化为若干个高一级范式的关系模式的集合,这个过程叫做规范化.
    • 如果一个关系满足某个范式要求,则它也会满足较其级别低的所有范式的要求
  • 范式层次
  • 第一范式(1NF)
    • 定义5: 在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系,记作R∈1NF.
    • 数据库理论研究的是规范化关系.
    • 1NF规范化: 把非规范化关系规范提高到1NF关系模式的集合.
  • 第二范式(2NF)
    • 定义6: 若关系模式R∈1NF,且每个非主属性都完全依赖于R的任意候选码,则关系模式R属于第二范式,记作R ∈2NF.
    • 2NF规范化是把1NF关系模式规范提高到变成2NF关系模式的集合.
    • 从1NF中消除非主属性对候选码的部分函数依赖,则获得2NF关系.
    • 举例:UN(Sno,Cno,G,SDN,MN)
  • 第三范式(3NF)
    • 定义7: 若关系模式R∈2NF,且每个非主属性都不传递依赖于R的任意候选码,则R∈3NF.
    • 从2NF关系中,消除非主属性对码的传递依赖函数而获得3NF关系
    • R∈3NF,则每个非主属性既不部分依赖,也不传递依赖于R的任何候选码.
    • 3NF的规范化
  • BCNF范式
    • 3NF的不完善性
      • 定义8: 若R∈1NF,且R中每个决定因素都是候选码,则R ∈BCNF.
      • 满足BCNF的关系将消除任何属性对候选码的部分依赖与传递依赖
      • 应用BCNF定义时,可直接判断1NF是否属于BCNF
      • BCNF规范化
        这里写图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181256.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • asdsad

    asdsad这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入欢迎使用Ma…

    2022年4月27日
    50
  • matlab 实现二值图像孔洞填充函数imfill()

    matlab 实现二值图像孔洞填充函数imfill()代码如下:function[I2,locations]=imfill(varargin)[I,locations,conn,do_fillholes]=parse_inputs(varargin{:});ifdo_fillholesifislogical(I)mask=uint8(I);elsemask=I;endmask=padarray(mask,ones(1,ndims(mask)),

    2025年9月7日
    4
  • 向量函数的内积_向量的内积运算

    向量函数的内积_向量的内积运算这是我的第一篇博客,谈谈自己在读研中的一些小思考,希望能给大家的学习带来一点启发。对于函数内积,我想很多理工科的都理解,最常用的就是傅里叶变换,一个信号与很多个频率的基函数相乘,也就是信号与每个基函数做内积,求得在每个基函数上的占比,或者说是在该基函数上的投影大小,遍历全部基函数,就求得在全部基函数的占比。![在这里插入图片描述](https://img-blog.csdnimg.cn/202…

    2022年9月1日
    5
  • 微信火柴人html5小游戏,20个好玩的微信小游戏推荐!你玩过几个?「建议收藏」

    50000+游戏爱好者已加入我们!每天推荐好玩游戏!加入我们,沐沐带你发现好游戏!只有你想不到,没有我找不到的好游戏!「良心好游戏推荐」搜罗了好玩的微信小游戏大全,模拟经营游戏、恐怖游戏、消除游戏、休闲游戏、益智游戏、吃鸡游戏、烧脑游戏、解谜游戏大全、换装游戏、射击游戏、吃鸡小游戏、像素游戏一个都不少!还有游戏攻略哦!每天都会推荐好玩的小游戏。————————————————————————不知不…

    2022年4月11日
    94
  • 利用R绘制venn图(VennDiagram、eulerr、venneuler、limma)

    利用R绘制venn图(VennDiagram、eulerr、venneuler、limma)最近对利用R绘制venn图进行了一些学习。参考了网上很多资料:【R作图】在R中绘制韦恩图的几种方法和一些漂亮的venn图如何使用R来绘制韦恩图(VennDiagram)venn.diagram:MakeaVennDiagram具体包括下面三个包:limma、venneuler、VennDiagram。总的来说,三个包都有着各自的不足。下面会一一进行说明,这里先放上结论:…

    2022年7月21日
    21
  • java被电脑阻止怎么办_win10系统打开java显示应用程序已安全设置被阻止的处理方法…

    java被电脑阻止怎么办_win10系统打开java显示应用程序已安全设置被阻止的处理方法…有关win10系统打开java显示应用程序已安全设置被阻止的操作方法想必大家有所耳闻。但是能够对win10系统打开java显示应用程序已安全设置被阻止进行实际操作的人却不多。其实解决win10系统打开java显示应用程序已安全设置被阻止的问题也不是难事,小编这里提示两点:1、点击:开始-控制面板,选择查看方式为:大图标或小图标;2、双击java,选择“安全”,把“安全级别”降至“中”,点击“确定…

    2022年7月7日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号