文章图片
数据库是任何 IT 系统的支柱。作为一名数据库开发人员,我相信你希望在下一次工作面试中证明自己的专业知识和知识并赢得职位。DBMS常见的面试题有哪些?以下是可帮助你顺利通过的 50 大 DBMS 面试问题列表。此外,为了提高你的技能,你可以阅读SQL 教程和热门 SQL 面试问题,因为 SQL 是 DBMS(数据库管理系统)中的一个集成和重要功能。
DBMS常见的面试题和答案合集问题:定义一个 DBMS(数据库管理系统),它的用途是什么?答: DBMS 是帮助你构建和维护逻辑相关数据(也称为数据库)的软件应用程序。以下是使用 DBMS 的一些优势:
- 数据冗余受到控制。
- 未经授权的访问受到限制。
- 强制执行完整性约束。
- 数据可用性和共享
- 数据保护和存储
问题:你将如何定义 DBMS 检查点?DBMS面试题解析:检查点是在 DBMS 中的所有事务都已提交且数据库处于一致状态之前的点。这是进行备份的时刻,所有脏页(内存中修改页)和旧事务日志从系统中清除以释放内存空间并永久存储到存储磁盘中。例如,可以按如下方式添加手动检查点:
检查点 10
其中 10 是以秒为单位的持续时间。
阅读更多。
问题:解释不同的数据库语言类型。答:有四种:
- DDL(Data Definition Language):用于定义数据库结构或骨架,例如,创建模式、表、索引、约束等。一些DDL语句是create、alter、drop、rename、truncate、comment。
- DCL(数据控制语言):用于检索保存的数据。权限和访问控制属于 DCL,并使用 grant 和 revoke 命令完成。
- DML(数据操作语言):用于访问和操作数据。一些 DML 语句是选择、插入、删除、更新、锁定表、解释计划等。基本上,DML 语句处理用户请求。
- TCL(事务控制语言):用于保存或回滚 DML 所做的更改。TCL 使用的命令是提交和回滚。
- 数据冗余和不一致。
- 访问数据既不高效也不容易。
- 数据可以以不同的格式存储,因此共享具有挑战性。
- 并发访问问题。
- 物理层:它是最低的抽象层,它告诉我们数据是如何物理地存储在内存中的。可以通过顺序访问或随机访问来访问数据。文件使用 B+ 树和散列方法组织。
- 逻辑层:该层以表格的形式存储信息。各种实体之间的关系也存储为简单的结构。
- 视图级别:“视图级别”是抽象的最高范围。用户只能以行和列的形式查看实际数据库的一部分。同一个数据库可能有多个视图。存储和实施细节对用户隐藏。
问题:什么是非规范化?答:这是一种数据库优化技术,将冗余数据添加到一个或多个表中以避免连接。这使得数据检索更快、更有效和更简单的查询。
问题:解释外延和内涵的区别?答: Intention 是常量值,即对数据库或模式的描述,不太可能经常变化,在数据库设计阶段就指定了。扩展名是特定时间的实际数据,也称为数据库快照。它可能会经常更改。
问题:什么是系统R?答: System R 是一个数据库管理系统,它为用户提供高度的数据独立性和数据库抽象。它具有数据控制功能,如触发事务、授权、完整性断言和数据一致性规定。
DBMS常见的面试题和答案合集:解释 BCNF、1NF、2NF 和 3NF 的范式。
答:以上都是正常形式的数据,即组织数据的方式,避免数据冗余和插入、删除和更新异常。
- 1NF:也称为第一范式。此规则规定表的一列只能包含原子(单个)值。
- 2NF:第二范式的缩写。要应用 2NF 规则,表应该在 1NF 中。该规则规定任何非主属性(即不属于任何候选键的属性)不应依赖于表候选键的正确子集。
- 3NF:或第三范式,表应该已经是 2NF。该规则规定,应删除超级键上“非主要”特征的任何传递依赖(功能性)。
- BCNF:是 3NF 的高级和更严格的版本。它也更普遍地称为 3.5NF。对于 BCNF,一个表应该是 3NF 并且遵循规则,对于任何函数依赖 A-> B,A 应该是表的超级键。
- A => 原子性:整个交易一次性发生
- C => Consistency:数据库在事务前后必须一致
- I => 隔离:交易互不干扰;多
- 交易可以同时发生
- D => 持久性:即使发生系统故障,也会反映成功的事务。
删除 | 截短 |
DML 类型 | DDL类型 |
支持 WHERE 条件 | 不支持 WHERE 条件 |
可以获取行锁 | 锁定整个表格和页面 |
执行速度较低 | 它比删除更快 |
每行都有一个日志 | 指示页面释放的单个日志 |
示例:从员工那里删除 emp_id = 2012; | 示例:TRUNCATE TABLE employee_temp |
问题:解释不同类型的数据库键?答:有几种类型的 DBMS 密钥:
- 主键:标识表中特定行的列或列集。
- 超级键:单个键或一组多个键,用于标识表的行。
- 候选键:唯一标识表的元组的一组属性。它本质上是一个没有重复属性的超级键。
- 备用键:表的一列或多列,共同唯一地标识每个表。
- 外键:定义两个表之间关系的公共列。保持数据完整性。
- 复合键:包含另外两个唯一标识记录的属性,即使该列本身不是唯一的
- 复合键:具有两个或多个属性的主键,例如 {customer_id + mobile_number}
- 代理键:当表没有自然可用的主键时创建。为表中的行提供唯一标识。
问题:DBMS 中的实体、实体类型和实体集有何不同?回答:
- 实体:实体是具有物理存在的、独立的并且可以与其他对象区分开来的对象:例如,员工、学生、课程、工作等。
- 实体类型:可以说是相似实体的集合。
- 实体集:实体集是任意时间点的一种类型实体的组合。
select * from employee WHERE emp_id = 2012;
这里,WHERE 是标识要获取的行的子句。SQL 中的其他一些子句是 – GROUP BY、HAVING、ORDER BY
问题:聚合和原子性的区别?答:原子性是指所有的动作同时执行,或者不执行。这意味着如果事务不完整或中间失败,一切都将回滚到先前的稳定状态。我们使用聚合来表达各种实体之间的关系。
问题:DBMS 中有哪些不同类型的关系答: DBMS 中存在三种类型的关系:
- 一对一:每张表记录只与另一张表中的一条记录相关。示例,employee_id 和 unique_ssn_id
- 一对多或反之(多对一):一个表中的记录可以与另一表中的多个记录相关。示例,employee_id 和 phone_number
- 多对多: 第一个表中的一条记录可以关联到第二个表中的多个记录,反之亦然:例如customer_id和product_id。
select student_id, student_name, marks from students outer where salary > (select avg(marks) from students where subject = outer.students);
问题:两层和三层架构的区别?答:两层架构遵循客户端-服务器架构。客户端和服务器之间有直接的通信链接。由于没有中间层,两层架构提供了高性能。客户端可以是任何设备,如移动设备、台式机、笔记本电脑等,而所有数据都位于数据库中。
三层架构包括:
- 表现层:网页浏览器、java小程序、WAP手机等,
- 业务层:业务逻辑,如数据验证、插入、计算和
- 数据访问层:这是一个数据源,如数据库、大型机系统或 ERP 系统。业务层充当中间层,将业务逻辑与表示层和数据层分开,以获得更好的可重用性、数据完整性、可扩展性和性能。
DBMS常见的面试题有哪些:Hash join、Merge join 和 Nested loops 有什么区别?回答:
- Hash-join :在这种类型的join中,数据库对主表进行全盘扫描,构建一个RAM哈希表,然后在另一个表中搜索匹配的表。哈希联接比嵌套循环联接更快,但消耗更多 RAM 资源。
- 合并连接:此连接使用简单的串联,然后进行排序(删除重复项),并且是所有连接中最有效的技术。
- 嵌套循环连接:在这种类型的扫描中,驱动表(主)通过索引范围扫描访问行,驱动表的结果集使用索引扫描方法本身与另一个(辅助)表的探针嵌套.
- 主动更新是那些在数据库中最终在现实世界中变得有用之前发生的更新。
- 追溯更新在它们在现实世界中生效后发生。
- 同步更新在它们在现实世界中生效的同时发生。
聚集索引 | 非聚集索引 |
定义物理数据存储的顺序,即使它们以随机顺序插入。 | 不对物理数据进行排序。索引存储在与实际数据不同的位置 |
每个表只有一个聚集索引,因为数据只能以一种方式排序 | 一个表中可能有多个非聚集索引 |
在许多数据库中,主键约束在同一列上创建聚集索引。 | 非聚集索引可以创建为: CREATE NON-CLUSTERED INDEX IX_tblStudent_deptt ON student(deptt ASC) |
例如,如果有一个student表,有一个主键student_id,数据会按照student_id升序存储,如1,2,3,4。聚集索引将在 student_id 上自动创建。 | 一个索引和它的地址(对行的引用)一起存储在一个单独的表中,dept 行地址 ECE < address> |
这些索引不需要额外的空间。 | 消耗存储空间。 |
概括 | 专业化 |
从各种实体集创建分组称为泛化 | 在实体集中创建子分组称为专业化 |
该过程从几个实体集开始,并创建一个具有一些共同特征的高级实体 | 从单个实体集开始,然后使用不同的功能创建不同的集。 |
应用于一组实体 | 应用于单个实体 |
遵循自下而上的方法 | 遵循自上而下的方法 |
分层模型 | 网络模型 |
记录之间的关系是父子关系 | 关系是指针或链接的形式 |
在更新和删除操作中,可能会出现数据不一致的情况 | 无数据不一致 |
不支持多对多关系 | 支持多对多关系 |
创建树结构和数据遍历有点复杂 | 创建图结构,其中数据遍历很容易,因为节点可以通过两种方式访问??,即父子或反之亦然 |
问题:什么是分层数据库模型?答:在分层数据库模型中,数据被组织成树状结构的节点。一个节点只连接到它上面的一个父节点。因此,该模型中的数据具有一对多关系。此模型的一个示例是 Web 浏览器中常用的文档对象模型 (DOM)。
问题:什么是网络模型?答:网络数据库模型是分层模型的改进版本。在这里,数据也是以树状结构组织的。但是,一个子节点可以连接到多个父节点。这产生了数据节点之间的多对多关系。IDMS(集成数据库管理系统)、集成数据存储 (IDS) 是网络数据库的示例。
问题:什么是 RDBMS?答:关系数据库由表、记录和列组成,并且数据库表之间存在明确定义的关系。关系数据库管理系统 (RDBMS) 是一种允许你创建、更新和管理关系数据库的应用程序。表格交流和共享信息,从而实现数据搜索、数据组织和报告。RDBMS 是 DBMS 的子集。
问题:什么是面向对象的数据库模型?答:在面向对象的数据库模型中,数据由对象表示。例如,关系数据库中的多媒体文件或记录被存储为数据对象,而不是字母数字值。
问题:什么是 SQL?答: SQL(结构化查询语言)是一种编程语言,用于与存储在数据库中的数据进行通信。SQL 语言相对容易编写、阅读和解释。
问题:SQL 中的 DDL、DML 和 DCL 语句是什么?回答:
- DDL:数据定义语言用于通过使用一组 SQL 查询(如 CREATE、ALTER、TRUNCATE、DROP 和 RENAME)来定义数据库和模式结构。
- DCL:数据控制语言用于通过在 SQL 查询中使用一组命令(如 GRANT 和 REVOKE)来控制用户对数据库的访问。
- DML:数据操作语言用于通过使用 SQL 查询(如 SELECT、INSERT、DELETE 和 UPDATE)来维护数据。
问题:索引搜索是什么意思?回答:数据库索引是一种数据结构,提高了数据检索操作的速度的数据库上。提升索引集合的过程称为索引搜索。它是通过使用查询优化和查询分布等方法来完成的。
问题:什么是分布式数据库?答:分布式数据库是物理上分布在各个位置的多个互连数据库的集合。数据库可以在同一个网络上,也可以在多个网络上。DDBMS(分布式 – DBMS)在逻辑上集成数据,因此对用户而言,它表现为一个单一的数据库。
问题:什么是数据库分区?答:数据库分区是一个将逻辑数据库划分为不同独立部分的过程。像表、索引这样的数据库对象在粒度级别被细分、管理和访问。
问题:解释数据库分区的重要性?答:分区是一项强大的功能,可以在降低成本的同时提高性能。它增强了可管理性并提高了数据的可用性。
问题:什么是静态 SQL?答:在静态 SQL 中,SQL 语句嵌入或硬编码在应用程序中,它们在运行时不会更改。如何访问数据是预先确定的,因此它更加快捷和高效。SQL 语句在编译时编译
问题:什么是动态 SQL?答:在动态 SQL 中,SQL 语句是在运行时构造的,例如,应用程序可以允许用户创建查询。基本上,你可以在运行时构建查询。由于查询是在运行时编译的,因此它比静态 SQL 慢。
问题:定义数据仓库。答:数据仓库是一种聚合来自一个或多个来源的大量数据的技术。对数据进行数据分析,为组织制定战略性业务决策。
问题:请说出一个开源 RDBMS。DBMS面试题解析: MySQL 是一个开源的关系型数据库管理系统,它将数据存储在表中并维护数据之间的关系。它使用最强大的查询语言 SQL(结构化查询语言)进行数据库访问,并具有非常强大的语法来创建简单和复杂的查询来检索和构建数据。MySQL 中的数据是有组织的,符合一定的格式,因此它是当今最流行的结构化数据库。它的“免费”源代码可供研究、修改和分发。
问题:什么是MongoDB?答: MongoDB 是一个非关系型非结构化开源数据库。这个面向文档的数据库将你的数据存储在由单个文档组成的集合中。在 MongoDB 中,文档是一个大的 JSON 对象,没有特定的格式或模式。MongoDB 以名为 BSON 的二进制编码格式表示 JSON 文档
- 阅读MongoDB 与 MySQL的区别
问题:DBA 在 DBMS 中的角色是什么?答:数据库管理员 (DBA) 在组织中扮演着一些重要角色。它们如下:
- 安装和配置数据库
- 性能监控
- 安全规划和实施
- 数据备份和恢复
- 故障排除
- 数据迁移
问题:ER 图中的实体是什么?答:实体可以是现实世界的对象,可以轻松识别。例如,在图书馆数据库中,书籍、出版商和成员都可以被视为实体。所有这些实体都有一些属性或特性来赋予它们身份。在 ER 模型中,实体是相互关联的。
问题:什么是数据挖掘?答:数据挖掘是对大量数据进行排序以识别模式和趋势的过程。它使用复杂的数学和统计算法来分割数据以预测可能的结果。有很多数据挖掘工具,如 RapidMiner、Orange、Weka 等。
问题:查询优化是什么意思?答:查询优化是数据库性能方面的一项重要功能。确定用于评估和执行具有最少估计成本和时间的查询的有效执行计划称为查询优化。
问题:什么是目录?答:目录是一张表格,其中包含了每个文件的结构、每个数据项的类型和存储格式以及对数据的各种约束等信息。存储在目录中的信息称为元数据。
问题:数据库设计中有多少种关系?答:数据库设计中主要有三种关系模型:-
一对一 – 一个表 (A) 中的一行仅与另一个表 (B) 中的一行相关
一对多 – 表 (A) 中的一行链接到另一个表 (B) 中的许多行)。但是表 (B) 中的一行仅链接到表 (A) 中的一行。
多对多 – 表 (A) 中的一行链接到表 (B) 中的许多行,反之亦然
问题:所有数据库管理系统共有的原始操作是什么?答:添加、删除和修改是所有 DBMS 常见的最重要的原始操作。
问题:什么是数据库上下文中的基数?答:在 SQL(结构化查询语言)中,术语基数是指包含在数据库表的特定列(属性)中的数据值的唯一性。基数越低,列中的重复值越多。
问题:什么是 SQL SERVER?答: SQL Server 是 Microsoft 开发的 RDBMS。它非常稳定和健壮,因此很受欢迎。SQL Server 的最新版本是 SQL Server 2017。
DBMS常见的面试题和答案合集:什么情况下应该使用索引?回答:可以创建索引来强制唯一性、促进排序以及通过列值进行快速检索。当一个列经常使用时,它是一个很好的候选索引,可以在 WHERE 子句中以合适的条件使用。
问题:什么是数据库中的散列技术?答:散列是将字符串转换为通常较短的固定长度值或表示原始字符串的键。散列用于索引和检索数据库中的项目,因为使用较短的散列键查找项目比使用原始值查找项目更快。
问题:描述并发控制?答:并发控制是管理数据库上的并发操作的过程,以便不损害数据库的完整性。并发控制有两种方法。
它们分别是锁定(使用锁控制对数据项的访问)和版本控制(使用多版本并发控制)。
结论所以,一切都好!请让我们知道你在采访中遇到的本文未涵盖的 DBMS 问题,以便我们可以在此处添加这些问题,以造福 DBMS 社区。
推荐阅读
- 热门C#面试问题和答案合集有哪些(详细指南)
- R语言与MATLAB有什么区别(比较、特性和应用)
- 最新的Java常见面试题和答案合集介绍
- 热门的Linux常见面试题和答案合集解析
- 最热门的JavaScript面试题和答案合集解析
- React与Vue差异比较(有什么区别(哪个更好?))
- 热门的Selenium常见面试题和答案合集分析
- 本文教你win1064位旗舰版系统如何更新升级
- 本文教你win1064位旗舰版系统一键激活密钥及激活办法