实体关系图表(Entity-Relationship Diagrams,ERD)是图表的特别类型,数据库设计者使用这一图表可以帮助他们开发数据库应用。在当今对于实体关系图表的使用中有几种变化,然而,最基本的变化包括以下3个部分:
•由正方形表示的实体是数据库应用的主题;
•由连接表示的关系是实体如何进行联系;
•基数表示了与相关实体相联系的实体事件的数量。
图3-16表示了一个代表和描述大学环境的实体关系图表。在图表中的正方形代表了大学的主要主体:校长、学院、系、教授、学生、课程等。可以将两个正方形相互连接去表示在两个实体之间的关系。有些时候,连接包含了一个动词(见图3-16中的情况),以便帮助图表的读者理解之间的关系,然而,动词是可以选择的,并且可以忽略,而不会影响数据库应用的结构。在实体关系图表和语义网络之间的一个区别是实体关系图表中所有的关系是双向的;没有单行的或是单向的关系。因而,在这一图表中没有箭头,这是由于认为所有的关系包含两个方向的箭头。
图3-16 实体关系图表
实体关系图表的一个独一无二的特性(这一特性并不存在于基本语义网络中)是关于基数的信息。特别是,基数表示了约束两个实体关系的类型:一对一,一对多和多对多。
一对一的关系意味着一个实体的一个实例最多与另一个所联系实体的实例相连。这意味着在两个实体之间常常有一对一的对应关系。例如在图表中,一个院长与一所学院相联系。一对一关系的其他例子包括以下几个内容:
•一个国家有一个首都(首都对应国家);
•一个公司有一个总经理(总经理对应公司);
•一辆汽车有一个牌照(汽车牌照对应汽车)。(www.daowen.com)
在实体关系图表中一对多的关系十分常见。当一个实体上的一个事件与所联系实体上的多个(也就是两个或更多)事件相联系就可能产生一对多的关系。在图表中一对多关系的一个例子是“教授指导学生”。一个教授可以指导多个学生(但是一个学生仅仅能够由一名教授指导)。一对多关系的其他例子包括:
•一名顾客提出许多订单(顾客对应于订单);
•一个州包括许多国会议员(州对应于国会议员)。
最后,多对多的关系表示了实体1中的一个事件与实体2中的多个事件相联系。此外,实体2中的一个事件与实体1中的多个事件相联系。图3-16中可以找到唯一一个多对多关系的例子,这就是在“学生”和“课程”之间的关系。一名学生可以选择多门课程,同时一个课程可以被多名学生选择。多对多的其他例子包括:•多名员工在不同的项目上工作(一名员工能够在多个项目上工作,同时一个项目上也可以有多名员工工作)。•医生对应于病人(一名医生将治疗多个病人,同时一名病人也会有多名医生去治疗)。
在图3-16中使用的符号表示了基数[7],如同下面关系类型中所表示的一样:
需要指出的是,在一个连接末端的实心圆圈表示了关系的“许多方面”。在第二个例子中,实体2是与一对多关系相连接的许多方面。在第三个例子中,连接的两端都有实心圆圈,因而表示了多对多的关系。
在图表中使用的另一个符号描述了在前一节遗传层次中所描述的某种父型-子型关系。通过指向父型的箭头表示了这一关系类型。在图表中,“教授”父型有三个子型:终身教授、非终身教授和兼职教授。
当开发并执行关系数据库应用的时候,数据库设计者首先将实体关系图表上的每一个正方形转换到他们自己的表格中[8]。此外,确定基数是十分重要的,这是因为它决定了数据库应用的表格是如何相互连接的。因而,实体关系图表不仅仅可以用作记录数据库应用的目的,同时可以使用它作为创建应用的规划图。这对于数据库设计者来说是十分重要的工具,并且仍旧是在当今的软件工程领域中最流行的图表使用工具。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。