数据库系统原理复习整理(3) |
您所在的位置:网站首页 › 数据库主属性的概念 › 数据库系统原理复习整理(3) |
目录 一、范式 1.一些概念 2.主属性与非主属性 3.函数依赖 二、闭包 1.概念 2.示例 一、范式 1.一些概念范式(NF):范式是 “符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”,可以理解为一张表所符合某设计标准的程度/级别。 第一范式(1NF):关系模式中所有属性都不可再分(强调列的原子性) 第二范式(2NF):在1NF的基础上,消除了非主属性对于候选键的部分函数依赖。 第三范式(3NF):在2NF的基础上,消除了非主属性对候选键的传递函数依赖。 2.主属性与非主属性主属性:包含在任何一个候选码中的属性,称为主属性。 非主属性:不包含在任何一个候选码中的属性,称为非主属性。 例如:在一个表S(A,B,C,D)中,若表R的候选键为A,则该表中主属性有:A,非主属性有:B,C,D; 在一个表R(A,B,C,D,E,F)中,若表R的候选键为(A,B)或(A,C),则该表中主属性有:A,B,C,非主属性有:D,E,F。 3.函数依赖1)函数依赖:在一个表里面,属性X可以映射到属性Y,即当X已知时即可确定唯一的Y。 例如:在学生表中,如果知道了学生的学号,即可确定学生的姓名。 2)部分函数依赖:设X,Y是关系R的两个属性集合,存在X->Y,若X'是X的真子集,存在X'->Y,则称Y部分函数依赖于X。 例如:学生表中,(学号,姓名)->(班级),但是只学号一个属性就可以确定一个元组,由于属性不可分割,班级已经可以确定,即存在(学号)->(班级),所以班级部分函数依赖于(学号,姓名)。 3)完全函数依赖:相对应的,也存在X->Y,若X'是X的真子集,不存在X'->Y,则称Y完全函数依赖于X。 例如:成绩表中,(学号,课程号)->(成绩),只有当学号和课程号都知道时,才能得出该学生某一门课的得分,(学号)->(成绩)和(课程号)->(成绩)都无法成立,所以成绩完全函数依赖于(学号,课程号)。 4)传递函数依赖: 例如:已知(学号->学校编号),(学校编号->学校名称),而学号又可以直接推出学校名称,即(学号->学校名称),如果一个表中同时拥有学号、学校编号、学校名称三个属性时,就具有了传递函数依赖,这时就不满足3NF了。 二、闭包 1.概念在关系模式R中为F所逻辑蕴含的函数依赖的全体叫做F的闭包。 (可以理解为在关系中F所能推出的(或者叫能影响的)所有属性、属性集以及相关函数依赖) 通常可以利用闭包来求候选键(候选键一定能推出全集) 2.示例R(A,B,C,D,E,F,G),函数依赖集合{A->B,A->C,C->D,C->E,E->FG} 1)求候选键 (先观察函数依赖集,分别找到只在箭头左边出现的,只在箭头右边出现的,以及箭头两边都出现的: 只左:A 只右:B,D,F,G 两边都出现过:C,E 只在箭头左边出现过的只有A,那么可以确定候选键一定包含A,所以先用A进行验证,如果成功推出全集,A即为候选键;若不成功,则要将A和箭头两边都出现过的属性组成属性集,进行验证,比如验证AC是否为候选键,以及AE是否为候选键 (注意有时候选键不唯一,可能出现多种情况,如果AC是候选键,此时不能停下来,还要将AE也要验证一下,防止遗漏) 本题1)解决思路: 因为A->B,A->C,所以A->ABC(A一定能推出自己),AF(1)=ABC 又因为C->D,C->E),所以(A->ABCDE)(A能推出它直接影响的+它推出的属性能推出的所有属性(间接影响)),AF(2)=ABCDE 又因为E->FG,所以(A->ABCDEFG)(间接的间接),AF(3)=ABCDEFG=U(推出了全集) 所以A为候选键 2)判断最高满足第几范式 因为A->C,C->D,所以存在非主属性对码的传递函数依赖,不满足3NF 所以最高满足2NF |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |