E-R模型是软件设计中的一个重要工具,其主要概念有实体、联系和属性。
1.实体:是现实世界中可以区别于其他对象的“事件”或“物体”。
2.联系:实体的联系分为实体内部的联系和实体和实体之间的联系。实体内部的联系反映数据在同一记录内部各字段间的联系。实体集之间的联系包括:
1)两个不同实体之间的联系
一对一:指实体集E1中的一个实体最多只与实体集E2中一个实体相联系,记为1:1,如观众和座位
一对多:指实体集E1中的一个实体最多只与实体集E2中多个实体相联系,记为1:n,如部门和职工
多对多:指实体集E1中的多个实体最多只与实体集E2中多个实体相联系,记为m:n,如项目和职工
2)两个以上不同实体集之间的联系
两个以上不同实体集之间存在1:1:1,1:1:n,1:m:n和r:m:n的联系。
3.属性:是实体某方面的特性。例如职工实体集具有职工号、姓名、年龄、参加工作时间和通信地址等属性。每个属性都有其取值范围,如职工号为0001~9999的四位整型数,姓名为10位的字符串,年龄的取值范围为18~60等。在同一实体集中,每个实体的属性和值域是相同的,但可能取得不同的值。E-R模型中的属性有如下分类:
1)简单属性和复合属性。简单属性是原子的、不可再分的,复合属性可以再细分为更小的部分(即划分为别的属性)。有时用户希望访问整个属性,有时希望访问属性的某个部分,那么在模式设计是可采用复合属性。例如,职工实体集的通信地址可以进一步分为邮编、省、市、街道。
2)单值属性和多值属性。单值属性是指属性对于特定的一个实体都只有单独的一个值。例如,对于一个特定的职工,在系统中只对应一个职工号、职工姓名,这样的属性叫做单值属性。但是,在某些特定情况下,一个属性值可能对应一组值。例如,职工可能有0个、1个或多个亲属,那么职工亲属的姓名可能有多个,这样的属性成为多值属性。
3)NULL属性。当实体在某个属性上没有值或属性值未知时使用,表示无意义或不知道。
4)派生属性。派生属性可以由其他属性得来。例如,职工实体集中有“参加工作时间”和“工作年限”属性,那么“工作年限”的值可以由当前时间和参加工作时间得到。这里,“工作年限”就是一个派生属性。
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)