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

    万次阅读 多人点赞 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、主表修改主键值,连带从表相关行的外键值一起修改。

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

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

     

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

    万次阅读 多人点赞 2019-05-27 18:32:39
    第一范式是关系模式的基本要求。 第二范式(2NF):在满足第一范式的前提下,非属性非部分依赖于关键字。要求实体的属性完全依赖于关键字。所谓完全依赖是指不能存在仅依赖关键字一部分的属性。 第三范式...

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

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

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

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

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

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

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

    展开全文
  • 关系的候选主码外码以及关系的完整性

    千次阅读 多人点赞 2020-05-26 17:34:40
    关系的候选主码外码 候选 定义:能惟一标识关系中元组的一个属性或属性集,称为候选(Candidate Key) “学生关系”中的学号能惟一标识每一个学生 “选课关系”中,只有属性的组合“学号+课程号”才能惟一...

    关系的候选码、主码、外码

    候选码

    定义:能惟一标识关系中元组的一个属性或属性集,称为候选码(Candidate Key)
    在这里插入图片描述
    “学生关系”中的学号能惟一标识每一个学生
    “选课关系”中,只有属性的组合“学号+课程号”才能惟一地区分每一条选课记录

    主码

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

    主属性和非主属性

    主属性:包含在主码中的各个属性称为主属性
    非主属性:不包含在任何候选码中的属性称为非主属性(或非码属性)
    全码 :所有属性的组合是关系的候选码
    超码:包含候选码的属性集合。
    在这里插入图片描述

    外码

    定义:如果关系R2的一个或一组属性X不是R2的主码,而是另一个关系R1的主码,则该属性或属性组X称为关系R2的外部关键键或外码(Foreign Key),并称R2为参照关系(Referencing Relation),关系R1称为被参照关系(Referenced Relation)。
    被参照关系的主码和参照关系的外码必须定义在同一个域上
    在这里插入图片描述

    关系的完整性

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

    实体完整性

    实体完整性是指主码的值不能为空或部分为空。
    在这里插入图片描述
    在这里插入图片描述

    参照完整性

    如果关系R2的外码X与关系R1的主码相符, 则X的每个值或者等于R1中主码的某一个值或者取空值。

    学生关系S的“系别”属性与系别关系D的主码“系别”相对应,因此,学生关系S的“系别”属性是该关系S的外码,学生关系S是参照关系,系别关系D是被参照关系。
    在这里插入图片描述

    用户自定义完整性

    用户自定义完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。
    在这里插入图片描述
    关系模型应该提供定义和检验这类完整性的机制,以便用统一的、系统的方法处理它们,而不要由应用程序承担这一功能。

    总结

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 关系模式中的各种(键/关键字)

    千次阅读 2021-03-15 21:02:18
    ,又称键、关键字,英文是key。唯一标识实体的属性集称为。 ...全码:一个候选包含关系模式中的所有属性,则该候选为全码 举个例子: 关系Student(学号,姓名,年龄,院系,班级)...

    码,又称键、关键字,英文是key。唯一标识实体的属性集称为码。

     超码(超键):即码,可以有多个,但至少有一个。

    候选码(候选键、候选关键字):其任意真子集都不能构成超码的超码。假设有个超码K(A1,A2,A3),加上属性A4还是超码,但是去掉A3后就不能唯一标识一个实体了,K就是候选码。候选码可以有多个。

    主码(主键,主关键字):选定的一个候选码,有且只能有一个

    全码:一个候选码包含关系模式中的所有属性,则该候选码为全码

     

    举个例子:

    关系Student(学号,姓名,年龄,院系,班级)

    语义规定:1.知道学号就唯一确定了一个学生实体 2.一个班上没有同名者 3.知道院系、姓名和班级也可以唯一确定一个实体

    超码:(学号) 、(学号,姓名)、(学号,姓名,年龄)、(学号,年龄)、(院系,姓名,班级)、....太多了,不写了

    候选码:(学号)、(院系,班级,姓名)

    主码:选定学号作为主码,则主码即(学号)

     

    水平有限,若有错误,敬请指正。

     

    展开全文
  • 首先说明 键字=码字,所以 主键=主码=关键字,候选键=候选=候选关键字... 所谓关系键,指的是一个表中的一个(或一组)属性,用来标识该表的每一行或与另一个表产生联系。 话不多说,上图:  相信这个图...
  • 关系数据库中的几个容易混淆的几个概念 也称键。表中的某个属性组,它可以唯一...在最极端的情况下,关系模式的所有属性是这个关系模式的候选,称为全码 外码 关系属性R中属性或属性组X并非R的,但X是另
  • 如何求关系模式的候选

    千次阅读 多人点赞 2020-06-27 19:44:47
    对于给定的关系模式R(A,A1,A2,…,An)函数依赖集F,可以把属性分为以下四类 L类:仅出现在F中的函数依赖左边的左部属性 R类:仅出现在F的函数依赖右边右部属性 N类:在F的函数依赖左右边均未出现的属性 LR类...
  • 数据库中主码和外码问题

    千次阅读 2018-03-27 21:50:55
    INSERT 语句与 FOREIGN KEY SAME TABLE 约束"FK__Course__Cpno__07F6335A"冲突.该冲突发生于数据库"first",表"dbo.Course", column 'Cno'. 语句已终止.在刚开始以学生-课程数据库为例...
  • 2.主码的定义:如果一个关系有多个候选,则选定其中一个为主码; 3.属性定义:候选的诸属性称为属性; 4.非属性定义:不包含在任何候选中的属性称为非属性; 5.实体完整性规则:如果属性(一个或者一...
  • 数据库--主码、候选外码

    千次阅读 2020-04-27 13:26:01
  • 如何求关系模式

    千次阅读 2018-03-13 15:43:32
    关系模式按照算法来说的话非常麻烦,我个人以为可以求出L型之后把LR型挨个试一遍。L型,R型,LR型根据属性出现的左右来区分。L型是属性只在左部出现。R型是属性只在右部出现。LR型是属性在两侧都出现。的定义...
  • 关系模式候选

    千次阅读 2019-02-20 13:59:02
    已知关系模式和函数依赖求候选的步骤: 只在右边出现的属性,不属于候选; 只在左边出现的属性,一定存在于某候选当中; 左右都不出现的属性一定存在于任何候选当中; 左右都出现的属性逐个与2,3的属性组合,...
  • ER图转换关系模式

    万次阅读 多人点赞 2015-08-17 11:18:02
    1.一个实体型转换为一个关系模式。实体的属性就是关系的属性。实 体的就是关系的。 例如在我们的例子中,学生实体可以转换为如下关系模式,其中学号 为学生关系的: 学生(学号,姓名,出生日期,所在系...
  • 关系模式的候选

    千次阅读 2020-07-04 09:59:35
    关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选。 若W是候选键,则必须满足两个条件:W的闭包是U;W没有冗余。 求候选的简单方法: (1)不在函数依赖集中出现的属性,必包含在候选中; ...
  • 2、主码主码关键字。关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,关键字用来在一个表中引用来自于另一个表中的特定记录。关键字是一种唯一...
  • 求解数据库关系模式的候选

    千次阅读 2020-05-03 10:54:02
    已知关系模式和函数依赖求候选的步骤: 只在右边出现的属性,不属于候选; 只在左边出现的属性,一定存在于某候选当中; 左右都不出现的属性一定存在于任何候选当中; 左右都出现的属性逐个与2,3的属性组合,求...
  • ER模型转关系模式

    千次阅读 多人点赞 2015-10-25 12:11:28
    ER图中的主要成分为实体类型联系类型,转换算法将实体类型联系类型转换为关系模式。转化为关系模式,主要确定3部分内容,关系模式的名称,属性,。 转换分为两个步骤:1.实体的转换。2.关系模式的转换; 1....
  • ❤️ 关系数据结构及形式化定义 ...5.关系可以有三种类型:基本关系(又称基本表或基表)、查询表视图表 6.关系是笛卡尔积的有限子集 7.候选关系中的某一属性组的值能唯一地标识一个元组,而子集...
  • 数据库主码外码

    万次阅读 多人点赞 2015-12-07 11:38:02
    主码和外码是用来实现参照完整性的,外的数据项需参照主码的数据项来操作。具体实现是在创建数据库时为表间创立关系。如:  三个关系: 学生信息表(学号、姓名、性别、出生年月、籍贯、所属学院) //学号 是...
  • 浅析如何求解关系模式的候选

    千次阅读 2020-05-18 12:40:14
    摘要:本篇文章讲解的内容是“浅析如何求解关系模式的候选”。在做多属性函数依赖集候选求解题目时,有些同学还是会不知所措,最主要原因是没有理解他们之间求解的思路算法。本文通过理论分析例题来浅析这块...
  • 在关系模型中能唯一标识一个元组的属性集称为关系模式的超码。 候选(Candidate Key): 不含多余属性的超码。 (注:这里的不含多余属性类似于随机过程中状态的最小闭集的概念,即是说,在候选这个属性集U中...
  • 如何求一个关系模式的候选

    千次阅读 2020-12-17 17:40:23
    关系模式R中U=ABC.......等N个属性,U中的属性在FD中有四种范围: 求候选的简单方法方法: (1)如果有属性不在函数依赖集中出现,那么它必须包含在候选中; (2)如果有属性不在函数依赖集中任何函数依赖...
  • 关系模式的候选

    千次阅读 多人点赞 2020-03-06 22:20:47
    根据最近做的题目网上的教学做个整理。 首先要明确以下几点: (1)如果属性只在函数依赖集的左边出现,则该属性一定包含在候选中。 (2)如果属性没有在属性依赖集中出现,则该属性一定包含在候选中。 (3)...
  • 1:求关系模式候选的方法 设关系模式R中的属性集U=ABC…,有N个属性,判断U中属性在FD中出现的位置 (1)左右出现; (2)只在左部出现; (3)只在右部出现; (4)不出现; 方法:按以下几步来求候选键 1.只在FD右部出现的属性...
  • (5)将关系模式R分解为3NF,并且保持函数依赖无损连接性。 解:已求得最小依赖集Fm={B→G,CD→A,CE→G,CDE→B,B→D} ; 左部相同原则分组,再将各属性并起来: U1(=B并DG)=BDG, U2=ACD, U3=CEG, U4=BCDE 将R...
  • 关系模式r的都为单属性,则r一定是 几范式,说明理由,没有部分函数依赖我懂, 答案写的是第二范式,怎么确定一定没有传递依赖呢
  • 求解关系模式R的候选

    千次阅读 2020-03-31 19:42:36
    设有关系模式R(U,F),其中U={A,B,C,D,E},函数依赖集F={ A→BC,CD→E,B→D,E→A},求出R的所有候选。 通过分析F发现,其所有的属性A、B、C、D、E都是LR类属性,没有L类、R类、N类属性。 (一)先从这些...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 359,520
精华内容 143,808
关键字:

关系模式主码和外码