关系型数据库的主键和外键|通讯

2023-06-12 14:08:40   来源:商业新知网

在之前的文章中,我介绍了关系型数据库中的关系、基数、实体关系图、鸦爪图和业务规则等概念,这篇文章会继续讨论数据库的另一个重要的概念“键”。理解这部分的内容后,我们对数据索引的认识会上升到一个新高度。

1.什么是“键”?


(资料图片)

在解释概念之前,让我们先回顾一下此前的内容。

图 “SKU”、“供应商”、“采购订单”实体关系图

首先我们看“SKU”和“供应商”的关系,简单来说,这是“一对多”的关系,如果用更加严谨的表达,那就是“0或1个”SKU,是由”0或多个“供应商来供货的。

这个关系的意思是SKU可能有多个供货商,也可能暂时没有货源。反过来,供应商最多只能提供某一个的SKU,或是不供应。

其次是“供应商”和“采购订单”的关系,一个供应商可以对应着“0或多个”的采购订单,而一个采购订单只能对着“1个,且仅有1个”的供应商。这些关系的具体内容都在前篇文章中已介绍过,不再重复。

什么是“键”呢?它是从英文“Keys”翻译过来的,在数据库中讨论的键主要有2种,分别是 主键 (Primary Keys,缩写PK)和 外键 (Foreign Keys,缩写FK)。

2.主键

主键就是主要的键,它是 一个或多个属性,可用于识别某个实体或表中唯一的记录 。定义很抽象,让我们来举个例子。

图 “SKU”表格

在SKU实体中的属性有件号、供应商编号、供应商名称和配额。在表格中有4条记录,哪个属性可以 识别出唯一的记录呢 ?很显然是件号,其他的属性都可能会有重复的记录,然而件号是根据一定的规则编制的,且不会重复。

主键是身份标识号,就像是人的身份证一样。全中国同名同姓的人可能有很多,不能作为主键,身份证号码是唯一的,它就可以是主键。

在数据库中,主键是自动生成的号码,按照顺序,从小到大的整数,例如“26303”。每次新增一条记录,主键的号码就自动增加1位。使用整数的好处是占用存储空间小,成本更低,而且查询的速度也更快。

由于主键是唯一的,我们在尝试添加一条新的数据之前,数据库会检查是否有重复的条目。因此,主键是一个对特定表中的每一条记录都是唯一的值。

在“供应商”实体中,哪一个属性是主键呢?可能有人会说是“供应商编号”,它看起来符合成为主键的条件。但是供应商表格里可能存在重复的供应商编号,所以仅凭一个属性是不能成为主键,我们需要把多个属性组合在一起后,它们才能变成唯一的值。

举个例子,高铁上有多个车厢,每个车厢里都有1A这个座位,我该如何对号入住呢?就需要结合车厢号和座位号,才能找到该趟车上正确的位置,例如03车1A座,这是唯一的记录。在供应商表中,属性“供应商编号”和“序号”组合在一起,它们构成了该实体中的主键,也叫做 复合键 (Composite Keys)。

图 复合键

3.外键

顾名思义,“外键”就是外来的键。在介绍概念之前,读者可能已经观察到了,有些实体的主键会出现在其他的实体之中,例如“SKU”中的“件号”也存在于“供应商”实体里。“件号”在前者的表格里是主键,那么它在其他表中的作用是什么呢?

SKU和供应商实体是一对多的关系,每个SKU可以有多个的供应商供货,而供应商只能供应某一个特定的SKU。在这种情况下,SKU是独立的或叫做父级实体,而供应商是相关的或叫做子级实体。

“件号”在SKU表中是主键,它在相关的子级表中就是外键。外键是另一个表中的主键,用于连接从属关系与父级实体。

图 主键和外键的关系

在上图的例子中,父实体是SKU,它的主键是件号。子实体是供应商表,其外键是存储在供应商表中的件号。这样做是有什么意义呢?每一个SKU,例如件号是26516,苏州X公司和常熟Y公司都可以供货。

因此,每个供应商都有自己的供应商编号和序号,苏州X公司的编号是1475,序号是6,常熟Y公司的编号是1369,序号是5,但他们两家的件号的值都是26516,这是供应商表中的外键。

件号是SKU表的主键,它是一个唯一的值,可以识别SKU表中的每一行。然后在供应商表中,主键是供应商编号和序号,但每个供应商也有一个件号,它是一个有效的值,来自这个SKU表。

重要的一点是,供应商编号和序号是供应商的唯一标识符。件号不需要作为供应商主键的一部分,因为这个表已经有一个完整的唯一识别主键。 这只是一个额外的支持信息 ,帮助我们在这两个表之间建立数据关系。

总结一下, 主键是帮助我们唯一地识别表中的每一条记录的属性 。所以它们对每一条记录都必须是唯一的,只要我们有了这个键,就能帮助我们找到一行中的所有附加信息。

外键是存储在从属实体中的属性 ,它向我们展示了从属实体中的记录是如何与独立实体相关的。所以,外键是另一个表的主键,而这个表是子表或从属实体。

关键词:

精彩阅读

关系型数据库的主键和外键|通讯

热点

外键是存储在从属实体中的属性,它向我们展示了从属实体中的记录是如何

Bing 聊天机器人现支持在桌面端用语音提问

热点

微软将把Bing的语音模式带到桌面版Edge。

今日热议:AIGC 自动化设计平台 Collov 完成近千万美元 A 轮融资

热点

AIGC自动化设计服务商Collov已完成近千万美元A轮融资。

三星电子训练大语言模型(LLM) ,将所有的GPU资源都投入开发

热点

三星电子已于本月初正式开启了大语言模型(LLM)的开发工作。

AGI时代算力基础架构面临的挑战与机遇

热点

人工智能按照进化阶段分为了弱人工智能(ANI)、通用人工智能(AGI)和

AI拉动PCB发展|行业发现_天天快看

热点

人工智能聊天机器人ChatGPT的推出,标志着AI技术应用的一次飞跃,模型

金智塔科技创始人郑小林:数据合规流通赋能数字经济的发展之道

热点

中国数据首席地推官40人论坛在贵阳国际生态会议中心举行。

国产高端ERP崛起,背后是中国数字经济的“软实力” 新视野

热点

高端ERP市场长期被两大国际品牌占据,国产低端ERP又远远满足不了中国企

科技成果转化多元主体的价值共创过程与实现机制

热点

科技成果转化的过程具有复杂性、综合性和系统性等特征。我国科技成果转

财富

大众汽车正计划进行数十年来最大规模的重组 讯息

资讯

大众汽车正计划进行数十年来最大规模的重组,据德国《商报》6月12日报道

奥特曼没有阴谋

资讯

奥特曼没有阴谋,一旦愿意相信阴谋,这个世界其实到处都可以是阴谋。

环球观焦点:欢影医疗完成数千万元Pre-A轮融资

资讯

欢影医疗完成数千万元Pre-A轮融资,深圳欢影医疗科技有限公司近日宣布已

世界今亮点!苹果已在开发配备M3芯片的MacBook Air 2024年发布

资讯

苹果已在开发配备M3芯片的MacBookAir2024年发布,科技记者马克·古尔曼

月薪6万,哪些AI岗位在抢人? 世界观热点

资讯

月薪6万,哪些AI岗位在抢人?,AI2 0至少“养活”数千万人。

美国“蔚小理”进军中国

资讯

美国“蔚小理”进军中国,FF有意把中国总部放到黄岗,Fisker、Lucid有可

环球焦点!快时尚加速坠落,Zara们的老本吃完了?

资讯

快时尚加速坠落,Zara们的老本吃完了?,聚焦快时尚龙头Zara,后疫情时

蔚来宣布全系降价3万元,百亿补贴老用户

资讯

蔚来宣布全系降价3万元,百亿补贴老用户,6月12日上午消息,蔚来宣布全

“诚益生物”获得1.8亿元B轮融资-今日要闻

资讯

“诚益生物”获得1 8亿元B轮融资,生物技术公司“诚益生物”今天宣布了1

当前最新:小米大模型,不搞“ChatGPT”

资讯

小米大模型,不搞“ChatGPT”,编者按:本文来自微信公众号深燃,作者:

Bing 聊天机器人现支持在桌面端用语音提问

微软将把Bing的语音模式带到桌面版Edge。

今日热议:AIGC 自动化设计平台 Collov 完成近千万美元 A 轮融资

AIGC自动化设计服务商Collov已完成近千万美元A轮融资。

三星电子训练大语言模型(LLM) ,将所有的GPU资源都投入开发

三星电子已于本月初正式开启了大语言模型(LLM)的开发工作。

AGI时代算力基础架构面临的挑战与机遇

人工智能按照进化阶段分为了弱人工智能(ANI)、通用人工智能(AGI)和

AI拉动PCB发展|行业发现_天天快看

人工智能聊天机器人ChatGPT的推出,标志着AI技术应用的一次飞跃,模型

环球微头条丨从“柴米油盐酱醋茶”讲起!食安专家走进社区科普

民以食为天,食以安为先。食品安全事关我们的身体健康。近日,枫林街道

《逍遥情缘》手游一到兽王宗 一股原生态的气息立即扑面而来! 天天视讯

《逍遥情缘》手游每一张地图场景都有自己的特色,而其中的兽王宗就突出

马斯克收购后 Twitter与谷歌云合作关系紧张

【ITBEAR科技资讯】6月12日消息,Twitter与谷歌云(GoogleCloud)之间的

南京高淳古柏:小小"法治"扇,普法送清凉 观热点

扬子晚报网6月12日讯(记者郭一鹏通讯员张弛邢林秀魏宏伟)近日,南京

天天观天下!榫卯相合 匠心木作

2009年,由徽派传统民居营造技艺与北京四合院传统营造技艺、香山帮传统

当前滚动:华侨城上海遇滑铁卢 唐镇项目或亏损还遭品质质疑

由于住宅开发时开发商的利润来源,项目全部的住宅预售款都没有能够全面