【专业课】数据库系统原理(Score:93)
数据库
〇、考试范围
选断知识点/计算题/范式:https://www.bilibili.com/video/BV1Bq4y1Y7GC/?p=1&spm_id_from=pageDriver&vd_source=db27e5791bf8e8e721639abdb0ce271e
简答:https://blog.csdn.net/m0_51290571/article/details/125107244
思维导图
一、速成课
选填
绪论
基本概念
- 数据 data:描述事物的符号
- 数据库 db:长期存储在计算机内的、有组织的、可共享的大量数据的集合
- 数据库管理系统 dbms:位于用户与操作系统之间的一层数据管理软件
- 数据库系统 dbs:由db、dbms、应用程序和数据库管理员(dba)组成
dbs特点
- 数据结构化
- 数据共享型高、冗余度低、容易扩充
- 数据物理独立性、逻辑独立性
- 数据由dbms统一管理和控制
数据模型
- 概念模型:用于数据库设计,表示方法有E-R模型
- 逻辑模型:用于dbms实现,包括网状、层次、关系模型
- 物理模型:对数据最底层的抽象
数据模型
- 数据结构
- 数据操作
- 完整性约束条件
dbs三级模式结构:外模式、模式(逻辑模式)、内模式
- 外模式/子模式/用户模式:用户能够看见和使用的局部数据的逻辑结构和特征的描述,数据库用户的数据视图,是与某应用有关的逻辑表示
- 模式/逻辑模式:数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
- 内模式/存储模式:数据物理结构和存储方法的描述,是数据在数据库内部的组织方式
外模式/模式映像:保证了数据的逻辑独立性
模式/内模式映像:保证了数据的物理独立性
数据库安全性
授权的原因
授权是指授予GRANT和收回REVOKE,是数据库安全性控制中的自主存取控制方法。是为了保护数据库,防止不合法使用所造成的数据泄露、更改或破坏
GRANT 权限 ON 对象类型 对象名 TO 用户名 [OPTION]
REVOKE 权限 ON 对象类型 对象名 FROM 用户名 [CASCADE|RESTRICT]
CASCADE:级联回收。将用户传播出去的权限一并收回
RESTRICT:受限回收。若用户传播过该权限,回收将会失败
数据库完整性
正确性:符合现实世界语义
相容性:同一对象在不同表中的数据符合逻辑
三大完整性
- 实体完整性:主码唯一且非空
- 参照完整性:外码约束
- 用户自定义完整性:属性上约束条件的定义
数据库设计的步骤
1、需求分析
调查机构情况与熟悉业务活动,明确用户的需求,确定系统的边界,生成数据字典和用户需求规格说明书
2、概念结构设计
将需求分析得到的用户需求抽象为概念模型,绘制 E-R图
3、逻辑结构设计
将 E-R 图转换为与 DBMS 相符合的逻辑结构(包括数据库模式和外模式),例如 E-R图向关系模型转换,再根据规范化理论对数据模型进行优化,设计用户子模式
4、物理结构设计
通常关系数据库物理设计的内容包括关系模式选择存取方法、以及设计关系、索引等数据库文件的物理存储结构
5、数据库实施
建立实际数据库结构、试运行、装入数据
6、数据库运行和维护
维护数据库的安全性、完整性控制以及系统的转储和恢复;性能的监督、分析和改进;增加新功能;发现错误和修
改错误
数据库编程
防sql语句注入
数据库恢复技术
事务特性:ACID
- Atomicity原子性
- Consistency一致性
- Isolation独立性
- Durability持久性
建立冗余数据的技术
- 数据转储
- 静态转储、动态转储
- 海量转储、增量转储
- 动态海量转储、动态增量转储、静态海量转储、静态增量转储
- 登记日志文件
- 以记录为单位
- 以数据块为单位
- 日志文件的作用
(1)事务故障恢复和系统故障恢复必须用日志文件
(2)在动态转储方式中必须建立日志文件,后备副本和日志文件结合才能有效恢复数据库
(3)在静态转储方式中也可以建立日志文件,当数据库毁坏后可以重新装入后备副本把数据库恢复到转储结束时刻的正确状态,然后利用日志文件,把已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤销
- 处理登记日志文件的两条原则:
(1)登记的次序严格按并发事务执行的时间次序
(2)必须先写日志文件,后写数据库
并发控制
为了保证事物的隔离性与一致性,dbms需要对并发操作进行正确调度
并发操作带来的数据不一致性
- 丢失修改
- 不可重复读
- 读脏数据
- 幻读
并发控制的基本方法:封锁
- 排他锁/写锁/X锁:释放前,其他事务不能读取、修改、加锁
- 共享锁/读锁/S锁:释放前,其他事务可以读取、加S锁、但不能修改或加X锁
可串行化调度
给定的并发调度,当且仅当它是可串行化的,才认为是正确调度。例如现有事务T1 和 T2,若 T1 与 T2 的并发执行结果与先 T1后 T2 相同,或者与先 T2后T1相同,那么这个调度就是正确的,否则就是错误的。
两段锁协议(2PL)
所有事务必须分两个阶段对数据项加锁和解锁
① 获得封锁(扩展阶段):在对任何数据进行读、写操作之前,事务首先要获得对该数据的封锁
② 释放封锁(收缩阶段):在释放一个封锁之后,事务不再申请和获得任何其他封锁若并发执行的所有事务均遵守两段锁协议,则对这些事物的任何并发调度策略都是可串行化的
范式级别判断
- 求候选码
- 判断1NF(基本一定是)
- 写出非主属性、候选码
- 判断2NF(非主属性应完全函数依赖于任一候选码)
看非主属性的左侧的推断条件中是否出现了候选码 - 判断3NF(在2NF的条件下,不存在非主属性对任一候选码的传递函数依赖)
不能出现AB->D, D->E (候选码为AB,非主属性为DE)的情况(AB通过非主属性间接推出的E) - 判断BCNF(在3NF的条件下,每一个决定因素(即每一个依赖关系左侧)都包含码)
二、刷真题总结
- 外模式、模式、内模式:
- 外模式/子模式/用户模式:用户能够看见和使用的局部数据的逻辑结构和特征的描述,数据库用户的数据视图,是与某应用有关的逻辑表示
- 模式/逻辑模式:数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
- 内模式/存储模式:数据物理结构和存储方法的描述,是数据在数据库内部的组织方式
外模式/模式映像:保证了数据的逻辑独立性
模式/内模式映像:保证了数据的物理独立性
- 反映现实世界中实体和实体间联系的信息模型
E-R模型 - 并发操作可能带来
“读脏数据”“丢失修改”“不可重复读”“幻读” - 关系数据模型三个组成部分:
完整性规则、数据结构、数据操作
关系模型的三类完整性规则:
实体完整性、参照完整性、用户自定义完整性 - 关系数据库特点:
数据冗余小、数据独立性高、数据共享性好 - 关系代数表达式优化策略中,首先要做的是:尽早执行选择运算
- 如何构造出一个合适的数据逻辑结构是关系数据库规范化理论主要解决的问题
- SQL语言提供数据库定义、数据操纵、数据控制等功能
定义、操纵、控制 - 数据库保护问题包括安全性保护、完整性、故障恢复和并发控制等多方面
安全、完整、故障、并发 - 关系代数中专门的关系运算:
选择、投影、连接、除法 - 数据库中常用的四种文件组织方式:
顺序文件、索引文件、散列文件、倒排文件
顺序、索引、散列、倒排 - 关系数据库数据操作的处理单位是关系,层次和网状数据库数据操作的处理单位是记录。
- 在关系数据模型中,两个关系R1与R2之间存在1∶M的联系,可以通过在一个关系R2中的外部关键字值在相关联的另一个关系R1中检索相对应的记录。
- 数据库的逻辑模型设计阶段,任务是将总体E-R模型转换成关系模型。
- 关系规范化理论是设计关系数据库的指南和工具。
- 当数据库被破坏后,如果事先保存了日志文件和数据库的副本,就有可能恢复数据库。
- 在转换时,如果把联系转换成一个独立的关系模式,则
1.一对一选择任意一方实体的码作为联系的主码
2.一对多选择多方实体的码作为联系的主码
3.多对多选择两方实体的码作为联系的主码
除此之外,一对一可以将联系归并到实体的任意一方、一对多可以将联系归并到实体的多方,多对多只能转换成一个独立的关系模式 - 关系型数据库必须进行查询优化
- 在视图上不能完成的操作是在视图上定义新的基本表
- 在基本SQL语言中,不可实现并发控制
- 数据库管理系统(DBMS)由以下三类程序组成:语言、控制数据库运行和维护数据库,其中的语言系统分为主语言和数据子语言
- 通过加锁可以保证处理程序并发时的数据完整性
- 从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:
数据冗余度大、修改异常、插入异常和删除异常 - 关系数据操作语言(DML)的特点是:
操作对象与结果均为关系、操作的非过程性强、语言一体化、并且是建立在数学理论基础之上。 - 数据库的物理设计主要考虑三方面的问题:
选择存储结构、分配存储空间、实现存取路径。 - 数据库完整性的静态约束条件分为:
值的约束和结构的约束 - 构成系统说明书的两个重要文档:
数据流程图和数据字典
名词解释
- 事务:
事务是一个不可分割的操作序列,是数据库环境中的逻辑工作单位 - DBA:
DBA是控制数据整体结构、负责dbs正常运行的人或机构 - SQL语言中的视图:
在SQL中,外模式一级数据结构的基本单位是视图,它是从若干基本表和(或)其它视图中构造出来的,视图并不存储对应的数据,只是将视图的定义存于数据字典中。 - 数据字典:
是对系统中数据的详细描述,它提供对数据库数据描述的集中管理 - 数据库系统:
是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机软件、硬件和数据资源组成的系统。 - 网状模型:
用有向图结构表示实体类型及其联系的数据模型 - 关系:
关系是一个元数为K(K≥1)的元组的集合。 - 并发控制:
用正确的方法调度并发操作,以免不同事务的执行互相带来干扰
简答题
- 数据库管理系统的主要功能有哪些?
数据库的定义、运行管理、保护和维护;数据的存储、操纵、组织和管理;构建数据字典;通信 - 数据库系统中的常见故障包括?
事务内部的故障、系统故障、介质故障和计算机病毒故障。 - SQL语言的组成?
数据定义、数据操纵、数据控制、嵌入式SQL语言的使用规定 - 数据库系统的体系结构特点是?
三级模式结构和两级映像,即:外模式、模式、内模式、外模式/模式映像、模式/内模式映像 - 数据库的保护包括哪四个子系统?
数据定义、数据操纵、数据控制、SQL语句嵌入 - 数据库概念设计的基本步骤?
进行数据抽象、设计局部概念模式;
将局部概念模式综合成全局概念模式;
对全局结构进行评审; - 数据库设计的步骤
1、需求分析
调查机构情况与熟悉业务活动,明确用户的需求,确定系统的边界,生成数据字典和用户需求规格说明书
2、概念结构设计
将需求分析得到的用户需求抽象为概念模型,绘制 E-R图
3、逻辑结构设计
将 E-R 图转换为与 DBMS 相符合的逻辑结构(包括数据库模式和外模式),例如 E-R图向关系模型转换,再根据规范化理论对数据模型进行优化,设计用户子模式
4、物理结构设计
通常关系数据库物理设计的内容包括关系模式选择存取方法、以及设计关系、索引等数据库文件的物理存储结构
5、数据库实施
建立实际数据库结构、试运行、装入数据
6、数据库运行和维护
维护数据库的安全性、完整性控制以及系统的转储和恢复;
性能的监督、分析和改进;
增加新功能;发现错误和修改错误 - 在E-R模型中,如果实体间是1∶M的联系,如何设计相应部分的关系模型?
将两个实体分别对应两个关系模式,并且在“多”端实体对应模式中加入“一”端实体所对应关系模式的码,以及关联属性。
关系代数表达式题目做法
- 使用 П 选择需要的属性,打括号
- 括号内使用 σ 结合 ! = > < ∧ ⋁ 筛选条件,打括号
- 括号内使用 ∞ 自然连接涉及到的所有属性的表
- 巧用-
SQL语言题目做法
[CREATE VIEW 名字(涉及属性)] AS
SELECT 属性/DELETE
FROM 表
WHERE(
各种嵌套
)
UPDATE 表
SET 属性=?
WHERE(
各种嵌套
)
巧用AND、NOT IN、INTERSECT
三、最后一节课划重点
ch1:概述--数据库
数据库?
是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机软件、硬件和数据资源组成的系统。
冗余?
问题:什么是数据库中的冗余?请举例说明。
答案:
- 冗余是指同一信息在多个地方重复存储的现象,导致数据重复、存储空间浪费、数据不一致等问题。
- 举例来说,假设一个公司的员工信息既存储在人事部的员工数据库中,又存储在财务部的工资系统中,这就造成了冗余。如果员工的信息发生了变化,比如调岗或者调薪,就需要在两个地方都进行更新,**容易导致数据不一致的问题**。
- 冗余数据的存在还会增加数据库的维护成本和风险,因为需要花费更多的时间和精力来保证数据的一致性和准确性。
- 为了减少冗余,可以通过数据库规范化的方法,将数据存储在最少的表中,并且消除不必要的数据重复,从而提高数据库的性能和可维护性。
数据视图:1.3
- 数据抽象:
- 物理层(最低层次的抽象,描述数据实际上是怎样存储的)
DBMS做映射----数据的物理独立性
数据和程序分离
数据和程序都具有了较好的独立性
- 逻辑层(描述数据库中存储什么数据以及这些数据间存在什么关系)
CREATE VIEW 是在逻辑层进行操作的。
创建视图是在逻辑层定义一个虚拟表,这个虚拟表是基于一个或多个实际表的查询结果。
视图并不存储实际的数据,而是存储了查询定义。
当查询视图时,实际上是执行了视图定义中的查询语句,返回查询结果。 - 视图层(最高层次的抽象,描述数据库的某个部分)
- 数据模型:
解耦?
DBA?
对系统进行集中控制的人称作数据库管理员DBA
DBA的作用包括:
- 模式定义:DBA通过用DDL书写的一系列定义来创建最初的数据库模式
- 存储结构及存取方法定义
- 模式及物理组织的修改:由DBA对模式和物理组织进行修改,以反映机构的需求变化,或为提高性能而选择不同的物理组织
- 数据访问授权:通过授予不同类型的权限,DBA可以规定不同的用户个自己可以访问的数据库的部分。授权信息保存在一个特殊的系统结构中,一旦系统有访问数据的要求,数据库系统就去查阅这些信息
- 日常维护:DBA的日常维护活动有:
- 定期备份数据库,或者在磁盘上或者在远程服务器上
- 确保正常运转时所需的空余磁盘空间,在需要时升级磁盘空间
- 监视数据库的运行,确保数据库的性能不因一些用户提交了花费时间较多的任务就下降很多
ch2-ch6:关系型数据库
关系模型三要素:
数据结构
数据操作
完整性约束
关系数据库设计的三个目标:
无损分解、保持函数依赖、BCNF。
- 无损分解能保证数据正确;
- 保持函数依赖能保证可在单个关系模式中检查数据更新操作有没有违反函数依赖,
而不需要进行连接操作,这样检查效率会比较高; - BCNF 可以减少数据冗余,节约存储空间,减少插入异常、删除异常、更新异常的
情况
ch7:数据库的设计
基本概念:
实体
实体集
联系集
联系的类型
画出ER图--转换成一组关系表--指出主码
完全参与:
在实体关系(ER)图中,"完全参与"是指一个实体在关系中的每个关联都必须有相关实体的存在。这意味着一个实体在关系中的每个实例都必须与另一个实体的实例相关联,不能存在孤立的实体。
例如,考虑一个学生和课程之间的关系。如果学生实体完全参与课程关系,那么每个学生都必须选择至少一门课程,不能存在一个学生没有选择任何课程的情况。这种情况下,学生实体完全参与课程关系。
ch8:函数依赖
3NF,BCNF
范式之间的关系:BCNF-》3NF
推导规则
属性集闭包
候选码的求解
左边一定是,右边一定不是,左右两边都出现的和左边的一一组合,求闭包,若能推出所有则是候选码
F最小集的求解
反复运用 合并、 看每个依赖中是否有无关属性-》去掉后求闭包
DBMS的维护和管理
ch13:
事务:ACID特性
数据不一致的4种:
ch14:
隔离级别:
并发控制:
数据库恢复:
故障的类型:
基本思想:冗余
两种数据的冗余:
- 登记日志文件:更新操作事务
- 数据库文件:备份的类型
规则:先写日志,再写数据库
版权声明:
作者:Zhang, Hongxing
链接:http://zhx.info/archives/494
来源:张鸿兴的学习历程
文章版权归作者所有,未经允许请勿转载。