考研复试 数据库原理背诵内容(自用版本)

知识点背诵

什么是数据库的事务(事务处理)?
数据库的事务是对数据库操作的一组集合,这些操作要么全部成功,要么全部失败,一旦有一个操作失败,则整个事务回进行回滚,回到事务开始前的状态

请解释ACID是什么意思?
ACID是指事务的四个特性,即

  • 原子性:事务一旦进行则必须全部完成,一旦有一个操作失败,则需要进行事务回滚,将数据库回到事务开始前的状态
  • 隔离性:事务的执行不会被其他事务干扰
  • 持续性:事务执行完毕之后无论发生什么事都不会影响到事务执行的结果
  • 一致性:事务执行前后,数据库状态不变

数据库中的索引是什么?有哪些类型?
索引是一种用来加速数据库查询的数据结构,通常是建立一张索引表,然后通过索引表查找关键字所在位置,再到原始表中查找所需数据
常见索引有

  • B+树索引
  • hash索引
    数据结构:B+树索引是一种树形结构,而哈希索引是一种散列表结构。
    查找方式:B+树索引支持范围查找,而哈希索引只支持等值查找。
    内存占用:B+树索引需要占用更多的内存空间,因为它需要存储大量的索引节点。而哈希索引相对来说需要更少的内存空间,因为它只需要存储哈希表。
    索引维护:B+树索引的插入、删除和更新操作需要维护整个B+树的结构,因此开销相对较大。而哈希索引的插入、删除和更新操作只需要对相应的哈希桶进行操作,开销较小。
    B+树索引和hash索引的区别主要在数据结构、查找方式、内存占用和索引维护等方面。B+树适合范围查找,而hash索引适合等值查找。在内存占用和索引维护方面,hash索引通常比B+树索引更为高效,但是B+树索引在范围查找和排序方面优势更为明显。

数据库中B+树索引的应用
B+树索引是常见的索引类型, 可以用来加速数据库查询操作,B+树索引通常建立在列上,每个列值建立一个索引,B+树种存储指向实际数据的指针
B+树索引通常应用在范围查询,分组操作,排序等需要特定顺序访问的场景.

请解释关系数据库的三范式是什么?
关系数据库的三范式指的是关系数据模型中对一个关系模式进行规范化过程,通常包括三个范式

  • 第一范式:要求每个分量都是不可分割的,保证属性的原子性
  • 第二范式:要求每个非主属性都必须完全函数依赖于主属性, 避免了函数依赖问题
  • 第三范式:要求非主属性之间不能存在函数依赖,避免了传递依赖问题

数据库中的视图是什么?有哪些类型?
视图是一个表或多个表的查询结果,其本身不存储数据,是一个虚拟的表,其类型有

  • 基于单个表的视图,数据来自一个表
  • 基于多个表的视图,数据来自多个表
  • 可更新视图:可以对视图进行一些数据库操作,但是这些操作同样会作用到底层数据表的数据
  • 虚拟表视图:非真实的表,但是可以对其进行增删改查等操作
  • 系统视图:系统内置的视图

请解释数据库的备份和恢复是什么
数据库备份是指将数据库中的数据备份到另一个副本中,以便在发生灾难性事件是可以将数据还原.数据恢复是指将数据备份中的数据还原到原数据库中
备份:完全备份(1:1),增量备份(上次备份后的数据),差异备份(只备份上次备份后修改的数据),在线备份(备份时可以操作数据)

数据库中的连接是什么?有哪些类型?
连接是根据表中的行进行匹配组合的操作

  • 内连接:返回所有相互匹配的行
  • 外连接:返回至少一张表中的所有行,以及另外表中的所有匹配行,若有不匹配的则用null代替
  • 自连接:与自己进行连接的操作
  • 交叉连接:返回所需匹配的表的所有笛卡尔积

请解释数据库中的锁是什么?
数据库中的锁是一种用来控制并发访问的机制,它是用来保证在一个时刻内只有一个事务可以操作数据

  • 排他锁
  • 共享锁

什么是数据库中的约束?有哪些类型?
约束是对表中数据的限制条件,是用来保证数据库数据的完整性和一致性,防止无效或有害数据进入数据库

  • 主键约束:定义一列或一组列为主键,用来唯一标识表中的一行,其不能重复也不能为null
  • 外键约束:定义表之间的关系,保证在引用表中进行更新或删除操作时,相关表的完整性不会被破坏
  • 检查约束:定义数据插入表时要满足的条件,用于保证数据的完整性和一致性
  • 唯一约束:和主键类似,但是其可以为null
  • 默认约束:用于定义数据的默认值

请解释数据库中的触发器是什么?
触发器是一种特殊的存储过程,它会在指定的表上执行,在发生某些操作后自动触发执行.例如在insert之后自动向其他表插入相应数据,delete之前检查数据的完整性,触发器有助于操作人员检查数据的完整性和一致性,但是使用触发器系统开销较大

数据库中的事务隔离级别是什么?有哪些级别?
事务的隔离级别是为了防止事务操作数据时引起的故障

  • 读未提交(脏读)
  • 读已提交(不可重复读)
  • 可重复读(幻读)
  • 串行读(性能)
    脏读:事务读取的数据时,有另一个事务在修改该事务,事务读取完后的数据已经和数据库中的数据不一致了
    不可重复读:事务先读取某数据,另一个事务对该数据进行了修改,之后这个事务再去读这个数据时发现数据和第一次读的不一样了
    幻读:事务先读取某范围内的数据,另一个事务对该范围内数据进行了新增,之后这个事务再去读这些数据时发现数据变多了

数据库中的约束和索引有什么区别?
数据库中的约束是一种限制性操作,它是在数据进行更新时进行检查,保证数据的完整性和一致性,主要的约束类型有:xx xxx xx xxx xxx
而数据库的索引是一种加速查询操作的数据结构,主要有B+树索引,hash索引等

请解释数据库中的聚簇索引和非聚簇索引是什么?
聚簇索引是根据表中的主键顺序建立索引的,其也称聚集索引,其查询效率非常高,在聚簇索引中索引和数据是放在同一个B+树上的,一个表只能有一个聚簇索引
非聚簇索引是根据表中的非主属性建立的索引,其将索引和指向数据的指针存放在一个B+树上,查询数据时通过索引找到指向数据行的指针,再通过指针找到数据行

数据库中的事务日志是什么?有什么作用?
事务日志是记录事务操作的文件,事务的每一个操作都会记录在事务日志中,通过事务日志可以

  • 数据库恢复:当数据库发生故障数据丢失时可以使用事务日志来对数据库数据进行恢复,它记录对数据库的每一个操作,可以回滚到任何一个事务节点
  • 数据库复制:可以利用事务日志来对数据进行复制,因为事务日志中保存了所有操作信息,可以保证数据的完整性和一致性

数据库中的游标是什么?有什么作用?
游标是数据库中类型指针的机制,它用于在查询结果集中逐行处理,它可以让应用程序通过SQL语句检索结果集,并按需处理每一行,通常可以进行逐行查询,跳过某几行,对查询结果行进行更新,多次遍历结果集等操作

请解释数据库中的存储过程是什么?
存储控制是数据库中特殊的对象,它是一组SQL语句集合被编译存储在数据库中,它类似于其他高级语言中的函数,当然数据库中也有函数的概念,它可以接收参数,执行代码并返回结果,有系统存储过程和用户存储过程两种,系统存储过程用于完成数据库规定的任务,例如备份和数据恢复,而用户自定义存储过程用于完成用户的业务需求

数据库中的外键是什么?有什么作用?
外键是表中的一个字段它指向另一张表的主键, 用于定义两张表之间的关系,外键保证了数据库的引用完整性约束,保证了在一个表中的引用值必须是另一张表的主键,通过外键可以保证表与表之间数据的完整性和一致性,也可以在外键上建立索引提高查询效率

请解释数据库中的数据库管理员(DBA)是谁?他们做什么工作?

DBA是维护数据库的专业人员,他们负责数据库的设计部署配置监控和维护,保障数据库的高可用性,安全性和性能

数据库中的分布式数据库是什么?有什么特点?
数据分散存储在多个计算机节点上的数据库系统,它与传统的数据库系统相比具有

  • 数据分散存储
  • 高可用性
  • 灵活性
  • 难以维护
  • 需要更高的安全性

数据库中的冗余是什么?
冗余是指重复存储相同数据的现象,冗余数据是在数据库中多次重复的数据,冗余数据可能会导致数据库的数据不一致性和不可靠性,占用存储空间,以及影响数据库的存储效率
为此可以通过建立规范化的数据库模式来减少数据冗余,或者通过视图,触发器,存储过程来减少数据冗余

请解释数据库中的子查询是什么?有什么作用?
子查询是嵌套在一个查询语句的的查询语句, 可以利用子查询引用其他查询结果. 子查询一般用于复杂的查询语句中,实现多个查询操作间的数据传递,并获取关联表中的数据.

数据库中的游离数据是什么?有什么作用?
游离数据是指和其他表已经没有关联关系的数据,这些数据可能是因为其他表中的记录被修改或者删除,导致的该表中的数据与其他表中的数据出现不一致的情况.游离数据会影响数据库数据的完整性和一致性,还会影响数据库性能.我们可以通过外键约束,或者触发器来防止出现游离数据

请解释数据库中的数据库连接池是什么?
数据库连接池是一个数据库连接的缓冲池,它存储着已创建的数据库连接,当应用程序请求连接数据库时可以快速分配一个数据库连接.提高了应用程序访问数据库的效率,它位于数据库和应用程序之间,用于管理数据库连接,减少每一个请求数据库连接和断开的开销,它有提高性能,节约资源,管理连接等功能

数据库中的OLTP和OLAP有什么区别?
OLTP是面向事务的在线处理系统,它主要负责业务和交易操作,对事务的读写操作要求快速响应和高可靠性,因此通常使用关系型数据库
OLAP是面向分析的处理系统,它主要负责数据分析和决策分析,通常要处理海量数据,需要高效的数据分析和查询操作,因从通常使用非关系型数据库

请解释数据库中的数据库设计是什么?
数据库设计是在设计数据库是设计合适的数据类型,数据结构,数据组织方式,数据关系等,通常设计数据库有以下步骤:需求分析(分析数据之间的关系),概念设计(明确实体属性,已经实体的关系),逻辑设计(形成数据表),物理设计(选择数据库系统,建立物理表,确定表空间等),实现和维护

请解释数据库中的DDL和DML是什么?

什么是规范化(正则化)处理?在数据库设计中有什么作用?
在数据库设计中规范化(正则化)是指数据库范式化过程,主要是为了将表中的数据进行规范化,来减少数据冗余和数据的不一致性,从而提高数据库的性能和可靠性,常用的范式有第一范式,第二范式,第三范式

什么是数据仓库?它有什么作用?
数据仓库可以理解为特殊的数据库,与传统的关系数据库相比,它主要应用于OLAP,支持复杂的分析操作,侧重于决策支持,并提供直观易懂的查询结果

数据库中的备份和恢复有哪些常用的工具和技术?
数据备份和恢复可以通过事务日志, 数据库镜像,数据库复制,云备份和恢复等

请解释数据库中的存储引擎是什么?有哪些常见的存储引擎?
数据库中的存储引擎是一种负责读写操作并将结果写入磁盘的软件模块,它负责处理SQL语句,并将数据存入磁盘上的文件或表中,常见的存储引擎有MongoDB redis MyISAM

数据库中的锁和并发控制有什么作用?有哪些实现方法?
数据库中锁和并发控制只要是为了解决可能出现的冲突和竞争现象, 保证事务处理过程中,数据库中数据的一致性和完整性.常见的锁有共享锁和排他锁, 并发控制机制有二段锁协议,多版本并发控制机制,乐观并发控制机制

数据库中的数据库索引对性能有什么影响?如何优化?
数据库索引对数据库的查询性能非常重要,它通过快速定位目标元素以提高查询效率,减少了不必要的扫描量,进而提高整体性能.

  • 确保数据库设计规范
  • 根据查询需求建立选择合适的索引,比如hash索引,B+树索引等
  • 但是不要建立过多的索引,因为索引建立的过程也需要花费时间
  • 进行SQL语句查询优化
  • 定期进行索引重建,索引优化

请解释数据库中的正则表达式是什么?有什么应用场景?
正则表达式是一种匹配文本的强大工具, 它可以运用在查询语句中用来查找出现某个短语或者关键字的数据行,也可以用在插入时检查插入的内容是否符合规范,但是插入这个检查通常在前台就被过滤掉了

请简述数据依赖与范式的关系。
数据依赖是指数据之间的依赖关系,通常有函数依赖,多值依赖等,而范式的目的是为了减少数据冗余避免数据不一致性提出来的方法,通常是通过数据依赖关系进行分解表来达到消除数据冗余减少数据不一致性的目的

简述数据库的三层模式结构,并给出相应的表示方法。

  • 外模式(用户模式) 用户和应用程序看到的数据库的逻辑结构,也是用户对数据库的操作界面. 外模式通常用于定义用户视图,对数据的存储方式,保护安全等级等,其与用户需求相关
  • 概念模式(逻辑模式) 概念模式用于描述整个数据库中的逻辑结构和特征,以及数据在逻辑上的组织方式,其与任何物理结构没有关系
  • 内模式(物理模式) 内模式定义了数据在存储介质上的存放方式,数据存放的物理结构,索引方式等

什么是关系代数?请列举关系代数的五个基本运算。
关系代数是关系模型的一种数学工具,用于操作关系数据库中的关系表
常见的关系代数有:

  • 选择(选择一部分符合条件的形成新的关系)
  • 投影(在关系中选择部分属性,形成新的关系)
  • 连接(按照关系表的属性进行匹配,然后形成新的关系)
  • 差(从一个关系中去除另一个关系的行形成新的关系)
  • 并(合并两个关系,去重后形成新的关系)

什么是数据完整性?请列举至少三种数据完整性约束。
数据完整性指的是数据的正确性和相容性, 正确性是指数据符合现实世界语义,符合当时状况,相容性是指数据库同一对象在不同关系表中是符合逻辑的

  • 实体完整性约束:每一行都需要有一个符合规则的主键
  • 参照完整性约束:定义表与表之间的关系,一个表中的外键必须是另一个表中的主键
  • 用户定义的完整性约束:根据业务需求定义的其他完整性约束

E-R图合并冲突

  • 属性冲突 不同属性在不同实体间的单位不一样
  • 命名冲突 不同意义的对象拥有相同的名字
  • 结构冲突 同一对象在不同应用中具有不同的抽象,比如在某局部应用是属性,在另一局部应用中为实体
posted @ 2023-04-05 00:08  顾友  阅读(139)  评论(0)    收藏  举报