2022数据库期末考简答题知识点整理

简答题相关

目录没什么时间研究怎么简化,将就一下

函数依赖,范式,候选码求解

函数依赖

在了解范式前需要先了解一下函数依赖,以防题目中出现函数依赖的抽象描述看不懂。函数依赖的表达一般是A->B的形式,即A决定B

  • 平凡函数依赖:

    没什么意义的函数依赖,意思就是一个属性可以决定它本身

  • 非平凡函数依赖:

    就是在函数依赖的表达式中不存在平凡函数依赖这种废话

  • 完全函数依赖:

    在A->B中,A不可以拆分出子属性来决定B,这也是第二范式的判别条件

    e.g. (A, B) -> C 是完全函数依赖,则A不能单独决定C,B同理也不能单独决定C

  • 部分函数依赖:

    不满足完全函数依赖条件的就是部分函数依赖

  • 传递函数依赖:

    很简单,就是A->B, B->C, 则A->C,其实就是间接决定的意思,这也是第三范式的判别条件

候选码的求解

候选码的求解考的概率挺大,可以重点复习一下

候选码的求解题型首先会给出关系模式的所有属性,再给出属性的函数依赖,要求通过这些条件求出候选码

解答步骤:

先暂定一组属性,通过属性的函数依赖来找它是否能够决定这个关系的所有属性

这个属性可以这样找:

  • 从函数依赖的左侧找,左侧指的就是A->B的A这一侧。

    因为左侧的属性能够决定右侧的属性,所以候选码大概率在左侧

  • 也可以从完全不出现在函数依赖中的属性开始找,没有属性可以决定它,那么它作为候选码其中一员的可能性非常大

e.g. 设关系模式 R ( A B C D ) R(ABCD) R(ABCD),其函数依赖集 F = { D → B , B → D , A D → B , A C → D } F=\{D\rightarrow B, B\rightarrow D, AD\rightarrow B, AC\rightarrow D\} F={DB,BD,ADB,ACD}求R的所有候选码:

解答过程:

首先看D,D能决定B,接下来走不通了,pass

再看B,B能决定D,接下来走不通了,pass

看AD,AD能决定B,但ABD不能决定C,pass

最后看AC,AC能决定D,AD加一起又能决定B,这个时候ABCD全有了,那么AC是候选码

书面解答过程:(考试的时候可能要这么写,不过看答案好像可以直接给结果,总之会做就行)

( A C ) + = { A , C } (AC)^+=\{A,C\} (AC)+={A,C} A C → D AC\rightarrow D ACD ( A C ) + = { A , C , D } (AC)^+=\{A,C,D\} (AC)+={A,C,D}

( A C ) + = { A , C , D } (AC)^+=\{A,C,D\} (AC)+={A,C,D} A D → B AD\rightarrow B ADB ( A C ) + = { A , C , D , B } (AC)^+=\{A,C,D,B\} (AC)+={A,C,D,B}

所以 A C AC AC R R R的唯一候选码

范式的判断

注意:每个高级的范式条件都建立在低级范式条件的基础上,也就是说如果有一个关系连低级范式的条件都不满足,那么它必不可能是高级的范式

  • 第一范式(1NF):

    在关系中每个属性不可再分割,也就是每一列不能再被分割为更小的列

  • 第二范式(2NF):

    主属性(候选码)完全决定非主属性,如果主属性是由多个属性组成的,2NF规定组成主属性的列不能拆分出来单独决定某个非主属性

  • 第三范式(3NF):

    主属性(候选码)不能通过关系的传递来间接决定某个非主属性,每个非主属性都必须直接被主属性决定

    考点可能会要求将第二范式分解为第三范式,找到多余的候选码,将多余的候选码分解出来即可

  • BC范式(BCNF):

    不考,看个乐子

    不管是候选码还是非主属性都不能传递函数依赖一个候选码,即在关系中某个B->C的函数依赖里,候选码不能出现在右边

参考题型
例题1

现有如下关系模式:

R(A,B,C,D,E)

其中:AB组合为码

R上存在的函数依赖有AB→E,B→C,C→D

(1)该关系模式满足2NF吗?为什么? (4%)

(2)如果将关系模式R分解为:

R1(A,B,E)

R2(B,C,D)

指出关系模式R2的码,并说明该关系模式最高满足第几范式?(在1NF~BCNF之内)为什么?

答案

(1)答:不满足。

因为码为AB,并且B→E,而E是非主属性,存在非主属性对码的部分依赖。

(2)R2的码为B

R2最高满足2NF

因为B为单属性,R2满足2NF,但存在B→C,C→D,即非主属性对码的传递函数依赖,R2不满足3NF,故R2最高满足2NF。

例题2

设有关系模式 R<U, F> U={ A , B , C , D , E }

F={AB→C, B→D, C→E, EC→B, AC→B },求R的候选码,并判断R的范式。

答案

答:R的候选码: AB, AC;

​ 主属性: A, B, C; 非主属性: D, E。

R 不属于 BCNF ∵ EC → B的决定因素EC不包含码。

R 不属于 3NF ∵存在非主属性E对码AB的传递依赖:

​ AB→C , C→E

R 不属于 2NF

​ ∵存在非主属性D对码AB的部分依赖 B → D。

R 属于 1NF

关系代数的计算

关系代数的计算其实很简单,掌握选择和投影两个计算的概念和计算方法就行,连接有能力就蛮看看,除可以用一堆选择和投影代替

选择 σ

选择运算是对行的筛选运算,也就是选择表里的特定行,在T-SQL语法中对应的语句是WHERE

选择运算用σ表示,字符型变量要用一对单引号扩起

格式如下: σ 条 件 ( 表 名 ) σ_{条件} (表名) σ()

e.g. 查询计算机系的全体学生: σ S d e p t = ′ C S ′ ( S t u d e n t ) σ_{Sdept ='CS'} (Student) σSdept=CS(Student)
Sdept是属性名,'CS'Sdept的取值,Student为表名

e.g. 查询Student表中年龄小于20的男生:
σ ( S a g e    <    20 )    ∧    ( S s e x    =    ′ 男 ′ ) ( S t u d e n t ) σ_{(Sage\; < \;20)\;∧\;(Ssex\;=\;'男')} (Student) σ(Sage<20)(Ssex=)(Student)

这个∧表示与的意思

投影 π

投影运算是对列的筛选运算,也就是选择表里的特定列,在T-SQL语法中对应的语句是SELECT

投影运算用π表示,格式如下:

π 列 名 ( 表 名 ) π_{列名}(表名) π()

e.g. 查询学生关系中有哪些系: π S d e p t ( S t u d e n t ) π_{Sdept}(Student) πSdept(Student)
Sdept是属性名,Student为表名

连接

连接运算是两个表的运算,一般用于找到两个表中相同属性包含的字段

连接有等值连接和自然连接,自然连接其实就是等值连接去掉了两个表合并以后重复的属性

等值连接的表示: R ⋈ 条 件 S R⋈_{条件}S RS,自然连接不在下写明条件

等值连接仅做满足条件的横向连接,会保留两个关系中的相同属性(列)

除 ÷

除运算同时从行和列的角度进行运算,适用于包含“全部”字眼的查询

e.g. 查询已注册选修了所有课程的学生的名字

除运算如果没有要求用的话可以用选择和投影代替,如果有要求用的话,我笔记全在下面,自求多福了

这个东西太抽象了我自己不看例题都看不懂

定义:给定关系R(X, Y)S(Y, Z),X, Y, Z为属性列,关系R和关系S中的Y出自相同域集,即Y为R,S的共同属性,则:

R ÷ S    =    { t r [ X ]    ∣    t r    ∈    R   ∧   Π Y ( S ) ⊆ Y x } R\div S\;=\;\{ t_r[X]\; |\; t_r\;∈\; R\, ∧\, Π_Y(S)⊆Y_x \} R÷S={tr[X]trRΠY(S)Yx}

其中, Y x Y_x Yx x x x R R R中的象集, x = t r [ X ] x=t_r[X] x=tr[X]

除后只剩下属性X

对于: T = R ÷ S T=R\div S T=R÷S

T中包含了R中所有这样的元组:这些元组以同一个身份选中了S中所有的内容,然后把S里的属性扔掉,剩下的属性构成了这样的元组。

结果就是在R表中,同时满足S表中与R表相同属性的所有条件的信息,但没有S2中的字段的新表。

结果的特点:同时满足除数的与被除数的相同属性,同时其余各属性都相等

  • 结合投影使用,可达到某列相同元素,同时满足满足另一列的属性

(小总结:左表除右表的结果应该是找到左表里和右表相同的属性,结果就是看左表里和右表不相同的属性对应的那些相同属性的值与右表完全相同的有哪些)

这玩意太抽象了我讲不明白,看下面的例题吧

e.g. 设关系 R 、 S R、S RS分别为下表中左和右两表,求 R ÷ S R\div S R÷S

ABCBCD
a1b1c2b1c2d1
a2b3c7b2c1d1
a3b4c6b2c3d2
a1b2c3
a4b6c6
a2b2c3
a1b2c1

R ÷ S R \div S R÷S

A
a1

e.g.左表为 R R R,右表为 S S S,求 R ÷ S R\div S R÷S

ABCDCD
abcdcd
abefef
abhk
bdef
bddl
ckcd
ckef

结果为

AB
ab
ck

e.g. 查询至少选修1号课程和3号课程的学生号码

CnoSnoCno
12002151211
32002151212
2002151213
2002151222
2002151223

解题思路:首先建立一个临时关系K,然后求: π S n o ,   C n o ( S C ) ÷ K π_{Sno,\,Cno}(SC)\div K πSno,Cno(SC)÷K

200215121象集{1, 2, 3} 200215122象集{2, 3}

K = Π C n o ( σ C n o = ′ 1 ′ ∨ C n o = ′ 3 ′ ( C o u r s e ) ) = { 1 , 3 } K=Π_{Cno}(σ_{Cno='1' ∨ Cno='3'}(Course))=\{1,3\} K=ΠCno(σCno=1Cno=3(Course))={1,3}

于是: Π S n o ,   C n o ( S C ) ÷ K    =    { 200215121 } Π_{Sno,\,Cno}(SC)\div K\; =\; \{200215121\} ΠSno,Cno(SC)÷K={200215121}

象集 Z x Z_x Zx

给定一个 X X X和关系 R ( X , Z ) R(X, Z) R(X,Z) Z Z Z为属性组。

t [ X ] = x t[X]=x t[X]=x时, x x x R R R中的象集为:

Z x = { t [ Z ]    ∣    t ∈ R ,    t [ X ] = x } Z_x=\{t[Z]\; |\; t ∈R,\;t[X]=x \} Zx={t[Z]tR,t[X]=x}

它表示 R R R中属性组 X X X上值为 x x x的诸元组在 Z Z Z上分量的集合

e.g. R R R:

x1Z1
x1Z2
x1Z3
x2Z2
x2Z3
x3Z1
x3Z3
  • x 1 x_1 x1 R R R中的象集
    Z x 1 = { Z 1 , Z 2 , Z 3 } Z_{x_1}=\{Z1,Z2,Z3\} Zx1={Z1,Z2,Z3}
  • x 2 x_2 x2 R R R中的象集
    Z x 2 = { Z 2 , Z 3 } Z_{x_2}=\{Z2,Z3\} Zx2={Z2,Z3}
  • x 3 x_3 x3 R R R中的象集
    Z x 3 = { Z 1 , Z 3 } Z_{x_3}=\{Z1,Z3\} Zx3={Z1,Z3}

综合题

画E-R图

没什么好讲的,实体用方框画,属性用圆形画,联系用菱形画,线不要带箭头直接连

画关系模式

其实就是画个表格,格式是 :

表名 (主键,属性1,…,属性n)

使用T-SQL语句建数据表

语法格式如下:

CREATE TABLE 表名 (
	列名1 类型 约束条件(可选),
    ....
    列名n 类型 约束条件(可选),
    
    表级约束条件(可选)
)

其中常用的列级约束条件有:

NOT NULL  #指定不为空
PRIMARY KEY #主键
CHECK(条件表达式) #检查是否满足条件表达式
IDENTITY(初始值,增长值) #自增长值,常用于主键

常用的表级约束条件:

PRIMARY KEY(列名,可多个) #指定主键
CHECK(条件表达式) #检查是否满足条件表达式
FOREIGN KEY 列名 REFERENCES 表名(列名) #指定外码,用于指示参照完整性 
创建DML触发器

不知道考不考,反正先整着

首先介绍一下触发器

触发器是数据库服务器中发生事件时自动执行的一种特殊的存储过程

分为DML,DDL触发器和LOGIN登录触发器

  • DML触发器:

    用于数据操纵语言DML的触发器,主要针对数据的增删改语句

  • DDL触发器:

    用于数据定义语言DDL的触发器,主要针对数据表的增删改语句

  • LOGIN触发器:

    实现对登录用户的锁定、限制和跟踪等

AFTER触发器和INSTEAD OF触发器

DML触发器根据执行的时间又分为AFTER触发器和INSTEAD OF触发器

  • AFTER触发器:

    顾名思义是事件执行后才激发执行的触发器

  • INSTEAD OF触发器:

    顾名思义直接替换掉相关的DML语句,在语句执行前就激发执行的触发器

使用T-SQL语句创建DML触发器

AFTER触发器:

CREATE TRIGGER 触发器名
ON 表名
FOR AFTER 具体的DML事件
AS
触发器的具体SQL语句

INSTEAD OF触发器:

CREATE TRIGGER 触发器名
ON 表名
FOR INSTEAD OF 具体的DML事件
AS
触发器的具体SQL语句

较为零散的考点

目录没时间研究怎么简化,就这样吧

与文件系统相比,数据库系统的优点
  • 数据冗余度减少
  • 数据共享性增强
  • 具有较高的数据独立性
  • 数据组织结构化
  • 具有统一的数据控制功能
关系的性质
  1. 列是同质的,即每一列的数据类型相同,并来自同一个域
  2. 不同的列可出自同一个域
    • 其中的每一列称为一个属性
    • 不同的属性要给予不同的属性名
  3. 列的顺序是任意的
  4. 不允许存在两个相同的元组
  5. 行的顺序是任意的
  6. 每一个分量都是不可再分的,即不允许表中套表
数据库,数据库管理系统,数据库系统的概念
  • 数据库:

    长期存储在计算机内的,有组织的,可共享的大量数据集合

  • 数据库管理系统:

    是位于用户与操作系统之间的一层数据管理软件

  • 数据库系统:

    包括数据库,数据库管理系统,应用程序和数据库管理员,是管理数据库的系统

数据库三级模式结构及其优点
  • 内模式:

    又称为存储模式或物理模式(名字真多)是数据在数据库系统中最底层的表示

    描述了数据的物理结构和存储方式,定义了存储记录的类型,存储域的表示等

  • 概念模式:

    又称为逻辑模式,用于对整个数据库中数据逻辑结构的特征、实体及其性质与联系进行描述

    是现实世界中按需求讲某个应用环境抽象形成的整体逻辑

  • 外模式:

    又称子模式或用户模式(我真麻了),是概念模式的一个子集

    是应用程序所使用的局部数据的逻辑结构和特征的描述,是使用该程序的用户所看到的数据视图

优点:把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。保证了数据能具有较高的逻辑独立性和物理独立性

数据管理和数据处理的关系
  • 数据处理:

    也称信息处理,泛指用计算机对各种类型数据进行的处理操作,这些操作包括 对数据进行采集、转换、分类、存储、排序、加工、维护、统计和传输等一系列活动。

  • 数据管理:

    主要指对数据进行分类、组织、编码、存储、检索和维护等数据处理的基本操作,是数据处理的核心内容。

数据完整性和安全性的区别
  • 完整性:防止数据在操作过程中出现不正确的数据
  • 安全性:防止数据库被恶意破坏或被非法操作
数据库分离和删除的区别

数据库的分离是指把数据库从DBMS连接中分离出来变成静止的文件以供操作,删除是指直接删除文件

关系模型的完整性规则
  • 实体完整性(即主键
  • 参照完整性(即外键
  • 用户定义的完整性
等值连接和自然连接的区别

等值连接是从两个关系中选取指定的两个属性值相等的元组

自然连接是删除重复属性的等值连接

数据模型的三要素
  • 数据结构:

    用于描述数据的静态特性

    是数据模型的基础,确定数据模型的性质

  • 数据操作:

    是对数据库中各种对象类型的实例允许执行的所有操作和相关操作规则的集合

    是数据模型的关键,确定数据模型的动态特性

  • 数据的约束条件:

    是一组完整性规则的集合

    主要起辅助作用,用于保证数据的正确性,有效性和相容性

SQL的四大功能
  • 数据查询功能
  • 数据操纵功能(数据的增删改)
  • 数据定义功能(数据表的增删改)
  • 数据控制功能(事务管理,安全性控制等)
登录名,数据库用户和数据库的关系

登录名只是用户登录数据库服务器的凭证,要访问数据库,还必须要有基于登录名创建的数据库用户

角色的作用

角色是相关操作权限的集合,可以分为服务器角色,数据库角色,应用程序角色等

可以将角色视为一个用户组,可以简化权限管理,将主体添加到角色中就可以让主体拥有角色的全部权限

事务
定义

事务是构成单一逻辑工作单元的数据库操作序列。这些操作是一个统一的整体,要么全部成功执行(执行结果写入到物理数据文件),要么全部不执行(执行结果不写入到任何文件)

事务的ACID特性

事务的主要特性体现在以下四个方面:

  • 原子性(A

    事务是数据库操作的逻辑工作单位,事务中的操作是一个整体,不能再被分割,要么全部执行,要么全部都不执行

  • 一致性(C

    事务的一致性是指事务执行前后都能保持数据库状态的一致性,即事务的执行结果是将数据库从一个一致状态变为另一个一致状态

  • 隔离性(I

    多个事务在并发执行时互不干扰

  • 持久性(D

    又称永久性,指一个事务成功提交,其对数据库的改变将是永久的,即使有系统故障等问题

一个数据库管理系统及其并发控制机制应确保这些特性不被破坏

并发控制的作用

因为数据库具有共享性,所以很可能会产生多个用户同时访问数据块的问题,因此需要引入并发控制来解决并发访问数据块可能产生的各种问题

锁及其意义

锁是用于事务并发控制的一种机制

锁用于锁定数据块,分为以下几种:

  • 共享锁(读锁):

    一个数据块被加上共享锁后,其他事务可以读取这个数据块,但不能修改这个数据块。

    此时其他事务可以对数据块重复加共享锁

  • 排它锁(写锁):

    一个数据块被加上排它锁后,加锁的事务可以对它进行修改操作,其他事务不能对它上任何锁,也不能执行任何修改操作

  • 更新锁:

    一个能在共享锁和排它锁状态反复横跳的锁,在读数据的时候是共享锁,在更新数据的时候是排它锁

    可以较好地防止死锁,且一个数据块一次只能分配一个更新锁

视图和数据表

视图其实就是一个可视化的查询命令,是一种动态生成的“虚表”

视图是基于数据表的一种查询语句,针对视图的操作实际上是对原数据表的操作

视图的优点

挑一点好记的记一点就好

  • 提供个性化的数据显示功能

  • 简化数据操作

  • 自组织数据

  • 组合分区数据

  • 便于数据共享

  • 提高安全性

数据库管理系统DBMS的功能
  • 数据定义功能(就是创建表,修改表这些

  • 数据操纵功能(数据的增删改查

  • 数据控制功能(控制数据库的安全性,完整性等

以上三种为主要功能,下面的可以忘,上面的不能忘

以下功能大部分包含在上面三种功能内

  • 数据通信功能
  • 数据库的建立和维护功能
  • 数据组织、存储和管理功能
  • 数据库的运行管理功能
  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
一、简答题 1、什么是数据与程序的物理独立性?什么是数据与程序的逻辑独立性? ①物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。也就是说,数据在数据库中怎样存储是由数据库管理系统管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变时应用程序不用改变。 ②逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变时用户程序也可以不变。 2、试述等值连接与自然连接的区别和联系。 连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。 3、试述实现数据库安全性控制的常用方法和技术。 ( l )用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。 **( 2 )存取控制:**通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。 **( 3 )视图机制:**为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 ( 4 )审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 **( 5 )数据加密:**对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。 4、试述关系模型的三类完整性规则,并举例说明。 实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值; 例子: (1) 实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。 **参照完整性:**是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素的主码; 例子: (2) 参照完整性规则:若属性(或属性组) F 是基本关系 R 的外码,它与基本关系 S 的主码 K s 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为: 或者取空值( F 的每个属性值均为空值); 或者等于 S 中某个元组的主码值。 用户定义的完整性:指对关系中每个属性的取值作一个限制(或称为约束)的具体定义。 5、一个不好的模式会有些什么问题? ①数据冗余 ②更新异常 ③插入异常 ④删除异常 6、数据库设计中,需求分析的任务是什么?调查的内容是什么? 需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统手工系统或计算机系统)工作概况明确用户的各种需求,然后在此基础上确定新系统的功能。 **调查的内容是“数据”和“处理”**即获得用户对数据库的如下要求: (1)信息要求指用户需要从数据库中获得信息的内容与性质由信息要求可以导出数据要求即在数据库中需要存储哪些数据。 (2)处理要求指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。 (3)安全性与完整性要求 7、什么是索引?索引的作用。 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。 建立索引是加快查询速度的有效手段,数据库索引类似于图书后面的索引,能快速定位到需要查询的内容,用户可以根据应用环境的需要在基本表上建立一个或者多个

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值