《数据库》复试问答题总结

2024-03-15 15:04

本文主要是介绍《数据库》复试问答题总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

并发一致性问题有那些?:
在并发环境下,事务间的隔离性很难保证,因此会出现并发一致性问题。

并发一致性问题主要有四类,即:丢失修改问题,读脏数据问题,不可重复读问题,幻影读问题。

丢失修改问题:T1和T2两个事务都对同一数据进行修改,T1先修改,T2随后修改,T2的修改覆盖了T1的修改。
读脏数据问题:T1修改了一个数据,T2随后读取了这个数据,但是T1又撤销了修改,此时T2读取到的数据就是脏数据。
不可重复读问题:T1读取了一个数据,T2随后修改了这个数据,T1再次读取这个数据时与之前读取的值不同。
幻影读问题:T1读取一个范围内的数据,T2随后插入了该范围内的一个数据,T1再次读取这个范围内的数据时,和第一次读的结果不同。

白盒测试主要有哪些覆盖?:
(1)语句覆盖 使程序中的每个可执行语句都能执行一次的测试用例

(2)判定覆盖(分支覆盖) 对于判断语句,在设计用例的时候,要设计判断语句结果为True和False的两种情况

(3)条件覆盖 设计用例时针对判断语句里面每个条件表达式true 和 false各取值一次,不考判断语句的计算结果

(4)判定条件覆盖(分支条件覆盖) 设计测试用例时,使得判断语句中每个条件表达式的所有可能结果至少出现一次,每个判断语句本身所有可能结果也至少出现一次。

(5)条件组合覆盖 设计测试用例时,使得每个判断语句中条件结果的所有可能组合至少出现一次

(6)路径覆盖 设计测试用例时,覆盖程序中所有可能的执行路径

覆盖方法的优点:这种覆盖方法可以对程序进行彻底的测试用例覆盖,比前面讲的五种方法覆盖度都要高。

覆盖方法的缺点:于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。路径覆盖虽然是一种比较强的覆盖,但未必考虑判断语句中条件表达式结果的组合,并不能代替条件覆盖和条件组合覆盖。

不符合范式的关系,会产生很多异常,主要有那些异常?:
不符合范式的关系,会产生很多异常,主要有以下四种异常:

冗余数据:例如 某个数据出现了两次。
修改异常:修改了一个记录中的信息,但是另一个记录中相同的信息却没有被修改。
删除异常:删除一个信息,那么也会丢失其它信息。例如删除了 数据A 需要删除第一行和第三行,那么 数据B的信息就会丢失。
插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。

范式有那些,具体讲讲?:
**第一范式定义:**数据库表中的所有字段都是单一属性,不可再分的;这个单一属性是由基本的数据类型所构成的;如整数、浮点数、字符串等;换句话说:第一范式要求数据库中的表都是二维表;数据库中的表都是符合第一范式要求的。

**第二范式定义:**数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。部分函数依赖是指存在着组合关键字中的某一关键字决定非关键字的情况。换句话说: 所有单关键字段的表都符合第二范式。

**第三范式:**第三范式是在第二范式的基础之上定义的。如果数据表中不存在非关键字段对任意候选关键字的传递函数依赖则符合第三范式

BC范式(Boyce.Codd)定义:在第三范式的基础之上,数据库表中如果不存在任何字段对任一候选关键字段的传递函数依赖则符合BC范式。也就是说如果是复合关键字,则复合关键字之间也不能存在函数依赖关系。
 

什么是计算机系统完整性?完整性约束条件作业的对象?
数据的完整性是指数据的正确性和相容性,防止不合语义的数据进入数据库。
**列:**对属性的取值类型、范围、精度等的约束条件
**元组:**对元组中各个属性列间的联系的约束
**关系:**对若干元组间、关系集合上以及关系之间的联系的约束

E-R 图的三种冲突?:

存在的冲突

(1).命名冲突:项名、项目名异名同义,统一命名为项目名;

(2).结构冲突:项目在两个局部 ER 图中,一个做多值属性,一个作实体。

(3).属性冲突。统一 为实体;运动队在两个局部图里的结构不一致也需统一。

视图的作用?:

作用:

①简化了操作,把经常使用的数据定义为视图。

②安全性,用户只能查询和修改能看到的数据。

③逻辑上的独立性,屏蔽了真实表的结构带来的影响。

数据库安全性控制的一般方法有那些?:
(1)环境级:对计算机系统的机房和设备加以保护,防止物理破坏。
(2)职员级:对数据库系统工作人员,加强劳动纪律和职业道德教育,并正确的授予其访问数据库的权限。
(3)操作系统级:防止未经授权的用户从操作系统层着手访问数据库。
(4)网络级:由于数据库系统允许用户通过网络访问,因此,网络软件内部的安全性对数据库的安全是很重要的。
(5)数据库系统级:检验用户的身份是否合法,检验用户数据库操作权限是否正确。
本节主要讨论数据库系统级的安全性问题。
数据库系统中一般采用用户标识和鉴别、存取控制、视图以及密码存储等技术进行安全控制。
 

数据库故障可分为?:
一、常见的四种故障
  (1)事务内部的故障:事务内部故障可分为预期的和非预期的,其中大部分的故障都是非预期的。
  (2)系统故障:系统故障也称为软故障,是指数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电灯情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障。
  (3)介质故障:介质故障也称为硬故障,主要指数据库在运行过程中,由于磁头碰撞、磁盘损坏、强磁干扰等情况,使得数据库中的数据部分或全部丢失的一类故障。
  (4)计算机病毒故障:计算机病毒故障是一种恶意的计算机程序,它可以像病毒一样繁殖和传播,在对计算机系统造成破坏的同时也可能对数据库系统造成破坏(破坏方式以数据库文件为主)。
二、四种故障的解决方法
  (1)预期的事务内部故障:将事务回滚,撤销对数据库的修改。
  (2)非预期的事务内部故障:强制回滚事务,在保证该事务对其他事务没有影响的条件下,利用日志文件撤销其对数据库的修改。
  (3)系统故障:待计算机重新启动之后,对于未完成的事务可能写入数据库的内容,回滚所有未完成的事务写的结果;(即撤销所有未提交的事务,重做所有已提交的事务)。
  (4)介质故障的软件容错:使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态。
  (5)介质故障的硬件容错:采用双物理存储设备,使两个硬盘存储内容相同,当其中一个硬盘出现故障时,及时使用另一个备份硬盘。
  (6)计算机病毒故障:使用防火墙软件防止病毒侵入,对于已感染病毒的数据库文件,使用杀毒软件进行查杀,如果杀毒软件杀毒失败,此时只能用数据库备份文件,以软件容错的方式恢复数据库文件。
  这四类故障虽然有所不同,但是对数据库的影响无外乎是对数据库本身的破坏或对数据库中数据的破坏,其恢复的基本原理概况起来也就是利用存储在别处的冗余数据来重建数据库中的数据。

 

这篇关于《数据库》复试问答题总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/812369

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v