60+ DBMS 面试问答
本文列出了所有对初学者和经验丰富的专业人士都至关重要的 DBMS 面试问题。通过这份 DBMS 面试问题指南,您将走上获得梦想工作的正确道路。
初学者 DBMS 论文面试问题及答案
1) 什么是 DBMS?
DBMS(数据库管理系统)是用于存储和检索用户数据的软件,同时考虑了适当的安全措施。该系统由多个操作数据库的程序组成。它接受应用程序对数据的请求,并指示操作系统提供特定数据。
2) 什么是 RDBMS?
RDBMS 是关系数据库管理系统的缩写。它是一个软件系统,仅存储需要存储在相关表中的数据。在 RDBMS 中,数据以行和列的形式进行管理和存储,称为元组和属性。
3) DBMS 和 RDBMS 的重要区别是什么?
以下是 DBMS 和 RDBMS 之间的一些重要区别
DBMS | RDBMS |
DBMS 将数据存储为文件。 | 数据以表格形式存储。 |
它以导航式或分层式形式存储数据。 | 它使用表格结构,其中标题是列名,行包含相应的值 |
DBMS 仅支持单用户。 | 它支持多用户。 |
需要较低的软件和硬件需求。 | 需要较高的硬件和软件需求。 |
DBMS 不支持规范化 | RDBMS 可以进行规范化。 |
不支持客户端/服务器架构 | RDBMS 支持客户端/服务器架构。 |
4) 使用 DBMS 系统的优势是什么?
以下是使用 DBMS 系统的优势
- DBMS 提供各种技术和强大的功能来高效地存储和检索数据。
- 它是平衡多个应用程序使用相同数据需求的有效处理程序。
- 为数据管理提供统一的管理流程。
- 应用程序永远不会暴露数据的表示和存储细节。
- 它包含完整性约束,以获得对数据禁止访问的高级别保护。
- 它有助于减少应用程序开发时间。
5) 什么是活锁?举一个例子。
- 活锁是一种情况,其中独占锁请求因许多重叠的共享锁持续相互干扰而反复被拒绝。进程会不断更改其状态,阻止它们完成任务。
示例 1
- 活锁最直接的例子是两个人面对面地在走廊里相遇,两人都向旁边让路,以便让对方通过。
- 然而,他们最终会左右移动而没有取得任何进展,因为他们在同一时间以相同的方式移动。
示例 2
您可以在提供的图像中看到,两个进程中的每个进程都需要两个资源。它们尝试通过使用原始轮询注册表来获取锁。但是,如果尝试失败,则方法会再次工作。
6) 什么是数据库分区?
将逻辑数据库划分为完全独立的单元以提高其管理、可用性和性能,称为数据库分区。
7) 什么是死锁?
当任何进程在等待状态中进入,而另一个等待进程持有请求的资源时,就会发生死锁,这是操作系统中的一种情况。它是多处理中的一个常见问题,其中多个进程共享一种特定类型的互斥资源,称为软锁。
死锁示例
一个真实的例子应该是交通,只向一个方向行驶。
这里,桥梁被视为一种资源。
- 因此,如果一辆车后退(抢占资源并回滚),死锁可以很快解决。
- 如果发生死锁情况,可能需要后退许多汽车。
- 那时可能会发生饥饿。
8) 什么是 DBMS 系统中的关系代数?
关系代数是一种过程式查询语言,它将关系作为输入,并将关系实例作为输出。它使用各种操作来执行此操作。
9) 定义关系代数中的一元运算?
在关系代数中,投影和选择是一元运算。一元运算是仅使用单个操作数的运算。
例如,选择中使用关系运算符,例如 =、<=、>= 等。
10) 什么是并发控制?
并发控制是一个过程,有助于管理并发操作而不相互冲突。它有助于确保数据库事务能够并发且准确地执行。
11) DBMS 中有哪些不同类型的语言?
DBMS 中使用了三种类型的语言
- DDL:数据定义语言,使用 CREATE、ALTER、DROP 和 RENAME 定义数据库和模式结构。
- DCL:DCL 是数据控制语言,用于通过一些 SQL 查询(如 REVOKW 和 GRANT)来控制用户在数据库中的访问。
- DML:数据操纵语言,用于在数据库中操纵数据,例如插入、删除等,方法是使用一些 SQL 查询(如 SELECT、UPDATE、INSERT 和 DELETE)。
12) 什么是函数依赖?
数据库管理系统中的函数依赖 (FD) 定义了属性与其他属性之间的关系。它允许您维护数据库中数据的质量。
13) 什么是 ER 模型?
ER 模型或实体-关系模型基于自然世界,并处理实体及其关系。
14) ER 模型中的属性是什么?
属性是描述实体的特定属性。例如,如果学生是一个实体,那么 Student_id、Std_firstname 和 Std_lastname 是描述学生的属性。
15) 什么是主键?举例说明。
主键是列或列的集合,它们唯一标识 RDBMS 系统表中的每一行。此键不能重复,意味着同一值不应在表中出现两次以上。
语法
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype,PRIMARY KEY (Column-Name). );
在此示例中,
- Table_Name 是您需要创建的表的名称。
- Column_Name 是具有主键的列的名称。
示例
学生 ID | 学号 | 名字 | 姓 | 电子邮件 |
---|---|---|---|---|
1 | 11 | 大卫 | Willy | zzz@gmail.com |
2 | 12 | 尼克 | Night | xxx@gmail.com |
3 | 13 | 达纳 | Thompson | yyy@yahoo.com |
在给出的示例中,我们创建了一个包含 StdID、Roll No、First_Name、Last_Name 和 Email id 列的学生表。它应该被选为主键,因为它能够唯一标识表中的其他行。
16) 什么是外键?举例说明
外键是创建两个表之间关系的列。它们用于维护数据完整性并促进同一实体实例之间的导航。此外,它充当两个表之间的交叉引用,因为它引用另一个表的主键。
示例
学生 ID | 学号 | 名字 | 姓 | 电子邮件 |
---|---|---|---|---|
1 | 11 | 大卫 | Willy | zzz@gmail.com |
2 | 12 | 尼克 | Night | xxx@gmail.com |
3 | 13 | 达纳 | Thompson | yyy@yahoo.com |
在提供的示例中,我们创建了一个包含 Stu_ID、Roll No、First Name、Last Name 和 Email 等列的学生表。Stu_ID 被选为主键,因为它能够唯一标识表中的其他行。
外键示例
语法
以下是外键的语法
CREATE TABLE <Table Name>( column1datatype, column2datatype, constraint (name of constraint) FOREIGN KEY [column1, column2...] REFERENCES [primary key table name] (List of primary key table column) ...);
17) 什么是数据库关系?
数据库关系是单个或多个表之间的关联,这些关联是通过连接语句开发的。使用此方法可以从数据库中高效地检索数据。
DBMS 中主要有三种关系
- 一对一,
- 一对多,
- 多对多。
18) 什么是饥饿?
饥饿是指所有低优先级进程都被阻塞的情况。在任何系统中,都会动态地发生高优先级和低优先级资源的请求。因此,需要一种策略来决定谁获得支持以及何时获得支持。
19) 什么是 ACID 属性?
DBMS 中的 ACID 代表原子性、一致性、隔离性和持久性。
- 原子性:事务是单个操作单元。您可以完全执行它,也可以不执行它,但不能部分执行。
- 一致性:一旦事务执行完成,就应该从一个一致的状态移动到另一个状态。
- 隔离性:事务应独立于其他事务执行(无锁)。并发执行的事务不应共享中间事务结果。
- 持久性:事务成功完成后,即使发生系统故障,数据库中的所有更改也需要持久化。
DBMS 中 ACID 属性的示例
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
20) 什么是计划?
计划是创建多个并行事务组并将它们逐个执行。每个事务中指令出现的顺序应得到保留。如果两个事务同时执行,一个事务的结果可能会影响另一个事务的输出。
21) UNION 和 UNION ALL 之间有什么主要区别?
UNION 和 UNION ALL 用于连接两个或多个表的联合数据。然而,
- UNION 删除重复行并进行选择。在合并表数据后,行是不同的
- UNION ALL 不删除重复行;它只是获取来自表的所有数据。
22) 什么是 DBMS 中的相关子查询?
为外部查询的每一行执行的子查询称为相关子查询。它们也称为嵌套查询,即写在某个查询中的查询。
23) DBMS 中规范化的目的是什么?
规范化是一个重要的过程,可以从一组关系中删除冗余。它通过将大表分成小表并使用键将它们链接起来,有助于减少插入、删除和更新命令中的不规则性。
24) 什么是索引搜寻?
索引搜寻是一种数据结构,可提高数据库上数据检索操作的速度。它是增强索引集合的过程。这是通过使用查询分发和查询优化等方法完成的。
25) 什么是分布式数据库系统?
分布式数据库系统是一组互连的数据库,物理上分布在不同位置。它可以位于同一网络或多个网络上。
26) 什么是数据仓库?
数据仓库是用于从各种来源收集和管理数据的过程,以提供有意义的业务见解。此方法通常用于连接和分析来自异构来源的业务数据。
27) 什么是数据库架构?
数据库架构是 DBMS 的设计表示,它有助于您设计、开发、实施和维护 DBMS 系统。它将 DBMS 分为可以独立更改、修改、替换和调整的独立组件。
28) 什么是透明 DBMS?
透明 DBMS 将其物理结构隐藏起来,不让用户看到。物理结构或物理存储结构是指 DBMS 的内存管理器。
29) 什么是 Join?
Join 操作是关系代数中最有价值的活动之一。它广泛用于组合来自一个或多个关系的信息。它基于相同或相关的列执行。JOIN 命令用于大多数复杂的 SQL 查询。
30) 什么是 Inner Join?
内连接使您能够在满足特定条件时从两个表中返回行。
例如,您想要一份租用电影的会员列表以及他们租用的电影标题。使用 INNER JOIN,您可以从满足指定条件的两个表中返回行。
SELECT members.`first_name` , members.`last_name` , movies.`title` FROM members, movies WHERE movies.`id` = members.`movie_id`
经验丰富的 DBMS 面试问题及答案
31) 什么是 Right Join?
Right Join 返回右侧表的所有列,即使左侧表中没有找到匹配的行。
在我们的例子中,假设您需要获取会员姓名以及他们租用的电影。
SELECTA.`first_name` , A.`last_name`, B.`title` FROM `members` AS A RIGHT JOIN `movies` AS B ON B.`id` = A.`movie_id`
32) 什么是 1NF?
1NF 是第一范式。它是您可以在数据库中实现的 सर्वात简单的规范化类型。
每个列都必须具有原子值(单个值)
- 它有助于删除同一表中的重复列
- 它应该为每个相关数据组创建单独的表,并帮助您使用唯一列标识每一行
33) 什么是 DBMS 中的 2NF?
2NF 是第二范式。
任何被认为处于 2NF 的表都应满足以下 2 个条件
- 表处于 1NF 状态。
- 表的每个非主属性都函数依赖于主键。
34) 什么是 BCNF?
BCNF 是 Boyce-Codd 范式的一种类型。它是第三范式的高级版本,也称为 3.5NF。
符合 BCNF 并满足以下条件的表
- 它处于 3NF 状态
- 要有函数依赖 X->Y,X 应该是整个表的超键。
- 这意味着如果 Y 是主属性,则 X 不能是非主属性。
35) 如何与 RDBMS 进行通信?
您必须使用 SQL 来与 RDBMS 通信,使用 SQL 查询向数据库提供输入。处理完查询后,数据库将为我们提供所需的输出。
36) DBMS 中的检查点何时发生?
检查点是 DBMS 当前状态的快照。DBMS 使用检查点来限制在后续崩溃时重新启动所需的工作量。
主要,基于日志的恢复解决方案使用检查点,因此我们不必从头开始执行事务。
37) DBMS 中有哪些完整性规则?
DBMS 中存在两个重要的完整性规则
- 实体完整性:这规定了一个基本规则,即主键的值不能为 NULL。
- 参照完整性:此规则适用于外键,外键可以为 NULL 值,也可以是另一个关系的主键。
38) 什么是索引?
索引是一种数据结构方法,可帮助您快速从数据库文件中检索记录。索引是一个小表,只有两列。第一列包含表的主键或候选键。第二列包含一组指针,用于保存存储特定键值的磁盘块的地址。
39) 什么是数据独立性?
数据独立性是一种有助于访问数据策略的技术。它允许您修改一个级别的模式定义,而不会影响到下一个更高层。
40) 什么是 ER 图?
实体关系图(也称为 ERD)显示存储在数据库中的实体集的集合。此图在 DBMS 中使用,以帮助解释数据库的逻辑结构。这些 DBMS 图基于三个基本概念创建:实体、属性和关系。
41) DBMS 中的哈希是什么?
在 DBMS 系统中,哈希是一种方法,用于在磁盘上直接查找请求数据的地址,需要使用索引结构。在数据库中进行索引和检索项目时,使用较短的哈希关键值代替原始关键值。
42) 什么是透明 DBMS?
透明 DBMS 是一种数据库管理系统,它向用户隐藏其物理结构。物理结构。它也被称为物理存储结构,是指 DBMS 的内存管理器,并解释数据如何在磁盘上保存。
43) 什么是关系度?
关系的度是关系模式的属性。基数是指一个实体相对于另一个实体发生次数的次数。
- 一对一
- 一对多
- 多对一
44) 什么是 DBMS 中的概念设计?
概念设计是数据库设计过程的主要阶段。此阶段的主要目标是设计一个独立于数据库软件和物理细节的数据库。概念数据模型描述了这个过程的主要数据实体、属性、关系和约束。
45) 什么是数据挖掘?
数据挖掘是一个逐步的过程,用于对大量数据进行排序,从而识别趋势和模式。
它使用复杂的统计和数学算法对数据进行分段以预测可能的结果。有许多数据挖掘工具,如 RapidMiner、Teradata、Solver、Silences 等。
46) 什么是查询优化?
查询优化是识别具有最低估计成本和时间的执行计划的过程,用于评估和执行 DBMS 系统中的每个查询。
47) 定义“存储过程”一词。
存储过程的概念与函数非常相似,因为它包含一系列协调的操作。它包含一组频繁用于应用程序执行数据库活动的进程。
48) 什么是基于时间戳的协议?
DBMS 中的基于时间戳的协议是一种使用系统时间或逻辑计数器作为时间戳的算法。它有助于序列化并发事务的执行。此协议确保每个冲突的读写操作都按时间戳顺序执行。
示例
假设有三个事务 A1、A2 和 A3。
- A1 在时间 0010 进入系统
- A2 在时间 0020 进入系统
- A3 在时间 0030 进入系统
事务 A1、事务 A2 和事务 A3 将获得优先。
49) DBMS 中的持久性是什么?
在 DBMS 系统中,持久性保证一旦事务提交到数据库,它就会存储在非易失性内存中,以防止系统故障。
50) 什么是目录?
目录是一个表,其中包含有关每个文件结构、所有数据项的类型和存储格式以及各种数据约束的信息。存储在目录中的信息称为元数据。
51) 什么是存储管理器?
存储管理器是一个软件模块,它提供了存储在数据库中的低级数据与提交给 DBMS 系统的应用程序和查询之间的接口。
52) 什么是缓冲区管理器?
缓冲区管理器是一个程序模块,负责将数据从磁盘存储提取到主内存,并确定要在内存中缓存哪些数据。
53) 什么是 QBE?
Query-by-example 代表一种图形化方法,用于通过称为骨架表的查询模板来访问数据库中的信息。QBE 通过将示例值直接输入查询模板来代表要实现的目标。
54) 什么是标识?
Identity 是一个自动生成数字值的列。它也称为自动编号。可以设置起始值和增量值。但是,大多数 DBMS 会将它们保留为 1。
55) 什么是触发器?
它是与插入、更新或删除操作相关的代码。每当在表上执行关联查询时,它都会自动执行。此代码有助于维护数据库中的完整性。
56) 什么是 DBMS 中的相关子查询?
相关子查询是为外部查询的每一行执行的。它也称为嵌套查询,即嵌入在另一个查询中的查询。
示例
SELECT * from EMP_NAM WHERE 'KAVYA' IN (SELECT Name from DEPT WHERE EMP.EMPID=DEPT.EMPID);
57) 什么是聚集索引?
聚集索引根据其基本值对表行进行排序。在 DBMS 系统中,每个表只有一个聚集索引。
聚集索引帮助 DBMS 系统定义数据在表中存储的顺序。因此,每个表只有一个聚集索引。
58) 什么是散列索引?
非聚集索引将数据存储在一个位置,将索引存储在另一个位置。它包含指向该数据位置的指针。由于非聚集索引中的索引存储在不同的位置,因此一个表可以有多个非聚集索引。
59) 什么是唯一键?
唯一键由表的一个或多个字段或列组成,这些字段或列唯一标识数据库中的每个记录。
它与主键相同,但可以接受表列的一个 NULL 值。它没有相同的重复值。有些表的外部键引用唯一约束。
60) 什么是静态 SQL?
静态 SQL 是嵌入或硬编码在应用程序中的 SQL(结构化查询语言)语句,并且它们在运行时不会改变。数据访问过程是预先确定的,因此更快、更高效。
61) 什么是动态 SQL?
在动态 SQL数据库中,SQL 语句在运行时由应用程序生成,用户可以创建查询。您可以在运行时构建自己的查询。它的速度比静态 SQL 慢,因为查询是在运行时编译的。
62) 什么是关系演算?
关系演算是一种非过程式查询语言。它使用数学谓词演算。因此,它的主要重点是与关系(表)做什么,而不是如何做。
63) 什么是 BI?
商业智能是指将原始数据转化为有意义信息的流程、架构和技术。因此,可以推动有利可图的业务行动。它是一个软件套件,用于将数据转化为可操作的见解和知识。
64) 什么是 DBMS 中的网络模型?
网络模型允许每个子节点有多个父节点。您可以使用它来模拟更复杂的关系,例如订单和零件之间的多对多关系。在此 DBMS 模型中,实体组织在一个图表中,可以通过多个路径访问该图表。
65) 什么是临时表?它们何时有用?
临时表存在于特定会话中,或者它们的数据在整个事务中持续存在。这些表通常用于支持专门的汇总和特定的应用程序处理需求。
最初,没有为临时表分配空间,但随着行的插入,空间将动态分配。