跳转到内容

数据库:实体关系

来自维基教科书,开放的书籍,开放的世界

UNIT 3 - ⇑ 数据库基础 ⇑

← 主键 实体关系建模 规范化 →


数据库可能存储有关各种事物的相关数据。例如,如果我们查看在线商店所需的表格

员工
产品
收据
客户

这些表格可以独立存在,但当我们开始描述它们中的每一个时,我们会注意到它们彼此相关。例如

收据表记录了客户购买了哪些产品,以及购买日期。

这描述了收据记录,并且从它的结构中我们可以看到其他表格中的主键包含在其中。

Receipt(CustomerID, ProductID, DateTime, Total, StaffID)

换句话说,我们可以说

A receipt has one customer
A customer can have many receipts
A receipt has one product
A product can be part of many receipts
A receipt was created by one staff member
A staff member can create many receipts

然后我们可以像这样绘制此图

为了将表格连接起来并允许我们查询数据库,我们使用关系。您需要了解三种类型的关系。每种关系都使用“脚爪符号”显示在下面,这是许多方法之一来描述这些关系

图表 名称 描述
An Author can write several Books, and a Book can be written by several Authors
一个作者可以写多本书,一本书可以由多个作者编写
多对多 一个作者可以写多本书,一本书可以由多个作者编写
A Biological Mother can have many children, and a child can have only one Biological Mother
一位生物母亲可以有多个孩子,一个孩子只能有一个生物母亲
一对多 一位生物母亲可以有多个孩子,一个孩子只能有一个生物母亲
A Country has only Capital City, and a Capital City is in only one Country
一个国家只有一个首都,一个首都只在一个国家
一对一 一个国家只有一个首都,一个首都只在一个国家
练习:关系

描述以下关系

回答

一只动物有一个基因组
一个基因组只描述一只动物

回答

一个学生有多门课
一门课有多个学生

回答

一个联赛有多支球队
一支球队只在一个联赛

回答

  • 一名球员回答了许多问题
  • 一个问题可以被多次回答
  • 每个答案只适用于一个问题
  • 一名球员可以给出许多答案
  • 每个答案只有一个球员贡献

绘制以下关系
一辆车有多个轮子,每个轮子只有一辆车

回答

vehicle ---< wheel

父亲和孩子之间的关系

回答

Father >--< Child (除非我们谈论的是生物父亲:Father--<Child )

政治家和鼻子之间的关系

回答

politician ---- nose

主人和猫之间的关系

回答

Cat >---< Owner (即使一个主人可能拥有不止一只猫,一只猫可能有多个主人)

汽车和司机之间的关系

回答

car --- driver (一辆车只能由一名司机驾驶,一名司机一次只能驾驶一辆车)

独轮车和轮子之间的关系

回答

wheel --- unicycle

房屋和邮政编码之间的关系

回答

House >--- Postcode (一栋房屋分配一个邮政编码,但同一个邮政编码可能分配给许多房屋)

华夏公益教科书