精华内容
下载资源
问答
  • 在理解2NF上必要先认识到在关系数据库中完全函数依赖、部分函数依赖、候选码、主属性和非主属性的概念。 完全函数依赖:在关系模式R(U)中,如果存在X->Y(X里的属性可以一或一组),而X属性里的任何一真子集x...

    在理解2NF上有必要先认识到在关系数据库中完全函数依赖、部分函数依赖、候选码、主属性和非主属性的概念。

    完全函数依赖:在关系模式R(U)中,如果存在X->Y(X里的属性可以一个或一组),而X属性里的任何一个真子集x’,都有x’-->Y(不能决定Y),则Y对X完全函数依赖。

    部分函数依赖:在关系模式R(U)中,如果存在X->Y,Y不完全依赖于X(X的属性中有一个或一组不存在也不影响决定Y),则称Y对X部分函数依赖。

    候选码:在关系模式R(U)中,设K为R(U)的属性或属性组,若U对K完全函数依赖,则K为关系模型R(U)的候选码(函数依赖的概念定义)
    还有一种解释为:若关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选码。

    主属性:在关系中任何一个候选码所包含的属性都称为主属性–而一个关系中的候选码可以有多个,所以说主属性一定是所有候选码的属性的并集,例如属性(A,B,C,D,E)中,A,B,C都是候选码,那么主属性为A,B,C。

    非主属性:在关系模式R(U)中,不包含在任何候选码中的属性。

    讲解完这些概念后,我们来看2范式的定义。

    定义:若关系模式R∈1NF(属性不能再分割),且每一个非主属性完全函数依赖于任何一个候选码,则R∈2NF。

    重点在于分析“且每一个非主属性完全函数依赖于任何一个候选码”这句话,这句话就是在说:你要判断这个属于1NF的关系是不是属于2NF,首先你得求出这个关系所有的候选码,从所有的候选码中求出主属性,再去求解非主属性与每一个候选码是否是完全函数依赖,如果存在非主属性与其中一个候选码存在部分函数依赖,则它不属于2NF。

    举个含有多个候选码的例子:
    关系模式R(U,F),U={A,B,C,D,E},F={A->B,A->C,C->D,BCD->E,E->D,E->A},问该模式属于第几范式?
    解:
    首先,该模式满足1NF
    根据F求解出候选码:(A),(E),(BC)
    则:
    主属性为:A,B,C,E
    非主属性为:D
    分析:
    候选码(A):D完全依赖于候选码(A)
    候选码(E):D完全依赖于候选码(E)
    候选码(BC):从F中可以推导出BC->D,并且C->D,此时存在非主属性D完全函数依赖于候选码(BC)属性里的真子集C,导致非主属性D部分函数依赖于候选码(BC)
    因此,此关系模式不属于2NF,仅仅属于1NF

    展开全文
  • 2.主码的定义:如果一个关系有多个候选码,则选定其中一个为主码; 3.主属性定义:候选码的诸属性称为主属性; 4.非主属性定义:不包含在任何候选码中的属性称为非主属性; 5.实体完整性规则:如果属性(一个或者一...

    一:相关定义及举例
    定义
    在《数据库系统概论》(第五版)——王珊、萨师煊编著中:
    1.候选码的定义:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码;
    2.主码的定义:如果一个关系有多个候选码,则选定其中一个为主码;
    3.主属性定义:候选码的诸属性称为主属性;
    4.非主属性定义:不包含在任何候选码中的属性称为非主属性;
    5.实体完整性规则:如果属性(一个或者一组属性)A是基本关系R的主属性,则A不能取空值。

    例子
    根据上面的定义,如果有下表:
    工号 | 姓名 | 住址 | 年龄 | 职位

    假设工号、姓名和职位都可以唯一标识一个实体,说明都是候选码,那三者也应该都是主属性,三者根据实体完整性规则不可以取空值,余下是非主属性(还是说选定了工号作为主码以后,工号是主属性,其余是非主属性,工号不可以取空值)

    码的定义是什么?
    以下定义出自热心网友:
    1.码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。  
    2.超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。  
    3.候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。
    4.按照上面码的定义看看外码的定义如下:
    设F是基本关系R的一个或者一组属性,但不是关系R的码。K(s)是基本关系S的主码。如果F与K(s)相对对应,则称F是R的外码。
    综上:F是非主属性组,必定可以取空值,但是课本例子包括课后题都说F可以是主属性,当为主属性时,为了保持实体完整性,不可以取空值。

    二、举例
    (在《数据库系统概论》(第五版)——王珊、萨师煊编著中P179页student表为例)

    1.列举任意一个例6.1中Student模式上的函数依赖、无依赖关系的属性
    Sdept依赖于sno,sdept与grade无依赖关系。

    2.分别列举例6.1中Student模式上存在的一个平凡函数依赖和非平凡函数依赖
    x->y,但x里面不含有y,则x->y称为非平凡依赖函数,例如知道学号不一定知道课程成绩(sno->sdept), 平凡依赖反之(sno->sno),平凡依赖是一定成立的。

    3.分别列举例6.1中Student模式上存在的一个完全函数依赖和部分函数依赖
    P181中间
    (sno,cno)->grade 完全依赖
    (sno,cno)->sdept 部分依赖,因为sno->sdept

    4.分别列举例6.1中Student模式上存在的传递依赖。
    Sno->sdept,sdept->mname 所以sno->mname(P181)

    5.找出例6.1中Student模式上的候选码、主码、超码、外码、主属性、非主属性
    候选码:如果关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(sno,cno)一起
    主码:如果一个关系有多个候选码,则选定其中一个为主码(sno,cno)一起
    超码:是一个或多个属性的集合,超码中的这些属性可以让我们在一个实体集中唯一地标识一个实体(sno,cno)一起
    外码:cno,sno(相对于普通学生表,和课程表)
    主属性定义:候选码的诸属性称为主属性;
    非主属性定义:不包含在任何候选码中的属性称为非主属性
    ————————————————
    版权声明:本文为CSDN博主「Atlas!」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/must_5/article/details/90348037

    展开全文
  • 如何求关系模式的候选码

    千次阅读 多人点赞 2020-06-27 19:44:47
    对于给定的关系模式R(A,A1,A2,…,An)和函数依赖集F,可以把属性分为以下四类 ...若X(X ∈ R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选码 若X(X ∈ R)是R类属性,则X不在任何候选码中 若X

    对于给定的关系模式R(A,A1,A2,…,An)和函数依赖集F,可以把属性分为以下四类

    • L类:仅出现在F中的函数依赖左边的左部属性
    • R类:仅出现在F的函数依赖右边右部属性
    • N类:在F的函数依赖左右边均未出现的属性
    • LR类:在F的函数依赖左右两边均出现的属性

    对于给定的关系模式R及其函数依赖集F,有以下结论

    • 若X(X ∈ R)是L类属性,则X必为R的任一候选码的成员
    • 若X(X ∈ R)是L类属性,且X+包含了R的全部属性,则X必为R的唯一候选码
    • 若X(X ∈ R)是R类属性,则X不在任何候选码中
    • 若X(X ∈ R)是N类属性,则X必为R的任一候选码成员
    • 若X(X ∈ R)是R的N类和L类属性组成的属性集,且X+包含了R的全部属性,则X是R的唯一候选码
    • 若X(X ∈ R)是LR类属性属性,则X可能为R的任一候选码的成员,也可能不为R的任一候选码成员

    上面的内容过了一遍后,我们来用例子讲解

    关系模式R(A,B,C,D,E),函数依赖F(A→D,E→D,D→B,BC→D,CD→A),求R的候选码

    1. 首先把属性分类
    由函数依赖F知:
    	L类的属性有C、E;
    	R类的属性没有;
    	N类的属性没有;
    	LR类的属性有:A、B、D。
    
    1. 设X代表L、N类属性,Y代表LR类属性
    {C,E} ∈ X,{A、B、D} ∈ Y
    
    1. 求X+

    因为C→∅,所以C+ = ∅

    因为E → D,所以E+ = {DE};又因为D→B,所以 E+ = {BDE}

    因为E → D,所以(CE)+= {CDE};又因为D→B,所以 (CE)+ = {BCDE};又因为CD → A,所以(CE)+ = {ABCDE}

    故CE为R的唯一候选码


    注意:如果X+中没有R的全部属性,即从Y中拿出一个属性来和X中的属性组合

    假设上面X+中没有R的全部属性,即从Y中拿出属性A

    因为C→∅,所以(AC)+ = ∅,所以AC不是R的候选码
    因为E → D,所以(AE)+ = {ADE};又因为D→B,所以 (AE)+ = {ABDE},所以AE不是R的候选码
    然后求(ACE)+,如果ACE不是候选码,就重新从Y中选择一个属性组成BC、BE、BCE,依次类推

    如果拿Y中的一个属性求不出候选码,就拿Y中的两个属性组合求


    关系模式R(A,B,C,D,E,F),其函数依赖集F={AB→E,AC→F,AD→B,B→C,C→D}

    • L类属性:A
    • R类属性:E、F
    • LR类属性:B、C、D
    • 令L类属性的元素为X,LR类的为Y
    • X+ = A(A+ = A)
    • 从Y中取出一个元素B,与X结合得,(AB)+ = ABCDEF
    • 从Y中取出一个元素C,与X结合得,(AC)+ = ABCDEF
    • 从Y中取出一个元素D,与X结合得,(AD)+ = ABCDEF

    故关系模式的候选码有:AB、AC、AD

    注:A单独推导不出其它元素,因为函数依赖集中,没有A → ?,只有
    A?→ 元素


    哦对了,关系模式R的候选码可以多个


    欢迎大家关注下个人的「公众号」:独醉贪欢
    后台回复「无脑死磕数据库原理」即可获得练习题

    展开全文
  • 关系模式和范式判断、候选码主码(笔记)

    万次阅读 多人点赞 2019-05-27 18:32:39
    非主属性:不包含在任何一个候选码中的属性。 第一范式(1NF):无重复的列。第一范式是关系模式的基本要求。 第二范式(2NF):在满足第一范式的前提下,非主属性非部分依赖于主关键字。要求实体的属性完全依赖于...

    相关概念:
    非主属性:不包含在任何一个候选码中的属性。
    第一范式(1NF):无重复的列。第一范式是关系模式的基本要求。
    第二范式(2NF):在满足第一范式的前提下,非主属性非部分依赖于主关键字。要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。
    第三范式(3NF):在满足第二范式的基础上,要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,即:属性不依赖于其它非主属性。 不存在非关键字的传递关系。

    例如1:假定选课关系表为SelectCourse(学号,姓名,年龄,课程名称,成绩,学分),关键字为组合关键字(学号,课程名称),因为存在如下决定关系:
    (学号,课程名称) → (姓名,年龄,成绩,学分)
    这个数据库表不满足第二范式,因为存在如下决定关系:
    (课程名称) → (学分)
    (学号) → (姓名,年龄)
    即存在组合关键字中的字段决定非关键字的情况。

    例如2:假定学生关系表为Student(学号,姓名,年龄,所在学院,学院地点,学院电话),关键字为单一关键字"学号",因为存在如下决定关系:
    (学号) → (姓名,年龄,所在学院,学院地点,学院电话)
    这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系:
    (学号) → (所在学院) → (学院地点,学院电话)
    即存在非关键字段"学院地点"、"学院电话"对关键字段"学号"的传递函数依赖。

    附:主键和外键
    1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。

    身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
    2.外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。

    比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

    候选码(Candidate Key)或候选键
    如果在一个关系中,存在多个属性(或属性组合)都能用来惟一标识该关系的元组,这些属性
    (或属性组合)都称为该关系的候选码或候选键。
    例如,在学生登记表关系中,如果姓名不允许重名时,学号和姓名都是候选码。
    主码(Primary Key)或主键
    在一个关系的若干个候选码中指定一个用来惟一标识该关系的候选码称为该关系的主码或主
    键。
    例如,在学生登记表关系中,学号一般都是惟一的,如果姓名不允许重名时,存在两个候选
    码:学号和姓名,若选中学号作为惟一标识,那么,学号就是学生登记表关系的主码或主键。

    展开全文
  • 首先说明 键字=码字,所以 主键=主码=主关键字,候选键=候选码=候选关键字... 所谓关系键,指的是一表中的一(或一组)属性,用来标识该表的每一行或与另一表产生联系。 话不说,上图:  相信这图...
  • 有关系模式R(ABCDE),回答下面几问题:...则:属性组BC也是关系模式R的候选码时,R是BCNF。 此时:A →BC,BC →A成立。 (2):对于左侧为属性的函数依赖集求所有候选码 ①:F={A →B,BC →D,DE →A} ②:令G=F-
  • 关系候选码、主码、外码以及关系的完整性

    千次阅读 多人点赞 2020-05-26 17:34:40
    定义:从多个候选键中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字)。 主属性和非主属性 主属性:包含在主码中的各个属性称为主属性 非主属性:不包含在...
  • 例如:学生关系(学号,身份证号,姓名,院系,专业,性别 ,生日),个候选码:【学号】和【身份证号】,我们可以选择学号为主码,也可以选择身份证号为主码(当然,一般还是选择学号为主码)。 属性:上例中:...
  • 超码、候选码、主码 与 外码

    万次阅读 多人点赞 2019-04-06 19:35:59
    超码superkey: 形式:一个或多个属性的集合 作用:在一个关系中唯一地标识一个元组。 特点: ...可能包含无关属性 ...(通俗讲,就是同一个关系r上,如果某个属性...候选码candidate key: 形式:一个或多个属性的集...
  • 关系数据库理论 课本第六章 关系数据库理论 一、函数依赖: 1.完全函数依赖: 通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB。 2.部分函数依赖: 通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C...
  • 候选码:指能够唯一标识一个元组的属性组(是属性组,包含多个一个或多个属性),但其子集不可以唯一标识一个记录,也就是候选码是一个最小码组合的情况 主码:指能够唯一标识一个元组的属性组(是属性组,包含多个...
  • 定义:从多个候选码中选择一个作为查询、插入、删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字) 每个关系必定且只有一个主码,选择后不能重复。 关系的主属性 主属性(Prime At....
  • 关系模式R中的属性集U=ABC…,N属性,判断U中属性在FD中出现的位置 (1)左右出现; (2)只在左部出现; (3)只在右部出现; (4)不出现; 方法:按以下几步来求候选键 1.只在FD右部出现的属性,不属于候选码; 2.只在FD...
  • 数据库之主和外

    万次阅读 多人点赞 2019-04-24 21:29:34
    想要明白主和外的概念前,需要先对域和笛卡儿积概念彻底的理解。请阅读的童靴务必耐心~O(∩_∩)O 1.域 定义:域是一组 具有相同数据类型值的 集合。(域就是集合,不过集合里的元素是相同的数据类型) ...
  • 主码:若一个关系有多个候选码,则选定其中一个为主码。 主属性:候选码的诸属性称为主属性。 非主属性或非码属性:不包含在任何候选码中的属性。 范围 超码≥候选码≥主码 注意 关系模式中的候选码可以一个或多个...
  • 主码(主键):被选中的一个候选码。候选码可以有多个,主码只有一个。主键如果是由多个属性构成,又称联合主键。 主属性:属于某个候选码的属性。 非主属性:不属于任何候选码的属性。 表的域、属性、字段、数据...
  • 数据库——候选码、超码等码的概念

    千次阅读 多人点赞 2020-10-07 13:42:30
    1、候选码(Candidate Key):若关系中的一属性或属性组的值能够唯一地标识一元组,且他的真子集不能唯一的标识一元组,则称这属性或属性组做候选码。 用人话来解释:想要知道某位学生的某门课程的成绩Grade,...
  • 一个或多个属性的集合,这些属性可以让我们在一个实体集(所谓的实体集就是student表中多条记录的集合)中唯一地标识一个实体。如果K是超码,那么所有包含K的集合也一定是超码。 如下表,字段ID可以唯一标识每一条...
  • 如果在一个关系中,存在一个或一组属性的值能唯一地标识该关系的一个元组,则这个属性或属性组称为该关系的候选码或候选键,一个关系可能存在多个候选码。 候选码性质:唯一性,最小性 例如: "学生关系” 中的学号...
  • 问题困扰我很久了,在这个关系模式中候选码有哪些呢?A是候选码,那B是不是候选码呢?希望各位前辈指导指导,最好能扩展一下关于范式之间判断的一些方法,和相关知识。 另外怎么追加悬赏啊....
  • 候选码的求解基本方法集合   一、求解候选码基本算法的具体步骤. 第1 步,求关系模式R < U , F > 的最小函数依赖集F 第2 步, 按照上面的定义, 分别...
  • 主码(Primary Key):从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字) 每个关系必定且仅一个主码,选定后不能重复! 相关概念 主属性...
  • 数据库函数依赖与候选码求解

    千次阅读 2021-04-20 21:32:18
    最近学习了函数依赖与候选码的求解,这仅仅是自己的理解,第一次形成文字。如果什么问题,希望大家指正,我们共同进步。谢谢大家!
  • 候选码、主码、外码、全码、超码

    千次阅读 2020-11-29 19:30:45
    多个候选键中选择一个作为查询、插入或者删除元组的操作变量,被选用的候选码称为主码。 每个关系必定且仅一个主码,选定后主码不能重复 主属性 包含在主码中的各个属性称为主属性。 非主属性 不包含在任何...
  • ❤️ 关系数据结构及形式化定义 1.笛卡尔积:当做一表来说,就是一行是一元组,一列是一域,是域的基数的相乘 2.关系:一张规范的二维表 ...7.候选码关系中的某一属性组的值能唯一地标识一元组,而子集...
  • 关系模型

    千次阅读 2018-07-11 18:31:41
    关系模型 关系模型组成的三要素 关系数据结构 ...关系 关系模式 什么是关系模式 ...实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两不变性,应该由关系系统自动...
  • 是最小依赖函数集,一是求候选码,一是求闭包,一是要把关系模式分解成3NF且保持函数依赖,一是分解成3NF且保持函数依赖和无损连接。 记录一下我对这几问题的求法。可能会哪里漏洞,希望可以指...
  • 主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,261
精华内容 8,504
关键字:

当关系有多个候选码