60 多个 DBMS 面试问题及答案
以下是面向新手和资深专业人士的所有基本 DBMS 面试问题列表。通过这份 DBMS 面试问题指南,您将踏上获得理想工作的正确道路。
面向应届毕业生的 DBMS Viva 面试问题和答案
1)什么是 DBMS?
DBMS(数据库管理系统) 是一种用于存储和检索用户数据并考虑适当安全措施的软件。该系统由许多操作数据库的程序组成。它接受应用程序的数据请求并指示操作系统提供特定数据。
2)什么是RDBMS?
RDBMS 是关系数据库管理系统的简称。它是一种仅存储需要存储在相关表中的数据的软件系统。在 RDBMS 中,数据以行和列的形式进行管理和存储,称为元组和属性。
3)DBMS 和 RDBMS 之间有哪些重要区别?
以下是 DBMS 和 RDBMS 之间的一些重要区别:
DBMS | RDBMS |
DBMS 将数据存储为文件。 | 数据以表格的形式存储。 |
它以导航或分层形式存储数据。 | 它使用表格结构,其中标题是列名,行包含相应的值 |
DBMS 仅支持单个用户。 | 它支持多用户。 |
对软件和硬件的要求低。 | 对硬件和软件的要求更高。 |
DBMS 不支持规范化 | RDBMS 可以被规范化。 |
不支持客户端-服务器架构 | RDBMS 支持客户端-服务器架构。 |
4)使用 DBMS 系统有哪些优点?
以下是使用 DBMS 系统的优势:
- DBMS 提供各种技术和强大的功能来有效地存储和检索数据。
- 它是一种高效的处理程序,可以平衡使用相同数据的多个应用程序的需求。
- 为数据管理提供统一的管理程序。
- 从未接触过数据表示和存储细节的应用程序。
- 它意味着完整性约束可以获得针对禁止数据访问的高级别保护。
- 它可以帮助您减少应用程序开发时间。
5) 什么是 Live Lock?请举一个例子。
- 活锁是指由于许多重叠的共享锁不断相互干扰,独占锁请求不断被拒绝的情况。进程不断改变其状态,导致它们无法完成任务。
例如1:
- 活锁最直接的例子是两个人在走廊上面对面相遇,两人都让开一边,让其他人通过。
- 然而,由于它们当时的移动方向相同,因此最终它们只会左右移动而没有任何进展。
Example2:
您可以在给定的图像中看到,两个进程中的每一个都需要两个资源。它们尝试使用原始轮询输入注册表来获取锁。但是,如果尝试失败,该方法将再次起作用。
6)什么是数据库分区?
将逻辑数据库划分为完全独立的单元以改善其管理、可用性和性能称为数据库分区。
7)什么是死锁?
A 僵局 是操作系统中发生的一种情况,当另一个等待进程持有所需资源时,任何进程都会进入等待状态。这是多进程处理中的一个常见问题,其中多个进程共享一种特定类型的互斥资源,称为软锁。
死锁示例:
现实世界中的一个例子应该是只朝一个方向行驶的交通。
在这里,桥梁被视为一种资源。
- 因此,只要有一辆车倒车(抢占资源并回滚),死锁就能很快得到解决。
- 如果发生死锁情况,许多车辆可能需要倒车。
- 到那时,饥饿是有可能发生的。
8)DBMS 系统中的关系代数是什么?
关系代数是一种过程查询语言,它收集关系作为输入,并将关系的出现作为输出。它使用各种操作来执行此操作。
9)在关系代数中定义一元运算?
在关系代数中,PROJECTION 和 SELECTION 是一元运算。一元运算是仅使用单个操作数的运算类型。
与 SELECTION 一样,使用关系运算符,例如 - =、<=、>= 等。
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)什么是主键?举例说明。
主键是用于唯一标识 RDMS 系统表中每一行的列或列集。此键不能重复,这意味着表中不应出现相同的值多次。
语法:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype,PRIMARY KEY (Column-Name). );
在这个例子中,
- Table_Name 是您必须创建的表的名称。
- Column_Name 是具有主键的列的名称。
计费示例:
学生编号 | 卷号 | 名字 | 姓氏 | 邮箱 |
---|---|---|---|---|
1 | 11 | David | 威利 | zzz@gmail.com |
2 | 12 | Nick | 夜晚 | xxx@gmail.com |
3 | 13 | 达纳 | 汤普森 | yyy@yahoo.com |
在给定的示例中,我们创建了一个学生表,其中包含 StdID、Roll No、First_Name、Last_Name 和 Email id 列。应将其选为主键,因为它可以唯一地标识表中的其他行。
16)什么是外键?举一个例子
外键是创建两个表之间关系的列。它们用于维护数据完整性并方便在同一实体的两个实例之间导航。此外,它还充当两个表之间的交叉引用,因为它引用另一个表的主键。
计费示例:
学生编号 | 卷号 | 名字 | 姓氏 | 邮箱 |
---|---|---|---|---|
1 | 11 | David | 威利 | zzz@gmail.com |
2 | 12 | Nick | 夜晚 | xxx@gmail.com |
3 | 13 | 达纳 | 汤普森 | yyy@yahoo.com |
在这个给出的例子中,我们创建了一个学生表,其中包含 Stu_ID、学号、名字、姓氏和电子邮件等列。选择 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 代表 Atom性、一致性、隔离性和持久性。
- Atom冰城: 它是一个单一操作单元的事务。您可以完全执行它,也可以根本不执行它,但不能部分执行。
- 坚持是关键 一旦事务被执行,它就应该从一个一致状态转移到另一个一致状态。
- 隔离: 事务应该与其他事务隔离执行(无锁)。并发执行的事务不应该共享中间事务结果。
- 耐用性: 成功竞争事务后,即使在系统故障的情况下,数据库中的所有更改都需要保留下来。
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)什么是数据库 Archi结构?
数据库 Archi结构是一种 DBMS 设计表示,可帮助您设计、开发、实施和维护 DBMS 系统。它将 DBMS 划分为可独立更改、修改、替换和更改的独立组件。
28)透明 DBMS 是什么意思?
透明DBMS对用户隐藏了其物理结构。物理结构或物理存储结构指的是DBMS的内存管理器。
29)什么是 Join?
连接操作是关系代数中最有价值的活动之一。它被广泛用于组合来自两个或多个关系的信息。它基于相同或相关的列执行。JOIN 命令用于大多数复杂的 SQL 查询。
30)什么是内连接?
当满足特定条件时,内部 JOIN 使您能够从两个表返回行。
例如,您需要一份租借过电影的会员列表以及他们租借的电影的标题。使用 INNER JOIN,您可以从两个表中返回满足指定条件的行。
SELECT members.`first_name` , members.`last_name` , movies.`title` FROM members, movies WHERE movies.`id` = members.`movie_id`
针对有经验的 DBMS 面试问题和答案
31)什么是右连接?
右连接返回右侧表中的所有列,即使在左侧表上没有找到匹配的行。
在我们的示例中,假设您需要获取会员的姓名和他们租借的电影。
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 的表都应满足以下两个条件:
- 表位于 1NF 中。
- 表的每个非主键属性在功能上依赖于主键。
34)什么是BCNF?
BCNF 是 Boyce-Codd 范式的一种。它是 3rd 范式,也称为 3.5NF。
符合BCNF并且满足下列条件的表:
- 它符合 3NF
- 要具有函数依赖性 X->Y,X 应该是整个表的超键。
- 这意味着如果 Y 是素数属性,则 X 不能是非素数属性。
35)如何与 RDBMS 通信?
您必须使用 SQL 与 RDBMS 进行通信,使用 SQL 查询为数据库提供输入。处理查询后,数据库将为我们提供所需的输出。
36)DBMS 中何时出现检查点?
检查点是 DBMS 当前状态的快照。DBMS 使用检查点来限制在后续崩溃时重新启动所需的工作量。
主要是,基于日志的恢复解决方案采用检查点,因此我们不必从头开始执行事务。
37)DBMS 中有哪些完整性规则?
DBMS 中存在两个重要的完整性规则:
- 实体 Integrity: 这指出了一个基本规则:主键的值不能为空值。
- 参考文献 Integrity: 该规则涉及外键,外键可能具有 NULL 值,也可能是另一个关系的主键。
38)什么是索引?
索引是一种数据结构方法,可帮助您快速从数据库文件中检索记录。索引是一个只有两列的小表。第一列包含表的主键或候选键。第二列包括一组指针,用于保存存储特定键值的磁盘块的地址。
39)什么是数据独立性?
数据独立性是一种帮助您访问数据策略的技术。”它允许您在一个级别上修改模式定义,而不会影响下一个更高级别。
40)什么是 ER 图?
实体关系图,也称为 ERD,显示数据库中存储的实体集的关系。此图在 DBMS 中用于帮助解释数据库的逻辑结构。这些 DBMS 图是基于三个基本概念创建的:实体、属性和关系。
41)DBMS 中的散列是什么?
在 DBMS 系统中,散列是一种直接查找磁盘上所需数据位置的方法,需要使用索引结构。在数据库中索引和检索项目时,使用较短的散列临界值代替原始临界值。
42)什么是透明 DBMS?
透明 DBMS 是一种向用户隐藏其物理结构的数据库管理系统。物理结构。它也称为物理存储结构,指的是 DBMS 的内存管理器,并解释数据如何保存在磁盘上。
43)关联度是什么?
关系的程度是关系模式的属性。基数是指一个实体与另一个实体出现的次数大致相同。
- 一比一
- 一对多
- 多对一
44)DBMS 中的概念设计是什么?
概念设计是数据库设计过程的主要阶段。此阶段的主要目标是设计一个独立于数据库软件和物理细节的数据库。概念数据模型描述了此过程的主要数据实体、属性、关系和约束。
45)什么是数据挖掘?
数据挖掘 是一个逐步对大量数据进行分类的过程,可让您识别趋势和模式。
它使用复杂的统计和数学 Algorithms 对数据进行细分以预测可能的结果。有许多数据挖掘工具,如 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)什么是 Buffer 经理?
Buffer 管理器是一个程序模块,负责将数据从磁盘存储器中提取到主内存中,并确定在内存中缓存哪些数据。
53)什么是 QBE?
示例查询是一种使用查询模板(称为骨架表)访问数据库中信息的图形化方法。使用示例查询时,可将示例值直接输入查询模板中,以表示要实现的目标。
54)什么是身份?
标识是自动生成数值的列。它也被称为自动编号。可以设置起始值和增量值。但是,大多数 DBMS 将这些保留为 1。
55)什么是触发器?
它是与插入、更新或删除操作相关的代码。每当在表上执行相关查询时,它都会自动执行。此代码有助于维护数据库的完整性。
56)DBMS 中的相关子查询是什么?
相关子查询针对外部查询的每一行执行。它也称为嵌套查询,即嵌入在另一个查询中的查询。
计费示例:
SELECT * from EMP_NAM WHERE 'KAVYA' IN (SELECT Name from DEPT WHERE EMP.EMPID=DEPT.EMPID);
57)什么是 Clustered 索引?
Cluster 索引根据表中数据行的基本值对其进行排序。在 DBMS 系统中,每个表只有一个聚集索引。
聚集索引可帮助 DBMS 系统定义数据在表中的存储顺序。因此,每个表只能有一个聚集索引。
58)什么是非聚集索引?
非聚集索引将数据存储在一个位置,将索引存储在另一个位置。它包含指向该数据位置的指针。由于非聚集索引中的索引存储在不同的位置,因此单个表中可以有多个非聚集索引。
59)什么是唯一键?
唯一键由表的一个或多个字段或列的组组成,用于唯一地标识数据库中的每个记录。
它与主键相同,但可以接受表列的一个空值。它没有相同的值。有些表的外键引用唯一约束。
60)什么是静态 SQL?
静态 SQL 是嵌入或硬编码在应用程序中的 SQL(结构化查询语言)语句,它们在运行时不会改变。数据访问的过程是预先确定的,因此更快捷、更高效。
61)什么是动态 SQL?
在一个 动态SQL 数据库,SQL 语句由应用程序在运行时生成,用户可以在其中创建查询。您可以在运行时构建查询。它比静态 SQL 慢,因为查询是在运行时编译的。
62)什么是关系演算?
关系演算是一种非过程化查询语言。它使用数学谓词演算。因此,它的主要重点是如何处理关系(表),而不是如何处理。
63)什么是 BI?
商业智能是指将原始数据转化为有意义信息的流程、架构和技术。从而推动有利可图的业务行动。它是一套将数据转化为可操作情报和知识的软件套件。
64)DBMS 中的网络模型是什么?
网络模型可让每个子项拥有多个父项。您可以使用它来对更复杂的关系进行建模,例如订单和零件之间的多对多关系。在此 DBMS 模型中,实体以图形形式组织,可通过多条路径访问。
65) 什么是临时表? 它们什么时候有用?
临时表是为特定会话而存在的,或者其数据在整个事务期间都存在。这些表通常用于支持专门的汇总和特定的应用程序处理要求。
最初,临时表没有分配空间,但随着行的插入,将动态分配空间。