精华内容
下载资源
问答
  • 数据库 主码 外码

    千次阅读 2019-10-03 09:32:59
    主码外码也可以称为主键,外键。 什么是主码主码是一个能唯一标识一个元组的属性。在一个关系(表)中,主码不一定只有一个,但是一定要有的。因为元组,是对世界中某种事物的数据描述,而世界中各种事物,都...

    主码 ,外码也可以称为主键,外键。

    什么是主码,主码是一个能唯一标识一个元组的属性。在一个关系(表)中,主码不一定只有一个,但是一定要有的。因为元组,是对世界中某种事物的数据描述,而世界中各种事物,都具有唯一性,都是可以区分的。在计算机中为了描述事物的唯一性,引入了主码的概念。在一个关系中,不同元组的主码一定不能为空,且值一定要不同。因为如果为空说明这个事物是不可标识的,而这个世界的任何事物都是可以标识的,说以主码为空显然不合法;如果两个主码值相同则说明两个事物是相同的,而这个世界的任何事物都是不同的,所以两个主码值相同,显然也是不合法的。

    什么是外码,如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。外码的值要么为空,要么要为其对应的主码中的一个值。

    展开全文
  • 数据库中几个基本概念 主码 外码

    万次阅读 多人点赞 2015-07-17 10:20:22
    主码外码也可以成为主键,外键。 什么是主码主码是一个能唯一标识一个元组的属性。在一个关系(表)中,主码不一定只有一个,但是一定要有的。因为元组,是对世界中某种事物的数据描述,而世界中各种事物,都...

    主码 ,外码也可以称为主键,外键。

    什么是主码,主码是一个能唯一标识一个元组的属性。在一个关系(表)中,主码不一定只有一个,但是一定要有的。因为元组,是对世界中某种事物的数据描述,而世界中各种事物,都具有唯一性,都是可以区分的。在计算机中为了描述事物的唯一性,引入了主码的概念。在一个关系中,不同元组的主码一定不能为空,且值一定要不同。因为如果为空说明这个事物是不可标识的,而这个世界的任何事物都是可以标识的,说以主码为空显然不合法;如果两个主码值相同则说明两个事物是相同的,而这个世界的任何事物都是不同的,所以两个主码值相同,显然也是不合法的。


    什么是外码,如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。外码的值要嘛为空,要嘛要为其对应的主码中的一个值。

    展开全文
  • 数据库之主码外码

    万次阅读 多人点赞 2019-04-24 21:29:34
    想要明白主码外码的概念前,需要先对域和笛卡儿积概念有一个彻底的理解。请阅读的童靴务必耐心~O(∩_∩)O 1.域 定义:域是一组 具有相同数据类型值的 集合。(域就是集合,不过集合里的元素是相同的数据类型) ...

    目录

    1.域

    2.笛卡儿积

    3.关系

    主码

    外码


    想要明白主码和外码的概念前,需要先对域和笛卡儿积概念有一个彻底的理解。请阅读的童靴务必耐心~O(∩_∩)O

    1.域

    定义:域是一组 具有相同数据类型值集合。(域就是集合,不过集合里的元素是相同的数据类型)

    例如,自然数、整数、实数、大于一小于一百的数、{男,女}都可以是域。

    2.笛卡儿积

    笛卡儿积是 域上 的一种集合运算。

    定义:给定一组域D1,D2,D3···,Dn,允许其中某些域是相同的,D1,D2,D3,···,Dn的笛卡儿积定义为

               D1×D2×D3×···×Dn={(d1,d2,d3,···,dn) | di∈Di ,i=1,2,···,n}

    大白话就是从每个域中抽出一个元素放在一起,每一个(d1,d2,d3,···,dn) 称之为一个元组

    这样说还是比较抽象,举一个例子: 

                                      

    3.关系

    定义: D1×D2×D3×···×Dn 的子集叫做在域D1,D2,D3,···,Dn上的 关系,表示为 R(D1,D2,D3,···,Dn)。

                (笛卡儿积中若干个元组的集合就是关系)

    主码

    若关系中的某一个属性组的值能唯一地标识一个元组,而其子集则不能,则称该属性组为候选码(candidate key)

    若一个关系中有多个候选码,则选定其中一个为主码。例如学生的学号就可以作为一个主码,因为它是唯一的。

    一个关系可以没有主码,但是设置一个主码的话对数据库查询效率会高一些。

    主码不一定是只有一个属性,主码可以由一个或者多个属性组成。主码是候选码之一。

    考虑主码的时候考虑的是属性的唯一性,即该属性的值不会重复,如果重复了就无法唯一标识整个元组。

    主码和设置非空的关系是什么?

    主码的要求是:非空、唯一性。

    而设置某个属性:非空仅仅是不允许输入空值,但却可以重复。

     

    外码(外键)

    那么什么是外码呢?

    如果一个关系中的一个属性(该属性不能是候选码)是另外一个关系中的主码则这个属性为外码。

    外码的值要么为空,要么要为其对应的主码中的一个值。

     

    那么外键的作用是什么呢?

    保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。

    使两张表形成关联,外键只能引用外表中的列的值或使用空值。

     

    阻止执行(情况一):

    1、从表插入新行,其外键值不是主表的主键值便阻止插入;

    2、从表修改外键值,新值不是主表的主键值便阻止修改;

    3、主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行);

    4、主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。

    级联执行(情况二):

    1、主表删除行,连带从表的相关行一起删除;

    2、主表修改主键值,连带从表相关行的外键值一起修改。

           两种方法提供给用户选择。无论选取哪种方法,从表里都不会有多余行。

           从另一个角度理解,用拒绝同一事物在从表中的标志与主表不一致。

     

    展开全文
  • 首先说明 键字=码字,所以 主键=主码=主关键字,候选键=候选码=候选关键字... 所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系。 话不多说,上图:  相信这个图...

    一、讲解

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

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

    话不多说,上图:

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

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

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

    展开全文
  • 数据库主码外码

    万次阅读 多人点赞 2016-12-28 10:42:18
    数据库主码外码 主码外码是用来实现参照完整性的,外码的数据项需参照主码的数据项来操作。具体实现是在创建数据库时为表间创立关系。如:  三个关系: 学生信息表(学号、姓名、性别、出生年月、籍贯、所属...
  • 主码:唯一标识,相当于身份证号外码也可以当主码,即在财务...外码:引用另一个表的主码。相当于你在做一个财务表格 ,需要用到信息表格里的身份证号。外码可以为空------>推出外码可以为空或为被引用表的主码值
  • 候选码 主码 主属性 非主属性 外码

    万次阅读 2018-03-06 20:58:57
    则称该属性组为候选码 在最简单的情况下,候选码只包含一个属性姓名性别年龄张明男18李华女19在上边的表格中,姓名、性别和年龄均可做为候选码,我们需要从中选出一个作为主码主码:用于标识由多个码中选出的作为...
  • 外码是由参照完整性引出的,参照完整性规则就是定义外码主码之间的引用规则。 定义:设F施基本关系R的一个或一组属性,但不是关系R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码。(generally ...
  • 候选码、主码外码、全码、超码

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

    万次阅读 多人点赞 2019-04-06 19:35:59
    超码superkey: 形式:一个或多个属性的集合 作用:在一个关系中唯一地标识一个元组。 特点: ...可能包含无关属性 ...(通俗讲,就是同一个关系r上,如果某个属性...候选candidate key: 形式:一个或多个属性的集...
  • 如果F与基本关系S的主码相对应,则称F是R的外码,此处的相对应就是 两者有相同的域,即下图中,若学生中的专业号与专业中的主码“专业号”相对应,则称专业号为 学生关系 的外码。 学生(学号,姓名
  • 2.主码的定义:如果一个关系有多个候选码,则选定其中一个为主码; 3.主属性定义:候选码的诸属性称为主属性; 4.非主属性定义:不包含在任何候选码中的属性称为非主属性; 5.实体完整性规则:如果属性(一个或者一...
  • 关系数据库中的几个容易混淆的几个概念 码 也称码键。表中的某个属性组,它可以唯一确定一个元组。比如学号 候选码 若关系中某一属性组的值能唯一的标识一个...外码 关系属性R中属性或属性组X并非R的码,但X是另
  • 关系的候选码、主码外码 候选码 定义:能惟一标识关系中元组的一个属性或属性集,称为候选码(Candidate Key) “学生关系”中的学号能惟一标识每一个学生 “选课关系”中,只有属性的组合“学号+课程号”才能惟一...
  • 数据库中外码是非码属性,因此可取值为空值或对应参照表的主码值,而我在数据库系统导论这本书中看到一段代码将sno , cno设置为主码,但又将sno,cno设为外码,那岂不是会存在主码取空值的可能?该怎么理解?如图。...
  • 2、主码主码指主关键字。主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一...
  • 外码关系的完整性总结 关系的码 1. 候选码 候选码是能够唯一标识关系中某一个元组的一个属性或属性集,也叫候选键 如: 学生关系中,学号可以唯一标识学生,班级+姓名也可以唯一标识一个学生,学号和(班级,姓名...
  • 数据库--码(主码、候选码、外码

    千次阅读 2020-04-27 13:26:01
  • 可以将码理解为键的意思; **1....3.主码=主键:某个能够唯一标识一条记录的最小属性集。(候选码中人为挑选) 具有: 唯一性(一个数据表只能有一个主键) 标识性(一个数据表的不同记录值都具...
  • 学习 https://blog.csdn.net/sumaliqinghua/article/details/85872446
  • 数据库中主码外码问题

    千次阅读 2018-03-27 21:50:55
    INSERT 语句与 FOREIGN KEY SAME TABLE 约束"FK__Course__Cpno__07F6335A"冲突.该冲突发生于数据库"first",表"dbo.Course", column 'Cno'. 语句已终止.在刚开始以学生-课程数据库为例...
  • 表和完整性约束 表的定义以及完整性约束的...主码(主关键字,PRIMARY KEY__PK),在码中选择的一个代表,被定义为主码 主码的特点: 1、主码value不得为空 2、构成主码的每个字段不得重复 主属性是构成码的属性 ...
  • 一、候选码、主码外码 1. 候选码(Candidate Key) 定义:能唯一标识关系中元组的一个属性或属性集,称为候选码。 性质:具有唯一性和最小性。 2. 关系的主码外码 主码 定义:从多个候选码中选择一个作为查询、...
  • 基本格式模板: CREATE TABLE 表名 ( ... Sno CHAR(9) PRIMARY KEY, /* PRIMARY KEY主码*/ Sname CHAR(20) UNIQUE, /*UNIQUE使Sname取唯一值*/ Ssex CHAR(4)NOT NULL, /*NOT NULL使Ssex不能取空值
  • 二、关系的主码外码 主码(Primary Key):从多个候选码中选择一个作为查询、插入或删除元组的操作变量,被选用的候选码称为主关系码(主键,主码,关系键,关键字) 每个关系必定有且仅有一个主码,选定后不能...
  • 创建表时定义表的主码 创建表后定义或修改表的主码 参照完整性 创建表时定义外码 创建表后定义外码 定义参照完整性的违约处理 用户自定义完整性 NOT NULL/NULL DEFAULT UNIQUE CHECK ...
  • :red_heart_selector: 关系数据结构及形式化定义 1.笛卡尔积:当做一个表来说,就是一行是一个元组,一列是一个域,是域的基数的相乘 ...8.主码:从候选码选定其中一个为主码 9.主属性:候选码的诸属性称为主属性 10.
  • 主码的定义:如果一个关系有多个候选码,则选定其中一个为主码; 主属性定义:候选码的诸属性称为主属性; 非主属性定义:不包含在任何候选码中的属性称为非主属性; 实体完整性规则:如果属性(一个或者一组属性...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 276,142
精华内容 110,456
关键字:

主码外码