数据库应用系统DBAS功能设计与实施(三级数据库)
目录
一、了解软件体系结构及设计过程
1、软件体系结构与设计过程
2、软件设计过程
二、了解DBAS总体设计
1、DBAS体系结构设计
2、软件体系结构设计
3、软硬件选型与配置设计
4、业务规则初步设计
三、了解DBAS功能概要设计
1、表示层概要设计
2、业务逻辑层概要设计
3、数据访问层概要设计
4、数据持久层概要设计
四、了解DBAS功能详细设计
1、表示层详细设计
2、业务逻辑层详细设计
五、了解DBAS安全架构设计
1、数据安全设计
(1)数据库的安全性保护
(2)数据库的完整性保护
(3)数据库的并发性控制
一、了解软件体系结构及设计过程
DBAS功能设计包括软件中的数据库事务设计和应用程序设计;
功能设计过程一般被划分为总体设计、概要设计、详细设计。而具体到数据库事务设计部分,又可以分成事务概要设计和事物详细设计;
完成系统设计工作后,就要进入系统实现与部署阶段。
1、软件体系结构与设计过程
软件体系结构:
- 又称为软件架构,软件体系结构={构件,连接件,约束条件};
- 软件体系结构是软件系统中最本质的东西。良好的体系结构必须是普适、高效和稳定的;
- 软件体系结构有多种风格和类型,如分层体系结构、模型-试图-控制器(MVC)体系结构、客户端/服务器体系结构等。
2、软件设计过程
软件设计过程:
- 软件开发由设计、实现、测试三个环节组成,设计又包含概要设计和详细设计。
- 概要设计任务是进行总体结构设计,可采用层次结构图建立软件总体结构图;详细设计的任务是进行数据设计、过程设计以及人机界面设计。
- 设计原则:模块化、信息隐藏、抽象与逐步求精。
- 软件设计可选用结构化设计方法、面向对象设计方法和面向数据设计方法等。
二、了解DBAS总体设计
DBAS总体设计的任务是确定体系总体框架,主要内容包括:
DBAS体系结构设计、软件体系结构设计、软件硬件选型与配置设计、业务规则初步设计
1、DBAS体系结构设计
将系统从功能、层次/结构、地理分布等角度进行分解,划分为多个子系统,定义各子系统功能;设计系统的全局控制,明确各子系统间的交互和接口关系。
两种常见的DBAS体系结构:
- 客户/服务器体系结构(C/S)
- 浏览器/服务器体系结构(B/S)
2、软件体系结构设计
DBAS软件包括操作系统、数据库管理系统、开发环节中间件、应用软件(数据库事物和应用系统)
从需求分析出发分解各子系统,分配相应功能,定义相互交互机制,完成子系统结构设计,将各子系统从功能上分成数据库事物模块(事物自身处理逻辑)与颗粒度大的应用程序模块(业务规则),确定全局控制和调用关系,可用模块结构图(模块+调用+数据+控制+转接),表示系统总体结构和分层块结构。
3、软硬件选型与配置设计
规划分析阶段提出系统功能、性能及实现的约束对软硬件做了评估和建议;需求对系统功能性能提出了具体要求。为保证DBAS功能性能顺利实现,总体设计阶段需要软硬件设备做出合理选择,并进行初步配置设计。
软硬件选型涉及的内容:
网络及设备选型;数据存储及备份方案;服务器选型;终端软件环境;软件开发平台和语言、工具;系统中间件及第三方软件选型。
4、业务规则初步设计
任务:从系统的角度,规划DBAS的业务流程,使之符合客户的实际业务需求
DBAS的各项业务活动具有逻辑上的先后关系,可将它们表示成一个操作序列,并用业务流程图表示。
三、了解DBAS功能概要设计
在总体设计结果基础上,将DBAS应用软件进一步为模块/子模块,组成应用软件的系统-子系统-模块-子模块层次构,并从结构、行为、数据三方面进行设计。
从功能角度,DBAS系统通常划分为四个层次实现:表示层、业务逻辑层、数据访问层、数据持久层
1、表示层概要设计
人机界面设计,影响系统易用性。目前第四代是WIMP(窗口、图标、菜单、指示器)与Web技术、多任务处理技术相结合。
设计原则:‘用户自主控制’;反馈及时上下文感知;容错与错误恢复;界面标准规则;输入灵活界面简洁交互及时……
2、业务逻辑层概要设计
设计原则:高内聚低(松)耦合,即结构单一原则;构件独立功能; 接口简单明确;构件间关系单,过于复杂,就细化,分解。
设计内容 : 结构,行为,数据,接口,故障处理安全设计,系统维护和保障等
3、数据访问层概要设计
任务:针对DBAS的数据处理需求设计用操作数据库的各类事物。
事务概要设计核心在于辨识和设计事务自身处理逻辑,注意流程,不考虑与平台相关、具体操作方法和事务实现机制。
一个完整的事务概要设计包括事务名称、访问的关系表及其数据项、事务逻辑( 事务描述)、事务用户( 使用、启块和系统)。
事物:事物(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元
事物的特性:原子性、一致性、隔离性、持续性。称为ACID特性。
原子性:一个不可分割的工作单位。
一致性:从一个一致性状态变到另一个一致性状态。
隔离性:执行不能被其他事务干扰。
持久性:永久性,指一个事务一旦提交 ,它对数据库中数据的改变就应该是永久的。
4、数据持久层概要设计
属于数据组织与存储方面的设计内容
四、了解DBAS功能详细设计
1、表示层详细设计
人机界面采用原型迭代法合适,三个步骤:
(1)初步设计:设计人机交互命令系统并优化(总体设计)
(2)用户界面细节设计。如组织形式、风格、色彩,操作方式(概要设计)。
(3)原型设计与改进(详细设计)
2、业务逻辑层详细设计
设计各模块内部处理流程和算法、具体数据结构、对外详细接口等。
五、了解DBAS安全架构设计
1、数据安全设计
五方面:
安全性保护:防止非法用户对数据库的非法使用,避免数据泄露、篡改或破坏。
完整性保护:保证数据源的正确性、一致性和相容性。
并发性控制:保证多个用户能共享数据库,并维护数据一致性
数据备份与恢复:系统失效后的数据恢复,配合定时备份数据库,不丢失数据。
数据加密传输:将一些高级的敏感数据通过一定的加密算法。
(1)数据库的安全性保护
主要保护方式:
- 用户身份鉴别
Windows身份验证、SQL身份验证
- 权限控制
对后台数据库是不同用户对数据的不同存取需求议置不同权限;
对前台 程序是为每个合法用户设定权限等级,外部用户设置有限查询功能
- 试图机制
通过试图机制把保密数据对无权用户隐藏。
(2)数据库的完整性保护
数据库的完整性指数据库中数据的正确性、一致性及相容性
方法:设置完整性检查
即对数据设置一些约束条件(如实体完整性、参考完整性、用户自定义完整性)
完整性约束条件作用对象:列(类型、范围、精度、排序)、元组(记录中各属性之间的联系约束)、关系(若干记录间、关系集合与集合之间的联系)三种级别。
(3)数据库的并发性控制
并发访问( Concurrent Access ):事务在时间上重叠执行。
对多用户并发存取同一数据的操作可能导致数据不一致,并破坏事务的隔离性,因此DBMS必须提供并发控制机制,并发控制机制是衡量一个DBMS性能的重要标志之一。实现数据库制并发控制的常用方法是封锁技术。
相关文章:
数据库应用系统DBAS功能设计与实施(三级数据库)
目录 一、了解软件体系结构及设计过程 1、软件体系结构与设计过程 2、软件设计过程 二、了解DBAS总体设计 1、DBAS体系结构设计 2、软件体系结构设计 3、软硬件选型与配置设计 4、业务规则初步设计 三、了解DBAS功能概要设计 1、表示层概要设计 2、业务逻辑层概要设计…...
快速幂典型
题目描述 求 a 乘 b 对 p 取模的值,其中 1≤a,b,p≤1018。 输入描述: 第一行a,第二行b,第三行p。 输出描述: 一个整数,表示abmodp的值。 示例1 输入 2 3 9 输出 6 #include<bits/stdc.h> using namespace std; t…...
计算机竞赛 python+opencv+机器学习车牌识别
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于机器学习的车牌识别系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:4分工作量:4分创新点:3分 该项目较为新颖,适…...
解决电脑声音正常但就是某些游戏没声音问题
电脑声音正常,玩普遍游戏也正常,就有游戏不出声音 详细介绍经过,不喜欢的请直接跳 第三部分。 一、先说下起因现象。 1 大富翁11 没声音。 前段时间无聊怀旧就买了个大富翁11玩玩,近二十年前的老台式机正常无问题。后来想在性能…...
【UniApp开发小程序】小程序首页(展示商品、商品搜索、商品分类搜索)【后端基于若依管理系统开发】
文章目录 界面效果界面实现工具js页面首页让文字只显示两行路由跳转传递对象将商品分为两列显示使用中划线划掉原价 后端商品controllerservicemappersql 界面效果 【说明】 界面中商品的图片来源于闲鱼,若侵权请联系删除关于商品分类页面的实现,请在我…...
Redis 持久化及集群架构
Redis 持久化及集群架构 本篇技术博文将深入探讨 Redis 持久化机制的原理、配置和使用方式。我们将介绍两种常用的持久化方式:RDB 持久化和 AOF 持久化。您将了解到它们的工作原理、优缺点以及如何根据需求选择合适的持久化方式。 通过深入学习 Redis 持久化及集群…...
FPGA + WS2812采灯控制
文章目录 一、WS2812C-2020-V11、产品概述2、引出端排列及功能3、数据传输时间4、数据传输方法 二、使用WS2812C显示图片1、静态显示2、动态显示 一、WS2812C-2020-V1 1、产品概述 WS2812C-2020-V1是一个集控制电路与发光电路于一体的智能外控LED光源;其外型采用最…...
【视频】使用OBS将MP4推流至腾讯云直播
1、下载OBS OBS官网:https://obsproject.com/ OBS支持Win、Mac、Linux,如果下载速度很慢,建议使用迅雷下载 2、OBS推流设置 2.1 添加场景 默认会有一个“场景”,如果想继续添加可以点击“+”按钮 2.2 添加媒体源 1)点击“来源”窗口中“+”按钮 2)支持的媒体源如…...
Vue基本知识
一、vue入门 Vue为前端的框架,免除了原生js的DOM操作。简化书写。 基于MVVM的思想,实现数据的双向绑定,使编程的重点放在数据上。 1、引入vue.js文件 2、定义vue核心对象,定义数据模型 3、编写视图 //1、引入vue.js <scr…...
item_get_sales-获取商品销量详情
一、接口参数说明: item_get_sales-获取商品销量详情,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_get_sales 名称类型必须描述keyString是调用key(…...
LangChain手记 Memory
整理并翻译自DeepLearning.AILangChain的官方课程:Memory Memory 使用open ai的API调用GPT都是单次调用,所以模型并不记得之前的对话,多轮对话的实现其实是将前面轮次的对话过程保留,在下次对话时作为输入的message数组的一部分&…...
linux下安装.run后缀名文件
1.文件传输 对于大文件,不能直接拖拽,可以借助工具,例如WinSCP 创建会话时,需要提供虚拟机的主机名,可以采取输入ifconfig的命令,如图所示: ifconfig(接口配置)命令在 …...
Angular 性能优化实战
Angular 性能优化实战 Angular 是一个非常强大的前端框架,但是如果不注意性能优化,应用程序可能会变得非常慢并增加加载时间。 以下是一些Angular性能优化经验的实战建议: 1. 使用 OnPush 变更检测策略 默认情况下,Angular检查…...
在vue项目使用数据可视化 echarts ,柱状图、折线图、饼状图使用示例详解及属性详解
官网地址:Apache ECharts 一、下载插件并在页面中引入 npm install echarts --save 页面导入: import * as echarts from echarts 全局导入: main.js 中,导入并注册到全局 import echarts from echarts Vue.prototype.$echart…...
九耶丨阁瑞钛伦特-井字棋html5代码
你想了解关于井字棋(Tic-Tac-Toe)的HTML代码吗?以下是一个简单的井子棋的HTML代码示例: <!DOCTYPE html> <html> <head><title>Tic-Tac-Toe</title><style>.board {display: flex;flex-wrap…...
Linux服务器上配置HTTP和HTTPS代理
本文将向你分享如何在Linux服务器上配置HTTP和HTTPS代理的方法,解决可能遇到的问题,让你的爬虫项目顺利运行,畅爬互联网! 配置HTTP代理的步骤 1. 了解HTTP代理的类型:常见的有正向代理和反向代理两种类型。根据实际需求…...
OpenZFS 2.2 发布 RC3,支持 Linux 6.4
导读之前的 OpenZFS 2.2 候选版本已致力于实现与 Linux 6.4 内核的兼容性,而在 2.2-rc3 中,Linux 6.4 支持的元跟踪器已标记为已完成。 OpenZFS 2.2 发布了第 3 个 RC 版本。 之前的 OpenZFS 2.2 候选版本已致力于实现与 Linux 6.4 内核的兼容性&#x…...
嵌入式 C 语言程序数据基本存储结构
一、5大内存分区 内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。 …...
记录VS2022离线安装NuGet包的过程
离线安装NuGet包主要分为两个阶段:指定安装源及下载包及其依赖项。本文记录在VS2022中离线安装NuGet包的过程及注意事项。 离线安装NuGet包,主要有两种方式:1)搭建局域网或本机NuGet服务器,将VS2022的源指定为NuGe…...
tomcat的多实例和动静分离
目录 多实例 安装tomcat 配置 tomcat 环境变量 修改server.xml文件 修改开关文件,添加环境变量 tomcat1 tomcat2 启动 浏览器访问测试 nginxtomcat实现动静分离 Nginx实现负载均衡的原理 部署nginx的负载器 搭建第三台tomcat 配置多实例服务器 Tomcat…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
