非常详细的范式讲解(1NF/2NF/3NF/BCNF)|编程一对一教学(上)

简介: 范式在计算机方面运用广泛,在计算机二级三级均涉及到,今天就来讲讲范式。要是能够认真的看完,相信一定能够理解的。

在讲范式之前,我们先来了解有关范式的基本概念,听懂了有利于后面的学习。


1. 函数依赖


首先一个好的关系模式是不会出现以下问题的:

  1. 插入异常
  2. 删除异常
  3. 更新异常
  4. 数据冗余尽量少

如果出现那是由于 数据依赖,其中数据依赖分为:函数依赖,多值依赖,连接依赖等等。


所以,当关系模式出现问题,解决方法为—— 规范化理论(找到关系模式中不适合的数据依赖,并消除它们)


在范式这里经常使用函数依赖。那么什么是函数依赖呢?关系R中的属性 X,R 中的属性 Y 只有唯一值与之对应,则称 X 函数决定 Y 或称 Y 函数依赖于 X ,记作 X—>Y 。其中,X 称为决定因素。以下关系模型经常简化为 R<U,F>,如下图。

7.png

这里给出一个例子,后面就根据这个例子来讲解。

非常主要

8.png在函数依赖中还有以下几种分类:


1.1 平凡函数依赖和非平凡函数依赖


(1)X→YY∉X,则 X→Y 是非平凡函数依赖。例如 (sno,cno)→grade

(2)X→YY∈X,则X→Y 是平凡函数依赖。例如 (sno,cno)→sno(sno,cno)→cno


1.2 完全函数依赖和部分函数依赖


(1)X→Y,在 x 的真子集 X'Y 均不依赖于 X',则称 Y 完全函数依赖于 X。在箭头上面加上 F。

(2)X→Y,在 x 的真子集X',Y存在依赖于X',则称Y完全函数依赖于 X。在箭头上面加上 P。

例如以下的例子

9.png

1.3 传递函数依赖


X→YY→Z 所以 X→Z,Z 传递函数依赖于 X。

例如,sno→sdeptsdept→sloc,所以 sno→sloc







目录
打赏
0
0
0
0
0
分享
相关文章
1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖(最详细的讲解1NF、2NF、3NF的关系)
这篇文章详细讲解了数据库范式中的1NF、2NF和3NF,包括它们的定义、区分方法和如何判断部分函数依赖和传递函数依赖,以及如何将数据表规范化到相应的范式。
1NF | 2NF | 3NF的区分以及什么是函数依赖、部分函数依赖、值传递依赖(最详细的讲解1NF、2NF、3NF的关系)
数据库系统概论——函数依赖、码和范式(1NF、2NF、3NF、BCNF)详解
关系模式由五部分组成,即它是一个五元组: R(U,D,DOM,F)R(U, D, DOM, F)R(U,D,DOM,F)关系模式R(U,D,DOM,F)R(U, D, DOM, F)R(U,D,DOM,F)中,DDD和DOMDOMDOM与逻辑结构设计关系不大,因此,将关系模式简化为一个三元组:当且仅当UUU上的一个关系rrr 满足FFF时,rrr称为关系模式R(U,F)R(U, F)R(U,F)的一个。设R(U)R(U)R(U)是一个属性集UUU上的关系模式,XXX和YYY是UUU的子集。若对于R(U)R(
530 0
数据库系统概论——函数依赖、码和范式(1NF、2NF、3NF、BCNF)详解
非常详细的范式讲解(1NF/2NF/3NF/BCNF)|编程一对一教学(下)
范式在计算机方面运用广泛,在计算机二级三级均涉及到,今天就来讲讲范式。要是能够认真的看完,相信一定能够理解的。 在讲范式之前,我们先来了解有关范式的基本概念,听懂了有利于后面的学习。
1071 0
非常详细的范式讲解(1NF/2NF/3NF/BCNF)|编程一对一教学(下)
非常详细的范式讲解(1NF/2NF/3NF/BCNF)|编程一对一教学(中)
范式在计算机方面运用广泛,在计算机二级三级均涉及到,今天就来讲讲范式。要是能够认真的看完,相信一定能够理解的。 在讲范式之前,我们先来了解有关范式的基本概念,听懂了有利于后面的学习。
179 0
C#中的语言特性“.NET研究”都是从何而来?
  前几天推荐一个同事用“可选参数”,推荐完了我还画蛇添足的说这是.Net 4中的新特性。但是事后才发现这个新特性是C# 4.0的语言特性,与.Net 4无关。其实也不只这一次,我平时也经常把语言、框架、运行时,有时甚至还有开发工具混为一谈。
1227 0
C# 中奇妙的函数之ToL“.NET研究”ookup
  我将和大家一起来学学C#中上海闵行企业网站设计与制作一些非常有用函数,对于有些人来说可能它们不起眼,因此常常忽略它们。它们不会嚷嚷到:使用我吧!我会让你节省很多的时间,而且让你的代码变得更加的简洁! -- 但是,这些话会从对它们熟悉的程序员的脑海中涌现出来。
971 0
MEF——.NET中值“.NET研究”得体验的精妙设计
  MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。
886 0
C# 中奇妙的函数--联接序列的五种“.NET研究”简单方法
  今天我们来看看5种使用Linq函数联接序列的方法,这5种方法可以归入下列两类:   同类的联接   Concat()   Union()   不同类的联接   Zip()   Join()   GroupJoin()   Concat() – 串联序列   最简单的序列合并,concat仅仅是将第二个序列接在第一个序列后面, 注意:返回的序列并没有改变原来元素的顺序: 1.
1004 0
VS201“.NET研究”0实践RUP4+1架构模型
  RUP4+1架构方法   RUP4+1上海企业网站设计与制作架构方法采用用例驱动,在软件生命周期的各个阶段对软件进行建模,从不同视角对系统进行解读,从而形成统一软件过程架构描述.                   图 1. RUP4+1架构图   用例视图(Use Cases View),最初称为场景视图,关注最终用户需求,为整个技术架构的上线文环境.通常用UML用例图和活动图描述。
1157 0
一起谈.NET技术,C#中的语言特性都是从何而来?
  前几天推荐一个同事用“可选参数”,推荐完了我还画蛇添足的说这是.Net 4中的新特性。但是事后才发现这个新特性是C# 4.0的语言特性,与.Net 4无关。其实也不只这一次,我平时也经常把语言、框架、运行时,有时甚至还有开发工具混为一谈。
1011 0