7-1©PrenticeHall,2015Chapter7概念数据建模面向对象系统分析与设计JoeyF.George,DineshBatra,JosephS.Valacich,JeffreyA.HofferChapter74-2本章目标学习本章后应该能够:–确定如何从用例开发概念数据模型.–理解UML的概念数据模型符号.–解释关系的特征,例如度和重数–描述数据关系,比如关联、聚合与泛化–描述不同种类的属性,比如标识符、多值属性和导出属性Chapter77-3©PrenticeHall,2015Chapter77-4©PrenticeHall,2015概念数据模型—对组织数据整体结构的描绘,以独立于实现的方式说明了数据的结构和数据之间的相互关系.用UML中的类图表示概念-逻辑-物理7.1概念数据建模Chapter77-5©PrenticeHall,2015用例是概念数据建模的关键输入.Chapter77-6©PrenticeHall,2015概念模型为更详细的数据模型和最终的系统设计奠定了基础Chapter77-7©PrenticeHall,2015以数据为中心的问题与调查–自顶向下:类、属性、标识符、关联、泛化、时间维、完整性规则、安全性规则–自底向上:计算机显示、报表、业务表单注意数据需求分析与用例分析的不同-用例需求时没有详细了解数据细节7.2收集概念数据建模的信息Chapter77-8©PrenticeHall,2015类对象属性标识符关联、聚合、组合泛化时间维完整性规则安全性控制7.3UML数据建模导论Chapter77-9©PrenticeHall,2015用户环境中的人、地点、事物、时间或概念及关于这个概念的数据7.3.1类名称属性操作类的图示Chapter77-10©PrenticeHall,2015类的实例封装了数据与行为的实体实例:产品,雇员,订单,行7.3.2对象类对象(类的实例)Chapter7©PrenticeHall,2015类的特性或特征7.3.3属性“学生”类及其属性Chapter77-12©PrenticeHall,20157.3.4标识符属性或属性的组合,用作类的唯一特征候选键:能唯一地标识一个类中各个对象的属性,可以多于一个–例如学号和身份证号主键:被显式指定为区分特征的候选键Chapter77-13©PrenticeHall,2015主键是特殊的标识符;任意两个“学生”类的实例不能取相同的studentId的值.Chapter77-14©PrenticeHall,2015类图中的构造型构造型:用于扩展UML词汇表的结构PK是为主键而设的构造型还有比如多值属性的构造型是multivaluedChapter77-15©PrenticeHall,20157.3.5选择主键(标识符)的要点选择不会在类的各个对象的生命期中改变值的属性为主键选择对类的各个对象保证具有有效值且非空的属性为主键避免智能键,即其结构表明分类、位置或其他特性用单属性的代用键代替大的组合键Chapter77-16©PrenticeHall,20157.3.6多值属性对每个对象可以具有多于一个值的属性多值属性可以包含多个值;一个学生可以有几个电话号码Chapter77.3.7组合属性组合属性有多个部分(子属性).在概念数据模型中它们被视为的不同的类.Chapter77-18©PrenticeHall,20157.3.8关系一个或多个类的对象之间的语义连接在UML中,关系用两个或多个类之间的连线表示(或者一个类与其自身的连线)Chapter77-19©PrenticeHall,2015关系的度参与关系的类的数目主要的度–一元:一个类的对象之间的关系–二元:两个不同的类的对象之间的关系–三元:三个不同的类的对象之间的关系Chapter77-20©PrenticeHall,2015一元关系标识一个类的不同对象间的关系,也称递归关系Chapter77-21©PrenticeHall,2015二元关系的实例:雇员为部门工作.Chapter77-22©PrenticeHall,2015角色标识关系中每个类的目的.Chapter77-23©PrenticeHall,2015注意:一个三元关系不同于三个二元关系.它标识一个同时连接三个不同类的关系.Chapter77-24©PrenticeHall,2015关系中的重数能够或必须与每个B类对象关联的A类对象的数目范围.重数的构成–最小基数:可能的A类对象的最小数目–最大基数:可能的A类对象的最大数目Chapter77-25©PrenticeHall,2015关系的重数关系可能是–一对一–一对多–多对多Chapter77-26©PrenticeHall,2015重数标记:最小..最大一部电影可以对应任意数量的录影带,或者根本没有对应的录影带Chapter77-27©PrenticeHall,2015固定基数用实际数字代替n一个教师能教的课程数最大为6Chapter77-28©PrenticeHall,2015使用角色可以更为清晰地显示关系中谁对应“一”和谁对应“多”.Chapter77-29©PrenticeHall,2015三元关系中的重数.Chapter77-30©PrenticeHall,20157.3.9关联类关联是一种关系,对象之间关系平等关联类:数据建模者决定将其作为一个类建模的一个多对多关联如果关联包含其自身属性的时候尤为有用如表7-2P211用一条虚线连接到关联的一个类标识Chapter77-31©PrenticeHall,2015“证书”表示雇员与课程间的关系,它有一个与该关系有关的属性completeChapter77-32©PrenticeHall,2015有时关联类与其他类也有其自身的关系.Chapter77-33©PrenticeHall,20157.3.10聚合关系•聚合:一个类代表整体,其他类代表部分,但它们之间是松耦合.空心菱形表示聚合,一个运动员是运动队的组成部分,但是脱离运动队也能存在Chapter77-34©PrenticeHall,2015组合关系•组合:紧密耦合的关联,整体和部分相互依赖,彼此无法脱离对方而存在.实心菱形表示组合,“课程行项目”与“课程注册班”相互依赖Chapter77-35©PrenticeHall,20157.3.11组合结构图用于描述整体是如何由部分组成的图形,尤其是当整体包含数量众多的相互联系的部分时更为有用。在包含众多管理的图中可以用于降低复杂性(相比前面的方法-实心菱形!)组合结构图在UML2中才引入Chapter77-36©PrenticeHall,2015Chapter77-37©PrenticeHall,20157.3.12泛化关系超类-子类的关系,首先对一个类(类型)建模,然后将其分为若干个特化的类(子类型)继承–一个子类可以继承其超类的所有属性和操作;一个子类的实例不但能包含一个超类实例的所有信息,还可以增加超类没有的信息.继承是一种“is-a”关系Chapter77-38©PrenticeHall,2015Chapter77-39©PrenticeHall,2015Chapter77-40©PrenticeHall,2015多继承机制比较复杂,并非所有面向对象语言都能支持这种机制,因此要慎用Chapter74-41课堂练习P222,问题与习题–1–2–5Chapter77-42©PrenticeHall,2015-ProductNumber-Description-CostProduct-ComponentNbr-Description-UnitofMeasureComponent13..nGoesinto1..n1..nSimpleComponentComplexComponentGoesinto第一题答案Chapter77-43©PrenticeHall,2015第二题答案-Code-DescriptionTrainingProgram-Name-PracticeTimeTrainingModule11..nIsaprerequisite0..n0..1Chapter77-44©PrenticeHall,2015第五题答案-Code-Description-PriceProperty-Name-Address-PhoneBuyer-Date-OfferPriceOfferChapter74-45首创水务的数据需求–1环保部的法律和法规–2与水资源相关的污染事件–3污水处理的新技术和新应用–4各地污水处理的检测报告Chapter74-46数据的收集方法–1搜索引擎:关键字字典–2人工访问相关网站–3RSSfeeds–4检验报告各地自动上传Chapter74-47什么是RSSFEEDS–简易信息聚合(也叫聚合内容)是一种RSS基于XML标准,在互联网上被广泛采用的内容包装和投递协议。–网络用户可以在客户端借助于支持RSS的聚合工具软件,在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。Chapter74-48面临的挑战–12工作量太大–整个数据量太大,需要过滤Chapter74-49解决方案–?–?Chapter74-50本章小结学习本章后可以–从用例开发数据模型.–用UML符号进行概念建模.–理解关系的度和重数.–可以定义聚合、组合与泛化–会使用标识符和多值属性