使用UML的数据库分析与设计.ppt_第1页
使用UML的数据库分析与设计.ppt_第2页
使用UML的数据库分析与设计.ppt_第3页
使用UML的数据库分析与设计.ppt_第4页
使用UML的数据库分析与设计.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 使用UML的数据库分析与设计,本章的教学目的 长期以来按照传统的系统设计方法,应用程序设计与数据库设计是分别进行的,设计完成后还需要对这两项设计进行协调,因此比较麻烦。如果采用UML进行系统分析和设计,则可以把系统的应用程序设计和数据库设计统一起来,有效地提高数据库设计的效率和质量,降低开发风险,提高软件部件的可重用性,降低开发成本。所以,希望同学们通过本章的学习能掌握使用 UML进行数据库分析与设计的方法。 本章的教学内容 UML关系数据库设计的概念、术语和规范 使用UML进行数据库分析与设计的方法与过程,8.1 数据库设计的一般方法与过程 1.传统的关系数据库设计方法与过程 传统的

2、关系数据库设计的过程分为4个阶段: 需求分析; 概念结构设计; 逻辑结构设计; 物理结构设计。 (1)需求分析阶段的主要任务是通过对现有的系统进行调查分析,以确定要建立的新数据库应用系统的信息需求和处理要求,并编制出数据库需求分析说明书,对数据的存储要求和处理要求进行描述,作为后续各设计阶段的依据。,(2)概念结构设计需要借助某种工具或方法,如当前应用最广泛的有实体联系方法(Entity-Relationship,ER方法),它使用ER图定义系统的信息组织模式,即概念结构。,教师-学生-课程E-R 图,(3)逻辑结构设计的任务是按照一定的规则,将概念结构转换为某种数据库管理系统所能接受的数据模

3、型。,图2 一个实体类型转换为一个关系模型,(4)物理结构设计 将前一阶段设计的关系模式转化为具体数据库环境下的数据表结构,以实现对数据库的有效管理。这需要依赖于给定的计算机系统来确定。对于关系数据库系统来说,数据库的物理结构主要由DBMS确定。 2.基于UML的数据库设计 使用UML做数据库设计,可以把数据库设计与系统的应用程序设计结合在一起进行,而且UML具有更强的建模表现能力。,基于UML的关系数据库设计与传统的关系数据库设计的过程类似,一般分为4个阶段: 业务Use Case模型设计:就是进行数据库的需求分析,使用用例图等建立业务模型。 逻辑数据模型设计:主要是确定应用系统所需要的持久

4、数据。使用类图等建立数据库逻辑模型。如果是关系数据库设计,则需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 物理数据模型设计:使用组件图、配置图等,设计数据库的物理模型。 物理实现设计:根据物理数据模型建立具体数据库环境下的数据库,定义构成数据库的基本表、视图等。,8.2 UML用于数据库设计的规范 8.2.1 表是关系数据库的基本建模结构。表又称为二维表或关系,它是具有相同结构的行(Row)的集合,行又称为元组。表中的每一列又称为关系的属性。,在UML中表用类的图标来表示,带有构造型图标“ ”或,类名即表名,类的属性描述表的列特性,包

5、括列名、数据类型,以及有关的约束。在类的行为部分,根据需要可以给出对表的一些操作的描述,也可以缺省。,8.2.2 关键字与索引 (1)候选关键字(candidate key):是一个或多个属性的组合,它唯一地确定某个表里的记录。一个候选关键字里的属性集必须是最小化的;除非破坏唯一性,否则属性不能从候选关键字删除。候选关键字里的属性不能为空。 (2)主关键字(primary key):是一个特别选定的候选关键字,用来唯一地确定表里的记录。 (3)外来关键字(foreign key):是一个属性或属性组,它在本表中不是关键字,不能唯一地标识表中的行,但它在另一个表中是主关键字,能够唯一地标识那个表

6、中的行。外来关键字体现了两个表的联系,实现表之间的参照完整性。 例如: 学生S (学号, 姓名, 性别, 年龄, 身份证号), 课程C (课号, 课名), 选课SC (学号, 课号, 成绩),索引表结构图,(4)索引:索引是由数据库表中一列或多列值的集合形成的数据结构,使用这种结构可快速访问数据库表中的特定信息。在UML图标中,索引用构造型表示。,8.2.3 约束 约束是一种施加于数据库结构的规则,用于保证数据库的正确性或完整性。 (1)主关键字约束加在表的图标中的一个属性名前面,表示该属性为主关键字,也可以加在一个操作名前表示该操作的类型。主关键字约束使用构造型表示,也可用一个小图标“PK”

7、代替。,(2)外来关键字约束加在表中的一个属性名前面,表示该属性为外来关键字,也可以加在一个操作名前表示该操作的类型。外来关键字约束使用构造型表示,也可用一个小图标“FK”代替。,(3)值检验约束可以检验表中列值是否符合某个规则,比如把列值与一个固定的值范围进行比较或与数据库中的其他列的数据进行比较。值检验约束使用构造型表示,它可以加在一个操作名前面,以表示该操作是一个值检验约束。,(4)值唯一性约束保证所定义列的所有值是互不相同的。值唯一性约束使用构造型表示,它可以加在一个操作名前面,以表示该操作是一个值检验约束。,(5)触发器约束当一般的约束难以满足应用程序的功能需求时,可用触发器约束来满

8、足。所以它也是为保证表的数据完整性而定义的某种特殊约束操作。当对表中数据进行了增、删、改等操作时,触发器可能被自动激发执行。触发器约束使用构造型表示,它可以加在一个操作名前面,以表示该操作是一个触发器。,8.2.4 联系 存在于两个表之间的任何关系称为联系。表之间的联系有两种:非确定性联系和确定性联系。 非确定性联系(Non-Identify Relationship)是存在于两个独立表之间的联系,此时在子表中的外来关键字为非主关键字列 。,确定性联系(Identify Relationship)是存在于两个有依赖关系的表之间的联系,若父表不存在,则子表也不存在,子表的存在依赖于父表的存在。父

9、表中的每一个主关键字列都可成为子表中的主关键字列的一部分和外来关键字列。,8.5 视图 一个视图是一个基本表的投影,包含基本表的部分数据。 视图可以看成数据库的窗口,可以简化数据库查询的复杂性,有利于保持数据库数据的一致性和安全性。 在UML中,视图用带有构造性图标“ ”或的类表示,类名即为视图名。但是,视图的属性必须与其来源表中相应的属性一致。,8.6 数据库与数据库模式 (1) 数据库 在UML中,数据库用带有构造型的组件表示,也可用柱型图标表示。,(2) 数据库模式 数据库模式是表的组织结构的描述。关系数据库模式是关系模式的集合,包括对表的静态结构和完整性约束的定义。 在UML中,数据库

10、模式用带有构造型的包表示,通常用在类图中。,8.7 表空间与节点 (1)表空间 表空间是指数据的存储区域。一个数据库可以分布在一个或多个表空间,这取决于数据库的数据量、数据访问要求和安全性的要求。 表空间用带有构造型的组件表示,表空间与数据库的联系用依赖表示。,(2)节点 节点(Node)是处于运行期的分布式系统的物理元素,代表计算机资源,如处理器或其他硬件设备。经过开发得到的软件组件和重用模块就必须配置在相应的节点上才能被执行。 节点在配置图中使用,通过节点和节点之间的联系,表达计算机系统的物理配置结构。,8.3 关系数据库逻辑模型设计 8.3.1 逻辑模型设计 在逻辑数据模型设计阶段,主要

11、任务是确定应用系统所需长期保存的实体数据,用类图等建立数据库的逻辑模型。对于关系数据库,则需要根据系统中的实体类,创建关系数据库模式,包括表、视图、索引等数据结构元素的设计,以及相应的触发器、存储器的设计。 8.3.2 从类创建表 将类转换为表的最简单做法是一对一映射,即为每一个实体类创建一个表。类中的属性就是表中的列,类中的关键字就是表的关键字。,类向表映射示例,类向表映射时应注意的事项: (1)注意数据类型的转换:要把对象类的属性数据类型 转换为数据库模型中列的数据类型; (2)可导出的属性数据,不必作为持久性数据映射成表中的列。 (3)从类创建表的过程中,要指定主关键字和外来关键字,增加

12、必要的约束条件,如合法输入值校验等,做成操作函数列入相应的表模型中。,8.3.3 联系的映射 1. 关联的映射 (1)类之间的关联是“一对一”的情形 在向关系数据模型的映射中,可以为每一个类创建一个表,其中主表的主关键字也是它所关联的表的外来关键字。,(2)类之间的关联是“一对多”的情形 在向关系数据模型的映射中,可以为每一个类创建一个表,其中“一”方表的主关键字也是它所关联的“多”方表的外来关键字。,(3)类之间的关联是“多对多”的情形 在向关系数据模型的映射中,除了为每一个类创建一个表以外,必须创建一个关联表(Associate Table),实现多对多的关联。关联表的作用是把一个“多对多

13、” 的联系转换为两个 “一对多”的联系,该关联表的主关键字由它所关联的每个表的主关键字组成。,2.泛化/特化联系的映射 对于泛化/特化联系的映射,可以有如下三种做法: (1)为超类和每个子类创建一个表,同时视需要可为每一个超类/子类对创建一个视图; (2)为超类创建一个表,将子类的所有列信息存入到超类表中,即将表示泛化/特化联系的层次结构(继承)简单地转换为一个表。 (3)为每一个子类创建一个表,将超类的所有列信息存入到每个子类表中。,当采用第二种方法把泛化/特化关系映射为关系数据模型时,将子类表的所有列信息存入到超类表中。如图8.15所示。,当采用第三种方法把泛化/特化关系映射为关系数据模型

14、时, 为每一个子类创建一个表,将超类的所有列信息存入到每个子类表中。如图8.16所示。,3. 聚合/组合联系的映射 聚合/组合联系的映射类似于关联的映射,可以有如下三种做法: (1)如果构成聚合/组合联系的超类和子类之间的多重性是“一对一”的,则可以把超类和子类合并转换为一个表,其中包含超类和子类的全部属性数据。,(2)如果构成聚合/组合联系的超类和子类之间的多重性是“一对多”的,则可以把超类和子类分别转换为一个表。对于聚合,超类相应的表和子类相应的表之间存在非确定性联系;对于组合,两个表之间存在确定性联系。,8.3.4 触发器与存储过程,触发器(Trigger)为保证表的数据正确性和完整性而

15、定义的约束操作。当对表中数据进行增、删、改等操作时,触发器可能被自动激发执行。触发器约束使用构造型表示,它可以加在一个操作名前面,以表示该操作是一个触发器。,存储过程 (Stored Procedure) 是一种对数据库进行数据操作和运算的程序过程,是经过事先编译的存储在数据库内部的过程。一个存储过程可以是依附于某个表的,也可以是独立的。 在数据库建模中,一个或多个存储过程可以组织成存储过程集,用带有构造型的类图标表示,在其中的操作框中列出每个存储过程的名称、参数和类型,并在前面标记。,8.4 关系数据库物理设计 主要任务是创建必需的表空间和数据库,并把它们配置到适当的物理节点上。 (1)首先

16、创建表空间,然后根据表所存储的数据的特点、数据量的大小,以及对数据存取特性的要求,把全部的表划分成几个组,将每组存入一个或几个表空间。一个表空间可以存储多个表,一个表的数据也可分散于多个表空间,视具体情况而定。,在表空间的基础上,进一步创建数据库,并且按照实际需要和实现环境,考虑将数据库配置在一个独立的物理节点上,还是与应用系统配置在同一个节点上。,8.5 网上书店的关系数据库设计,基于UML的关系数据库设计一般分为4个阶段: 业务Use Case模型设计:就是进行数据库的需求分析,使用用例图等建立业务模型。 逻辑数据模型设计:主要是确定应用系统所需要的持久数据。使用类图等建立数据库逻辑模型。

17、如果是关系数据库设计,则需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 物理数据模型设计:主要任务是创建必须的表空间和数据库,并把它们配置到适当的物理节点上。故使用组件图来描述表空间的组织结构,用配置图来描述数据库系统的运行环境,包括数据库的物理配置。 物理实现设计:把物理数据模型转换成实际环境下的数据库。即结合实际的数据库环境,定义构成数据库的基本表、视图、索引等。,习 题 1.实体关系模型与类图的区别是什么? 2.在数据库逻辑设计和物理设计中主要应考虑哪些问题? 3.两个具有多对多关联的实体类,应如何映射为关系模型中的表和联系?为什么? 4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论