BJFU | 数据库原理与应用B---笔记总结+期末题型

文章目录

目录

第一章:数据库系统概述

1.1 基础概念

1.1.1 什么是信息?

信息是人脑对现实世界事物的存在方式、运动状态以及事物之间的联系的抽象反映。
信息的特征:1)源于物质和能量 2)可以感知 3)可存储、加工、传递和再生

1.1.2 什么是数据?

数据是用来记录信息的可识别的符号组合,是信息的具体表现形式。
数据的表现形式:可用多种不同的数据形式表示同一信息,而信息不随数据形式的不同而改变。
数据与信息的联系:数据是信息的符号表示;信息是数据的内涵,是对数据的语义解释。
信息=数据+语义 (数据和语义不可分割)

1.1.3 什么是数据处理与数据管理?

数据处理:将数据加工并转换成信息的过程,包括数据的收集、管理、加工利用(计算)、传播等一系列活动的总和。
数据是原料,是输入,而信息是产出,是输出结果。
数据+数据处理=信息
数据管理:是数据处理的核心,指数据的分类、组织、编码、存储、检索、维护等工作。
对数据管理技术的优劣,直接影响数据处理的效果。

1.2 数据库技术的产生和发展

在这里插入图片描述

1.2.1 人工管理阶段
  • 计算机主要用于科学计算
  • 硬件中的外存只有卡片、纸带、磁带,没有磁盘等直接存取设备。
  • 特点:
    存储:数据不保存
    管理:没有专门管理数据的软件
    共享:数据不能共享,冗余很大 (数据面向对象——应用程序 1:1)
    独立:数据不具有独立性
1.2.2 文件系统阶段
  • 计算机不仅用于科学计算,还大量用于信息管理
  • 硬件有了磁盘、磁鼓等直接存储设备。
  • 软件方面,出现了专门管理数据的软件,称为文件系统
  • 特点:
    存储:数据可以文件形式长期保存在外部存储器的磁盘上。
    管理:文件系统对数据进行管理。 (但:数据间的联系弱:文件和文件之间是独立的,文件间的联系必须通过程序来构造。)
    独立:数据和程序有了一定的独立性。 (m:n 但:数据独立性差)
    共享:数据具有一定的共享性。 (但:数据共享性差、冗余度大;数据不一致性)
1.2.3 数据库系统阶段
  • 数据库管理系统(DataBase Management System,DBMS)实现各应用程序对数据库中的数据的共享

  • 数据库的结构(三个结构):用户逻辑结构、数据库逻辑结构和物理结构。
    数据独立性(两个独立性):物理独立性和逻辑独立性。

    在这里插入图片描述

  • 数据的物理独立性是指当数据库物理结构(如存储结构、存取方式、外部存储设备等)改变时,通过修改映射,使数据库逻辑结构不受影响,进而用户逻辑结构以及应用程序不用改变。

  • 数据的逻辑独立性是指当数据库逻辑结构(如修改数据定义、增加新的数据类型、改变数据间的关系等)发生改变时,通过修改映射,使用户逻辑结构以及应用程序不用改变。

  • 数据由DBMS统一管理和控制,有统一的数据管理和控制功能。

  • 数据控制功能包括:数据的安全性控制、完整性控制、并发控制、数据恢复。

1.安全性控制:防止不合法使用数据库造成数据的泄露和破坏。合法用户只能操作有权限的数据,不合法的用户禁止访问。
2.完整性控制:通过设置一些完整性规则等约束条件,确保数据的正确性、有效性和相容性。
3.并发控制:多个用户同时存取或修改数据库时,系统可防止由于相互干扰而提供给用户不正确的数据,并防止数据库受到破坏。
4.数据恢复:由于计算机系统的软硬件故障、操作员的误操作及其他故意的破坏等原因,造成数据库中的数据不正确或数据丢失时,系统有能力将数据库从错误状态恢复到最近某一时刻的正确状态。

1.3 数据库系统的组成

  • 计算机硬件系统、数据库(DB)、软件系统(含操作系统、应用程序开发工具、数据库应用系统)、数据库管理系统(DBMS)、数据库用户组成。
    在这里插入图片描述
  • 数据库的两个特点:集成性、共享性
  • 数据库用户的三个类别:

第一类用户:最终用户(End User)
非计算机专业人员利用已编写好的应用程序接口使用数据库

第二类用户:应用程序员(Application Programmer)
为最终用户设计和编制应用程序并进行调试和安装

第三类用户:数据库管理员(DataBase Administrator,DBA)
负责设计、建立、管理和维护数据库以及协调用户对数据库要求的个人或工作团队

  • 数据库管理员(DBA)的主要职责:

1.参与数据库设计的全过程,决定整个数据库的结构和内容。
2.决定数据库的存储结构和存取策略,以获得较高的存取效率和存储空间利用率。
3.帮助应用程序员使用数据库系统,如培训、解答应用程序员日常使用数据库系统时遇到的问题等。
4.定义数据的安全性和完整性,负责分配各个应用程序对数据库的存取权限。
5.监控数据库的使用和运行,DBA负责定义和实施适当的数据库备份和恢复策略;当数据库的结构需要改变时,完成对数据结构的修改。
6.改进和重构数据库,DBA负责监视数据库系统运行期间的空间利用率、处理效率等性能指标。

  • DBMS是数据库系统的核心软件。
    在这里插入图片描述

【具体了解看PPT】

  • DBMS在操作系统支持下工作,应用程序在DBMS支持下才能使用数据库。

1.4 数据库系统的体系结构

1.4.1 数据库系统的内部体系结构

在这里插入图片描述

模式:又称概念模式,处于中间层,是对数据库中全体数据的逻辑结构和特征的描述,是数据库的整体逻辑,即概念视图、概念级数据库。
对下层:不涉及数据的物理存储细节和硬件环境;
对上层:与具体的应用程序、所使用的应用开发工具及程序设计语言无关。
一个数据库只有一个模式。

外模式:又称子模式或用户模式,处于最外层,是对数据库用户能看到并允许使用的那部分局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示,即用户视图、用户数据库。
外模式是模式的子集,可有多个,同一个外模式可以为多个应用程序使用。

内模式:又称为存储模式或物理模式,处于最内层,也是靠近物理存储的一层,是对整个数据库存储结构的描述,是数据在数据库内部的表示方式,又叫物理级数据库、物理视图。

一个数据库只有一个内模式。
一个数据库系统,实际存在的只是物理级数据库,即内模式,是数据访问的基础。
概念数据库只不过是物理级数据库的一种抽象描述,用户级数据库是用户与数据库的接口。

外模式/模式映像:保证了数据与程序间的**逻辑独立性
模式/内模式映像:确保了数据的
物理独立性**。

数据库系统的三级模式与二级映像的优点:1)保证数据的独立性 2)简化了用户接口 3)有利于数据共享 4)有利于数据的安全保密

1.4.2 数据库系统的外部体系结构

从最终用户角度看,分为5种:

  1. **单用户结构**的数据库系统:由一个用户独占使用。(1:1)

  2. **主从式结构**的数据库系统:主机分时轮流为终端用户服务。(1:n)
    在这里插入图片描述

  3. **分布式结构**的数据库系统:1)数据在物理上是分布的 2)所有数据在逻辑上是一个整体 3)结点上分布存储的数据相对独立
    在这里插入图片描述

  4. **客户/服务器结构**的数据库系统(C/S):胖客户机结构,两层结构。
    在这里插入图片描述

  5. **浏览器/服务器结构**的数据库系统(B/S):瘦客户机结构,三层结构。
    在这里插入图片描述

1.5 三个世界及其有关概念

在这里插入图片描述
数据模型是描述数据、数据联系、数据的语义和完整性约束的概念集合,由数据结构数据操作完整性约束三要素组成。

数据结构:一是描述数据对象的类型、内容、性质等;二是描述数据对象间的联系。
常用的数据结构有:

1)层次结构----层次模型----层次数据库

  • 表示方法:树型结构(有根树)
  • 特点:
    • 有且仅有一个结点没有双亲,根结点【祖先无双亲】
    • 根以外的其他结点有且仅有一个双亲结点 【一个儿子一个父亲】
    • 父子结点之间的联系是一对多(1:n)的联系 【一个父亲多个儿子】

2)网状结构----网状模型----网状数据库

  • 表示方法:有向图结构
  • 特点:
    • 有一个以上的结点没有双亲结点
    • 允许结点有多个双亲结点
    • 允许两个结点之间有多种联系(复合联系)

3)关系结构----关系模型----关系数据库

  • 表示方法:二维表(组成:表名、表头、表体)
    【每一行是一个元组,每一列是一个域:属性的取值范围】

数据操作:查询、更新(包含插入、删除和修改)
数据的完整性约束:一组完整性规则的集合。

第二章:关系数据库

2.1 基础概念

2.1.1 关系、关系模式、关系数据库、关系数据库模式

:一组具有相同数据类型的值的集合,又称值域。
笛卡尔积:实际是一张二维表,每一行是元组,每一列是一个域。

关系:笛卡尔积的任一子集称为定义在域上的n元关系,由关系头和关系体组成。
关系的性质:1)列同域 2)列可交换 3)行可交换 4)属性不可再分

关系模式:关系模式是对关系的描述,是关系模型的“型” 。
一般表示为:关系名(属性1,属性2,……属性n) 简记为:R(U)
如:学生(学号,姓名,性别,年龄,系别)or S(SNo,SN,Sex,Age,Dept)
在这里插入图片描述

2.1.2 候选码、主码、外码

候选码:能惟一标识关系中元组的一个属性或属性集
特点:唯一性、最小性

主码从候选码中选择其中一个作为查询、插入或删除元组的操作变量。
每个关系必定有且仅有一个主码,选定后不能重复!

外码:关系R2的一个或一组属性X不是R2的主码,而是另一个关系R1的主码,则X称为关系R2的外部关键键或外码。
在这里插入图片描述

2.1.3 关系完整性

实体完整性(必须满足的性质):主码的值不能为空或部分为空。
参照完整性(必须满足的性质):如果关系R2的外码X与关系R1的主码相符,则X的每个值或者等于R1中主码的某一个值或者取空值。
【外码的每一个值或者等于主码中的某一个值或者为空】
用户自定义完整性(具体领域的语义约束):

2.2 关系代数

关系代数是一种抽象的查询语言,以集合运算为基础,要求关系必须是相容的:具有相同的列数,列同质。

传统的集合运算:并、差、交、笛卡尔积;
专门关系运算:选取、投影、连接、除法;
基本的运算:并、差、笛卡尔积、选择、投影;

并 R∪S={t | t∈R∨t∈S} ——增加一条记录
差R-S = {t | t∈R∧┐t∈S} ——删除一条记录
交R∩S = {t | t∈R∧t∈S}
广义笛卡尔积 R×S = {t r⌒t s | t r ∈R∧t s ∈S}

选取:从关系R中选取使逻辑表达式F为真的元组,是从的角度进行的运算。

在这里插入图片描述
投影:是从的角度进行运算,但投影成功之后不仅取消了原关系中的某些列,而且还可能取消某些元组【取消不必要列,避免重复行】。 新关系与原关系不相容。

在这里插入图片描述

Θ连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
等值连接:θ为’=’的连接运算,即选取属性相等的元组。
自然连接:特殊的等值连接,两个关系中进行比较的分量必须是相同的属性组,在结果中要把重复的属性列去掉。
一般的连接操作是从行的角度进行运算的,自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

在这里插入图片描述

除法:除操作是同时从行和列的角度进行运算的。适合于包含“全部”和“至少”之类的短语的查询。

如何理解除法的定义?(用自己的语言说明)
假设有两个关系(表)R 和 S,要找出所有在 R 中出现,并且与 S 中所有元组(行)都有关联的元组。在关系代数中,这种操作被称为除法,表示为 R ÷ S。
具体来说,如果 R 和 S 有一个共同的属性(列),比如 A,那么 R ÷ S 的结果将是一个关系,其中包含所有在 R 中的元组,这些元组在属性 A 上的值与 S 中所有元组在属性 A 上的值都有匹配。

在这里插入图片描述

2.3 关系演算

2.3.1 元组关系演算

关系代数是一种过程化查询语言,通过在关系代数表达式中指定一个运算的序列,并按照此序列依次执行,可以得到查询的结果。

元组关系演算是非过程化查询语言,只描述想要获取数据的信息,不描述获取信息的具体过程。

元组关系演算中,以元组为单位,通过谓词公式约束所要查找元组的条件。
表示:t ( t ) 使 ( t ) 为真的元组 t 的集合
其中:t为元组变量,即查询的目, 称为元组演算的谓词公式,即查询的条件。
( t ) 可由原子公式、约束变量、自由变量、运算符构成。

2.3.2 域关系演算

以元组中的域为单位,按照谓词公式所约束的条件查询所需的元组。
表示:{ <x1 , x2 , …, xn> | R(x1 , x2 , …, xn ) }
其中x1 , x2 , …, xn代表域变量,即元组的分量,R代表由原子构成的公式。

例1:查询学生年龄大于等于20岁的学生姓名,学号,性别和年龄
{ <姓名,学号,性别,年龄> | (<姓名,学号,性别,年龄> ∈ S∧年龄>20] )}

例2:查询学生年龄大于等于20岁的学生姓名
{ <姓名> | ∃学号,性别,年龄(<姓名,学号,性别,年龄> ∈ S ∧ 年龄>20] )}

域关系演算语言(QBE):是一种高度的非过程化、基于屏幕表格的查询语言;用户通过填写表格,并给出查询事例的方式获取结果;给出的查询事例是域变量。

第三章:SQL语言

3.1 基础概念

结构化查询语言(Structured Query Language)
数据查询:从基本表或视图中获取所需信息。Select
数据定义:创建、修改、删除数据库/表。Create、Alter、Drop
数据操纵:对数据库中的内容进行插入、更新、删除等操作。Insert、Update、Delete
数据控制:对数据库进行安全性控制或者并发性控制。
【一定要区分数据定义和数据操纵!!!不要混淆了!】

基本表:一个关系对应一个基本表;一个或多个基本表对应一个存储文件。
视图:视图是从一个或几个基本表导出的表,是一个虚表;无数据,只有定义。

数据库的结构:
从逻辑上看:描述信息的数据存在数据库中并由DBMS统一管理。
从物理上看:描述信息的数据是以文件的方式存储在物理磁盘上,由操作系统进行统一管理。

包含两个文件:
数据文件:存放数据库数据和数据库对象的文件
主要数据文件(.mdf ) 【只能有一个】+次要数据文件(.ndf )【可以有多个】
事务日志文件:保存用于恢复数据库的日志信息,扩展名为.ldf
当数据库破坏时可以用事务日志还原数据库内容

文件组:多个数据文件的集合,分为主要文件组+次要文件组。
一个数据文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。
日志文件不分组,它不属于任何文件组。

3.2 索引

建立索引是加快查询速度的有效手段,用户(数据库管理员或建表者)可以在基本表上建立一个或多个索引,以提供多种存取路径,系统在存取数据时会自动选择合适的索引作为存取路径。

索引是关系数据库的内部实现技术,属于内模式的范畴。

索引的类型:

1. 聚集索引
表中行的物理存储顺序与索引键的逻辑顺序相同。 一个表只能包含一个聚集索引。
2. 非聚集索引
非聚集索引不影响数据行的物理存储顺序。
3. 唯一索引
保证索引键中不包含重复的值,从而使表中的每一行在某种方式上具有唯一性。
4. 视图索引
对视图创建的唯一聚集索引。
5. 全文索引(倒排文档技术)
6. XML索引

第四章:关系数据库理论

4.1 规范化问题提出背景

不合理的关系模式存在的异常问题:
数据冗余:信息被重复存储,导致浪费大量存储空间。
插入异常:只有当一些信息事先已经存放在数据库中时,另外一些信息才能存入数据库中。
删除异常:删除某些信息时可能丢失其它信息。
更新异常:当重复信息的一个副本被修改,所有副本都必须进行同样的修改。因此当更新数据时,系统要付出很大的代价来维护数据库的完整性,否则会面临数据不一致的危险。

根本原因:属性间存在着数据依赖关系。

一个好的关系模式应该具备以下四个条件:(1)尽可能少的数据冗余; (2)没有插入异常; (3)没有删除异常; (4)没有更新异常。

4.2 函数依赖

4.2.1 函数依赖定义和分类

数据依赖:一个关系内部属性与属性之间的一种约束关系。
其中最重要的包括函数依赖多值依赖

多值依赖 定义一个属性集(至少包含两个属性)的值可以确定另一个属性集的值。

在多值依赖中,被决定属性集的值不是由决定属性集中的任何一个单独属性决定的,而是由整个决定属性集的值共同决定。
多值依赖强调的是,多个属性共同影响另一个属性集的值。

函数依赖 定义一个属性集(可能是单个属性,也可能是多个属性的集合)的值可以确定另一个属性集的值。

函数依赖强调的是,对于决定属性集的每一个可能的值,被决定属性集都有唯一确定的值与之对应。

函数依赖 分类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数依赖的逻辑蕴含 定义:即基于已有的函数依赖关系,能够推导出其他函数依赖关系。即X → Y,X ⊆ A,则 A → Y。

函数依赖的推理规则及其正确性 【具体见PPT】

4.2.2 闭包定义及其算法

闭包 定义:即从该属性集出发,通过已有的函数依赖关系,所能推导出的所有属性的集合。
对于特定的属性集和函数依赖集,其闭包是唯一确定的。

闭包及其算法

4.2.3 候选码的求解理论和算法

①分类:L、R、LR、N
②L类属性和N类属性是任一候选码的成员;R类属性不在任何候选码中
③对于LR类属性,需要进一步分析它们是否为候选码的一部分。

4.2.4 最小函数依赖集求解理论和算法

函数依赖集:一组函数依赖的集合,每个函数依赖都描述了一个属性集能够决定另一个属性集。【一组规则】

等价的函数依赖集:如果两个函数依赖集F和G,它们能够推出相同的函数依赖(即它们的闭包相同),即有F+ = G+,那么就说F和G是等价的,即 F ≡ G

覆盖:如果有F ≡G,那么说F覆盖了G,或者说G覆盖了F。

最小函数依赖集求解理论和算法

右边单属性:如果右非单,则用分解律; X→Y(其中Y=Y1 ,Y2 ,…,Yk(k≥2)多于一个属性),用分解律,分解为X→Y1,X→Y2,…,X→Yk,替换X→Y,得到一个与F等价的函数依赖集G。
去掉左边多余属性:一个一个检查G左边是非单属性的依赖。 如,XY → A,现在要判断Y是否为多余的,则以X → A代替XY → A是否等价?只要在G中求X+ ,若 X+ 包含A,则说明X → A 可以代替XY → A,即Y是多余的属性;否则,Y不是多余的属性。
去掉冗余函数依赖

4.3 关系模式的分解

分解就是将一个关系模式拆分成多个子关系模式的过程,这些子关系模式的并集等于原始的关系模式。

定义:
1.关系模式 R(U):表示一个关系模式 R,它包含一组属性 U。
2.子集 R1, R2, …, Rk:关系模式 R 的子集,每个子集包含 R 的一部分属性。
3.R = R1 ∪ R2 ∪ … ∪ Rk:表示原始的关系模式 R 可以由这些子集通过并集操作得到,即所有子集的属性合并后等于 R 的所有属性。
4.集合 p:表示关系模式的集合,即 p = {R1, R2, …, Rk}。
5.分解过程:用集合 p 代替 R 的过程称为关系模式的分解。

衡量关系模式的分解是否可取的标准:①分解是否具有无损连接 ②分解是否保持了函数依赖

4.3.1 无损连接的分解

定义:设有关系模式R,F是R上的函数依赖集,ρ={R1,R2,…,Rk}。

无损连接分解:对于 R 中满足 F的每一个关系 r,通过自然连接操作能够从子关系模式中恢复原始关系 r,即 𝑟=Π𝑅1(𝑟)⋈Π𝑅2(𝑟)⋈…⋈Π𝑅𝑘(𝑟)r=ΠR1​​®⋈ΠR2​​®⋈…⋈ΠRk​​®;

损失分解:无法通过自然连接操作从子关系模式中恢复原始关系 r

无损分解测试算法
在这里插入图片描述

4.3.2 保持函数依赖的分解

在这里插入图片描述

一个无损连接分解不一定是保持函数依赖的;一个保持函数依赖的分解也不一定是无损连接的;

4.4 关系模式的范式

各范式的关系:
在这里插入图片描述

1NF:每个属性具有原子性,不可再分

  • 第一范式的目标是:将基本数据划分成称为实体集或表的逻辑单元,当设计好每个实体后,需要为其指定主码。
  • 1NF是关系模式应具备的最起码的条件。
  • 第一范式可能具有大量的数据冗余,存在插入异常、删除异常和更新异常等弊端。
  • 如关系模式SCD属于1NF,它既存在完全函数依赖,又存在部分函数依赖和传递函数依赖 。
  • 克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。

2NF:必须满足1NF,每一个非主属性都完全函数依赖于任何一个候选码

  • 第二范式的目标:将只部分依赖于候选码(即依赖于候选码的部分属性)的非主属性移到其他表中。【2NF消除了部分函数依赖】
    在这里插入图片描述

【关系模式SCD不属于2NF,但投影分解后的关系模式SC和SD属于2NF】

  • 如果R的主码为单属性,或R的全体属性均为主属性,则R∈2NF。(因为不可能存在部分函数依赖)
  • 2NF仍具有数据冗余、插入异常、删除异常、更新异常等弊端。

3NF:必须满足2NF,每一个非主属性都不传递函数依赖于任何一个候选码
【所以说,可理解为,3NF:不存在非主属性对任何一个候选码的部分函数依赖和传递函数依赖】

  • 第三范式的目标:去掉表中不直接依赖于候选码的非主属性。
    在这里插入图片描述

【对于关系模式SC属于3NF,而关系模式SD不属于3NF】

  • 3NF的规范化算法【重要!!!!!!】
  • 3NF解决了2NF中存在的四个问题:1)数据冗余降低了 2)不存在插入异常 3)不存在删除异常 4)不存在更新异常

BCNF【最难理解的!!!难点!!!难点!!!】
1.所有非主属性对每一个码都是完全函数依赖。
2.所有的主属性对每一个不包含它的码,也是完全函数依赖。
3.没有任何属性完全函数依赖于非码的任何一组属性。

理解:非码属性不要完全决定码属性,主属性也不要部分/传递依赖码属性,换句话来说,就是X→Y时,X一定含有码(候选码中的任意一个)。

在这里插入图片描述

性质:如果R∈BCNF,则R也是3NF。 如果R∈3NF,则R不一定是BCNF。

BCNF规范化算法

4.5 关系模式规范化

规范化:低一级范式通过模式分解转换为高一级范式的过程。
步骤:

在这里插入图片描述

要求:保证分解后的关系模式与原关系模式是等价的。
①分解要具有无损连接性; (保证不丢失信息)
②分解要具有函数依赖保持性; (减轻或解决各种异常情况)
③分解既要具有无损连接性,又要具有函数依赖保持性。

第五章:数据库安全保护

5.1 什么是数据库安全保护?

在这里插入图片描述

5.2 安全性控制

5.2.1 什么是安全性控制?

数据库的安全性是指保护数据库以防止非法使用所造成的数据泄露、更改或破坏。

安全控制模型:
在这里插入图片描述

5.2.2 安全性控制的手段
  1. 用户标识和鉴定
    由系统提供一定的方式让用户标识自己的名字或身份,系统内部记录着所有合法用户的标识。每次用户要求进入系统时,由系统进行核实,通过鉴定后才提供机器的使用权。
    标识的表示方法:1)用户名或用户标识符 2)用户名和口令
  2. 用户存取权限控制
    定义用户权限(授权),建立授权表(包含用户标识,数据对象,操作类型),存放在数据字典中;
    合法权限检查:每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查。
    衡量授权机制的重要指标:授权粒度,即可以定义的数据对象的范围,包括关系、记录或属性。授权粒度越细,授权子系统就越灵活,能够提供的安全性就越完善。
  3. 定义视图
    为不同用户定义不同视图,限制各个用户访问范围。
  4. 数据加密
    根据一定的算法将原始数据加密成为不可直接识别的格式,数据以密文的形式存储和传输。
    替换方法,该方法使用密钥将明文中的每一个字符转换为密文中的字符。
    转换方法,该方法将明文中的字符按不同的顺序重新排列。
  5. 数据审计
    审计功能是一种监视措施,它跟踪记录有关数据的访问活动。
    审计追踪把用户对数据库的所有操作自动记录下来,存放在一个特殊文件中,即审计日志中。
5.2.3 SQL Server数据安全性机制

2层结构:

服务器级别的安全性----登录账号(Login Name)

  • 创建登录账号:1)创建登录账号的用户名和密码等登录标识信息 2)创建登录账号的服务器角色【需要记一个:dbcreator—创建、更改、删除和还原任何数据库】
  • 数据库管理员不能创建服务器角色,只能够将其他角色或者用户添加到服务器角色中。
  • SQL Server身份验证模式:1)Windows身份验证 2)混合验证方式

具体数据库及其对象级别的安全性----数据库的用户账号(User Name)

  • 每个登录账号在一个数据库中只能有一个用户账号,但每个登录账号可以在不同的数据库中各有一个用户账号。
    在这里插入图片描述
  • 数据库角色【需要记一个:db_owner—在数据库中有全部权限】
  • 用户权限管理:1)系统权限:用户对数据库的权限操作,创建数据库、数据表、存储过程等。 2)对象权限:用户对特定数据库对象操作,对表和视图的操作。

5.3 完整性控制

5.3.1 什么是完整性控制?

定义:数据库的完整性是指保护数据库中数据的正确性有效性相容性,防止错误的数据进入数据库造成无效操作。

防范对象:防止合法用户使用数据库时向数据库中加入不符合语义的数据。

组成:
触发条件:规定系统什么时候使用完整性规则来检查数据。
约束条件:规定系统检查用户发出的操作请求违背了什么样的完整性约束条件。
违约响应:规定系统如果发现用户发出的操作请求违背了完整性约束条件,应该采取一定的动作来保证数据的完整性,即违约时要做的事情。

完整性规则从执行时间上可分为立即执行【一条语句后 检查】延迟执行【所有语句后 检查】

5.3.2 完整性的形式化描述

一条完整性可以用一个**五元组(D,O,A,C,P)**来形式化地表示。【不是很重要!】
D(Data):代表约束作用的数据对象。可以是关系、元组和列三种对象;
O(Operation):代表触发完整性检查的数据库操作,即当用户发出什么操作请求时需要检查该完整性规则,是立即执行还是延迟执行;
A(Assertion):代表数据对象必须满足的语义约束,这是规则的主体;
C(Condition):代表选择A作用的数据对象值的谓词;
P(Procedure):代表违反完整性规则时触发执行的操作过程。

5.3.3 完整性约束的分类

1.根据约束条件:值的约束和结构的约束

  • 值的约束即对数据类型、数据格式、取值范围和空值等进行规定;
  • 结构的约束即对数据之间联系的约束;
    (1)函数依赖约束。 例如:2NF,3NF和BCNF需要满足的函数依赖。
    (2)实体完整性约束。 例如:在学生关系中,主码学号不能为空。
    (3)参照完整性约束。 例如:在学生关系中,外码系别的约束。
    (4)统计约束。 例如:规定某一个的数值不得高于这一列的平均值等。

2.根据约束状态:静态约束和动态约束

  • 静态约束是指对数据库每一个确定状态所应满足的约束条件,是反映数据库状态合理性的约束。
    • 值的约束和结构的约束均属于静态约束。
  • 动态约束是指数据库从一种状态转变为另一种状态时,新旧值之间所应满足的约束条件,动态约束反映的是数据库状态变迁的约束
5.3.4 数据库完整性的实施方法

规则:即数据库对存储在表中的列或用户自定义数据类型中的值的规定和限制。

规则与其作用的表或用户自定义数据类型是相互独立的,即表或用户自定义对象的删除、修改不会对与之相连的规则产生影响。

规则和约束可以同时使用,表的列可以有一个规则及多个check约束。

语法:
在这里插入图片描述

默认:即向用户输入记录时没有指定具体数据的列中自动插入的数据。

表的一列或一个用户自定义数据类型只能与一个默认绑定。

语法:
在这里插入图片描述

5.4 并发性控制

数据的并发性是指在多用户环境中管理对数据库的访问,以确保数据库中数据的一致性和完整性

5.4.1 什么是事务?

定义:事务是数据库系统中执行的一个工作单位,它是由用户定义的一组操作序列。
语句:

BEGIN TRANSACTION      事务的开始
COMMIT  			   事务的提交
ROLLBACK 			   事务的回滚

特征:【ACID
①原子性(Atomicity)
一个事务是一个不可分割的工作单位,事务在执行时,应该遵守“要么不做,要么全做”的原则,即不允许完成部分的事务。
②一致性(Consistency)
事务对数据库的作用是数据库从一个一致状态转变到另一个一致状态。所谓数据库的一致状态是指数据库中的数据满足完整性约束。
③隔离性(Isolation)
如果多个事务并发地执行,应像各个事务独立执行一样,一个事务的执行不能被其他事务干扰
④持久性(Durability)
持久性指一个事务一旦提交,它对数据库中数据的改变就应该是持久的,即使数据库因故障而受到破坏,DBMS也应该能够恢复。

5.4.2 并发操作与数据的不一致性

①丢失更新
当两个事务T1和T2读入同一数据,并发执行修改操作时,T2把T1或T1把T2的修改结果覆盖掉,造成了数据的丢失更新问题,导致数据的不一致。
②污读
事务T1更新了数据R,事务T2读取了更新后的数据R,事务T1由于某种原因被撤销,修改无效,数据R恢复原值。事务T2得到的数据与数据库的内容不一致,这种情况称为“污读”。
③不可重读
事务T1读取了数据R,事务T2读取并更新了数据R,当事务T1再读取数据R以进行核对时,得到的两次读取值不一致,这种情况称为“不可重读”。

5.4.3 封锁

实现并发控制的方法主要有两种:封锁技术时标技术

5.4.3.1 封锁类型

①排它型封锁(写封锁,简称为X 锁
原理:禁止并发操作。即:若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁, 直到T释放A上的锁。这就保证了其他事务在T释放A上的锁前不能再读取和修改A。
②共享封锁(读封锁,简称为S锁
原理:允许其他用户同时对该数据对象读取,但不能对该数据对象进行修改。即:若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁而不能加X锁,直到T释放A上的S锁。这就保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

5.4.3.2 封锁协议

①一级封锁协议
事务T在修改数据对象之前必须对其加X锁,直到事务结束。
在这里插入图片描述

②二级封锁协议
在一级封锁协议的基础上,另外加上事务T在读取数据R之前必须先对其加S锁,读完后释放S锁。
在这里插入图片描述

③三级封锁协议
在一级封锁协议的基础上,另外加上事务T在读取数据R之前必须先对其加S锁,读完后并不释放S锁,而直到事务T结束才释放。
在这里插入图片描述

封锁粒度:封锁的单位,指封锁的数据对象的大小。
封锁粒度越大,系统中能够被封锁的对象就越少,并发度越低,封锁机构越简单,相 应系统开销也就越小。【反比】

5.4.3.3 封锁所产生的额问题

死锁与活锁
①活锁:永久等待→先来先服务策略解决
②死锁:两个事务互相申请对方锁住的资源导致两个事务永远不能结束。

预防死锁
①一次加锁法:一次性对所有资源加锁,如果有一个资源无法加锁,则等待。
缺点:势必扩大封锁的范围,从而降低了系统的并发度;
②顺序加锁法:规定资源的序号,按序号加锁。
缺点:难以事先确定封锁顺序;

死锁的诊断与解除
如果在事务依赖图中沿着箭头方向存在一个循环,那么死锁的条件就形成了,系统就会出现死锁。
一般情况下,允许发生死锁,死锁发生后可以自动诊断;并选择一个处理死锁代价最小的事务,将其撤销以解除死锁。

5.5 数据库恢复

5.5.1 基础概念

1)含义:
在这里插入图片描述

2)原理:利用数据的冗余
3)两种类型的功能:生成冗余数据、冗余重建
4)生成冗余数据常用技术:登记日志文件、数据转储

  • 日志编辑的原则:先写原则
  • 数据转储:定期地将数据库复制到多个存储设备(如磁带、磁盘)上
    • 存储方式:海量转储和增量转储
    • 存储运行方式:静态转储和动态转储
    • 存储位置:同城和异地
5.5.2 数据库故障及恢复方法

事务故障(Transaction Failure)
特点: 程序中的异常结束所造成的故障。
恢复的具体做法如下:
(1)反向扫描日志文件,查找该事务的更新操作。
(2)对该事务的更新操作执行反操作。

系统故障(System Failure)
特点:在运行过程中,由于某种原因,造成系统停止运转,致使所有正在运行的事务都以非正常方式终止,要求系统重新启动。
恢复的具体做法如下:
(1)查找尚未提交的事务,将其事务标识记入撤销队列。同时查找已经提交的事务,将其事务标识记入重做队列。
(2)对撤销队列中的各个事务进行撤销处理。
(3)对重做队列中的各个事务进行重做处理。

介质故障(Media Failure)
特点:存储器介质受到破坏,使存储在外存中的数据部分丢失或全部丢失。
恢复的具体做法如下:
(1)装入最新的转储。
(2)装入最新的日志文件副本。
(3)找出发生故障前已提交的事务,将其记入重做队列。再对重做队列中的各个事务进行重做处理。

第六章:数据库设计

6.1 数据库设计概述

(1)数据库设计的任务:根据用户需求研制数据库结构和行为
(2)数据库设计的内容:

  • 结构设计——概念设计、逻辑设计和物理设计【静态模型设计】
  • 行为设计——用户对数据库的操作【动态模型设计】

(3)数据库设计的特点:

  • 结构源于行为——强调结构设计与行为设计相结合
  • 行为总是变化——“反复探寻,逐步求精”

(4)数据库设计的方法简述:

  • 直观设计法(手工试凑法)
  • 常规设计法:

①基于E-R模型的数据库设计方法
用E-R图构造一个反映现实世界实体之间联系的概念模式
②基于3NF的数据库设计方法
确定数据库中的全部属性和属性间的依赖关系,分析不符合3NF的约束条件,将其进行投影分解,规范成若干个3NF关系模式的集合。
③基于视图的数据库设计方法
先从分析各个应用的数据着手,并为每个应用建立自己的视图,然后再把这些视图汇总起来合并成整个数据库的概念模式。

  • 计算机辅助设计法
  • 现代数据库设计方法

(5)数据库设计的步骤:

  1. 系统需求分析——准确了解和分析用户需求(包括数据和处理)
  2. 概念结构设计——通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型
  3. 逻辑结构设计——将概念结构转换为某个DBMS所支持的数据模型,并进行优化
  4. 物理结构设计——为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)
  5. 数据库实施——建立数据库,编制与调试应用程序,组织数据入库并试运行
  6. 数据库运行与维护——在数据库投入正式使用后不断地对其进行评价、调整与修改

6.2 需求分析

需求分析的方法:自顶向下(最简单实用,结构化分析方法,SA)、自底向上
数据流图表达了数据和处理的关系,数据字典是系统中各类数据描述的集合。

数据流图:
用命名的箭头表示数据流; 用圆圈表示处理; 用不封闭的矩形或其他形状表示存储; 用封闭的矩形表示来源和输出;
在这里插入图片描述

数据字典:
数据字典是对系统中数据的详细描述,是各类数据结构和属性的清单 。
数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程5个部分。

1.数据项:数据项描述 = {数据项名,数据项含义说明,别名,数据类型,取值范围……}
2.数据结构:数据结构反映了数据之间的组合关系。数据结构描述 = {数据结构名,含义说明,组成:{数据项或数据结构}}
3.数据流:数据流是数据结构在系统内传输的路径。数据流描述 = {数据流名,数据流来源,数据流去向,平均流量,高峰期流量,组成:{数据结构}}
4.数据存储:数据存储是数据结构停留或保存的地方。数据存储描述 = {数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}
5.处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述。处理过程描述 = {处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}概念结构设计

需求分析阶段最终完成数据字典(用于表示收集到的数据)和数据流图。

6.3 概念结构设计

将需求分析得到的用户需求抽象为信息结构,即概念模型

E-R模型表示方法

自顶向下、自底向上、逐步扩张、混合策略

自底向上方法两步走:
进行数据抽象,设计局部E-R模型,即设计用户视图(分类、聚集)
集成各局部E-R模型,形成全局E-R模型,即视图集成(多元集成、二元集成)

集成两步走:
合并:要合理消除各局部E-R图中的冲突(属性冲突、命名冲突、结构冲突)
优化消除不必要的冗余,生成基本E-R图。

6.4 逻辑结构设计

将概念模型转换为某个具体的DBMS支持的数据模型:网状、层次、关系分为三步:

1.初始关系模式设计
在这里插入图片描述
转换原则:
①对实体:一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码为关系的主码。
②对联系:一个联系转换为一个关系模式,有三种情况:
如果联系为1:1,则每个实体的主码都是关系的候选码;
如果联系为1:n,则n端实体的主码是关系的主码;
如果联系为n :m,则每个实体的主码的组合是关系的主码。

2.关系模式规范化
在这里插入图片描述

3.模式的评价与改进

  • 模式评价:
    • 功能评价 (出现问题,回溯分析)
      对照需求分析的结果,检查规范化后的关系模式集合是否支持用户所有的应用要求。
    • 性能评价 (执行效果)
      对实际性能进行估计,包括逻辑记录的存取数、传送量及物理结构设计算法模型等。
  • 模式改进:
    • 合并: 减少连接操作,提高查询效率。
    • 分解:提高数据操作的效率和存储空间的利用率。
      • 水平分解:把关系的元组分为若干子集合,定义每个子集合为一个子关系
      • 垂直分解:把关系的属性分解为若干个子集合,形成若干子关系模式

6.5 物理结构设计

1.确定物理结构:在关系数据库中主要指存取方法和存储结构
(1)存取方法的设计:

  • 聚集——针对重复的存储和高频的查询。
  • 索引——保证数据的完整性,提高查询效率,但注意维护成本。

(2)数据存放位置的设计:

  • 为了提高系统性能,应该根据应用情况将数据的易变部分、稳定部分、经常存取部分和存取频率较低部分分开存放。
  • 多磁盘下:将表和索引、日志和数据库对象分开存储。

(3)系统配置的设计:

  • DBMS产品一般都提供了一些系统配置变量、存储分配参数,供设计人员和DBA对数据库进行物理优化。

2.评价物理结构:评价的重点是时间效率和空间效率

6.6 数据库实施

在这里插入图片描述

6.7 数据库运行和维护

维护数据库的安全性与完整性:监管权限,调整转储计划。
监测并改善数据库性能:按照性能监控调整功能,最小化的影响现有业务。
重新组织和构造数据库:存储位置,回收垃圾等

第七章:T-SQL

【第三章的SQL语句语法和第七章的知识点都写在.md文档中,后续会发】

易错点

(自己做题过程中的一些总结)

1.数据库系统的三级模式是模式外模式内模式

  1. 模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
  2. 外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。
  3. 内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法。
  4. 视图和表的区别和联系:

区别:1) 视图是已经编译好的sql语句。而表不是。
2) 视图没有实际的物理记录。而表有。
3) 表是内容,视图是窗口。
4) 表占用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时对它进行修改,但视图只能有创建的语句来修改。
5) 表是内模式,视图是外模式。
6) 视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7) 表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8) 视图的建立和删除只影响视图本身,不影响对应的基本表。

联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个或多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。

2.SQL的集合处理方式与宿主语言单记录的处理方式之间用_游标___来协调。

解释:SQL是一种用于管理关系数据库的标准语言,它采用集合处理方式来操作数据,即一次可以处理多条记录。而大多数宿主语言(如C,Java等)则通常以单记录的方式处理数据,这意味着它们一次只处理一条记录。为了协调这两种不同的数据处理方式,在SQL中使用了游标(Cursor)。

3.如果一个关系模式R是1NF,并且关系的每个决定因子都是候选码,那么R至少应该是___BC__________范式。

解释:BCNF要求对于关系中的每一个非平凡函数依赖X →Y,X必须是一个超键(即X要么本身就是候选键,要么包含某个候选键)。当每个决定因子(即在任何函数依赖中作为左侧出现的属性集)都是候选码时,这意味着每个决定因子已经满足了BCNF的要求,因为它们已经是超键了。因此,在这种情况下,该关系模式至少属于BCNF。

总结

作者数据库期末考试后,所认为的:
重点题型是SQL语句(一共15题)和关系代数表达式(好像也是15题),都是2分一题。[手都写麻了]
还有就是一个数据库设计(E-R图等)综合应用题
简答题是一些联系实际解释概念题(不是单纯背概念就可以的,要举例子说自己的理解)
选择填空基本就是PPT上的一些基础了。
哦,还考了一题闭包和最小函数依赖计算题

以上,就是全部啦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值