精华内容
下载资源
问答
  • 1)关系(Relation) ...所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。 超码是一个或多个属性的集合,这些属性可以让我们在一个实体集...

    1)关系(Relation)

    一个关系对应通常说的一张表

    2)元组(Tuple)

    表中的一行即为一个元组

    3)属性(Attribute)

    表中的一列即为一个属性,给每一个属性起一个名称,即属性名

    4)码(键)

    码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,他是整个实体集的性质,而不是单个实体的性质。它包括超码,候选码,主码。

    • 超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。
    • 候选码:关系(表)中的某个属性组,它可以唯一确定一个元组。
    • 若一个关系(表)中有多个候选码,则选定其中一个为主码。
    • 全码:关系的所有属性都包含在候选码中。
    • 主属性:包含在任何一个候选码中的属性
    • 非主属性 不包含在任何码中的属性
    • 主码: 主键就是候选键里面的一个,是人为规定的,例如学生表中,我们通常会让“学号”做主键,教师表中让“教师编号”做主键。
    • 外码: 外键比较简单,学生表中的外键就是“教师编号”。外键主要是用来描述两个表的关系。
    • 域(Domain):属性的取值范围。
    • 分量:元组中的一个属性值。
    • 形式化定义
      R(D 1 ,D 2 ,…D n )
      R:关系名
      n:关系的目或度(Degree)
      例:
      关系名(属性1,属性2,…,属性n)
      学生(学号,姓名,年龄,性别,系,年级)
      候补码和超码
      候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。
      因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。
      例如,如果K是超码,那么所有包含K的集合都不能是候选码;如果K,J都不是超码,那么K和J组成的集合(K,J)有可能是候选码。
    展开全文
  •  超码:在一个关系中,可以用来唯一标识一个元组的属性的集合称之为超码。 候选码:在一个关系中,能够用来唯一标识一个元组的最少属性集合称之为候选码。 主码:在一个关系中,如果用来唯一标识一...

         本篇文章所介绍的主要是针对关系数据库中概念数据模型和逻辑数据模型之间的转换。

      一、码

      首先,说明一下数据库中经常用到的用于标示一条记录(元组)的的码的概念,码又分为超码、候选码、主码。

      超码:在一个关系中,可以用来唯一标识一个元组的属性的集合称之为超码。

      候选码:在一个关系中,能够用来唯一标识一个元组的最少属性集合称之为候选码。

      主码:在一个关系中,如果用来唯一标识一个元组的候选码中只有一个属性,则这个属性称之为主码。

      三者之间的关系如下:超码是候选码的超集,候选码是主码的超集。下面以一个讲解清楚。假设一个关于学生信息的表格student,其中的属性有,stu_id(学号),name(姓名),age(年龄),address(地址)。那么超码可以由所有的属性组成的集合构成,例如(stu_id,name,age,adress)、(stu_id,name)、(stu_id,age)等都可以叫做student的超码;候选码为(stu_id);因为候选码只是由其中的一个属性组成,因此这个候选码又可以称之为主码。

      二、概念数据模型到逻辑数据模型的转化(以关系数据模型为例)

      前面博文讨论过,概念数据模型是用E-R图表示的,其中的三要素是实体、属性、联系。将概念数据模型转化为逻辑数据模型的步骤其实就是将E-R图中的各个部分转化为逻辑数据模型中使用的具体数据模型的各个部分。如果没有特别的交代,下面所说的逻辑数据模型指代的是关系数据模型。将概念数据模型转化为逻辑数据模型的大体规则如下:概念数据模型中的实体转化为逻辑数据模型中的关系,对应的实体的属性转化为关系数据模型关系的属性(也就是列);根据实体之间联系的不同具有不同的处置策略。

      实体之间的联系分为1:1、1:n、和m:n。下面分别对这三种联系转化为关系的步骤做讨论。

      1:1:这种关系是最好理解,同时也是最容易处理的关系。实体之间存在着一一对应的关系。在这种联系中,可以创建新的关系描述这种联系,这事将两个实体的主码作为新的关系的候选码;当然也可以不必创建新的关系,将一方关系的主码作为另一方关系的外键。例如两个关系A和B存在1:1联系,那么可以将A的主码作为B的外键,同时将B的主码作为A的外键,具体情况依据于具体的环境。以所做的红包的小练习为例,注册用户和账户之间存在着1:1的联系,用户管理者账户。E-R图如下:

    34200a3bdc0c2393bd5fe10db1076cf5.png

    图 1 用户与账户的E-R图

      用户与账户之间存在一一对应关系,但是创建账户的时候需要用户已经存在,因此这种情况下需要将用户的"uid"作为账户的外键,那么对应的关系如下:

    fe5741804aeebf93b931c571daa82517.png

    图 2 用户和账户的关系

      因为,在这个例子中额外的创建关系会导致不必要的额外存储空间的增加,因此不再重新创建额外的关系。

      1:n:一个实体可以对应额外的多个实体。这种联系中可以不必创建额外的关系表示二者之间的1:n的联系,此时只需要将“1”方的关系的主码放入到“n”方的关系的属性中作为其外键即可,同时将联系的属性加入到“n”方的关系中;当然也可以创建额外的关系表示二者之间的联系,那么“1”和“n”方的关系的主码作为候选码,同时将联系的属性加入到新建立的关系中。但是,这种情况下额外的创建新的关系显得冗余。还是以所练习的红包项目为例,一个大的红包根据指定的数值可以派生出很多的小红包。这两个实体分别对应着一个关系,其E-R图如下:

    a16b798617e1b52c7c1e62b51d053748.png

    图 3 小红包的大红包的E-R图

      由图3得知,小红包必须依赖大红包存在,因此在小红包中将大红包的bid作为小红包的外键即可,这样就不必建立额外的关系了。对应的关系如下:

      395f0d3353de1eae263fa1527b840504.png

    图 4 大红包和小红包对应的关系

      m:n:对于这种多对多的联系,必须建立新的关系以描述这种联系。“联系”对应的关系的属性中至少包含他说关联的双方实体的“主键”,若联系也有自身的属性,那么该属性一样纳入新建立的关系的属性中。由于红包项目中没有遇到类似的联系,因此以最经典的学生选课系统为例。很明显学生选课系统中的实体对应有学生和课程,一个学生可以选修多门课程,一门可能可被多个学生选修,因此两个实体之间是一种多对多的关系,对应的E-R图如下:

    e1c0c72172e5d1570ea3c02cb8934f3e.png

    图 5 学生与课程多对多关系图 

    a6a843a9bc540f50e6cb0a651aa4cad5.png

    图 6 学生与课程对应关系

      在上例中,学生与课程之间存在着多对多的联系,因此建立起新的选课关系来描述这种联系。在新的关系中将学生的主码和课程的主码作为选课的候选码,学生的主码和选课的主码的组合会出现在对应的选课关系中。如果此时要查询一个学生的成绩,需要使用联合查询的方式。

    《数据科学与人工智能》公众号推荐朋友们学习和使用Python语言,需要加入Python语言群的,请扫码加我个人微信,备注【姓名-Python群】,我诚邀你入群,大家学习和分享。

    ca9164cacd6e5ea38b0ef114c4698c4b.png

        关于Python语言,有任何问题或者想法,请留言或者加群讨论。

    展开全文
  • 码:指能够唯一标识一个元组的属性组(是属性组,包含多个一个或多个属性),但是不是一个最小码组合的情况,也就是其子集还能够唯一标识一个记录 候选码:指能够唯一标识一个元组的属性组(是属性组,包含多个一个...

    数据库的码,候选码,主码关系

    首先,需要了解相关的名称概念。

    字段,属性:每一个记录所具有的性质,属性
    
    表头:就是表中所有属性(或字段)的组合
    
    码:指能够唯一标识一个元组的属性组(是属性组,包含多个一个或多个属性),但是不是一个最小码组合的情况,也就是其子集还能够唯一标识一个记录
    
    候选码:指能够唯一标识一个元组的属性组(是属性组,包含多个一个或多个属性),但其子集不可以唯一标识一个记录,也就是候选码是一个最小码组合的情况
    
    主码:指能够唯一标识一个元组的属性组(是属性组,包含多个一个或多个属性),是候选码的其中一个,只能够定义一个主码
    
    元组,记录,:就是各个属性组合组合成的数据,可以理解为表中的一行数据
    

    码,候选码,主码关系

    
    
    展开全文
  • 候选码(Candidate Key):能唯一标识关系中元组的一个属性属性集 性质:唯一性,最小性 二、关系的主码和外码 主码(Primary Key):从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码...

    一、关系的候选码

    候选码(Candidate Key):能唯一标识关系中元组的一个属性属性集

    性质:唯一性,最小性

    二、关系的主码和外码

    主码(Primary Key):从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字)

    每个关系必定有且仅有一个主码,选定后不能重复!

    相关概念

    • 主属性(Prime Attribute):包含在主码中的各个属性称为主属性
    • 非主属性(Non-Prime Attribute):不包含在任何候选码中的属性称为非主属性(或非码属性)
    • 全码:所有属性的组合是关系的候选码
    • 超码:包含候选码的属性集合

    外码(Foreign Key):如果关系R2的一个或一组属性X不是R2的主码,而是另一个关系R1的主码,则该属性或属性组X称为关系R2的外部关系键或外码,并称R2为参照关系(Referencing Relation),关系R1称为被参照关系(Referenced Relation)

    被参照关系的主码和参照关系的外码必须定义在同一个域上

    三、关系完整性

    1、概述

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

    2、三类完整性约束

    • 实体完整性:必须满足的性质
      • 定义:主码的值不能为空或部分为空
    • 参照完整性:必须满足的性质
      • 定义:如果关系R2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值或者取空值
    • 用户自定义完整性:具体领域的语义约束
      • 定义:针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求

    四、关系代数

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

    • 关系代数是一种抽象的查询语言
    • 关系代数的运算对象与运算结果都是关系
    • 关系代数运算符

    关系代数的运算按运算符的不同主要分为两类

    • 传统的集合运算

      • 把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算时从关系的“水平”方向即行的角度进行的。包括并、差、交和广义笛卡尔积等运算

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

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

        则说关系R、S是相容的

    • 专门的关系运算

      • 不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。包括选取、投影、连接(θ连接,自然连接)和除法等运算

    2、连接

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

    等值连接与自然连接的区别

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

    3、除法

    除法运算是二目运算,设有关系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删除
    • 或关系写在两行中
    • 多表查询时,需要给出相同例子的域变量
    展开全文
  • 唯一标识一个元组的单个属性或者属性组合。 性质: 唯一性:候选码能唯一标识一个元组。 最小性:一个候选码的真子集不能唯一标识一个元组。 主码: 定义: 某个候选码,即:若候选码有多个,则选择其中一个...
  • 一、关系的候选码候选码(Candidate Key):能唯一标识关系中元组的一个属性属性集性质:唯一性,最小性二、关系的主码和外码主码(Primary Key):从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用...
  • 候选码主属性非主属性

    千次阅读 2019-02-20 09:55:08
    候选码:能唯一标识一个元组并且任何真子集都不能标识一个元祖的属性组 主属性:候选码并集的属性 非主属性:不在任何候选码中的属性
  • 候选码(关键字):某一属性组的值能唯一标识一个元组而其子集不能(去掉任意一个属性都不能标识该元组),则称该属性组为候选码(补充元组:表中的一行即为一个元组) 主属性:候选码包含的属性(一个或多个属性) 主码...
  • 1.码=能够唯一标识一元组的属性集 2.主键:能够唯一标识一元组的属性集 主键是从候选键中选择一个作为主键。 3.候选码,能够唯一标识一元组的属性集 候选码的任一真子集都不能唯一标识一组元组。 主属性:候选...
  • (3、列表元素都有索引和值两个属性,索引从0开始,每个索引都对应一个值;(4、有中括号括起来元素,元素之间有逗号隔开。 2、元组:(1、一经定义内容无法改变;(2、元组元素可以是不同类型;(3、元组使用圆括号括...
  • 超键:在关系中能够唯一标识一个元组的属性集称为超键。超键可以是一个属性,也可以是多个属性的组合。 候选键:不含多余元素的超键。也就是说,只要删除候选键中的任意一行属性,它就不再能唯一标识一个元组了。 ...
  • 若关系中一个属性属性值能够唯一标识一个元组,且他真子集不能唯一的标识一个元组,则称这个属性属性组做候选码。 2、主码:主码指主关键字。主关键字(primary key)是表中一个或多个字段,它值...
  • 在关系模型中能唯一标识一个元组的属性集称为关系模式的超码。 候选码(Candidate Key): 不含多余属性的超码。 (注:这里的不含多余属性类似于随机过程中状态的最小闭集的概念,即是说,在候选码这个属性集U中...
  • 主码 < 候选码 < 码 候选码: 可以唯一标识一个元组最少属性的集合就是候选码 候选码中所有属性都是必须,缺少了任何一个属性,就不能唯一标识一个元组(一条记录)了 超码:
  • JAVA备忘录(四):线程池面试题

    千次阅读 2020-01-20 17:52:12
    超键:在关系中能够唯一标识一个元组的属性集称为超键。超键可以是一个属性,也可以是多个属性的组合。 候选键:不含多余元素的超键。也就是说,只要删除候选键中的任意一行属性,它就不再能唯一标识一个元组了。 ...
  • 数据库中各种键

    2018-10-14 22:57:29
    键可以唯一标识一个元组。 超键、候选键等等统称为键。 超键 超键可以唯一标识一个元组。 超键可以去掉一个属性之后,还是一个超键。 超键的属性可以是一个,也是可以是多个。 候选键 候选键可以唯一标识一个...
  • 候选码:若关系中某一属性值能唯一标识一个元组,而其子集不能,则称该属性组为候选码 主码:若一个关系中有多个候选码,则选定其中一个为主码 主属性:候选码属性为主属性 比方说选修(学号,课程号,...
  • 候选码概念:若关系中一个属性属性值能够唯一标识一个元组,且他真子集不能唯一的标识一个元组,则称这个属性属性组做候选码。
  • 先说候选码,候选码就是可以区别一个元组(即表中的一行数据)的属性或属性的集合,比如学生表student(id,name,age,sex,deptno),其中的id是可以唯一标识一个元组的,所以id是可以作为候选码的,既然id都可以做候选码...
  • 如何求一个关系模式候选码

    万次阅读 多人点赞 2017-06-20 10:39:07
    首先来看候选码的定义:若关系中的某一属性组的值能唯一标识一个元组,则称该属性组为候选码。 若W是候选键,则必须满足两个条件:W的闭包是U;W没有冗余。 设关系模式R中U=ABC.......等N个属性,U中的属性在FD中...
  • 若关系中的某一属性或属性组的值能唯一标识一个元组,而其任何、子集都不能再标识,则称该属性组为(超级码)候选码。 例如:在学生实体中,“学号”是能唯一的区分学生实体的,同时又假设“姓名”、“班级”...
  • 候选码:某一个属性值能够唯一的标识一个元组,而其子集不能,则称该属性组为候选码 主码:若一个关系中有多个候选码,则选定其中一个为主码 主属性:候选码属性组中各个属性称为主属性 非主属性:不包含在候选码中...
  • 数据库之主属性与码

    2014-04-07 10:02:39
    先说候选码,候选码就是可以区别一个元组(即表中的一行数据)的属性或属性的集合,比如学生表student(id,name,age,sex,deptno),其中的id是可以唯一标识一个元组的,所以id是可以作为候选码的,既然id都可以做候选码...
  • 数据库中函数依赖、键和范式

    千次阅读 2018-05-27 21:07:35
    超键:是指能够唯一标识一个元组的属性集;候选键:能够唯一标识一个元组,且不含多属性;主键:用户选作元组标识的候选键;外键:本联系中不作为主键,单在其他关系中作为主键的属性或属性组。3.图解法求候选键步骤...
  • 数据库范式

    千次阅读 2017-07-31 11:17:37
    1.基本概念 实体:现实世界中客观存在并可以被区别的事物。...主码:标识一个元组的属性,实体表中通常称为主键。 候选码: 若关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何真子集都
  • 主码和主属性的区别

    千次阅读 2020-08-25 21:22:41
    主码和主属性的区别 ...候选码:一个属性值能唯一标识一个元组,则该属性组为候选码,注意:候选码不一定是唯一的。 关系模式:关系模式就是关系描述,它可以形象化表示:R(U,D,dom,F) ...
  • 候选码:关系中一个属性或者属性组,能够唯一标识一个元组,且它真子集不能唯一标识元组。 主码:从所有候选码中选择一个,作为主码。例如:学生关系(学号,身份证号,姓名,院系,专业,性别 ,生日),有两个...
  • 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):用户选作元组标识的一个候选键程序主键 比如一个小范围的所有人,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 673
精华内容 269
关键字:

唯一标识一个元组的属性