下午的第二题主要是找【属性】【主键】【外键】【候选键】之间的关系。
候选键:属性或者是属性组合,其值能够唯一地标识一个元组
主键:在一个关系中可能有多个候选键,从中选择一个作为主键
外键:如果一个关系中的属性或者属性组并非该关系的主键,但是它们是另外一个关系的主键。
再加上一些完成示例图啥的。通过业务逻辑的方式进行链接,链接符号一般是【直线箭头】【矩形框】,也会有下面的一些关系。
关系 | 解释 | 符号 |
依赖 | A对象中使用了B对象,那么A对象就堆B对象产生了依赖。 | |
关联 | A对象使用了B对象作为,B对象也使用了A对象就是关联。 | |
聚合 | 父类包含子类,但子类可单独运行是聚合,关系强度小于组合。 | |
组合 | 父类拥有子类,子类不能独立运行,关系强度高。 |
题目:
某公司的主要业务是出租图书和唱碟。由于业务需求,该公司委托希赛公司开发-套信息管理系统。 该系统将记录所有的图书信息、唱碟信息、用户信息用户租借信息等。希赛公司决定采用面向对象的
分析和设计方法开发此系统。图2-22所示为某类图书或唱碟被借阅时应记录的信息,图2-23描述了系统定义的两个类Book和CD,分别表示图书和唱碟的信息。
[问题1]
经过进一步分析,设计人员决定定义一个类Items_ on_ loan,以表示类Book和CD的共有属性和方法。请采用图2-23中属性和方法的名称给出类Items_ on_ loan应该具有的属性和方法。(注意: 不同名称的属性和方法表示不同的含义,如CD中的composer与Book中的author无任何关系)
答案:
属性: title
方法: Reference Title
解析,问题中最后一句已经说明了没有关系的东西,那么剩下的就是相同的,相同的一模一样的就两个,属性是title、方法Reference Title。
[问题2]
为为记录每种图书或唱碟租借的历史记录,引入类CirculationHistory, 类中存储的信息是图2-22中所表示的内容。请采用UML表示法将下列四个类之间的关系表示出来。
答案:
聚台关联中涉及到重复度,当没有指定重复度时,默认重复度为1,那么,两个类CirculationHistory、 Items on loan所在端的重复度都为1。
[问题3]
现需了解十大最畅销(借出次数最多)图书或唱碟。为此,引入TenPopulate类以存储所有十大畅销图书或CD的名称及其被借出的次数。图2 -24的顺序图描述了某类图书或唱碟被借出后成为十大畅销图书或唱碟时对象间的消息交互。系统在一次运行过程中,应有(1) 个TenPopulate实例对象最台适, 一个TenPopulate类实例对象最多需要和(2) 个Items on loan实例对象交互。
答案:
1、1
2、图书和唱碟种类数
解析:
题目中说"引入TemPopulate类以存储所有十大畅销图书或CD的名称及其被借出的次数”,可见TemPopulate类的功能是存储所有十大畅销图书或CD的名称及其被借出的次数。既然如此,系统在一次运行中只需要1个TenPopulate实例对象就可以了,因为它存储所有十大畅销图书或CD的名称及其被借出的次数。每当有图书或唱碟被借出时,都需要和TenPopulate类的对象发生交互,因此,当所有图书或CD都被借阅时, TenPopulate类实例对象需要跟所有这些Items on loan实例对象交互更新借出次数以评出十大最畅销图书或CD, 一个TenPopulate类实例对象最多需要和”图书和唱碟种类总数"个Items_ on loan实例对象交互。