精华内容
下载资源
问答
  • 所谓关系键,指的是一个表的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系。 话不多说,上图:  相信这个图已经画得很清晰了,下面逐一解释:  1、=超键:能够唯一标识一条记录的属性或...

    一、讲解

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

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

    话不多说,上图:

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

      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个:课程名,学分 

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

    展开全文
  • 7.候选关系中的某一属性组的值能唯一地标识一个元组,而子集不能,则称该属性组(人话:有好几个属性可以作为一行(元祖)的标识,例如序号,课程号,身份证号,那么这三个都是候选) 8.主码:从候选选定其中...
  • 定义:从多个候选码选择一个作为查询、插入、删除元组的操作变量,被选用的候选码称为主关系码(主键,码,关系键,关键字) 每个关系必定有且只有一个码,选择后不能重复。 关系的属性 属性(Prime At....

    一、候选码、主码和外码

    1. 候选码(Candidate Key)

    定义:能唯一标识关系中元组的一个属性或属性集,称为候选码。

    性质:具有唯一性最小性

    2. 关系的主码和外码

    主码
    • 定义:从多个候选码中选择一个作为查询、插入、删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字)
    • 每个关系必定有且只有一个主码,选择后不能重复。
    关系的主属性
    • 主属性(Prime Attribute):包含在主码中的各个属性称为主属性。
    • 非主属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非主属性(或非码属性)。
    • 全码: 所有属性的组合式关系的候选码。
    • 超码:包含候选码的属性组合。
    外码
    • 定义:如果关系R2的一个或一组属性X不是R2的主码,而是另一个关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码(Foreign Key),并称R2为参照关系(Referencing Relation),关系R1称为被参照关系(Referenced Relation)。
    • 被参照关系的主码和参照关系的外码必须定义在同一个域上。

    二、关系的完整性

    1. 概述

    ​ 为了维护关系数据库中数据与现实世界的一致性,对关系数据库的插入、删除和修改操作必须有一定的约束条件,这些约束条件实际上是现实世界的要求。任何关系在任何时刻都要满足这些语义约束。

    2. 三类完整性约束

    实体完整性 必须满足的性质
    • 定义:实体完整性是指主码的值不能为空或部分为空。
    参照完整性 必须满足的性质
    • 定义:如果关系R2的外码X与关系R1的主码相符,则X的每个值

      或者等于R1中主码的某一个值 或者 取空值。

    用户自定义完整性 具体领域的语义约束
    • 定义:针对某一具体关系数据库的约束条件,它反映某一具体应用所设计的数据必须满足的语义要求。

    三、关系代数

    1. 关系代数的分类及其运算符

    • 关系代数是一种抽象的查询语言
    • 关系代数的运算对象与运算结果都是关系
    • 关系代数运算符
    关系代数的运算按运算符的不同主要分为两类
    • 传统的集合运算:把关系看成元组的集合,以元组作为集合中元素来进行运算, 其运算是从关系的“水平”方向即行的角度进行的。包括并(∪)、差(-)、交(∩)和广义笛卡尔积(×) 等运算。

      • 传统集合(除笛卡尔积)是典型的二目运算。因此需要在两个关系中进行,两个关系R,S,若满足

        • 具有相同的度
        • R中第i个属性和S中第i个属性必须来自同一个域(列同质)

        则说关系R、S是相容的。

      • 并操作:增加一条记录;

        差操作:删除一条记录。

    • 专门的关系运算:不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取(行)、投影(行列均改变)、连接(二目:θ连接 等值/大于/小于,自然连接 去掉重复列)和除法等运算。

      • θ连接:等值连接,小于连接,大于连接
        自然连接:在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉

      • 等值连接与自然连接的区别
        自然连接要求相等属性值的属性名相同,而等值连接不要求;
        自然连接是去掉重复列的等值连接。

      • 除法运算是二目运算,设有关系R(X,Y)与关系S(Y,Z),其中X,Y,Z为属性集合,R中的Y与S中的Y可以有不同的属性名,但对应属性必须出自相同的域。

        同时考虑行和列,适合包含“全部”和“至少”之类的查询。

    四、元组关系的演算

    • 定义:元组关系演算中,以元组为单位,通过谓词公式约束所要查找元组的条件,可以表示为 {t |ψ(t)}

      其中,t为元组变量,即查询的目的。ψ称为元组演算的谓词公式,即查询的条件。

    • {t |ψ(t)}表示使为真的元组t的集合。

      ψ(t) 可以通过原子公式、约束变量、自由变量和运算符构成。

    • 若元组演算公式中的一个元组变量前有全称量词存在量词,则称该变量为约束元组变量,否则称为自由元组变量。

    五、域关系演算

    定义:以元组中的域为单位,按照谓词公式所约束的条件查询所需的元组,表示为

    ​ {<x1,x2,…xn>|R(x1,x2,…xn)}

    • 其中x1,x2,…xn代表域变量,即元组的分量,R代表由原子构成的公式;
    • R的定义如元组演算关系,同样是反复由原子公式、自由变量、约束变量和运算符构成。
    域关系演算语言
    QBE(Query By Example)
    • 一种高度的非过程化,基于屏幕表格的查询语言。
    • 用户通过填写表格,并给出查询事例的方式获取结果。
    • 给出的查询事例是域变量。
    QBE语言的使用
    关系名属性1……属性n
    操作命令属性值或查询条件……属性值或查询条件
    • 操作命令:P打印或显示、U修改、I插入、D删除
    • 或关系写在两行中
    • 多表查询时,需要给出相同例子的域变量
    展开全文
  • 候选是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键 如: 学生关系中,学号可以唯一标识学生,班级+姓名也可以唯一标识一个学生,学号和(班级,姓名)都是候选 候选需要满足: 唯一性:...

    关系的码

    1. 候选码

    候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键
    如:

    • 学生关系中,学号可以唯一标识学生,班级+姓名也可以唯一标识一个学生,学号和(班级,姓名)都是候选码

    候选码需要满足:

    1. 唯一性:唯一标识一个元组(注意不是说候选码只有一个)
    2. 最小性:构成候选码的属性个数最少,比如前面的(班级,姓名),再添加一个学号或其他属性就多此一举了

    2. 主码

    主码是从候选键中选着一个作为查询、插入、删除元组操作的操作变量,也叫主键、主码、关系键、关键字
    简单来说就是从候选码中选出的一个最具代表性的

    • 主属性:包含在任何一个候选码的各个属性称为主属性(也就是说,之前的(班级,姓名)中,班级和姓名都是主属性)
    • 非主属性:不包含在任何候选码中的属性

    3. 外码

    关系R1,R2,其中属性集X是R1的非主码属性,但X是R2的主码,则称X是R1的外码(也叫外键、外部关系键),R1为参照关系,R2为被参照关系

    • 外码的取值是由被参照的关系的主码的域决定的,也就是外码的域来自“那个”主码的域(R1的外码和R2的主码必须在同一个域上)

    注意一个地方,外码只是不是主码,不代表外码不能是主属性,我通过下面的例子来对候选码、主码、外码进行说明:
    学生表课程表

    选课表

    如上三个关系表,分别为
    学生(学号,姓名,性别,专业,年龄)
    课程(课程号,课程名,学分)
    选课(学号课程号,成绩)
    黄色标记的是主码,可以看见的是,选课关系中主码由学号和课程号两个属性组成
    而单个学号或者课程号是无法做到唯一标识的
    因此学号或课程号不能单独作为主码
    而学号和课程号分别是学生和课程的主码,则选课关系中,学号和课程号都是外码,并且学号和课程号是选课关系中的主属性

    关系的完整性

    为了维护关系数据库中数据与现实的一致性(完整性),需要对数据操作进行一定的约束。

    有如下三类

    1. 实体完整性:主码的值不能为空或部分为空
    2. 参照完整性:外码来自被参照关系的主码,且可以为空,但作为被参考的关系的主码不能为空(外码可以为空时,外码通常是非主属性)
    3. 用户自定义完整性:针对某一具体关系数据的约束条件,比如规定取值范围

    总结

    关系的码对于后面创建数据库很重要,尤其是外码这一块很容易出错
    在寻找主码时通常选择最具代表性的

    • 假设姓名没有重复,姓名学号都可以作为主码,这个时候还是选择学号方便,第一这样比较通性,第二,在构建选课关系用学号更便捷

    之后有时间会添加一个寻找关系码的题目

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

    千次阅读 热门讨论 2021-05-07 19:45:30
    定义:若关系中的某一属性组的值能唯一标识一个元组,而其子集不能,则成为该属性组为候选主码 定义:若一个关系有多个候选,则选定其中一个为主码属性 定义:候选的诸属性成为属性。 非属性...

    候选码

    定义:若关系中的某一属性组的值能唯一标识一个元组,而其子集不能,则成为该属性组为候选码。

    主码

    定义:若一个关系有多个候选码,则选定其中一个为主码。

    主属性

    定义:候选码的诸属性成为主属性。

    非主属性 

    定义:不包含在任何候选码中的属性称为非主属性。

     

    下面就拿一个例子说明:

    例如:一个表中有属性:id,name,sex,height,cardId(身份证id)

    在上面的例子中,候选码是谁呢? id,cardId 

    主码是谁呢? id可以,cardId也可以

    主属性是谁呢? id和cardId

    非主属性是谁呢?name,sex,height 

     

    上面是我初步的理解,如果大家有不同的见解,欢迎评论区讨论,及时更正。

    展开全文
  • 关系中的一个属性或属性组的值能够唯一地标识一个元组,且他的真子集不能唯一的标识一个元组,则称这个属性或属性组做候选。 2、主码主码关键字。关键字(primary key)是表的一个或多个字段,它的值...
  • 例如,电子的质量(9×10-28克)和太阳的质量(2×1033克)相差甚远,在定点计算机无法直接表示,因为小数点只能固定在某一个位置上,从而限制了数据的表示范围。 为了表示更大范围的数据,数学上通
  • 2.主码的定义:如果一个关系有多个候选,则选定其中一个为主码; 3.属性定义:候选的诸属性称为属性; 4.非属性定义:不包含在任何候选码中的属性称为非属性; 5.实体完整性规则:如果属性(一个或者一...
  • 候选主码、外、全码、超码

    千次阅读 2020-11-29 19:30:45
    文章目录1.候选2.主码主属性非属性3.外4.全码5.... 1.候选 定义:能唯一标识关系中元组...关系R1的某一个属性(集)不是R1的主码且在另一关系R2主码,则称该属性(集)为关系R1的外。 4.全码 所有属性的组
  • 超码、候选主码 与 外

    万次阅读 多人点赞 2019-04-06 19:35:59
    作用:在一个关系中唯一地标识一个元组。 特点: 可能包含无关属性 超码的任意超集也是超码。(通俗讲,就是同一个关系r上,如果某个属性集合S包含超码K,即K是S的子集,那么S也是 r 的超码) 一张表(一个...
  • 1.在创建数据库的时候int(10),varchar(255)括号后面的数字代表什么...这里显示的宽度和数据类型的取值范围是没有任何关系的,显示宽度只是指明Mysql最大可能显示的数字个数,数值的位数小于指定的宽度时会由空格...
  • 【数据库】搞懂 超码、候选主码、函数依赖!

    千次阅读 多人点赞 2019-07-31 17:57:02
    一、概念 二、举例 1、超码 2、候选 3、主码 4、属性与非属性 ...今天看了数据库范式,结果盯着一篇知乎回答看了很久还是没搞明白,在讲的...一查如一石激起千层浪,又多了超码、候选主码、超键、候...
  • 探究:java的char的取值范围,为什么是-128到127? 一:char的初始化 char是Java的保留字,与别的语言不同的是,char在Java是16位的,因为Java用的是Unicode。不过8位的ASCII包含在Unicode,是从...
  • 字典的key和value的取值规则

    千次阅读 2019-09-11 21:18:01
    dic[“name”]表示字典dic键"name"对应的值"xz" B.增(以增加身高为例) dic[“height”]=175 运行后得到:dic={“name”:“xz”,“age”:19,“weight”:100,“height”=175} C.删(以删掉年龄为例) del ...
  • 初用vue,今天遇到了一个很诡异的现象,最终得以解决,再次记录以免以后再次掉坑。...jobTypeMap存放的是英文代码与汉字的对照关系。 &lt;tr v-for="(item,index) in employees"&...
  • 可以将理解为键的意思; **1....3.主码=主键:某个能够唯一标识一条记录的最小属性集。(候选中人为挑选) 具有: 唯一性(一个数据表只能有一个主键) 标识性(一个数据表的不同记录值都具...
  •  由n个域笛卡尔积(即从每个域抽取作为元组的一个分量)的子集组成的一张2维表称为关系。由于并非所有元组都有意义,所以只有那些有意义的元组的集合才是关系。  关系有3个属性:a、关系名(表名) b、属性列表...
  • [b]属性、域、元组、关系、候选、主键、外键、关系代数[/b] [u]1、属性[/u] 对应表的列 [u] 2、域[/u] 列的取值范围(相同数据类型的值的集合) [u]3、元组[/u] 表的行即为元组 [u]4、关系[/u]...
  • 若属性(或属性组)F是基本关系R的外,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S某个元组的码值...
  • 首先是条码扫描头在设备管理器可以看到就是一个键盘设备。 然后各家厂商都可以设置扫描结果设置自定义前缀后缀,搜索设备型号找到文档,扫描指定的设置即可,我这边使用的是Honeywell(霍尼韦尔)MS5145条码阅读...
  • 试述关系模型的完整性规则。在参照完整性,什么情况下外属性的值可以为空值?
  • 1)关系(Relation) 一个关系对应通常说的一张表 2)元组(Tuple) 表的一行即为一个元组 3)属性(Attribute) ...它包括超码,候选主码。 超码是一个或多个属性的集合,这些属性可以让我们在一个实体集...
  • 2、参照完整性:是指参照关系中每个元素的外要么为空(NULL),要么等于被参照关系中某个元素的主码; 比如今天是9月2日是开学日,大学新生刚来报道,在学生表里,有的学生可能还没来得及分配具体的班,所以这些还未...
  • 关系数据库——关系数据语言

    千次阅读 多人点赞 2019-10-22 19:52:51
    关系 域:一组具有相同数据类型的值的集合(即取值范围) 笛卡尔积:域上的一种集合运算。结果为一个集合,集合的每一个元素是一个元组,元组的每一个分量来自不同的域。 基数:一个域允许的不同取值个...
  • 首先,真值、机器数、原码、反码和补码这几个概念并不是Java独有的,而是真个计算机世界通行的概念。 真值:就是我们日常说的十进制的正数,负数和0,比如-1,-2,-100,0,1,2,1000,100000等等。 机器数:首先...
  • sqlserver类型取值范围

    千次阅读 2017-04-12 10:21:46
    Timestamp数据与插入数据或者日期和时间没有关系。  Bit由1或者0组成。当表示真或者假、ON或者OFF时,使用Bit数据类型。 Uniqueidentifier由16字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求...
  • 关系模型的一些关键字的定义

    千次阅读 2017-06-08 21:43:03
    关系(Relation):一个关系对应通常说的一张表。元组(Tuple):表的一行即为一个元组。属性(Attribute):表的一列即为一个...关系模型:对关系的描述,一般表示为 关系名(属性1,属性2,…,属性n)若关系中的某一属性
  • 关系模型有3类完整性约束:域完整性、实体完整性、参照完整性。 1.域(列)完整性 也就是用户定义的表字段的完整性 通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系...
  • 多值属性将被映射为一个单独的关系,这个关系中包含一个代表多值属性的列和一个连接相应主码的外列,这两列组成这个单独关系的一个复合主码。图3-38展示了如何将一个具有多值属性的实体映射为关系。 一旦如图3-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,966
精华内容 30,786
关键字:

关系中主码的取值