数据库简答题总结
数据库简答题总结
简述什么是数据库?什么是DBMS?什么是数据库系统?
答:数据库是长期存储在计算机内,有组织的,可共享的大量数据的集合;DBMS是数据库管理系统,位于用户和操作系统之间的一层数据管理软件,主要功能包括数据定义功能,数据组织存储和管理,数据操纵功能,数据库事务管理和运行管理,数据库的建立和维护等功能;数据库系统是只在计算机系统中引入数据库的系统,由数据库,数据库管理系统(及其开发工具),应用系统和系统管理员构成。
简述关系数据库规范化理论,并给出2NF,3NF,BCNF的定义
答:规范化理论是以关系模型为背景,进行数据库逻辑设计的有力工具。其逐步消除数据依赖中不合适的部分,使关系模型中的各个关系模式达到某种程度的分离,即“一事一概念”。2NF定义:若 ,且每一个非主属性完全函数依赖于码,则 。3NF定义:关系模式R<U,F>中不存在这样的码X,属性组Y及非主属性Z(Z不包含于Y),使得 成立,Y不决定X,则称 。BCNF定义:若 ,若 且Y不函数依赖于X时,X必含有码,则 。
简述数据库系统及其管理数据的主要特点
答:数据库是长期存储在计算机内,有组织的,可共享的大量数据的集合;数据库系统是只在计算机系统中引入数据库的系统,由数据库,数据库管理系统(及其开发工具),应用系统和系统管理员构成。
数据库管理系统的主要特点为:
- 数据结构化
- 数据独立性高
- 数据共享性高
- 数据由DBMS统一管理和控制
简述并发操作的可行性
答:DBMS对并发事务不同的调度可能会产生不同的结果,多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时地结果相同,称这种调度策略为可串行地调度,也称之为并发执行的可串行性,这也是判断并发调度策略正确与否地唯一标准。
试给出二级封锁协议的内容并举例说明其如何解决读“脏”数据问题
答:二级封锁协议的内容事务T在修改数据R之前必须先对其加上X锁,直到事务结束才释放,事务T在读取数据R之前必须先对其加S锁,读完即释放。
用时间片轮转图例进行举例,说明如何解决读脏数据问题即可。
简述数据库体系结构及其与数据独立性的关系
答:数据库体系结构可以概括为三级模式和二级映像,三级模式分别为外模式,模式和内模式,二级映像为外模式/模式映像和模式/内模式映像。模式是数据库整体逻辑结构的描述,一个数据库对应一个模式;外模式是数据库于外部应用程序对应的局部逻辑描述,一个数据库可以有多个外模式;内模式是数据库内部与存储及物理环境相关的逻辑描述,一个数据库对应一个内模式。
数据的独立性分为物理独立性和逻辑独立性。逻辑独立性是指外部的应用程序不会因为数据库逻辑结构的改变而改变,是由外模式/模式映像支持的;物理独立性是指外部应用程序不必因为数据库内部存储结构的改变而改变,是由模式/内模式映像所支持。
关系数据库管理系统的数据字典存储哪些内容
答:数据字典通常包括数据项,数据结构,数据流,数据存储和处理5个部分。其中数据项是数据的最小单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流,数据存储的逻辑内容。
数据字典的内容和作用是什么
答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:
- 数据项
- 数据结构
- 数据流
- 数据存储
- 处理过程五个部分
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改,充实,完善。
简述RDBMS查询优化的一般准则
- 选择运算应尽可能先做
- 把投影运算和选择运算同时进行
- 把投影其前或其后的双目运算结合起来执行
- 把某些选择同在它前面要执行的笛卡儿积结合起来成为一个连接运算
- 找出公共子表达式
- 选择合适的连接算法
数据模型应包括哪三部分?试分别解释之。
答:数据模型包括数据结构,数据操作,数据的约束条件三个部分,数据结构是所研究的对象类型的集合;数据操作是指对数据库中各种对象的实例允许执行的操作的集合,包括操作及其有关的操作规则;数据的约束条件是一组完成性规则的集合。
简述数据库并发操作通常会带来哪些问题
答:丢失修改,不可重复读和读“脏数据”
简述最小依赖集满足的三个条件
- 右部单属性
- 不存在冗余函数依赖:
- 不存在冗余决定属性: ,则去掉
局部ER模型之间可能产生的冲突有哪几类
冲突种类:属性冲突,命名冲突和结构冲突
简述数据库管理系统的功能
定义功能,操纵功能,保护功能,存储功能,维护功能
什么事平凡的FD?平凡的FD可根据哪一条推理规则推出
如果 是平凡的HD,平凡的HD可以根据推理规则的自反律可以推出
与传统的关系模型比较,对象关系模型有哪些扩充
数据类型的扩充:引入符合类型(结构,数组,多集和集合类型)。在类型一级和表一级实现继承性(单继承性和多继承性)。定义引用类型。
简述DB的并发控制和恢复有什么关系
如果采用封锁机制,事务并发操作时有可能产生死锁。为了解除死锁状态,就要抽取某个事物作牺牲品,把它撤销,做回退操作,这就属于DB的恢复范畴。
简述数据库系统的组成
答:数据库系统由数据,数据库管理系统,应用程序,数据库管理员和用户组成
简述E-R图向关系数据模型转换的原则
a) 每个实体都转换为一个关系模式
b) 对于图中联系的转换由联系的类型分为三种情况:
可以转换为一个独立的关系模式,也可以与任意一段对应的关系模式合并
可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并
转换为一个关系模式
简述关系的三类完整性约束
实体完整性,参照完整性和用户自定义完整性
什么是数据独立性其目的是什么
数据独立性是指应用程序和数据之间相互独立,不受影响。即修改数据库的数据结构时,不必改动应用程序。包括逻辑数据独立性和物理数据独立性。其目的是使程序维护容易,另外,对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性。
数据库系统生存期分为哪几个阶段
需求分析阶段,概念设计阶段,逻辑设计阶段,物理设计阶段,数据库实施,数据库的运行和维护
什么是数据(Data),数据库(Database),数据库管理系统(DBMS)和数据库系统(DBS)
数据是数据库中存储的基本对象,数据库是长期存储在计算机内,有组织的,可共享的大量数据的集合,数据库管理系统是科学地组织和存储数据,高效地获取和维护数据。数据库系统由数据库,数据库管理系统(及其开发工具),应用系统,数据库管理员(和用户)构成
什么是事务(Transaction),事务地特征?事务和程序的区别?
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位
事务的特征
- 原子性(Atomicity)
- 一致性(Consistency)
- 隔离性(Isolation)
- 持续性(Durablity)
事务和程序是两个概念
在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。一个程序通常包含多个事务
什么是计算机系统完整性?完整性约束条件作用的对象
数据的正确性和相容性,防止不合语义的数据进入数据库
列:对属性的取值类型,范围,精度等的约束条件
元组:对元组中各个属性列间的联系的约束
关系:对若干元组间,关系集合上及关系之间的联系的约束
什么是数据库?
答:是长期存储在计算机内,有组织的可共享的数据集合。
什么是数据库管理系统
答:是操纵和管理数据库的一组软件。具有定义,建立,维护和使用数据库的功能。
什么是关系?
答:关系是一张二维表,每个关系有一个关系名。
叙述等职连接与自然连接的区别和联系
答:自然连接是除去重复属性的等值连接。自然连接一定是等值连接,反之不一定。等值连接要求相等的属性分量,但不一定是相同的属性,而自然连接必须是相同的属性。等值连接不把相同的属性去掉,而自然连接去掉。
举例说明关系参照完整性的含义
答:在学生表student和链接表SC中,sno在学生表student中是主键,son在SC表中不是主键,但sno的值必须满足或者为空,或者在另一个表中能找到,否则会出现错误
说出关系规范化的目的
答:控制冗余,避免插入异常和删除异常,从而增强数据库结构的稳定性和灵活性
数据的安全性指的是什么
保护数据库,防止未经授权的,或者不合法的使用造成的数据泄露,更改或破坏。
数据库的完整性指的是什么
正确性和相容性
什么是事务
是数据库管理系统的基本单位,是用户定义的一组逻辑一致的程序序列。要么都去执行,要么都不执行
并发操作会产生几种不一致的情况?用什么办法避免不一致的情况发生
答:丢失修改,不能重复读和读脏数据。采用封锁机制来进行并发控制,避免不一致的情况的发生。
什么是事务,事务的特性有哪些
事务是指一组相互依赖的操作行为。事务中的操作是不可分割的工作单元,由一组在业务逻辑上相互依赖的SQL语句组成,有ACID特征。
Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。
Consistency(一致性):只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态。
Isolation(隔离性):事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。
Durability(持久性):事务结束后,事务处理的结果必须能够得到固化。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通