UML第4课数据建模.ppt
《UML第4课数据建模.ppt》由会员分享,可在线阅读,更多相关《UML第4课数据建模.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4 4章章 数据建模数据建模第4章 数据建模2主要内容:主要内容:关系数据库模型的概念关系数据库模型的概念面向对象数据模型到关系设计模型的转换映射面向对象数据模型到关系设计模型的转换映射面向对象数据模型中类、类之间的关系到关系数据库设计模型的面向对象数据模型中类、类之间的关系到关系数据库设计模型的转换方法与步骤转换方法与步骤利用利用Rose完成面向对象系统的数据库设计与建模完成面向对象系统的数据库设计与建模第4章 数据建模3对于一个面向对象的系统,持久对象的存储依赖于面向对对于一个面向对象的系统,持久对象的存储依赖于面向对象数据库系统来完成,但至今还没有公认的面向对象数据象数据库系统来完成
2、,但至今还没有公认的面向对象数据库管理系统。目前成熟的商业数据库都是关系数据库,可库管理系统。目前成熟的商业数据库都是关系数据库,可以用关系数据库来代替面向对象数据库系统。以用关系数据库来代替面向对象数据库系统。数据库设计是系统开发的关键部分,系统数据库设计的关数据库设计是系统开发的关键部分,系统数据库设计的关键就是完成面向对象数据模型到关系数据库设计模型的转键就是完成面向对象数据模型到关系数据库设计模型的转换。换。作为一个面向对象的信息管理系统,数据库设计是系统开作为一个面向对象的信息管理系统,数据库设计是系统开发的关键部分,好的数据库设计有助于保证系统数据的整发的关键部分,好的数据库设计有
3、助于保证系统数据的整体性、完整性和共享特性。目前成熟的商业数据库都是关体性、完整性和共享特性。目前成熟的商业数据库都是关系数据库,本章以系数据库,本章以Microsoft SQL Server 2000关系数据库管关系数据库管理系统为例作简要介绍。理系统为例作简要介绍。4 41 1 基本概念基本概念第4章 数据建模4数据库数据的总体逻辑结构称为模式数据库数据的总体逻辑结构称为模式(Schemas)。关系数据库数据的总体逻辑结构是关系模式,这些数据结构的关关系数据库数据的总体逻辑结构是关系模式,这些数据结构的关系模式通过各种表来描述。系模式通过各种表来描述。一个面向对象的系统,要利用关系数据库来
4、表示对象模型一个面向对象的系统,要利用关系数据库来表示对象模型需要进行一定的转换,即把面向对象模式的数据模型转换需要进行一定的转换,即把面向对象模式的数据模型转换成关系模式的数据模型。其思想可以用如图所示的建模方成关系模式的数据模型。其思想可以用如图所示的建模方法表示。法表示。第4章 数据建模5面向对象系统的类模型向关系数据库模式转换的映射方式面向对象系统的类模型向关系数据库模式转换的映射方式主要包括两方面的映射:主要包括两方面的映射:一种是对象类的映射。一种是对象类的映射。另一种是类之间关系的映射。另一种是类之间关系的映射。4.1.1 4.1.1 对象类映射对象类映射第4章 数据建模6对象类
5、映射主要是指对象标识、属性类型和类三个方面的对象类映射主要是指对象标识、属性类型和类三个方面的映射。映射。对象标识符对象标识符(OID)映射为一张表的主键,如果类中缺少对象标识映射为一张表的主键,如果类中缺少对象标识可以为每个类增加一个对象标识符属性,并将其映射为数据库中可以为每个类增加一个对象标识符属性,并将其映射为数据库中相应表的主键。相应表的主键。属性类型映射对应于数据库相应表中的域,域的使用可使数据库属性类型映射对应于数据库相应表中的域,域的使用可使数据库设计更具一致性,优化数据库应用的可移植性。在实际应用中应设计更具一致性,优化数据库应用的可移植性。在实际应用中应为映射域的约束条件加
6、入为映射域的约束条件加入SQL语句,用以约束、检查域的取值。语句,用以约束、检查域的取值。类映射为一张数据库表,类的属性映射为表的各列类映射为一张数据库表,类的属性映射为表的各列(各个域各个域),类,类的对象映射为表中的各条记录。的对象映射为表中的各条记录。第4章 数据建模7注意下面几种特殊情况:注意下面几种特殊情况:类的属性中某些属性只是暂时性使用,不需要在数据库中永久类的属性中某些属性只是暂时性使用,不需要在数据库中永久保存,则该类属性无须映射。保存,则该类属性无须映射。类由于附加对象标识符类由于附加对象标识符OID或附加关联关系等原因,需要在表或附加关联关系等原因,需要在表中增加一些新的
7、列中增加一些新的列(域域)。映射后的列映射后的列(域域)应符合关系模型的范式要求,如果不符合则需要应符合关系模型的范式要求,如果不符合则需要应用范式设计理论优化,以达到较好的数据冗余、数据完整性应用范式设计理论优化,以达到较好的数据冗余、数据完整性以及灵活性。以及灵活性。4.1.24.1.2类间关系映射类间关系映射第4章 数据建模8类间关系映射相对对象类映射更复杂一些。类间关系包括类间关系映射相对对象类映射更复杂一些。类间关系包括关联、聚集、泛化、组合等。关联、聚集、泛化、组合等。关联关系映射关联关系映射1.关联关系描述了系统中对象或实例之间的离散连接,是一种结构关联关系描述了系统中对象或实例
8、之间的离散连接,是一种结构关系,关联涉及的对象数目称为阶元,阶元的大小反映了关联的关系,关联涉及的对象数目称为阶元,阶元的大小反映了关联的多重性。多重性。第4章 数据建模9根据阶元不同关联关系可以分为一对一、一对多和多对多等关联。根据阶元不同关联关系可以分为一对一、一对多和多对多等关联。对象类间的一对一关联。对象类间的一对一关联。可以在两个对象类转换成的关系模式中的任意一个模式内加可以在两个对象类转换成的关系模式中的任意一个模式内加入一个外键,指向另一个模式的主键,即可建立两个表之间入一个外键,指向另一个模式的主键,即可建立两个表之间的连接。的连接。对象类间的一对多关联。对象类间的一对多关联。
9、可以通过在具有多个对象的类的关系模式中加入一个外键,可以通过在具有多个对象的类的关系模式中加入一个外键,指向另一模式的主键建立两个表的连接。指向另一模式的主键建立两个表的连接。实现对象类间的多对多关联。实现对象类间的多对多关联。需要将类之间的关联也设计成一个类需要将类之间的关联也设计成一个类关联类,把一个多关联类,把一个多对多的关联转化成两个一对多的关联。引入的该关联类映射对多的关联转化成两个一对多的关联。引入的该关联类映射为关系数据库中的一个关联表,用来映射关联对象。在新增为关系数据库中的一个关联表,用来映射关联对象。在新增的关联表中设置一个标识符作为主键,加入两个外键分别指的关联表中设置一
10、个标识符作为主键,加入两个外键分别指向初始关联的两个关系模式表的主键。向初始关联的两个关系模式表的主键。第4章 数据建模10聚集关系映射聚集关系映射聚集是一种特殊的关联关系,表示聚集是一种特殊的关联关系,表示“has-a”关系。将这种关系映射关系。将这种关系映射到关系模式时可分为两种情况:到关系模式时可分为两种情况:聚集关系较为紧密的情况下两个类可以映射到一张表中。聚集关系较为紧密的情况下两个类可以映射到一张表中。聚集关系较为松散的时候可以参照一对多关联的映射方法,在聚集关系较为松散的时候可以参照一对多关联的映射方法,在子类映射的表中增加一个指向超类类表主键的外键。子类映射的表中增加一个指向超
11、类类表主键的外键。第4章 数据建模11泛化关系映射泛化关系映射对于泛化关系的映射有三种方法。对于泛化关系的映射有三种方法。一种是把类层次映射成一张表,泛化关系中的所有类都映射在单一种是把类层次映射成一张表,泛化关系中的所有类都映射在单个表中,同时增加一个对象标识符和一个用于标识角色类型的对个表中,同时增加一个对象标识符和一个用于标识角色类型的对象类型。这种方法的耦合度高。象类型。这种方法的耦合度高。另一种方法是每个子类映射为单个表,将超类的属性复制到子类另一种方法是每个子类映射为单个表,将超类的属性复制到子类中。在各子类中增加各自的对象标识符。这种方法的耦合度也比中。在各子类中增加各自的对象标
12、识符。这种方法的耦合度也比较高。较高。第三种方法是每个类映射为单个表,每张表中的对象标识符都设第三种方法是每个类映射为单个表,每张表中的对象标识符都设为超类的类表中的对象标识符,在子类的类表中,对象标识符既为超类的类表中的对象标识符,在子类的类表中,对象标识符既是主键又是外键。这种方法将创建过多的表,增加数据库访问时是主键又是外键。这种方法将创建过多的表,增加数据库访问时间。间。第4章 数据建模12组合关系映射组合关系映射组合关系是一种特殊的聚集关系,表示组合关系是一种特殊的聚集关系,表示“contains-a”关系。关系。向关系模式的映射可以参照聚集关系。此时整体和部分的向关系模式的映射可以
13、参照聚集关系。此时整体和部分的所有关系存在很强相互依赖和所有关系存在很强相互依赖和致的生命周期致的生命周期(共生死共生死),子类子类(部分部分)映射成的子表的外键不能为空。映射成的子表的外键不能为空。UML中的动态结构转换成关系数据模式时可能映射成唯一中的动态结构转换成关系数据模式时可能映射成唯一性约束、主键约束、外键约束、检查约束、索引或者触发性约束、主键约束、外键约束、检查约束、索引或者触发器等。器等。4.24.2数据库设计的基本过程数据库设计的基本过程第4章 数据建模13数据库设计主要涉及数据库设计主要涉及3个个阶段,即:阶段,即:概念设计。概念设计。逻辑设计。逻辑设计。物理设计。物理设
14、计。如图:如图:第4章 数据建模14概念设计阶段把用户的信息要求统一到一个整体逻辑结构概念设计阶段把用户的信息要求统一到一个整体逻辑结构中,此结构能表达用户的要求,且独立于任何数据库管理中,此结构能表达用户的要求,且独立于任何数据库管理系统系统(DBMS)软件和硬件。软件和硬件。逻辑设计阶段的任务就是把概念设计阶段得到的结果转换逻辑设计阶段的任务就是把概念设计阶段得到的结果转换为与选用的为与选用的DBMS所支持的数据模型相符合的逻辑结构。对所支持的数据模型相符合的逻辑结构。对于关系数据库而言,逻辑设计的结果是一组关系模式的定于关系数据库而言,逻辑设计的结果是一组关系模式的定义,它是义,它是DB
15、MS能接受的数据库定义。能接受的数据库定义。物理设计阶段的任务是对给定的逻辑数据模型选取一个最物理设计阶段的任务是对给定的逻辑数据模型选取一个最适合应用要求的物理结构。数据库的物理结构包括数据库适合应用要求的物理结构。数据库的物理结构包括数据库的存储记录格式、存储记录安排、存取方法等,数据库的的存储记录格式、存储记录安排、存取方法等,数据库的物理设计是完全依赖于给定的硬件环境和数据库产品的。物理设计是完全依赖于给定的硬件环境和数据库产品的。第4章 数据建模15在进行数据库设计时,有几个关键的概念,如:在进行数据库设计时,有几个关键的概念,如:模式模式(schema)、主键、主键(primary
16、 key)、外键、外键(foreign key)、域、域(domain,也称,也称attribute types)、关系、关系(relation ship)、约束、约束(constraint)、索引、索引(index)、触发器、触发器(trigger)、存储过程、存储过程(stored procedure)、视图、视图(view)等。等。从某种意义上说,用从某种意义上说,用UML进行数据建模就是要考虑如何用进行数据建模就是要考虑如何用UML中的建模元素来表示这些概念,同时考虑满足引用完中的建模元素来表示这些概念,同时考虑满足引用完整性整性(referential integrity)、范式等要
17、求。、范式等要求。一般对于数据库中的这些概念,在一般对于数据库中的这些概念,在UML中大都用版型来表中大都用版型来表示,在数据建模中常用的一些版型如表所示。示,在数据建模中常用的一些版型如表所示。第4章 数据建模164.3 4.3 数据库设计的步骤数据库设计的步骤第4章 数据建模17结合结合Rose 2003工具提供的功能来说明如何用工具提供的功能来说明如何用UML的类图进的类图进行数据库设计,在行数据库设计,在Rose 2003中数据库设计的步骤如下:中数据库设计的步骤如下:创建数据库对象。这里所说的数据库对象是指创建数据库对象。这里所说的数据库对象是指Rose中构件图中中构件图中的一个构件
18、,其版型为的一个构件,其版型为Database。创建模式创建模式(schema)。对于关系数据库来说,模式可以理解为所有。对于关系数据库来说,模式可以理解为所有表及表与表之表及表与表之间的关系的集合。间的关系的集合。1.创建域包创建域包(domain package)和域和域(domain)。域可以理解成某一特。域可以理解成某一特定的数据类型,它起的作用和定的数据类型,它起的作用和VARCHAR2、NUMBER等数据类等数据类型类似,但域是用户定义的数据类型。型类似,但域是用户定义的数据类型。第4章 数据建模18创建数据模型图创建数据模型图(data model diagram)。表、视图等可
19、以放在数。表、视图等可以放在数据模型图中,类似于类放在类图中一样。据模型图中,类似于类放在类图中一样。创建表创建表(table)。如果有必要,也可以创建视图,视图是类的。如果有必要,也可以创建视图,视图是类的版型。版型。创建列创建列(column)。在表中创建每一列,包括列名、列的属性等。在表中创建每一列,包括列名、列的属性等。创建关系创建关系(relationship)。如果表与表之间存在关系,则创建它们。如果表与表之间存在关系,则创建它们之间的关系。之间的关系。在必要的情况下对数据模型进行规范化,如从第二范式转变为在必要的情况下对数据模型进行规范化,如从第二范式转变为第三范式。第三范式。在
20、必要的情况下对数据模型进行优化。在必要的情况下对数据模型进行优化。实现数据模型。在实现数据模型。在Rose 2003中,可以直接根据数据模型生成具体中,可以直接根据数据模型生成具体数据库数据库(如如SQL Server、Oracle等等)中的表、触发器、存储过程等,中的表、触发器、存储过程等,也可以根据数据模型先生成也可以根据数据模型先生成SQL语句,以后再执行这些语句,以后再执行这些SQL语句,语句,得到具体数据库中的表、触发器、存储过程等。得到具体数据库中的表、触发器、存储过程等。第4章 数据建模19在在Rose 2003中用于数据建模的菜单都在中用于数据建模的菜单都在Data Model
21、er下。下。在在Rose 2003的浏览窗口中用鼠标右击选中的对象,在弹出的浏览窗口中用鼠标右击选中的对象,在弹出式菜单中选式菜单中选Data Modeler菜单项,如图所示。其中灰色的菜单项,如图所示。其中灰色的选项表示当前不可用的菜单项。选项表示当前不可用的菜单项。第4章 数据建模20下面是具体的操作步骤:下面是具体的操作步骤:在构件视图在构件视图(component view)中创建数据库对象。中创建数据库对象。1.创建数据库对象时默认的目标数据库为创建数据库对象时默认的目标数据库为ANSI SQL92,也可设为,也可设为其他数据库,如其他数据库,如SQL Server 2000、Ora
22、cle 9.x、IBM DB2等。如图等。如图所示创建的数据库对象名为所示创建的数据库对象名为DB_0,目标数据库设为,目标数据库设为SQL Server 2000 。第4章 数据建模21第4章 数据建模22第4章 数据建模23在逻辑视图在逻辑视图(logical view)中创建模式,并选定目标数据库。中创建模式,并选定目标数据库。如图所示创建的模式名为如图所示创建的模式名为schema0,选定的目标数据库是,选定的目标数据库是DB_0 。第4章 数据建模24在逻辑视图中创建域包和域。在逻辑视图中创建域包和域。首先创建域包。首先创建域包。如图所示创建的域包的名字为如图所示创建的域包的名字为D
23、P_0,设定的,设定的DBMS是是SQL Server,也就是说,在这个域包下定义的域是针对,也就是说,在这个域包下定义的域是针对SQL Server数据库的。数据库的。第4章 数据建模25第4章 数据建模26再创建域。再创建域。域可看作是定制的数据类型,可以为每个域加检查语句。域可看作是定制的数据类型,可以为每个域加检查语句。如图所示创建的域的名字是如图所示创建的域的名字是DOM_0,数据类型为,数据类型为VARCHAR,长度为长度为4,有惟一性约束和非空约束。创建了域,有惟一性约束和非空约束。创建了域DOM_0后,以后,以后在定义表的列的时候,就可以把该列的类型定义为后在定义表的列的时候,
24、就可以把该列的类型定义为DOM_0。第4章 数据建模27第4章 数据建模28创建数据模型图。数据模型图在模式下创建。创建数据模型图。数据模型图在模式下创建。创建表。在数据模型图中创建表。创建表。在数据模型图中创建表。创建列。在表上建立列。创建列。在表上建立列。如图所示创建的表数据模型图的名字是如图所示创建的表数据模型图的名字是Data Model Diagram,表,表是是Table1和和Table2。在表。在表Table1中创建了列中创建了列COL_0和和COL_1,其中,其中列列COL_0为主键。在表为主键。在表Table2中创建了列中创建了列COL_2、COL_3、COL_4,其中列其中
25、列COL_2为主键,列为主键,列COL_4的类型为步骤的类型为步骤3中创建的域中创建的域DOM_0。第4章 数据建模29第4章 数据建模30第4章 数据建模31第4章 数据建模32第4章 数据建模33创建表与表之间的关系。创建表与表之间的关系。表与表之间存在两种关系,即非确定性表与表之间存在两种关系,即非确定性(non-identifying)关系和关系和确定性确定性(identifying)关系。关系。非确定性关系表示子表不依赖于父表,可以离开父表单独存非确定性关系表示子表不依赖于父表,可以离开父表单独存在。在。用关联、聚集关系的用关联、聚集关系的版型表示。版型表示。确定性关系表示子表不能离
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UML 数据 建模
限制150内