数据库原理与应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 概念数据模型与E-R表示方法

1.3.1 数据模型

为了用计算机处理现实世界中的具体事物,必须事先对具体事物加以抽象,提取主要特征,归纳形成一个简单清晰的轮廓,再转换成计算机能够处理的数据,这就是“数据建模”。通俗地讲数据模型就是现实世界的模型。数据模型是用来抽象、表示和处理现实世界中的数据和信息的。

1.数据模型满足的要求

数据模型应满足3方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。一种数据模型要很好地满足这3方面的要求在目前尚很困难。在数据库系统中针对不同的使用对象和应用目的采用不同的数据模型。

不同的数据模型实际上是提供模型化数据和信息的不同工具。根据模型的应用的不同目的,可以将这些模型划分为两类,分别属于不同的层次。

第一类模型是概念数据模型,也称为信息模型,它是按用户的观点来对数据和信息建模的,主要用于数据设计。另一类模型是基本数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点来对数据建模的,主要用于DBMS的实现。

数据模型是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型的。

2.数据模型的三要素

模型是现实世界特征的模拟抽象。在数据库技术中,用模型的概念描述数据库的结构与语义,对现实世界进行抽象。表示实体类型及实体之间联系的模型称为“数据模型”(Data Model)。数据模型是严格定义的概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件。因此,数据模型通常都应包含数据结构、数据操作和完整性约束3个部分,它们是数据模型的三要素。

(1) 数据结构。数据结构是所研究的对象类型的集合。这些对象是数据库的组成部分,划分为两类,一类是与数据类型、内容、性质有关的对象,如网状模型中的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,如网状模型中的系型(Set Type)。

数据结构用于描述系统的静态特性。

数据结构是刻画一个数据模型性质最重要的方面。因此,在数据库系统中,通常按照数据结构的类型来命名数据模型。例如,层次结构、网状结构、关系结构的数据模型分别命名为层次模型、网状模型和关系模型。

(2) 数据操作。数据操作用于描述系统的动态特征。数据操作是指允许对数据库中各种对象(型)的实例(值)执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和修改(包括插入、删除、更新)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)及实现操作的语言。

(3) 数据完整性约束。数据完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和存储规则,用以限制符合数据模型的数据库状态及状态的变化,用以确保数据的正确、有效和相容。

数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束。例如,在关系模型中,任何关系必须满足实体完整性和参照完整性这两类约束。

此外,数据模型还应该提供定义完整性约束的机制,以反映具有应用所涉及的数据必须遵守的特定的语义约束。例如,在教师信息中的“性别”属性只能取值为男或女,教师任课信息中的“课程号”属性的值必须取自学校已经开设的课程等。

1.3.2 概念数据模型

概念数据模型,有时也简称概念模型。概念数据模型是按用户的观点对现实世界中的数据建模的,是一种独立于任何计算机系统的模型,完全不涉及信息在计算机系统中的表示,也不依赖于具体的数据库管理系统。只是用来描述某个特定组织所关心的信息结构。它是对现实世界的第一层抽象,是用户和数据库设计人员之间交流的工具。

概念数据模型是理解数据库的基础,也是设计数据库的基础。

1.概念数据模型的基本概念

概念数据模型所涉及的基本概念主要有:实体(Entity)、属性(Attribute)、域(Domain)、码(Key)、实体型(Entity Type)和实体集(Entity Set)。这些概念前面已经介绍,在这里不再详述。

2.概念数据模型中的基本关系

实体间一对一、一对多和多对多3类基本联系是概念数据模型的基础,也就是说,在概念数据模型中主要解决的问题仍然是实体之间的联系。

实体之间的联系类型并不取决于实体本身,而取决于现实世界的管理方法,或者说取决于语义,即同样两个实体,如果有不同的语义,则可以得到不同的联系类型。例如,有仓库和器件两个实体,现在来讨论它们之间的联系。

(1) 如果规定一个仓库只能存放一种器件,并且一种器件只能存放在一个仓库中,这时仓库和器件之间的联系是一对一的。

(2) 如果规定一个仓库中可以存放多种器件,但是一种器件只能存放在一个仓库中,这时仓库和器件之间的联系是一对多的。

(3)如果规定一个仓库中可以存放多种器件,同时一种器件可以存放在多个仓库中,这时仓库和器件之间的联系是多对多的。

1.3.3 概念数据模型的E-R表示方法

概念数据模型是用于表示信息世界的模型,强调其语义表达能力,该模型要简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。

概念数据模型的表示方法很多,其中最为著名、最为常用的是P. S. Chen于1976年提出的实体-联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。

E-R图提供了表示实体型、属性和联系的方法。

(1) 实体型:用矩形表示,矩形框内写明实体名。

(2) 属性:用椭圆形表示,椭圆形框内写明属性名,并用无向边将其与相应的实体连接起来。

例如,学生实体具有学号、姓名、性别、年龄、系几个属性,产品实体具有产品号、产品名、型号、主要性能几个属性,用E-R图表示如图1-6所示。

图1-6 实体及属性示例

(3) 联系:用菱形表示,菱形框内写联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标注联系的类型(1 : 1,1 : nm : n)。

现实世界中的任何数据集合均可用E-R图来描述。图1-7所示为一些简单的示例。

图1-7 联系及属性示例

需要注意的是,如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

实体-联系方法是抽象和描述现实世界的有力工具。用E-R 图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。

E-R模型有两个明显的优点:一是接近人的思想,容易理解;二是与计算机无关,用户容易接受。因此,E-R 模型已经成为进行数据库概念设计的一种重要方法,它是设计人员和不熟悉计算机的用户之间的共同语言。一般遇到一个实际问题,总是先设计一个E-R模型,然后再把E-R模型转换成计算机能实现的数据模型。

1.3.4 概念数据模型实例

前面介绍了概念数据模型的相关理论知识,接下来利用这些理论,为某企业设计一个较完整的概念数据模型。

该实例的目标是为某企业设计一个库存-订购数据库,为此首先根据库存和订购两项业务确定相关的实体。

库存是指在仓库中存放器件,具体工作是由仓库的职工完成的,这样,根据库存业务找到了3个实体:仓库、器件和职工,具体管理模式用语义描述如下。

(1) 在一个仓库中可以存放多种器件,一种器件也可以存放在多个仓库中,因此仓库与器件之间是多对多的库存联系。用库存量表示某种器件在某个仓库中的数量。

(2) 一个仓库有多个职工,而一个职工只能在一个仓库工作,因此仓库与职工之间是一对多的工作联系。

(3) 一个职工可以保管一个仓库中的多种器件,由于一种器件可以存放在多个仓库中,当然也可以由多名职工保管,因此职工与器件之间是多对多的保管联系。

根据以上语义,可以画出描述库存业务的局部E-R图,如图1-8所示。

图1-8 库存业务局部E-R图

为了不断补充库存器件的不足,仓库的职工需要及时向供应商订购器件,具体订购体现在订购单上。这里除了包含刚才用到的职工和器件实体外,又出现了两个实体:供应商和订购单。关于订购业务的管理模式语义描述如下。

(1) 一名职工可以经手多张订购单,但一张订购单只能由一名职工经手,因此职工与订购单之间是一对多的联系,该联系取名为发出订单。

(2) 一个供应商可以接收多张订购单,但一张订购单只能发给一个供应商,因此供应商与订购单之间是一对多联系,该联系取名为接收订单。

(3) 一个供应商可以供应多种器件,每种器件也可以由多个供应商供应,因此供应商与器件之间是多对多的联系,该联系取名为供应。

(4) 一张订购单可以订购多种器件,对每种器件的订购也可以出现在多张订购单上,因此订购单与器件之间是多对多的联系,该联系取名为订购。

根据以上语义,可以画出描述订购业务的局部E-R图,如图1-9所示。

图1-9 订购业务的局部E-R图

综合图1-8和图1-9,可以得到如图1-10所示的整体E-R图,在这张图中共包括5个实体和7个联系,其中3个一对多联系,4个多对多联系。图1-11给出了5个实体的E-R图,在表1-1中给出了这些实体和联系的属性。

图1-10 库存和订货模型整体E-R图

图1-11 实体及其属性图

表1-1 库存和定货业务模型的相关属性列表

实体-联系方法是抽象和描述现实世界的有力工具。用E-R 图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。