数据库复习(PPT1-6章重点题目)

发布时间 2023-12-21 17:13:37作者: lmj625

前言

本文针对PPT上的所有章前问题进行归纳总结。简答题和选择涉及到这些知识。老师不给答案,我东找找西凑凑,吐血整理。

目录



第一章

1.1

如何区分数据、数据库、数据库管理系统、数据库系统四个概念

数据:描述事物的符号记录
数据库:大量数据的集合(长期储存在计算机内,有组织,可共享)
数据库管理系统:位于用户与操作系统之间的数据管理软件(大型复杂的基础软件)
数据库系统:计算机系统引入数据库后的系统构成,由数据库,数据库管理系统,应用系统,数据库管理员构成。

文件系统和数据库系统的区别与联系

区别:文件系统数据定长,记录内有结构整体无结构,最小存取单位是记录,面向某一应用。数据库系统可变长,结构化(用数据模型描述),最小存取单位是数据项,面向真实世界(企业公司)。
联系:都是用来管理数据的软件,数据库中数据的组织和存储是通过操作系统中的文
件系统来实现的。
image

(***) 数据库系统有哪些特点,如何理解?

数据整体结构化(用数据模型描述)
独立性高(物理独立性和逻辑独立性)
高共享(可并发),低冗余,易扩充,由DBMS统一管理控制(使其面向现实世界)


1.2

在数据库系统中,什么是数据模型,为什么它是数据库系统的基础?

数据模型是严格定义的概念的集合(现实世界的模拟),这些概念精确描述了系统的静态特性、动态特性和完整性约束条件。是数据库中用来对现实世界进行抽象表示处理的工具。数据模型通常由数据结构、数据操作和完整性约束三部分组成。
分两个层次:(概念模型)(逻辑物理模型)

数据模型的三要素是什么?

数据结构 数据操作 完整性约束

(***)什么是概念模型,用于何种场景?有什么特点?什么是实体、联系和属性,举例说明实体间联系的三种类型。

是什么:是现实世界到机器世界的一个中间层次,也就是信息世界。

用途:

  • 用于对信息世界的建模
  • 是现实世界到机器世界的中间层次
  • 数据库设计的有力工具
  • 数据库设计人员和用户进行交流的语言

实体:客观存在,可互相区别的事务。可以是具体的人,事,物或抽象概念。
属性:实体具有的某一特征。
联系:现实世界事物内部以及之间的联系

  • 1对1 一个身份证对应一个人
  • 多对1 一个班的很多同学对应一个班级
  • 多对多 一个学生选多门课,同时一门课可以被多名学生选

举出层次模型、网状模型的实例。

层次模型:(树 只能有一个节点无双亲 单一双亲)

image
image

网状模型:(图 可以多个节点无双亲 可以有多个双亲)
image

(***)关系模型的基本概念及术语:关系、元组、属性及分量。

关系:一个关系对应一张表
元组:表中的一行
属性:表中的一列
分量:元组中的一个属性值

1.3

数据库系统中什么是模式(Schema) ,什么是实例( Instance)?

模式:是型,相对稳定,描述数据库逻辑结构和特征
实例:是具体值,反应数据库某一时刻状态。一模式可有多实例,随更新而变动。
image

什么是数据库系统的三级模式结构?

(应用-)外模式(子模式用户模式)-模式-内模式(存储模式)(-数据库)
外模式:数据库用户(程序员和最终应用的使用者)的数据视图,局部数据的逻辑结构,特征的描述。
内模式:是数据物理结果和存储方式的描述,是数据在数据库内部的表示方式
image

(***)如何理解数据独立性?为什么数据库系统具有数据独立性?如何保证数据库系统中的数据独立性?

理解:
即数据与程序之间的独立,使数据定义描述从应用程序分离
分物理独立性(数据存储结构改变,DBA修改模式-内模式映象,内模式不变,应用程序不受影响的硬件改变描述数据的模式不必改变)和逻辑独立性(模式改变,数据库管理员修改外模式-模式映象,使外模式不变,而应用程序是依据外模式编写,所以应用程序不必改变,即数据与程序的逻辑独立性)

为什么:
数据库管理系统在三级模式之间提供两层映像。

如何:
数据库二级映像。



第二章

2.1

关系模型的三个组成部分是什么?请准确解释:(l)关系(2)属性(3 )域(4)元组(5)主码( 6)分量(7)关系模式

(参看教材P38,2.1节,定义2.1-2.3)
三个组成部分: 数据结构,关系操作集合,关系完整性约束
(l)关系:表(2)属性:列(3 )域:属性的取值范围(4)元组(5:行 主码( 6)分量:元组里的一个属性(7)关系模式:对关系的结构描述

关系与关系模式有什么不同?

关系:元组集合,动态不断改变,某一时刻的关系模型状态
关系模式:对关系的结构描述,静态稳定

关系有哪些基本的性质?

  1. 列同质,一个列里的分量数据类型相同,来自同一个域
    2.列可以任意改变顺序
    3.行也是
    4.分量不可再分,是原子值
  2. 任意2个元组候选码必须不同
    6.不同列可以出自同一个域

(***)什么是关系模型的实体完整性?在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?

实体完整性:主码不能是空值
参照完整性是针对某一具体的数据库,对某一具体属性的符合语义要求的约束。
因为该属性在该关系里不是主键,所以可以为空,如果同时也是主键,那么不得为空。

1.2

关系代数操作中包括哪些传统的集合运算?如何运算?

交,并,差,笛卡尔积

(***)关系代数操作中包括哪些专门的关系运算?如何运算?

选择,投影,连接,除

连接、自然连接和外连接有什么差别?

连接:笛卡尔积满足一定条件的元组,从行角度操作
自然连接:特殊的等值连接,去重,,同时从行列角度操作
外连接:保留悬空元组的自然连接

关系代数中的除法运算适用于什么情况的查询操作?

分组

关系代数语言与关系演算语言有什么不同?举例说明。

关系代数语言:查询操作是以集合操作为基础运算的DML语言。
关系演算语言:查询操作是以谓词演算为基础运算的DML语言。
image

image



第三章

保证所有的mysql DDL DML都会

试述 sQL 语言的特点。

答:
(l)综合统一。sQL 语言集数据定义语言 DDL 、数据操纵语言 DML 、数据控制语言 DCL
的功能于一体。
(2)高度非过程化。用 sQL 语言进行数据操作,只要提出“做什么”,而无需指明“怎么做”,
因此无需了解存取路径,存取路径的选择以及 sQL 语句的操作过程由系统自动完成。
(3)面向集合的操作方式。 sQL 语言采用集合操作方式,不仅操作对象、查找结果可以是
元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
(4)以同一种语法结构提供两种使用方式。 sQL 语言既是自含式语言,又是嵌入式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式;作为嵌入式语言,它能够嵌入到
高级语言程序中,供程序员设计程序时使用。
(5)语言简捷,易学易用。



第四章

保障数据库安全性和数据库完整性有什么区别?

保障安全性:防范非法用户和非法操作
完整性: 防范不合语义不正确的数据

数据库安全性控制有哪些常用方法和技术?

用户标识和鉴定,存取控制,视图,审计,密文存储

什么是自主存取控制方法和强制存取控制方法?

自主存取:C2级 通过用户授权对数据存取权限进行安全控制,数据本身无安全性标记
强制存取:B1级 对系统可执行的所有主(DBMS管理的实际用户、代表用户的进程)客体(文件,基表,索引,视图)实施强制存取控制。采用敏感度标记-主体(许可证级别)-客体(密级)许可证级别≥密级,主体可读客体。主体≤客体,可写
实现强制之前必要实现自主。

什么是数据库角色,如何使用角色进行权限控制

被命名的一组与数据库操作相关的权限集合,简化授权过程。
create role 角色名;
grant 权限,...
on 数据对象类型 名字
to 角色,...;

什么是sql注入

通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
如:用户查询学号为'S001'的学生记录,网站页面提交SQL查询字符串为:
SELECTFROM stu where sno='S001'
如果查询内容为:
.SELECT
FROM stu where sno='S001' or 1=1 --'
-- SQL注入. select sno,sname,SEX from stu where sno='S001’ union selectCONCAT(version(),char(58),USER()),database(),now() --'-- sQL注入



第五章(触发器)

什么是数据库的完整性?什么是数据库的完整性约束条件?DBMS的完整性控制机制具有哪三个方面的功能?

数据库的完整性:数据的正确性和相容性
完整性约束条件:数据应该满足的语义约束条件

控制机制三方面功能:
定义功能,即提供定义完整性约束条件的机制;
检查功能,即检查用户发出的操作请求是否违背了完整性约束条件;
违约反应:如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性

在关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性,一般是如何处理的?

对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。
对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的
操作,以保证数据库的正确性。(比如级联操作--当删除或更新父表中的记录时,可以定义级联操作,使相关的子表中的记录也被相应地删除或更新。比如触发器操作比如事务回滚)

什么是触发器,如何使用触发器实现数据库完整性?

触发器是响应特定事件的特殊存储过程,不能直接被用户调用,只能在插入删除修改表数据的时候被处罚,从而执行触发器里定义的sql语句。



第六章

6.1

理解下列术语的定义:主码、外码、候选码、全码,超码,主属性与非主属性;函数依赖、部分函数依赖,完全函数依赖、传递依赖

主码:1列或多列,其值唯一标识一个元组的属性
外码:1列或多列,其值用于与另一张表建立关联
候选码:其值唯一标识一个元组的属性,可以有多个,其中会选一个作为主码
全码:一张表的所有属性才能构成的码
超码:码加任意列
主属性与非主属性:主码的属性;其他属性
函数依赖:一个属性值A唯一确定另一个属性值B,称为B函数依赖A,通常表示为A → B
部分函数依赖:一个属性的值仅依赖于关系中某一部分属性的真子集
完全函数依赖:一个属性的值依赖于关系中所有属性的值,而不依赖于任何一个属性的真子集
传递依赖:如果A → B,B → C,则称C传递依赖于A。

什么是插入异常、修改异常和删除异常?举例说明。

插入异常:
定义: 插入异常发生在向表中插入数据时,由于某些列的值无法确定,导致无法插入整行数据。
举例: 考虑一个包含学生信息的表,其中包括学生ID(主键)、姓名和课程。如果有一名学生还没有选择课程,那么在插入该学生的信息时,由于课程信息无法确定,整行数据可能无法插入。

修改异常:
定义: 修改异常发生在尝试更新表中某一信息时,由于表的冗余或不一致性,导致部分信息的更新可能不正确。
举例: 考虑一个包含供应商信息的表,其中包括供应商ID(主键)、供应商姓名和供应商地址。如果某个供应商搬迁到新的地址,由于表中存在冗余信息,需要更新多个记录,而如果遗漏其中的某一个记录,就会导致不一致性。

删除异常:
定义: 删除异常发生在尝试从表中删除某一信息时,由于表的关联性或依赖性,导致不想删除的其他信息也被一并删除。
举例: 考虑一个包含部门和员工信息的表,其中包括部门ID、部门名称和员工ID。如果某个部门只有一个员工,当删除该员工信息时,由于表的设计,整个部门信息也被删除,而实际上部门仍然存在。

什么样的模式是一个好的关系模式?

没有插入异常、修改异常和删除异常,冗余尽量少

在关系模式student(学号,系,系主任,课程号,成绩)中存在哪些数据依赖?这种关系模式的设计会带来什么问题?如何改造?

部分依赖,插入异常、修改异常和删除异常,冗余
分解成3nf(学号,系,课程号,成绩)(系,系主任)

关系模式的形式化定义的五元组包括哪些?通常用哪两个元组来简化表示关系模式?

R(U,D,DOM,F)
R:关系名 U:组成关系的属性名集合 D:属性的域 DOM:属性向域的映象集合 F:属性间依赖关系
R(U,F)

什么是函数依赖?在关系模式Student(学号,系,系主任,课程号,成绩)中存在哪些函数依赖?存在哪些完全函数依赖和部分函数依赖?存在哪些传递函数依赖?

一个属性值A唯一确定另一个属性值B,称为B函数依赖A,通常表示为A → B


6.2

什么是关系范式,关系模式有哪几种范式,各范式之间有什么联系?

关系范式:符合某一种级别的关系模式的集合
1-3-bc-5nf 包含关系 >

什么是关系模式规范化?

把低级别的关系范式,通过模式分解转化为若干哥高一级的关系模式集合

对于关系Student <U、F>,U= { Sno, sname,Sdept,Mname,cno,Cname, Grade }函数依赖F=

请问: student最高满足的范式,会存在什么问题?怎么解决?
1nf

满足2NF/3NF/BCNF/4NF的关系模式分别是消除了哪些“不好”的函数依赖?(如部分函数依赖、传递函数依赖等)

2NF 消除非主属性对码部分依赖/3NF 消除非主属性对码传递依赖/BCNF 消除主属性对主码的部分和传递依赖/4NF 消除多值依赖


6.3

什么是Armstrong公理系统,有哪些推理规则?

是用于推导关系数据库中的函数依赖的一组公理,它是完备有效的
基本公理包括:
自反性(Reflexivity): 如果X是属性集合,那么X → X。
增广性(Augmentation): 如果X → Y,那么对于任何Z,XZ → YZ。
传递性(Transitivity): 如果X → Y且Y → Z,那么X → Z。

推理规则包括:
分解规则(Decomposition): 如果X → YZ,那么X → Y和X → Z。
合并规则(Union): 如果X → Y且X → Z,那么X → YZ。
伴随规则(Augmentation): 如果X → Y,那么XW → YW,其中W是任何属性集。
减少规则(Pseudotransitivity): 如果X → Y且YZ → W,那么XZ → W。

什么是逻辑蕴含?如何从一组函数依赖求得蕴含的函数依赖?

在一个数据库中存在一组函数依赖,我们可以使用这些函数依赖推导出其他函数依赖
应用Armstrong公理系统中的规则

什么是函数依赖集F的闭包F+,什么是属性集X关于函数依赖集F的闭包X=+?如何判定一个函数依赖x->y是否被F所蕴含?

关系R(U,F)中被F所逻辑蕴含的函数依赖的全体。
image
求Xf+是否包含y

如何使用Armstrong公理系统来求给定关系模式的码?

对决定子的排列组合求闭包,如果闭包为U的全集,且其子集的闭包不是,那么该属性组合就是码。

什么是极小函数依赖集,如何求?(定理6.3)

右边单一属性
不存在多余函数依赖(逻辑蕴含的就不能出现)
决定子无冗余(XY->Z X->Z 不能这样)

什么是无损连接的模式分解?如何判断?(算法6.2,定理6.4)

分解前的任意关系与分解后的自然连接,结果总是相等
image

什么是保持函数依赖的模式分解?如何判断?(定义6.19,引理6.3)

分解前所逻辑蕴含的函数依赖 分解后也要逻辑蕴含
求分解后消失的函数依赖,的决定子闭包 是否包含被决定子。

如何将一个关系模式既具有无损连接性又保持函数依赖的分解为3NF?(学习教材上的算法6.3和算法6.4)

求最小依赖集
不追求右边最小化,合并
分解成多个关系如果不包含主码,那么要补一个主码关系
删去有包含关系的。比如(E,D,F)和(F,D),需要删掉后者

如何将一个关系模式无损地分解为BCNF?(学习教材上的算法6.5)

看哪个函数依赖不满足bcnf,分解成2个关系,R1由 决定子闭包 得到,R2由 决定子+(原先集合-R1)得到
继续考察不符合bcnf的,循环往复直到全都符合。
注意这个过程里,主码和大关系集合U,函数依赖F 是不断缩小的。
详见:
https://www.cnblogs.com/lmj00/p/17908361.html



考纲上的零散内容

简述数据库系统设计步骤以及每个步骤的主要任务和文档

( l )需求分析:准确了解与分析用户需求(包括数据与处理)。
【需求文档,包含用户需求、数据需求和系统功能需求。】
( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS 的概念模型。
【概念模型(通常用实体-关系图表示)、概念设计文档】
( 3 )逻辑结构设计:将概念结构转换为某个 DBMS 所支持的数据模型,并对其进行优化。
【逻辑模型,包括关系模式、数据字典、ER图等。】
( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
【物理模型,包含表定义、索引策略、存储结构等】
( 5 )数据库实施:设计人员运用 DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
【实施计划、数据库创建脚本】
( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改
【部署计划、维护文档】

Mysql索引类型 结构 特点

B-Tree 索引:
结构: 基于B-Tree(平衡树)数据结构,叶子节点存储实际数据行的引用。
特点:
适用于等值查询和范围查询。
对于前缀查询(例如LIKE 'prefix%'),也是有效的。
在内存中存储,对于大多数情况都是有效的。
适用于大多数数据类型,包括数字、字符串等。

哈希索引:
结构: 基于哈希表,将索引列的值通过哈希函数映射为索引值。
特点:
适用于等值查询,不适用于范围查询。
对于大规模数据集,可能出现哈希冲突,降低性能。
在内存中存储,对于特定情况性能较好。
适用于快速查找特定值,但不适用于排序操作。

全文索引(Full-Text Index):
结构: 用于全文搜索,构建了全文搜索引擎。
特点:
适用于文本字段,例如TEXT或VARCHAR。
支持自然语言搜索,而不仅仅是关键词匹配。
不适用于短词(通常小于4个字符)和高频词汇。
通过MATCH...AGAINST语法进行全文搜索。

视图概念 作用 ?什么是视图消解?如何区分行列子集视图和非行列子集视图

视图概念 作用
视图消解: 将对视图的查询转换为对基本表的查询的过程

Mysql隔离级别

事务概念 4性质 具体概念

事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
原子性:事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被其他事务干扰。并发执行的各个事务之间不能互相干扰。
持续性:指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。

实现查询操作的基本算法分析 包括选择连接操作

image

什么是1-3级封锁协议,串行调度,可串行化调度,冲突可串行化判定

封锁就是事务 T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务 T 就对该数据对象有了一定的控制,在事务 T 释放它的锁之前,其他的事务不能更新此数据对象。