第六章(关系数据理论)

一、数据关系

关系数据库可能存在的问题

1.数据冗余(必然存在,但应该尽量少)

2.更新冗余

3.插入冗余

4.删除冗余


数据依赖(属性之间以值是否相等体现出来的一种约束关系)

1)函数依赖(给定元组中的一些属性,可确定另外的属性必然的取值--一个)

--非平凡的函数依赖:Y依赖于X,Y不包含于X

--平凡函数依赖:Y依赖于X,且Y包含于X

--互相函数依赖:X依赖于Y,Y依赖于X

--完全函数依赖:Y依赖于X,但Y不依赖与X的任意真子集

--部分函数依赖:Y依赖于X,且Y不完全依赖于X

--传递函数依赖:Y非平凡依赖于X,且Y与X不是互相函数依赖,Z非平方依赖于Y,则Z对X传递依赖

2)多值依赖(给定元组中的一些属性,可确定另外的属性可能的取值--一组)

--含义:X, Y, Z三个属性集之和是属性集U,多值依赖X->->Y成立当且仅当对R(U)的任一个关系r,r在(X,Z)上的每个值对应一组Y的值,这组值仅决定于X值而与Z值无关。

--平凡的多值依赖(集合属性中分为两个真子集):Z=空集

--非平凡的多值依赖:Z≠空集

--对称性:若Y多值依赖于X,则Z也多值依赖于X

--传递性:若Y多值依赖于X,Z多值依赖于Y,则X多值依赖于Z-Y

--若Y依赖于X,则Y也多值依赖于X

码(一码定一组)

--候选码:属性集合完全函数依赖于候选码(候选码是不可分割的主属性集合,分了就不是候选码了),主码是候选码,候选码不一定是主码

--超码:属性集合部分函数依赖于超码

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

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

--全码:整个属性组都是主码或者候选码

--外码:本关系模式中某个属性或属性组是非码,但这个属性或者属性组是另一个关系模式的码

二、范式(低一级范式关系模式可以通过模式分解转换成多个高一级的关系模式的集合)

第一范式(1NF):每个分量都是不可分的基本数据项

--意义:关系数据库的基本要求,防止出现表中表的情况,当然某些时候这也是可以做出让步的,比如个人表的家庭住址╮(╯▽╰)╭

--设计:每列都是基本数据项,原子数据

第二范式(2NF):若R∈1NF,且每个非主属性完全函数依赖于任何一个候选码

--意义:在第一范式的基础上消除了非主属性对码的部分函数依赖,从而减少了数据冗余、更新异常、插入异常和删除异常

--设计:码的真子集不是码

第三范式(3NF):若R∈2NF,且R中不存在非主属性对码的传递依赖(一般走到这)

--意义:在第二范式的基础上消除了非主属性对码的传递依赖,从而减少了数据冗余、更新异常、插入异常和删除异常

--设计:表中主键是唯一码(或者本表仅仅有两个码,且两码互为补集)、若外码存在,则外码应是其原表的主键

BCNF(扩充的第三范式):若R∈1NF,当Y非平凡函数依赖于X时,X必有码

--意义:第三范式的基础上消除主属性对于码的部分依赖与传递函数依赖,减少了删除异常、插入异常和更新异常

--设计:不同主属性相互无依赖关系

第四范式(4NF):若R∈1NF,当Y非平凡多值依赖于X时,X必有码

--意义:属性之间不允许有非平凡且非函数依赖的多值依赖,减少维护数据一致性的工作

--设计:两个互补的属性集合,且都是码,即全码,才允许有多对多的关系出现,否则本表只允许一对一的函数依赖关系

第五范式(5NF):将表切割成尽量小的块,排除所有的冗余(一般不会走到这步)

三、数据依赖的公理系统(Armstrong公理系统)

设U为属性集总体,F是U上的一组函数依赖,于是有关系模式R<U,F>,对R<U,F>有以下推理规则:

自反律

若Y⊆X⊆U,则X→Y为F所蕴含

增广律

若X→Y为F所蕴含,且Z⊆U,则X∪Z→Y∪Z为F所蕴含

传递律

若X→Y为F所蕴含,且Y→Z为F所蕴含,则X→Z为F所蕴含

合并规则

若X→Y,X→Z,则 X→Y∪Z

分解规则

若X→Y, 且Z⊆Y,则X→Z

伪传递规则

若X→Y,WY→Z,则WX→Z

函数依赖集等价

--若F的函数依赖集闭包=G的函数依赖集闭包,则说F覆盖G,反之亦可,也可以说F与G等价

闭包(函数依赖集,属性集)

--函数依赖集的闭包:在关系模式<R,F>中为F所逻辑蕴含的函数依赖的全体称为F的闭包

--属性集的闭包:在关系模式<R,F>中,能由F根据Armstrong公理导出的对X函数依赖的所有属性集的并集称为X关于函数依赖集F的闭包

Armstrong公理是有效的,完备的:

--有效性:由F出发,根据Armstrong公理推导出来的每一个函数依赖一定在F的闭包中

--完备性:F的函数依赖集的闭包的每个函数依赖,必定可以由F出发根据Armstrong公理推导出来

极小依赖集

--F中任一函数依赖表达式的箭头右边只有一个属性,即是说F中的每个函数依赖都只能决定一个属性,没有冗余的被决定属性

--F中不存在函数依赖X→A使F等价F-{X→A},即是说F中的函数依赖都是不可缺少的,换句话说F中没有冗余的函数依赖

--F中不存在函数依赖X→A,Z⊆X,使F-{X→A}∪{Z→A}与F等价,即是说函数依赖表达式的决定因素应该尽可能简,没有真子集与其等价,决定因素中无冗余属性

--总结:对F而言,没有冗余的函数依赖项,对函数依赖表达式而言,决定因素尽量精简(有时候决定因素必须为多个属性,所以只能尽量精简),被决定因素只有一个属性。

最小覆盖(最小函数依赖集)

每个函数依赖集均等价于一个极小函数依赖集F',称F'为F的最小依赖集

模式分解(属性是分配的基本单位)

分解后函数关系讲不明白,就跳过了,只讲判定方法和分解方法

模式分解的意义:

--因为现有的模式可能会存在一些数据增删改的弊端,需要寻找一种等价的关系模式,使得以上弊端得以解决

无损分解:

--对关系模式分解时,原关系模型下任一合法的关系值在分解之后应能通过自然联接运算恢复起来,即未丢失信息的分解即无损分解。反之,则称为有损分解

判定公式:对于R<U,F>的一个分解ρ={R[1]<U[1],F[1]>,R[2]<U[2],F[2]>},如果U[1]∩U[2]→U[1]-U[2]∈F的闭包

建议:对着实例调试一次就都知道了,官方说法太玄了

分解的限制:

1.要求保留函数依赖(数据间关系),一定可以达到3NF,但是不一定能达到BCNF,此时可以还做到无损连接

2.只要求分解具有无损连接性,则一定可以达到4NF

分解算法

(1)得到保留函数依赖的3NF(合成法):

--将R<U,F>中的F极小化处理,得到F"

--找出所有不在F"中出现的属性,记为U",把这些属性构成一个关系模式R"<U"',F"'>,把这些属性从U中去掉,得到U"

①--若有X→A∈F",且XA=U",则ρ={R},结束

②--或者,对F按具有相同左部(决定因素)的原则分k组,每组函数依赖集涉及的全部属性形成一个属性集U[i]分别组成对应的R[i]关系模式,算法结束。此时的ρ={R[1]<U[1],F[1]>,...R[k]<U[k],F[k]>∪R"<U"',F"'>}是R<U,F>的保留函数依赖的一个分解,且对于每个R[i]都属于3NF

(2)保留函数依赖和无损连接的3NF

--设X是R<U,F>的码,R已由合成法分解为ρ,令t=ρ∪{R*<X,F[x]>(R*中只有码)}

--若有某个U[i],X⊆U[i],将R*<X,F[x]>从t中去掉,或者U[i]⊆X,将R<X,F[x]>从t中去掉。这步得到t'

--t'就是所求的分解

--即是说:合成法的计算结果ρ与由原表的主属性组成新表r取并,且用r与ρ中的子表U[i]进行对比,去除冗余的表(包含r时r冗余,被r包含时U[i]冗余)

(3)转化为BCNF的无损连接分解(仅①适用)

--将分解ρ的子表中可以起决定因素作用的主属性集(无法构成码)与其被决定因素单独提取成一个新表,原R[i]中删除掉对应的被决定属性

(4)U=X+Y+Z如果R<U,D>中X→→Y成立,则R的分解ρ={R[1]<X,Y>,R[2]<X,Z>}具有无损连接性

--即是说:将多值依赖的不符合4NF的表分解为多个函数依赖的表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 197,966评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,170评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,909评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,959评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,851评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,583评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,956评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,590评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,878评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,892评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,719评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,501评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,957评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,124评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,440评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,003评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,211评论 2 339

推荐阅读更多精彩内容

  • 关系:描述实体、属性、实体间的关系关系模式:用来定义关系,描述关系的性质(逻辑结构与特征)关系数据库:基于关系模型...
    Gopal阅读 204评论 0 0
  • 一年级语文上册生字表 生字表一(共400字) 啊(ā)爱(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang阅读 2,748评论 0 6
  • 迪丽热巴:起床了,老公 鹿晗:老婆,今天是周6,好不容易放 假了,能让我在睡一会儿吗? 迪丽热巴:我们...
    皮卡丘的baby阅读 1,521评论 0 4
  • 1.针对最近的爆款文《就算老公一毛钱股份都没拿到,在我心里,他依然是最牛逼的创业者》,用不超过三句,说说要不要抓热...
    洁微内涵阅读 458评论 0 1
  • 夏日的北京清晨,下起了不急不慢的雨。我走在上班的路上,听到苏打绿的《当我们一起走过》。 这首歌来自他们2011年的...
    咛初阅读 1,092评论 4 8