常见数据库管理系统面试问题
为了让您熟悉在与数据库管理系统相关的求职面试中可能被问到的问题类型,我们将在本文中探讨最关键的 DBMS 面试问题 (DBMS)。
Q1) DBMS 的一些用途是什么?
DBMS(数据库管理系统)的首字母缩写词是指其主要功能围绕数据的应用程序系统。此系统使用户能够设计、保存、检索和更新数据以及有关数据在数据库中存储方式的信息。
Q2)“数据库”一词指的是什么?
简单地说,数据库是已组织起来以便用户可以轻松访问、管理和提交数据的各种数据的集合。
Q3) 为什么建议使用 DBMS?列出其一些主要优势以进一步解释。
以下是 DBMS 的一些主要优势
控制冗余 − DBMS 提供了一种方法来防止保存重复数据,因为所有数据都保存在单个数据库中,从而消除了数据库内的冗余。
数据共享 − 由于所有用户和各种应用程序程序将共享相同的数据库,因此 DBMS 也允许同时在多个用户之间共享数据。
备份和恢复功能 − 通过提供称为“备份和恢复”的功能,该功能自动生成数据备份并在需要时恢复数据,DBMS 减少了反复生成数据备份的痛苦。
应用完整性约束 − 必须将完整性约束应用于数据,以便将细化后的数据保存在数据库中并由 DBMS 处理。
数据独立性 − 数据独立性基本上意味着您可以修改数据的结构而无需更改任何底层应用程序的设计。
Q4) 为什么在 DBMS 中使用规范化?
规范化是对基于其唯一函数依赖项和主键的关系模式进行分析,以满足特定标准的过程。
属性包括
以减少数据的冗余。
为了减少插入、删除和更新异常
Q5) DBMS 支持哪些不同类别的语言?
在 DBMS 中,基本上有三种不同的语言,如下所示
DDL − 数据定义语言 (DDL) 是 SQL 查询的集合,例如 CREATE、ALTER、TRUNCATE、DROP 和 RENAME,用于描述数据库和模式结构。
DCL − 数据控制语言 (DCL):DCL 是一系列 SQL 查询,例如 GRANT 和 REVOKE,用于管理用户对数据库的访问。
DML − 数据操纵语言 (DML) 用于执行数据库操作,包括使用一系列 SQL 查询(例如 select、insert、delete 和 update)插入、删除和更新数据。
Q 6) 为什么使用 SQL?
SQL 代表结构化查询语言,它用于通过输入、更新和/或更改数据来与关系数据库交互。
Q 7) 解释主键和外键的概念。
在数据库表中,主键用于唯一标识每条记录,而外键(一个表中的特定字段或字段集,充当另一个表的主键)主要用于将两个或多个表连接在一起。
Q8) 唯一键和主键的主要区别是什么?
下面显示了一些差异
主键和唯一键的主要区别在于,主键永远不能包含空值,而唯一键可以。
一个表中可以有多个唯一键,但每个表只能有一个主键。
Q9) 关于 SQL,“子查询”是什么意思?
答案 − 子查询本质上是包含在另一个查询中的查询;它也称为内部查询,因为它包含在外层查询中。
Q 10) DROP 命令有什么作用?DROP、TRUNCATE 和 DELETE 命令之间有什么区别?
可以使用 DDL 命令“DROP”从数据库中删除表、数据库、索引或视图。
DROP、TRUNCATE 和 DELETE 命令之间有三个主要区别
可以使用 DDL 命令 DROP 和 TRUNCATE 从数据库中删除表,并且一旦表被删除,所有相关的权限和索引也将被删除。这两个过程是不可撤消的,因此只有在绝对必要时才应使用它们。
另一方面,DELETE 命令是一个 DML 命令,也可以用来从表中删除行。
建议将“WHERE”子句与 DELETE 命令一起使用,以防止整个表从数据库中删除。
Q 11) UNION 和 UNION ALL 的主要区别是什么?
连接来自两个或多个表的数据时,使用 UNION 和 UNION ALL;UNION 删除重复行并在合并来自表的的数据后选择不同的行;UNION ALL 不这样做;它只选择来自表的所有数据。
Q12)解释 DBMS 中 ACID 特性的概念?
原子性、一致性、隔离性和持久性特征的组合称为 ACID 属性。这些特性使多人能够安全可靠地共享数据。
原子性 − 这基于“要么全部要么没有”的概念,这基本上意味着如果发生数据库更改,它应该要么对除了用户和应用程序程序之外的每个人都可用,要么根本对除了他们之外的任何人都不可用。
一致性 − 这保证了在任何内部事务期间和之后都保持数据库的一致性。
隔离性 − 正如名称所示,此功能指定发生的每个事务都与其他事务隔离。例如,已启动但尚未完成的事务应与其他事务隔离,以便其他事务不受其影响。
持久性 − 此功能指定数据应始终处于持久状态,这意味着即使系统发生故障或重新启动,任何已提交的数据也应在相同状态下可用。
Q 13:DBMS 相关子查询的作用是什么?
子查询有时也称为嵌套查询或写在另一个查询内的查询。当子查询是针对外层查询的每一行执行时,该子查询称为相关子查询。
非相关子查询的示例为 −
SELECT * from EMP WHERE 'AJITESH' IN (SELECT Name from DEPT WHERE EMP.EMPID=DEPT.EMPID);
在这种情况下,不会针对外层查询的每一行运行内部查询。
Q 14) 解释 DBMS 中实体、实体类型和实体集。
实体是现实中独立存在的事物、地点或对象,其详细信息可以保存在数据库中。例如,任何个人、书籍等。
实体类型是一组具有相似属性的实体。例如,STUDENT 表包含多行,每一行都是一个实体,存储学生的名字、年龄和学生 ID。因此,STUDENT 是一种实体类型,其实体具有相同的属性。
一组具有相同类型的实体是实体集。例如,一家公司的员工群体。
Q 15) DBMS 中有哪些不同的抽象级别?
在 DBMS 中,有三个数据抽象层。
它们包括
物理层 − 物理层描述数据如何在数据库中存储,并且是最低级别的数据抽象。
逻辑层 − 以下级别的数据抽象,称为逻辑层,描述保存在数据库中的数据类型以及数据之间的关系。
视图层 − 最高级别的数据抽象,称为视图层,只显示或陈述数据库的一部分。
Q16) DBMS 中有哪些完整性规则?
确切地说,DBMS 有两个主要的完整性规则。
如下所示
实体完整性:声明一个重要的原则,即主键的值永远不能为 NULL
参照完整性:根据此规则,外键的值必须为 NULL,或者必须作为每个其他关系的主键。
Q 17) DBMS 中的 E-R 模型是什么?
在 DBMS 中,E-R 模型被称为实体关系模型,因为它建立在实体及其之间关系的概念之上。
Q18) DBMS 的函数依赖性是什么意思?
本质上,可以通过此约束来描述关系的各种属性之间的关系。
例如,如果名为“R1”的关系包括属性“Y”和“Z”,那么这两个属性之间的函数依赖性可以表示为“Y->Z”,这表示 Z 依赖于 Y 才能运行。
Q19) DBMS 中的 1NF 代表什么?
正确答案是第一范式 (1NF)。
这种规范化中最简单的一种,属性的域应该只具有原子值。其目的是消除表中的任何重复列。
Q20) DBMS 中的 2NF 代表什么?
第二范式 (2NF)。
任何满足以下两个要求的表都被认为在 2NF 中
表在 1NF 中。
表的非主键属性被认为完全函数依赖于其主键。
Q21) DBMS 中的 3NF 代表什么?
第三范式 (3NF)。
任何满足以下两个要求的表都被认为在 3NF 中
表在 2NF 中。
有人认为,表中的每个非主键属性都非传递地依赖于每个表键。
Q22) BCNF 在 DBMS 中是什么?问题 #22?
Boyce-Codd 范式 (BCNF) 比 3NF 更严格。
任何满足以下两个条件的表都称为 BCNF
该表符合 3NF。
对于任何存在的函数依赖 X->Y,X 是表的超键。
Q23) SQL 中的 CLAUSE 指的是什么?
它与 SQL 查询一起使用,根据用户的需求和 SQL 定义的约束来获取指定的数据。这对于从整个记录集中选择某些记录特别有用。
例如,有包含 WHERE 条件的查询和包含 HAVING 子句的查询。
Q24) 如何在 SQL 中检索表中的奇数记录?
答案 − 可以使用以下查询检索奇数:
SELECT EmpId from (SELECT rowno,EmpId from Emp) WHERE mod(rowno,2)=1;
可以使用以下查询检索偶数:
SELECT EmpId from (SELECT rowno,EmpId from Emp) WHERE mod(rowno,2)=0;
Q25) SQL 如何处理模式匹配?
SQL 中的 LIKE 运算符使得模式匹配成为可能。
当 LIKE 运算符匹配 0 个或多个字符时,它使用字符 "%",当它只匹配一个字符时,它使用字符 "_"。
示例
SELECT * from Emp WHERE name like 'b%';
SELECT * from Emp WHERE name like 'hans_';
Q26) SQL 中的连接是什么意思?
连接是一种 SQL 语句,用于基于共享字段或列组合来自两个或多个表的数据或行。
Q27) SQL 连接有哪些不同类型?
有四种不同类型的 SQL 连接。
内连接 (Inner Join) − 此类型的连接用于检索两个表都共享的表中的信息。
左连接 (Left Join) − 这只返回连接右侧表中的匹配行,返回连接左侧表中的所有行。
右连接 (Right Join) − 这只返回连接左侧表中的匹配行,不返回连接右侧表中的所有行。
全连接 (Full Join) − 这将检索应用连接条件的每个表中的所有行,而不匹配的行具有空值。
Q28) “触发器”这个术语是什么意思?
答案是,触发器是关键脚本或程序之一,它会自动响应表或视图中发生的事件而运行。例如,每当向员工数据库添加新记录时,数据就会自动生成在相关的表中,例如角色表、部门表和薪酬表。
Q29) 什么是存储过程?(问题 29)
存储过程是一组组织成函数的 SQL 语句,这些语句存储在关系数据库管理系统 (RDBMS) 中,并在需要时访问。
Q30) 什么是 RDBMS?(问题 30)
RDBMS 代表关系数据库管理系统。它是一种数据库管理系统,通过使用在不同表中找到的公共字段来访问数据。
Q31) DBMS 支持哪些不同类型的关联?
在 DBMS 中,关系显示表如何相互关联。
各种类型的关系包括
一对一 (One-to-One) − 这基本上表示在表之间应该只有一条记录,或一对一的关系。例如,已婚夫妇每人只能有一个配偶。
一对多 (One-to-Many) − 主键表只有一条记录,但根据一对多关系理论,关联表中可能有许多、一条或没有记录。一位母亲可以有很多孩子。
多对多 (Many-to-Many) − 根据此理论,两个表都可以与多个其他表关联。例如:兄弟姐妹可以有很多,而且通常有很多。