数据库 - 关系模式函数依赖

关系数据库逻辑设计

针对具体问题,如何构造一个适合于它的数据模式

数据库逻辑设计的工具──关系数据库的规范化理论

关系模式由五部分组成,即它是一个五元组:

                    R(U, D, DOM, F)
R:      关系名
U:       组成该关系的属性名集合
D:       属性组U中属性所来自的域
DOM: 属性向域的映象集合
F:       属性间数据的依赖关系集合

数据依赖

一个关系内部属性与属性之间的约束关系

现实世界属性间相互联系的抽象

数据内在的性质

语义的体现

2. 数据依赖的类型

函数依赖(Functional Dependency,简记为FD)

多值依赖(Multivalued Dependency,简记为MVD)

其他

关系模式R(U, D, DOM, F)
    简化为一个三元组:
                    R(U, F)
当且仅当U上的一个关系r满足F时,r称为关系模式 R(U, F)的一个关系

数据依赖对关系模式的影响

[例1]建立一个描述学校教务的数据库:
    学生的学号(Sno)、所在系(Sdept)
    系主任姓名(Mname)、课程名(Cname)
    成绩(Grade)

单一的关系模式 :   Student <U、F>
U ={ Sno, Sdept, Mname, Cname, Grade }
   属性组U上的一组函数依赖F:
    F ={ Sno → Sdept,  Sdept → Mname,
                (Sno, Cname) → Grade }

关系模式Student(U, F)中存在的问题

1. 数据冗余太大

2. 更新异常(Update Anomalies)

3. 插入异常(Insertion Anomalies)

4. 删除异常(Deletion Anomalies)

结论:

Student关系模式不是一个好的模式。

“好”的模式:

不会发生插入异常、删除异常、更新异常,

数据冗余应尽可能少

原因:由存在于模式中的某些数据依赖引起的(这也是对关系

模式进行分解的根本理由)

解决方法:通过分解关系模式来消除其中不合适的数据依赖

分解关系模式

把这个单一模式分成3个关系模式:
     S(Sno,Sdept,Sno → Sdept);
     SC(Sno,Cno,Grade,(Sno,Cno) → Grade);
     DEPT(Sdept,Mname,Sdept→ Mname)

规范化

规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。最终使各关系模式达到某种程度的分离,即“一事一地”的模式设计原则

函数依赖

函数依赖(Functional Dependency,FD)

平凡函数依赖与非平凡函数依赖

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

传递函数依赖

   设R(U)是一个属性集U上的关系模式,X和Y是U的子集。
    若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称 “X函数确定Y” 或  “Y函数依赖于X”,记作X→Y。
设有关系模式R(U),X和Y是属性集U的子集,函数依赖(functional dependency,简记为FD)是形为X→Y的一个命题,若对于R(U)的任意一个可能的关系r ,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵
    t[Y]=s[Y],那么称FD X→Y在关系模式R(U)中成立。
  1. 所有关系实例均要满足
  2. 语义范畴的概念

例如:姓名→年龄这个函数依赖只有在该部门没有

同名人的条件下成立

平凡函数依赖与非平凡函数依赖

在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y ? X,则称X→Y是非平凡的函数依赖
若X→Y,但Y ? X,   则称X→Y是平凡的函数依赖
例:在关系SC(Sno, Cno, Grade)中,
            非平凡函数依赖: (Sno, Cno) → Grade
            平凡函数依赖:     (Sno, Cno) → Sno
                                          (Sno, Cno) → Cno
若X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素(Determinant)。
若X→Y,Y→X,则记作X←→Y。
若Y不函数依赖于X,则记作X→Y。

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

在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有X’     Y, 则称Y对X完全函数依赖,记作
     X F  Y。
  若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作X   P   Y。

[例1] 中(Sno,Cno)→Grade是完全函数依赖,
             (Sno,Cno)→Sdept是部分函数依赖
              因为Sno →Sdept成立,且Sno是(Sno,Cno)的真子集

传递函数依赖

在R(U)中,如果X→Y,(Y ?X) ,Y→X Y→Z,Z ∈Y, 则称Z对X传递函数依赖。
    记为:X → Z

 注: 如果Y→X, 即X←→Y,则Z直接依赖于X。

例: 在关系Std(Sno, Sdept, Mname)中,有:
      Sno → Sdept,Sdept → Mname
      Mname传递函数依赖于Sno
时间: 2024-07-30 06:31:48

数据库 - 关系模式函数依赖的相关文章

ER 和 数据库关系模式

http://lianghuanyue123.blog.163.com/blog/static/130423244201162011850600/ 我们眼下所接触的数据库基本上是关系数据库,关系数据库中的关系模式是型,而关系是值.关系模式是对关系的描写叙述. 什么是关系?关系实质上是一张二维表,当中每一行是一个元组,每一列是一个属性,每一个元组是该关系涉及到属性集合笛卡尔积的一个元素.(笛卡尔积是这种一个集合.集合中的元素是有序对,若A={0,1}B={a,b}则:A*B={<0,a>,<

数据库复习11——关系模式与范式

数据库复习 CH11 关系模式与范式 11.1 关系模式的设计 数据库模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,关系型数据库的模式又叫关系模式,我所理解的关系模式就是数据库中表结构的定义以及多张表之间的逻辑联系 关系模式的设计就是根据一个具体的应用,把现实世界中的关系用表的形式来表示的逻辑设计过程,不规范的关系模式设计会带来以下的问题: 数据冗余 更新异常 插入异常 删除异常 举ppt中例子说明四种问题,如下表中描述了老师信息(一个老师一个地址,可以教多门课,一门课只有一名老

数据库 之 关系模式范式

主要有6种范式:第一范式(1NF),第二范式(2NF),第三范式(3NF),巴德斯科范式(BCNF),第四范式(4NF),第五范式(5NF),按从左至右的顺序一种比一种要求更严格.要符合某一种范式必须也满足它前边的所有范式.一般项目的数据库设计达到3NF就可以了,而且可根据具体情况适当增加冗余,不必教条地遵守所谓规范. 从范式所允许的函数依赖方面进行比较,四种范式之间的关联如下图所示. 1.第一范式(1NF)无重复的列 所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中

PostgreSQL表空间、数据库、模式、表、用户/角色之间的关系

看PostgreSQL9的官方文档,我越看越迷糊,这表空间,数据库,模式,表,用户,角色之间的关系怎么在PostgreSQL里这么混乱呢?经过中午的一个小实验,我逐渐理清了个中来龙去脉.下面我来还原我的试验,并循序讲清其中关系. 首先,实验出角色与用户的关系    在PostgreSQL中,存在两个容易混淆的概念:角色/用户.之所以说这两个概念容易混淆,是因为对于PostgreSQL来说,这是完全相同的两个对象.唯一的区别是在创建的时候: 1.我用下面的psql创建了角色kanon:   CRE

关系型数据库:关系模式设计原则

1.范式与数据冗余度从0NF到1NF.2NF.3NF.BCNF.4NF.5NF?数据库设计的过程是个拆分表的过程,拆分的目的是降低数据的冗余度. 数据的冗余度越低,事务持续时间就越短(它不需要额外的操作去维持数据一致性和完整性).与此同时,拆得越细,查询的代价越高(需要更多耗时的连接运算). 2.关系模式的设计原则 如果表(集)主要用于数据更新(Online),表的分解就应该尽可能接近3NF, BCNF从前面的例子看没有必要,至于4NF.5NF更多属于理论研究领域,在实际应 用中无此必要. 如果

数据库关系理论模式分解理解和总结

Armstrong公理系统 逻辑蕴涵 定义/解释 比如A->B B->C 在关系模型R<U,F>中成立,可以得到A->C字R中也成立,所以称F逻辑蕴含A->C. 闭包 定义/解释 在关系模型R中,F所逻辑蕴涵的所有函数依赖叫做F的闭包,记为\(F^{+}\). 某个属性集关于依赖集的闭包 定义/解释 即已有X这个属性集作为左部,通过依赖集F的所有函数依赖,可以推导出的所有函数依赖,称为X关于F的闭包,记为\(X_F^{+}\) 例题 已知关系模型R<U,F>

关系模式设计理论 - 数据库系统原理

模式设计理论主要包括三方面的内容:数据依赖.范式.模式设计方法.数据依赖研究数据之间的联系,起着核心的作用:范式是关系模式的标准:模式设计方法是自动化设计的基础. 关系模式的设计准则 关系模式的冗余和异常 关系模式的冗余指数据冗余.数据冗余 指同一个数据在系统中多次重复出现,这一直是影响系统性能的大问题.在文件系统中由于文件之间没有联系,一个数据会在多个文件中出现.数据库系统克服了文件系统的这种缺陷. 由于数据冗余,对数据操作时就会引起各种异常:修改异常.插入异常.删除异常.例如,关系模式 R(

关系模式范式分解教程 3NF与BCNF口诀

https://blog.csdn.net/sumaliqinghua/article/details/86246762 [通俗易懂]关系模式范式分解教程 3NF与BCNF口诀!小白也能看懂原创置顶 沃兹基.硕德 最后发布于2019-01-10 18:26:14 阅读数 13082 收藏展开本来是为了复习数据库期末考试,结果找了一圈都没有发现比较好的解释,通过查阅资料和总结,为大家提供通俗易懂的解法,一听就会!并且配有速记口诀!介是你没有玩过的船新版本包含最小依赖集求法候选码求法 在模式分解之前

数据库--关系数据理论

关系数据理论 本文为复习数据库整理的资料. 参考: https://blog.csdn.net/prdslf001001/article/details/80336835 https://www.bilibili.com/video/av73467859/ https://www.bilibili.com/video/BV1eE411a79r/ 一.数据冗余导致的问题 1)冗余存储:信息被重复存储,导致浪费大量存储空间. 2)更新异常:当重复的信息的一个副本被修改,所有副本都必须进行同样的修改.