资源预览内容
第1页 / 共64页
第2页 / 共64页
第3页 / 共64页
第4页 / 共64页
第5页 / 共64页
第6页 / 共64页
第7页 / 共64页
第8页 / 共64页
第9页 / 共64页
第10页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库的分析设计常是计算机系统分析设计中的一项十分重要的工作。 在计算机系统中数据库一般是独立于应用系统的,同时数据库与应用系统又是密切相关的,一个大型数据库通常需要向多个应用系统提供数据服务,实现数据共享。 长期以来按照传统的应用软件设计方法,数据库设计与应用系统设计是分别进行的,常常存在一个相互协调的问题。 如果采用UML进行系统的分析与设计,则可以把系统的应用程序(行为)设计和数据库设计统一起来,有效地提高数据库设计的效率和质量,降低开发风险,提高软件成分的可用性,降低开发成本。 本章简要介绍UML用于关系数据库设计的规范、方法与过程。 UML同样适用于对象数据库和对象关系数据库设计。,第13章 数据库分析与设计,Home,第13章 数据库分析与设计,13.1 数据库设计概述,13.2 UML用于数据库设计的规范,13.3 关系数据库逻辑设计,13.4 关系数据库物理设计,Home,13.1 数据库设计概述,Home,13.1.1 数据库与数据库设计,13.1.2 数据模型,13.1.3 数据库设计方法与过程,数据库(Database,DB)是某一组织中各种应用所需要保存和处理的数据的集合,数据结构化地存放在数据库中,完全地或部分地消除了数据的冗余,实现数据共享。在物理上,数据库是磁盘上的一个存储数据的区域。 数据库设计指的是对于一个给定的应用环境,构造一个最优的数据库模式,并据此建立一个既能反映现实世界信息和信息联系、满足用户对数据要求和加工要求,又能被某个数据库管理系统(DBMS)所接受的数据库及其应用系统,使得数据库既能有效、安全、完整地存储大宗数据,又能满足多个用户的信息要求和处理要求。 数据库设计是一个复杂的过程。在这个过程中需要将现实世界中的事物转化为由机器世界所存储和管理的数据。,13.1.1 数据库与数据库设计,Home,一个数据库应用系统的设计包含两方面的内容: (1)结构特性的设计,即数据库模式或数据结构的设计。 (2)行为特性的设计,即应用程序、事务处理的设计。 按照传统的应用软件设计方法,这两者的设计是分别进行的,常常存在一个相互协调的问题。 如果采用UML进行系统的分析与设计,则可以把系统的应用程序(行为)设计和数据库设计统一起来。 单就数据库设计而言,不但可以设计数据库的静态结构(数据库模式),而且可以设计对数据库中数据的各种操作。,13.1.1 数据库与数据库设计,Home,数据模型(Data Model)是对现实世界的抽象,是建立数据库的基础。通常,在一个数据模型中需要描述数据的组织结构、对数据的操作和数据的完整性约束。 当前存在的数据模型大体上可以分为两大类: (1)基于记录的逻辑模型 传统的三种数据模型:层次模型、网状模型和关系模型,都属于这一类。 它们都是以数据记录和数据项作为基本的数据结构。 (2)基于对象的逻辑模型 常见的模型有:实体联系模型(ER模型),面向对象数据模型等。 它们是更高抽象层次意义上的概念模型。,13.1.2 数据模型,Home,1传统的关系数据库设计 传统的关系数据库设计的过程分为四个阶段:需求分析,概念结构设计,逻辑结构设计,物理结构设计。 需求分析阶段的主要任务是通过对现行的手工系统或已有的计算机系统进行调查和分析,以确定对即将建立的数据库应用系统的信息要求和处理要求,并对数据的存储要求和处理要求进行描述,编制出数据库需求分析说明书,作为后续各设计阶段的依据。 数据库的概念结构,或称为企业的组织模式,它是独立于任何一种数据模型和任何具体的数据库管理系统(DBMS)的信息结构模型,它是现实世界的“纯粹”表示。,13.1.3 数据库设计方法与过程,Home,概念结构设计需要借助于某种工具或方法,当前应用最广泛的是实体联系方法(ER方法),它使用ER图定义企业的信息组织模式,即概念结构。 逻辑结构设计的任务是按照一定的规则,将概念结构转换为某种数据库管理系统(DBMS)所能接受的数据模型。 物理结构设计是指对一个给定的逻辑数据模型选取一个最合适应用环境的物理结构的过程。 传统的关系数据库设计存在着不少的缺点,其主要问题是把数据库设计与系统的应用行为设计分离。,13.1.3 数据库设计方法与过程,Home,2使用UML做数据库设计 使用UML设计数据库,可把数据库设计与系统的应用行为设计结合在一起进行,而且UML具有更强的建模表现能力。 使用UML进行关系数据库设计的做法有两种: 其一是以ER图为基础进行数据库设计,设计工作按照ER模型的概念和方法进行,只是用UML表达; 其二是用UML直接进行数据库的分析设计和表达。 第二种做法可以把数据库设计与应用系统软件的设计统一进行。,13.1.3 数据库设计方法与过程,Home,UML的对象类图能够更好地用于对数据库建模。UML的对象类图不但对数据,而且能对行为建模。这些行为在物理数据库中被设计成触发器和存储过程,或者专用的例行程序(Utility)。 使用UML进行数据库分析设计的过程一般分为四个阶段: 业务Use Case模型设计 逻辑数据模型设计 物理数据模型设计 物理实现设计。 在业务Use Case模型设计阶段,实际上是进行数据库的需求分析,使用Use Case图、类图、顺序图、活动图等建立业务Use Case模型。,13.1.3 数据库设计方法与过程,Home,在逻辑数据模型设计阶段,主要是确定应用系统所需要的持久数据,使用Use Case图、顺序图、活动图等建立系统Use Case模型,使用类图、顺序图、活动图、状态机图等建立数据库逻辑模型。 对于关系数据库,须要设计出表达持久数据的实体类(Entity Class)及其联系,并把它们映射成为关系数据库表、视图等。 在物理数据模型设计阶段,使用类图、组件图、配置图等,设计数据库的物理模型。 在物理实现设计阶段,把物理数据模型转换到实际的数据库环境。,13.1.3 数据库设计方法与过程,Home,UML用于数据库设计的规范(UML profile for Database Design)是UML语言中针对数据库建模和设计需要的专用部分。 它遵循UML标准,而且容易使用和理解。 本节介绍的内容主要基于关系数据库的概念,适用于关系数据库的建模和设计。,13.2 UML用于数据库设计的规范,Home,13.2 UML用于数据库设计的规范,Home,13.2.1 表,13.2.2 关键字与索引,13.2.3 约束,13.2.4 联系,13.2.5 视图,13.2.6 数据库与数据库模式,13.2.7 表空间与节点,表(Table)是关系数据库的基本建模结构。 表又称为二维表、关系,它是具有相同结构的行的集合,行又称为元组,其中包含数据。 表中的每一列又称为关系的属性。 任一行与列交叉点的元素称作分量。每一个数据必须作为一个分量值存储。 每个属性所对应的变化范围简称域,它是一个值的集合,关系中所有属性的实际值均来自于它所对应的域。 每一个表有一个关系模式(Relational Scheme),它由一个表名以及它所有的列名构成,它是一个二维表的表头,规定该表的组成、列的特性,以及完整性约束等。 表结构及有关的术语如图13.1所示。,13.2.1 表,Home,例:一个学生表,如图13.1所示。,13.2.1 表,Home,图13.1 表结构与术语,在UML中表用类表示,带有构造型图标“ ”或,类名即表名,类的属性描述表的列特性,包括列名、数据类型,以及有关的约束。在类的行为部分,根据需要可以给出对表的一些操作,也可以缺省。 例:图13.1的学生表的UML类图标表示,如图13.2所示,13.2.1 表,Home,图13.2 学生表与课程表,1关键字 关键字(Key)用于存取表中的数据。 主关键字(Primery Key)是一个属性或属性组,它的值唯一地标识表中的行。 外来关键字(Foreign Key)是一个属性或属性组,它在本表中不是关键字,不能唯一地标识表中的行,但它在另一个表中是主关键字,能够唯一地标识该表中的行。外来关键字体现了两个表的联系,实现表之间的参照完整性。 设置在属性前面的图标“PK”表明该属性是主关键字,图标“FK”标志外来关键字。 主关键字和外来关键字的表示也可以分别使用构造型和。,13.2.2 关键字与索引,Home,2索引 索引(Index)支持快速数据存取的物理结构。 在表中可以指定某个属性作为索引项,或指定某几个属性组成多级索引项。 在表的UML图标中,索引用加在一个操作前面的构造型“”表示,如图13.3所示。,13.2.2 关键字与索引,Home,图13.3 带有索引与约束的表,约束(Constraint)是一种施加于数据库结构的规则,用于保证数据库的完整性。 约束描述数据库的动态行为,而表和列只表示数据库的静态结构方面。 在UML数据库设计规范中定义了多种约束,包括主关键字约束、外来关键字约束、触发器约束(Trigger)、值检验约束(Value Verification)、值唯一性约束(Uniqueness)等。 它们都用带有相应构造型的一个操作实现,如图13.3所示。 (1)主关键字约束 主关键字约束定义一个表的主关键字,每一个表中只允许有一个主关键字。 主关键字约束使用构造型表示。 构造型也可以用一个小图标“PK”代替。 构造型可以加在一个属性名称的前面,以指定该属性为主关键字,也可以加在一个操作名称的前面,以标志该操作的类型。,13.2.3 约束,Home,(2)外来关键字约束 外来关键字约束是实现表之间联系的约束,通常定义在子表中。 外来关键字是这样的列,它在父表中是主关键字,而在子表中则不是关键字。 外来关键字约束使用构造型表示。 构造型也可以用一个小图标“FK”代替。 构造型可以加在一个属性名称的前面,以指定该属性为外来关键字,也可以加在一个操作名称的前面,以标志该操作的类型。 (3)触发器约束 触发器(Trigger)是一种特殊类型的存储过程,触发器的活动是由其它活动的结果自动触发执行的,这一般是对数据库中的数据进行更新操作(插入、删除、修改)的一种副作用。 触发器用于保证数据库的完整性。 触发器约束使用构造型表示,它加在一个操作名称的前面。,13.2.3 约束,Home,(4)值检验约束 表中的列值可以按照某个规则检验其值的正确性,不但可以把列值与一个固定的值范围作比较,而且可以把列值与数据库中的其它数据作比较。 值检验约束使用构造型表示,它可以加在一个操作名称的前面,以标志该操作是一个值检验约束操作。 (5)值唯一性约束 值唯一性约束保证所指定的列的所有值都是互不相同的,即该列的每一个值都是唯一的。 值唯一性约束使用构造型表示,它可以加在一个操作名称的前面,以标志该操作是一个值唯一性约束操作。,13.2.3 约束,Home,表之间的任何依赖关系称为联系(Relationship)。 一个联系是一个带有联系构造型的关联(Association)和一组主关键字、外来关键字的整合(Summary)。 每一个联系都存在于父表和子表之间,父表中必须定义有主关键字,而子表则有外来关键字列和外来关键字约束,用于访问父表。 联系有两种:非确定联系和确定联系。 非确定联系(Non-Identifying Relationship)是存在于两个独立表之间的联系,在子表中的外来关键字为非主关键字。 确定联系(Identifying Relationship)是存在于有依赖的两个表之间的联系,若父表不存在,则子表也不可能存在,子表的存在依赖于父表的存在。在父表中的全部的主关键字列成为子表中的主关键字列和外来关键字列。,13.2.4 联系,Home,联系的构造型和图形表示,如图13.4所示。,13.2.4 联系,Home,图13.4 表之间的联系,视图(View)是一个虚表,它
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号