开发者社区> 王小王-123> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

⑥⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗

简介: ⑥⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
+关注继续查看

4.1 软件体系结构

考点1 定 义

软件体系结构又称软件架构,是一种可预制和可重构的软件框架结构。软件体系结构={构件,连接件,约束}。


构件是组成系统的具有一定独立功能的不同粒度的程序模块、独立程序或软件子系统,是组成软件的系统元素,它可以是过程调用、管道、远程过程调用等;


连接件将不同的构件连接起来,表示了构件间的相互作用,如信号量的传递、功能和方法的调用、数据传送和转换、构件间的同步等;


约束一般为对象连接时的规则,或指明了构件连接的条件。


考点2 功 能

软件体系结构描述了软件系统的总体组织和层次划分、系统元素及其功能分配、全局控制、系统元素间的协调和交互、数据存取等。


考点3 分 类

软件体系结构有多种风格和类型,如分层体系结构、模型-视图-控制器(MVC)体系结构、客户/服务器体系结构等。


其中,分层体系结构将软件系统设计并组织成构件的层次或集合,同一个层次上的构件完成一个特定目的,良好的层次结构易于系统的扩展与维护,不同层次之间通过接口进行通信,分层体系结构是一类非常基础的软件体系结构。


4.2 软件设计过程

根据数据库应用系统生命周期模型,软件开发由设计、实现和测试三个环节组成,设计又包括概要设计和详细设计。


考点1 软件设计的目的

软件设计阶段将产生系统的总体结构设计(或称体系结构设计)、系统的过程设计和系统的数据设计。总体结构设计旨在确定组成软件系统的各主要部件及其相互间关系;过程设计完成对每一部件的过程化描述;数据设计定义了为实现软件所需要的数据结构。


考点2 软件设计的原则

(1)设计应与软件需求保持一致。


(2)设计的软件结构应支持模块化、信息隐藏、抽象与逐步求精等。


考点3 软件设计的分类

从工程管理的角度,软件设计可分为概要设计和详细设计两大步骤。


(1)概要设计


概要设计是根据需求确定软件和数据的总体框架。


①任务


建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,设计全局数据库或数据结构,规定设计约束,制订测试计划。


②要求


良好的总体结构,功能模块间较低的耦合度和功能模块内较高的内聚度,并尽量降低模块接口复杂性。


③需要完成的文件


概要设计说明书、数据库或数据结构设计说明书、组装测试计划等文件。


(2)详细设计


详细设计是将总体框架进一步细化成软件的算法表示、数据结构和人机界面设计等。


①任务


细化概要设计产生的功能模块,形成可编程的程序模块,用某种过程设计语言(PDL)设计程序模块的内部细节,如算法和处理流程、数据结构、程序模块间详细接口信息等,为编写软件源代码提供依据。此外,还要制定模块测试方案。详细设计结果用详细设计说明书表示。


②方法


软件设计可以选用结构化设计方法(也称为面向数据流的设计方法)、面向对象设计方法或面向数据设计方法等。


(3)关于软件总体设计


对于大型复杂软件系统,可根据逐步抽象和层次化原则,将概要设计分解成两个步骤:


①软件总体结构设计,也就是对软件需求进行分解。按照一定原则,如根据分布式系统中不同部分的物理位置分布或是系统本身层次结构,将其划分为若干个子系统;定义各个子系统应实现的功能和相互间的交互关系和通信机制。


②将每个子系统进一步划分为功能模块,定义各功能模块的数据结构、相互间交互关系。根据需要,每个模块可以进一步分解为多个子模块。一个大型复杂软件系统,按照上述软件概要设计方式,可以形成一个系统-子系统-模块-子模块的层次结构。


可以将上述概要设计的第一步称为软件总体设计,第二步称为软件概要设计。整个软件设计过程由总体设计、概要设计和详细设计三个步骤组成。对于简单软件系统,总体设计和概要设计可以合二为一,并由同一组设计人员负责。


4.3 DBAS总体设计

考点1 DBAS总体设计主要内容

(1)DBAS体系结构设计;


(2)DBAS软件总体设计;


(3)软硬件选型与配置设计;


(4)业务规则初步设计。


考点2 DBAS体系结构设计

(1)定义


确定DBAS体系结构是指将系统从功能、层次/结构、地理分布等角度进行分解,划分为多个子系统,定义各子系统应实现的功能;设计系统的全局控制,明确各子系统间的交互和接口关系。


(2)两种常见的体系结构


①客户/服务器体系结构(C/S)


a.概述


客户/服务器结构是网络环境下一种主流的数据库应用系统体系结构。基于客户/服务器体系结构的数据库应用系统将DBMS数据管理功能与数据库应用相分离,将DBMS数据管理功能在客户端和服务器之间进行合理的分布和配置。


第一,数据库服务器完成DBMS的核心功能。


第二,客户端或应用服务器则负责完成用户交互功能,接收用户数据,根据业务规则处理应用任务,生成并向数据库服务器发出数据操作请求,然后从数据库服务器接收数据查询结果并通过客户端反馈给用户。


b.特点


第一,DBAS的数据管理和数据处理功能被分解并分布在客户端和数据库服务器上。客户端通过用户界面实现人机交互功能;数据库服务器则通过DBMS,依据事务逻辑完成相应的数据管理功能。


第二,数据库服务器可以为多个客户端应用提供共享的数据管理功能,避免了为每一个新的应用单独开发对应的服务器端数据管理功能,提高了应用程序相对于数据库的独立性,也减少了应用程序的开发和维护代价。


第三,客户端应用可以通过网络访问多个不同数据源。可以根据应用的需要,通过增加服务器和客户端方便灵活地扩展数据库应用系统;客户端和数据库服务器可分别运行在不同的操作系统和硬件平台上,便于异构平台间的融合和匹配。


第四,客户端除了完成人机交互功能外,还需要完成面向应用的数据处理功能,负荷较重,属于典型的“胖客户端”。


②浏览器/服务器结构(B/S)


a.定义


三层浏览器/服务器结构的数据库应用系统是一种互联网环境下的新型数据库应用系统结构,它将数据处理功能分解并分布在表示层、功能层和数据层三个层次上,分别由Web浏览器、Web应用服务器和数据库服务器来实现。


b.特点


第一,表示层位于客户端,由Web浏览器实现。客户端根据显示逻辑完成具体的数据表示和人机交互功能。


客户端功能单一,一般只安装Web浏览器,没有其他用户应用程序,属于典型的“瘦客户端”。


第二,功能层位于Web应用服务器,实现面向具体应用领域的业务规则。


应用服务器接收来自于Web浏览器的用户请求,根据应用领域业务规则执行相应的数据库应用程序,通过数据库访问接口向数据库服务器提出数据操作请求;接收来自于数据库服务器的数据访问结果,并通过客户端将结果返回给用户。


第三,数据层位于数据库服务器,通过DBMS完成具体的数据存储和数据存取等数据管理功能。


数据库服务器接收应用服务器提出的数据操作请求,按照事务逻辑对数据库进行查询和修改,并将数据访问结果返回给应用服务器。


【真题演练】


下列关于浏览器/服务器架构中的应用服务器的说法中,错误的是(    )。


A.应用服务器一般运行程序代码,实现面向应用领域的业务规则


B.应用服务器会根据用户请求连接相应的数据库,获取数据,并将结果返回给用户


C.应用服务器一般需要具有数据访问和数据存储功能


D.应用服务器一般提供了集群、负载均衡等公共服务,可以大幅度提高系统性能和可靠性


【答案】C


考点3 DBAS软件总体设计

(1)DBAS软件的分类


DBAS软件包括操作系统、数据库管理系统、开发环境、中间件和应用软件。


(2)应用软件总体设计的流程


①从需求分析阶段得到的数据流图、事务规范和业务规则需求分析结果出发,在DBAS体系结构指导下,将DBAS软件系统分解为一系列子系统,为各子系统分配相应功能,定义子系统间的协调交互机制。


②进一步地进行子系统结构设计,将各个子系统从功能上划分为数据库事务模块和粒度较大的应用程序模块。


③确定子系统、应用程序模块、数据库事务间的全局控制和调用关系,并按一定的软件体系结构框架组织起来。


(3)模块结构图


应用软件总体设计得到的系统总体结构和分层模块结构可以用模块结构图表示。


①概述


模块结构图主要关心模块的外部特性,即上下级模块、同级模块间的数据传递和调用关系,与模块内部处理流程无关。模块结构图是结构化程序设计中描述系统结构的一种图形化工具,它定义了模块的名字、功能和接口,并在模块结构图中反映出结构化设计思想。


②构成元素


模块结构图由模块、调用、数据、控制和转接五种基本符号组成。


考点4 软硬件选型与配置设计

(1)软硬件选型涉及内容


①网络及网络设备选型;


②数据存储设备及备份方案制定;


③应用服务器、Web服务器选型;


④确定系统终端软件环境;


⑤确定软件平台及开发语言、工具;


⑥系统中间件及第三方软件选型。


(2)需考虑因素


①数据规模:数据规模包括数据量大小、数据增长速度等,其数值直接决定着存储设备选型;


②系统性能:如系统响应时间、并发访问需求、系统吞吐量、实时性需求、峰值时系统响应速度等。系统性能需求对网络带宽、网络设备数据转发速率、服务器配置(如内存大小、CPU运算速度)等会产生直接影响;


③安全可靠性:安全可靠性包括数据安全性、数据传输安全性、系统访问安全性、设备安全可靠性等,也是软硬件选型时需要考虑的重要因素;


④用户需求:用户的特性化需求也是影响软硬件选型的因素,这一需求通常是明确而具体的;


⑤项目预算情况:项目预算情况是影响软硬件选型的重要因素,对于设备和软件的选择应该在项目预算的范围内展开,有些时候满足各方面需求的最佳选型方案往往会超出预算范围,这时就需要综合各方面因素重新制定选型方案,必要时需要与用户方沟通适当降低系统需求。


【真题演练】


下列属于数据库应用系统功能建模内容的是(    )。


A.分析与描述目标系统需要完成的功能


B.分析与描述目标系统对响应时间、存储容量的要求


C.分析与描述每项功能活动需要的输入数据、业务规则及输出数据


D.分析与描述目标系统的总体结构、功能活动及各功能活动间的关系


【答案】B


考点5 业务规则初步设计

数据库应用软件的动态行为体现为各个系统元素相互间的组合、控制和信息传递,可表示成一系列实现系统功能的业务流程和运行控制。这种动态行为实现了应用领域特定的业务规则。


在需求分析阶段,通过应用领域业务规则需求分析,识别了系统中一些子系统应具有的业务类型和功能,明确了用户或外部系统与DBAS的交互模式。总体设计阶段需要在此基础上对一些重要业务规则或系统业务做出初步规定和设计,细化业务处理流程,分析所处理的业务数据和处理方式,并对其中一些关键技术方案或算法做出选择或初步设计。


4.4 DBAS功能概要设计

考点1 概 述

DBAS功能概要设计按照逐步求精、模块化、信息隐藏和功能细化原则,根据DBAS需求分析阶段得到的系统功能和业务规则描述,在总体设计结果基础上,将DBAS应用软件进一步细化为模块/子模块,组成应用软件的系统-子系统-模块-子模块层次结构,并对系统、子系统、模块、子模块等系统元素从结构、行为和数据三方面进行设计。


考点2 实现方法

从功能角度DBAS系统通常可以划分为四个层次实现。


①表示层:负责所有与用户交互的功能,用户对数据库应用系统的最直观感受均在这层实现。


②业务逻辑层:负责根据业务逻辑需要将表示层获取的数据进行组织后,传递给数据访问层,或将数据访问层获取的数据进行相应的加工处理后,传送给表示层用于展示。


③数据访问层:负责与DBMS系统进行交互,提取或存入应用系统所需的数据。


④数据持久层:负责保存和管理应用系统数据。


考点3 表示层概要设计

(1)任务


进行人机界面的设计。


计算机系统用户界面的风格经历了命令行、菜单、WIMP界面(窗口Windows、图标Icons、菜单Menus、指示器Pointing Device四位一体)三代的演变,目前第四代用户界面将WIMP界面与Web技术和多任务处理技术相结合,组成Web人机交互界面。


(2)设计原则


①用户应当感觉系统的运行始终在自己的控制之下,即便当系统程序取得对系统的控制权时,人机界面也应向用户提供视觉和听觉上的反馈,保持用户与人机界面间的双向交流。


②当系统发生错误或程序运行时间较长时,用户界面应该为用户提供有意义的反馈信息,并有上下文感知的帮助功能。


③一个好的用户界面应该容忍用户在使用过程中发生的各种操作错误,并且能够方便地从错误中恢复过来,保证系统运行不受或尽可能小地受到用户错误操作的影响。


④用户界面应该遵循一定标准和常规。例如,对建立在Windows平台上的数据库应用系统,最好采用Windows类的外观界面;在同一用户界面中,所有的菜单选择、命令输入、数据显示和其他功能应保持同一种风格和形式。


⑤用户界面应采取灵活多样的数据输入方式,尽量减少用户的输入负担;提供字符、图形、图像、声音等多种形式的数据输出方式。


⑥如果使用Web界面,设计要求具有简洁性,避免使用过于复杂的图形和动画等,以免用户存使用系统时分心;界面布局还应当清晰地表示各类信息,并具有与之匹配的导航性;Web界面的设计应当保持界面的一致性,例如同样的按钮在所有窗口中保持一致的位置、始终使用一致的配色方案等;在Web界面设计时,需要注意界面美观和交互性能的折中平衡,因为太大、太复杂的图形图像界面会带来过大的系统开销,也影响交互的及时性。


考点4 业务逻辑层概要设计

(1)任务


梳理DBAS的各项业务活动,将其表示为各种系统构件(如类、模块、组件等)。设计人员需要将数据库应用软件划分为一系列程序模块,每个模块实现一个具体的功能,一个功能可以由多个模块来实现。一些被抽象出来的公共模块,也可以被多个子系统中实现不同功能的程序模块调用。


在本阶段设计人员仅需要关心各业务模块的功能、输入/输出等外部特性,一般不涉及模块内部的具体处理流程,以及各软件模块的具体编程实现机制。即业务逻辑层概要设计将包括:结构、行为、数据、接口、故障处理、安全设计、系统维护与保障等方面的内容。


(2)原则


业务逻辑层设计通常需要考虑高内聚与松耦合原则。这一原则在设计过程中体现在以下方面:


①构件本身应由相关性很强的代码组成,一个构件或一个模块只负责完成一项任务,也就是常说的单一责任原则。


②组成系统业务逻辑层的各个构件均应具有独立的功能,并且最大限度地减少与其他构件功能重叠。


③构件之间的接口应尽量简单明确。


④如果某两个构件间的关系比较复杂的话,应考虑进一步进行模块划分。


⑤如果构件过于复杂,可以考虑将其细分。


高内聚和松耦合是相互矛盾的,设计时需两者兼顾。


考点5 数据访问层概要设计

(1)任务


针对DBAS的数据处理需求设计用于操作数据库的各类事务。


(2)事务设计的过程


①从数据流图中识别出该事务对应的子数据流图。


②确定子数据流图中的信息流类型,划定流界。


③将子数据流图映射为事务的结构和处理流程,即事务处理逻辑(或事务业务规则)。


④修正和细化事务设计,识别事务所访问的数据库对象和数据库用户。


⑤确认事务概要设计与数据库设计。


⑥从事务描述出发,根据具体应用领域的相关知识设计事务逻辑,得到事务概要设计结果。


(3)事务概要设计中的元操作


事务对数据的操作,如查询、插入、删除、修改等,可以用以下两个元操作来抽象表示。


①read(X)操作:表示将数据库磁盘文件中的数据项X读入内存缓冲区。


对关系表的查询操作Select,事务可以先用read(x)将关系表中的记录读入内存缓冲区,然后检查该记录是否满足查询条件。如果满足,则从记录中提取所需要的查询属性信息;否则继续按照一定文件存取策略读取关系表中的其他记录。


②write(X)操作:表示将内存缓冲区中数据项X的当前值写入数据库磁盘文件。


对关系表的插入操作Insert,事务可先在内存缓冲区中准备好需要插入的新记录X,然后用write(X)将新数据X加入到关系表文件中。


(4)检查关系表对数据库事务支持性的步骤


①对每一个事务,根据需求分析阶段的事务分析,列出该事务所访问的各个数据项。


②列出事务访问的数据项所在的关系表和对应的关系属性。


③如果事务访问的数据项同时出现在多个表中,检查这些关系表间的关联关系,如主码/外码关联。


④检查是否存在某些事务,这些事务所访问的一些数据项未出现在任何关系表中,对这些事务需要重新修改数据库的概念模型或逻辑结构,或者重新设计事务,以保证DB能够支持所有的数据库事务。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
②⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
②⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
11 0
⑧⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
11 0
11⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
⭐全网首发☀️数据有道之数据库技术❤️干货大全【持续更新】❗❗❗
9 0
Button事件的三种实现方法
onclick事件的定义方法,分为三种,分别为在xml中进行指定方法;在Actitivy中new出一个OnClickListenner();实现OnClickListener接口三种方式。 1.在xml中实现方法的绑定 在MainActivity中实现绑定的方法btnadd ...
889 0
全网首发:解决办法:shmget()一直失败,errno=-22
全网首发:解决办法:shmget()一直失败,errno=-22
84 0
全网首发:j3d/jogl多个崩溃分析总结
全网首发:j3d/jogl多个崩溃分析总结
27 0
全网首发|阿里资深技术专家数仓调优经验分享(下)
随着云原生数据仓库AnalyticDB for MySQL(下文统一简称:AnalyticDB)在阿里集团各个业务线、社会上各行各业的推广应用,我们沉淀了一些最佳实践,现在笔者整理在这里,供大家参考,希望对大家有帮助。本篇文章总结了AnalyticDB表的设计的最佳经验、数据写入的最佳经验、高效查询的最佳实践,以及一些常见的问题。
133 0
2019年3月云栖最新技术活动预告【持续更新】
3月各大技术群的线上线下活动已经陆续上线!云栖社区的运营小编们已经忙的不亦乐乎,此时的你还在为找不到学习路径而发愁吗?下面小编为你整理了3月份云栖社区各大技术群的线上直播和线下沙龙,接下来还会陆续更新。
13484 0
+关注
王小王-123
快乐代码,精彩人生!
268
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载