数据库复试问题总结
数据库复试问题
由《数据库系统概论(第5版)》总结而来,用于本人研究生复试准备。也欢迎各位准研究生们学习使用。
文章目录
- 数据库复试问题
- 1、三级模式结构及二级映射有什么优点?
- 2、关系模型中的完整性约束是哪几类?
- 3、SQL的特点?
- 4、SQL语言的分类
- 5、等值连接和自然连接的区别是什么?
- 6、外连接是什么?
- 7、索引的作用?和它的优点缺点是什么?
- 8、数据库中常用的索引有哪些?
- 9、视图是什么?有何作用?
- 10、数据库的安全性是指什么?有哪些安全性技术?
- 11、存取控制是指什么?主要包括哪两部分?有哪两类方法?
- 12、视图机制是如何对数据库实现安全性控制的?
- 13、审计功能是如何对数据库实现安全性控制的?
- 14、数据库的完整性是指什么?
- 15、什么是断言?
- 16、什么是触发器?触发器的作用?
- 17、规范化过程中,逐级依次消除了何种函数依赖?
- 18、数据库设计的基本步骤是什么?
- 19、概念模型有什么作用?
- 20、合并E-R图时主要包括哪几种冲突?
- 21、一个实体型转换为一个关系模式有哪几种情况?
- 22、关系数据库中查询处理的步骤是什么?
- 23、事务是什么?ACID特性包括?
- 24、并发控制的主要技术有哪些?
- 25、什么是锁?有哪两种封锁类型?
- 26、简要概括一、二、三级封锁协议
- 27、并发事务问题
- 28、冗余数据、修改异常、删除异常和插入异常
- 29、简述数据字典
- **30、事务隔离级别**
1、三级模式结构及二级映射有什么优点?
(1)外模式:又称用户模式,它是数据库用户能够看见和使用的数据视图。
(2)模式:是对数据库中全体数据的逻辑结构和特征的描述。
(3)内模式:又称为存储模式,它是数据物理结构和存储方式的描述。
一个数据库只有一个模式和一个内模式,可以有多个外模式。
外模式/模式映像的优点:当模式改变时,通过数据库管理员对外模式/模式映像做相应的改变,外模式可以保持不变。应用程序是根据外模式而编写的,因而应用程序不必修改,保证了数据的逻辑独立性;
内模式/模式映像的优点:当数据库的存储结构改变时,通过对模式/内模式映射作相应的改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据的物理独立性。
2、关系模型中的完整性约束是哪几类?
实体完整性:关系模式中的主码不能为空值;
参照完整性:关系模式中的外码只能是空值或者另一关系模式的主码;
用户定义完整性:关系模式中针对某一属性的约束。
3、SQL的特点?
(1)综合统一。集DCL,DML,DDL功能于一体;
(2)高度非过程化。只需要提出“做什么”,而不需要指明怎么做;
(3)面向集合的操作方式。
(4)提供多种使用方式。既可以作为独立的语言进行交互,又可以作为嵌入式语言嵌入到更高级的语言程序中进行操作;
4、SQL语言的分类
- DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
- DML: 数据操作语言,用来对数据库表中的数据进行增删改
- DQL: 数据查询语言,用来查询数据库中表的记录
- DCL: 数据控制语言,用来创建数据库用户、控制数据库的访问权限
5、等值连接和自然连接的区别是什么?
自然连接是等值连接的一种特殊情况;
等值连接要求连接的是值相等的分量,两个关系中可以没有相同的属性;进行自然连接的两个关系中必须有相同的属性。
等值连接不要求去掉重复属性列;自然连接时需要除掉重复的属性列。
6、外连接是什么?
外连接是指两个表在进行操作时,不仅返回符合连接的元组,还返回不符合条件的一些元组;
左外连接是指列出左表的全部元组,若右表无对应记录,则为NULL;
右外连接是指列出右表的全部元组,若左表无对应记录,则为NULL;
全外连接是左外连接+右外连接。
7、索引的作用?和它的优点缺点是什么?
当表的数据量比较大时,查询操作比较耗时,建立索引可以加快查询速度。
优点:加速查询速度;
缺点:索引需要占一定的存储空间,且基本表更新时需要维护索引表。
8、数据库中常用的索引有哪些?
B+树索引:B+树是对B树优化处理了的多路搜索树,与B树的区别在于,B树的每个结点都可以存储数据,而B+树只有叶子结点可以存储数据,且每个叶子结点都用链表链接。在数据库的查询中一般都是批量查询数据,采用B+树一次查询多条时,确定首尾位置,便可以方便的确定多条数据位置,提高查询效率。
Hash索引:通过一定的算法计算出哈希值,然后映射出对应的数据存储位置。检索速度快,但是哈希值可能存在碰撞。
9、视图是什么?有何作用?
视图是从一个或几个基本表中导出的表,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据。基本表中的数据发生变化时,从视图中查询出来的数据也就随之发生变化。
作用:
能够简化用户的操作;
使用户能以多种角度看待同一数据;
在一定程度上提供了数据的逻辑独立性;
能够对秘密数据提供安全保护;
10、数据库的安全性是指什么?有哪些安全性技术?
数据库的安全性是指保护数据库不被恶意破坏和非法存取。
安全性技术:用户标识和鉴别、多层存取控制、审计、视图、数据加密。
11、存取控制是指什么?主要包括哪两部分?有哪两类方法?
存取控制是指确保只授权给有资格的用户访问数据库的权限,且令所有未被授权的人员无法接近数据。
两个部分:定义用户权限和合法权限检查;
两种方法(两种不能都用):
自主存取控制(DAC):用户对不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限
强制存取控制(MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予一定级别的许可证,只有具有合法许可证的用户才可以进行存取。
12、视图机制是如何对数据库实现安全性控制的?
可以对不同的用户定义不同的视图,也就是说,通过视图机制把要保密的数据对无权存取的用户隐藏起来。
13、审计功能是如何对数据库实现安全性控制的?
审计功能是把用户对数据库的一系列操作自动记录到审计日志中,审计员可以利用审计日志监控数据库中的各种行为,找出导致数据库发生异常的事件。
14、数据库的完整性是指什么?
数据库的完整性是指数据的正确性和相容性,防止数据库中存在不正确的数据。
15、什么是断言?
断言是指更具有一般性的约束,断言创建后,任何涉及到断言中的关系的操作都会引发数据库对断言的检查,任何使断言为假的操作都会被拒绝执行。
16、什么是触发器?触发器的作用?
触发器是用户定义在关系表上的一类由事件驱动的特殊过程,类似于约束,但是比约束更灵活,是保证数据库完整性的一种方法。任何用户对表进行增删改操作都会激活相应的触发器,之后触发器会对数据库进行相应的检查和操作。
17、规范化过程中,逐级依次消除了何种函数依赖?
候选码(候选键):唯一标识元组的属性或属性集,可能不止一个。选取其中一个作为主码(主键)。
主属性:包含在任何一个候选码中的属性。反之非主属性。
由1NF到2NF,消除了非主属性对候选码的部分函数依赖; 即非主属性完全函数依赖于候选码。
由2NF到3NF,消除了非主属性对候选码的传递函数依赖;
由3NF到BCNF,消除了主属性之间的部分函数依赖和传递函数依赖。
18、数据库设计的基本步骤是什么?
需求分析:了解和分析用户需求(建立数据字典);
概念结构设计:根据用户需求转换成E-R图;
逻辑结构设计:将E-R图转换为关系模型;
物理结构设计:设计存储结构和存取方法;
数据库实施阶段:编写数据库,编写和调试应用程序;
数据库运行和维护:正式投入运行。
19、概念模型有什么作用?
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。(用E-R图来描述现实世界的概念模型)
20、合并E-R图时主要包括哪几种冲突?
属性冲突。不同的实体对同一属性的定义不同;
命名冲突。同名异义、异名同义;
结构冲突。同一实体在不同的局部E-R图中有不同的抽象。
21、一个实体型转换为一个关系模式有哪几种情况?
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并;
一个m:n联系可以转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。
22、关系数据库中查询处理的步骤是什么?
查询分析:对查询语句进行词法分析、语法分析;
查询检查:对合法的查询语句进行语义检查;
查询优化:选择一个高效执行的查询处理策略;
查询执行:依据优化得到的执行策略生成查询执行计划,并生成相应代码。
23、事务是什么?ACID特性包括?
事务是数据库进行操作的一个基本单位。
ACID特性包括:
原子性(Atomicity):事务是一个不可分割的单位,要么全做,要么全不做;
一致性(Consistency):事务完成后,必须使所有数据都保持一致状态
隔离性(Isolation):一个事务的执行不受外部并发操作影响
持久性(Durability):一旦事务被提交,它对数据库的改变就是永久的。
事务的基本操作:回滚(roolback)和提交(commit).
24、并发控制的主要技术有哪些?
有封锁、时间戳、乐观控制法、和多版本并发控制等。
25、什么是锁?有哪两种封锁类型?
锁是最常用的并发控制技术,是防止其他事务访问指定资源,实现并发控制的一种手段。
排他锁(X写锁):当数据被加上写锁,其他事务不能对该数据进行读和写;
共享锁(S读锁):当数据被加上读锁,允许其他事务对该数据进行读,不允许写。
26、简要概括一、二、三级封锁协议
一级封锁协议:事务在修改数据之前加写锁,直到事务结束才释放。该协议可以防止丢失修改;
二级封锁协议:在一级封锁协议的基础上,加上了事务在读取数据之前对其加读锁,读完后即可释放读锁。该协议避免了读脏数据;
三级封锁协议:在一级封锁协议的基础上,加上了事务在读取数据之前对其加读锁,直到事务结束才释放。该协议解决了不可重复读问题。
27、并发事务问题
丢失修改:指事务1和事务2同时读入相同的数据并进行修改,事务2提交的结果破坏了事务1提交的结果,导致事务1进行的修改丢失。
问题 | 描述 |
---|---|
脏读 | 一个事务读到另一个事务还没提交的数据 |
不可重复读 | 一个事务先后读取同一条记录,但两次读取的数据不同 |
幻读 | 一个事务按照条件查询数据时,没有对应的数据行,但是再插入数据时,又发现这行数据已经存在 |
28、冗余数据、修改异常、删除异常和插入异常
冗余数据:例如 学生-2 出现了两次。
修改异常:修改了一个记录中的信息,但是另一个记录中相同的信息却没有被修改。
删除异常:删除一个信息,那么也会丢失其它信息。例如删除了课程-1需要删除第一行和第三行,那么学生-1的信息就会丢失。
插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。
为了解决这些问题,从而引入了规范化。
29、简述数据字典
数据字典的内容包括数据项、数据结构、数据流、数据存储、处理过程五个部分。
数据字典是对数据库中数据的描述,即元数据,而不是数据本身。数据字典在需求分析阶段建立。
30、事务隔离级别
事务隔离级别 | 读脏 | 不可重复读 | 幻读 |
---|---|---|---|
(1)读未提交(read-uncommitted) | 是 | 是 | 是 |
(2)不可重复读(read-committed) | 否 | 是 | 是 |
(3)可重复读(repeatable-read)(默认) | 否 | 否 | 是 |
(4)串行化(serializable) | 否 | 否 | 否 |
相关文章:
数据库复试问题总结
数据库复试问题 由《数据库系统概论(第5版)》总结而来,用于本人研究生复试准备。也欢迎各位准研究生们学习使用。 文章目录数据库复试问题1、三级模式结构及二级映射有什么优点?2、关系模型中的完整性约束是哪几类?3、SQL的特点?…...
Linux操作系统安装——服务控制
个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。座右铭:海不辞水,故能成其大;山不辞石,故能成其高。个人主页:小李会科技的…...
【C语言】编译+链接
一、程序的翻译环境和执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。详解编译链接翻译环境1.组成一个程序的每个源文件通过…...
为「IT女神勋章」而战
大家好,我是空空star,今天为「IT女神勋章」而战 文章目录前言一、IT女神勋章二、绘制爱心1.htmlcssjs来源:一行代码代码效果2.python来源:C知道代码效果3.go来源:复制代码片代码效果4.java来源:download代码…...
JS 动画 之 setInterval、requestAnimationFram
帧率:一秒中内页面刷新的次数,一般为60FPS,每一帧的时间是1000/6016.67ms setInterval 当我们使用setInterval做动画时,有两点会影响动画效果 由于setInterval是异步任务(宏任务),会放到异步队…...
【LeetCode——排序链表】
文章目录排序链表二、解题思路:二.实现的代码总结:排序链表 一道链表排序题,链接在这里 二、解题思路: 解题思路:使用归并排序(用递归实现) 第一步:先找到链表的中间节点 第二步…...
二叉树的遍历(前序、中序、后序)| C语言
目录 0.写在前面 1.前序遍历 步骤详解 代码实现 2.中序遍历 步骤详解 代码实现 3.后序遍历 步骤详解 代码实现 0.写在前面 认识二叉树结构最简单的方式就是遍历二叉树。所谓遍历二叉树就是按照某种特定的规则,对二叉树的每一个节点进行访问,…...
【建议收藏】深入浅出Yolo目标检测算法(含Python实现源码)
深入浅出Yolo目标检测算法(含Python实现源码) 文章目录深入浅出Yolo目标检测算法(含Python实现源码)1. One-stage & Two-stage2. Yolo详解2.1 Yolo命名2.2 端到端输入输出2.3 Yolo中的标定框2.4 Yolo网络结构2.5 Yolo的算法流…...
Vue常见的事件修饰符
前言 vue一共给我们准备了6个事件修饰符,前三个比较常用,后三个少见,这里着重讲下前三个 1.prevent:阻止默认事件(常用) 2. stop:阻止事件冒泡(常用) 3. once:事件只触发一次(常用) 4.captrue:使用事件的捕捉模式(不常用) 5.self:只有event…...
【卷积神经网络】激活函数 | Tanh / Sigmoid / ReLU / Leaky ReLU / ELU / SiLU / GeLU
文章目录一、Tanh二、Sigmoid三、ReLU四、Leaky ReLU五、ELU六、SiLU七、Mish本文主要介绍卷积神经网络中常用的激活函数及其各自的优缺点 最简单的激活函数被称为线性激活,其中没有应用任何转换。 一个仅由线性激活函数组成的网络很容易训练,但不能学习…...
刷题记录:牛客NC24048[USACO 2017 Jan P]Promotion Counting 求子树的逆序对个数
传送门:牛客 题目描述 奶牛们又一次试图创建一家创业公司,还是没有从过去的经验中吸取教训–牛是可怕的管理者! 为了方便,把奶牛从 1∼n1\sim n1∼n 编号,把公司组织成一棵树,1 号奶牛作为总裁(这棵树的根…...
MpAndroidChart3最强实践攻略
本篇主要总结下Android非常火爆的一个三方库MpAndroidChart的使用。可能在大多数情况下,我们很少会在Android端去开发图表。但如果说去做一些金融财经类、工厂类、大数据类等的app,那么绝对会用到MpAndroidChart。 一、前言 2018年,那年的我…...
Spring笔记(9):事务管理ACID
一、事务管理 一个数据库事务是一个被视为单一的工作单元操作序列。 事务管理有四个原则,被成为ACID: Atomicity 原子性—— 事务作为独立单元进行操作,整个序列是一体的,操作全都成功或失败。Consistency 一致性—— 引用完整…...
io流 知识点+代码实例
需求 : 如何实现读写文件内部的内容?流 : 数据以先入先出的方式进行流动相当于管道,作用用来传输数据数据源-->流-->目的地流的分类 :流向分 : 以程序为中心输入流输出流操作单元 :字节流 : 万能流字符流 : 只能操作纯文本文件功能分 :节点流 : 真实实现读写的功能流(包…...
【MySQL】P8 多表查询(2) - 连接查询 联合查询
连接查询以及联合查询多表查询概述连接查询内连接隐式内连接显式内连接外连接左外连接右外连接自连接联合查询多表查询概述 建表语句见上一篇博文:https://blog.csdn.net/weixin_43098506/article/details/129402302 e.g.e.g.e.g. select * from emp, dept where e…...
QML动画(Animator)
在Qt5.2之后,引入Animator动画元素。这种方式可以直接所用于Qt Quick的场景图形系统,这使得基于Animator元素的动画及时在ui界面线程阻塞的情况下仍然能通过图形系统的渲染线程来工作,比传统的基于对象和属性的Animation元素能带来更好的用户…...
Git 分支操作【解决分支冲突问题】
1. 什么是分支 在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学…...
盘点全球10大女性技术先驱
盘点全球10大女性技术先驱 人们普遍认为技术是男性主导的领域,但事实,技术或编程与性别无关,几乎任何人都可以成为技术大神。已经有很多案例证明女性同样可以在技术领域施展才能。在女神节来临之际,我为大家盘点一下为编程做出卓越…...
C++之dynamic_cast
C之dynamic_cast前言dynamic_castNote:示例:前言 dynamic_cast运算符牵扯到的面向对象的多态性跟程序运行时的状态,所以不能完全的使用传统的转换方式来替代。因此是最常用,最不可缺少的一个运算符,与static_cast一样,dynamic_cas…...
JavaScript 箭头函数、函数参数
箭头函数: 箭头函数是一种更加简洁的函数书写方式箭头函数本身没有作用域(无this)箭头函数的this指向上一层,上下文决定其this基本语法:参数 > 函数体 a. 基本用法 let fn v > v; //等价于 let fn function(…...
JavaScript_Object.keys() Object.values()
目录 一、Object.keys() 二、Object.values() 一、Object.keys() Object.keys( ) 的 用法 : 作用 :遍历对象 { } 返回结果:返回 对象中 每一项 的 key 值 返回值 : 是一个 *** [ 数 组 ] *** 例子 ( 1 ) : <script>// 1. 定义一个对象var obj …...
扬帆优配|高送转+高分红+高增长潜力股揭秘
高送转且高分红的高增加股票,有望跑赢大盘。 此前七连阴的泽宇智能,今日早盘大幅高开。到上午收盘,该股飙涨9.3%,位居涨幅榜前列。音讯面上,3月7日晚间,泽宇智能发表2022年年报,年报显现&#x…...
基于transformer的多帧自监督深度估计 Multi-Frame Self-Supervised Depth with Transformers
Multi-Frame Self-Supervised Depth with Transformers基于transformer的多帧自监督深度估计0 Abstract 多帧深度估计除了学习基于外观的特征外,也通过特征匹配利用图像之间的几何关系来改善单帧估计。我们采用深度离散的核极抽样来选择匹配像素,并通过一…...
设计模式: 单例模式
目录单例模式应用场景实现步骤涉及知识点设计与实现单例模式 通过单例模式的方法创建的类在当前进程中只有一个实例; 应用场景 配置管理 日志记录 线程池 连接池 内存池 对象池 消息队列 实现步骤 将类的构造方法定义为私有方法 定义一个私有的静态实例 提供一…...
idea编辑XML文件出现:Tag name expected报错
说明 Tag name expected解释其实就是:需要标记名称,也就是符号不能直接使用的意思 XML (eXtensible Markup Language) 是一种标记语言,用于存储和传输数据。在 XML 中,有些字符被视为特殊字符,这些字符在 XML 中具有…...
第十三届蓝桥杯省赛C++ A组 爬树的甲壳虫(简单概率DP)
题目如下: 思路 or 题解: 概率DP 状态定义: dp[i]dp[i]dp[i] 表示从树根到第 iii 层的期望 状态转移: dp[i](dp[i−1]1)∗11−pdp[i] (dp[i - 1] 1) * \frac{1}{1-p}dp[i](dp[i−1]1)∗1−p1 这个式子的意思是:…...
手动集成Tencent SDK遇到的坑!!!
手动集成的原因 由于腾讯未把Tencent SDK上传到Github中,所以我们不能通过Cocoapods的方式集成,只能通过官方下载其SDK手动集成。 Tencent SDK手动集成步骤 1.访问腾讯开放平台SDK下载界面,找到并下载iOS_SDK_V3.5.1。(目前最新…...
三天吃透mybatis面试八股文
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…...
SpringBoot整合Quartz以及异步调用
文章目录前言一、异步方法调用1、导入依赖2、创建异步执行任务线程池3、创建业务层接口和实现类4、创建业务层接口和实现类二、测试定时任务1.导入依赖2.编写测试类,开启扫描定时任务3.测试三、实现定时发送邮件案例1.邮箱开启IMAP服务2.导入依赖3.导入EmailUtil4.编…...
Golang 中 Slice的分析与使用(含源码)
文章目录1、slice结构体2、slice初始化3、append操作4、slice截取5、slice深拷贝6、值传递还是引用传递参考文献众所周知,在golang中,slice(切片)是我们最常使用到的一种数据结构,是一种可变长度的数组,本篇…...
郴州市做网站/seo怎么收费
按照常理,对于某一单元行需要显示时,使用:display:block属性,不需要显示时使用display:none属性,而且这样做在IE浏 览器中显示正常,没有任何问题。 但是当用Firefox浏览时却出现了布局错乱的问题ÿ…...
网站建设系统规划方案/济南seo公司报价
唐僧团队通常被认为是一个成功的团队,因为他们是不同风格的成员组合在一起,经过了磨合后,同心协力达成了最初的目标,封神成佛。一个成功的团队,未必是一个优秀的Scrum团队。如果站在Scrum的角度来检视唐僧团队…...
建外贸网站需要多少钱/培训网站推荐
干web报名时间。通常,他们需要json转换为Object/list/map要么Object/List/map转换为json,由能够编写代码的简单包装非常多,以减轻负担。本文将给出json的一系列的方法转换。 闲话不 讲。直接在代码: 首先Object /List /Map转化为J…...
济南网站外包/最佳的资源磁力搜索引擎
Android的对话框有两种:PopupWindow和AlertDialog。它们的不同点在于:AlertDialog的位置固定,而PopupWindow的位置可以随意AlertDialog是非阻塞线程的,而PopupWindow是阻塞线程的PopupWindow的位置按照有无偏移分,可以…...
java 的 wordpress/百度指数关键词未收录怎么办
本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。...
网站日志304/石家庄热搜
文章目录题目描述思路分析数据结构选择字符前后的确定解题代码复杂度分析Github源码题目描述 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回-1. 案例: s “leetcode” 返回0 s “loveleetcod…...