数据库-计算机三级学习记录-4DBAS功能概要设计

DBAS功能概要设计

参照b站【计算机三级数据库技术】

DBAS功能设计包括应用软件中的数据库事务设计和应用程序设计。

功能设计过程一般被划分为总体设计、概要设计和详细设计。而具体到数据库事务设计部分,又可分成事务概要设计和事务详细设计。完成系统设计工作之后,就进入系统实现与部署阶段。

1. 软件体系结构与设计过程

➢软件体系结构

又称软件架构,软件体系结构= {构件,连接件,约束}

软件体系结构是软件系统中最本质的东西。良好的体系结构必须是普适、高效和稳定的。

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

2. 软件设计过程

➢软件设计过程

  • 软件开发由设计、实现、测试三个环节组成,设计又包含概要设计和详细设计。

  • 概要设计的任务是进行软件总体结构设计,可采用层次结构图建立软件总体结构图。详细设计的任务是进行数据设计、过程设计及人机界面设计。

  • 设计原则:模块化、信息隐藏、抽象与逐步求精。

  • 软件设计可选用结构化设计方法、面向对象设计方法或面向数据设计方法等。

1. DBAS体系结构设计

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

➢两种常见的DBAS体系结构:

  • 客户/服务器体系结构(C/S)
  • 浏览器/服务器体系结构(B/S)

DBAS总体设计的任务是确定系统总体框架,主要内容包括:

➢DBAS体系结构设计;

➢软件体系结构设计;

➢软件硬件选型与配置设计;

➢业务规则初步设计。

2. 软件体系结构设计

➢DBAS软件包括操作系统、数据库管理系统、开发环境、中间件、应用软件(数据库事务和应用程序)。

➢从需求分析出发分解成各子系统,分配相应功能,定义相互间交互机制,完成子系统结构设计,将各子系统从功能上分成数据库事务模块(事务自身处理逻辑)与粒度大的应用程序模块,确定全局控制和调用关系,可用模块结构图(模块+调用+数据+控制+转接)来表示系统总体结构和分层模块结构。

3. 软件硬件选型与配置设计

➢规划分析阶段提出系统功能、性能及实现的约束对软硬伦了评估和选择建议;需求对系统功能性能提出了具体要求。为保证DBAS功能性能顺利实现,总体设计阶段需要对软硬件设备做出合理选择,并进行初步配置设计。

➢软硬件选型涉及的内容:

网络及设备选型;数据存储及备份方案:服务器选型;终端软件环境;软件开发平台和语言、工具;系统中间件及第三方软件选型。

4. 业务规则初步设计

➢任务:从系统的角度,规划DBAS的业务流程,使之符合客户的实际业务需要。

➢DBAS的各项业务活动具有逻辑上的先后关系,可将它们表示成一个操作序列,并用业务流程图表示。
➢在总体设计结果基础上,将DBAS应用软件进一步细化为模块/子模块,组成应用软件的系统-子系统模块-子模块层次结构,并从结构、行为、数据三方面进行设计。
➢从功能角度,DBAS系统通常划分为个层次实现

  • 表示层
  • 业务逻辑层
  • 数据访问层
  • 数据持久层
1. 表示层概要设计

➢人机界面设计,影响系统易用性。目前第四代是WIMP (窗口、图标、菜单、指示器)与Web技术、多任务处理技术相结合。

➢设计原则:‘用户自主控制’;反馈及时上下文感知;容错与错误恢复;界面标准常规;输入灵活
界面简洁交互及时……

2. 业务逻辑层概要设计

➢设计原则
高内聚低(松)糅合,即构件单一原则;构件独立功能;接口简单明确;构件间关系简单,过于复杂,就细化,分解。

➢设计内容
结构,行为,数据,接口,故障处理,安全设计,系统维护和保障等

3. 数据访问层概要设计

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

➢事务概要设计核心在于辨识和设计事务自身处理逻辑,注重流程,不考虑与平台相关、具体操作方法和事务实现机制。

➢-个完整的事务概要设计包括事务名称、访问的关系表及其数据项、事务逻辑(事务描述)、事务用户(使用、启动、调用该事务的软件模块和系统)。

补充

  • 事务:事务( Transaction )是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
  • 事务的特性:原子性、一致性、隔离性、持续性。称为ACID
  • 原子性( atomicity )。一个不可分割的工作单位。
  • 一致性( consistency )。从一个一致性状态变到另一个一致性状态
  • 隔离性( isolation)。执行不能被其他事务干扰。
  • 持久性( durability )。永久性(permanence),指一个数据一旦提交,它对数据库中数据的改变就应该是永久性的。
4. 数据持久层概要设计

➢属于数据组织与存储方面的设计内容,

3. 表示层详细设计

人机界面采用原型迭代法合适,三个步骤:

  • ( 1 )初步设计:设计人机交互命令系统并优化。(总体设计)
  • ( 2 )用户界面细节设计。如组织形式、风格、彩色(概要设计 )
  • ( 3 )原型设计与改进(详细设计)
4. 业务逻辑层详细设计

设计各模块内部处理流程和算法、具体数据结构、详细接口等。

1. 数据安全设计

五个方面:

  • 安全性保护:防止非法用户对数据库的非法使用,避免数据泄露、篡改或破坏
  • 完整性保护:保证数据源的正确性、一致性和相容性。
  • 并发性控制:保证多个用户能共享数据库,并维护数据一致性。
  • 数据备份与恢复:系统失效后的数据恢复,配合定时备份,不丢失数据。
  • 数据加密传输:将一些高级的敏感数据通过一定的加密算法加密传输。
( 1 )数据库的安全性保护

主要保护方式:

  • 用户身份鉴别
    Windows身份验证、SQL身份验证。
  • 权限控制
    对后台数据库时不同用户对数据的不同存取需求设置不同的权限;对前台程序是了每个合法用户设定权限等级,外部用户设置有限查询功能
  • 视图机制
    通过视图机制把保密数据对无权用户隐藏
( 2 )数据库的完整性保护

数据库的完整性指数据库中数据的正确性、一致性及相容性
➢方法:设置完整性检查
即对数据设置些约束条件(如实体完整性、参考完整性,用户自定义完整性)

➢完整性约束条件作用对象:列(类型、范围、精度、排序),元组(记录中各属性之间的联系约束)、关系(若干记录集合与集合之间的联系)三种级别。

( 3 )数据库的并发性控制

➢并发访问( Concurrent Access ) :事务在时间上重叠执行,对多用户并发存取同一数据的操作可能导致数据不一致破坏事务的隔离性,因此DBMS必须提供并发控制机制,并发访问机制是衡量一个DBMS性能的重要标志之一。 实现数据中并发机制的常用方法是封锁技术。

➢所谓封锁,是指事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁,加锁后对该数据对象有了一定的控制,在事务T释放它的锁之前,事务不能更新此数据对象。
➢基本锁类型

  • 排它锁( eXclusive lock,简记为X锁) ,写锁,若事务对数据对象A加上X锁,则只允许T读取和修改A ,其它任何事务不能再对A加任何类型的锁,直到T释放A上的锁.排它锁保证了其它事务在T释放A.上的锁之前不能再读取和修改A。
  • 共享锁( Share lock ,简记为S锁),读锁,若事务T对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁直到T释放A上的S锁。共享锁保证了其它事务可以保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

➢避免死锁

  • 死锁是两个或两个以上的事务之间的循环等待。
  • 设计避免死锁的原则:
  1. 按照同一顺序访问资源。(如第一 个事务提交或回滚后第二个事务进行)
  2. 避免事务交互性
  3. 采用小事务模式,缩短长度和占用时间。
  4. 尽量使用记录级别的所(行锁),少用表
  5. 使用绑定连接,同一用户打开的两个或多1以互相合作。
( 4 )数据库的数据备份与恢复

➢数据库恢复的基本原理:

利用存储在系统其他存储器上的冗余数据(即数据备份)来重建。

➢数据库备份与恢复策略:

  • 双机热备(基于Active/Standby方式的服务器)
  • 热数据转储(也称为数据备份)
  • 数据加密存储(针对高敏感数据)
(5)数据加密传输

➢常见的数据加密传输手段

  1. 数字安全证书
  2. 对称密钥加密
  3. 数字签名
  4. 数字信封
2.环境安全设计

➢漏洞与补丁:定期查找漏洞更新补丁
➢计算机病毒防护
➢网络环境安全:防火墙;入侵检测系统;网络隔离(逻辑隔离与物理隔离)
➢物理环境安全:如防盗设施;UPS;湿温度报警器

3.制度安全设计

管理层面安全措施
DBAS实施阶段主要包括以下工作:
1.创建数据库
考虑因素:初始空间大小;数据库增量大小;访问性能(并发数,访问频率)
2.数据装载
步骤:筛选数据-转换数据格式-输入数据-校验
3.编写与调试应用程序
4.数据库系统试运行(功能测试与性能测试)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

YoloV8改进策略:HAM混合注意力机制改进YoloV8|多种改进,多种姿势涨点|代码注释详解

摘要 HAM通过快速一维卷积来缓解通道注意机制的负担,并引入通道分离技术自适应强调重要特征。HAM作为通用模块,在CIFAR-10、CIFAR-100和STL-10数据集上实现了SOTA级别的分类性能。 论文链接:https://www.sciencedirect.com/science/article/abs/pii/S0031320322002667?vi…

Leetcode 3027. Find the Number of Ways to Place People II

Leetcode 3027. Find the Number of Ways to Place People II 1. 解题思路2. 代码实现 题目链接:3027. Find the Number of Ways to Place People II 1. 解题思路 这一题的话我也没想到啥特别好的思路,采用的纯粹是遍历剪枝的思路。 遍历的话好理解&…

python接口自动化之接口测试用例(详解)

简介 接口测试是软件测试中非常重要的一种测试类型,它主要针对系统的接口进行测试,检查接口之间的交互是否符合预期。在进行接口测试时需要注意以下几个方面: 接口测试用例设计 接口测试用例设计需要考虑到接口的输入、输出、边界条件、异常…

【操作系统】为什么在Windows系统上tqdm跟print函数两者不是同步输出的呢?

1 问题描述 今天在学习tqdm的时候,遇到一个问题,就是我发现trange的输出跟主线程的print函数不是同步输出的; 我使用的测试代码如下: import sysfrom tqdm import trangedef main():X 100for i in trange(X):# for i in trange…

网易和腾讯面试题精选---API 设计和开发面试问答

介绍 API 设计和开发是不断发展的软件工程领域的关键组成部分。随着企业越来越依赖互连系统,创建强大、高效和用户友好的 API 的能力已成为科技行业抢手的技能。无论您是经验丰富的 API 开发人员还是准备面试的候选人,掌握 API 设计的复杂性都是至关重要的。本文深入探讨了一…

基于Springboot的兼职网(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的兼职网(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&#xff0…

《动手学深度学习(PyTorch版)》笔记7.2

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

阿里云入门

阿里云是阿里巴巴集团提供的云计算服务平台,提供各种云服务,包括计算、存储、网络、数据库、安全等。以下是阿里云入门的一些建议步骤: ### 1. **注册阿里云账号:** - 访问 [阿里云官方网站](https://www.aliyun.com/)&#x…

DevOps落地笔记-14|部署流水线:打造一站式部署的关键平台

上一课时我主要介绍了实现自动化测试的范围、流程和结构图,自动化测试是持续集成实践不可或缺的一部分,从而使得软件向高效率和高质量迈进了一大步。持续集成主要关注的是代码是否可以编译成功、是否可以通过单元测试和验收测试等。但持续集成并不能实现…

HubSpot营销自动化如何优化营销流程?

HubSpot营销自动化在优化营销流程、减少手动工作以及提高效率方面发挥着关键作用。以下是一些具体的方法和策略: 1. 自动化电子邮件营销: 利用HubSpot的电子邮件自动化功能,设置触发条件,使邮件发送根据用户行为或阶段自动进行。…

Spark 依赖包加载方式

1 Spark 依赖包来源 我们知道Spark application运行加载依赖有三个地方: systemClasspath:Spark安装时候提供的依赖包,${SPARK_HOME}/jars下的包。spark-submit --jars 提交的依赖包spark-submit --config "spark.{driver/executor}.e…

Java SPI 代码示例

Java Service Provider Interface 是JDK自带的服务提供者接口又叫服务发现机制更是一种面向接口的设计思想。即JDK本身提供接口类, 第三方实现其接口,并作为jar包或其他方式注入到其中, 在运行时会被JDK ServiceLoader 发现并加载&#xff0c…

gd32F470配置CAN通信

can.c #include "can.h"can_trasnmit_message_struct transmit_message;//传入参数为0,则初始化CAN0的GPIO引脚;传入参数为1,则初始化CAN1的GPIO引脚 void CanGpioInit(void) {/* enable can clock */rcu_periph_clock_enable(RCU_CAN0);rcu_periph_cloc…

最大子数组(c++题解)

题目描述 题目描述 给你一个长度为 的整数数组 。 求长度为 的 的连续子数组 中 的最大值。 连续子数组定义: 一个数列的连续子数组是指从原数组中连续若干个元素组成的子数组。 例如,和是的连续子数组,但和不是的连续子数组。 输…

【Golang】自定义logrus日志保存为日志文件

背景 为了方便查看日志,项目中需要把日志保存到对应的日志文件中,所以需要当前的配置,以使得日志能够保存到对应的日志文件中。 代码 import ("github.com/orandin/lumberjackrus""github.com/sirupsen/logrus" )func …

骨传导是表示啥?骨传导耳机有什么优势

最近市场上兴起了一股骨传导耳机的热潮,它引起了广泛的关注并带来了许多用户的好奇:骨传导是表示啥?骨传导耳机有什么优势?接下来我们将深入探讨骨传导是表示啥以及骨传导耳机有什么优势。 骨传导是表示啥 简而言之,骨…

[office] Excel表格中画出对角线打字的操作方法 #微信#知识分享

Excel表格中画出对角线打字的操作方法 Excel单元格中加斜线非常的简单,但如何在加斜线的单元格内打字却成了一大难题,既要设置好文字位置,又要利用Alt回车键进行换行。今天,小编就教大家在Excel表格中画出对角线打字的操作方法。 …

c实现顺序表

目录 c语言实现顺序表 完整代码实现 c语言实现顺序表 顺序表的结构定义: typedef struct vector {int size; // 顺序表的容量int count; // 顺序表现在存储了多少个数据int *data; // 指针指向连续的整型存储空间 } vector;顺序表的结构操作: 1、初始化…

VSCode 安装LLDB调试器(OS X)并启动调试

插件:(LLDB插件安装) 安装这个版本不好弄错了,CodeLLDB(名字) 配置:(LLDB启动调试) {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更…

Python循环语句——while循环的嵌套应用

一、引言 在Python编程中,循环结构是必不可少的。其中,while循环因其灵活性而备受青睐。嵌套while循环,即将一个while循环放置在另一个while循环内部,能让我们编写更为复杂的程序逻辑。本文将详细介绍嵌套while循环的基本概念、使…