数据库-计算机三级学习记录-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.数据库系统试运行(功能测试与性能测试)

相关推荐
一匹电信狗5 分钟前
【MySQL】数据库表的操作
linux·运维·服务器·数据库·mysql·ubuntu·小程序
api_1800790546015 分钟前
性能优化揭秘:将淘宝商品 API 响应时间从 500ms 优化到 50ms 的技术实践
大数据·数据库·性能优化·数据挖掘
白衣鸽子17 分钟前
MySQL 时间类型深度解析:精度、时区陷阱与版本兼容
数据库·后端·mysql
冲上云霄的Jayden20 分钟前
MySQL InnoDB 状态(SHOW ENGINE INNODB STATUS)深度分析与性能优化建议
数据库·mysql·性能优化·innodb
Han.miracle1 小时前
数据结构——排序的学习(一)
java·数据结构·学习·算法·排序算法
元闰子1 小时前
怎么让程序更高效地连起来?
数据库·redis·mysql
洲覆1 小时前
Redis 内存淘汰策略
开发语言·数据库·redis·缓存
电子云与长程纠缠2 小时前
Blender入门学习01
学习·blender
胖头鱼的鱼缸(尹海文)2 小时前
数据库管理-第376期 Oracle AI DB 23.26新特性一览(20251016)
数据库·人工智能·oracle
麦聪聊数据2 小时前
浅谈SQL审核(一):SQL审核实现方式与常见工具的选择
数据库·sql