数据库常见笔试题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/kaikai_sk/article/details/88094557

ACID

  • 原子性(Atomicity)
    事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。
    回滚可以用回滚日志来实现,回滚日志记录着事务所执行的修改操作,在回滚时反向执行这些修改操作即可。
  • 一致性(Consistency)
    数据库在事务执行前后都保持一致性状态。在一致性状态下,所有事务对一个数据的读取结果都是相同的。
  • 隔离性(Isolation)
    一个事务所做的修改在最终提交以前,对其它事务是不可见的。
  • 持久性(Durability)
    一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。
    使用重做日志来保证持久性。

事务的 ACID 特性概念简单,但不是很好理解,主要是因为这几个特性不是一种平级关系:

  • 只有满足一致性,事务的执行结果才是正确的。
  • 在无并发的情况下,事务串行执行,隔离性一定能够满足。此时只要能满足原子性,就一定能满足一致性。
  • 在并发的情况下,多个事务并行执行,事务不仅要满足原子性,还需要满足隔离性,才能满足一致性。
  • 事务满足持久化是为了能应对数据库崩溃的情况。
    在这里插入图片描述
    原子性-事务管理子系统;
    一致性-完整子系统;
    隔离性-并发控制子系统;
    持久性-恢复管理子系统

关系数据库理论之异常

  • 冗余数据:例如 学生-2 出现了两次。
  • 修改异常:修改了一个记录中的信息,但是另一个记录中相同的信息却没有被修改。
  • 删除异常:删除一个信息,那么也会丢失其它信息。例如删除了 课程-1 需要删除第一行和第三行,那么 学生-1 的信息就会丢失。 [不应该被删除的而删除了]
  • 插入异常:例如想要插入一个学生的信息,如果这个学生还没选课,那么就无法插入。 [应该插入的没插进去]

三级模式结构

数据库的三级模式结构是指:数据库系统是由外模式、模式和内模式三级构成,如图:
在这里插入图片描述

  1. 模式(Schema)
    模式也称为:逻辑模式,它是DB中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式层是数据库模式结构的中间层,既不涉及到数据的物理存储细节和硬件环境,也与具体的应用程序、应用开发工具以及高级程序设计语言无关(C、C++、JAVA等)。
    模式就是数据库数据在逻辑上的视图,且一个数据库只有一个模式。实际工作中,模式就等同于程序员创建一个具体的数据库的全部操作,如:这是一个MySQL数据库,有2张表,每个表的名字,属性的名字、类型、取值范围,主键,外键,索引,其他完整性约束等等。
    DBMS提供模式描述语言(模式DDL)来严格地定义模式。

  2. 外模式
    外模式也称为:子模式(subschema)/用户模式,它是数据库用户(应用程序员、最终用户)能够看到的使用的局部数据的逻辑结构和特征的描述,是数据库的数据视图,是与某一个应用有关的数据的逻辑表示。
    外模式通常是模式的子集。一个数据库可以有多个外模式。同一个外模式可以为某一用户的多个应用系统所使用,但一个应用系统只能使用一个外模式。
    外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
    DBMS提供子模式描述语言(子模式DDL)来严格地定义子模式。

  3. 内模式
    内模式也称为:存储模式(Storage schema),一个数据库只有一个内模式。它是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。如:记录的存储方式是堆存储,还是按照某些属性值的升(降)存储,还是按照属性值聚簇(cluster)存储;索引按照什么方式组织,是B+树索引,还是hash索引等等。
    DBMS提供内模式描述语言(内模式DDL/存储模式DDL)来严格定义内模式。

范式

高级别范式的依赖于低级别的范式,1NF 是最低级别的范式。
在这里插入图片描述

  1. 第一范式
    属性不可分。
  2. 第二范式
    每个非主属性完全依赖与键
    可以通过分解来满足。
  3. 第三范式
    非主属性不传递函数依赖于键码。

视图

视图是从一个或几个基本表导出的表,是一个虚表,而表是物理存在的,
视图是已编译的sql语句
视图的优点:
1、视图能够简化用户的操作
2、视图使用户能以多种角度看待同一数据
3、视图重构数据库提供了一定程度的逻辑独立性
4、视图能够对机密数据提供安全保护
5、视图能够更清晰的表达

视图的
定义功能强于表,因为可以在多张表上定义视图;
操作能力弱于表;
控制能力相当

Access数据库对象

Access的数据库对象:
1、表:主要用于存储数据。
2、查询 主要用于提取数据。
3、窗体 用户与程序的交互。
4、报表, 主要用于展示数据。
5、页, 主要用于数据共享。
6、宏, 用于自动化完成。

猜你喜欢

转载自blog.csdn.net/kaikai_sk/article/details/88094557