计算机三级数据库技术 第4章「数据库应用系统功能设计与实施」

前言:本章着重考察DBAS系统层次结构,对锁相关的概念也有涉及

如发现内容错误,评论区轰炸


4.1

1. 软件设计过程由总体设计概要设计详细设计组成

2. 功能模块内应该保持较高的内聚度,功能模块间应保持较低的耦合度,这就是我们经常说的高内聚、低耦合

4.2

DBAS总体设计包括DBAS体系结构设计DBAS软件总体设计软硬件选型与配置设计业务规则初步设计

1. 客户/服务器(C/S)结构

 

 

应用业务规则一般在客户端实现

 

2. 三层浏览器/服务器(B/S)结构

 

 

应用业务规则一般在Web应用服务器实现,事务处理在数据库服务器完成

表示层位于客户端,由Web浏览器实现

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

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

4.3

表示层:负责与用户交互,也是用户能看到的层次

业务逻辑层:负责数据访问层和表示层之间的数据交换。该层级包括构件设计

数据访问层:负责与DBMS系统进行交互

数据持久层:负责保存和管理应用系统数据,包括完整性维护工作,交叉引用矩阵来调整数据文件的组织结构

 

DBMS有两个元操作,read(x)表示将数据库磁盘文件中的数据项x读入内存缓冲区,write(x)则是表示读出的相反操作(概要设计阶段readwrite原语来表述操作)

4.4

人机界面设计采用原型迭代法:初步设计用户界面细节设计原型设计与改进

4.5

安全性保护

 

完整性保护

 

并发控制:封锁技术一般有排它锁(x锁)和共享锁(s锁)

排它锁指的是A用户在数据操作的时候为其加上锁,然后其他的用户就访问不了(排他)被加锁的数据了

共享锁:两个用户可以并发访问同一个区域的数据

 

数据库的备份与恢复

 

数据加密传输

 

防火墙属于数据库网络环境安全

4.6

DBAS的实施阶段包括:创建数据库装载数据编写与调试应用程序数据库试运行

4.X

1. 死锁

死锁的发生在程序运行的过程中非常的致命,它会让程序陷入到无限等待的状态下,所以避免死锁发生很重要。

 

 

首先我们需要了解在什么时候会发生死锁,当张三访问资源1的时候会为它加锁,王八在访问资源2的时候为其加锁,这时候看起来互不干扰相安无事

 

 

但是一旦他们相互请求对方加锁的资源,此时张三需要等待王八解锁资源2才能继续接下来的业务,而王八也需要张三解锁资源1才能进行业务,这样他俩就会一直相互等待下去,从而产生死锁

 

为了避免发生这样的问题,我们有不同的解决方法来避免程序中的死锁。第一种方法是当张三访问资源的时候,一次请求需要的所有资源,然后一起加锁,这样可以避免事务执行的过程中请求不到需要的资源。还有一种方法是当用户请求不到需要的资源的时候,直接释放现有已经加锁的数据,让其它用户先使用完再进行请求

 

2. 活锁

顾名思义,活锁就是活着的锁(doge),这活锁和死锁最大的差距是,死锁没有办法自己解开,而活锁是有可能自己解开的。我们来看一下什么状况下会产生活锁

 

比如现在用户B正在访问资源,然后A等待资源解锁,但是当资源解锁之后迅速被用户C锁上了,就这样接着D、E、F等用户都来强资源,导致用户A一直等待但访问不到资源。

 

活锁这个“活”就体现在这种状况不是一直持续下去的,用户A还是有可能在等待一段时间后请求到该资源。关于活锁的解决方法可以参考CSMA/CD那种不断检测的机制。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值