第4章 数据库应用系统功能设计与实施

2023-11-20

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)校验数据。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第4章 数据库应用系统功能设计与实施 的相关文章

  • 《银行法律法规》一、经济金融基础知识——4、银行体系

    第四章 银行体系 第一节 银行起源和发展 考点1 商业银行产生与发展 概念 商业银行指能够吸收公众存款 发放贷款 办理结算等多种业务 以盈利为主要经营目标 经营货币的金融企业 在银行体系中占有重要地位 信用活动中起着主导作用 产生途径 现代
  • mount通过NFS挂载

    文章目录 mount通过NFS挂载 1 NFS介绍 2 安装 1 ubuntu服务器安装命令 2 客户端linux5 4安装指令 3 建立NFS共享文件目录 4 配置NFS共享配置文件 1 第一段的目录需要替换成自己的共享文件目录 2 第二

随机推荐

  • C++ 高性能Http服务器 - HelloWorld(一)

    本文使用 newobj 跨平台开发框架实现 Web 服务的搭建及业务处理 最终实现个人博客网站的Demo 其中使用Mysql Redis数据库 该框架实测可处理 6w 并发的请求并进行数据库处理 非常适合工作或学习中需要了解或应用C 开发w
  • SO_RCVTIMEO ,  MSG_WAITALL

    test SO RCVTIMEO and MSG WAITALL 1 首先两者都运用于阻塞的情景下 对nonblock的fd不起作用 2 SO RCVTIMEO socket选项 作为getsockopt setsockopt的参数 见下
  • 【PTA】二叉树题总结

    完全二叉搜索树 中序遍历 存位置 一个无重复的非负整数序列 必定对应唯一的一棵形状为完全二叉树的二叉搜索树 本题就要求你输出这棵树的层序遍历序列 输入格式 首先第一行给出一个正整数 N 1000 随后第二行给出 N 个不重复的非负整数 数字
  • Hadoop的java程序报错Exception in thread "main" java.io.FileNotFoundException: File does not exis

    找了半天发现是因为路径没有写全 正确路径应该是E abc txt 注意检查路径是不是写全了 尤其是后缀
  • SourceInsight

    1 开胃菜 初级应用 1 1 选择美丽的界面享受工作 虽然不能以貌取人 但似乎从来没有人责备以貌取软件的 SI的华丽界面 绝对符合现代花花世界的人的审美趣味 在SI中 我们可以轻松地把各种类型关键字 变量 标志符 函数 宏 注释等定义为不同
  • NBA球星莱昂纳德年纪以及成就

    莱昂约翰 德 莱昂纳德 LeBron James 现年35岁 是美国职业篮球运动员 曾三度获得NBA总冠军 六次获得常规赛最有价值球员奖 MVP 五次获得联盟最佳防守球员奖 和入选了十五次全明星阵容 是NBA史上最伟大的球员之一
  • lpv4dns服务器怎么修改,超简单方法让电脑网速飞起来,只需这么做:更改DNS服务器地址!...

    今天教大教一个技巧 让电脑浏览器打开网页速度更快 一般电脑默认是自动获取IP地址跟DNS服务器 我们手动更改为谷歌DNS 这样电脑浏览器打开网页的速度会快很多 1 鼠标右击任务栏本地连接图标 点击打开网络和共享中心 2 点击更改适配器设置
  • 计算机网络,用Excel画3种编码方式图(非归零编码,曼彻斯特编码,差分曼彻斯特编码)

    计算机网络 用Excel画3种编码方式图 非归零编码 曼彻斯特编码 差分曼彻斯特编码
  • Java及数据库事务

    数据库并发问题 1 脏读 读取未提交数据 A事务读取B事务尚未提交的数据 此时如果B事务发生错误并执行回滚操作 那么A事务读取到的数据就是脏数据 就好像原本的数据比较干净 纯粹 此时由于B事务更改了它 这个数据变得不再纯粹 这个时候A事务立
  • golang:环境变量GOPROXY和GO111MODULE设置

    我们安装完golang后 我们在windows的cmd命令下就可以直接查看和使用go命令和环境变量了 同样的在linux下可以在控制台使用 如下图所示 C Users lijie1 gt go env set GO111MODULE set
  • JUC并发编程共享模型之管程(三)(中)

    4 5Monitor概念 Java 对象头 以 32 位虚拟机为例 在32位虚拟机中 1个机器码等于4字节 也就是32bit 在64位虚拟机中 1个机器码是8个字节 也就是64bit 普通对象 数组对象 其中Mark Word 结构为 最后
  • A *a=new B();

    include
  • Anaconda 安装 Python 库(MySQLdb)的方法-(转)

    安装python库的过程中 最重要的地方就是版本需要兼容 其中操作系统为64位 Python为2 X 64位 下载安装文件的时候也要注意版本匹配 其中文件名中包含的cp27表示CPython 2 7版本 cp34表示CPython 3 4
  • 区块链项目 - 2 工作量证明

    2 1 ProofOfWork框架 我们在区块中添加一个属性Nonce来表示区块的生成难度 它是区块生成的一个重要条件 Nonce值越高 代表生成区块的难度越大 通过这种难度从而避免区块随意生成 工作量证明则是要完成这一系列难度区块生产所需
  • Qt 常用调试错误

    1 调试错误 问题 解决 可能是打开了两个Qt Creator 关闭一个 2 无法打开 debug sss exe 问题 解决 可能已经运行该程序 将其关闭 3 构建项目时发生错误 目标 桌面 问题 解决 点击左侧的项目 gt QT版本中选
  • 为什么在三线城市,Python工程师也能月薪20K?

    Python是这两年编程语言绝对的霸主 你可以发现 几乎所有和程序沾边的人 都在学Python 那么 Python到底有没有用 好在哪里 适合你学吗 今天就来详细分析一下 01 Python究竟能做什么 都说Python易学 究竟好学在哪里
  • Multitor:一款带有负载均衡功能的多Tor实例创建工具

    关于Multitor Multitor是一款带有负载均衡功能的多Tor实例创建工具 Multitor的主要目的是以最快的速度完成大量Tor进程的初始化 并将大量实例应用到我们日常使用的程序中 例如Web浏览器和聊天工具等等 除此之外 在该工
  • 如何做自动化测试

    这个话题比较大 相信大家也都有自己的想法 我在这里写一些我自己的看法 请大家指教 什么叫做自动化测试工程师 首先 会使用自动化测试工具的测试人员不能够称之为完全的自动化测试人员 这类测试人员被称为 工具小子 Script Kid 这个阶段还
  • 关于babel配置使用可选链

    什么是可选链 具体而言它是一种操作符 MDN给出的官方解释是 允许读取位于连接对象链深处的属性的值 而不必明确验证链中的每个引用是否有效 操作符的功能类似于 链式操作符 不同之处在于 在引用为空 nullish null 或者 undefi
  • 第4章 数据库应用系统功能设计与实施

    4 1软件体系结构与设计过程 4 1 1软件体系结构 软件体系结构又称软件架构 软件体系结构 构件 连接件 约束 其中 构件 Component 是组成系统的具有一定独立功能的不同粒度的程序模块 独立程序或软件子系统 是组成软件的系统元素