下面介绍E-R模型中使用的基本元素。
1 . 实体
实际问题中客观存在并可相互区别的事物称为实体(Entity)。实体是现实世界中的对象,实体可以是具体的人、事、物。例如,实体可以是一名学生、一位教师或图书馆中的一部书籍。
2 . 属性
实体所具有的某一特性称为属性(Attribute)。在E-R模型中用属性来描述实体,例如,通常用“姓名”“性别”“出生日期”等属性来描述人,用“图书名称”“出版商”“出版日期”等属性描述书籍。一个实体可以由若干个属性来描述。例如学生实体可以用学号、姓名、性别、出生日期等属性来描述。这些属性的集合(学号,姓名,性别,出生日期)表征了一个学生的部分特性。一个实体通常具有多种属性,应该使用哪些属性描述实体,取决于实际问题的需要或者说取决于最终期望得到哪些信息。例如,教务处关心、描述学生各门功课的成绩,而学生处可能会更关心学生的各项基本情况,如学生来自哪里,监护人是谁,如何联系等问题。
确定属性的两条原则。
1)属性必须是不可分的最小数据项,属性中不能包含其他属性,不能再具有需要描述的性质。
2)属性不能与其他实体具有联系,E-R图中所表示的联系是实体集之间的联系。
属性的取值范围称为该属性的域(Domain)。例如,“学号”的域可以是9位数字组成的字符串,“性别”的域是“男”或“女”,“工资”的域是大于零的数值等。但域不是E-R模型中的概念,E-R模型不需要描述属性的取值范围。
3 . 实体集
具有相同属性的实体的集合称为实体集(Entity Set/Entity Class)。例如,全体学生就是一个实体集。实体属性的每一组取值代表一个具体的实体。例如,(983501011,张捷,女,1978年12月)是学生实体集中的一个实体,而(993520200,李纲,男,1978年8月)是另一个实体。在E-R模型中,一个实体集中的所有实体有相同的属性。
4 . 键
在描述实体集的所有属性中,可以唯一地标识每个实体的属性称为键(Key)或标识(Identifier)。首先,键是实体的属性;其次,这个属性可以唯一地标识实体集中每个实体。因此,作为键的属性取值必须唯一且不能“空置”。例如,在学生实体集中,用学号属性唯一地标识每个学生实体。在学生实体集中,学号属性取值唯一,而且每一位学生一定有一个学号(不存在没有学号的学生)。因此,学号是学生实体集的键。
5 . 实体型
具有相同的特征和性质的实体一定具有相同的属性。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型(Entity Type)。实体型表示的格式是
实体名(属性1,属性2,……,属性n)
例如,学生(学号,姓名,性别,出生日期,所属院系,专业,入学时间)就是一个实体型,其中带有下画线的属性是键。
图1-6所示为学生实体集的图形表示。用矩形表示实体集,矩形框中写入实体集名称,用椭圆表示实体的属性。作为键的属性,用加下画线的方式表示。
图1-6 学生实体集的图形表示
在建立实体集时,应遵循的原则如下。
1)每个实体集只表现一个主题。例如,学生实体集中不能包含教师,它们所要描述的内容是有差异的,属性可能会有所不同。
2)每个实体集有一个键属性,其他属性只依赖键属性而存在。并且除键属性以外的其他属性之间没有相互依赖关系。例如,学生实体中,学号属性值决定了姓名、性别、出生日期等属性的取值(记为:学号→姓名 性别 出生日期),但反之不行。
6 . 联系
世界上任何事物都不是孤立存在的,事物内部和事物之间是有联系(Relationship)的。实体集内部的联系体现在描述实体的属性之间的联系;实体集外部的联系是指实体集之间的联系,并且这种联系可以拥有属性。
实体集之间的联系通常有3种类型:一对一联系(1∶1)、一对多联系(1∶n)和多对多联系(m∶n)。