1.4.2 概念数据模型
概念数据模型是现实世界到信息世界的抽象,是数据库设计人员与用户进行交流的工具。因此概念数据模型的选择应具有较强的语义表达能力,同时还应简单、清晰、用户易于理解。目前使用较多的概念数据模型描述工具有E-R模型、UML等。在此以E-R模型为工具介绍概念数据模型。
P. P. S. Chen于1976年提出了实体-联系方法(Entity Relationship Approach),简称E-R方法。它简单实用,因而得到了广泛应用。E-R方法使用的工具是E-R图,它所描述的现实世界的信息结构称为E-R模型。
1. E-R模型的三要素
(1)实体(Entity)。实体是指客观存在并可相互区别的事物。实体可以是人、事或物,也可以是抽象的概念。如一件商品、一个客户、一份订单等都是实体。
(2)属性(Attribute)。实体通常有若干特征,每个特征称为实体的一个属性。属性刻画了实体在某方面的特性。例如,商品实体的属性可以有商品编号、商品类别、商品名称、生产商等。
(3)联系(Relationship)。现实世界中事物之间的联系反映在E-R模型中就是实体间的联系。例如,订单就是客户和商品之间的联系。
2. 实体型和实体值
在数据库系统中,引入的基本对象通常都有“型(Type)”和“值(Value)”之分。“型”是对象特性的抽象描述,“值”是对象的具体内容。
实体型(Entity Type)是指对某一类数据结构和特征的描述。通常实体型由实体名和属性名的集合来抽象和刻画同类实体。例如,商品(商品编号,商品类别,商品名称,生产商,单价,库存量,保质期)是一个实体型。
实体值(Entity Value)是实体型的内容,由描述实体的各个属性值组成。例如,(50020005,体育用品,足球,美好体育用品公司,120,20,2012-1-1)是实体值。
实体集(Entity Set)是指具有相同实体型的若干实体构成的集合。例如,全部商品构成一个实体集。实体集包含了实体的“值”,也隐含了实体的“型”。
通常为了叙述方便,在不引起混淆的情况下,也可不仔细区分实体“型”和“值”,而都称为“实体”。
3. 联系的分类
从联系的不同层面看,存在实体内部的联系和实体之间的联系。实体内部的联系是指实体集内部各个实体间的联系。例如,职工实体型内部有领导与被领导的关系。实体之间的联系是指一个实体集中的实体与另一实体集中实体之间的联系。
从联系的表现形式看,联系又分为存在性联系、功能或事件性联系。
存在性联系:如学校有教师,工厂有车间。
功能或事件性联系:如教师授课,学生选课,客户订购商品。
两个实体型之间的联系有三种:一对一联系、一对多联系、多对多联系。
(1)一对一联系(1∶1)。如果对于实体集A中的任一实体,在实体集B中至多有一个实体与之联系;反之亦然,则称实体集A与实体集B具有一对一联系,记为1∶1。例如,在公司中,一个部门只有一个经理,而一个经理只在一个部门任职,则部门与经理之间具有一对一联系。
(2)一对多联系(1∶n)。如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1∶n。例如,在公司中,一个部门可有多名职工,而一名职工只在一个部门任职,则部门与职工之间具有一对多联系。
(3)多对多联系(m∶n)。如果对于实体集A中的任一实体,在实体集B中有n(n≥1)个实体与之联系;而对于实体集B中的每一个实体,实体集A中有m(m≥1)个实体与之联系,则称实体集A与实体集B具有多对多联系,记为m∶n。例如,在商品订购中,一个客户可订购多种商品,而一种商品也可被多个客户订购,则客户与商品之间具有多对多联系。
由定义可知,一对一联系是一对多联系的特例,一对多联系是多对多联系的特例。
通常,两个以上的实体型之间也存在一对一、一对多、多对多联系。例如,对于课程、教师、参考书三个实体型,如果一门课程可以由多个教师讲授,而一个教师只能讲授一门课程,每本参考书仅为一门课程参考,则课程与教师、参考书之间的联系是一对多的。
4. E-R模型表示——E-R图
通常用E-R图描述实体型之间的联系。在E-R图中,用矩形框表示实体型,矩形框内标明实体名;用椭圆框表示实体型的属性;用无向线段连接实体与属性。
【例1.1】 商品实体具有商品编号、商品类别、商品名称、生产商、单价、库存量、保质期等属性,用E-R图表示如图1.13所示。
图1.13 实体及属性表示法
E-R图中用菱形框表示联系,在菱形内写出联系名,用无向边分别与有关实体连接,同时在无向边旁标注联系的类型(1∶1,1∶n,m∶n)。图1.14是两个实体型间三类联系的E-R图表示。
图1.14 实体间三种联系表示法
若一个联系具有属性,则这些属性也要用无向边与联系连接起来。
【例1.2】 客户订购某类商品均有数量,则实体型“客户”与实体型“商品”之间的联系就具有属性“数量”,其E-R图表示如图1.15所示。
图1.15 联系的属性
这里只介绍E-R图的要点,有关如何认识和分析现实世界,从中抽取实体、实体间联系,建立概念模型等将在第5章讲述。