




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库系统设计,需求分析阶段数据建模 ,概述,过程建模以数据在系统中的产生和使用为重点,以进行数据转换的过程为核心,建立层次结构的过程模型来描述系统,它同时描述了系统的行为和数据。但是在数据说明方面,过程模型更多的是侧重数据产生与使用的时间、地点和方式,而没有描述的数据的定义、结构和关系等特性 数据的定义、结构和关系等特性描述的是问题域内事物的客观存在状况。 过程模型的数据说明所描述的则是系统或者手工对客观事物的影响和操作方式。相比之下,数据的定义、结构和关系等特性更能说明共享知识模型,所以也更加稳定和更加重要。,概述,数据建模技术能够弥补过程建模在数据说明方面的缺陷,它描述数据的定义、结构和
2、关系等特性。 数据建模建立的模型称为数据模型,是问题域和解系统共享的知识集合,通常能够反映企业业务的核心知识。 数据模型说明了问题域和解系统共享事物、对共享事物和描述和共享事物之间的关系,概述,因为数据模型的内容是问题域和解系统所共享的知识模型,所以可以使用问题域中的语言来解释它,也可以使用解系统的语言来解释它,还可以使用介于问题域和解系统之间的中立语言来解释它。这样就产生了三种常见的数据模型表现: 概念数据模型 物理数据模型 逻辑数据模型,概述,概念数据模型 概念数据模型是以问题域的语言解释数据模型,反映了用户对共享事物的描述和看法,由一系列应用领域的概念组成。 例如,对一个共享事物“学生”
3、,概念数据模型下的描述可能仅仅就是简单一个概念“学生”,复杂者也不外乎“学生(学号、姓名、出生日期、)”的形式。,概述,物理数据模型 物理数据模型是对数据模型的解系统语言的解释,它描述的是共享事物在解系统中的实现形式,是形式化的定义。 例如,共享事物“学生”在物理数据模型下的描述可能为“Student(Number,Long,Not Null,Primary Key),(Name,Varchar 50,Not Null),(Birthday,Date,Null), ”,概述,逻辑数据模型 因为概念数据模型和物理数据模型存在较大的差异,所以在构建解系统时,开发人员要想将概念模型转换成物理数据模型
4、是存在困难的。逻辑数据模型就是为了缓解这个困难而使用一种中立语言进行的数据模型的描述。这种中立语言的使用更加倾向于用户的概念和词汇,同时使用更加倾向于解系统语言的表达方式。 例如,共享事物“学生”在逻辑数据模型下的描述可能为“学生(学号,标识符)+(姓名,4位汉字)+(出生日期,日期) ”。,概述,在需求工程中,数据建模建立的是概念数据模型和逻辑数据模型,不涉及物理数据模型。,规划,分析,设计,实现,维护,演化的数据模型,物理数据模型,规范化的逻辑数据模型,概念数据模型(概念+属性) 逻辑数据模型,概念数据模型(仅仅是概念),不同数据模型在软件生命周期中的应用,数据建模最常用的方法是实体联系图
5、,Entity Relationship Diagram,ERD,实体联系图ERD,实体联系图起源于Peter Chen 1976年提出的实体联系建模方法,它使用实体、属性和关系三个基本的构建单位来描述数据模型。 在发展过程中,实体联系图经过了多次的扩展,发展出了很多分支。这些分支虽然在实体联系模型的内容上大同小异,但是在图示上却大不相同,所以它没有标准的表示法。 ERD最常见的表示法是Perter Chen表示法和James Martin表示法。 因为没有标准的表示法,在实践中常常会混合使用各种表示法。,各种表示法一览,ERD实体(Entity),1、实体的概念 作为数据模型的描述手段,ER
6、D首先要描述会在系统中出现的事物。 实体就是ERD用来描述事物的元素,是需要在系统中收集和存储的现实事物的类别描述。,以一个简单的教室为例,教室里面的墙壁、地面、讲台、黑板、桌椅板凳都是事物。但是人们在理解这些事物时,并不是完全的一一列举这些事物,而是下意识地对这些事物进行分类,并掌握类别的特征。例如,人们会一个“桌子”的类别概念来描述教室内的所有桌子,并且给予“桌子”概念一些具体的特征。这里的每个桌子都被称为一个实例,对归类后的实例集合进行的类别描述称为实体。,Name:Sandra Dee ID:205-7123 DOB:Jan 17,1962,实例,实体,ERD实体(Entity),1、
7、实体的概念 实体描述的常见类别有人、地点、对象、事件、概念等。 例如: 人:客户、学生、雇员 地点:商店、房间、地区 对象:图书、机器、产品 事件:注册、选课、销售 概念:账号、课程、权限,在图形表示法中,通常使用能够表达其含义的名词来作为实体的名称,ERD实体(Entity),2、概念实体和逻辑实体 ERD中的实体主要以两种形式出现:概念实体和逻辑实体,这两种形式分别具有不同的作用。 概念实体是一种抽象概念,不考虑概念背后的物理存在,所以通常不包含与之相关联的甚特征(即属性)。,概念实体最常用于项目的计划阶段,帮助人们就大的概念进行交流。在开发中,这些概念实体表达的大的概念会在分析阶段得到进
8、一步的分析。几乎不存在关于什么可以成为概念实体的规则。如果它有助于描述问题,并且可以为其提供一个描述性的定义,通常就可以将其作为一个概念实体。,Order,Product,Sell,在概念级,细节被屏蔽掉了,ERD实体(Entity),2、概念实体和逻辑实体 逻辑实体是对概念实体的细化,拥有完整的特征描述。在ERD建模中,实体一词所指的通常就是逻辑实体。,Order,Product,Sell,Number,Date,Customer Name,Number,Name,Quantity,Price,ERD实体(Entity),3、进程实体(容易被忽视的实体) 在实践中,除了静态的事物和抽象的概念
9、之外,行为和事件也是常见的实体类型。 数据建模中对行为和事件的建模是为了了解它们在某些时刻的快照或者它们的运行环境信息,而不是它们所体现出来的功能和达成的结果。 例如 在普通商店的管理系统中,如果发生了一个销售行为,系统会需要记录下时间、地点、参与人员等行为发生时的环境信息,此时就需要将销售行为建模为实体。 在邮局的邮件投递系统中,如果发生了一个投递行为,系统需要知道投递行为在各个投递点时的表现,此时系统就需要将投递行为建模为实体以了解它在不同投递点上的快照。,ERD属性,1、属性的概念 在确定了实体以后,还需要了解如何描述实体,属性就是可以对实体进行描述的特征。 属性以数字、代号、单词、短语
10、、文本乃至声音和图像的形式存在,一系列属性的存在集成起来就可以描述一个实体的实例。 属性是实体的特征,不是数据。属性会以一定的形式存在,这种存在才是数据,被称为属性的值 在图形表示法中,属性通常使用名词作为自己的名称,ERD属性,2、值与域 为了正确地说明一个实体的实例,属性的值就应该是一个合法的或者有业务含义的值。也就是说属性的取值范围应该是受限的,这个受限制的取值范围称为域 属性的域定义了属性的合法取值。 在数据建模中,分析人员应该为属性指定必要的域限制。 在过去的实践中,人们发现了一些常见的域限制,即常见的数据类型,可以这些数据类型的基础上更有效的对属性进行域定义。,ERD属性,2、值与
11、域 基于数据类型的域定义示例,ERD属性,3、标识符 一个实体通常有很多实例,因此在把这些实例归类为实体进行统一形式的描述之后,有必要提供一种唯一确定和标识每个实例的手段。 ERD采用的手段是为实例指定一个属性或者多个属性的组合,它们可以被用来唯一地确定和标识每个实例,这些属性或者属性组合就被称为实体的标识符,又称为键。 一个实体可能有多个键。如对实体“学生”,可以用“学号”作为键来唯一标识某个具体的学生,也可以使用“身份证号”作为键来唯一地标识这个学生。这些键都被称为候选键。,ERD属性,3、标识符 虽然所有的候选键都能被用来标识实例,但人们通常会从多个候选键中选择和使用固定的某一个键来进行
12、实例的标识,这个被选中的候选键被称为主键,没有被选做主键的候选键被称为替代键。,学生,身份证号,出生日期,姓名,学号,候选键,主键,替代键,ERD属性,4、属性的类型 根据取值情况的不同,可以将属性分为下面的几种类型: 单值属性和多值属性 简单属性和组合属性 存储属性和导出属性,ERD属性,4、属性的类型 单值属性和多值属性 在描述实体的实例时,大多数的属性都只有一个值,称为单值属性。但也有些特殊的属性可能会取多个值,称为多值属性。 如,一个Student的实例可能会有多个email,所以“email”属性就可能会有多个值,就是多值属性。,First,ERD属性,4、属性的类型 单值属性和多值
13、属性,Student,First,Last,Name,Email,StudentNo,Year,DOB,Program,Address,Street,PC,City,Age,一个实体Student的属性描述,ERD属性,4、属性的类型 简单属性和组合属性 在通常属性是实体的简单特征,在描述实例时会取一个简单的值,称为简单属性 但是也有属性是实体的复杂特征,需要使用多个数据组合起来才能描述实例的实例,称为组合属性。 如,一个Student的Name属性需要使用First Name的值和Last Name的值组合起来才能描述一个具体的Student,所以Name属性是组合属性,ERD属性,4、属性
14、的类型 存储属性和导出属性 实体实例大多数属性的值都需要从现实中获取的,但也有些属性的值可以由其他属性的值计算得出的。前者称为存储属性,后者称为导出属性。 如,一个Student的年龄Age可以通过出生日期DOB计算得出,所以Age属性是导出属性。,ERD关系,1、关系的概念 实体并不是孤立存在的,它们之间互相交互,互相影响,共同支持业务任务的完成。 关系就是存在于一个或多个实体之间的自然业务联系。 关系表达的不是实体物理上的联系(如车和车轮),而是逻辑上的链接(如整体部分关系)。 所有关系隐含的都是双向的,意味着它可以从两个方向上解释。 在关系的命名上,通常使用动词,表达关系中实体的相互作用
15、。,学生,课程,选择,ERD关系,2、关系的度 关系的度是指参与关系的实体数量,是度量关系复杂度的一个指标。 只有一个实体参与的关系存在于实体的不同实例之间,称为一元关系,又称为递归关系。 存在于两个实体之间的关系是最常见的关系,称为二元关系。 存在于N(N2)个实体之间的关系被统称为N元关系。,雇员,管理,雇员,在工作,时间,项目,学生,课程,选择,(a),(c),(b),ERD关系,3、关系的基数 衡量关系复杂度的另一个指标是关系的基数。 关系的基数又被称为关系的约束。 一个实体在关系中的基数定义了在关系中其他实体实例确定的情况下,该实体实例可能参与关系的数量。 因为在实体参与关系时,对其
16、他实体的不同实例可能会有不同的参与实例数量,也即基数是变化的,难以确定。所以为了描述关系的基数,基数被分为最大基数(键约束)和最小基数(参与约束)。,ERD关系,3、关系的基数 一个实体在关系中的最大基数是指:对关系中任意的其他实例,该实体可能参与关系的最大数量。 在最大基数为“1”时,实体在关系中的最大基数记为“one”。 在最大基数超过“1”时,实体在关系中的最大基数记为“many”。 只要关系是有意义的,最大基数就不可能为0. 一个实体在关系中的最小基数是指:对关系中任意的其他实体实例,该实体可能参与关系的最小数量。 在最小基数为“0”时,实体在关系中的最小基数记为“Optional”
17、在最小基数为“1”时,实体在关系中的最小基数记为“Mandatory” 通常情况下,最小基数不会超过1,在超过1时,不做最小基数标记,或用具体数值作为最小基数的标记。,ERD关系,3、关系的基数 例如,下图描述了顾客实体和订单实体的签订关系。在签订关系中,对于一个给定的订单实例,顾客实体有且仅有一个实例参与,因为没有具体顾客签订,就不存在订单,而且订单不能重复使用,即一个订单只能被一个顾客签订。这样,在签订关系中,顾客实体的最大基数为“1”(one),最小基数为“1”(Mandatory),其基数标记如下图所示。继续考虑签订关系中订单实体的基数,对于给定的顾客实例,这个顾客可能一次订单都没有签
18、订过,也可能签订过很多订单,所以在签订关系当中订单实体的最大基数为“N”(Many),最小基数为“0”(Optional),其基数标记如下图。,ERD关系,4、子类型 子类型关系是一种特殊的实体间关系,它用于处理多个实体大部分相似,少部分不同的情况。此时,可以从相似的实体当中抽取共性,建立一个公共的超类型,所有实体都是超类型的子类型。 需要注意的是,子类型并不是实体间自然的业务联系,而是人为施加的结构关系。所以它被认为是一种特殊的实体间关系。其他实体间关系的建立要依靠信息的获取和发现,而子类型的建立则要依靠分析员的分析工作。,管理者,财务人员,is a,员工,销售人员,ERD关系,5、被关系影
19、响的实体 在有些情况下,实体之间不仅仅存在关系,而且实体还会受到关系的影响从而表现出一些特殊的特性。这些被关系影响的实体主要是弱实体和关联实体 弱实体是指存在和标识需要依赖于其他实体的实体。 如,考试是对课程的考试,如果不存在需要评价的课程,也就不存在考试,要标识一场考试,就必须先了解它是针对哪一门课程的考试。其中,“考试”被称为弱实体,关系“对评价”被称为标识关系,“课程”被称为父实体。,弱实体示例,ERD关系,5、被关系影响的实体 在实体之间建立关系时,可能会产生一些附带的实体,这些附带的实体称为关联实体。也就是说,关系实体是实体间建立关系时的副产品,它最常见的形式是进程实体。 如,在学生
20、选择课程时,会发生选择行为,而且这个行为是系统需要收集的进程实体,所以“选择”就是一个关联实体。关联实体需要同时依赖于关系中的所有参与实体才能唯一地标识自己。如果参与实体中有任何一个实体不存在相关的实例,那么关联实体就不可能存在对应的实例,关联实体示例,ERD的创建,前面介绍的使用ERD描述数据模型的方法中描述的对象反映了数据建模时的关注内容。但是在需求分析中更重要的是建立数据模型,然后才有可能使用ERD将其描述出来。 建立数据模型的过程是一个系统从无到有建立ERD的过程,ERD的创建才是数据建模的核心问题。 ERD的创建方法主要有三种: 依据充分描述信息的ERD创建 依据硬数据表单的ERD创
21、建 复杂情况下的ERD创建,ERD的创建,1、依据充分描述信息的ERD创建 如果在建立ERD之前,所需要的数据描述信息已经得到充分的获取,那么ERD的创建过程就是从信息的描述中辨识和描述数据模型元素的过程。在这个过程中,ERD的创建工作会相对比较简单。 能够在建模之前获得充分的信息描述,然后专心进行数据建模的情况通常有以下两种: 系统小而简单,容易获得充分的信息描述 系统的功能分成了一些简单的部分,然后对其中的一个部分进行了充分的信息获取。,因为复杂系统的分析基本上都会使用分而治之的思想,所以掌握如何在局部范围内根据充足的信息描述局部的数据模型是非常必要的。,ERD的创建,1、依据充分描述信息
22、的ERD创建 在获得充分描述信息的情况下,ERD的创建工作可以按照下列步骤进行: 从描述信息中辨识实体。从描述信息中寻找系统需要收集和存储的信息,然后将其建模为实体。寻找时,可以重点关注描述信息中的名词,并以系统是否需要收集其相关特征为依据来判定是否将其建立为独立的实体元素。 确定实体的标识符。为每个实体选择能够唯一标识实例且比较稳定的属性为标识符。 建立实体之间的关系。从描述信息中辨识实体之间存在的业务联系,描述为独立的关系元素。并判断各个关系的建立是否会产生新的关联实体或都影响已有的实体特性。 添加详细的描述信息。在得到一个初步的框架之后,进一步从描述中挖掘信息,为数据模型添加详细的描述信
23、息,包括实体的详细属性和关系的基数。,依据充分描述信息的ERD创建实例,某学校为了提高学生对新技术的理解能力,为研究生设立了研讨制度。制度规定如下: 研讨班在每个学年开始的时候开设,然后持续一个学年。每个研讨班针对一个或几个研究方向。每个研讨班由一位或几位教师主持。在研讨班开设之后,学生可以根据主持老师(的姓名)和研讨班的方向来选择和参加某个研讨班。所有的学生必须且只能参加一个研讨班的学习。研讨班时常开展活动,由教师来决定活动的时间、地点、主题和做报告的学生(的姓名)。每次活动时,由一位或多位同学围绕活动主题做学习报告,交流自己对新技术的学习心得。每个学生一次活动最多只能铸一个报告,但每个学生
24、至少会在一次活动中做一个报告。教师对每份活动中的学生报告进行一次点评和指导,提出建议和意见。,依据充分描述信息的ERD创建实例,假设现在需要开发一个系统来支持研讨班制度的贯彻,主要目的是: 支持研讨班制度的开展,为教师和学生提供一个课内外交流的信息通道和平台 管理开设的各个研讨班,记录研讨班的开展情况。 那么,就可以依据上面的制度说明,建立局部的数据模型,具体如下面所述。,依据充分描述信息的ERD创建实例,(1)辨识实体。 从描述中,可以发现重要名词如下:,依据充分描述信息的ERD创建实例,(1)辨识实体。 因为系统要支持研讨班的开展,所以作为研讨班构成要素的“教师”、“学生”、和“研讨班”本
25、身自然是系统需要收集和存储的数据。又因为系统需要记录研讨班的开展情况,所以作为研讨班的主要内容的“活动”自然也是系统需要收集和存储的数据。,依据充分描述信息的ERD创建实例,(1)辨识实体。 在剩下的几个名词中,“学年”和“研讨方向”是对研讨班的描述,而且系统并不需要关于学生或者研讨班的更详细的特征信息,所以它们应该作为研讨班实体的属性而不是具有自身特征的独立实体在系统中出现。系统不需要它们更加详细的信息是指,以研究方向为例,系统仅仅希望收集关于研究方向的简单描述,不需要了解研究主题、研究发展历史、研究发展状况、研究领头人等等更加详细的信息。 同理,“(活动的)时间”、“(活动的)地点”、“(
26、活动的)主题”也应该是活动实体的属性,而不是独立的实体,依据充分描述信息的ERD创建实例,(1)辨识实体。 在最后剩下的三个名词中,“学习报告”是活动的一个内容,是对活动的描述,但是系统需要更进一步的了解关于学习报告的内容和教师评价,所以它应该用为一个独立的实体存在。而“学习心得”和“建议和意见”是对学习报告的描述,而且系统不需要它们更进一步的特征,所以不应该作为独立的实体出现。,依据充分描述信息的ERD创建实例,(1)辨识实体。 最终发现的实体如下:,学生,教师,研讨班,活动,学习报告,初步辨识的实体,依据充分描述信息的ERD创建实例,(2)确定实体的标识符。 为辨识出来的实体确定标识符:,
27、学生,教师,研讨班,活动,学习报告,学号,工号,班别,班别,活动顺序号,班别,活动顺序号,学生的学号,依据充分描述信息的ERD创建实例,(3)建立实体间的关系。 从描述中可以发现关系如下: 学生“参加”研讨班 教师“主持”研讨班 研讨班“开展”活动 学生“参加”活动 活动“内容包括”学习报告 学生“做”学习报告 教师“点评和指导”学习报告,依据充分描述信息的ERD创建实例,(3)建立实体间的关系。 而且,进一步的分析可以发现: 活动需要依赖于研讨班才能标识自己,所以活动是弱实体 学习报告是学生参加活动的副产品,所以学习报告应该集成到学生与活动的关系中,成为关联实体 教师对学习报告的点评和指导会
28、产生副产品建议和意见,所以出现了“点评和指导”这样一个新的关联实体。,依据充分描述信息的ERD创建实例,(3)建立实体间的关系。 所以,建立实体联系之后的ERD如下图,学生,教师,研讨班,活动,学习报告,学号,工号,班别,活动顺序号,参加,开展,参加,点评和指导,依据充分描述信息的ERD创建实例,(3)建立实体间的关系。 需要注意的是,在一些实体的特性做出调整之后,它们的标识符也发生了变化。因为: “活动”成为弱实体,需要依赖于“研讨班”来标识自己,所以“班号”属性需要去除。 “学习报告”成为关联实体,需要同时依赖于“学生”和“活动”才能标识自己,而且它的三个标识符分别是“学生”实体和“活动”实体的标识符,所以全部标识符都要去除。,依据充分描述信息的ERD创建实例,(4)添加详细的描述信息。 最后,依据描述信息,建立ERD的详细内容,包括实体的属性、关系的基数等。最终的ERD如下:,学生,教师,研讨班,活动,学习报告,学号,工号,班别,活动顺序号,参加,开展,主持,点评和指导,姓名,学年,方向,姓名,内容,心得,主题,地点,时间,1,0n,0.n,1.n,1.n,0.n,0.n,1,1,1,1,1.n,1.n,1.n,ERD的创建,2、依据硬数据表单的ERD创建 除了文本的信息描述之外,硬数据表单也是建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工程照明项目合作计划书
- 中药学专业二-2025年执业药师考试《中药学专业知识二》高分通关卷2
- 2024年汽车美容师实战技能提升试题及答案
- 2025年石油钻采设备合作协议书
- 探索2024年小自考汉语言文学试题及答案的奥秘
- 统统了解2024年统计学测试题
- 小学一年级语文考试全面服务试题与答案
- 2024年视觉传播设计跨界整合题及答案
- 2024-2025承包商入厂安全培训考试试题答案考试直接用
- 2024-2025厂级职工安全培训考试试题(7A)
- 北师大版(2019)必修第二册 Unit6 The admirable Lesson 1 A Medical Pioneer名师教学设计
- 口腔颌面外科手术基本操作-缝合的基本要求(口腔科技术)
- 桂圆(2023年广东中考语文试卷记叙文阅读题及答案)
- 上海市2024年中考语文一模汇编:说明文
- YY 0307-2022 激光治疗设备 掺钕钇铝石榴石激光治疗机
- 从创意到创业智慧树知到期末考试答案章节答案2024年湖南师范大学
- 村庄保洁服务 投标方案(技术标)
- 环氧地坪施工合同范本(2024版)
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 南部升钟湖景区环湖旅游公路工程对南充升钟湖国家湿地公园生态影响评价报告
- 工业机器人考试题库(含答案)
评论
0/150
提交评论