数据库
数据库 – 建模:实体关系图(ERD)
草拟实体及其关系的常用方法。
我们来看一个公司数据库的例子
实体关系图
实体关系模型,也称为实体关系(ER)图,是实体(将成为您的表)及其相互关系的图形表示。
数据库建模是创建数据模型的过程。
实体
一个简单的矩形块代表一个表。
关系
它使用钻石形状勾勒出来。
您可以绘制关系的类型,无论是使用“1-M”的一对多,还是使用“MN”的多对多,或使用“1-1”的一对一。
连接具有关系的实体的线是单线还是双线引用另一个约束(我们之前讨论过)称为“存在依赖性约束”(也称为“参与约束”)。
因此,例如,如果一名员工必须为一个部门工作,这由双线勾画,并称为“全部或强制参与”。如果一名员工可能会或可能不会管理某个部门,则可以通过单行描述并称之为“部分或可选参与”。
关系本身可以具有属性。我们将在哪个表中包含这些属性,将在下一个教程的数据库映射中讨论。
– 递归关系
这是与同一实体的关系。例如,员工可以担任一个或多个员工的主管,而员工可以由员工监督(这是一对多的关系)。
弱实体
弱实体只是一个实体,它的存在依赖于另一个实体。在缺少employee表的情况下,您无法在逻辑上拥有依赖(儿子,女儿,..等)。它的轮廓与普通实体相同,但有双线。
– 部分**
弱实体具有所谓的“部分**”。它是为给定所有者实体唯一标识弱实体的一个或多个属性。在我们的示例中,从属名称对于每个员工都是唯一的。
它的绘制与普通属性相同,但是带有虚线下划线。
它被称为partial,因为它不能是它自己的主键,它需要另一列,它是所有者实体的外键。这将在下一个教程的数据库映射中讨论。
– 弱实体关系
此外,当弱实体与另一个实体之间存在关系时,它的轮廓与上面的相同,但是使用双线。
属性
属性或列(简单)表示表中的一段数据,如地址,薪水和日期。
首要的关键
它的轮廓与普通属性相同,但是带下划线。
复合属性
由一些其他值组成的值,例如,您可能具有由(名字,中间名和姓氏)组成的名称。
我们没有为名称定义一列(如果它是复合的),而是将它分成简单的单独列; 名字,姓氏。一个原因是因为您可能会使用姓氏(或名字)做一些不同的事情,并且您希望自己完成它。这将在下一个教程的数据库映射中讨论。
多值属性
单个列的多个值(例如,部门的位置)可能同时具有多个值。
多值属性
多值属性将在另一个表中提取。稍后将在数据库映射中讨论这一点。
派生属性
当您有一个列时,可以从另一列计算其值。因此,不需要每次都插入它的值。例如,我们可以通过计算行数来了解特定部门的员工数量。
这将由DBMS自动完成,它将导致具有一致的值而不是意外地插入错误的值。
符号摘要
以下是ERD中所有符号的摘要。
整合起来
使用实体关系图来绘制数据库草图是可视化表,列及其关系的常用方法。
现在,是时候将实体,关系,多值属性转换为实际表格了。接下来是“ 逻辑设计(数据模型映射) ”。
翻译自奥马尔加布里