精华内容
下载资源
问答
  • 首先说明 键字=码字,所以 主键=码=关键字,候选键=候选码=候选关键字... 所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系。 话不多说,上图:  相信这个图...

    一、讲解

           首先说明 键字=码字,所以 主键=主码=主关键字,候选键=候选码=候选关键字...

    所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行与另一个表产生联系

    话不多说,上图:

      相信这个图已经画得很清晰了,下面逐一解释:

      1、码=超键:能够唯一标识一条记录的属性或属性集。

      • 标识性:一个数据表的所有记录都具有不同的超键
      • 非空性:不能为空
      • 有些时候也把码称作“键”

      2、候选键=候选码:能够唯一标识一条记录的最小属性集

      • 标识性:一个数据表的所有记录都具有不同的候选键
      • 最小性:任一候选键的任何真子集都不能唯一标识一个记录(比如在成绩表中(学号,课程号)是一个候选键,单独的学号,课程号都不能决定一条记录)
      • 非空性:不能为空
      • 候选键是没有多余属性的超键
      • 举例:学生ID是候选码,那么含有候选码的都是码。
      • 少部分地方也有叫超级码的,但是见得不多

      3、主键=主码某个能够唯一标识一条记录的最小属性集(是从候选码里人为挑选的一条)

      • 唯一性:一个数据表只能有一个主键
      • 标识性:一个数据表的所有记录都具有不同的主键取值
      • 非空性:不能为空
      • 人为的选取某个候选码为主码

    4、主属性  包含在任一候选码中的属性称主属性。简单来说,主属性是候选码所有属性的并集

          非主属性  不包含在候选码中的属性称为非主属性。 非主属性是相对于主属性来定义的。

    5外键(foreign key):子数据表中出现的父数据表的主键,称为子数据表的外键。

    6、全码:当所有的属性共同构成一个候选码时,这时该候选码为全码。(教师,课程,学生)假如一个教师可以讲授多门课程,某门课程可以有多个教师讲授,学生可以听不同教师讲授的不同课程,那么,要区分关系中的每一个元组,这个关系模式R的候选码应为全部属性构成 (教师、课程、学生),即主码。

    7、代理键:当不适合用任何一个候选键作为主键时(如数据太长等),添加一个没有实际意义的键作为主键,这个键就是代理键。(如常用的序号1、2、3)

    8、自然键:自然生活中唯一能够标识一条记录的键(如身份证)

    二、例子

    下面举例说明

    课本上的定义过于笼统,下面我用一张学生成绩信息表给大家详细的说一下:

    学生成绩信息表中有(学号、姓名、性别、年龄、系别、专业等)

    超键/码:

      由于学号能确定一个学生,因此学生表中含有学号的任意组合都为此表的超键。如:(学号)、(学号,姓名)、(学号,性别)等

     若我们假设学生的姓名唯一,没有重名的现象。

          学号唯一,所以是一个超键
          姓名唯一,所以是一个超键
         (姓名,性别)唯一,所以是一个超键
         (姓名,年龄)唯一,所以是一个超键
         (姓名,性别,年龄)唯一,所以是一个超键

    候选键:

       学号唯一,而且没有多余属性,所以是一个候选键

       姓名唯一,而且没有多余属性,所以是一个候选键

      (姓名,性别)唯一,但是单独姓名一个属性就能确定这个人是谁,所以性别这个属性就是多余属性,所以(姓名,性别)不是候选键
      (姓名,年龄),(姓名,性别,年龄)同上,也不是候选键

    主键:

      主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,学号能唯一标识这一个元组。

    外键:

       外键就很简单了,假如我们还有一个教师表,每个教师都有自己的编号,假设老师编号在教师表中是主键,在学生表中它就是外键

    三、练习

    做一道练习题巩固一下(假设名字可能有重复):

    参考答案:

    1.答案:

    (1)候选关键字2个:(学号),(身份证号)
    (2)主关键字:(学号)
    (3)主属性2个:学号,身份证号
    (4)非主属性2个:姓名,系别
    2. 答案:

    (1)候选关键字1个:(学号,课程号)
    (2)主关键字:(学号,课程号)
    (3)主属性2个:学号,课程号
    (4)非主属性1个:成绩
    (5)外部关键字:学号(引用学生信息表中的学号),课程号(引用课程信息表中的课程号)
    3.答案:

    (1)候选关键字1个:(课程号)
    (2)主关键字:(课程号)
    (3)主属性1个:课程号
    (4)非主属性2个:课程名,学分 

    如有疑问请在评论区留言,如有帮助麻烦右上角点个赞~~蟹蟹(*^▽^*)

    展开全文
  • 码:关键字(主键,primary key)是被挑选出来,作表的行的唯一标识的候选关键字(也称为候选键)。一个表只有一个关键字。关键字又可以称为主键。 主键可以由一个字段(注释1),也可以由多个字段组成,...

    最近做项目要搞数据库看到范式那一节头脑发晕,概念都忘了,于是从网上搜罗并整理一下;
    函数依赖部分参考:https://blog.csdn.net/jsj13263690918/article/details/79796275

    主码:主关键字(主键,primary key)是被挑选出来,作表的行的唯一标识的候选关键字(也称为候选键)。一个表只有一个主关键字。主关键字又可以称为主键。 主键可以由一个字段(注释1),也可以由多个字段组成,分别称为单字段主键或多字段主键。又称主码。并且它可以唯一确定表中的一行数据,或者可以唯一确定一个实体。

    • 注释1:字段是逻辑设计中的数据描述,对应E-R图中的属性;也就是说主键可以由一个属性组成也可以由多个属性组成;

    主属性:在一个关系中,如果一个属性是构成某一个候选关键字 (候选码的属性集中的一个属性,则称它为主属性(Prime attribute)。

    候选键:(自己的理解)比方说 成绩表S(课程号,学号,成绩);此时课程号、学号就是候选键,能够唯一确定成绩,反之,其中任何一个主属性,比如课程号或者是学号都不能确定成绩;

    简单的说,候选码就是可以被选为主码的属性或属性组。当一个关系有N个属性或属性组可以唯一标识时,则说明该关系有N个候选码,可以选定其中一个作为主码。

    非主属性:表中的属性除了主属性就是非主属性;

    超键:超键包含候选键并且还有其他非主属性;

    外键(foreign key):一张表(关系)的列(属性)它同时存在表1和表2中,它不是表1的主键,而是表2的主键,就可以说他是表1的外键。注意:外键不一定是主键。

    放图帮助更好理解:

    在这里插入图片描述

    函数依赖

    我们可以这么理解(但并不是特别严格的定义):若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。也就是说,在数据表中,不存在任意两条记录,它们在X属性(或属性组)上的值相同,而在Y属性上的值不同。这也就是“函数依赖”名字的由来,类似于函数关系 y = f(x),在x的值确定的情况下,y的值一定是确定的。

    例如,对于表3中的数据,找不到任何一条记录,它们的学号相同而对应的姓名不同。所以我们可以说姓名函数依赖于学号,写作 学号 → 姓名。但是反过来,因为可能出现同名的学生,所以有可能不同的两条学生记录,它们在姓名上的值相同,但对应的学号不同,所以我们不能说学号函数依赖于姓名。表中其他的函数依赖关系还有如:

    系名 → 系主任
    学号 → 系主任
    (学号,课名) → 分数
    但以下函数依赖关系则不成立:

    学号 → 课名
    学号 → 分数
    课名 → 系主任
    (学号,课名) → 姓名
    从“函数依赖”这个概念展开,还会有三个概念:

    完全函数依赖

    在一张表中,若 X → Y,且对于 X 的任何一个真子集(假如属性组 X 包含超过一个属性的话),X ’ → Y 不成立,那么我们称 Y 对于 X 完全函数依赖,记作 X F→ Y。(那个F应该写在箭头的正上方,没办法打出来……,正确的写法如图1)

    图1
    在这里插入图片描述

    例如:

    学号 F→ 姓名
    (学号,课名) F→ 分数 (注:因为同一个的学号对应的分数不确定,同一个课名对应的分数也不确定)

    部分函数依赖

    假如 Y 函数依赖于 X,但同时 Y 并不完全函数依赖于 X,那么我们就称 Y 部分函数依赖于 X,记作 X P→ Y,如图2。

    图2
    在这里插入图片描述

    例如:

    (学号,课名) P→ 姓名

    传递函数依赖
    假如 Z 函数依赖于 Y,且 Y 函数依赖于 X (感谢@百达指出的错误,这里改为:『Y 不包含于 X,且 X 不函数依赖于 Y』这个前提),那么我们就称 Z 传递函数依赖于 X ,记作 X T→ Z,如图3。

    图3
    在这里插入图片描述

    展开全文
  • 候选码:关系中的一个属性或者属性组,能够唯一标识一个元组,且它的真子集不能唯一标识元组。 主码:从所有候选码中选择一个,作为主码。例如:学生关系(学号,身份证号,姓名,院系,...主属性:候选码的中的一个...

    候选码:关系中的一个属性或者属性组,能够唯一标识一个元组,且它的真子集不能唯一标识元组。

    主码:从所有候选码中选择一个,作为主码。例如:学生关系(学号,身份证号,姓名,院系,专业,性别 ,生日),有两个候选码:【学号】和【身份证号】,我们可以选择学号为主码,也可以选择身份证号为主码(当然,一般还是选择学号为主码)。

    属性:上例中:学号、身份证号、姓名。。。都是学生的属性。

    主属性:候选码的中的一个属性。上例中的学号、身份证号都可以称为主属性。选课(学号,课程号),此关系的候选码只有一个,为:【学号、课程号】,故主属性有:学号、课程号。

    碰到更多再进行补充,如有错误,请多多指正,_

    展开全文
  • 一:相关定义及举例 定义 在《数据库系统概论》(第五版)——王珊、萨师煊编著中: ...4.非主属性定义:不包含在任何候选码中的属性称为非主属性; 5.实体完整性规则:如果属性(一个或者一组属性)A是基本关...

    一:相关定义及举例

    定义

    在《数据库系统概论》(第五版)——王珊、萨师煊编著中:
    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(相对于普通学生表,和课程表)
    主属性定义:候选码的诸属性称为主属性;
    非主属性定义:不包含在任何候选码中的属性称为非主属性

    展开全文
  • 数据库中什么是候选码,主码,主属性和非主属性

    千次阅读 热门讨论 2021-05-07 19:45:30
    定义:不包含在任何候选码中的属性称为非主属性。 下面就拿一个例子说明: 例如:一个表中有属性:id,name,sex,height,cardId(身份证id) 在上面的例子中,候选码是谁呢? id,cardId 主码是谁呢? id可以...
  • 候选码主属性非主属性

    千次阅读 2019-02-20 09:55:08
    候选码:能唯一标识一个元组并且任何真子集都不能标识一个元祖的属性组 主属性:候选码并集的属性 非主属性:不在任何候选码中的属性
  • 超码:可以区分记录的一个属性或多个属性的集合。...非主属性:不属于任何候选码的属性。 ———————————————— 原文链接:https://blog.csdn.net/haoranhaoshi/article/details/109617202
  • 数据库之关系数据库之超码,候选码,主码,主属性,非主属性(非码元素)之间的关系 超码(Super Key): 在关系模型中能唯一标识一个元组的属性集称为关系模式的超码。 候选码(Candidate Key): 不含多余属性的...
  • 候选码:如果一个关系中,若某一个属性组的值能唯一标识一个元组,而该属性组的子集不能,则称该属性组为候选码。 码:如果候选码只有一个,那么这个就是候选码就是码。如果候选码是多个,那就任意选择一个候选...
  • 候选码:在学校里,院系,专业,班级,班里第多少号学生(学号)可以唯一标识一个任,则这就是一组候选码;再少一个也不能确定,从这 里边选一个当作码(这个比喻不严谨,但是能说明候选码),我们可以选择从里边...
  • 候选码、主码、主属性、非主属性

    千次阅读 2019-07-28 12:58:46
    属性(或多个属性构成,此时叫属性组),可以唯一标识元组(行),且其子集不能。 候选码可以1个,也可以多个。当有多个的时候,任意选一个作为码(也可以简称 码,也就是通俗我们讲的primary key)。 非常像...
  • 若关系中的某一属性属性组的值能唯一的标识一个元组,而其任何、子集都不能再...简单的说,候选码(超级码)就是可以被选为码的属性属性组。当一个关系有N个属性属性组可以唯一标识时,则说明该关系有N个候...
  • 2.1第一范式(1NF)无重复的列,保证每列的原子性,即每一列的各个属性值之间不能有相同部分,比如地址可以进一步拆分为 国家 省份 城市三列,可以理解为列不可拆分 第一范式(1NF)中数据库表的每一列都是不可...
  • 候选码 主码 主属性 非主属性 外码

    万次阅读 2018-03-06 20:58:57
    候选码:若关系中的某一属性组的值能唯一的标识一个元组,则称该属性组为候选码 在最简单的情况下,候选码只包含一个属性姓名性别... 码(候选码)中的属性称为主属性,而不在任何码中的出现的属性称为非主属性外...
  • 码:代表数目的符号 码 我们在建立数据库的时候,需要为每张表指定一个码,码也叫主键。 所谓码就是在实体集中区分不同实体的候选码。...2.码的选择应该是那些从不或极少变化的属性。...
  • 非主属性:不包含在候选码中的属性称为非主属性 全码:关系模式的所有属性是这个关系的候选码,则称该属性组为全码 例子:学生表(学号、姓名、性别、年龄、班级、系) 学号可以唯一的标识出一个同学的身份,我们可以...
  • 学习 https://blog.csdn.net/sumaliqinghua/article/details/85872446
  • 什么是码,主码,主属性,非主属性

    万次阅读 多人点赞 2014-10-21 15:33:38
     码:代表数目的符号 码 我们在建立数据库的时候,需要为每张表指定一个码,码也叫主键。  所谓码就是在实体集中区分不同实体的候选码。...码的选择应该是那些从不或极少变化的属性
  • 通俗理解主属性,范式!

    千次阅读 2018-12-27 19:29:57
    主属性? 候选码的诸属性叫做主属性,一个关系关系表的候选码可能有多个,每个候选码可能包括多个主属性(多个属性列)。概括来说,就是,只要是可以用某一列或者多列能够推出关系表中的所有的列,这个时候,那个某...
  • (正确答案)解析:其它关系的候选键,可以是 R 中的主属性或非主属性 B. (错误答案)解析:外键是另一个关系的主键 C. (错误答案)解析:其它关系的候选键,可以是 R 中的主属性或非主属性 D. (错误答案)解析:其它...
  • 若关系中的一个属性属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性属性组做候选码。 2、码:码指关键字。关键字(primary key)是表中的一个或多个字段,它的值...
  • 今天遇到两个表要相互关联,且两个表的关联字段都是非主属性的情况。 一般情况下我们是用: @ManyToOne(cascade={CascadeType.ALL}) @JoinColumn(name = "user_userId")。 public User getUser() { return ...
  • 什么是数据库范式 在设计关系数据库的时候,要求遵循不同的规范,而这些规范就被称为范式。...第三范式(3NF):在2NF基础上消除传递依赖,任何非主属性不依赖于其它非主属性。 巴斯-科德范式(BCNF):在3NF基础...
  • 数据库范式问题

    千次阅读 多人点赞 2018-03-25 16:40:31
    商业转载请联系作者获得授权,商业转载请注明出处。   国内绝大多数院校用的王珊的《数据库系统概论》这本教材,某些方面并没有给出很详细很明确的解释,与实际应用联系不那么紧密,你有这样的疑问也是挺正常的...
  • 2.3 非主属性 3. 第三范式(3NF) 4. 小结 什么是”范式(NF)” 按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它...
  • 非主属性定义:不包含在任何候选码中的属性称为非主属性; 实体完整性规则:如果属性(一个或者一组属性)A是基本关系R的主属性,则A不能取空值。 根据上面的定义,如果有下表: 工号 | 姓名 | 住址 | 年龄 | ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 368,685
精华内容 147,474
关键字:

非主属性