数据库
# 第一章(二级映射)
-
什么是数据处理?什么是数据管理?两者的关系如何?
- 数据处理是对数据进行收集、整理、分析和输出的过程。
- 数据管理是对数据进行规划、组织、存储、维护和控制的过程。
- 数据处理是数据管理的一部分,数据管理提供了数据处理所需的基础设施和规则。
-
试述数据库的三级模式结构。
- 外模式:用户视图,描述用户能看到的数据部分。
- 概念模式:全局视图,描述数据库的逻辑结构和全局约束。
- 内模式:物理视图,描述数据在存储设备上的存储方式。
-
数据库采用三级模式结构有什么好处?
- 提供数据的抽象和独立性。
- 支持多用户视图。
- 提高数据的安全性和完整性。
-
什么是程序与数据的逻辑独立性和物理独立性?
- 逻辑独立性:应用程序与概念模式的独立性,概念模式改变不影响应用程序。
- 物理独立性:应用程序与内模式的独立性,内模式改变不影响概念模式和应用程序。
# 第二章
-
试述概念模型的特点和作用。
- 概念模型是对现实世界的抽象,主要用于数据建模。
- 作用是帮助理解和设计数据库结构,确保数据的完整性和一致性。
-
表示概念模型最常用的方法是什么?简述画 ER 图的步骤。
- 最常用的方法是实体 - 关系(ER)模型。
- 画 ER 图的步骤:
- 确定实体集。
- 确定实体之间的关系。
- 确定属性并分配给实体和关系。
- 画出实体、关系和属性的图示。
-
试述关系模型中的三类完整性约束条件。
- 实体完整性:主键不能为空。
- 参照完整性:外键必须引用有效的主键或为空。
- 用户定义完整性:特定领域的业务规则。
-
外码可以取空值吗?什么情况下才可以取空值?
- 外码可以取空值。
- 当外码表示的关系是可选的,即不需要强制关联到另一张表的记录时,可以取空值。
# 第七章
-
试述事务的概念及事务的 ACID 属性。
- 事务是一个或多个操作的集合,这些操作作为一个单元执行。
- ACID 属性:
- 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成。
- 一致性(Consistency):事务执行前后,数据库保持一致状态。
- 隔离性(Isolation):并发事务之间互不影响。
- 持久性(Durability):事务完成后,其结果永久保存。
-
事务为什么要并发执行?并发事务会产生哪些数据不一致性?
- 并发执行提高系统资源利用率和吞吐量。
- 数据不一致性包括:脏读、不可重复读、幻读。
-
什么是幻影现象?
- 幻影现象是指在一个事务中两次查询同一范围的数据,第二次查询时发现有新的数据插入,导致结果不一致。
-
什么是正确的事务并发调度?什么是可串行化调度?
- 正确的事务并发调度是指保证事务的 ACID 属性。
- 可串行化调度是指并发执行的结果与某个串行执行的结果相同。
-
什么是封锁?有哪两种基本类型的锁?试述它们的含义。
- 封锁是控制并发访问的一种机制。
- 两种基本类型的锁:
- 共享锁(S 锁):允许多个事务读取数据,但不允许修改。
- 排他锁(X 锁):允许事务读取和修改数据,其他事务不能访问。
-
什么是死锁?预防死锁有哪些方法?怎样诊断死锁的发生?怎样解除死锁?
- 死锁是指两个或多个事务互相等待对方释放资源,导致无法继续执行。
- 预防死锁的方法包括:资源有序分配、一次性申请所有资源、超时机制。
- 诊断死锁的方法包括:检测等待图。
- 解除死锁的方法包括:回滚事务、释放资源。
# 第十章
-
试述 Python 使用 pymysql 连接数据库的基本步骤。
- 导入 pymysql 库。
- 使用
connect
方法连接数据库。 - 创建游标对象。
- 执行 SQL 语句。
- 提交事务(对于写操作)。
- 关闭游标和连接。
-
试述如何对 MongoDB 进行基本的增删改查操作?聚合管道又该如何使用?
- 增:使用
insert_one
或insert_many
方法。 - 删:使用
delete_one
或delete_many
方法。 - 改:使用
update_one
或update_many
方法。 - 查:使用
find_one
或find
方法。 - 聚合管道:使用
aggregate
方法,定义一系列的操作步骤,如匹配、分组、排序等。
- 增:使用