课程名称:数据库系统概论

Download Report

Transcript 课程名称:数据库系统概论

数据库原理
Database Principle
仲恺农业技术学院计算机科学与工程学院
An Introduction to Database System
第七章
基于UML的数据库设计
7.1 数据库设计概述
7.2 UML建模语言
7.3 数据库设计实例
--GML空间数据库设计建模
7.4 关系数据理论
7.5 小结
An Introduction to Database System
7.1 数据库设计概述

数据库设计

数据库设计: 指对于一个给定的应用环境,构造(设计)优
化的数据库逻辑模式和物理结构,并据此建立数据库及其应
用系统,使之能够有效地存储和管理数据,满足各种用户的
应用需求,包括信息管理要求和数据操作要求。

目标:为用户和各种应用系统提供一个信息基础设施和高效
率的运行环境

数据库应用系统: 在数据库领域内,常常把使用数据库的各类
系统统称为数据库应用系统。
An Introduction to Database System
7.1 数据库设计概述
7.1.1 数据库设计方法
7.1.2 数据库设计的基本步骤
An Introduction to Database System
7.1.1 数据库设计方法

手工与经验相结合方法

设计质量与设计人员的经验和水平有直接关系

数据库运行一段时间后常常不同程度地发现各种问
题,增加了维护代价

规范设计法
 基本思想:过程迭代和逐步求精
An Introduction to Database System
数据库设计方法(续)

新奥尔良(New Orleans)方法


基于E-R模型的数据库设计方法


概念设计阶段广泛采用
3NF(第三范式)的设计方法


将数据库设计分为若干阶段和步骤
逻辑阶段可采用的有效方法
ODL(Object Definition Language)方法

面向对象的数据库设计方法
An Introduction to Database System
数据库设计方法(续)

CASE工具 :(即Computer Aided Software Engineering,中文是计算机辅
助软件工程,指:在软件工程活动中,软件工程师和管理员按照软件工程的方
法和原则,借助于计算机及其软件工具的帮助,开发、维护、管理软件产品的过
程)

ORACLE Designer 2000

SYBASE PowerDesigner

Visio

Rational Rose
常用case工具参考:http://blog.csdn.net/mark0402/articles/418825.aspx
An Introduction to Database System
7.1 数据库设计概述
7.1.1 数据库设计方法
7.1.2 数据库设计的基本步骤
An Introduction to Database System
7.1.2 数据库设计的基本步骤
一、数据库设计的准备工作:选定参加设计的人
1.系统分析人员、数据库设计人员

自始至终参与数据库设计
2. 用户和数据库管理员

主要参加需求分析和数据库的运行维护
3.应用开发人员(程序员和操作员)

在系统实施阶段参与进来,负责编制程序和准备软硬件环境
An Introduction to Database System
数据库设计的基本步骤(续)
二、数据库设计分6个阶段







需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
既是数据库设计过程,又是数据库应用系统的设计过程
An Introduction to Database System
数据库设计的基本步骤(续)
设计一个完善的数据库应用系统往往是上述六
个阶段的不断反复(P202图7.2)
An Introduction to Database System
应用需求
(数据、处理)
需求收集和分析
需求分析阶段
转换规则、
DBMS功能、
优化方法
设计概念结构
概念设计阶段
设计逻辑结构
逻辑设计阶段
应用要求,
DBMS详细特征
数据模型优化
设计物理结构
物理设计阶段
评价设计、性能预测
物理实现
数据库实施阶段
试验性运行
数据库运行、维
An Introduction to Database
System
使用、维护数据库
护阶段
第七章
基于UML的数据库设计
7.1 数据库设计概述
7.2 UML建模语言
7.3 数据库设计实例
--GML空间数据库设计建模
7.4 关系数据理论
7.5 小结
An Introduction to Database System
7.2 UML建模语言
7.2.1 UML概述
7.2.2 UML实例
7.2.3 UML语言小结
7.2.4 UML建模Case工具
An Introduction to Database System
UML能解决什么问题?




随着软件产业的规模越来越大和对软件通用性的要求越来越强,在软件
开发的各个阶段都要求有尽可能的可交互性和可重用性,即要求有尽可
能高的规范和通用的工具。
统一建模语言UML的不断发展和完善大大地推动了软件产业的规模化和
发展速度。现在世界上几乎所有的大公司都采用UML作为他们的建模语
言,如:IBM、HP、Sun、Oracle、Borland、Rational、CDEC、I-Logix、
ompuware、 Itellicorp、ICON Computing、MCI Systemhouse、Rational
Software、TI以及Unisys等公司。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它
溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支
持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
先编码后修复是糟糕的;而先设计再纠错(design-and-fix)则是优秀的。
An Introduction to Database System
7.2.1 UML概述




为什么要建模 ?
更好的理解我们正在开发的系统并发现简化和
重用的机会
表达我们所渴望的系统结构和行为
展示和控制系统体系结构
风险控制
An Introduction to Database System
7.2.1 UML概述(续)
软件工程领域在1995年至1997年取得了前所
未有的进展,其成果超过软件工程领域过去15年来
的成就总和。其中最重要的、具有划时代重大意义
的成果之一就是统一建模语言— UML ( Unified
Modeling Language)的出现。在世界范围内,至少
在近10年内,UML将是面向对象技术领域内占主导
地位的标准建模语言。
An Introduction to Database System
UML——图
Static
Diagrams
Use-Case
Diagrams
Class
Diagrams
Object
Diagrams
Sequence
Diagrams
Collaboration
Diagrams
行
为
Dynamic
Diagrams
结
构
Component
Diagrams
Models
Statechart
Diagrams
Deployment
Diagrams
Package
Diagrams
Activity
DiagramsAn Introduction to Database System
UML的10个核心框图










用例图
类图
对象图
序列图
协作图
状态图
活动图
包图
组件图
部署图
An Introduction to Database System
Design View 描
Use case View描述
系统的外部特性、
述系统设计特征,
系统功能等。
包括结构模型视
图和行为模型视
图,前者描述系
统的静态结构(类 设计视图
实现视图
图、对象图),后
Use case
者描述系统的动
视图
态行为(协作图、
配置视图
状态图、活动图)。 过程视图
UML常用视图
Implementation
View 表示系统
的实现特征,常
用组件图表示。
Deployment View 配置
Process View 表示系统内
部的控制机制。常用类图描
述过程结构,用协作图描述
过程行为。
视图描述系统的物理配置
特征。用部署图表示。
An Introduction to Database System
7.2 UML建模语言
7.2.1 UML概述
7.2.2 UML实例
7.2.3 UML语言小结
7.2.4 UML建模Case工具
An Introduction to Database System
如何使用UML?



UML是一种标准的面向对象建模语言,不是一种方
法论,即没有提供建模方法,因此,学习UML的同
时还需要学习面向对象建模方法。
利用UML语言实现分析人员、设计人员、开发人员
以及用户之间的有效而统一的沟通。
UML以面向对象图的方式来描述任何类型的系统,
具有很宽的应用领域,可以对任何具有静态结构和
动态行为的系统(包括非软件系统)进行建模。
An Introduction to Database System
如何使用UML?
在系统开发的不同阶段,使用UML为系统建
模,可以通过建立不同的模型,从不同的视
角,以不同的详略程度对系统进行描述。下
面以一个ATM系统的开发过程为例,具体
介绍UML建模的实际过程:
An Introduction to Database System
An Introduction to Database System
一个ATM系统实例
(1) 需求分析

需求
建立一个具有基本功能的ATM机软件
客户可以存钱,取钱
客户可以查询节余
客户可以修改密码
客户可以使用信用卡转帐,付款
An Introduction to Database System
一个ATM系统实例(续)

分析
找出角色actor
定义用例 use case
An Introduction to Database System
一个ATM系统实例(续)
(2) 概念建模:ATM系统的用例图
系统
存钱
取钱
转帐
信用系统
用户
付款
查询余额
改密
An Introduction to Database System
Tips:




如何识别actor?
谁使用系统的主要功能(主要使用者)
主执行者完成用例有时需要辅助执行者
如何确定use case?
Actor通过执行 use case达到有意义的目标
使用和扩展(Use and Extend)
《Use》表示一个用例使用另一个用例。
《Extend》通过向被扩展的用例添加动作来扩
展用例。
An Introduction to Database System
系统
系统
插卡
<<uses>>
验证密码
系统提示输入密码
取钱
主角1
<<uses>>
输入密码
扣除帐户金额
主角1
输入金额
取钱
An Introduction to Database System
一个ATM系统实例(续)
(3) 逻辑建模
 建立事件流
 事件流的目的是建档使用案例中的逻辑
流程,详细描述系统的工作。
An Introduction to Database System
用例“取钱”的事件流
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
客户将卡插入ATM机,开始用例。
ATM显示欢迎消息并提示客户输入密码。
客户输入密码。
ATM确认密码有效。如果无效则执行其他事件流A1。
ATM提供以下选项:存钱,取钱,查询 。
用户选择取钱选项。
ATM提示输入所取金额。
用户输入所取金额。
ATM确定该帐户是否有足够的金额。如果余额不够,则执行A2.
ATM从客户帐户中减去所取金额。
ATM向客户提供要取的钱。
ATM打印清单。
ATM退出客户的卡,用例结束。
An Introduction to Database System

其他事件流A1:输入无效密码
1.
2.

ATM告诉客户该密码错误。
ATM退出客户的卡,用例结束。
其他事件流A2:余额不足
1.
2.
ATM告诉客户该帐户余额不足。
ATM退出客户的卡,用例结束。
An Introduction to Database System
状态图描述取钱用例
插卡
输入密码
退卡
输入金额
取钱
An Introduction to Database System
Tips:

刻化一个方法中所要进行的各项活动的
执行流程,可被认为是一种流程图

缺点:不能反映出对象?负责活动

活动图:增加角色的维数,类似顺序图
An Introduction to Database System
活动图
用户
读卡机
屏幕
用户帐号
取钱机
插卡
读卡号
屏幕初始化
打开帐户
提示输入密码
输入密码
验证密码
提示选择事务
选择事务
退卡
提示输入金额
输入金额
取钱
退卡
扣钱
提供钱
退卡
An Introduction to Database System
一个ATM系统实例(续)
顺序图-按时间顺序对控制流建模




用户从中看到业务过程的细节
分析人员从中看到处理流程
开发人员看到需要开发的对象和它们的
操作
质保人员看到过程细节,并根据这个过
程开发测试案例
An Introduction to Database System
客户李明取20元钱的顺序图
An Introduction to Database System
一个ATM系统实例(续)
协作图-按对象的组织对控制流建模

质保人员和系统分析员用协作图显示对
象间处理过程的责任分布和数据流。
An Introduction to Database System
客户李明取20元钱的协作图
An Introduction to Database System
Tips:


顺序图
协作图
顺序图按时间组织,协作图按对象之间
的联系组织
An Introduction to Database System
对象结构—类图


显示系统中类与类之间的交互
分析员用类图显示系统细节。类图可以
显示每个用例中类的相互作用,也可以
显示整个系统或子系统
An Introduction to Database System
ATM系统“取钱”用例的类图
An Introduction to Database System
进一步修改顺序图
An Introduction to Database System
组织建模元素-包


一个包形成一个命名空间。通过包组织
大系统模型,减少复杂性
结构良好的包是松耦合,高内聚的,对
其类容的访问具有严密的控制
An Introduction to Database System
ATM系统的包组织
An Introduction to Database System
一个ATM系统实例(续)
(4) 物理建模:部署图和组件图
An Introduction to Database System
ATM客户机的C++组件图
An Introduction to Database System
ATM服务器的C++组件图
An Introduction to Database System
Tips:



表示一组组件之间的组织和依赖关系
编译和部署系统的人员需要使用组件图。
显示了类与实现组件之间的映射,组件
按什么顺序编译,编译时生成哪些运行
组件
组件图对于通过正向工程和逆向工程构
造可执行系统是重要的
An Introduction to Database System
部署图
An Introduction to Database System
Tips:


建模系统的实际部署
项目管理员,用户,分析员和部署人员
通过实施图了解,显示网络的实际布局
和网络节点上组件的配置
An Introduction to Database System
7.2 UML建模语言
7.2.1 UML概述
7.2.2 UML实例
7.2.3 UML语言小结
7.2.4 UML建模Case工具
An Introduction to Database System
7.2.3 UML语言小结

UML描述了一个系统的静态结构和动态
行为。
An Introduction to Database System
静态建模
任何建模语言都以静态建模机制为基础,标准建模语言
UML也不例外。所谓静态建模是指对象之间通过属性互相联
系,而这些关系不随时间而转移。
类和对象的建模,是UML建模的基础。我们认为,熟练掌
握基本概念、区分不同抽象层次以及在实践中灵活运用,是三
条最值得注意的建模基本原则。
An Introduction to Database System
UML的静态建模机制包括:






用例图(Use case diagram)
类图(Class diagram)
对象图(Object diagram )
包图(Package diagram)
组件图(Component diagram)
配置图(Deployment diagram)
An Introduction to Database System
动态建模
动态模型主要描述系统的动态行为和控制结构。动态行
为包括系统中对象生存期内可能的状态以及事件发生时状态
的转移,对象之间动态合作关系,显示对象之间的交互过程
以及交互顺序,同时描述了为满足用例要求所进行的活动以
及活动间的约束关系。
在动态模型中,对象间的交互是通过对象间消息的传递
来完成的。对象通过相互间的通信(消息传递)进行合作,并
在其生命周期中根据通信的结果不断改变自身的状态。
An Introduction to Database System
动态模型
动态模型主要描述系统的动态行为和控制结构。包括4
类图:状态图、活动图、顺序图、合作图。
状态图(state diagram):状态图用来描述对象,子系统,
系统的生命周期。
活动图(activity diagram) :着重描述操作实现中完成的
工作以及用例实例或对象中的活动,活动图是状态图的一个
变种。
顺序图(sequence diagram) :是一种交互图,主要描述
对象之间的动态合作关系以及合作过程中的行为次序,常用
来描述一个用例的行为。
协作图(collaboration diagram) :用于描述相互合作的
对象间的交互关系,它描述的交互关系是对象间的消息连接
关系。
An Introduction to Database System
7.2 UML建模语言
7.2.1 UML概述
7.2.2 UML实例
7.2.3 UML语言小结
7.2.4 UML建模Case工具
An Introduction to Database System
7.2.4 UML建模Case工具


为什么需要UML建模CASE工具 ?
系统的构建变得越来越复杂,UML建模CASE工
具为项目相关人员(如,项目经理,分析员,
设计者,构架师,开发者等)提供了许多的好
处。UML建模CASE工具允许我们应用规范的面
向对象分析和设计的方法与理论,远离纠缠不
清的源代码,达到构建和设计变得更直观,更
容易地理解与修改的层次。在大型项目中,使
用CASE工具更重要。
An Introduction to Database System

通过使用CASE工具:
* 通过用例模型,业务/系统分析可以捕获到业务/系统需求。
* 设计者/构架师所作的设计模型能在不同层次的同一层内清晰表达
对象或子系统之间的交互(典型的UML图如类图和交互图)。
* 开发者能快速地将模型转变为一个可运行的应用程序,寻找类和
方法的子集,以及理解它们如何交互。
模型被看作是蓝图和构建系统的最终手册。同样,建模也就是一种
从高层并以适当的形式来考虑一个设计的表述和理解它怎样运行的能力。
出于这些动机,UML CASE工具以及对应的方法论为我们提供了一种
因系统太复杂而不能理解下层源代码的描述系统的方法,同时允许我们
更快更便宜地开发正确的软件解决方案。
An Introduction to Database System
第七章
基于UML的数据库设计
7.1 数据库设计概述
7.2 UML建模语言
7.3 数据库设计实例
--GML空间数据库设计建模
7.4 小结
An Introduction to Database System
7.3 数据库设计实例

GML空间数据库设计建模
An Introduction to Database System
第七章
基于UML的数据库设计
7.1 数据库设计概述
7.2 UML建模语言
7.3 数据库设计实例
--GML空间数据库设计建模
7.4 关系数据理论
7.5 小结
An Introduction to Database System
7.4 关系数据理论

第六章 关系数据理论
An Introduction to Database System
第七章
基于UML的数据库设计
7.1 数据库设计概述
7.2 UML建模语言
7.3 数据库设计实例
--GML空间数据库设计建模
7.4 关系数据理论
7.5 小结
An Introduction to Database System
作业:

数据库应用系统
Eg:图书馆管理信息系统
实验五:基于UML的数据库设计建模
An Introduction to Database System