考研复试--数据库

1.数据库管理系统的功能是什么?

1.数据定义功能
2.数据组织,存储与管理功能
3.数据操纵功能
4.数据库事务管理与运行管理
5.数据库建立与维护功能

2.数据库系统的特点是什么?

1.数据结构化
2.数据的共享性高,冗余度低
3.数据的独立性高
4.数据由DBMS统一管理和控制

3.DBA(数据库管理员)的职责是什么?

DBA负责全面管理和控制数据库系统,职责如下:
1.决定数据库中的信息内容和结构
2.决定数据库的存取结构和存取策略
3.定义数据库的安全性要求以及完整性约束条件
4.监控数据库的使用与运行
5.数据库的改进与重组,重构

4.三级模式结构是什么?二级映像有什么优点?

三级模式结构包括:内模式,模式以及外模式
内模式描述数据的存储结构以及存取方式
模式描述数据的逻辑结构和特征
外模式描述局部数据的逻辑结构和特征
二级映像包括:外模式/模式映像,模式/内模式映像
外模式/模式映像优点:保证了数据的逻辑独立性,即模式发生改变时,外模式/模式映像需要修改,而外模式不需要修改,由于程序是按照外模式编写的,所以程序也不需要修改
模式/内模式映像优点:保证了数据的物理独立性,即内模式发生改变时,模式/内模式映像需要进行修改,而模式不需要修改

5.基本的关系操作有哪些?关系数据语言的分类?

基本的关系操作包括:选择,投影,并,差,笛卡尔乘积
关系数据语言包括:关系代数,关系演算,SQL

6.关系模式完整性约束

实体完整性:关系模式中的主码不能为空值
参照完整性:关系模式中外码的值只能取空值或被参照关系模型的已有的值
用户定义完整性:关系模式中对某一具体属性的约束

7.笛卡尔乘积,连接,等值连接,自然连接,外连接

笛卡尔乘积:假设有两个关系模式A与B,A中有k1个元组,每个元组有m列;B中有k2个元组,每个元组有n列,那么A与B的笛卡尔乘积则为拥有k1*k2个元组,且每个元组有m+n列的集合

连接:连接是特殊的笛卡尔乘积,即从两个关系的笛卡尔乘积中选择符合特定条件的元组

等值连接:等值连接是特殊的连接,即从两个关系的笛卡尔乘积中选择某些属性值相等的元组

自然连接:自然连接是特殊的等值连接,它要求关系中进行比较的分量必须是同名的属性组,并且在结果中把重复的属性值列去掉

外连接:外连接是把在连接中被舍弃的元组也保存在结果中,并且在其他属性上填空值

8.SQL的特点

1.综合统一,集数据查询DQL,数据操纵DML,数据定义DDL,数据控制DCL于一身

2.高度非过程化,使用SQL时只需要指明"做什么",而不需要指明"怎么做"

3.面向集合的操作方式,操作的对象以及查询的结果都可以是对象的集合

9.数据字典

数据字典中记录了数据库中所有的定义信息,比如关系模式定义,视图定义,索引定义,完整性约束定义等等

10.索引

索引就相当于一本书的目录,当要执行一个某一列的属性值为特定的值的SELECT查询时,如果没有索引,那么系统就会一行一行的进行全表扫描,若表比较大,则需要耗费大量的时间;若对该列的属性添加索引的话,系统只需要查找属性值符合要求的索引指针,并把指针从外存调入到内存,并根据索引里面的信息将对应的元组输出即可。

11.视图是什么?视图有何作用?

视图是从一个或多个基本表的导出的表,是一个虚表,数据库中只存放视图的定义,而不存放视图的数据,一旦基本表的数据发生改变,那么从视图中查询的数据也会随之改变

视图的作用
1.视图能够简化用户的操作
2.视图能够对机密数据提供安全保护
3.使用户能以多种角度看待同一数据
4.在一定程度上提供了数据的逻辑独立性
5.利用可以更清晰的表达查询

12.数据库安全性与数据库安全性控制

数据库安全性是指保护数据库以防止不合法使用所造成的数据泄露,更改或破坏

数据库安全性控制包括:用户身份鉴别,多层存取控制,审计,视图和数据加密等安全技术

多层存取控制包括定义用户权限和合法权限检查两部分,多层存取控制又分为两类,分别是自主存取控制和强制存取控制

自主存取控制:每个用户对不同的数据库对象拥有不同的存取权限,而不同用户对同一个数据库对象的存取权限也不同,而且用户还可以将自己的存取权限转授给其他用户

强制存取控制:每个用户都被会授予某一级别的许可证,每个数据库对象都会被授予某一级别的密级。当用户的许可证级别低于数据库对象的密级时,用户才能往数据库写入数据;当用户的许可证级别高于数据库对象的密级时,用户才能从数据库读取数据

视图机制:视图机制把要保密的数据对无权访问的用户隐藏起来,从而自动对数据提供一定程度的安全保护

审计机制:审计机制是把用户对数据库的所有操作自动记录下来放入审计日志中

数据加密:数据加密包括存储加密和传输加密,存储加密是指数据在写到硬盘时对数据进行加密,而传输加密是指数据在传输时进行加密,通常使用SSL协议进行加密

13.断言

断言是指更具有一般性的约束,断言创建后,任何涉及到断言中的关系的操作都会引发数据库对断言的检查,任何使断言为假的操作都会被拒绝执行。

14.触发器

触发器是用户定义在关系表上的一类由事物驱动的特殊过程,任何用户对表进行增删改操作都会由数据库服务器自动激活相应的触发器,对数据库进行相应的检查和操作

15.范式

1NF:第一范式要求关系模型中每个属性不可再分
2NF:第二范式在第一范式的基础之上,要求所有非主属性都完全函数依赖于任何一个码
3NF:第三范式在第二范式的基础之上,要求所有非主属性都不能传递依赖于任何一个码
BCNF:BCNF在第三范式的基础之上,要求非主属性之间不能存在函数依赖

16.数据库设计流程

1.需求分析,了解和分析用户的需求
2.概念结构设计,将用户的需求转化为概念模型,概念模型一般用E-R图表示
3.逻辑结构设计,将概念模型转化为对应的逻辑模型,一般是将E-R图转化为关系模型
4.物理结构设计,为数据库选择合适的存储结构与存取方式
5.数据库的实施与维护
6.数据库的运行与维护

17.概念模型的作用与合并E-R图的冲突

概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。

合并E-R图的冲突
1.属性冲突:不同实体对属性的定义不同
2.命名冲突:不同实体的属性同名异义,异名同义
3.结构冲突:同一数据项在不同的局部E-R图中具有不同的抽象

18.E-R图向关系模型的转化

一般的转换原则为:实体转化为对应的关系模式,实体的属性转化为对应关系模式的属性,对于实体间的联系,有以下几种情况:
(1)1:1,一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并;
(2)1:n,一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
(3)m:n,可以转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。

19.数据库对嵌入式SQL的处理过程

数据库管理系统的预处理程序对源程序进行扫描,识别出嵌入式SQL语句,再把他们转换为对应的主语言调用语句

20.游标

游标可以理解为是系统为用户创建的一个数据缓冲区,存放着SQL语句的执行结果。那么用户就可以通过游标一行一行的读取记录并赋值给程序中的变量进行进一步的处理。在程序中,游标通常与while循环结合使用

21.什么是存储过程?

存储过程是个预编译的SQL语句集合,而且这些SQL语句是已经经过优化了的。优点是可以建立非常复杂的查询,只需创建一次,在程序中即可多次调用,且比执行单纯的SQL语句要快。可以创建一个命令对象进行调用。

22.关系查询处理步骤

1.查询分析,即判断SQL语句有无语法错误

2.查询检查,即判断SQL语句有无语义错误,例如判断执行该SQL语句的用户对数据库有无存取权限,执行完查询检查之后SQL语句就会转化为关系代数表达式

3.查询优化,查询优化分为代数优化以及物理优化,代数优化是指对关系代数表达式进行优化,而物理优化是指选择合适的存取路径和底层操作算法,查询优化执行完之后就会生成查询执行计划

4.查询执行,由代码生成器将查询执行计划转化为对应的代码,执行代码后便能得到查询结果

23.启发式规则

1.选择运算尽量先做
2.投影运算尽量先做
3.进行笛卡尔乘积或连接运算前可先用选择或投影运算减少运算量

24.什么是事务?事务的特性是什么?

事务是用户定义的数据库操作序列,这些操作要么全做,要么全部做
事务的特性:
1.原子性,事务的操作要么不做要么全做
2.隔离性,一个事务的执行不会受到其他事务的干扰
3.一致性,事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态
4.持续性,一个事务一旦提交,它对数据库中数据的改变就应该是永久性的

25.故障的种类及应对策略

1.事务故障
事务故障是指事务没有达到预期的终点,因此数据库可能处于不正确状态,应对策略:通过日志文件,撤销该事务对数据库作出的任何修改

2.系统故障
系统故障是指造成系统停止运转的任何事件,使得系统重新启动,应对策略:通过日志文件,重做故障发生前已经提交了的事务,撤销故障发生时还未完成的事务

3.介质故障
介质故障是指磁盘上的物理数据和日志文件被破坏,应对策略:首先装入最新的数据库备份,再通过备份点与故障发生前的日志文件,重做故障发生前已经提交了的事务,撤销故障发生时还未完成的事务,这样就可以将数据库恢复到故障发生前的某一时刻的一致性状态了

26.数据库恢复的关键

数据库恢复的关键就是建立冗余数据,建立冗余数据最常用的技术是:数据转储登记日志文件数据转储包括静态转储以及动态转储,静态转储是指数据库在进行备份的时候,不允许有任何事务对数据库进行操作,而动态转储在备份期间允许事务对数据库进行操作,但进行数据库恢复时一般要与日志文件结合使用。日志文件是记录事务对数据库操作的文件

27.登记日志文件时为什么先写日志文件后写数据库?

因为把修改写到数据库中和把修改的日志记录写入到日志文件中是两个不同的操作,那么在执行这两个操作之间可能会发生故障,如果先将修改写入到了数据库中,而修改的日志记录没有写入到日志文件中,那么以后就无法通过日志文件恢复这个修改了,所以一定要先写日志文件后写数据库

28.具有检查点的恢复技术

具有检查点的恢复技术即在日志文件中增加检查点记录以及增加一个重新开始文件用来记录检查点记录在日志文件中的位置。检查点记录的内容包括建立检查点时刻所有正在执行的事务清单以及这些事务最近一个日志记录的地址。那么通过检查点技术,在恢复数据库时不必从头到尾扫描日志文件而只需要从最近的检查点开始扫描

29.数据库中为什么要并发控制

因为事务的并发执行可能会破坏数据库的一致性和事务的一致性,从而导致数据不一致

30. 数据不一致状态

丢失修改:事务T1,T2读取同一数据并修改,但T2提交的结果覆盖了T1提交的结果,这种情况就称为丢失修改

不可重复读:事务T1读取数据之后,事务T2更新了数据,事务T1再次读取数据,此时该数据的值与第一个读取的值不一致,这种情况就称为:不可重复读

读"脏"数据:事务T1将数据的值从100改为200并写入到数据库中,事务T2读取数据值为200,随后事务T1的更新操作被撤销,那么此时事务T2读取的数据为"脏数据",也就是错误的数据。

31.是什么导致了数据的不一致状态?该如何解决?

数据不一致性状态的主要原因是并发操作破坏了事务的隔离性,一般采用封锁技术来防止数据的不一致性状态

32.什么是锁?有哪两种锁?

锁是最常用的并发控制技术,是防止其他事务访问指定资源
锁主要分为:
排他锁(X写锁):当数据被加上写锁,其他事务不能对该数据进行读和写;
共享锁(S读锁):当数据被加上读锁,允许其他事务对该数据进行读,不允许写。

33.封锁协议

一级封锁协议:一级封锁协议是指:事务在修改数据之前必须加上"写锁",直到事务结束才释放,一级封锁协议可避免丢失修改
二级封锁协议:二级封锁协议是指:在一级封锁协议的基础之上,事务在读取数据之前必须加上’读锁",读完后即可释放,二级封锁协议可避免丢失修改,读"脏"数据
三级封锁协议:三级封锁协议是指:在一级封锁协议的基础之上,事务在读取数据之前必须加上"读锁",直到事务结束才释放,三级封锁协议可避免丢失修改,读"脏"数据以及不可重复读。

34.活锁与死锁

活锁:某一事务长时间或者可能永久得不到执行的情况。
死锁:两个或两个以上事务因争夺某种资源,而永久互相等待的情况。

35.可串行化调度

可串行化调度:如果多个事务并发执行的结果与按某一次序串行执行的结果相同,那么就称这种策略为可串行化调度

可串行化调度的充分条件:1.冲突可串行化 2.事务遵守两段锁协议

冲突可串行化:一个调度在保证冲突操作次序不改变的情况下,通过改变不冲突操作的次序得到一个串行的调度,那么则称该调度为冲突可串行化调度
两段锁协议:事务分为两个阶段,第一阶段事务可以获得任意数据项上的任意类型的锁,但是不能释放锁,第二阶段事务可以释放任意数据项上的任意类型的锁,但是不能申请锁。

36.封锁的粒度

封锁粒度:封锁对象的大小,封锁对象可以是一个数据项,一个元组,一个关系,一个数据库或者是一些物理单元

多粒度封锁:一个系统中同时支持多种不同封锁粒度,这种封锁方法就称为多粒度封锁。在多粒度封锁中,数据对象可能以两种方式进行封锁,即显式封锁隐式封锁。显式封锁是指:事务直接对数据对象加锁,而隐式封锁是指:数据对象没有被独立加锁,是由于其父结点加锁而使数据对象加上锁。那么,在多粒度封锁中,一个事务要对一个数据对象加锁,除了检查数据对象有无加锁之外,还必须检查其父结点以及子结点有无被加锁,而这种过程需要耗费大量时间,所以意向锁可以用来解决这种问题。

意向锁:意向锁是指:要对一个数据对象加锁,则必须先对其父结点加上意向锁,代表该结点的下层结点正在被加锁

37.关系型数据库与非关系型数据库的区别

1.非关系型数据库存储数据的格式可以是键-值对格式,文档格式以及图片格式等等,而关系型数据库只能存储基本类型。

2.非关系型数据库的查询速度通常要比关系型数据库的查询速度要快

3.关系型数据库可以支持复杂的查询,而非关系型数据库在这方面比较欠缺

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xulidanga

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值