精华内容
下载资源
问答
  • 关系数据库中的几个容易混淆的几个概念 码 也称码键。表中的某个属性组,它可以唯一确定一个元组。比如学号 候选码 若关系中某一属性组的值能唯一的标识一个元组,而其子集不能,则称该属性组为候选码 候选码的...

    关系数据库中的几个容易混淆的几个概念

    也称码键。表中的某个属性组,它可以唯一确定一个元组。比如学号

    候选码

    若关系中某一属性组的值能唯一的标识一个元组,而其子集不能,则称该属性组为候选码
    候选码的各个属性称为主属性,不包含在任何候选码中的属性称为非主属性或者非码属性

    主码

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

    全码

    在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码

    外码

    关系属性R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码

    从以上的概念可以看出

    • 码是最大的集合
    • 候选码是能确定一个元组的最小子集
    • 主码是候选码的子集
    • 如果所有属性都是候选码,则整个属性组是码,也称为全码
    展开全文
  • 7.候选码:关系中的某一属性组的值能唯一地标识一个元组,而子集不能,则称该属性组(人话:几个属性可以作为一行(元祖)的标识,例如序号,课程号,身份证号,那么这三个都是候选码) 8.主码:从候选码选定其中...
  • 比如,你有一个员工的二维关系(表),大概这几个属性:员工表:系统内标识,身份证号,工号,姓名,出生日期,所在部门,理论上讲,可以有三个:Key1:系统内部标识,这个是数据库设计时,确定的唯一标...

    展开全部

    主码:

    我们在建立数据库32313133353236313431303231363533e58685e5aeb931333433626439的时候,需要为每张表指定一个主码,主码也叫主键.

    比如,你有一个员工的二维关系(表) , 大概这几个属性:员工表:系统内标识码,身份证号,工号,姓名,出生日期,所在部门,理论上讲, 可以有三个码:

    Key1 : 系统内部标识,这个是数据库设计时,确定的唯一标识。

    Key2 : 身份证号,理论上来讲,这个是全国唯一,但是经常听说有重复的。

    Key3 : 工号,公司内部定的,也不应该 重复。

    属性:

    属性就是这个二维关系(这张表)的列(字段),主属性,就是上述三个码中所包含的这些列:系统内部标识、身份证号、工号,非主属性,就是除了这三个属性之外的其他所有属性。

    扩展资料:

    常用的数据库字段类型如下:

    CHAR 固定长度字符串 最大长度2000 bytes

    2.VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749

    3.NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes

    4.NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes

    5.DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题

    6.LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作

    7.RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等

    8.LONG RAW 可变长度的二进制数据 最大长度2G 同上

    9.BLOB 二进制数据 最大长度4G CLOB 字符数据 最大长度4G

    10.NCLOB 根据字符集而定的字符数据 最大长度4G

    11.BFILE 存放在数据库外的二进制数据 最大长度4G

    展开全文
  • 在准备研究生复试的过程中,数据库中的关系模式里面有几个问题比较容易混淆。 一个是最小依赖函数集,一个是求候选码,一个是求闭包,一个是要把关系模式分解成3NF且保持函数依赖,一个是分解成3NF且保持函数依赖和...

    前言

    在准备研究生复试的过程中,数据库中的关系模式里面有几个问题比较容易混淆。
    一个是最小依赖函数集,一个是求候选码,一个是求闭包,一个是要把关系模式分解成3NF且保持函数依赖,一个是分解成3NF且保持函数依赖和无损连接。

    记录一下我对这几个问题的求法。可能会有哪里有漏洞,希望可以指出来。

    求闭包

    什么叫闭包?
    闭包就是由一个属性直接或者间接推出的所有属性的集合。
    例如:a→b,b→c;那么a的闭包就是{a,b,c};

    例子:设有关系模式R(A,B,C,D),F是R上的FD集,F={AB→C, C→D, E→A, D→B},求属性集AB的闭包;

    解:
    要求AB的闭包,首选我们可以设AB的闭包为X={A,B};
    要找到AB的闭包,那么就是在X的基础上,只要是X的子集能直接或者间接推出的属性,就把它给加到X里面,然后再在这个新的X基础上,再继续查找是否有属性能被X的子集推出,有的话添加进去X里面,没有则结束。

    由于AB→C,那么就把C加到X中,C又可以推出D,则把D也加到X中,D可以推出B,但是B已经在X里面了,继续检查,已经检查完毕,所以AB的闭包就是{A,B,C,D};

    求候选码

    候选码的定义:能唯一地标识一个元组的属性组的值,就称为候选键,也就是不含有多余属性的超键。(即候选键的子集就不能唯一地标识元组了)

    设关系模式有N个属性,全集U中属性在FD集中有四种情况:
    ①只出现在F左边
    ②只出现在F右边
    ③在F的左右均出现
    ④不出现在F中

    notes:
    、只出现在F右边的属性,肯定不属于候选键;
    、只出现在F左边的属性,一定存在于某个候选码里面,如果它的闭包是U,那么它一定是候选码;
    、出现在F左右两边的属性,如果它的闭包是U,那么它一定是候选码,如果闭包不是U,那么再让其与另外一个同样出现在F左右两边的属性结合,再求闭包;
    、 不出现在F中的属性,直接添加到候选码当中;

    例子:设有关系模式R(A,B,C,D,E),F={A→CD,BC→E,D→B,E→A}为R上的函数依赖集,试求R上的所有候选码;

    解:
    首先观察函数依赖集F,对其中的属性进行分组,
    只出现在F左边:无
    只出现在F右边:无
    出现在F左右两边:A,B,C,D,E
    不出现在F中:无

    对属性进行了分类之后,这个例子里面的属性均出现在F左右两边,那么就要先对每个属性求闭包;(根据上面求闭包的方法
    A的闭包:{A,B,C,D,E};因为闭包是U,所以属性A是候选码;
    B的闭包:{B};
    C的闭包:{C};
    D的闭包:{D,B};
    E的闭包:{A,B,C,D,E};因为闭包是U,所以E是候选码;

    对剩下的三个属性B,C,D继续组合求闭包;
    (这里注意为什么不用再考虑A和E属性,这里需要注意候选码的定义:候选码是不能有多余属性的超键,候选码的子集是不能够唯一标识元组的,否则我们把A和E考虑进去,求出来的就是超键而不是候选键)

    对B和C组合,求BC的闭包:{A,B,C,D,E},闭包是U,所以是候选码;
    对B和D组合,求BD的闭包:{B,D},不是候选码;
    对C和D组合,求CD的闭包:{A,B,C,D,E},闭包是U,是候选码;

    到了这里就已经结束了;
    所以R上的所有候选码是(E),(A),(B,C),(C,D);

    补充:如果R上还有一个属性G没有出现在函数依赖集F中,也就是属性G是上面所说的第四种情况,那就把属性G添加到候选码当中。

    求候选码其实就是求闭包;

    最小函数依赖集

    最小函数依赖集,通俗的说,其实就是**不含有冗余属性和冗余依赖关系,且F的依赖关系中的右边全部都是单一属性;**

    求最小函数依赖集的**步骤**:
    1、将F中的所有依赖右边化为单一元素;
    2、去掉F中的所有依赖左边的冗余属性;
    3、去掉F中所有冗余依赖关系;

    例子:F={ABD→E,AB→G,B→F,C→J,CJ→I,G→H};求最小函数依赖集;

    解:
    将F中的所有依赖右边化为单一元素;这里已经满足了;
    (举个例子,如果有A→CD,就拆开成A→C,A→D);

    去掉F中的所有依赖左边的冗余属性
    (对于依赖左边有多个属性的,去掉其中一个,看是否还能使依赖关系成立,如果成立,那么去掉的这个属性是冗余的,否则就不是冗余的)

    ABD→E,假如去掉A,求出BD的闭包,不包含E,所以属性A不冗余,不能去掉A,同理,如果去掉B或者D,AD和AB的闭包都不包含E,所以都不冗余;

    同理,AB→G,A和B都不冗余;
    B→F,C→J,G→H这三个的依赖左边都只有单个属性,所以跳过不考虑;

    剩下最后一个CJ→I,这里如果去掉C,J的闭包是不包含有I的,所以C不冗余,但是如果去掉J,因为C→J,所以J是冗余的,所以这里去掉冗余属性J;

    所以整理后,F={ABD→E,AB→G,B→F,C→J,C→I,G→H};

    去掉F中所有冗余依赖关系
    (这里是从F中去掉某个依赖关系,例如去掉了X→Y,从剩下的依赖关系中,求X的闭包,若闭包中包含了Y,那么X就是冗余的,需要去掉);

    如果去掉ABD→E,F就剩下了F={AB→G,B→F,C→J,C→I,G→H};
    这里我们求ABD的闭包,闭包是{A,B,D,G,H,F},不包含E,所以ABD不冗余,不可去掉;

    同理,如果去掉AB→G,AB的闭包是{A,B,F},不包含G,所以不冗余,不能去掉;

    同理,B→F,C→J,C→I,G→H都不是冗余的,不能去掉;

    所以最小函数依赖集F={ABD→E,AB→G,B→F,C→J,C→I,G→H};

    题目参考:最小函数依赖集百度百科

    分解成3NF且保持函数依赖

    参考了书本上的模式分解的算法,对于分解成3NF保持函数依赖的分解,书本上用的是合成法。

    思路:
    ①对函数依赖集F进行极小化处理,即把F变为最小依赖函数集F’;
    ②对所有不出现在F’中的属性记为U0,把这些属性从U中去掉,剩余的属性仍然记为U;
    ③对F‘按照具有相同左部的原则分组,对于每一组的并集,如果可以组合成U,那么3NF的分解完成。

    这里参考了JensLee的博客;
    这位博主在中间加了两个步骤:
    ①如果求得的函数最小依赖集左部都是单属性,则已经完成对关系模式的3NF分解,结束。
    ②去掉多余的函数传递依赖;

    例子:关系模式R<U,F>,有U={A,B,C,D,E,S,G},F={B→G,CE→B,C→A,CE→G,B→D,C→D};将关系模式分解为3NF且保持函数依赖;

    解:
    首先求出最小函数依赖集, 根据前面给出的例子,这里过程就不再赘述;
    求出最小函数依赖集F={B→G,CE→B,C→A,B→D,C→D};

    这里F中没有出现属性S,所以把它从U中去掉,新的U是{A,B,C,D,E,G};

    然后将F按照左部 相同的原则进行组合,就变成了(BGD),(CEB),(CAD);
    (这里检查一下,把三个组并起来,能重新组合成U,所以分组没问题)

    这里就可以下结论,已经完成了3NF的分解,且 保持函数依赖;
    结果为:(BGD),(CEB),(CAD);

    分解成3NF且保持函数依赖和无损连接

    这里的情况和分解成3NF并保持函数依赖挺像的,但是多了一个约束条件:要保持无损连接

    参考了书本上的算法和high-functioning的博客;

    下面给出分解的方法步骤:
    ①先求出保持函数依赖的3NF分解;
    ②求出关系模式的候选码;
    ③对保持函数依赖的分解结果和候选码作并集∪,令τ= ρ ∪{R(X)};
    ④若存在X⊆Ui,则将R(X)从τ中去掉;若存在Ui⊆X,则将R(Ui)从τ中去掉;

    例子:(还是选用上例进行分析)
    关系模式R<U,F>,有U={A,B,C,D,E,S,G},F={B→G,CE→B,C→A,CE→G,B→D,C→D};将关系模式分解为3NF且保持函数依赖和无损连接;

    解:

    上面已经求出了保持函数依赖的3NF分解,结果为(BGD),(CEB),(CAD);

    求关系模式的候选码,这里求出的候选码为:{SCE};(过程不再赘述)

    对候选码和分解结果作∪,τ={R1(BGD),R2(CEB),R3(CAD),Rx(SCE)};

    由于Ui和X之间没有包含关系,所以 答案即为所求。

    结果为:τ={R1(BGD),R2(CEB),R3(CAD),Rx(SCE)};
    (结果为保持了函数依赖和无损连接的3NF分解)

    展开全文
  • 主键 候选键 外键

    千次阅读 2010-09-14 18:02:00
    <br />2)主键:当个候选码时,可以选定一作为主码,选定的候选码称主键 <br />3)外键:关系R中的一个属性组,它不是R的候选码,但它与另一关系S的候选码相对应,则称这个属性组为R的外码或外键...

    几个概念:

    1)候选键:关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。

    2)主键:当有多个候选码时,可以选定一个作为主码,选定的候选码称主键

    3)外键:关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。

    所谓外键是指本表的某个值来自另外一个表的某个值(一般是另外表的主键),即本表的这个值要么允许为空,要么必须是另外表的某个字段的一个值,即外键是涉及到2个表的。


    举个例子
    有两个关系:
    student(s#,sname,d#),即学生这个关系有三个属性:学号,姓名,所在系别
    dep(d#,dname),即院系有两个属性:系号、系名

    则s#、d#是主键,也是各自所在关系的唯一候选键,d#是student的外键。

      

    数据库建表时一个表最多可以有几个主键,几个外键?

    主键在一个表中只有一个,但主键有两种,单一的和复合的,想设复合主键要先建立约束,外键可以有多个.  
    主键只有一个 但是可以设置为多个字段为主键,也即复合主键。 外键就随便你自己设置了也即可以有多个,可以设置除主键以外的其他字段全部是外键的。 
    展开全文
  • **1范式到3范式的定义都很明确也很好理解,但是BCNF的定义和判别条件很多教科书上很多种,很容易晕,下面先引出几个码的定义,然后给出具体例子谈谈BCNF的理解**。 1. 要想理解BCNF首先要搞清楚几个码的定义。 ...
  • 数据库设计的三大范式、BCNF、4NF

    千次阅读 2016-07-10 18:12:59
    码:表中可以唯一确定一元组的某个属性(或者属性组),如果这样的码不止一,那么大家都叫候选码,我们从候选码中挑一出来做老大,它就叫主码。相当于键值的意思。 主属性:一个属性只要在任何一个候选码中...
  • 数据库范式

    2019-09-19 20:46:34
    首先了解,在一关系模式里,候选码可以有,主码是从候选码里选择的,即候选码可以有 判断关系模式是第范式的过程 首先,关系模式的每个属性都是不可以分的,那么这关系就是1NF,2范式的要求是每非...
  • 主外键的区别

    2014-07-28 21:31:00
    这需要理清几个概念: 1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。2)主键:当多个候选码时,可以选定一个作为主...
  • 这需要理清几个概念: 1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。 2)主键:当多个候选码时,可以选定一个作为...
  • 在数据库什么是主键与外键2008-03-05 15:03这需要理清几个概念: 1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码。...
  • 外键约束详解

    千次阅读 2014-10-06 11:33:44
    1)候选键(CandidateKey):关系中的一个属性组,其值能唯一标识一元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选键(候选码)。 2)主键(PrimaryKey):当候选键...
  • 初学三大范式

    2020-01-29 19:24:43
    候选键和主键都具有唯一性,本来两没有区别,但是多个可以表示唯一性的属性时,你必然会选择其中一表示这表的唯一性,那这就是主键码,剩下的唯一性的属性自然都是候选码表,在其中一表...
  • 数据库常见面试题

    2019-12-27 22:50:29
    第一范式(1NF):数据库表中的每一字段都是单一属性的,这属性由基本数据类型组成,如为地址这个属性可以分为XX省XX市XX区XX详细地址 **第二范式(2NF):**在第一范式的基本上,数据库表中不存在对非关键字段对...
  • 这里我列出了几个求模式分解的时候需要用到的知识。你可以直接点击下面链接,跳转到我另外的文章查看详细内容。 函数依赖与三种范式 最小依赖集 候选码 范式介绍 这里也对1NF,2NF,3NF,BCNF做一个简明扼要的介绍。 1...
  • 6. 设关系模式R(A,B,C,D),函数依赖集F={AB→C,D→B},则R的候选码为 AD 。 7. 从关系规范化理论的角度讲,一只满足1NF的关系可能存在的四方面问题是:数据冗余度大、插入异常、_ 修改异常___和删除异常...
  • 3.5.3 给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中? 3.5.4 在一个文件中10G个整数,乱序排列,要求找出中位数。内存限制为2G。 3.5.5 时分秒针...
  • 1、增加“四以上推字上屏”功能:最大长大于4时,如果5码有字/词,则显示,否则首重码上屏 2、自定义词组优先显示: 3、似乎解决了“翻页锁定程序”的BUG:根据流程,乱改一处代码,不知是否有用。 051130版...
  • CruiseYoung提供的带详细书签的电子书籍目录 ... 数据库系统基础:初级篇(第5版)(讲述数据库系统原理的经典教材) 基本信息 原书名: Fundamentals of Database ... 10.3.3 的定义和参与属性 234 10.3.4...
  • //若此命令返回值是1, 表示hdisk11可以由AIX引导, 其他返回值表示hdisk11不是rootvg制作镜像的候选 #bootinfo -B hdisk11 //显示CPU位数是64还是32 bootinfo -K //查看那个硬盘是引导区 bootinfo -b ##bootinfo...

空空如也

空空如也

1 2
收藏数 23
精华内容 9
关键字:

候选码属性可以有几个