精华内容
下载资源
问答
  • 关系数据库依赖于主键,它数据库物理模式的基石。主键在物理层面上只有两个用途: 惟一地标识一行。 作为一个可以被外键有效引用的对象。 索引一种特殊的文件(InnoDB数据表上的索引表空间的一个组成部分),...

    关系数据库依赖于主键,它是数据库物理模式的基石。主键在物理层面上只有两个用途:

    • 惟一地标识一行。
    • 作为一个可以被外键有效引用的对象。

    索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。下面是主键和索引的一些区别与联系。

    1. 主键一定是唯一性索引,唯一性索引并不一定就是主键。

    所谓主键就是能够唯一标识表中某一行的属性或属性组,一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述作用外,常常与外键构成参照完整性约束,防止出现数据不一致。数据库在设计时,主键起到了很重要的作用。

    主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引。

    2.  一个表中可以有多个唯一性索引,但只能有一个主键。

    3. 主键列不允许空值,而唯一性索引列允许空值。

    4. 索引可以提高查询的速度。

    其实主键和索引都是键,不过主键是逻辑键,索引是物理键,意思就是主键不实际存在,而索引实际存在在数据库中,主键一般都要建,主要是用来避免一张表中有相同的记录,索引一般可以不建,但如果需要对该表进行查询操作,则最好建,这样可以加快检索的速度。

    FAQ

    1. 主键是个什么?

    我来来具体的东西说吧,书大家都看过吧,没看过的找本翻一下,看下它每页是不是有个页码,我们的数据表主键就相当于是这个页码,明白了吧。

    2. 那么索引是什么呢?

    我们还拿书来说,索引相当于书的目录,有了目录我们可以很快的知道这本书的基本内容和结构,数据索引也一样,它可以加快数据表的查询速度。

    3. 主键主索引类比,及其他们的作用?

    • 主键是为了标识数据库记录唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊索引。
    • 数据表中只允许有一个主键,但是可以有多个索引。
    • 使用主键会数据库会自动创建主索引,也可以在非主键上创建索引,方便查询效率。
    • 索引可以提高查询速度,它就相当于字典的目录,可以通过它很快查询到想要的结果,而不需要进行全表扫描。
    • 主键索引外索引的值可以为空。
    • 主键也可以由多个字段组成,组成复合主键,同时主键肯定也是唯一索引。
    • 唯一索引则表示该索引值唯一,可以由一个或几个字段组成,一个表可以有多个唯一索引。
    展开全文
  • 主键和外键把多个表组织为一个有效的关系数据库粘合剂。主键和外键设计对物理数据库性能和可用性都有着决定性影响。必须将数据库模式从理论上逻辑设计转换为实际物理设计。而主键和外键结构这个...

    主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个设计过程的症结所在。一旦将所设计的数据库用于了生产环境,就很难对这些键进行修改,所以在开发阶段就设计好主键和外键就是非常必要和值得的。

    外键

     外键(FK)是用于建立或加强两个表数据之间的链接的一列或多列。

     通过将表中主键值的一列或多列添加到另一个表中,可创建两个表之间的连接,这个列就成为第二个表的外键

     FK约束的目的是控制存储在外表中的数据,同时可以控制对主键表中数据的修改

     例如:publishers表中记录出版商的信息,titles表中记录书的信息,如果在publishers的表中删除一个出版商,而这个出版商的ID在titles表中记录书的信息时被使用了,则这两个表之间关联的完整性将被破坏,即titles表中该出版商的书籍因为与publisher表中的数据没有链接而变的孤立。

     FK约束可以防止这种情况的发生,如果主键表中数据的更改使得与外键表中数据的链接失效,则这种更改是不能实现的;如果试图删除主键表中的行或试图修改主键值,而该主键值与另一个表的FK约束值相关,则该操作不可实现。若要成功的更改或删除FK约束的行,可以现在外键表中删除外键数据或更改外键数据,然后将外键连接到不同的主键数据上去

     外键主要是用来控制数据库中的数据完整性的,当对一个表的数据进行操作时,和他有关联的一个表或多个表的数据能够同时发生改变 

     例子:

     A(a,b) :a为主键,b为外键(来自于B.b)

     B(b,c,d) :b为主键

     A中的b字段要么为空,要么为B表中存在的b值

    展开全文
  • 简要地说,主键和唯一索引,或者键和索引之间的最主要区别在于:键一个逻辑层面的概念,涉及到数据模式的设计。从语法角度看,键被定义为一种约束。比方说,如果想定义外键(或称参考约束),那么相关列就必须先...
    两者在可空、唯一性、排序等表面特征上并没有什么区别,而且主键都有唯一索引,所以常被人问起它们之间有什么区别。简要地说,主键和唯一索引,或者键和索引之间的最主要区别在于:

    键是一个逻辑层面的概念,涉及到数据模式的设计。从语法角度看,键被定义为一种约束。比方说,如果想定义外键(或称参考约束),那么相关列就必须先定义为“键”。键在实现上一般都会有自己的索引(主键则是有唯一索引),这个索引可能是用户显式定义的索引,或是DBMS隐式定义的索引。在具体的DBMS实现中,主键可能会有其它特殊处理。比如在MySQL InnoDB中,表数据在文件(表空间中)中是按主键顺序存储的,所以主键的选择有特殊的讲究,不能仅将其作为一个普通的唯一索引看待。

    索引是一个物理层面的概念,涉及到数据处理的具体实现。比方说,如果想加快某些查询的速度,就需要在相关列上定义合适的索引。键列必有索引,但索引列未必是键。不是键的索引列是不能用在外键定义中的。
    展开全文
  • 题目:主键 超键 候选键 外键是什么 ...外键(foreign key):如果关系模式R中属性K是其它模式的主键,那么k在模式R中称为外键。 举例 比如有如下数据: 学号 姓名 性别 年龄 系别 专业 20020612 李辉

    题目:主键 超键 候选键 外键是什么

    定义

    超键(super key): 在关系中能唯一标识元组的属性集称为关系模式的超键

    候选键(candidate key): 不含有多余属性的超键称为候选键。也就是在候选键中,若再删除属性,就不是键了!

    主键(primary key): 用户选作元组标识的一个候选键程序主键

    外键(foreign key):如果关系模式R中属性K是其它模式的主键,那么k在模式R中称为外键。

    举例

    比如有如下数据:

    学号 姓名 性别 年龄 系别 专业
    20020612 李辉 20 计算机 软件开发
    20060613 张明 18 计算机 软件开发
    20060614 王小玉 19 物理 力学
    20060615 李淑华 17 生物 动物学
    20060616 赵静 21 化学 食品化学
    20060617 赵静 20 生物 植物学
    1. 超键

      在关系中能唯一标识元组的属性集称为关系模式的超键。

      于是我们从例子中可以发现 学号是标识学生实体的唯一标识。那么该元组的超键就为学号。

      除此之外我们还可以把它跟其他属性组合起来,比如:

      (学号性别)

      (学号年龄)

      这样也是超键.

    2. 候选键

      不含多余属性的超键为候选键。

      根据例子可知,学号是一个可以唯一标识元组的唯一标识,因此学号是一个候选键,实际上,候选键是超键的子集,比如 (学号,年龄)是超键,但是它不是候选键。因为它还有了额外的属性。

    3. 主键

      用户选择的候选键作为该元组的唯一标识,那么它就为主键。

      简单的说,例子中的元组的候选键为学号,但是我们选定他作为该元组的唯一标识,那么学号就为主键。

    4. 外键

      外键是相对于主键的,比如在学生记录里,主键为学号,在成绩单表中也有学号字段,因此学号为成绩单表的外键,为学生表的主键。

    总结

    主键为候选键的子集,候选键为超键的子集,而外键的确定是相对于主键的。

    资源传送门

    • 关注【做一个柔情的程序猿】公众号
    • 在【做一个柔情的程序猿】公众号后台回复 【python资料】【2020秋招】 即可获取相应的惊喜哦!
    • 自己搭建的博客地址:梦魇回生的博客

    「❤️ 感谢大家」

    • 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
    • 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程
    展开全文
  • 谈主键ID本文目标就是要确认那些使用了主键,却混淆了主键本质而造成一种反模式。一、确立主键规范 每个了解数据库设计人都知道,主键对于一张表来说是一个很重要,甚至必需部分。这确实是事实,主键是好...
  • 概述最近在研究数据库设计方面内容,主要后面项目有需要,今天介绍下数据库三大范式,跟大家一起入个门~数据库设计范式什么...什么是三大范式:第一范式:当关系模式R所有属性都不能在分解为更基本数据单...
  •  第三范式定义:如果关系模式R中所有非主属性对任何候选关键字都不存在传递依赖,则称关系R属于第三范式。记作R 3NF。  如:学生关系模式S1(学号,姓名,系号,系名,系地址)  (学号)为关键字,因...
  • 什么是数据仓库 星型模式 (星形模式是一种多维的数据关系,它由一个事实表(Fact Table)和一组维表(Dimension Table)组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。事实表的非主键...
  • 关系数据库依赖于主键—它数据库物理模式的基石。主键在物理层面上只有两个用途: 1. 惟一地标识一行。 2. 作为一个可以被外键有效引用的对象。 基于以上这两个用途,下面给出了我在设计物理层面的主键时所...
  • 二、实体联系→关系模式 1:1联系 在两个实体任选一个添加另一个实体的主键; 每个实体的码均该联系的候选键; 1:n联系 1:N 遇到 1:N 关系的话在N端添加另一端的主键,假如有学生和班级两个实体,一个班级可以...
  • 第三范式定义:如果关系模式R中所有非主属性对任何候选关键字都不存在传递依赖,则称关系R属于第三范式。记作R 3NF。如:学生关系模式S1(学号,姓名,系号,系名,系地址)(学号)为关键字,因单属性关键字...
  • 在数据库中,schema(发音 “skee-muh” 或者“skee-...模式中包含了schema对象,可以表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary...
  • 在数据库中,schema(发音 “skee-muh” 或者“skee-...模式中包含了schema对象,可以表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary...
  • 分享给大家供大家参考,具体如下:本文内容:什么是外键外键的增加外键的修改和删除外键的约束模式首发日期:2018-04-12什么是外键:外键就是表中存在一个字段指向另外一个表的主键,那么这个字段就可以称为外键。...
  • 在数据库中,schema(发音 “skee-muh” 或者“skee-mah”...模式中包含了schema对象,可以表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(pr...
  • 在数据库中,schema(发音 “skee-muh” 或者“skee...模式中包含了schema对象,可以表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary ...
  • 在数据库中,schema(发音 “skee-muh” 或者“skee...模式中包含了schema对象,可以表(table)、列(column)、数据类型(data type)、视图(view)、存储过程(stored procedures)、关系(relationships)、主键(primary ke
  • 操作对象创建删除修改模式CREATE SCHEMADROP SCHEMA 表CREATE TABLEDROP TABLEALTER TABLE视 图CREATE VIEWDROP VIEW 索 引CREATE INDEXDROP INDEX 表大家不一定要了解这个东西准确定义是什么,但是一定要知道...
  • 围绕关系相关概念:域、笛卡儿积、关系、关系模式、关键字/键/码、外码/外键、主码/主键、主属性/非主属性。 三个完整性:实体完整性、参照完整性、用户定义完整性 概述 形象说:一个关系(relation)就是一...
  • NoSQL基于键值对的,可以想象成表中的主键和值的对应关系 常见NoSQL Redis、memcached、mongodb、guava(loadingCache) Redis的定义 Redis一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库...
  • 关系模型之基本概率

    2019-08-08 10:43:15
    一组概念区分:围绕关系相关概念,如域、笛卡尔积,关系,关系模式,关键字/键/码,外码/外键,主码/主键,主属性与非主属性。 三个完整性:实体完整性,参照完整性和用户自定义完整性; ...
  • 不幸的是,虽然关系型数据库历经了约30年发展,有成熟理论和大量实践基础,但是,大多数设计、开发人员在设计数据库结构时仍然“跟着感觉走”,根据业务需要和编程方便,把字段这张表放几个那张表放几个...
  • 不幸的是,虽然关系型数据库历经了约30年发展,有成熟理论和大量实践基础,但是,大多数设计、开发人员在设计数据库结构时仍然“跟着感觉走”,根据业务需要和编程方便,把字段这张表放几个那张表放几个...
  • 一组概念区分:围绕关系相关概念,如域,笛卡尔积,关系,关系模式,关键字/键/码, 外码/外键,主码/主键,主属性与非主属性。 三个完整性:实体完整性,参照完整性和用户自定义完整性。 一、什么是关系...
  • 2. 什么是关系? 3. 关系模型中完整性约束 重点与难点 1. 一组概念区分:围绕关系的相关概念,如域、笛卡尔积,关系关系 模式,关键字/键/码,外码/外键,主码/主键,主属性与非主属性。 2. 三个完整性:实体...
  • 超键:在关系中能唯一标识元组的属性集称为关系模式的超键,一个属性可以作为一个超键,多个属性组合在一起也可以作为一个超键,超键包含候选键和主键 候选键:最小超键,既没有冗余元素的超键 主键:数据库表中对...
  • 每日问答7

    2019-09-11 09:37:57
    超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):用户选作元组标识的一个候选键程序主键 外键(foreign key)如果...
  • 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。 候选键:最小超键,即没有冗余元素的超键。 主键:...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 155
精华内容 62
关键字:

关系模式的主键是什么