数据库-计算机三级学习记录-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以互相合作。
( 4 )数据库的数据备份与恢复
➢数据库恢复的基本原理:
利用存储在系统其他存储器上的冗余数据(即数据备份)来重建。
➢数据库备份与恢复策略:
- 双机热备(基于Active/Standby方式的服务器)
- 热数据转储(也称为数据备份)
- 数据加密存储(针对高敏感数据)
(5)数据加密传输
➢常见的数据加密传输手段
- 数字安全证书
- 对称密钥加密
- 数字签名
- 数字信封
2.环境安全设计
➢漏洞与补丁:定期查找漏洞更新补丁
➢计算机病毒防护
➢网络环境安全:防火墙;入侵检测系统;网络隔离(逻辑隔离与物理隔离)
➢物理环境安全:如防盗设施;UPS;湿温度报警器
3.制度安全设计
管理层面安全措施
DBAS实施阶段主要包括以下工作:
1.创建数据库
考虑因素:初始空间大小;数据库增量大小;访问性能(并发数,访问频率)
2.数据装载
步骤:筛选数据-转换数据格式-输入数据-校验
3.编写与调试应用程序
4.数据库系统试运行(功能测试与性能测试)
相关文章:
数据库-计算机三级学习记录-4DBAS功能概要设计
DBAS功能概要设计 参照b站【计算机三级数据库技术】 DBAS功能设计包括应用软件中的数据库事务设计和应用程序设计。 功能设计过程一般被划分为总体设计、概要设计和详细设计。而具体到数据库事务设计部分,又可分成事务概要设计和事务详细设计。完成系统设计工作之后…...

JVM-虚拟机栈
虚拟机栈 Java虚拟机栈(Java Virtual Machine Stack)采用栈的数据结构来管理方法调用中的基本数据,先进后出(First In Last Out),每一个方法的调用使用一个栈帧(Stack Frame)来保存。 接下来以…...
linux系统上tomcat简介以及安装tomcat
tomcat简介以及安装 Tomcat简介安装环境安装jdk安装tomcat浏览器访问 Tomcat简介 Tomcat是一个开源的Web服务器和servlet容器,由Apache软件基金会开发和维护。它是一种流行的Java Web应用服务器,用于运行Java编写的Web应用程序。 Tomcat提供了一个轻量级…...

树莓派的pip安装时候添加清华源
每次都要去找镜像网址,太麻烦了,通过改配置可以一次性解决。 首先创建一个.pip 目录 mkdir ~/.pip意味着在当前目录下创建.pip文件,不过这个是隐藏文件,一般情况下是关闭隐藏文件的可视的,于是我绕了点弯弯。 编辑…...

共享网盘系统PHP源码
新V5.0版本,支持上传视频、支持视频播放、支持共享,也可以自己用。 可以自动生成视频外链,下载地址,播放器代码,html代码,ubb代码等等。 使用方法: 源码上传到服务器,打开网站根据…...

unity-ios-解决内购商品在Appstore上面已配置,但在手机测试时却无法显示的问题
自己这几天用 unity 2021 xcode 14.2 开发ios内购,appstore上面内购商品都已经配置好了,但是在手机里就是不显示,最后才发现必需得满足以下条件才行: 1. Appstore后台 -> 内购商品 -> 商品状态必需为『准备提交』以上状态…...
flask的基本使用 token插件(二)
一、安装flask-jwt-extended 安装flask-jwt-extend得时候 会自动安装一个pyjwt得库。pyjwt可以直接使用来生成JWT和验证。但是在flask中,可以通过Flask-JWT-Extended来实现JWT能,因为他封装了使用方式,以及一些属性和装饰器,用起…...

云计算、Docker、K8S问题
1 云计算 云计算作为一种新兴技术,已经在现代社会中得到了广泛应用。它以其高效、灵活和可扩展特性,成为了许多企业和组织在数据处理和存储方面的首选方案。 1.1 什么是云计算?它有哪些特点? 云计算是一种通过网络提供计算资源…...

【Iceberg学习二】Branch和Tag在Iceberg中的应用
Iceberg 表元数据保持一个快照日志,记录了对表所做的更改。快照在 Iceberg 中至关重要,因为它们是读者隔离和时间旅行查询的基础。为了控制元数据大小和存储成本,Iceberg 提供了快照生命周期管理程序,如 expire_snapshots…...
在 Blazor WASM 中手撸一个.NET MD5类
最近.net8 blazor auto大火, 我也玩了一下,发现ssr能用的代码 MD5 类在wasm是没法用的. 于是搜索了一下互联网,找到了一份代码,分享给大家. 我找到的帖子作者原话: 代码不是我的,但我确实稍微修改了它以使其与 System.Security.Cryptography.MD5 类更加一致。 pub…...

MFC实现遍历系统进程
今天我们来枚举系统中的进程和结束系统中进程。 认识几个API 1)CreateToolhelp32Snapshot 用于创建系统快照 HANDLE WINAPI CreateToolhelp32Snapshot( __in DWORD dwFlags, //指定快照中包含的系统内容__in DWORD th32P…...

【C语言】深入理解指针
目录 1.字符指针 2.指针数组 3.数组指针 4.数组传参与指针传参 一维数组传参 二维数组传参 一级指针传参 二级指针传参 5.函数指针 6.函数指针数组 7.指向函数指针数组的指针(了解即可) 8.回调函数 回调函数的应用:库函数qsort …...

Excel——有效性、二级菜单联动
一、录入规范数据 1.手动输入序列录入有效性信息 选择需要录入有效性的所有单元格 选择【数据】——【有效性】——【有效性】 在【允许】输入的值之间选择【序列】 在【序列】输入框中输入想要选择的值,中间用逗号(必须是英文逗号)隔开 。…...
计算机网络总结
1. 网络分层 网络上进行协议分层的好处 ①分层之后层次之间的耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节; ②方便的对某一层的协议进行替换; 真实网络的协议分层 OSI 七层网络模型(教科书&…...

初识文件包含漏洞
目录 什么是文件包含漏洞? 文件包含的环境要求 常见的文件包含函数 PHP伪协议 file://协议 php://协议 php://filter php://input zip://、bzip2://、zlib://协议 zip:// bzip2:// zlib:// data://协议 文件包含漏洞演示 案例1:php://inp…...

AR特效自研AI算法技术解决方案
在当今这个高速发展的数字化时代,增强现实(AR)技术已经成为企业创新和市场竞争的重要手段。美摄科技凭借对AI技术的深厚积累,为企业提供了一套创新的AR特效自研AI算法技术解决方案,旨在满足企业在AR领域的多元化需求。…...
牛客2024年除夕娱乐赛(题解)
比赛地址 : 牛客竞赛_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A 看题面然后猜!!! #include<bits/stdc.h> using namespace std; int main(){cout << "原神启动" << endl; } B 也是看题面然后猜 : #include<bits/stdc.…...
5 scala的函数式编程简介
与Java一样,Scala 也是使用 Lambda 表达式实现函数式变成的。 1 遍历 除了使用 for 可以对数组、List、Set 进行遍历外,也可以使用 foreach 函数式编程进行遍历,使代码更为简洁。 foreach 的方法签名为: foreach(f: (A) > …...

陪护系统|陪护小程序提升长者护理服务质量的关键
在如今逐渐老龄化的社会中,老年人对更好的护理服务需求不断增加。科技的进步使得陪护小程序系统源码成为提供优质服务的重要途径之一。本文将从运营角度探讨如何优化陪护小程序系统源码,提升长者护理服务的质量。 首先,我们需要对软件的设计和…...

C++算法之双指针、BFS和图论
一、双指针 1.AcWing 1238.日志统计 分析思路 前一区间和后一区间有大部分是存在重复的 我们要做的就是利用这部分 来缩短我们查询的时间 并且在使用双指针时要注意对所有的博客记录按时间从小到大先排好顺序 因为在有序的区间内才能使用双指针记录两个区间相差 相当于把一个…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...