【数据库原理与实践】第八章至第十章作业汇总(更新中)

news2024/9/20 14:31:55

填空题部分: 

Chp 8 安全性与完整性

part 1:

  1. 数据库的安全性是指保护数据库以防止不合法的使用所造成的( 数据泄露、更改或破坏  )。
  2. 计算机系统有三类安全性问题,即( 技术安全 )、管理安全和政策法规。
  3. 数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据,这主要通过数据库系统的( 存取控制  )机制实现。
  4. 完整性检查和控制的防范对象( 不正确的数据  ),防止它们进入数据库。安全性控制的防范对象是( 非法操作  ),防止他们对数据库数据的存取。
  5. TDI/TCSEC标准中关于“安全策略”内容中提出了DAC和( MAC  )两种存取控制技术。其中,DAC技术从安全级别( C2  )开始明确提出。
  6. 用户标识和鉴别的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法有通过输入( 用户标识  )和口令来鉴别用户。
  7. 用户权限是由两个要素组成的:( 数据对象  )和操作类型_ 。
  8. 在数据库系统中,定义存取权限称为( 授权  )。SQL语言用(  grant )语句向用户授予对数据的操作权限,用( revoke  )语句收回授予的权限。
  9. 常用的数据库安全控制的方法和技术有用户标识与鉴别、存取控制、视图机制 、审计和( 数据加密  )等。
  10. 在强制存取控制(MAC)中,仅当主体的许可证级别( 大于或等于  )客体的密级时,该主体才能读取对应的客体。
  11. 数据库的( 完整性  )是指数据的正确性和相容性。
  12. 数据库( 角色  )是被命名的一组与数据库操作相关的权限。
  13. 触发器(Trigger)是用户定义在关系表上的一类由( 事件  )驱动的特殊过程。
  14. 完整性检查和控制的防范对象是( 不正确的数据  ),防止它们进入数据库;安全性控制的防范对象是(  非法操作 ),防止他们对数据库数据的存取。
  15. 实体完整性的违约处理是( 拒绝处理  )。

part2:

  1. 事务  )是并发控制的基本单位
  2. 事务的一致性是指( 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态  )。
  3. 事务的( 持续性  )是指事务一旦提交,对数据库的改变是永久的
  4. 数据库中一个事务内部的操作及使用的数据不能被其他事务干扰,即并发执行的各个事务不能相互干扰,体现了事务的( 隔离  )特性。
  5. 多用户的数据库系统的目标之一是使它的每个用户好像面对着一个单用户的数据库一样使用它,为此数据库系统必须进行( 并发控制  )。
  6. 目前DBMS普遍采用封锁方法实现并发操作调度的可串行性,从而保证调度的正确性,其中封锁对象的大小称为( 封锁的粒度  )。
  7. 不允许任何其他事务对这个锁定目标再加任何类型的锁是( 排它锁  )。
  8. 封锁具有三个环节:第一个环节是申请加锁;第二个环节是获得锁 ;第三个环节是( 释放锁  ) 。
  9. 并发操作可能带来的数据不一致性,最根本的原因是违背了( 隔离性  )。
  10. 并发操作可能会导致:丢失修改、不可重复读和( 读脏数据  )。
  11. 解决死锁问题的方法有两类:死锁预防和( 允许发生死锁之后解除  )。
  12. 为保证数据库的可恢复性,登记日志文件时必须遵循两条原则:一是登记的次序严格按事务执行的时间次序;二是( 先写数据库后写日志文件  )。
  13. 事务故障的解决办法是恢复程序在不影响其他事务运行的情况下( 撤销该事务  )。
  14. 日志文件是用来记录对数据库的更新操作的文件。不同的数据库系统采用的日志文件格式不完全相同。日志文件主要有以记录为单位的日志文件和( 以数据块为单位的日志文件  )。
  15. 若事务在运行过程中,由于种种原因,使事务未运行到正常终止点之间就被撤消,这种情况就称为( 事务故障  )。
  16. 在数据库系统中,死锁属于( 事务  )故障。
  17. 介质故障  )会破坏磁盘上的物理数据库和日志文件,这是最严重的一种故障。恢复方法是重装数据库后备副本,然后重做已完成的事务。
  18. 数据库恢复是将数据库从( 错误  )状态恢复到某一已知的正确状态的功能。
  19. 检查点是( 数据库恢复  )技术中出现的概念。
  20. 数据库镜像功能用于( 数据库恢复  )。

Chp 9 数据库集群基础

  1. 集群(cluster)是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以(  单一系统 )模式加以管理。
  2. 对比数据库集群和分布式技术可知,( 数据库集群  )是以缩短单个任务的执行时间来提升效率的,而( 分布式技术  )则是通过提高单位时间内执行的任务数来提升效率。
  3. (  分布式计算)是集群系统中的核心技术。
  4. 高性能计算 )集群是并行计算的基础。
  5. 负载通常包括应用程序处理负载和( 系统  )负载。
  6. 负载均衡集群使负载可以在计算机集群中尽可能(  均匀 )处理。
  7. HA 高可用性集群,是指以减少( 中断时间  )为目标的服务器集群技术。
  8. MySQL Cluster  )是MySQL适合于分布式计算环境的高实用、高冗余版本。
  9. 活动第二服务器的“0共享”体系结构中,一般在磁盘子系统中采用( RAID  )技术或者采用冗余镜象磁盘来保证数据可用。
  10. 负载均衡集群一般用于( web  )服务器和代理服 务器等搭建。
  11. Mysql主从复制是将主数据库的DDL和DML操作通过( 二进制日志  )传到从服务器上,然后在从服务器上对这些日志重新执行,从而使得主从服务器的数据保持同步。
  12. 请补充下面MySQL主从复制原理图的数字填空内容,使其表达正确合理。

       这里,   (1):( 主数据库  )

(2):( 二进制日志  )

(3):( I/O线程  )

(4):( 日志  )

(5):( 从数据库  )

(6):( SQL线程  )

  1. MySQL数据库中,proxy实现数据库的“读写分离”,主服务器处理事务性更新操作,从服务器处理(  查询 )操作。
  2. CPU、网络、磁盘和内存等诸多因素里,影响集群性能的主要瓶颈是( 网络  )。 
  3. MySQL cluster采用的是一种( 分布式  )数据库架构设计。

Chp 10 非关系型数据库

  1. NoSQL数据库 泛指( 非关系型数据库  )。
  2. CAP原理三要素中的分区容忍性是指( 数据存储结构  )。
  3. MySQL和MongoDB之间最基本的区别是( 数据存储方式的不同  )。
  4. NoSQL两个核心理论基础是( BigTable  )和Dynamo。
  5. MongoDB底层使用松散的( 文档  )结构作为数据存储格式。
  6. MongoDB的文档是由多个( 键值对  )有序组合在一起的数据单元。
  7. MongoDB的默认数据访问端口是( 27017  )。
  8. MMAPv1和( WiredTiger  )是MongoDB使用的两个存储引擎。
  9. 试分别给出下面MongoDB查询表达式的等价SQL语句:

(1)db. stud.find({sage :{$gt:18, $lt:21}})

select * from stud where sage>18 and sage<21; 

(2)db. stud.aggregate([

{$match:{ssex: ""}},

{$group:{_id:"$sdept",count:{$sum:1},asage:{$avg:"$sage"}}},

{$project : {_id: 0,院系: "$_id",人数: "$count",平均年龄: "$asage"}}

]);

select sdept as ‘院系’ , count(*) as ‘人数’, avg(sage) as ‘平均年龄’ from stud where ssex=’’ group by sdept; 

  1. 一个在线考试系统,在设计存放试题的数据库时,如果使用一个名为questions的collections存放基础题、中档题和高难题,通过设置每一个实例的属性type:easy 或者 medium 或者 hard 来标识难易度信息,集合文档结构如下:

"no" : "1",

"title" : "下列选项中不属于javascript基本数据类型的选项是?",

"choose" : "A.boolen B.string C.function ",

"true" : "C",

"type" : "easy"

试设计以下问题的查询语句。

(1)查询10道type:easy的题目;

db.questions.find({type: "easy"}).limit(10); 

2)查询5true : C typeeasy的题目;    

              ( db.questions.find({true: "C", type: "easy"}).limit(5); 

(3)查询5道true : A type:hard的题目;

              ( db.questions.find({$or: [{true: "A"}, {type: "hard"}]}).limit(5); 

(4)追加下面这道题;                          

       99

集群的主要三种类型是

       A.HACLBCHPC  B. HACLBCSMP  C. HACSMPHPC  D. SMPLBCHPC

       答案:A

       难度:medium

   ( db.questions.insert({

  "no": "99",

  "title": "集群的主要三种类型是",

  "choose": "A.HACLBCHPC  B. HACLBCSMP  C. HACSMPHPC  D. SMPLBCHPC",

  "true": "A",

  "type": "medium"

}); 

(5)将标号no超过20、难度type:easy的题目,难度更改为medium;

db.questions.update ({$and: [{no: {$gt: "20"}}, {type: "easy"}]}, {$set: {type: "medium"}}); 

(6)删除no:8的题目。

db.questions.remove({no: "8"}); 


问答题部分:(待更新)

chp8:

1:分析数据库的安全性和完整性的联系和区别

联系:控制数据库中的数据

区别:安全性防范非法操作和未授权用户,完整性防范不符合语义的数据;安全性指防止不合法的使用造成的数据泄露、更改和破坏,完整性指数据的正确性和相容性

2:什么是数据库中的【自主存取控制方法】和【强制存取控制方法】

自主存取控制方法是定义各个用户对不同数据对象的存取对象,当用户对数据库访问时首先检查用户的存取权限,防止不合法用户对数据库的存取

强制存取控制方法是每一个数据对象被强制标注以一定的密集,每一个用户也被强制授予某一个级别的许可,系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象

3:分析实现数据库安全性控制的常用方法和技术

用户识别和鉴别;存取控制;视图机制;审计(用户对数据库的操作自动记录到审计日志中,数据库管理员审计跟踪信息);数据加密

4:统计数据库中存在的特殊的安全性问题

统计数据库允许用户查询聚集类型的信息,如合计、平均值、最大值、最小值等,不允许查询单个记录信息。但是,用户可以从合法的查询中推导出不合法的信息,即:可能存在隐蔽的信息通道,这是统计数据库中存在的特殊的安全性问题

5:分析DBMS完整性控制机制中完整性规则的主要构成

定义功能:提供定义完整性约束条件的机制

检查功能:检查用户发出的操作请求是否违背了完整性约束条件

违约反应:采取一定动作保证数据的完整性

6:关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?

实体完整性/用户定义完整性:拒绝执行

参照完整性:并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性

7: 说明解决SQL注入的有效途径

使用参数化查询;过滤特殊字符;设置权限;定期更新系统

8:分析触发器的工作原理

触发器是一种数据库对象,它是一个存储过程,只有当满足特定条件时才会自动触发执行。它可以用于监视数据库中的数据更改,并在满足特定条件时自动触发操作。常见的触发器包括在数据插入、更新或删除时触发。触发器通常用于实现数据完整性、业务规则或数据审计等需求。在触发器执行时,可以通过引用“inserted”或“deleted”虚拟表来获取有关已更改的数据的信息。 除了在数据变更时触发外,触发器还可以在特定操作之前或之后触发。例如,可以在执行INSERTUPDATE DELETE 操作之前使用触发器验证用户权限、执行复杂计算或设置相关字段的默认值

9:什么是数据库的审计功能,为什么要提供审计功能

审计:记录数据库系统的操作和行为,并提供审计日志供后续的审查和分析

原因:帮助管理员监控和控制数据库的访问权和操作权限,以及对访问信息进行跟踪和审查;及时发现和处理符合发的数据库操作,防止破坏数据完整性或安全性的风险等

10: 找出下列创建表的语句中涉及的所有约束定义并注释加以说明

CREATE TABLE SC(

Sno CHAR(9),   

         Cno CHAR(4),  

         Grade SMALLINT,    

         PRIMARY KEY(Sno,Cno),         

         FOREIGN KEY (Sno) REFERENCES Student(Sno)       

                 ON DELETE CASCADE     //级联删除,Student.Sno删除后SC.Sno也跟着删除

                 ON UPDATE CASCADE,   //级联更新,Student.Sno更新后SC.Sno也跟着更新

         FOREIGN KEY(Cno)  REFERENCES Course(Cno)     

                 ON DELETE NO ACTION  //拒绝删除操作,因为其破坏了实体完整性

                  ON UPDATE CASCADE   //级联更新,Course.Cno更新后SC.Cno也跟着更新

)

11:设有三个事务 T1、T2 和 T3,所包含的动作为:

T1:A=A+2

T2:A=A*2

T3:A=A*A

设 A 的初值为 0:

(1)若这三个事务允许并发执行,则有多少种可能的结果,请一一列举出来

(2)使用封锁协议,给出一个不产生死锁的可串行化调度

(1)6种可能。若舍去重复的结果,则有4种可能的正确结果:16842

调度可能

结果

T1->T2->T3

16

T1->T3->T2

8

T2->T1->T3

4

T2->T3->T1

2

T3->T1->T2

4

T3->T2->T1

2

(2)

T1

T2

T3

Xlock(A)

Xlock(A)

Xlock(A)

Read(A=0)

等待

等待

A=A+2

等待

等待

Write(A=2)

等待

等待

COMMIT

等待

等待

Unlock(A)

等待

等待

Read(A=2)

等待

A=A*2

等待

Write(A=4)

等待

COMMIT

等待

Unlock(A)

等待

Read(A=4)

A=A*A

Write(A=16)

COMMIT

Unlock(A)

12:考虑两个并发事务,A 和 B 初值均为 2,按两段锁协议执行事务 A 和事 务 B,给出一个可串行的调度,并给出执行结果

执行结果为:A=3B=4.

事务A

事务B

SLOCK B

XLOCK A

SLOCK A

READ(B=2)

A=B+1

WRITE(A=3)

COMMIT

UNLOCK A

UNLOCK B

XLOCK B

READ(A=3)

B=A+1

WRITE(B=4)

COMMIT

UNLOCK A

UNLOCK B

13:T1,T2是两个事务,图(a)(b)给出这两个事务的两种调度S1、S2,试举例分析调度S1和S2是否正确并说明理由

调度S1不正确。因为在S3T2进行了读B操作,在S5时进行了B=B-20的操作,但在S8T1进行了读B操作,但是T2直到S9时才写入B,这样会导致数据丢失,发生修改错误。

调度S2正确。因为在T1A和写A之间的阶段,T2没有对A进行读操作;在T2B和写B之间的阶段,T1没有对B进行读操作;在T2C和写C之间的阶段,T1没有对C进行读操作。整个调度中没有发生数据丢失的情况。

14:设T1,T2是如下两个事务:

T1:A=A+1;B=B*3;

T2:A=A*A;B=B+4;

A的初始值为8,B的初始值为2

(1)若这两个事务允许并发执行,则有多少种可能的正确结果,请列举出来;

(2)若这两个事务都遵守两段锁协议,请给出一个不产生死锁的调度。

1)有2种可能的正确结果,如下表所示:

调度可能

结果

AB
执行T1A的操作,A=8+1=9
执行T1B的操作,B=2*3=6
执行T2A的操作,A=9*9=81
执行T2B的操作,B=6+4=10

写入AB

A=81
B=10

AB
执行T2A的操作,A=8*8=64
执行T2B的操作,B=2+4=6
执行T1A的操作,A=64+1=65
执行T1B的操作,B=6*3=18

写入AB

A=65

B=18

chp9:

chp10:

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

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

相关文章

ROS:计算图

目录 一、ROS计算图简介二、节点&#xff08;Node&#xff09;三、节点管理器&#xff08;Master&#xff09;四、消息&#xff08;Message&#xff09;五、话题&#xff08;Topic&#xff09;六、服务&#xff08;Service&#xff09;七、动作&#xff08;Action&#xff09;八…

LabVIEW开发燃油阀自动性能测试系统

LabVIEW开发燃油阀自动性能测试系统 燃油阀是航空燃油控制系统的核心部件。燃油阀的流量滞后直接影响控制精度、稳定性和可靠性&#xff0c;而燃油阀生产的性能测试是至关重要的步骤。但是&#xff0c;由于流动滞后是非线性的&#xff0c;因此很难控制和进行实时测试。随着厂家…

CSS3-浮动

&#xff08;了解&#xff09;标准流&#xff1a;又称文档流&#xff0c;是浏览器在渲染显示网页内容时默认采用的一套排版规则&#xff0c;规定了应该以何种方式排列元素 常见标准流排版规则&#xff1a; 1. 块级元素&#xff1a;从上往下&#xff0c;垂直布局&am…

Matplotlib---柱形图

1. 绘制简单的柱状图 bar函数用于绘制柱状图。下面是bar函数的语法格式&#xff1a; bar(x, height, width0.8, bottomNone, aligncenter, dataNone, **kwargs)参数解释&#xff1a; x&#xff1a;指定每个柱子的x轴坐标。height&#xff1a;指定每个柱子的高度。width&…

TypeScript ~ 掌握基本类型 ②

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; TypeScript ~ TS &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &…

vue的学习

title: VUE 一、Vue简介 1.1 简介 ::: tip Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式的js框架&#xff0c;发布于 2014 年 2 月。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0…

F. Gardening Friends(树的直径)

Problem - 1822F - Codeforces 两位朋友Alisa和Yuki在他们的花园里种了一棵有n个顶点的树。树是一个无向图&#xff0c;没有循环、回路或多重边。这棵树中的每条边都有一个长度为k。最初&#xff0c;顶点1是树的根。 Alisa和Yuki种植这棵树不仅仅是为了好玩&#xff0c;而是想…

基于SpringBoot的流浪动物救助平台

1.引言 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于流浪动物救助平台所牵扯的管理及数据保存都是非常多的&#xff0c;例如首页、个人中心、会员管理、志愿者管理、流浪动物信息管理、领养信息管理、取消领养信息管理、志愿团队活动管理、志愿者申请表管理、…

【性能设计篇】数据库拓展

前两篇文章介绍了分布式存储的机制&#xff0c;为保证数据的高性能以及可拓展&#xff0c;采用分片/分区机制。为保证数据的高可用性&#xff0c;采用复制/镜像机制存储数据。一份数据存储多份。而这两种方式在数据中&#xff0c;就是分片/分区机制。分库分表/读写分离。 读写…

掌握这个关键技术,让你的APP开发事半功倍!——Flutter与其他方案的区别

Flutter动机是什么&#xff0c;解决啥痛点&#xff1f;优势在哪里&#xff1f; 介绍Flutter的历史背景和运行机制&#xff0c;并以界面渲染过程为例与你讲述其实现原理。 1 Flutter的历史背景 为不同的操作系统开发拥有相同功能的应用程序&#xff0c;开发人员只有两个选择&…

gitTortoise图形化工具下载步骤

一&#xff0c;简介 本文主要介绍如何下载安装gitTortoise图形化工具来管理和提交代码。 二&#xff0c;步骤介绍 2.1 安装包下载 下载地址&#xff1a;https://download.tortoisegit.org/tgit/ 打开后&#xff0c;界面如下&#xff1a; 点击选择最新的稳定release版本&am…

二分查找算法及实现

概念 二分查找算法也成为折半查找,是一种非常高效的工作于有序数组的查找算法. 实现 需求 现有一个有序数组 arr [1,2,3,4,5,6,7,8,9], 目标值target 2 ,要求返回目标值target在数组arr中的索引,没有则返回-1; 代码实现 private int binarySearch(int[] arr, int target)…

Android加快你的编译速度

工欲善其事&#xff0c;必先利其器。如果每次运行项目都要花费5-10分钟&#xff0c;那人的心态都要崩了。 Gradle构建流程 Gradle 的生命周期可以分为大的三个部分&#xff1a;初始化阶段&#xff08;Initialization Phase)&#xff0c;配置阶段&#xff08;Configuration Pha…

Linux学习之网络管理和配置文件

在CentOS 7中有两种网络配置方法&#xff1a;SysV&#xff08;也称为Sys 5&#xff09;和Systemd。 SysV的命令如下&#xff1a; service network start|stop|restart|status chkconfig --list network Systemd的命令如下&#xff1a; systemctl list-unit-files NetworkManage…

Linux->线程同步

目录 前言&#xff1a; 1 线程同步引入 2 条件变量 2.1 线程饥饿 2.2 条件变量接口 2.3 添加条件变量 3 生产者和消费者模型 前言&#xff1a; 本篇主要讲解了关于线程同步的相关知识&#xff0c;还有生产者和消费者模型的认识和使用。 1 线程同步引入 在讲解线程同步之…

【Unity3D】基于深度和法线纹理的边缘检测方法

1 前言 边缘检测特效中使用屏后处理技术&#xff0c;通过卷积运算计算梯度&#xff0c;检测每个像素周围像素的亮度差异&#xff0c;以识别是否是边缘像素&#xff1b;选中物体描边特效中也使用了屏后处理技术&#xff0c;通过 CommandBuffer 获取目标物体渲染后的模板纹理&…

学习spring: 1.引子

问题 我们来看一段代码: package org.malred;import org.malred.entity.Car; import org.malred.entity.Tire;/*** Hello world!**/ public class App {public static void main(String[] args) {Car car new Car();Tire lt new Tire();car.setLeftTire(lt);Tire rt new T…

状态估计器

文章目录 [toc] 1.状态空间模型1.1.连续状态空间模型1.2.离散状态空间模型 2.矩阵微积分3.二次规划4.概率论4.1.期望与方差4.2.独立事件4.3.向量随机变量4.4.噪声与协方差矩阵4.5.条件概率 5.最小二乘估计5.1.加权最小二乘估计5.2.递推最小二乘估计5.3.状态向量和协方差随时间变…

深入理解WebSocket,让你入门音视频

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

Android 使用okhttp监控网络数据

这里使用Okhttp写了一个demo来监听网络请求过程中的一系列数据&#xff0c;包括当前网络类型、请求体、响应体大小&#xff0c;url&#xff0c;请求方式&#xff0c;当然还有本次核心获取域名解析时长&#xff0c;建立连接时长&#xff0c;保持连接时长&#xff0c;请求总时长这…