精华内容
下载资源
问答
  • 数据库中键的关系

    2020-10-12 07:21:50
    可以是一个属性,也可以是多个... 外键是其他关系的主键,比如在学生表中的系的id,它是系表中的主键,这里是学生表的外键,外键主要用于关联使用. 内容整理自:https://www.bilibili.com/video/BV1B5411a7Ev?p=49 ...

    • 超键可以是一个属性,也可以是多个属性的组合.
    • 候选键是消除掉多余属性的超键.比如图中的(学号, 姓名),它可以作为超键,其中姓名是冗余的,将它去除后才能够作为候选键.
    • 候选键可以有多个,比如学号和身份证号,而主键只能从其中选择一个.
    • 外键是其他关系的主键,比如在学生表中的系的id,它是系表中的主键,这里是学生表的外键,外键主要用于关联使用.

    内容整理自:https://www.bilibili.com/video/BV1B5411a7Ev?p=49

    展开全文
  • 关系数据库中的”主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键...
    关系数据库中的“键”
    

    主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。

    必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。

    首先来谈:主键。

    关系数据库依赖于主键---它是数据库物理模式的基石。主键在物理层面上只有两个用途:1. 惟一地标识一行。

                                  2. 作为一个可以被外键有效引用的对象。

    基于以上这两个用途,下面给出了我在设计物理层面的主键时所遵循的一些原则:

            1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。

            2. 主键应该是单列的,以便提高连接和筛选操作的效率。

                 注:使用复合键的人通常有两个理由为自己开脱,而这两个理由都是错误的。其一是主键应当具有实际意义,然而,让主键具有意义只不过是给人为地破坏数据库提供了方便。其二是利用这种方法可以在描述多对多关系的连接表中使用两个外部键来作为主键,我也反对这种做法,理由是:复合主键常常导致不良的外键,即当连接表成为另一个从表的主表,而依据上面的第二种方法成为这个表主键的一部分,然,这个表又有可能再成为其它从表的主表,其主键又有可能成了其它从表主键的一部分,如此传递下去,越靠后的从表,其主键将会包含越多的列了。

            3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。

                     注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。

            4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

            5. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

    展开全文
  • 数据库的关系键

    千次阅读 2014-12-29 16:32:34
    关系关系数据库的重要组成部分。关系是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。 数据库理论中, 超、候选与主键之间的关系: • 候选是超的一种:不含有多余...
    

    关系键是关系数据库的重要组成部分。关系键是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。


    数据库理论中, 超键、候选键与主键之间的关系:
    • 候选键是超键的一种:不含有多余属性的超键
    • 某个候选键被选为主键

    主键:

           主键,又称主码(primary key)。数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。

          从技术的角度来看,primary key和unique key有很多相似之处。但还是有以下区别:

    1. 作为primary key的域/域组不能为Null。而unique key可以。
    2. 在一个表中只能有一个primary key,而多个unique key可以同时存在。
    3. 更大的区别在逻辑设计上。primary key一般在逻辑设计中用作记录标识,这也是设置primary key的本来用意。而unique key只是为了保证域/域组的唯一性。

    超键

         超键(superkey),有的文献称“超码”,是在数据库关系模式设计中能够唯一标示多元组的属性集。

         包含所有属性的集叫做明显超键

    候选键

          在 关系模型中,候选键候选码candidate key)是某个关系变量的一组属性所组成的集合,它需要同时满足下列两个条件:

    1. 这个属性集合始终能够确保在关系中能唯一标识元组。
    2. 在这个属性集合中找不出合适的真子集能够满足条件(1)

          满足第一个条件的属性集合称为超键,因此我们也可以把候选键定义为“最小超键”,也就是不含有多余属性的超键。

         候 选键的重要性是它们能够在关系中唯一标识出不同的元组,因此超键也是在设计数据库模式时需要指定的最重要的约束之一。由于在关系模型中,每个关系都是一个集合(没有重复的元素),所以每个关系都至少有一个候选键(因为所有属性组合必然是个超键)。但是在某些关系型数据库中表也能代表多重集,所以在每个关系中都显式地定义至少一个候选键是一条很重要的设计原则。数据库管理系统通常都需要将每个关系中的某个候选键定义为主键,亦即这个候选键是区分不同元组时首选的识别方式,例如外键通常就是引用主键而非其他候选键。参看数据库系统概念,它还这么说:“候选键属性可以为null,主码属性不能为null”,那也就是说并不是所有的候选码都可以作为主键???希望网友给予指导,在此先谢谢了!!!

    外键

    外键foreign key),又称外部键。其实在关系数据库中,每个数据表都是由关系来连系彼此的关系,父数据表(Parent Entity)的主键(primary key)会放在另一个数据表,当做属性以创建彼此的关系,而这个属性就是外键。

    比如,学生跟老师之间是教学的关系,学生数据表会有个属性叫指导老师(FK),而这个值就是对应到老师数据表的老师代号(PK),学生的指导老师就是外键。

    代理键

    在关系型数据库设计中,代理键是在当数据表中的候选键都不适合当主键时,例如数据太长,或是意义层面太多,就会请一个无意义的但唯一的字段来代为作主键。

    代理键是:

    Surrogate (1) – Hall, Owlett and Codd (1976)
    一个代理键值确定了外部世界的一个实体。代理键值是数据库生成的,从来不显示给用户或应用程序看。
    Surrogate (2) – Wieringa and De Jonge (1991)
    一个代理键值确定了数据库中的一个对象。代理键值是数据库生成的,用户或应用程序看不到它。

    在实践中,代理键值通常是个自动递增的数字。在Sybase或SQL Server,用identity column标识代理键,PostgreSQL里用serial,Oracle里用SEQUENCE,在MySQL里用一个标记有AUTO_INCREMENT的字段。

    何时使用代理键

    以中国大陆的十八位身份证号为例,从左往右为六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

    一家公司想要将它的客户记入数据库,以客户的身份证号作为主键当然是可以的;但是这18位身份证号是用于标识大陆13多亿人口的,一家公司的客户显然没有这么多,所以用18位的数字作为主键有点浪费空间。

    另外,身份证号中包含了地区、生日信息,若以身份证号为主键,要不要另开字段记录客户的地区、生日也是个问题。如果不另开字段,从主键(身份证号)中提取地区、生日有点麻烦;如果开字段,主键和地区、生日字段的数据存在冗余。

    所以,一般的做法是,根本不记录客户的身份证号(除非有其他需求),用一个代理键作为主键,另开字段记录客户的地区、生日等信息。

    展开全文
  • 详谈关系数据库中的

    千次阅读 2006-05-27 11:57:00
    关系数据库中的”主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键...

                                                           关系数据库中的“键”

    主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。

    必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。

    首先来谈:主键。

    关系数据库依赖于主键---它是数据库物理模式的基石。主键在物理层面上只有两个用途:1. 惟一地标识一行。

                                   2. 作为一个可以被外键有效引用的对象。

    基于以上这两个用途,下面给出了我在设计物理层面的主键时所遵循的一些原则:

            1. 主键应当是对用户没有意义的。如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。

            2. 主键应该是单列的,以便提高连接和筛选操作的效率。

                 注:使用复合键的人通常有两个理由为自己开脱,而这两个理由都是错误的。其一是主键应当具有实际意义,然而,让主键具有意义只不过是给人为地破坏数据库提供了方便。其二是利用这种方法可以在描述多对多关系的连接表中使用两个外部键来作为主键,我也反对这种做法,理由是:复合主键常常导致不良的外键,即当连接表成为另一个从表的主表,而依据上面的第二种方法成为这个表主键的一部分,然,这个表又有可能再成为其它从表的主表,其主键又有可能成了其它从表主键的一部分,如此传递下去,越靠后的从表,其主键将会包含越多的列了。

            3. 永远也不要更新主键。实际上,因为主键除了惟一地标识一行之外,再没有其他的用途了,所以也就没有理由去对它更新。如果主键需要更新,则说明主键应对用户无意义的原则被违反了。

                     注:这项原则对于那些经常需要在数据转换或多数据库合并时进行数据整理的数据并不适用。

            4. 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

            5. 主键应当有计算机自动生成。如果由人来对主键的创建进行干预,就会使它带有除了惟一标识一行以外的意义。一旦越过这个界限,就可能产生认为修改主键的动机,这样,这种系统用来链接记录行、管理记录行的关键手段就会落入不了解数据库设计的人的手中。

     

    展开全文
  • (转自:http://www.cnblogs.com/pingkeke/archive/2006/05/29/412106.html)主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键设计对物理数据库性能和可用性都有着决定性影响。 必须...
  • 键在关系数据库中起着重要作用,它是关系数据库模型的重要组成部分。下面本篇文章就来带大家认识一些数据库中常见的键,希望对大家有所帮助。为什么我们需要使用键?在实际应用中,存储数据所需的表的数量很大,并且...
  • 数据库中的键(码)

    千次阅读 2019-08-13 15:51:20
    数据库中的键(key)也可以称为码,是关系模型中的一个重要概念,它是逻辑结构,不是数据库的物理部分。 在一个关系中,存在一个或多个属性,可以在这个关系中将每个元组唯一标识。(可以粗略的理解:关系=表) 超...
  • 关系关系数据库的重要组成部分。关系是一个表中的一个或几个属性,用来标识该表的每一行或与另一个表产生联系。 数据库理论中, 超、候选与主键之间的关系: • 候选是超的一种:不含有多余属性的超...
  • 键在关系数据库中起着重要作用,它是关系数据库模型的重要组成部分。下面本篇文章就来带大家认识一些数据库中常见的键,希望对大家有所帮助。为什么我们需要使用键?在实际应用中,存储数据所需的表的数量很大,并且...
  • 数据库中候选键的确定

    千次阅读 多人点赞 2016-06-16 08:43:44
    首先来看候选的定义:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选。 若W是候选,则必须满足两个条件:W的闭包是U;W没有冗余。 设关系模式R中U=ABC.......等N个属性,U中的属性...
  • (superkey): 在一个关系中,能唯一标识元组的属性或属性集,称为关系的超。...用主键可以实现关系定义中的“表中任意两行(行即元组,也可称为实体)不能相同”的约束。 主键可以是任意一个候选,用...
  • 详谈关系数据库中的”(续2)

    千次阅读 2006-05-28 14:15:00
    详谈关系数据库中的”(续) 今天我们来讨论外键。 从表通过指向主表的外键来与主表相关联。人们常犯的一种错误是:认为参照完整性是对于主键的约束。但实际上,参照完整性要求的是外键值必须引用有效的主键值...
  • 数据库中的各种

    千次阅读 2017-07-05 00:52:23
    关系中能唯一标识元组属性集称为关系模式。 一个属性可以为作为一个超,多个属性组合在一起也可以作为一个超。超包含候选和主键。候选是最小超,即没有冗余元素。主键数据库对...
  • 数据库应用程序开发入门篇—— 关系数据库中的基本概念 写在前面:关系数据库是目前应用最广泛的的数据库,了解关系型数据库的基本概念,有助于应用开发。 1.关系数据库中基本概念 关系数据库,是建立在关系模型...
  • 详谈关系数据库中的”(续1)

    千次阅读 2006-05-27 18:04:00
    数据库逻辑模式设计往往会使用这些天然主键,尽管这些天然主键没有哪一个是十分可靠。 可以让用户把它们当作查找和命名一行记录“主键”,但绝不能把它们作为实际主键。 如果必须使
  • 数据库键之间的关系

    2018-08-29 21:35:20
    ,候选,主键,外键都属于。 超:在关系中能唯一标识元素属性的集称为关系模式的超。...外键:一张表中的一个属性是其他表的主键,那么这个属性就是这张表的外键。 他们的关系如图:    ...
  • 关系数据库范式理解 首先理解主属性和键基本概念 关系所有键属性的集合,就是主属性。 一个键可以由一个或多个属性的集合组成。 一个关系可以由一个以上的键。 如果关系中都是主属性,则至少满足第三...
  • 首先说明什么是关系的“”和“超” ...以上是我在关系类型数据库系统学习中的总结。关于的学术一点的定义可以看下面这篇博客 https://blog.csdn.net/soswzg/article/details/74367157 3、包含“...
  • 关系数据库

    2019-06-19 09:09:01
    关系数据库 1.有关键概念 候选:在一个关系,某一属性(或属性集)可唯一地标识每一个元组。 主键:选用一个候选作为组织关系及唯一性操作对象。 外键:若关系R1属性(或属性集)A1不是R1候选,而是...
  • 菜鸟学数据库——超、候选、主键、外键

    万次阅读 多人点赞 2013-10-17 09:57:16
    这些年的一些经历告诉我,很多初学者搞不清超、候选等,被数据库中的各种搞的一头雾水。下面就跟大家一起聊聊数据库中的那些。 首先看看各种的定义: 超(super key):在关系中能唯一标识元组的属性...
  • 数据库中键和三大范式总结

    热门讨论 2017-10-14 20:31:54
    (Key 关键码)超(Super Key)在关系中能唯一标识元组属性集称为关系模式。首先,概念有几个需要弄清楚地方,有是个人理解,有是比较官方一点说法。关系:元组集合;属性集:属性集合...
  •  在关系数据库中,索引是一种与表有关数据库结构,是事实存在。它可以使对于表select等等操作更加快速,相当于一本书目录。 对于一张表,如果我们想要找到某一列符合特定值记录,第一种方法是全表搜索...
  • 1. 前言 1.1 概述 当前,一些应用程序在数据库层使用 JSON格式的字段。JSON 有很好的灵活性,它可以自由地包含...本文根据实际工作中的经验,结合一些国内外现有的资料,总结了一些在关系数据库中使用JSON 的...
  • 关系数据库 Nosql = Not Only SQL 关系数据库管理系统 RDBMS= Relational ...这一类数据库主要会使用到一个哈希表,这个表有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势
  • MongoDB关系数据库在Node中的使用 关系数据库的典型代表就是mongodb,非关系数据库的代表就是MySQL,关系数据库的好处就是可以像JSON一样的存储键值之间的关系的值又是一个对象类型,这个在之前的MySQL...

空空如也

空空如也

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

关系数据库中的键