【数据库原理】知识点总结,面试提问

数据库原理基础概念(了解后自行组织语言)

  1. 什么是数据库系统(DBS)

    由数据库、硬件、软件和人员组成的,有组织地、动态地存储大量相关数据,方便多用户访问的计算机系统。

  2. 什么是数据库管理系统(DBMS)

    是一种操纵和管理数据库的大型系统软件,用于建立、使用和维护数据库,对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。(有三类:关系数据库系统(RDBS)、面向对象的数据库系统(OODBS)、对象关系数据库系统(ORDBS)、)

  3. 请简述数据库的三级模式和两级映像。

    前情提要:数据库有“型”和“值”的概念,“型”是指对某一数据的结构和属性的说明,“值”是型的一个具体赋值。

    1. 三级模式

      1. 外模式/用户模式/子模式

        是用户和数据库系统的接口,是用户用到的那部分数据的描述。用户使用数据操纵语言对数据库进行操作,实际上是对外模式的外部记录进行操作。程序员只需要与外模式发生联系,按外模式的结构存储和操纵数据。

      2. 概念模式/模式

        是数据库中全部数据的逻辑结构和特征的描述,由若干个概念记录类型组成。

        概念模式的一个具体值成为模式的一个实例,同一个模式可以有很多实例。

        概念模式不仅要描述概念记录类型,还要描述记录间的联系、操作等,但是,概念模式不涉及存储结构等细节。

      3. 内模式/存储模式

        是数据物理结构和存储方式的描述,

        是数据在数据库内部的表示方式,是操作系统的一部分(文件系统),

        它定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。

    2. 两级映像

      1. 模式/内模式 映像

        实现了概念模式和内模式之间的相互转换。实现了数据的物理独立性。即当数据的物理结构改变时,应用程序不用改变,只要修改两者间的映像。

      2. 模式/外模式 映像

        实现了概念模式和外模式之间的相互转换。

        实现了数据的逻辑独立性。即数据的逻辑结构发生变化后,用户程序也可以不修改,只要修改两者间的映像。

  4. 请简述数据库的发展史

    1. 人工管理阶段

      此时期计算机内存小,计算速度低,外存有磁带、卡片,而且软件方面也没有操作系统。

      特点:数据量小、不能共享、数据没有独立性。

    2. 文件管理阶段

      硬件方面出现磁盘等外存,软件方面有了操作系统和负责管理数据的文件系统。

      特点:数据可长期保存、文件具有多样化和结构化、冗余大、独立性差。

    3. 数据库系统阶段

      出现层次模型、网状模型、关系模型。

      特点:数据结构化、独立性高、共享性好、具有统一的数据控制(使用DBMS管理)。

  5. 请简述数据模型

    模型就是对现实世界特征的模拟和抽象,数据模型是对现实世界数据特征的抽象。

    最常用的数据模型分为概念数据模型和基本数据模型:

    1. 概念数据模型/信息模型

      是按照用户的观点对数据和信息建模;

      是现实世界到信息世界的第一层抽象;

      是用户和数据库设计人员交流的语言,主要用于数据库设计。

      其中最著名的是实体-联系模型(E-R模型)。

    2. 基本数据模型

      按计算机系统的观点对数据建模,是现实世界数据特征的抽象,用于DBMS的实现。

      基本的数据模型有层次模型(树形结构表示)、网状模型、关系模型和面向对象模型(以对象为单位)。

      (关系模型的关系模式:Student(Sno,Sname,SD,Sage,Sex))//下划线的属性是主码属性

  6. 请简述数据模型的三要素

    1. 数据结构

      是对研究对象类型的集合。

      是对系统静态特性的描述。

    2. 数据操作

      对数据库中各种对象(即“型”)的实例(即“值”)允许的操作的集合,包括操作和操作规则。例如操作有增删查改,操作规则有优先级别等。

      是对系统动态特性的描述;

    3. 数据的约束条件

      是一组完整性规则的集合。

  7. 请简述E-R模型

    1. 基础概念(作用)

      E-R图用来描述现实世界的概念模型,成为实体-联系模型。在解决实际应用问题时,通常先设计一个E-R模型,然后再将其转换为计算机能接受的数据模型。

    2. 相关概念(了解)

      1. 实体

        在E-R模型中,用矩形表示;

        实体是现实世界中可以区别于其他对象的“事件”或“物体”;

      2. 联系

        在E-R模型中,用菱形表示;

        实体的联系分为实体内部的联系和实体与实体之间的联系:

        1. 实体内部的联系

          反映数据在同一记录内部记录各字段之间的联系。

        2. 实体与实体间的联系/关系

          一对一、一对多、多对多、

      3. 属性

        是实体某方面的特性、内容。

        E-R模型中的属性有以下分类:(简单了解)

        1. 简单属性:不可再分的属性。
        2. 复合属性:可以再划分为更小的部分,例如地址可以分为省市区。
        3. 单值属性:此属性对一个实体只有一个单独值。(例如一个人只有一个身份证号)
        4. 多值属性:此属性对一个实体可能有一组值。(例如一个人可以有多个手机号)
        5. 派生属性:这类属性可以通过别的属性计算出。(例如生日可以从身份证号得出)
  8. 关系数据库相关内容

    1. 关系的相关名词

      1. 超码

        可以使我们在一个实体集中唯一的标识一个元祖的属性;

        超码的任意超集也是超码(即使包含没用的属性)。

      2. 候选码

        可以唯一地确定一个元祖的属性或属性组。(即最小的超码)

      3. 主码

        若一个关系有多个候选码,则选定一个为主码。

      4. 主属性

        包含在任何候选码中的属性们都称为主属性。

      5. 非主属性/非码属性

        不包含在任何候选码中的属性。

      6. 外码

        如果关系模式R中的属性或者属性组不是R的码,但它是其他关系的主码,那么该属性集对R来说就是外码。

      7. 全码

        关系模型的所有属性组是这个关系模式的候选码,则称为全码。

    2. 关系的三种类型

      1. 基本关系/基本表/基表

        实际存在的表,是实际存储数据的逻辑表示。

      2. 查询表

        查询结果对应的表。

      3. 视图

        定义:由基本表或其他视图导出的表。因为它本身不独立存储在数据库中,数据库中只存放它的定义,所以常成为虚表。

        作用:可以将复杂的查询集成为一个视图,简化操作并且提高效率;安全,视图只保存了结构,没有保存数据。

    3. 关系的描述(了解)

      使用关系模式可以形式化地表示为:关系名(属性集合、属性的域、属性向域的映像、属性见数据的依赖关系集合)

    4. 请简述完整性约束

      完整性规则是为防止对数据的意外破坏。

      1. 实体完整性。主键的使用(不可为空)。
      2. 参照完整性。外键的使用(A表取值应参照B表的外键)
      3. 用户定义完整性。用户自己的规定范围等。
    5. 关系运算相关

      1. 基本关系代数运算

        1. 并。R∪S,叠加。
        2. 差。R-S,相减。
        3. 广义笛卡尔积。R × S,相乘。
        4. 投影。选择特定列(属性)
        5. 选择。(利用条件)选择特定行(元祖)
      2. 拓展关系代数运算

        1. 交。交集

        2. 连接。

          1. θ连接。即有限定条件的笛卡尔积(例如A.a列要小于B.b列的乘积)。
          2. 等值连接。限定条件为“相同=”的笛卡尔积。
          3. 自然连接。自然连接是去掉重复列的等值连接。
        3. 除。

        4. 广义投影。使用算术运算后的投影,是对投影运算的扩充。

        5. 外连接

          关系模式R、S。RS有重复的属性(有交集)。

          1. 左外连接

            R左外连接S,结果为两者都有的部分+R特有的部分(特有部分S均为null)。

          2. 右外连接

            R右外连接S,结果为两者都有的部分+S特有的部分(特有部分R均为null)。

          3. 全外连接

            R左外连接S,结果为两者都有的部分。

  9. 数据库的规范化

    1. 请解释相关概念

      1. 函数依赖:某个属性集决定另一个属性集时,称另一属性集依赖于该属性集。
      2. 非平凡的函数依赖:X->Y ,但Y不属于X,则称X->Y是非平凡的函数依赖,反之是平凡的函数依赖
      3. 完全函数依赖:若某个非主属性数据项依赖于全部关键字称之为完全函数依赖。
      4. 部分函数依赖:在关系模式R(U)中,如果X→Y,并且存在X的一个真子集X0,使得X0→Y,则称Y对X部分函数依赖。
    2. 规范化(可能给出关系模式,判断是什么范式,怎么提高范式等级等问题)

      1. 第一范式(1NF)

        关系模式R的每一个分量都是不可再分的数据项。

      2. 第二范式(2NF)

        满足1NF,且每个非主属性完全依赖于主键。

      3. 第三范式(3NF)

        满足2NF,且消除了非主属性对主键的传递函数依赖。

      4. BC范式(BCNF)

        关系模式R为第一范式,且每个属性都不部分依赖于候选键也不传递依赖于候选键,那么称R是BC范式。

  10. 请解释事务管理的作用、有哪些性质

    1. 概念

      事务是一个操作序列,这些操作“要么都做,要么都不做”;

      事务是数据库环境中不可分割的逻辑工作单位。

      (了解)在SQL语句中,对事物定义的语句有三条:开始、提交、回滚、

    2. 特性

      1. 原子性。要么都做,要么都不做。
      2. 一致性。事务执行结果必须保证从一个一致性状态变到另一个一致性状态。
      3. 隔离性。事务(执行时)相互隔离,不可见。
      4. 持久性。一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也将永久有效。
  11. 数据库故障种类及解决方法

    1. 故障种类

      1. 事务内部故障。例如运算溢出、并发事务发生死锁等。
      2. 系统故障/软故障。CPU故障、操作系统故障、停电等。
      3. 介质故障/硬故障。磁盘损坏,强磁干扰等。
    2. 解决方法

      恢复数据的基本原理是“建立数据冗余”,建立冗余数据的方法是进行数据转储和登记日志文件。

      1. 静态转储和动态转储。

        静态转储是转储中不可对数据库进行存取修改操作。

        动态转储即允许对数据库进行存取、修改操作。

        (转储和用户事务可并发进行)

      2. 日志文件。

        事务处理中,DBMS将事务开始、结束以及对数据库的插入、删除、修改的每一次操作都写入日志文件。一旦有故障,利用日志文件撤销事务对数据库的改变。

  12. 并发控制会带来哪些问题,如何解决

    问题:

    1. 丢失修改

      例如火车售票,AB各自售出一张票,结果数据库存票只少了一张。

      破坏了事务的隔离性。

    2. 不可重复读

      例如A读取数据,B修改了数据,此时A再读发现不同。

      破坏了事务的独立性。

    3. 读脏数据

      例如A修改了数据,B读取数据,A回滚,此时B相当于读到垃圾值。

    解决:

    1. 使用封锁技术

      1. 排它锁X

        事务A对数据对象W加上排它锁后,可以读取修改W。其他事务不可对W加锁、读取修改。

      2. 共享锁S

        事务A对数据对象W加上共享锁后,可以读取W。其他事务也可以加共享锁、读取。

    2. 三级封锁协议

      1. 一级封锁协议

        事务在修改数据W之前必须先对其加上X锁,直到事务结束才释放。

        解决丢失更新问题。

      2. 二级封锁协议

        一级基础上,事务在读W之前必须先加S锁,读后可以释放S。

        解决读脏数据问题。

      3. 三级封锁协议

        一级基础上,事务在读W之前必须加S锁,直到事务结束释放S。

        解决丢失修改、读脏数据、不可重复读问题。

  13. 请简述数据库设计的步骤

    1. 用户需求分析。对应用对象的功能、性能、限制等要求进行科学分析,会使用到数据流图与数据字典。

    2. 概念设计。对信息分析和定义,会使用到E-R图。

    3. 逻辑设计。进行E-R图关系模式的转换、关系模式的规范化、进行完整性约束、建立视图

      怎么将这些E-R图中的关系转为逻辑模型?

      1. 一对一:
        1. 联系属性归并到关联的两个实体的任意一方。
        2. 两个实体表互相增加对方的主键作为外键。
      2. 一对多:
        1. 联系属性归并到两个实体属性多的一方。
        2. 实体表属性多的一方增加另一方的主键作为外键。
      3. 多对多:
        1. 联系作为一个独立的关系模式(表),主键即为联系双方实体的主键们。
        2. 两个实体分别建表。
    4. 物理设计。逻辑模式在计算机中的具体实现方案。

  14. 请简述索引的作用、分类、优缺点、使用

    1. 介绍/作用

      是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

    2. 分类(了解)

      主键索引:某一个属性组能唯一标识一条记录,主键索引只能有一个

      唯一索引:避免同一个表中某数据列中的值重复,唯一索引可有多个

      常规索引:快速定位特定数据。

      复合索引:指多个字段上创建的索引。

    3. 优缺点

      优点:查询、分组、排序时提高系统性能

      缺点:建立与维护耗费时间,占空间。

    4. 使用

      建立在经常需要搜索的列上、经常需要排序的列上等。

  15. 索引一定能提高效率吗

    不一定。一般来说,索引查询数据比全表扫描快,但是需要考虑索引需要的空间和定期维护的成本,需要综合考量。

  16. 触发器是什么,有什么作用

    触发器是一种特殊类型的存储过程,不由用户直接调用。它在指定的表中的数据发生变化时自动生效。

    作用:

    1. 可以同步实时地复制表中的数据。

    2. 可以实现复杂的非标准的数据库相关完整性规则。

    3. 可以在写入数据表前,强制检验或转换数据。

    4. 触发器发生错误时,异动的结果会被撤销。

  17. 游标是什么

    系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果。

  18. 数据库中常用的索引有哪些?

    1. B+树索引:B+树是对B树优化处理后的多路搜索树,与B树的区别在于,B树的每个结点都可以存储数据,而B+树只有叶子结点可以存储数据,且每个叶子结点都用链表链接。
    2. Hash索引:通过一定的算法计算出哈希值,然后映射出对应的数据存储位置。检索速度快,但是哈希值可能存在碰撞。
  19. 数据库的安全性是指什么?有哪些安全性技术?

    数据库的安全性

    指保护数据库以恶意破坏和非法存取。
    安全性技术

    多层存取控制、审计、视图、数据加密等方式。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值