《UML数据建模学习.pptx》由会员分享,可在线阅读,更多相关《UML数据建模学习.pptx(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 数据建模第4章 数据建模1主要内容:关系数据库模型的概念面向对象数据模型到关系设计模型的转换映射面向对象数据模型中类、类之间的关系到关系数据库设计模型的转换方法与步骤利用Rose完成面向对象系统的数据库设计与建模第1页/共73页第一页,编辑于星期日:二点 二十二分。第4章 数据建模2对于一个面向对象的系统,持久对象的存储依赖于面向对象数据库系统来完成,但至今还没有公认的面向对象数据库管理系统。目前成熟的商业数据库都是关系数据库,可以用关系数据库来代替面向对象数据库系统。数据库设计是系统开发的关键部分,系统数据库设计的关键就是完成面向对象数据模型到关系数据库设计模型的转换。作为一个面向对
2、象的信息管理系统,数据库设计是系统开发的关键部分,好的数据库设计有助于保证系统数据的整体性、完整性和共享特性。目前成熟的商业数据库都是关系数据库,本章以Microsoft SQL Server 2000关系数据库管理系统为例作简要介绍。第2页/共73页第二页,编辑于星期日:二点 二十二分。41 基本概念第4章 数据建模3数据库数据的总体逻辑结构称为模式(Schemas)。关系数据库数据的总体逻辑结构是关系模式,这些数据结构的关系模式通过各种表来描述。一个面向对象的系统,要利用关系数据库来表示对象模型需要进行一定的转换,即把面向对象模式的数据模型转换成关系模式的数据模型。其思想可以用如图所示的建
3、模方法表示。第3页/共73页第三页,编辑于星期日:二点 二十二分。第4章 数据建模4面向对象系统的类模型向关系数据库模式转换的映射方式主要包括两方面的映射:一种是对象类的映射。另一种是类之间关系的映射。第4页/共73页第四页,编辑于星期日:二点 二十二分。4.1.1 对象类映射第4章 数据建模5对象类映射主要是指对象标识、属性类型和类三个方面的映射。对象标识符(OID)映射为一张表的主键,如果类中缺少对象标识可以为每个类增加一个对象标识符属性,并将其映射为数据库中相应表的主键。属性类型映射对应于数据库相应表中的域,域的使用可使数据库设计更具一致性,优化数据库应用的可移植性。在实际应用中应为映射
4、域的约束条件加入SQL语句,用以约束、检查域的取值。类映射为一张数据库表,类的属性映射为表的各列(各个域),类的对象映射为表中的各条记录。第5页/共73页第五页,编辑于星期日:二点 二十二分。第4章 数据建模6注意下面几种特殊情况:类的属性中某些属性只是暂时性使用,不需要在数据库中永久保存,则该类属性无须映射。类由于附加对象标识符OID或附加关联关系等原因,需要在表中增加一些新的列(域)。映射后的列(域)应符合关系模型的范式要求,如果不符合则需要应用范式设计理论优化,以达到较好的数据冗余、数据完整性以及灵活性。第6页/共73页第六页,编辑于星期日:二点 二十二分。4.1.2类间关系映射第4章
5、数据建模7类间关系映射相对对象类映射更复杂一些。类间关系包括关联、聚集、泛化、组合等。1.关联关系映射关联关系描述了系统中对象或实例之间的离散连接,是一种结构关系,关联涉及的对象数目称为阶元,阶元的大小反映了关联的多重性。第7页/共73页第七页,编辑于星期日:二点 二十二分。第4章 数据建模8根据阶元不同关联关系可以分为一对一、一对多和多对多等关联。对象类间的一对一关联。可以在两个对象类转换成的关系模式中的任意一个模式内加入一个外键,指向另一个模式的主键,即可建立两个表之间的连接。对象类间的一对多关联。可以通过在具有多个对象的类的关系模式中加入一个外键,指向另一模式的主键建立两个表的连接。实现
6、对象类间的多对多关联。需要将类之间的关联也设计成一个类关联类,把一个多对多的关联转化成两个一对多的关联。引入的该关联类映射为关系数据库中的一个关联表,用来映射关联对象。在新增的关联表中设置一个标识符作为主键,加入两个外键分别指向初始关联的两个关系模式表的主键。第8页/共73页第八页,编辑于星期日:二点 二十二分。第4章 数据建模92.聚集关系映射聚集是一种特殊的关联关系,表示“has-a”关系。将这种关系映射到关系模式时可分为两种情况:聚集关系较为紧密的情况下两个类可以映射到一张表中。聚集关系较为松散的时候可以参照一对多关联的映射方法,在子类映射的表中增加一个指向超类类表主键的外键。第9页/共
7、73页第九页,编辑于星期日:二点 二十二分。第4章 数据建模103.泛化关系映射对于泛化关系的映射有三种方法。一种是把类层次映射成一张表,泛化关系中的所有类都映射在单个表中,同时增加一个对象标识符和一个用于标识角色类型的对象类型。这种方法的耦合度高。另一种方法是每个子类映射为单个表,将超类的属性复制到子类中。在各子类中增加各自的对象标识符。这种方法的耦合度也比较高。第三种方法是每个类映射为单个表,每张表中的对象标识符都设为超类的类表中的对象标识符,在子类的类表中,对象标识符既是主键又是外键。这种方法将创建过多的表,增加数据库访问时间。第10页/共73页第十页,编辑于星期日:二点 二十二分。第4
8、章 数据建模114.组合关系映射组合关系是一种特殊的聚集关系,表示“contains-a”关系。向关系模式的映射可以参照聚集关系。此时整体和部分的所有关系存在很强相互依赖和致的生命周期(共生死),子类(部分)映射成的子表的外键不能为空。UML中的动态结构转换成关系数据模式时可能映射成唯一性约束、主键约束、外键约束、检查约束、索引或者触发器等。第11页/共73页第十一页,编辑于星期日:二点 二十二分。4.2数据库设计的基本过程第4章 数据建模12数据库设计主要涉及3个阶段,即:概念设计。逻辑设计。物理设计。如图:第12页/共73页第十二页,编辑于星期日:二点 二十二分。第4章 数据建模13概念设
9、计阶段把用户的信息要求统一到一个整体逻辑结构中,此结构能表达用户的要求,且独立于任何数据库管理系统(DBMS)软件和硬件。逻辑设计阶段的任务就是把概念设计阶段得到的结果转换为与选用的DBMS所支持的数据模型相符合的逻辑结构。对于关系数据库而言,逻辑设计的结果是一组关系模式的定义,它是DBMS能接受的数据库定义。物理设计阶段的任务是对给定的逻辑数据模型选取一个最适合应用要求的物理结构。数据库的物理结构包括数据库的存储记录格式、存储记录安排、存取方法等,数据库的物理设计是完全依赖于给定的硬件环境和数据库产品的。第13页/共73页第十三页,编辑于星期日:二点 二十二分。第4章 数据建模14在进行数据
10、库设计时,有几个关键的概念,如:模式(schema)、主键(primary key)、外键(foreign key)、域(domain,也称attribute types)、关系(relation ship)、约束(constraint)、索引(index)、触发器(trigger)、存储过程(stored procedure)、视图(view)等。从某种意义上说,用UML进行数据建模就是要考虑如何用UML中的建模元素来表示这些概念,同时考虑满足引用完整性(referential integrity)、范式等要求。一般对于数据库中的这些概念,在UML中大都用版型来表示,在数据建模中常用的一些版
11、型如表所示。第14页/共73页第十四页,编辑于星期日:二点 二十二分。第4章 数据建模15数据库中的概念版型所应用的UML元素数据库构建(Component)模式包(Package)表类(Class)视图类(Class)域类(Class)索引操作(Operation)主键操作(Operation)外键操作(Operation)惟一性约束操作(Operation)检查约束操作(Operation)触发器操作(Operation)存储过程操作(Operation)表与表之间非确定性关系关联,聚集表与表之间确定性关系组合第15页/共73页第十五页,编辑于星期日:二点 二十二分。4.3 数据库设计的步
12、骤第4章 数据建模16结合Rose 2003工具提供的功能来说明如何用UML的类图进行数据库设计,在Rose 2003中数据库设计的步骤如下:1.创建数据库对象。这里所说的数据库对象是指Rose中构件图中的一个构件,其版型为Database。2.创建模式(schema)。对于关系数据库来说,模式可以理解为所有表及表与表之3.间的关系的集合。4.创建域包(domain package)和域(domain)。域可以理解成某一特定的数据类型,它起的作用和VARCHAR2、NUMBER等数据类型类似,但域是用户定义的数据类型。第16页/共73页第十六页,编辑于星期日:二点 二十二分。第4章 数据建模1
13、75.创建数据模型图(data model diagram)。表、视图等可以放在数据模型图中,类似于类放在类图中一样。6.创建表(table)。如果有必要,也可以创建视图,视图是类的版型。7.创建列(column)。在表中创建每一列,包括列名、列的属性等。8.创建关系(relationship)。如果表与表之间存在关系,则创建它们之间的关系。9.在必要的情况下对数据模型进行规范化,如从第二范式转变为第三范式。10.在必要的情况下对数据模型进行优化。11.实现数据模型。在Rose 2003中,可以直接根据数据模型生成具体数据库(如SQL Server、Oracle等)中的表、触发器、存储过程等,
14、也可以根据数据模型先生成SQL语句,以后再执行这些SQL语句,得到具体数据库中的表、触发器、存储过程等。第17页/共73页第十七页,编辑于星期日:二点 二十二分。第4章 数据建模18在Rose 2003中用于数据建模的菜单都在Data Modeler下。在Rose 2003的浏览窗口中用鼠标右击选中的对象,在弹出式菜单中选Data Modeler菜单项,如图所示。其中灰色的选项表示当前不可用的菜单项。第18页/共73页第十八页,编辑于星期日:二点 二十二分。第4章 数据建模19下面是具体的操作步骤:1.在构件视图(component view)中创建数据库对象。创建数据库对象时默认的目标数据库
15、为ANSI SQL92,也可设为其他数据库,如SQL Server 2000、Oracle 9.x、IBM DB2等。如图所示创建的数据库对象名为DB_0,目标数据库设为SQL Server 2000。第19页/共73页第十九页,编辑于星期日:二点 二十二分。第4章 数据建模20第20页/共73页第二十页,编辑于星期日:二点 二十二分。第4章 数据建模21第21页/共73页第二十一页,编辑于星期日:二点 二十二分。第4章 数据建模222.在逻辑视图(logical view)中创建模式,并选定目标数据库。如图所示创建的模式名为schema0,选定的目标数据库是DB_0。第22页/共73页第二十
16、二页,编辑于星期日:二点 二十二分。第4章 数据建模233.在逻辑视图中创建域包和域。首先创建域包。如图所示创建的域包的名字为DP_0,设定的DBMS是SQL Server,也就是说,在这个域包下定义的域是针对SQL Server数据库的。第23页/共73页第二十三页,编辑于星期日:二点 二十二分。第4章 数据建模24第24页/共73页第二十四页,编辑于星期日:二点 二十二分。第4章 数据建模25再创建域。域可看作是定制的数据类型,可以为每个域加检查语句。如图所示创建的域的名字是DOM_0,数据类型为VARCHAR,长度为4,有惟一性约束和非空约束。创建了域DOM_0后,以后在定义表的列的时候
17、,就可以把该列的类型定义为DOM_0。第25页/共73页第二十五页,编辑于星期日:二点 二十二分。第4章 数据建模26第26页/共73页第二十六页,编辑于星期日:二点 二十二分。第4章 数据建模274.创建数据模型图。数据模型图在模式下创建。5.创建表。在数据模型图中创建表。6.创建列。在表上建立列。如图所示创建的表数据模型图的名字是Data Model Diagram,表是Table1和Table2。在表Table1中创建了列COL_0和COL_1,其中列COL_0为主键。在表Table2中创建了列COL_2、COL_3、COL_4,其中列COL_2为主键,列COL_4的类型为步骤3中创建的
18、域DOM_0。第27页/共73页第二十七页,编辑于星期日:二点 二十二分。第4章 数据建模28第28页/共73页第二十八页,编辑于星期日:二点 二十二分。第4章 数据建模29第29页/共73页第二十九页,编辑于星期日:二点 二十二分。第4章 数据建模30第30页/共73页第三十页,编辑于星期日:二点 二十二分。第4章 数据建模31第31页/共73页第三十一页,编辑于星期日:二点 二十二分。第4章 数据建模327.创建表与表之间的关系。表与表之间存在两种关系,即非确定性(non-identifying)关系和确定性(identifying)关系。非确定性关系表示子表不依赖于父表,可以离开父表单独
19、存在。用关联、聚集关系的版型表示。确定性关系表示子表不能离开父表而单独存在。用组合关系的版型表示。8.创建了数据模型后,还要将模型规范化,如转换为3NF。第32页/共73页第三十二页,编辑于星期日:二点 二十二分。第4章 数据建模339.优化数据模型,如创建索引、视图、存储过程、非规范化(denormalization)、使用域等。索引可以用操作的版型表示。视图是类的版型。存储过程是操作的版型。由于存储过程不是单独作用于表的,而是跟特定的数据库联系在一起的,具有全局性,所以把所有的存储过程放在效用(utility)中(效用是类的版型,用于表示全局性的变量或操作),如图所示。第33页/共73页第
20、三十三页,编辑于星期日:二点 二十二分。第4章 数据建模34触发器是作为操作的版型,由于触发器一定是和具体的表相关的,所以建模时触发器是作为某个表的操作部分的版型表示的,如图所示。第34页/共73页第三十四页,编辑于星期日:二点 二十二分。第4章 数据建模3510.实现数据模型,也就是利用Rose 2003产生数据定义语言(DDL)或直接在数据库中创建表。下面对第7步中涉及的表与表之间的非确定性关系和确定性关系做些说明。在这两种关系中,子表中都增加外键以便支持关系。对非确定性关系,外键并不成为子表中主键的一部分;对确定性关系,外键成为子表中主键的一部分。当非确定性关系的父表一端的多重性为1或1
21、.n时,称作强制的(mandatory)非确定性关系。当非确定性关系的父表一端的多重性为0.1或0.n时,称作可选的(optional)非确定性关系。下面是表与表之间的各种关系的例子。第35页/共73页第三十五页,编辑于星期日:二点 二十二分。第4章 数据建模36第36页/共73页第三十六页,编辑于星期日:二点 二十二分。第4章 数据建模37第37页/共73页第三十七页,编辑于星期日:二点 二十二分。4.4 对象模型和数据模型的相互转换第4章 数据建模38在Rose 2003中,对象模型(类图)和数据模型可以相互转换。这种转换不是UML规范说明中要求的,是Rose 2003提供的一个功能,在转
22、换过程中会用到包这种结构。第38页/共73页第三十八页,编辑于星期日:二点 二十二分。4.4.1 对象模型转换为数据模型第4章 数据建模39所谓对象模型转换为数据模型,简单地说,就是把类转换为表,类与类之间的关系转换为表与表之间的关系,或者也转换为表。在Rose 2003中可以把逻辑视图下的包直接转换为数据模型,但这种转换必须是对包进行的。也就是说,要转换的类要放在某个包中,然后把整个包中的所有类都转换过去。第39页/共73页第三十九页,编辑于星期日:二点 二十二分。第4章 数据建模40下面给出转换的具体步骤:1.首先按照上节中介绍的步骤在Rose 2003的构件视图下创建数据库对象。2.在逻
23、辑视图下创建包,例如Demo包,并在包中创建类,例如类Flight和类FlightAttendant,在类Flight和类FlightAttendant之间建立多对多的关联,如图下所示。需要注意的是,类Flight和类FlightAttendant必须要设置为Persistent(表示该类具有持久性,这个属性可以在类的Specification对话框的Detail标签下设置),对于非Persistent的类(创建类时,默认是非Persistent的),在转换时不会生成对应的表。在这个例子中,类与类之间是多对多的关联,也可以是别的关系,如1对多关联、泛化关系等,同样可以转换过去。第40页/共73
24、页第四十页,编辑于星期日:二点 二十二分。第4章 数据建模41第41页/共73页第四十一页,编辑于星期日:二点 二十二分。第4章 数据建模423.用鼠标右击包DEMO,在弹出的菜单中选Data Modeler Transform to Data Model第42页/共73页第四十二页,编辑于星期日:二点 二十二分。第4章 数据建模43弹出对话框,如下图所示。在这个对话框中,可以对要生成的数据模型做一些设置,如要生成的模式的名字、目标数据库、所生成的表名的前缀等,也可以选择是否要对外键生成索引。这里把目标数据库设为在第1步中创建的数据库对象DB_0,其他的选项采用默认值,然后单击OK按钮即可。第
25、43页/共73页第四十三页,编辑于星期日:二点 二十二分。第4章 数据建模444.这时在逻辑视图的Schemas包下会创建S_1模式(实际上也是一个包),在S_1模式中有表T_Flight、T_0、T_FlightAttendant。为了显示表与表之间的关系,还需要按上节中介绍的步骤手工创建一个数据模型图,例如NewDiagram1。然后把这3个表拖动到数据模型图中,表与表之间的关系就自动显示出来了。如图所示。第44页/共73页第四十四页,编辑于星期日:二点 二十二分。第4章 数据建模45第45页/共73页第四十五页,编辑于星期日:二点 二十二分。第4章 数据建模46需要说明的是,把对象模型转
26、换为数据模型,其结果并不是惟一的。Rose 2003中生成的对象模型只是其中的一种结果,如果用户觉得需要,也可以自己根据对象模型创建数据模型,结果可以不一样。第46页/共73页第四十六页,编辑于星期日:二点 二十二分。4.4.2 数据模型转换为对象模型第4章 数据建模47对象模型和数据模型的开发往往是并行进行的,所以在建模过程中不只是有对象模型向数据模型转换的需要,同样也有数据模型向对象模型转换的需要。所谓数据模型向对象模型的转换,简单地说,就是把表转换为类,表与表之间的关系转换为类与类之间的关系。下面给出数据模型向对象模型转换的例子,这里的数据模型以上节中得到的数据模型为例,然后把它转换为对
27、象模型,并与最初的对象模型做比较。第47页/共73页第四十七页,编辑于星期日:二点 二十二分。第4章 数据建模48转换的具体步骤如下:1.数据模型向对象模型的转换是对模式(即包的版型)进行的。Rose2003会把一个模式中的所有表及其关系转换为对象模型,而不会对单个的表进行转换。用鼠标右击图中的S_1,在弹出的菜单中选择Data Modeler Transform to Object Model菜单项,如图所示。第48页/共73页第四十八页,编辑于星期日:二点 二十二分。第4章 数据建模49第49页/共73页第四十九页,编辑于星期日:二点 二十二分。第4章 数据建模502.这时会弹出一个对话框
28、;如图所示。在这个对话框中,可以对要生成的对象模型做一些设置,如要生成的包的名字、所生成的类名的前缀等,也可以选择是否根据表的主键生成类中对应的属性。这里使用默认值,即包名为OM_S_1,类名的前缀为OM_,不选择生成对应主键的属性,然后单击OK按钮即可。第50页/共73页第五十页,编辑于星期日:二点 二十二分。第4章 数据建模513.这时在逻辑视图下会创建包OM_S_1,在这个包中有M_T_Flight类和OM_T_FlightAttendant类。为了显示类与类之间的关系,还需要创建一个类图,例如NewDiagram2。然后把这两个类拖动到类图中,类与类之间的关系就自动显示出来了。如图所示
29、。第51页/共73页第五十一页,编辑于星期日:二点 二十二分。第4章 数据建模52第52页/共73页第五十二页,编辑于星期日:二点 二十二分。4.5 数据库案例分析第4章 数据建模53依照下图所示的类图作为案例,采用Rose对其进行关系数据库设计建模。第53页/共73页第五十三页,编辑于星期日:二点 二十二分。第4章 数据建模54 在上图中,各个类之间的关糸有:1)泛化关系。People类和SalesClerk类是泛化(继承)关系,People类是超类,SalesClerk类是子类。2)一对多的关联关系。SalesClerk类和SalesContract类是一对多的关联关系,表示一个Sales
30、Clerk类对象可对应多个SalesContract类对象,而一个SalesContract类对象只能对应一个SalesClerk类对象。同样,Client类和SalesContract类也是一对多的关联关系。3)多对多的关联关系。SalesContract类和Product类之间是多对多的关联关系,其实际意义是一个SalesContract类对象可以对应多个Product类对象,一个Product类对象也可以对应多个SalesContract类对象。第54页/共73页第五十四页,编辑于星期日:二点 二十二分。第4章 数据建模55首先对People类和SalesClerk类进行映射转换,它们之
31、间是泛化(继承)关系,采用每个子类映射为单个表,将超类的属性复制到子类映射的表中。然后在各子类映射的表中增加各自的对象标识符。第55页/共73页第五十五页,编辑于星期日:二点 二十二分。4.5.1创建数据库关系模式生成器第4章 数据建模56首先运行Rational Rose系统。在左侧浏览器窗口用鼠标右键单击逻辑视图“Logic View”,在弹出的菜单中选择数据模型生成器选项“Data Modeler”,在弹出的下一级菜单中选择“New”选项,然后在弹出的下一级菜单中再选择模式“Schema”选项,即可开始将类生成相应的关系模式。后续的操作都在此基础上进行。第56页/共73页第五十六页,编辑
32、于星期日:二点 二十二分。第4章 数据建模57在展开的模式“Schemas”对话框中,系统默认生成的名字为“S_0”的模式,右键单击打开模式规格说明“Open Specification”对话框,将模式名称“S_0”修改为“进销存管理系统”。如图所示。第57页/共73页第五十七页,编辑于星期日:二点 二十二分。第4章 数据建模58在“进销存管理系统”选项上单击鼠标右键,在弹出的菜单中选择“Data Modeler”,然后选择其“New-Data Model Diagram”子菜单创建一个新数据模型图。双击该图,工具栏按钮变成如图所示。第58页/共73页第五十八页,编辑于星期日:二点 二十二分。
33、4.5.2泛化关系映射的关系模式第4章 数据建模59建立泛化关系映射的关系模式过程如下:单击工具栏上的“Table”图标按钮,在右侧窗口空白处单击鼠标添加一个表对象。打开表规格说明“Table specification”对话框,在“General”页修改表名为“People”。在“Columns”页编辑表的列(域)属性,单击新建图标,或者在列表空白处选择右键快捷菜单“Insert”可创建一个新列,如图所示。第59页/共73页第五十九页,编辑于星期日:二点 二十二分。第4章 数据建模60在新添加的列(域)上单击右键,选择“Open Speclfication”,打开设置对话框设置该 列(域)的
34、名称、数据类型、长度、是否主键以及默认值。把People类的属性映射成表列,应为People类增加一个标识符属性PID,并将其映射为对应表的主键(表中右侧有红色“PK”字样的域)。完成后的People类对应的关系数据库二维表如图所示。依照以上方法完成salesClerk类映射的表单,如图所示第60页/共73页第六十页,编辑于星期日:二点 二十二分。4.5.3关联关系映射的关系模式第4章 数据建模61类之间的关联关系映射到关系数据库中二维表关系模式的步骤如下。(1)一对多关联关系映射对销售人员类salesClerk与销售合同类SalesContract的一对多关联关系进行映射:1)分别建立两个类
35、映射的关系数据库二维表。第61页/共73页第六十一页,编辑于星期日:二点 二十二分。第4章 数据建模62从图中可以看出,在销售人员SalesClerk表中有主键SalesClerkID,在销售合同salesContract表中有主键sConID。在SalesContract表中又增加了一个外键(表中右侧有红色“FK”字样的域)SalesClerkID,其指向为SalesClerk表的主键。第62页/共73页第六十二页,编辑于星期日:二点 二十二分。第4章 数据建模63客户Client类与销售合同SalesContract类之间也是一对多的关联,它们的映射可以仿照上面的步骤添加客户Client表
36、和销售合同SalesContract表的关联。2)然后为两个类添加关联,选择“关联”图标,添加从销售人员SalesClerk表到销售合同SalesContract表的关联。3)双击刚添加的关联可以打开关联规格说明“Open Specification”对话框,设置关联的属性,如图所示。此处添加的关联两端的阶元反映了实际业务的情况,保留默认的设置。完成后的两个表之间的关联模型图如图所示。第63页/共73页第六十三页,编辑于星期日:二点 二十二分。第4章 数据建模64(2)多对多关联关系映射在类图中产品Product类和销售合同SalesContract类是多对多的关联。在实际业务中,一个商品可能
37、出现在多个销售合同中,一个销售合同也可能包括多个商品。1)添加关联类。依照多对多关联的映射方法,将产品Product类和销售合同SalesContract类之间的关联关系设计成一个新类关联类,命名为SCon_Prod。这样就将一个多对多的关联转化成两个一对多的关联。2)各个类映射为关系数据库中的二维表。按照一对多的关联的映射方法步骤将关联双方的类(包括关联类)映射成相应的表,对应关联类,在映射表中增加一个关联表,其名为SCon_Prod,为该表添加一个标识符列(域)SCon_ProdID(在实际业务中需要添加更多的字段才能支持系统的功能)。第64页/共73页第六十四页,编辑于星期日:二点 二十
38、二分。第4章 数据建模653)添加三个表之间的关联。实际业务中一个销售合同对应至少一个商品列表,所以编辑SalesContract表和SCon_Prod表之间的关联,把SCon_Prod表端的阶元改为“1.n”。最终得到类图中五个类(再增加一个关联类)的类图映射的关系数据库的二维表,如下图所示。第65页/共73页第六十五页,编辑于星期日:二点 二十二分。第4章 数据建模66经过以上步骤,可以得到关系模式的表单,可以存放在关系型数据库中。第66页/共73页第六十六页,编辑于星期日:二点 二十二分。4.5.4前项工程代码生成第4章 数据建模67 Rational Rose提供了前向工程(Forwa
39、rd Engineering)支持,用来生成程序代码。1)在“进销存管理系统”模式上单击右键,选择弹出菜单中的选项“Data Modeler”,在弹出的子菜单中再选择前向工程“Forward Engineering”,打开前向工程对话框,如图。第67页/共73页第六十七页,编辑于星期日:二点 二十二分。第4章 数据建模68第68页/共73页第六十八页,编辑于星期日:二点 二十二分。第4章 数据建模692)单击“Next”进入下一个对话框进行功能设置,选择希望生成代码的模型元素。功能选项如图所示。第69页/共73页第六十九页,编辑于星期日:二点 二十二分。第4章 数据建模703)单击“Next”选择保存脚本代码的文件。输入保存代码的文件名,选择好文件路径,点击“Next”完成。显示的对话框如图所示。第70页/共73页第七十页,编辑于星期日:二点 二十二分。第4章 数据建模71第71页/共73页第七十一页,编辑于星期日:二点 二十二分。第4章 数据建模72第72页/共73页第七十二页,编辑于星期日:二点 二十二分。感谢您的观看!第73页/共73页第七十三页,编辑于星期日:二点 二十二分。
限制150内