1.2 数据模型
在数据库系统的形式化结构中,通常采用数据模型(Data Model)对现实世界中的数据和信息进行抽象的描述。数据模型是现实世界数据特征的抽象描述,是实现数据抽象的主要工具,具有很大的优越性。数据模型是数据库系统的重要基础,决定了数据库系统的结构、数据定义语言和数据操纵语言、数据库设计方法、数据库管理系统软件的设计与实现。它也是数据库系统中用于信息表示和提供操作手段的形式化工具。
不同的数据模型是提供给模型化数据和信息的不同工具。根据模型应用的不同目的,可以将模型分为两类或两个层次:一是概念模型(也称信息模型),是按用户的观点对数据和信息建模;二是数据模型(如网状、层次、关系模型),是按计算机系统的观点对数据建模。
1.2.1 概念模型
概念模型(Conceptual Data Model)是面向数据库用户的现实世界的数据模型,主要用来描述现实世界的概念化结构。它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及数据库管理系统(DBMS)的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的DBMS无关。它也是现实世界到机器世界的一个中间层次,如图1.2所示。
图1.2 数据抽象过程图
1.概念模型的几个术语
(1)实体(Entity):实体是客观存在并可相互区分的事物。实体可以是实际事物,也可以是抽象事件。例如,1位职工、1个部门等属于实际事物;1次订货、借阅若干本图书、1场比赛等活动是比较抽象的事件。
(2)实体集(Entity Set):同类实体的集合称为实体集。例如,全体职工的集合,全馆图书等。
(3)实体型(Entity Type):具有相同属性的实体具有共同的特征和性质,用实体名及其属性名集合来描述同类实体称为实体型。如实体型“职工”表示全体职工的概念,并不具体指职工甲或职工乙。每个职工是职工实体“型”的一个具体“值”,必须明确区分“型”与“值”的概念。在数据模型中的实体均是指“型”而言的。以后在不致引起混淆的情况下,说实体即是指实体型。
(4)属性(Attribute):属性是实体所具有的特性,每一特性都称为实体的属性。1个实体可以由若干个属性来描述。例如,职工实体用若干属性(职工号,姓名,性别,出生日期,职称)来描述。属性的具体取值称为属性值。例如,属性值的组合(0986,吴伟,男,12/26/80,教授)在教工名册中就表征了1个具体的人。
(5)关键字(Key):如果某个属性或属性组合的值能够唯一地标识出实体集中的每一个实体,可以选做关键字。用做标识的关键字,也称为码。上例中的“职工号”可作为关键字,由于可能有重名者存在,“姓名”不宜做关键字。
(6)联系(Relationship):实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种。一种是实体内部各属性之间的联系。例如,相同职称的有很多人,但1个职工当前只有一种职称。另一种是实体之间的联系。例如,1位读者可以借阅若干本图书,同1 本书可以相继被几个读者借阅。这里主要讨论实体与实体之间的联系。
概念模型的表示方法最常用的是实体联系方法(Entity-Relationship Approach),这是P.P.S.Chen于1976 年提出的。用这个方法描述的概念模型称为实体联系模型(Entity-Relationship Model),简称E-R模型。用图形表示的E-R模型称为E-R图。它可以进一步转换为任何一种DBMS所支持的数据模型。
E-R图包括3个要素:
● 实体(型)——用矩形框表示,框内标注实体名称。
● 属性——用椭圆形表示,并用连线与实体连接起来。如果属性较多,为了使图形更加简明,有时也将实体与其相应的属性另外单独用列表表示。
● 实体之间的联系——用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在连线上注明联系类型。
实体间的联系类型是指一个实体型所表示的集合中的每1个实体与另1个实体型中多个实体存在联系,并非指1个矩形框通过菱形框与另外几个矩形框画连线。实体间的联系虽然复杂,但都可以分解到少数个实体间的联系,最基本的是两个实体间的联系。
2.概念模型的类型
(1)1对1联系(1∶1)。
【例1.1】 考察公司和总经理两个实体,1个公司只有1个总经理,1个总经理不能同时在其他公司再兼任总经理,某公司的总经理也可能暂缺。在这种情况下公司和总经理之间存在1对1的联系。
设A、B为两个实体集。若A中的每个实体至多和B中的1个实体有联系,反过来,B中的每个实体至多和A中的1个实体有联系,称A对B或B对A是1∶1联系,如图1.3所示。
注意:“至多”一词的含义,1∶1联系不一定都是一一对应的关系。
图1.3 1对1联系
(2)一对多联系(1∶n)。
【例1.2】 考察部门和职工两个实体,1个部门有多名职工,而1名职工只在1个部门就职(只占1 个部门的编制),部门与职工属于1 对多的联系。考察学生和系两个实体,1个学生只能在1个系里注册,而1个系有很多学生,系和学生也是1对多的联系。
如果A实体集中的每个实体可以和B中的几个实体有联系,而B中的每个实体至多和A中的1个实体有联系,那么A对B属于1∶n联系,如图1.4所示。这类联系比较普遍,1对1的联系可以看做1对多联系的一个特殊情况,即n=1时的特例。
图1.4 一对多联系
(3)多对多联系(m∶n)。
【例1.3】 考察学生和课程两个实体,1 个学生可以选修多门课程,1 门课程由多个学生选修,因此,学生和课程之间存在多对多的联系。图书与读者之间也是多对多联系,因为1 位读者可以借阅若干本图书,同1 本图书可以相继被几个读者借阅。再考察研究人员和科研课题两个实体,1个研究人员可以参加多个课题,1个课题由多个人参加,研究人员和课题之间是多对多联系。这类联系如图1.5所示。
图1.5 多对多联系
当涉及3 个实体同时发生联系时,应当进行认真分析,使之真实地反映现实世界。如图1.6所示给出了3个实体间联系的E-R图。
图1.6 3个实体间的联系
在图1.6(a)中,1 台机器可以由若干个工人操作,加工若干种零件,某一个工人加工某一种零件是在1台机器上完成的这道工序,但1个零件需要多道工序,在多台机器上由不同的工人加工才能完成,因此,机器、零件、工人3个实体之间存在着多对多的联系。
在图1.6(b)中,1 个供应商可以为若干个工程项目供应多种材料,每个项目可以使用从不同供应商那里采购的材料,每种材料可以由不同供应商提供,因此,供应商、材料、项目3个实体之间存在着多对多的联系。
必须强调指出,有时联系也有属性,这类属性不属于任一实体,只能属于联系。例如,图1.5 中借阅联系的属性“日期”(借书日期或还书日期)是1 个读者借阅某一本图书时所确定的日期。选修联系的“成绩”是1个学生选修某一门课的考试成绩。图1.6(a)中,加工联系的属性“质量”是某个零件在某台机器上由某个工人所产生的。图1.6(b)中,供应联系的属性供应“数量”是某供应商为某个工程项目所供应的某种材料的实际数量。
E-R方法为抽象地描述现实世界提供了一种简明有力的工具,它所表示的概念模型是各种数据模型的共同基础,进行数据库设计时必须用到它。
【例1.4】 有实体学生(学号,姓名,性别)和课程(课程号,课程名,学时)。通过分析可知,这两个实体间的关系是多对多的关系。如图1.7 所示为学生实体和课程实体的属性及其联系的E-R图。
图1.7 学生实体和课程实体的属性及其联系
下面以“教学管理系统”为例,讲述构建E-R模型的一般方法。
【例1.5】 根据设计要求,教学管理系统应对学校中的教师、学生、课程进行管理,掌握课程设置和教师配备情况以及学生成绩的管理。通过需求分析后,可知该系统涉及的实体包括教师、系、学生和课程;对于每一实体集,根据系统输出数据的要求,抽象出如下属性:
● 系(系号,系名,系主任,电话)
● 教师(教师号,姓名,专业,职称,性别,年龄)
● 学生(学号,姓名,性别,出生日期,专业,照片)
● 课程(课程号,课程名,学时,类别)
作为一个系统内的实体集,这些实体间并不会完全相互独立,而一定存在着联系,我们对实体间的联系做如下分析。
假定在一个学校内:
1个系有多名教师,而1个教师只能属于1个系,因此系与教师之间是1对多联系。
1个系有多名学生,而1个学生只能属于1个系,因此系与学生之间是1对多联系。
1 个教师可以讲授多门课程,而1 门课程也可以由多个教师讲授,每个教师讲授的每一门课程具有不同的效果(评价),因此教师与课程之间是多对多联系。
1 个学生可以选修多门课程,而1 门课程也可以被多个学生选修,每个学生选修某门课程都有1个分数,因此学生与课程之间是多对多联系。
将系、教师、学生和课程间的联系用E-R图表示的结果如图1.8所示(此图略去了实体属性)。
注意:在E-R图中,联系的属性中可以不包括与它相关的实体的键,当将E-R图转化为逻辑模型时再给出。
每个教师讲授的每一门课程具有不同的效果,如果希望将教师讲课的效果记录下来,教师与课程间的联系“讲授”应具有属性,这里以“评价”表示。对于教学管理系统,学生成绩的管理正是系统的重要内容,因此需要记录每个学生的每一门课程的成绩,而成绩是由学生选修课程后而获得的,因此学生和课程实体间的联系“选修”具有“分数”这一属性。
图1.8 系、教师、学生和课程间的联系
将实体属性和联系的属性考虑后,给出了如图1.9所示的教学管理系统的E-R模型图。
图1.9 教学管理系统的E-R图
3.建立E-R模型的原则和设计过程
(1)相对原则。建立概念模型的过程是一个对现实世界事务的抽象过程。实体、属性和联系是对同一对象抽象过程的不同解释和理解,不同的人抽象的结果可能不同。
(2)简单原则。建立E-R模型时,为了简化模型,现实世界的事物能作为属性对待的,尽量归为属性处理。
属性和实体间没有一定的界限,一般一个事物如果满足以下两个条件之一的,可作为属性对待:
① 属性在含义上是不可分的数据项,不再具有需要描述的性质。
② 属性不可能与其他实体具有联系。
(3)设计过程。对于复杂系统,建立概念模型时按照先局部再总体的思路进行,也就是先根据需求分析的结果,将系统划分为若干个子系统,按子系统逐一设计分E-R图,然后再将分E-R图集成,最终得到整个系统的概念模型——E-R图。
图1.10 学生实体的E-R图
【例1.6】 在讨论学生实体时,有学号、姓名、性别、出生日期、专业等属性,假设还要考虑学生的住宿问题,需要记录下学生的宿舍编号,这时宿舍编号就可以作为学生实体的一个属性,学生实体的E-R图如图1.10所示。
但是如果对于宿舍还需要有进一步的详细信息,如宿舍的管理员、宿舍的等级、宿舍管理费、竣工时间和学生入住的时间等,这时宿舍就成为一个实体,其E-R模型如图1.11所示。
图1.11 宿舍由属性成为实体的E-R图
4.建立概念模型的具体步骤
【例1.7】 一个企业应用包括人员管理、设备管理、生产管理等功能模块。人员管理需要记录职工编号、姓名、职务(干部/工人)、年龄、性别等;一个职工工作于一个部门,一个部门有若干职工;对于部门应记录各部门的编号、名称、负责人、电话等信息。
设备管理模块管理设备处的若干人员和若干设备,对于设备(设备编号、名称、价格、装配完成日期、装配的零件名称、零件数量);零件(零件编号、名称、规格);设备处(单位编号、负责人、电话);设备处人员(职工编号、姓名、职务(干部/工人)、年龄、性别)等。每一个设备由多种零件装配而成,而一种零件也可能装配在多种设备上。
生产管理模块管理若干生产处的若干人员和进行零件的生产,对于各生产处(生产处编号、负责人、电话);对于零件(零件编号、名称、规格);生产处的人员(人员编号、姓名、职务(干部/工人)、年龄、性别)等。每一个生产处生产多种零件,而一种零件也可能由多个生产处生产,对于生产需要记录生产日期、生产数量等。
(1)设计局部E-R模型。整个系统分为3个模块,因此分别建立各模块的E-R图。
首先设计人员管理的E-R模型。人员管理涉及人员和部门,每个人员和部门都有若干具体特征,所以这个模块包含两个实体——人员和部门。由于一个职工工作于一个部门,而一个部门有若干职工,因此部门与人员之间是一对多的关系。人员管理的E-R模型如图1.12所示。
图1.12 人员管理的E-R图
其次设计设备管理的E-R模型。根据系统的需求可以得出,该模块涉及设备处、人员、设备和零件4个实体。设备处要管理人员和设备,所以设备处与人员和设备之间有联系,根据设备处有若干人员和若干设备,所以设备处与人员和设备处与设备之间分别是一对多的关系。另外,每一个设备由多种零件装配而成,而一种零件可能装配在多种设备上,所以设备和零件之间存在多对多的联系,装配日期和装配零件的数量是“装配”这一联系具有的属性。设备管理的E-R模型如图1.13所示。
图1.13 设备管理的E-R图
最后设计生产管理的E-R模型。类似设备管理的分析,生产管理模块涉及生产处、人员和零件3个实体。生产处与人员是一对多的关系,生产处与零件之间存在着多对多的联系。生产管理的E-R模型如图1.14所示。
(2)将局部的E-R模型集成全局E-R模型。由于各个局部的E-R模型可能面对不同的应用特点,由不同的人员设计,因此各局部E-R模型通常存在许多不一致的地方,出现冲突。在集成全局E-R模型时,首先要合理地消除局部E-R模型之间的冲突,初步形成E-R图。
图1.14 生产管理的E-R图
冲突的种类主要有以下3类。
① 命名冲突:指实体名、属性名、联系名之间同名异义或同义异名的情况。
同名异义,即不同意义的对象在不同的局部E-R图中具有相同的属性。例如,局部E-R图中具有很多称为“名称”的属性,但这些属性并不是同一实体的属性,有的是零件的名称,有的是设备的名称。
同义异名,即同一意义的对象在不同的局部E-R图中具有不同的名称。例如,图1.12中部门与人员的联系“属于”和图1.13中设备处与人员的联系“包含”虽然名称不同,但它们表示的是相同的两种实体间的联系。再如生产管理中的生产处和设备管理中的设备处,实际上都是企业中的部门,与人员管理中的部门是同一实体。
② 属性冲突:指属性值类型、取值范围、取值单位的冲突。同一意义的对象,如年龄,有的模块以出生日期表示职工的年龄,有的模块可能用整数表示职工的年龄,这就出现了冲突。
对于前两类冲突,各模块的设计人员要通过讨论、协商等手段,达成一致。
③ 结构冲突:有两种情况,一种是同一实体在各局部E-R图中包含的属性个数和属性次序不完全相同,另一种是同一对象在不同的应用中具有不同的属性。
在例1.7 中,部门这个实体在人员管理中,包括编号、部门名称、负责人、电话属性,而在设备管理中,设备处具有编号、负责人、电话属性,它们具有的属性个数不同。对于这种冲突的解决办法是使该实体的属性取各分E-R图中属性的并集,即将所有不同的属性组合起来作为该实体的属性。因此部门的最终属性应包括编号、部门名称、负责人、电话4个属性。
如果同一对象在局部E-R图中被当做实体,而在另一个局部E-R图中又被作为一个属性。这时通常根据情况,考虑是将实体变换为属性,或是将属性变换为实体。变换时仍然要遵循有关实体与属性的设计原则。
根据上述方法和原则消除冲突后,整个企业应用的最终E-R图如图1.15所示。
图1.15 企业应用的最终E-R图
1.2.2 关系模型
通过分析,将现实世界中的事物抽象成用E-R图描述的概念模型之后并不能直接存入计算机。概念模型中的实体及实体间的联系必须进一步表示成便于计算机处理的数据模型。数据模型是数据库系统的一个核心问题,数据库系统大都是基于某种数据模型的。实际数据库系统中所支持的主要数据模型有:层次模型、网状模型、关系模型。这里只介绍关系模型。
关系模型是3种数据模型中最重要的一种。数据库领域中当前的研究工作也都是以关系模型为基础的。
1.关系模型的概念
在现实世界中,人们经常用表格形式表示数据信息。但是日常生活中使用的表格往往比较复杂。在关系模型中基本数据结构被限制为二维表格。因此在关系模型中,数据在用户观点下的逻辑结构就是一张二维表。每一张二维表称为一个关系(Relation)。二维表中存放了两类数据:实体本身的数据和实体间的联系。这里的联系是通过不同的关系中具有相同的属性名来实现的。
【例1.8】 如表1.1所示,在学生情况关系中存储了学生的学号、姓名、年龄、班级号等信息;如表1.2所示,在班级情况关系中存储了班级的班级号(假设班级号唯一)、专业、院系等信息。这两个关系通过班级号来实现二者之间一对多的联系。
表1.1 学生情况表
表1.2 班级情况表
2.关系模型的特点
关系模型具有下列特点。
(1)关系模型的概念单一。无论是实体还是实体之间的联系都用关系来表示。关系之间的联系通过相容的属性来表示,相容的属性即来自同一个取值范围的属性。在关系模型中,用户看到的数据的逻辑结构就是二维表,而在非关系模型中,用户看到的数据结构是由记录以及记录之间的联系所构成的网状结构或层次结构。当应用环境很复杂时,关系模型就体现出其简单清晰的特点。
(2)关系必须是规范化的关系。所谓规范化的关系是指关系模型中的每一个关系模式都要满足一定的要求或者称为规范条件。最基本的一个规范条件是每一个分量都是一个不可再分的数据项,即表中不允许还有表。有关规范条件在第3章将有详尽论述。
(3)在关系模型中,用户对数据的检索操作就是从原来的表中得到一张新的表。由于关系模型概念简单、清晰,用户易懂易用,有严格的数学基础以及在此基础上发展的关系数据理论,简化了程序员的工作和数据库开发建立的工作,因而关系模型自诞生之日起,就迅速发展成熟起来,成为深受用户欢迎的数据模型。
有关关系模型的深入讨论将在第2章介绍给大家,在此主要讨论怎样把概念模型转换为关系模型的问题。
3.E-R模型向关系模型的转换
E-R模型向关系模型的转换要解决的问题是如何将实体和实体间的联系转换为关系模型中的关系模式,如何确定关系模式的属性和主键。转换时一般遵循以下原则。
(1)实体的转换。一个实体转换为一个关系模式。实体的属性就是关系模式的属性,实体的键就是关系的键。
【例1.9】 教学管理系统中,有教师、系、学生和课程4个实体(如图1.9所示),它们转换为关系模式后分别为:
教师(教师号,姓名,专业,职称,性别,年龄)
系(系号,系名,系主任,电话)
学生(学号,姓名,性别,出生日期,专业,照片)
课程(课程号,课程名,学时,类别)
注意:加下画线的表示该属性或属性组为关键字。
(2)实体间联系的转换。对于实体间的联系分为以下几种不同情况。
① 对于1∶1联系可以转换为1个独立的关系模式,也可以与任意一端对应的关系模式合并。如图1.16所示为具有1对1联系实体的E-R图,其中实体班级和班长分别转换为如下关系模式:
班级(班号,专业,人数)
班长(学号,姓名,专长)
如果转换为一个独立的关系模式,则关系的属性由联系本身的属性和与之联系的两个实体的键组成,而关系的主键由各实体的键构成。
管理(班号,学号)
图1.16 班级和班长的E-R模型
对于1对1的联系也可以与某一端的关系模式合并。如果与某一端的关系模式合并,则在该关系模式中加入联系自身的属性及另一关系模式的键。将管理与班级关系模式合并,则班级修改为(此例的联系“管理”本身无属性,因此只加入关系模式班长的键——学号):
班级(班号,专业,人数,学号)
② 对于1∶n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则关系的属性由联系本身的属性和与之联系的两个实体的键组成,而关系的主键为n端实体的键。
【例1.10】 如图1.17所示的E-R图中,系和教师通过管理建立1对多联系,其中实体系和教师分别转换为如下关系模式:
系(系号,系名,系主任,电话)
教师(教师号,姓名,专业,职称,性别,年龄)
如果将管理转换为一个独立关系模式,则关系模式中包括两个实体的主键——教师号和系号及联系的属性(此例的联系“管理”本身无属性),关系的主键由n端实体——教师的键教师号构成:
管理(教师号,系号)
图1.17 系和教师的E-R模型
如果采用合并的方式,应将管理与n端的实体——教师关系模式合并,合并时在教师属性中加入1端实体——系的键。合并后键没有变化,教师关系模式修改为:
教师(教师号,姓名,专业,职称,性别,年龄,系号)
此例的联系“管理”本身无属性,因此最好采用合并的方式。
③ 对于m∶n联系转换为一个关系模式,关系的属性由联系本身的属性和与之联系的两个实体的键组成,而关系的主键由各实体的键组合而成。
【例1.11】 学生和课程实体(如图1.18所示)间通过“选修”存在多对多的联系,此联系转换为:
选修(学号,课程号,分数)
其中,分数为联系本身的属性,学号和课程号分别是学生实体和课程实体的键。
图1.18 学生和课程的E-R模型
下面将前面的教学管理和企业应用实例转换为关系模型。
【例1.12】 教学管理E-R模型转换为关系模型。
教学管理E-R模型转换为关系模型的过程如下。
(1)将各实体转换为关系模式,分别为:
系(系号,系名,系主任,电话)
教师(教师号,姓名,专业,职称,性别,年龄)
学生(学号,姓名,性别,出生日期,专业,照片)
课程(课程号,课程名,学时,类别)
(2)将“系”与“教师”间的联系——管理,与教师关系模式合并,由于系与教师是1对多的关系,且联系无属性,这里采用合并的方式,将实体“系”的主属性——系号,合并到关系“教师”中,主键不变,得到新的教师关系模式:
教师(教师号,姓名,专业,职称,性别,年龄,系号)
(3)将“系”与“学生”间的联系——注册,与“学生”关系模式合并,合并方法同上,得到新的“学生”关系模式:
学生(学号,姓名,性别,出生日期,专业,照片,系号)
(4)将“学生”与“课程”间的联系——选修,转换为关系模式“选修”,因为“学生”与“课程”间是多对多联系,所以必须转换为一个独立的关系模式,其属性由两个实体的主属性及联系自身的属性构成,关系的主键由两个实体的主属性组合而成:
选修(学号,课程号,分数)
(5)同上,将“教师”与“课程”间的联系转换为关系模式——课程评价:
课程评价(教师号,课程号,评价)
(6)整理后,如图1.9所示的教学管理的关系模型为:
系(系号,系名,系主任,电话)
教师(教师号,姓名,专业,职称,性别,年龄,系号)
学生(学号,姓名,性别,出生日期,专业,照片,系号)
课程(课程号,课程名,学时,类别)
选修(学号,课程号,分数)
讲授(教师号,课程号,评价)
【例1.13】 将企业应用E-R模型转换为关系模型。
企业应用E-R模型转换为关系模型的过程如下。
(1)将各实体转换为关系模式,分别为:
人员(职工编号,姓名,性别,年龄,职务)
部门(部门编号,部门名称,负责人,电话)
设备(设备编号,设备名称,价格)
零件(零件编号,零件名称,规格)
(2)转换“部门”与“人员”间的联系——包含,因为部门与人员之间是1对多的联系,且联系无属性,采用合并的方式,将部门的主属性——部门编号,合并到关系“人员”中,得到新的人员关系:
人员(职工编号,姓名,性别,年龄,职务,部门编号)
(3)同上,将“部门”与“设备”间的联系——管理,与“设备”关系模式合并,“设备”关系模式修正为:
设备(设备编号,设备名称,价格,部门编号)
(4)转换“部门”与“零件”间的联系——生产,部门与零件之间是1对多的联系,仍然可以采用合并的方式,但是该联系具有生产日期和生产数量两个属性,因此采用建立独立的关系模式更好一些,即:
生产(部门编号,零件编号,生产日期,生产数量)
(5)转换“设备”与“联系”间的联系——装配,这两个实体间是多对多的联系。因此,必须转换为独立的关系模式:
装配(设备编号,零件编号,装配日期,装配数量)
(6)整理后,如图1.15所示的数据模型建立的关系模型为:
人员(职工编号,姓名,性别,年龄,职务,部门编号)
部门(部门编号,部门名称,负责人,电话)
设备(设备编号,设备名称,价格,部门编号)
零件(零件编号,零件名称,规格)
生产(部门编号,零件编号,生产日期,生产数量)
装配(设备编号,零件编号,装配日期,装配数量)
1.2.3 实训——E-R图的应用
1.实训目的
(1)了解E-R图的组成,熟悉E-R图中各符号的含义。
(2)掌握简单E-R图的建立方法。
(3)掌握由E-R图向关系模型的转换方法。
(4)了解复杂数据模型的建立过程。
2.实训内容
(1)实地考察一个企业,绘制一个企业管理系统的E-R模型。组织学生2~3人为一个小组,了解工厂管理的模式,并画工厂管理系统的E-R图(学生可根据现有的条件,到相关的工厂了解工厂管理的内容)。完成本次实训的内容,并写出实训报告。
(2)实地考察本校的图书馆,建立一个图书管理系统的数据模型(包括概念模型和关系模型)。组织学生到学校图书馆,了解图书管理的内容,并画出E-R图和建立图书管理系统的关系模型。
3.参考答案
通过实地调查分析,工厂需要管理的实体类型有雇员、部门、项目、零件、供应商、仓库,共6个实体。
在该系统中,存在与管理这些实体有关的以下这些联系:
● 一个雇员只在一个部门工作,一个部门可以有多个雇员。
● 一个雇员可以参加一个以上的项目,每个项目往往不止一个人参加。
● 每个项目必须确定一个负责人,但一个人可以负责多个项目。
● 一个供应商可以为若干个项目供应零件,每个项目允许从不同的供应商那里采购零件,每个项目需要多种零件。
● 为方便今后经常订购,系统还要求保存各个供应商能够提供的各种零件与数量。
● 一种零部件可以由其他几种零件组装而成。
● 购买的零件存放在仓库里,一个仓库存放多种零件,为方便使用,一种零件也可以存放在不同的仓库当中。
根据题目的要求,画出E-R图描述这个工厂的概念模型,用列表的方式列出所有实体的属性。