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

下载本文档

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

文档简介

1、第八章第八章 使用使用UML的数据库分析与设计的数据库分析与设计n本章的教学目的本章的教学目的 长期以来按照传统的系统设计方法长期以来按照传统的系统设计方法, ,应用程序设计应用程序设计与数据库设计是分别进行的与数据库设计是分别进行的, ,设计完成后还需要对这设计完成后还需要对这两项设计进行协调两项设计进行协调, ,因此比较麻烦。如果采用因此比较麻烦。如果采用UMLUML进行进行系统分析和设计,则可以把系统的应用程序设计和数系统分析和设计,则可以把系统的应用程序设计和数据库设计统一起来,有效地提高数据库设计的效率和据库设计统一起来,有效地提高数据库设计的效率和质量,降低开发风险,提高软件部件的

2、可重用性,降质量,降低开发风险,提高软件部件的可重用性,降低开发成本。所以,希望同学们通过本章的学习能掌低开发成本。所以,希望同学们通过本章的学习能掌握使用握使用 UMLUML进行数据库分析与设计的方法进行数据库分析与设计的方法。n本章的教学内容本章的教学内容UMLUML关系数据库设计的概念、术语和规范关系数据库设计的概念、术语和规范使用使用UMLUML进行数据库分析与设计的方法与过程进行数据库分析与设计的方法与过程8.1 数据库设计的一般方法与过程数据库设计的一般方法与过程1.传统的关系数据库设计方法与过程传统的关系数据库设计方法与过程 传统的关系数据库设计的过程分为传统的关系数据库设计的过

3、程分为4个阶段个阶段:需求分析需求分析;概念结构设计概念结构设计;逻辑结构设计逻辑结构设计;物理结构设计。物理结构设计。(1)需求分析阶段)需求分析阶段的主要任务是通过对现有的的主要任务是通过对现有的系统进行调查分析,以确定要建立的新数据库系统进行调查分析,以确定要建立的新数据库应用系统的信息需求和处理要求,并编制出数应用系统的信息需求和处理要求,并编制出数据库需求分析说明书,对数据的存储要求和处据库需求分析说明书,对数据的存储要求和处理要求进行描述,作为后续各设计阶段的依据理要求进行描述,作为后续各设计阶段的依据。(2)概念结构设计概念结构设计需要借助某种工具或方法,需要借助某种工具或方法,

4、如当前应用最广泛的有如当前应用最广泛的有实体联系方法实体联系方法(Entity-Relationship,ER方法方法),它使用,它使用ER图定义系图定义系统的信息组织模式,即概念结构。统的信息组织模式,即概念结构。教师教师职称职称性别性别职务职务姓名姓名教工号教工号教教学生学生性别性别姓名姓名系系学号学号年级年级学学课程课程学时学时学分学分课名课名课程号课程号成绩成绩1NMN教师教师-学生学生-课程课程E-R 图图(3)逻辑结构设计逻辑结构设计的任务是按照一定的规则,将的任务是按照一定的规则,将概念结构转换为某种数据库管理系统所能接受概念结构转换为某种数据库管理系统所能接受的数据模型。的数据

5、模型。 图2 一个实体类型转换为一个关系模型一个实体类型转换为一个关系模型(4)(4)物理结构设计物理结构设计 将前一阶段设计的关系模式转化为具体数据将前一阶段设计的关系模式转化为具体数据库环境下的数据表结构库环境下的数据表结构,以实现对数据库的有,以实现对数据库的有效管理。这需要依赖于给定的计算机系统来确效管理。这需要依赖于给定的计算机系统来确定。对于关系数据库系统来说,数据库的物理定。对于关系数据库系统来说,数据库的物理结构主要由结构主要由DBMSDBMS确定。确定。2.2.基于基于UMLUML的数据库设计的数据库设计 使用使用UMLUML做数据库设计做数据库设计, ,可以把数据库设计可以

6、把数据库设计与系统的应用程序设计结合在一起进行与系统的应用程序设计结合在一起进行, ,而且而且UMLUML具有更强的建模表现能力。具有更强的建模表现能力。n基于基于UML的关系数据库设计与的关系数据库设计与传统的关系数据库设传统的关系数据库设计的过程类似,一般分为计的过程类似,一般分为4个阶段:个阶段:业务业务Use Case模型设计模型设计:就是进行数据库的需求分:就是进行数据库的需求分析,使用用例图等建立业务模型。析,使用用例图等建立业务模型。逻辑数据模型设计逻辑数据模型设计:主要是确定应用系统所需要的:主要是确定应用系统所需要的持久数据。使用类图等建立数据库逻辑模型。如果持久数据。使用类

7、图等建立数据库逻辑模型。如果是关系数据库设计,则需要设计出表达持久数据的是关系数据库设计,则需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表实体类及其联系,并把它们映射成为关系数据库表(Table)、视图、视图(View)等。等。物理数据模型设计物理数据模型设计:使用组件图、配置图等,设计:使用组件图、配置图等,设计数据库的物理模型。数据库的物理模型。物理实现设计物理实现设计:根据物理数据模型建立具体数据库:根据物理数据模型建立具体数据库环境下的数据库,定义构成数据库的基本表、视图环境下的数据库,定义构成数据库的基本表、视图等。等。 8.2 UML用于数据库设计的规范用于数

8、据库设计的规范8.2.1 表表是关系数据库的基本建模结构。表又称为二是关系数据库的基本建模结构。表又称为二维表或关系,它是具有相同结构的行维表或关系,它是具有相同结构的行(Row)(Row)的集合,的集合,行又称为元组。表中的每一列又称为关系的属性。行又称为元组。表中的每一列又称为关系的属性。 在在UMLUML中中表表用用类的图标类的图标来表示,带有构造型图标来表示,带有构造型图标“ ”“ ”或或,类名即表名,类名即表名,类的属性类的属性描述描述表的列特表的列特性性,包括列名、数据类型,以及有关的约束。在类,包括列名、数据类型,以及有关的约束。在类的行为部分,根据需要可以给出对表的一些操作的的

9、行为部分,根据需要可以给出对表的一些操作的描述,也可以缺省。描述,也可以缺省。 8.2.2 8.2.2 关键字与索引关键字与索引(1)(1)候选关键字候选关键字(candidate keycandidate key):是一个或多个属性):是一个或多个属性的组合,它唯一地确定某个表里的记录。一个候选关的组合,它唯一地确定某个表里的记录。一个候选关键字里的属性集必须是最小化的;除非破坏唯一性,键字里的属性集必须是最小化的;除非破坏唯一性,否则属性不能从候选关键字删除。候选关键字里的属否则属性不能从候选关键字删除。候选关键字里的属性不能为空。性不能为空。(2)(2)主关键字主关键字(primary

10、keyprimary key):是一个特别选定的候选):是一个特别选定的候选关键字,用来唯一地确定表里的记录。关键字,用来唯一地确定表里的记录。(3)(3)外来关键字外来关键字(foreign keyforeign key):是一个属性或属性组,):是一个属性或属性组,它在本表中不是关键字它在本表中不是关键字, ,不能唯一地标识表中的行不能唯一地标识表中的行, ,但但它在另一个表中是主关键字它在另一个表中是主关键字, ,能够唯一地标识那个表能够唯一地标识那个表中的行。外来关键字体现了两个表的联系中的行。外来关键字体现了两个表的联系, ,实现表之实现表之间的参照完整性。间的参照完整性。 例如:例

11、如: 学生学生S (学号学号, 姓名姓名, 性别性别, 年龄年龄, 身份证号身份证号), 课程课程C (课号课号, 课名课名), 选课选课SC (学号学号, 课号课号, 成绩成绩) 8146910223418193140385466467178688085140034516610285153keylink下标下标索引表索引表012345678910111213141516171819key其它域其它域位置位置主表主表索引表结构图索引表结构图 (4)索引索引:索引是由数据库表中一列或多列值的集合形成:索引是由数据库表中一列或多列值的集合形成的数据结构,使用这种结构可快速访问数据库表中的特的数据结

12、构,使用这种结构可快速访问数据库表中的特定信息。在定信息。在UML图标中,索引用构造型图标中,索引用构造型表示。表示。8.2.3 8.2.3 约束约束 约束是一种施加于数据库结构的规则约束是一种施加于数据库结构的规则, ,用于保证数用于保证数据库的正确性或完整性。据库的正确性或完整性。(1)主关键字主关键字约束约束加在表的图标中的一个属性名前加在表的图标中的一个属性名前面,表示该属性为面,表示该属性为主关键字,也可以加在一个操作主关键字,也可以加在一个操作名前表示该操作的类型名前表示该操作的类型。主关键字主关键字约束使用构造型约束使用构造型表示,也可用一个小图标表示,也可用一个小图标“PK”代

13、替。代替。(2 2)外来外来关键字关键字约束约束加在表中的一个属性名前面,加在表中的一个属性名前面,表示该属性为表示该属性为外来关键字外来关键字, ,也可以加在一个操作名前也可以加在一个操作名前表示该操作的类型表示该操作的类型。外来关键字外来关键字约束使用构造型约束使用构造型表示,也可用一个小图标表示,也可用一个小图标“FK”代替。代替。 (3)值检验约束值检验约束可以检验表中列值是否符合某个规则,可以检验表中列值是否符合某个规则,比如把列值与一个固定的值范围进行比较或与数据库比如把列值与一个固定的值范围进行比较或与数据库中的其他列的数据进行比较。值检验约束使用构造型中的其他列的数据进行比较。

14、值检验约束使用构造型表示表示,它可以加在一个操作名前面,以表它可以加在一个操作名前面,以表示该操作是一个值检验约束。示该操作是一个值检验约束。(4)值唯一性约束值唯一性约束保证所定义列的所有值是互不相同保证所定义列的所有值是互不相同的。值唯一性约束使用构造型的。值唯一性约束使用构造型表示表示,它可以加在一个操作名前面,以表示该操作是一个它可以加在一个操作名前面,以表示该操作是一个值检验约束。值检验约束。(5 5)触发器约束触发器约束当一般的约束难以满足应用程序的功当一般的约束难以满足应用程序的功能需求时,可用触发器约束来满足。所以它也是为保证能需求时,可用触发器约束来满足。所以它也是为保证表的

15、数据完整性而定义的某种特殊约束操作。当对表中表的数据完整性而定义的某种特殊约束操作。当对表中数据进行了增、删、改等操作时,触发器可能被自动激数据进行了增、删、改等操作时,触发器可能被自动激发执行。发执行。触发器约束使用构造型触发器约束使用构造型表示表示, ,它可它可以加在一个操作名前面,以表示该操作是一个触发器。以加在一个操作名前面,以表示该操作是一个触发器。8.2.4 联系联系 存在于两个表之间的任何关系称为存在于两个表之间的任何关系称为联系联系。表之间的。表之间的联系有两种:联系有两种:非确定性联系非确定性联系和和确定性联系确定性联系。非确定性联系非确定性联系(Non-Identify R

16、elationship)是存在是存在于两个独立表之间的联系,此时在子表中的外来关键于两个独立表之间的联系,此时在子表中的外来关键字为非主关键字列字为非主关键字列 。l确定性联系确定性联系(Identify Relationship)是存在于两个有依是存在于两个有依赖关系的表之间的联系,若父表不存在,则子表也不赖关系的表之间的联系,若父表不存在,则子表也不存在,子表的存在依赖于父表的存在。父表中的每一存在,子表的存在依赖于父表的存在。父表中的每一个主关键字列都可成为子表中的主关键字列的一部分个主关键字列都可成为子表中的主关键字列的一部分和外来关键字列。和外来关键字列。8.5 8.5 视图视图 一

17、个视图是一个基本表的投影一个视图是一个基本表的投影, ,包含基本表的部分包含基本表的部分数据。数据。 视图可以看成数据库的窗口视图可以看成数据库的窗口, ,可以简化数据可以简化数据库查询的复杂性库查询的复杂性, ,有利于保持数据库数据的一致性和有利于保持数据库数据的一致性和安全性。安全性。 在在UMLUML中,视图用带有构造性图标中,视图用带有构造性图标“ ”“ ”或或的类表示,类名即为视图名。但是,视图的类表示,类名即为视图名。但是,视图的属性必须与其来源表中相应的属性一致。的属性必须与其来源表中相应的属性一致。8.6 数据库与数据库模式数据库与数据库模式 (1) 数据库数据库 在在UMLU

18、ML中中, ,数据库用带有构造型数据库用带有构造型的组的组件表示件表示, ,也可用柱型图标表示。也可用柱型图标表示。 (2) 数据库模式数据库模式 数据库模式是表的组织结构的描述。关系数据库数据库模式是表的组织结构的描述。关系数据库模式是关系模式的集合,包括对表的静态结构和完模式是关系模式的集合,包括对表的静态结构和完整性约束的定义。整性约束的定义。 在在UMLUML中,数据库模式用带有构造型中,数据库模式用带有构造型的的包表示,通常用在类图中。包表示,通常用在类图中。8.7 表空间与节点表空间与节点(1)(1)表空间表空间 表空间是指数据的存储区域。一个数据库可以分表空间是指数据的存储区域。

19、一个数据库可以分布在一个或多个表空间,这取决于数据库的数据量、布在一个或多个表空间,这取决于数据库的数据量、数据访问要求和安全性的要求。数据访问要求和安全性的要求。 表空间用带有构造型表空间用带有构造型的组件表示,的组件表示,表空间与数据库的联系用依赖表示。表空间与数据库的联系用依赖表示。(2)节点)节点 节点节点(Node)(Node)是处于运行期的分布式系统的物理元是处于运行期的分布式系统的物理元素素, ,代表计算机资源代表计算机资源, ,如处理器或其他硬件设备。经如处理器或其他硬件设备。经过开发得到的软件组件和重用模块就必须配置在相过开发得到的软件组件和重用模块就必须配置在相应的节点上才

20、能被执行。应的节点上才能被执行。 节点在配置图中使用节点在配置图中使用, ,通过节点和节点之间的联系通过节点和节点之间的联系, ,表达计算机系统的物理配置结构。表达计算机系统的物理配置结构。8.3 关系数据库逻辑模型设计关系数据库逻辑模型设计8.3.1 8.3.1 逻辑模型设计逻辑模型设计 在逻辑数据模型设计阶段在逻辑数据模型设计阶段, ,主要任务是确定主要任务是确定应用系统所需长期保存的实体数据应用系统所需长期保存的实体数据, ,用类图等用类图等建建立数据库的逻辑模型。对于关系数据库,则需立数据库的逻辑模型。对于关系数据库,则需要根据系统中的实体类,创建关系数据库模式,要根据系统中的实体类,

21、创建关系数据库模式,包括表、视图、索引等数据结构元素的设计,包括表、视图、索引等数据结构元素的设计,以及相应的触发器、存储器的设计。以及相应的触发器、存储器的设计。8.3.2 8.3.2 从类创建表从类创建表 将类转换为表的最简单做法是一对一映射,即将类转换为表的最简单做法是一对一映射,即为每一个实体类创建一个表。类中的属性就是为每一个实体类创建一个表。类中的属性就是表中的列,类中的关键字就是表的关键字。表中的列,类中的关键字就是表的关键字。 类向表映射示例类向表映射示例类向表映射时应注意的事项:类向表映射时应注意的事项:(1)注意数据类型的转换:要把对象类的属性数据类型)注意数据类型的转换:

22、要把对象类的属性数据类型 转换为数据库模型中列的数据类型;转换为数据库模型中列的数据类型;(2)可导出的属性数据,不必作为持久性数据映射成表)可导出的属性数据,不必作为持久性数据映射成表中的列。中的列。(3)从类创建表的过程中,要指定主关键字和外来关键)从类创建表的过程中,要指定主关键字和外来关键字,增加必要的约束条件,如合法输入值校验等,做成字,增加必要的约束条件,如合法输入值校验等,做成操作函数列入相应的表模型中。操作函数列入相应的表模型中。8.3.3 8.3.3 联系的映射联系的映射 1. 1. 关联的映射关联的映射(1)(1)类之间的关联是类之间的关联是“一对一一对一”的情形的情形 在

23、向关系数据模型的映射中,可以为每一个类创建在向关系数据模型的映射中,可以为每一个类创建一个表,其中主表的主关键字也是它所关联的表的外一个表,其中主表的主关键字也是它所关联的表的外来关键字。来关键字。(2)(2)类之间的关联是类之间的关联是“一对多一对多”的情形的情形 在向关系数据模型的映射中,可以为每一个类创建在向关系数据模型的映射中,可以为每一个类创建一个表,其中一个表,其中“一一”方表的主关键字也是它所关联的方表的主关键字也是它所关联的“多多”方表的外来关键字。方表的外来关键字。(3)类之间的关联是类之间的关联是“多对多多对多”的情形的情形 在向关系数据模型的映射中,除了为每一个类创建在向

24、关系数据模型的映射中,除了为每一个类创建一个表以外,必须一个表以外,必须创建一个关联表创建一个关联表(Associate Associate TableTable),),实现多对多的关联实现多对多的关联。关联表的作用是把一个。关联表的作用是把一个“多对多多对多” ” 的联系转换为两个的联系转换为两个 “ “一对多一对多”的联系,的联系,该关联表的主关键字由它所关联的每个表的主关键字该关联表的主关键字由它所关联的每个表的主关键字组成。组成。2.泛化泛化/特化联系的映射特化联系的映射 对于泛化对于泛化/ /特化联系的映射特化联系的映射, ,可以有如下可以有如下三种做法三种做法: :(1)(1)为超

25、类和每个子类创建一个表为超类和每个子类创建一个表, ,同时视需同时视需要可为每一个要可为每一个超类超类/ /子类对子类对创建一个视图创建一个视图; ;(2)(2)为超类创建一个表为超类创建一个表, ,将子类的所有列信息将子类的所有列信息存入到超类表中存入到超类表中, ,即将表示泛化即将表示泛化/ /特化联系特化联系的层次结构的层次结构( (继承继承) )简单地转换为一个表。简单地转换为一个表。(3 3)为每一个子类创建一个表,将超类的所)为每一个子类创建一个表,将超类的所有列信息存入到每个子类表中。有列信息存入到每个子类表中。n当当采用第二种方法把泛化采用第二种方法把泛化/ /特化关系映射为关

26、特化关系映射为关系数据模型系数据模型时时, ,将子类表的所有列信息存入到超将子类表的所有列信息存入到超类表中。如图类表中。如图8.158.15所示。所示。n当当采用第三种方法把泛化采用第三种方法把泛化/ /特化关系映射为关特化关系映射为关系数据模型系数据模型时时, , 为每一个子类创建一个表,将为每一个子类创建一个表,将超类的所有列信息存入到每个子类表中。如图超类的所有列信息存入到每个子类表中。如图8.168.16所示。所示。3. 聚合聚合/组合联系的映射组合联系的映射 聚合聚合/ /组合联系的映射类似于关联的映射组合联系的映射类似于关联的映射, ,可以有如下可以有如下三种做法三种做法: :(

27、1)(1)如果构成聚合如果构成聚合/ /组合联系的超类和子类之间的多重组合联系的超类和子类之间的多重性是性是“一对一一对一”的,则可以把超类和子类合并转换的,则可以把超类和子类合并转换为一个表,其中包含超类和子类的全部属性数据。为一个表,其中包含超类和子类的全部属性数据。(2)如果构成聚合如果构成聚合/ /组合联系的超类和子类之间的多重性是组合联系的超类和子类之间的多重性是“一对多一对多”的,则可以把超类和子类分别转换为一个表。的,则可以把超类和子类分别转换为一个表。对于聚合,超类相应的表和子类相应的表之间存在非确对于聚合,超类相应的表和子类相应的表之间存在非确定性联系;对于组合,两个表之间存

28、在确定性联系。定性联系;对于组合,两个表之间存在确定性联系。8.3.4 触发器与存储过程触发器与存储过程n触发器触发器(Trigger)为保证表的数据正确性和完为保证表的数据正确性和完整性而定义的约束操作。当对表中数据进行增、删、整性而定义的约束操作。当对表中数据进行增、删、改等操作时,触发器可能被自动激发执行。触发器改等操作时,触发器可能被自动激发执行。触发器约束使用构造型约束使用构造型表示表示,它可以加在一它可以加在一个操作名前面,以表示该操作是一个触发器。个操作名前面,以表示该操作是一个触发器。n存储过程存储过程 (Stored Procedure) 是一种对数据库进行数据是一种对数据库

29、进行数据操作和运算的程序过程操作和运算的程序过程, ,是经过事先编译的存储在数据库内部是经过事先编译的存储在数据库内部的过程。一个存储过程可以是依附于某个表的,也可以是独的过程。一个存储过程可以是依附于某个表的,也可以是独立的。立的。 在数据库建模中,一个或多个存储过程可以组织成存储过在数据库建模中,一个或多个存储过程可以组织成存储过程集,用带有构造型程集,用带有构造型的类图标表示,在其的类图标表示,在其中的操作框中列出每个存储过程的名称、参数和类型,并在中的操作框中列出每个存储过程的名称、参数和类型,并在前面标记前面标记。8.4 关系数据库物理设计关系数据库物理设计 主要任务是创建必需的表空

30、间和数据库,并把它们配主要任务是创建必需的表空间和数据库,并把它们配置到适当的物理节点上。置到适当的物理节点上。 (1)首先创建表空间首先创建表空间,然后根据表所存储的数据的特点、,然后根据表所存储的数据的特点、数据量的大小,以及对数据存取特性的要求,把全部的数据量的大小,以及对数据存取特性的要求,把全部的表划分成几个组,将每组存入一个或几个表空间。一个表划分成几个组,将每组存入一个或几个表空间。一个表空间可以存储多个表,一个表的数据也可分散于多个表空间可以存储多个表,一个表的数据也可分散于多个表空间,视具体情况而定。表空间,视具体情况而定。n在表空间的基础上在表空间的基础上, ,进一步进一步

31、创建数据库创建数据库, ,并且按并且按照实际需要和实现环境照实际需要和实现环境, ,考虑将数据库配置在考虑将数据库配置在一个独立的物理节点上一个独立的物理节点上, ,还是与应用系统配置还是与应用系统配置在同一个节点上。在同一个节点上。8.5 网上书店的关系数据库设计n基于基于UMLUML的关系数据库设计一般分为的关系数据库设计一般分为4 4个阶段:个阶段:业务业务Use Case模型设计模型设计:就是进行数据库的需求分析,:就是进行数据库的需求分析,使用用例图等建立业务模型。使用用例图等建立业务模型。逻辑数据模型设计逻辑数据模型设计:主要是确定应用系统所需要的持:主要是确定应用系统所需要的持久数据。使用类图等建立数据库逻辑模型。如果是关久数据。使用类图等建立数据库逻辑模型。如果是关系数据库设计,则需要设计出表达持久数据的实体类系数据库设计,则需要设计出表达持久数据的实体

温馨提示

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

评论

0/150

提交评论