第4章 数据库应用系统功能设计与实施
4.1软件体系结构与设计过程
4.1.1软件体系结构
软件体系结构又称软件架构,软件体系结构={构件,连接件,约束}。其中,构件(Component)是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统,是组成软件的系统元素;连接件(Connector)将不同的构件连接起来,表示了构件间的相互作用,如信号量的传递、功能和方法的调用、数据传送和转换、构件间的同步等。构件可以是过程调用、管道、远程过程调用等;约束一般为对象连接时的规则,或指明了构件连接的条件。
4.1.2软件设计过程
4.2DBAS总体设计
DBAS 总体设计的任务是依据系统规划与分析结果,特别是其中的技术可行性分析内容,以及系统需求规范,确定系统总体框架,作为后续设计活动的基础。主要内容包括:
(1)DBAS 体系结构设计;
(2)DBAS 软件总体设计;
(3)软硬件选型与配置设计;
(4)业务规则初步设计。
4.2.1DBAS体系结构设计
以下是两种较为常见的 DBAS 体系结构。
1.客户/服务器体系结构
客户/服务器(C/S)结构是网络环境下一种主流的数据库应用系统体系结构,已得到广泛应用。两层C/S 结构的数据库应用系统,其特点为:
两层 C/S 结构数据库应用系统如下图所示。
2.浏览器/服务器结构
三层浏览器/服务器(B/S)结构的数据库应用系统是一种互联网环境下的新型数据库应用系统结构,如下图所示。
三层浏览器/服务器(B/S)结构将数据处理功能分解并分布在表示层、功能层和数据层三个层次上,分别由 Web 浏览器、Web 应用服务器和数据库服务器来实现,其特点为:
两层 C/S 结构和三层浏览器/服务器(B/S)结构比较:
4.3BAS功能概要设计
从功能角度 DBAS 系统通常可以划分为 4 个层次实现。
●表示层:负责所有与用户交互的功能,用户对数据库应用系统的最直观感受均在这层实现。
●业务逻辑层:负责根据业务逻辑需要将表示层获取的数据进行组织后,传递给数据访问层,或将数据访问层获取的数据进行相应的加工处理后,传送给表示层用于展示。
●数据访问层:负责与 DBMS 系统进行交互,提取或存入应用系统所需的数据。
●数据持久层:负责保存和管理应用系统数据。
4.3.1表示层概要设计
表示层概要设计的主要任务是进行人机界面(也称为用户界面,人机交互界面)设计。不同 DBAS 对用户界面的要求与具体应用领域密切相关,因此并无统一的界面设计方法,但应遵守以下设计原则:
(1)用户应当感觉系统的运行始终在自己的控制之下,即便当系统程序取得对系统的控制权时,人机界面也应向用户提供视觉和听觉上的反馈,保持用户与人机界面间的双向交流。
(2)当系统发生错误或程序运行时间较长时,用户界面应该为用户提供有意义的反馈信息,并有上下文感知的帮助功能。
(3)—个好的用户界面应该容忍用户在使用过程中发生的各种操作错误,并且能够方便地从错误中恢复过来,保证系统运行不受或尽可能小地受到用户错误操作的影响。
(4)用户界面应该遵循一定标准和常规。
(5)用户界面应采取灵活多样的数据输入方式,尽量减少用户的输入负担;提供字符、图形、图像、声音等多种形式的数据输出方式。
(6)如果使用 Web 界面,设计要求具有简洁性,避免使用过于复杂的图形和动画等,以免用户在使用系统时分心;界面布局还应当清晰地表示各类信息,并具有与之匹配的导航性;
4.3.2业务逻辑层概要设计
业务逻辑概要设计的主要任务是梳理 DBAS 的各项业务活动,将其表示为各种系统构件(如类、模块、组件等)。业务逻辑层设计需要考虑高内聚与松耦合原则。这一原则在设计过程中体现在以下方面:
(1)构件本身应由相关性很强的代码组成,一个构件或一个模块只负责完成一项任务,也就是常说的单一责任原则。
(2)组成系统业务逻辑层的各个构件均应具有独立的功能,并且最大限度地减少与其他构書功能重叠。
(3)构件之间的接口应尽量简单明确。
(4)如果某两个构件间的关系比较复義的话,应考虑进一步进行模块划分。
(5)如果构件过于复杂,可以考虑将其细分。
4.3.3数据访问层概要设计
数据访问层概要设计过程包括:
(1)从数据流图中识别出该事务对应的子数据流图。
(2)确定子数据流图中的信息流类型,划定流界。
(3)将子数据流图映射为事务的结构和处理流程,即事务处理逻辑(或事务业务规则)。
(4)修正和细化事务设计,识别事务所访问的数据库对象和数据库用户。
(5)确认事务概要设计与数据库设计。
事务概要设计中的事务逻辑定义了具有独立逻辑功能的一系列操作以及这些操作的执行流程,这些操作和流程应当是与具体 DBMS平台和实现方法无关的。为此,引入与具体 DBMS平台无关的两个元操作 read、write。其中,read(X)操作表示将数据库磁盘文件中的数据项 X 读入内存缓冲区,write(X)操作表示将内存缓冲区中数据项 X 的当前值写入数据库磁盘文件。事务对数据的操作,如查询、插入、删除、修改等,可以用这两个元操作来抽象表示。
4.4DBAS功能详细设计
4.4.1表示层详细设计
作为数据库应用系统功能设计的一部分,人机界面的设计与用户感知密切相关,由于其特殊性,人机界面设计最好釆用原型迭代法。原型迭代法由如下几个步骤组成:
1.初步设计
从用户人机交互需求出发,设计人机交互命令系统,并对其进行优化。
2.用户界面细节设计
在命令树基础上,设计命令系统的具体实现方式,命令系统实现可以采用命令行、菜单、按钮、Web界面等多种方式,并注意考虑界面的组织形式、风格、色彩、操作方式等实现细节。
3.原型设计与改进
在上述设计结果基础上,首先构造一个人机界面原型系统。利用原型系统,可以为用户演示人机交互效果,让用户直观感受系统的使用方法,并评判用户界面功能是否齐全、是否方便易用;然后,根据用户评审反馈意见修改原型系统。通过这种反复迭代过程,不断完善用户界面,直至符合用户预期要求。
4.4.2业务逻辑层详细设计
业务逻辑层详细设计的任务是根据概要设计中定义的各程序模块功能和输入输出数据需求,结合具体的程序设计环境和机制,设计各模块的内部处理流程和算法、具体数据结构、对外详细接口等,是对概要设计的细化。在业务逻辑详细设计阶段,设计人员也可以通过 UML 的类图、活动图、协作图来描述 DBAS 对用户业务的详细实现逻辑。
4.5应用系统安全架构设计
4.5.1数据安全设计
数据是所有信息系统的基础,如何保障数据安全也是信息系统设计和建设过程中需要考虑的首要问题。数据安全涉及的范围很广,从数据存储安全角度出发(通常数据安全设计者会从 DBAS 所必需的数据库系统的安全和保护角度来设计),主要有以下五个方面:
●安全性保护:即防止非法用户对数据库的非法使用,以避免数据的泄露、篡改或破坏。
●完整性保护:即保证数据源的正确性和一致性。
●并发控制:即保证多个用户能共享数据库,并维护数据的一致性。
●数据库的备份与恢复:即在系统失效后的数据库恢复,配合定时备份数据库,使数据库不丢夫数据。
●数据加密传输:即将一些高密级的敏感数据通过一定的加密算法加密后传输。
1.数据库的安全性保护
在 DBAS 系统设计时,通常采用前台和后台相结合的安全性保护措施来共同维护 DBAS 的安全性。主要的保护方式有:
(1)用户身份鉴别。
(2)权限控制。
(3)视图机制。
2.数据库的完整性保护
数据库的完整性是指数据库中数据的正确性、一致性和相容性。
完整性机制将防止合法用户使用数据库时向数据库中加入不合语义的数据。保证数据库中数据的完整性的方法之一是设置完整性检查,即对数据库中的数据设置一些约束条件。完整性约束条件的作用对象分为列、元组和关系三种级别,其中对列的约束主要指对其值类型、范围、精度、排序等的约束条件。对元组的约束主要指对记录中各个属性之间的联系的约束条件。对关系的约束是指对若干记录间、关系集合上以及关系之间联系的约束条件。
3.数据库的并发控制
在数据库系统运行过程中,如果数据库管理系统可以同时接纳多个事务,事务可以在时间上重叠执行,则称这种执行方式为并发访问。实现数据库并发控制的方法很多。常用的是封锁技术。所谓封锁即是在同一时间内禁止某用户对数据对象做某些操作以避免产生数据不一致的问题。基本的封锁一般有排它锁(x锁)和共享锁(s 锁)两种类型。通常为了避免死锁,可以考虑以下原则:
(1)按同一顺序访问资源。
(2)避免事务中的用户交互。
(3)采用小事务模式,尽量缩短事务的长度,减少占有锁的时间。
(4)尽量使用记录级别的锁(行锁),少用表级别的锁。
(5)使用绑定连接,使同一应用程序所打开的两个或多个连接可以相互合作。
4.数据库的备份与恢复
数据库恢复的基本原理就是数据库中任何一部分数据可以利用存储在系统其他存储器上的冗余数据
来重建。数据库恢复首先要建立冗余数据(即进行数据备份),然后利用这些冗余数据实施恢复。针对数据的不同可靠性级别要求,数据备份与恢复策略可有不同的解决方案。
(1)双机热备。
(2)数据转储。
(3)数据加密存储。
5.数据加密传输
常用的数据加密传输手段有:
●数字安全证书。
●对称密钥加密。
●数字签名。
●数字信封。
4.6DBAS实施
在完成对数据库的物理设计之后,就开始进入数据库系统的实施阶段,在这个阶段,设计人员需要用目标数据库的数据定义语言和其他程序设计语言描述逻辑设计和物理设计的结果,并经调试以后在数据库建立目标模式,并且组织数据入库,系统开始试运行。然后,进入系统的运兮和维护阶段。DBAS 的实施阶段主要包括以下工作:
(1)创建数据库。
(2)装载数据。
(3)编写与调试应用程序。
(4)数据库试运行。
4.6.1创建数据库
在 DBAS 实施过程中,为了保障系统的性能和稳定性,创建数据库时需要考虑以下因素:
(1)初始空间大小。
(2)数据库增量大小。
(3)访问性能。
4.6.2数据装载
存入数据库,具体步骤如下:
(1)筛选数据。
(2)转换数据格式。
(3)输人数据。
(4)校验数据。
第4章 数据库应用系统功能设计与实施相关推荐
- 第四章 数据库应用系统功能设计与实施
第四章 数据库应用系统功能设计与实施 软件体系结构 构件:组成系统的具有一定独立功能的不同粒度的程序模块.独立程序或软件子系统. 连接件:表示构件间的相互作用. 约束:对象连接时的规则. 软件设计过程 ...
- 计算机三级数据库技术 第4章 数据库应用系统功能设计与实施
4.1 软件体系结构与设计过程 4.1.1 软件体系结构 软件体系结构又称软件架构,软件体系结构 = {构件,连接件,约束}.其中,构件(Component)是组成系统的具有一定独立功能的不同粒度的程 ...
- 数据库应用系统功能设计与实施
ps:该图转自https://blog.csdn.net/DaGongJiGuoMaLu09/article/details/88617753 详细知识: 第4章软件体系结构与设计过程 4.1 软件体 ...
- 【计算机三级数据库技术】第4章 数据库应用系统功能设计与实现--附思维导图
1 软件体系结构与设计过程 (1)软件体系结构 构建 连接件 约束 (2)软件设计 步骤 总体设计 概要设计 任务是建立软件系统的总体结构和模块间的关系 详细设计 方法 结构化设计方法 面向对象设计方 ...
- 计算机三级数据库技术——第一章 数据库应用系统开发方法学习笔记
第一章 数据库应用系统开发方法 概述 数据库应用系统 术语 英文缩写 含义 数据库系统 DBS 数据的组织,存储,访问等数据管理功能 数据库应用系统 DBAS 数据管理之外,通过数据库应用程序的数据处 ...
- 第1章 数据库应用系统开发方法
1.1数据库应用系统生命周期 1.1.1软件工程与软件开发方法 用现代工程的概念管理软件生产与开发全过程的典型方法有:瀑布模型(也称为软件生命周玥模型).快速原型模型.螺旋模型等. 1.瀑布模型 ...
- 第18章 系统功能设计
第III部分 项目综合实战 第18章 系统功能设计 18.1 系统整体功能结构 18.2 系统用例描述 18.3 主要功能流程描述
- 第五章 UML与数据库应用系统
UML与数据库应用系统 DBAS建模 UML 定义的四层建模框架 DBAS业务流程与需求表达 业务流程与活动图 系统需求与用例图 DBAS系统内部结构的表达 系统结构与类图 系统结构与顺序图 系统结构 ...
- 数据库系统概念总结:第七章 数据库设计和E-R模型
周末无事水文章,期末备考的总结资料 第七章 数据库设计和E-R模型 7.1 设计过程概览 7.1.1 设计阶段 需要完整地刻画未来数据库用户的数据需求 选择数据模型,并采用所选数据模型的概念将这些需求 ...
- 【数据库】第一章 数据库的分类、SQL、数据库、表和表记录的常用操作
[数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 文章目录 [数据库]第一章 数据库的分类.SQL.数据库与表的常用操作 一.数据库的分类 1.关系型数据库 2.非关系型数据库 3.MyS ...
最新文章
- 【C++】explicit关键字
- 不同浏览器Cookie有效期问题
- 【计算机组成原理系列学习三】关于CPU、指令集、架构以及芯片
- 希尔排序(ShellSort) c源码
- 如何启用ruler?
- Modularity(模块化-CMD规范)
- 【Flink】Flink exitCode=239
- Qt---MaintenanceTool
- python模块学习---glob 文件路径查找
- mysql if / case / limit / join / 数据类型 、oracle decode 及其它sql对比
- VWware15安装windows XP纯净版虚拟机
- shader之——shadowGun代码分析
- 2020Spatial-Temporal Graph Convolutional Network for Video-based Person Re-identification论文笔记(时空图卷积)
- 华为nova5里面有用到鸿蒙吗,华为nova7se是不是鸿蒙系统?
- ae渲染出现错误是什么问题_After Effects错误:写入文件.....时发生渲染错误.输出模块失败.文件可能已损坏。(-1610153464)...
- 2023深圳大学计算机考研信息汇总
- 迪米特法则模式:迪米特法的则通俗理解
- Win7 XP 自动登录(取消每次登录Administration界面)
- 物联网应用技术专业是属于什么类
- Web前端面试问题集锦
热门文章
- 基础(四)之java后端根据经纬度获取地址
- PAT 1037 在霍沃茨找零钱
- WebPack+React.Js+BootStrap 实现进制转换工具
- python调用打印机打印图片
- 麻烦大家给点C#的小程序的练习题做做,小女子谢谢了.......
- 金融科技方便生活,分布式架构助力微粒贷“闪电放款”
- 电商直播带货模式的发展现状
- neo4j-入门---学习复杂关系使用CQL语句操作图数据库(二)
- 滚球板球控制系统详解(openmv+stm32实现)
- 超微晶磁芯在开关电源中的应用