1、第2章 数据库需求分析,实体、属性、关系及ER图,一、数据模型,数据模型是描述数据的一组概念和定义。在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。简单地讲,数据模型就是现实世界的模拟。,数据模型应该满足以下的要求: 真实性:就是数据模型要尽可能真的反映现实世界; 简单性:就是模型尽可能简单,以便于他人理解; 便于实现:便于计算机实现。,(一)数据及数据联系的描述 从人们对现实生活中事物特性的认识到计算机数据库力的具体表示要经历三个领域,即现实世界、概念世界(信息世界)和机器世界(存储世界/数据世界)。 首先将现实世界的事物及联系抽象成信息世界的信息模型 然后再抽象成计算机世界的
2、数据模型 数据加工经历了现实世界、信息世界和计算机世界三个不同的世界,经历了两级抽象和转换,相关术语: 实体 客观存在并且可以相互区别的“事物”称为实体 实体可以是具体的人、事、物,也可以是抽象的事件 属性 实体所具有的某一特性称为属性,实体型 具有相同属性的实体必然具有共同的特征 实体集 同型实体的集合称为实体集 键 能惟一标识一个实体的属性或属性集称为实体的键 域 属性的取值范围称为该属性的域,学生(学号,姓名,年龄,性别,系),联系 实体型内部的联系通常是指组成实体的各属性之间的联系 实体型之间的联系通常是指不同实体集之间的联系 两个实体型之间的联系有如下三种类型 :,A,B,A,B,A
3、,B,(a)一对一联系,(b)一对多联系,(c)多对多联系,现实世界,概念模型,认识抽象,DBMS支持的 数据模型,图数据处理的抽象和转换过程,机器世界信息经过加工编码进入机器世界,机器世界的处理对象是数据。相关术语: 字段(Field) 标记实体属性的命名单位称为字段。 记录(Record) 字段的有序集合称为记录。如,一个学生(990001,张立,20,男,计算机)为一个记录。 文件(File) 同一类记录的集合称为文件。所有学生的记录组成了一个学生文件。 关键字(Key) 能惟一标识文件中每个记录的字段或字段集,称为记录的关键字 。,E-R方法,E-R方法即“实体-联系方法”。它的基本思
4、想是在数据库设计过程中增加一个中间步骤,先设计一个概念性数据模型,这个概念性数据模型在E-R方法中被称作“企业模式”(或“组织模式”)。它是现实世界的纯粹反映,与数据库的具体实现无关,它抛开了实现过程的具体细节,与现实世界和用户思维很相似,能比较准确,比较自然地反映现实世界,能为不熟悉计算机的用户所接受,便于设计人员和用户的沟通。,E-R图及其基本成份 描述企业模式的得力工具是E-R图。在E-R图中有三种基本成份: 实体 (Entity):表征客观事物; 属性 (Attributes) :表征客观事物及联系的特征(属性); 联系 (Relations) :表征客观事物之间的联系。,E-R图表示
5、方法 E-R图是数据库概念设计最基本和最重要的图,它主要描述研究对象中的实体、实体的属性和实体之间的关系等,其表示方法如下: 矩形框表示实体; 椭圆形表示属性; 用菱形框表示实体间的联系; 属性和实体间、实体和联系间用无向的线段连接。,在E-R图中概念及术语 (1)实体与实体类型 实体:可以相互区别客观事物和概念的统一抽象。是任何一种我们所关心的“事物”,可以指人,也可以指物,可以是实际的东西,也可以是抽象的、概念性的东西。 例 学生、回扣、医疗等。实体分为两级,一级为“个体”,如“张三”、“国防科技大学”等;另一级为“总体”,泛指某一类个体组成的集合,如人泛指“张三”、 “李四”等。实体类型
6、:将具有共性的一类实体抽象为实体类型。在E-R图中,实体这种基本成份用方框来表示。,(2)实体与联系的属性和域 属性:对实体特征的描述;域:属性的取值范围。 同一实体类型所有实体都具有相同的属性及相同的对应域,但属性在域上的取值不一定相同。 属性用来进一步描述实体与联系在某些方面的特征与性质。比如“职员”这种实体,可以有工作证号,姓名,性别,出生年月,政治面貌,职称等属性。“零件”这种实体可以有零件号,零件名,单价,型号,生产厂家等属性。,在E-R图中,属性用圆圈表示,画在它所描述的实体或联系的旁边,并用短线与之相连。 实体是一定具有属性的。在若干个属性中,至少有一个可以标识这个实体的“标识码
7、”。,(3)实体之间的联系:实体之间关系的抽象 一种实体与其他实体之间,在其自身内部是存在着这样的或那样的联系的。数据库比传统的文件的优越之一就是能够表示实体之间的联系。在E-R图中,“联系”用菱形框来表示。对每一种“联系”都要命名。,实体之间的联系,可以分为以下几种不同的情况: 1)1:1(一对一联系) A中任意实体至多对应B中的一个实体,反之B中的任意实体至多对应A中的一个实体。 观众与座位、乘客与车票、病人与病床、学校与校长、灯泡与灯座。,2)1:n(一对多联系) A中至少有一个实体对应B中的多个实体,反之B中的任意实体至多对应A中的一个实体。 “部门”(A)是一种实体,“职员”(B)也
8、是一种实体。这两种实体之间存在着一种联系,设这种联系命名为“属于”,即表示某个职员是属于某个部门的。“属于”这个联系是1:N的,具体地说就是:一个部门可以有多个职员,而一个职员只能属于一个部门。在E-R图中,这两种实体间的联系可以表示成如下图。,3)M:N的联系,即多对多的联系 A中任意实体至少有一个实体对应B中的多个实体,反之B中的任意实体至少有一个实体对应A中的多个实体。 “学生”(A)是一种实体,“课程”(B)也是一种实体。这两种实体之间存在一种联系,设这种联系命名为“选课”,表示的是哪一个学生修了哪些门课程。这个联系是M:N的,也就是说,一个学生可以修多门课程,一门课程可以有多个学生来
9、修,但一个学生不一定修所有的课程,一门课程也不一定被全部学生所选修。在E-R图中,这两种实体间的联系可以表示如下图,E-R图的几种基本形式: 两个实体之间的联系,系主任,成绩,领导,系,学生,属于,系,学生,选修,课程,1,1,1,n,n,m,两个以上实体间的联系,数量,供应商,供应,零件,n,m,项目,n,领导,职工,1,n,同一实体集内部各实体之间的联系,一般原则 即属性必须是不可分的数据项,不能再由另一些属性组成。 属性不能与其他实体具有联系。联系只发生在实体之间。 符合上述两条特性的事物一般作为属性对待。 现实世界中事物能做属性对待的,尽量作属性对待。,如何区分实体和属性,例2:职称通
10、常作为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,这时把职称作为实体来处理会更合适些。,例1:“学生”由学号、姓名等属性进一步描述,根据准则,“学生”只能作为实体,不能作为属性。,例 学生选课管理E-R图,学生选课管理E-R图,思考,设计一个图书馆数据库 对每个借阅者保存记录:读者号,姓名,地址,性别,年龄,单位 对每本书保存记录:书名,作者,出版社 对每一本被借出的书保存:读者号、借出日期、应还日期、归还日期,二、概念结构设计的任务,将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计 概念结构是各种数据模型的共同基础
11、,它比数据模型更独立于机器、更抽象,从而更加稳定。 概念结构设计是整个数据库设计的关键 任务:将需求分析的结果进行概念化抽象,获得系统的E-R图。 描述概念模型的工具:E-R模型,27,二、概念结构设计的方法与步骤,设计概念结构的四类方法 自顶向下 自底向上 逐步扩张 混合策略,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构,将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。,首先定义全局概念结构的框架,然后逐步细化,首先定义各局部应用的概念结构,然后将它们集成起来,得到全
12、局概念结构,局部 ER 模型设计过程,步骤:,1、确定各局部ER 模型描述的范围 通常采用的方法是将总的功能划分为几个子系统,每个子系统又划分几个子系统。,2、逐一设计分E-R图 设计分E-R图主要完成以下工作:确定实体(集)、确定实体(集)的属性、确定实体间的联系。,全局概念结构设计,任务:将所有得分E-R图综合成一个系统的总E-R图。 方式: 一次集成多个分E-R图 逐步集成式,各分图存在冲突 冲突:各分E-R图之间存在的不一致的地方。 属性冲突(属性域冲突、属性取值单位冲突) 命名冲突(同名异义、异名同义) 结构冲突 同一对象在不同应用中具有不同的抽象 同一实体在不同局部视图中所包含的属
13、性个数和排列次序不完全相同 实体之间的联系在不同局部视图中呈现不同的类型 合并分E-R图的主要工作与关键所在:合理消除各分E-R图的冲突,一、合并分E-R图,生成初步E-R图,解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。,解决方法:使该实体的属性取各分E-R图中属性的并集,再适当设计属性的次序。,解决方法:根据应用语义对实体联系的类型进行综合或调整。,消除结构冲突实例:,1、异名同义,2、同一对象在不同应用中具有不同的抽象,例:职称在不同的应用中可以作为职工的属性,也可以作为一个实体。通常当对职称没有进一步的描述时,根据准则1作为职工实体的属性;但在涉及住房分
14、配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,根据准则,这时把职称作为实体来处理会更合适些。,3、同一实体在不同局部视图中所包含的属性个数和排列次序不完全相同,修改与重构,基本任务 消除不必要的冗余,设计生成基本E-R图,1冗余 消除不必要的冗余后的初步E-R图称为基本E-R图。 分析法消除冗余实例:,(1)例,教师工资单中包括该教师的基本工资、各种补贴、应扣除的房租水电费以及实发工资。由于实发工资可以由前面各项推算出来,因此可以去掉,在需要查询实发工资时根据基本工资、各种补贴、应扣除的房租水电费数据临时生成。,(2) 教室实体与班级实体的上课联系可以由教室与课程之间的开设联系、
15、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来,因此属于冗余联系,可以消去。,(3) 学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。这样不仅可以节省存储空间,而且当某个学生的出生日期有误,进行修改后,无须相应修改年龄,减少了产生数据不一致的机会。学生:学号,姓名,出生日期,年龄,所在系,年级,平均成绩,下面举例说明局部E-R模型设计。 在简单的教务管理系统中,有如下语义约定: 一个学生可选修多门课程,一门课程可为多个学生选修,因此学生和课程是多对多的联系。 一个教师可讲授多门课程,一门课程可为多个教师讲授,因此教师和课程也是多对多的联系。 一个系可有多个教
16、师,一个教师只能属于一个系,因此系和教师是一对多的联系,同样系和学生也是一对多的联系。,学生选课局部E-R图,教师任课局部E-R图,全局E-R模型设计 视图集成的方法有两种: 多元集成法,一次性将多个局部E-R图合并为一个全局E-R图。 二元集成法,首先集成两个重要的局部E-R图,以后用累加的方法逐步将一个新的E-R图集成进来。,局部E-R图,合并 (消除冲突),优化 (消除不必 要的冗余),基本E-R图,初步E-R图,分析,规范化理论,以教务管理系统中的两个局部E-R图为例,来说明如何消除各局部E-R图之间的冲突,进行局部E-R模型的合并,从而生成初步E-R图。 首先,这两个局部E-R图中存
17、在着命名冲突,学生选课局部E-R图中的实体“系”与教师任课局部E-R图中的实体“单位”,都是指“系”,即所谓的异名同义,合并后统一改为“系”,这样属性“名称”和“单位名”即可统一为“系名”。 其次,还存在着结构冲突,实体“系”和实体“课程”在两个不同应用中的属性组成不同,合并后这两个实体的属性组成为原来局部E-R图中的同名实体属性的并集。,图 教务管理系统的初步ER图,消除冗余,图 教务管理系统的基本ER图,逻辑结构设计,逻辑结构设计的任务 E-R图像关系模型的转换 数据模型的优化,逻辑结构设计的任务,任务:把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的
18、逻辑结构。,关系、网状、层次,三种数据模型:,只讨论关系数据模型,逻辑结构设计阶段的步骤: E-R图向关系模型的转换 用关系数据理论对关系模式的规范化 关系模式的优化,E-R图像关系模型的转换,转换过程中的主要问题:,E-R图: 实体 实体的属性 实体间的联系,关系模式: 关系 属性 码, 一个实体型转换为一个关系模式。 关系的属性:实体型的属性 关系的码:实体型的码,2.一个m:n联系转换为一个关系模式。 关系的属性:与该联系相连的各实体的码以及联系本身的属性 关系的码:各实体码的组合,转换原则 :,2) 与n端对应的关系模式合并 合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属
19、性 合并后关系的码:不变, 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。 1) 转换为一个独立的关系模式 关系的属性:与该联系相连的各实体的码以及联系本身的属性 关系的码:n端实体的码,可以减少系统中的关系个数,一般情况下更倾向于采用这种方法,2) 与某一端对应的关系模式合并 合并后关系的属性:加入对应关系的码和联系本身的属性 合并后关系的码:不变, 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。 1) 转换为一个独立的关系模式 关系的属性:与该联系相连的各实体的码以及联系本身的属性 关系的候选码:每个实体的码均是该关系的候选码
20、, 三个或三个以上实体间的一个多元联系转换为一个关系模式。 关系的属性:与该多元联系相连的各实体的码以及联系本身的属性 关系的码:各实体码的组合, 同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。, 具有相同码的关系模式可合并。 目的:减少系统中的关系个数。 合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序。,例:“拥有”关系模式:拥有(学号,性别) 与学生关系模式:学生(学号,姓名,出生日期,所在系,年级,班级号) 合并为一个关系模式:学生(学号,姓名,性别,出生日期,所在系,年级,班级号),数据模型的优化,关系数据模型的优化通常以规范化理论为指导。,优化数据模型的常用方法,(1)合并 (2)分解(水平分解和垂直分解),