IT 运维工程师面试题, 请描述关系型数据库和非关系型数据库的区别,并举例说明.
IT 运维工程师面试题, 请描述关系型数据库和非关系型数据库的区别,并举例说明.
QA
Step 1
Q:: 请描述关系型数据库和非关系型数据库的区别,并举例说明。
A:: 关系型数据库(RDBMS)使用表格来存储数据,这些表格通过预定义的结构(如行和列)相互关联。常见的关系型数据库包括MySQL、PostgreSQL、Oracle和SQL Server。非关系型数据库(NoSQL)则没有固定的表格结构,可以存储结构化、半结构化或非结构化的数据。NoSQL数据库包括文档型(如MongoDB)、键值型(如Redis)、列存储型(如Cassandra)和图数据库(如Neo4
j)。关系型数据库适用于需要事务支持和复杂查询的应用,而非关系型数据库则更适合大规模、分布式的数据存储和处理。
Step 2
Q:: 什么是事务?事务的ACID特性是什么?
A:: 事务是一组操作的集合,这些操作要么全部成功,要么全部失败。事务的ACID特性包括原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持久性(Durability)。原子性保证事务中的所有操作要么全部执行,要么全部不执行;一致性保证事务执行前后数据库的状态一致;隔离性保证并发事务之间不会互相影响;持久性保证事务完成后其结果是永久的。
Step 3
Q:: 什么是索引?为什么要使用索引?
A:: 索引是一种数据库对象,用于提高查询效率。它类似于书的目录,通过建立索引,数据库可以更快地定位到所需的数据,从而减少查询时间。常见的索引类型包括B树索引、哈希索引、全文索引等。虽然索引会占用一定的存储空间并在数据写入时带来额外的开销,但在查询频繁的场景中,它能显著提升性能。
Step 4
Q:: 什么是数据库范式?请简要说明第一范式、第二范式和第三范式。
A:: 数据库范式是设计数据库表结构的一组规则,目的是减少数据冗余和提高数据一致性。第一范式(1NF)要求每个字段都是不可分割的原子值;第二范式(2NF)在满足1NF的基础上,要求每个非主键字段完全依赖于主键;第三范式(3NF)在满足2
NF的基础上,要求非主键字段之间不能有传递依赖关系。