type
status
date
slug
summary
tags
category
icon
password
能力模型
能力分类
省赛
全球总决赛
学习进度
中国总决赛
这里写文章的前言:
一个简单的开头,简述这篇文章讨论的问题、目标、人物、背景是什么?并简述你给出的答案。
可以说说你的故事:阻碍、努力、结果成果,意外与转折。
📝 知识点总结
第一章
数据库的4个基本概念
1. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。
2. Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。
3. DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。
4. DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成。
发展历史
1.人工管理阶段
(1)计算机系统不提供对用户数据的管理功能;
(2)数据不能共享;
(3)不保存数据。
2.文件系统阶段
特点:数据以“文件”形式可长期保存在外部存储器的磁盘上。由于计算机的应用转向信息管理,因此对文件要进行大量的查询、修改和插入等操作,这些操作由文件系统提供。
缺点:数据冗余;不一致性;数据独立性差。
3.数据库系统阶段
(1)数据结构化。
(2)数据共享性高、冗余少且易扩充。
(3)数据独立性高。
(4)数据由DBMS统一管理和控制。
数据库系统与文件系统的区别
数据库系统实现整体数据的结构化
文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。
数据库系统的特点
(1)数据结构化。
(2)数据共享性高、冗余少且易扩充。
(3)数据独立性高。
(4)数据由DBMS统一管理和控制。
数据模型(核心与基础)
1. 数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础;其组成元素有数据结构、数据操作和完整性约束。
2. 概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。(数据库的概念模型是将现实世界的客观对象抽象为某种信息结构,它独立于具体的机器和DBMS)
3. 逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。
4. 物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
数据库的三级系统结构
1.数据库模式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。
2.数据库的三级系统结构:外模式、模式和内模式。
3.数据库内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
4.数据库外模式:又称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。
5.数据库的二级映像:外模式/模式映像、模式/内模式映像。
6.三级模式之间的关联:数据库三级模式反映的是数据的三个抽象层次: 模式是对数据库中全体数据的逻辑结构和特征的描述。内模式又称为存储模式,是对数据库物理结构和存储方式的描述。外模式又称为子模式或用户模式,是对特定数据库用户相关的局部数据的逻辑结构和特征的描述。
数据库系统的独立性
数据独立性包括物理独立性(用户的应用程序与数据库中数据的物理存储是相互独立的,与模式/内模式映像有关)和逻辑独立性(用户的应用程序与数据库的逻辑结构是相互独立的,与外模式/模式映像有关)
第二章
关系模式
R —— 关系名
U —— 组成该关系的属性名集合
D —— 属性组 U 中属性所来自的
DOM —— 属性向域的映象集合
F —— 属性间的数据依赖关系集合
关系模式和关系的区别
关系模式是静态的,关系是动态的。对于常见的二维表,关系模式指的是表的表头,即由哪些列构成,每个列的名称、类型、长度等。关系通常指的是一张表的具体内容(除了表头以外的数据行),因为关系操作在不断地更新数据库中的数据,所以不同时刻的关系可能不一样。
五种基本关系运算操
第三章
SQL语句总结
1)SELECT
将资料从数据库中的表格内选出,两个关键字:从 (FROM) 数据库中的表格内选出 (SELECT)。语法为
SELECT "栏位名" FROM "表格名"。
2)DISTINCT
在上述 SELECT 关键词后加上一个 DISTINCT 就可以去除选择出来的栏位中的重复,从而完成求得这个表格/栏位内有哪些不同的值的功能。语法为
SELECT DISTINCT "栏位名" FROM "表格名"。
3)WHERE
这个关键词可以帮助我们选择性地抓资料,而不是全取出来。语法为
SELECT "栏位名" FROM "表格名" WHERE "条件"
4)AND OR
上例中的 WHERE 指令可以被用来由表格中有条件地选取资料。这个条件可能是简单的 (像上一页的例子),也可能是复杂的。复杂条件是由二或多个简单条件透过 AND 或是 OR 的连接而成。语法为:
SELECT "栏位名" FROM "表格名" WHERE "简单条件" {[AND|OR] "简单条件"}+
5)IN
在 SQL 中,在两个情况下会用到 IN 这个指令;这一页将介绍其中之一:与 WHERE 有关的那一个情况。在这个用法下,我们事先已知道至少一个我们需要的值,而我们将这些知道的值都放入 IN 这个子句。语法为:
SELECT "栏位名" FROM "表格名" WHERE "栏位名" IN ('值一', '值二', ...)
6)BETWEEN
IN 这个指令可以让我们依照一或数个不连续 (discrete)的值的限制之内抓出资料库中的值,而 BETWEEN 则是让我们可以运用一个范围 (range) 内抓出资料库中的值,语法为:
SELECT "栏位名" FROM "表格名" WHERE "栏位名" BETWEEN '值一' AND '值二'
7)LIKE
LIKE 是另一个在 WHERE 子句中会用到的指令。基本上, LIKE 能让我们依据一个模式(pattern) 来找出我们要的资料。语法为:
SELECT "栏位名" FROM "表格名" WHERE "栏位名" LIKE {模式}
8)ORDER BY
我们经常需要能够将抓出的资料做一个有系统的显示。这可能是由小往大 (ascending) 或是由大往小(descending)。在这种情况下,我们就可以运用 ORDER BY 这个指令来达到我们的目的。语法为:
SELECT "栏位名" FROM "表格名 [WHERE "条件"] ORDER BY "栏位名" [ASC, DESC]
9)函数
函数允许我们能够对这些数字的型态存在的行或者列做运算,包括 AVG (平均)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM (总合)。语法为:
SELECT "函数名"("栏位名") FROM "表格名"
10)COUNT
这个关键词能够帮我我们统计有多少笔资料被选出来,语法为:
SELECT COUNT("栏位名") FROM "表格名"
11)GROUP BY
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。语法为:
SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1"
12)HAVING
该关键词可以帮助我们对函数产生的值来设定条件。语法为:
SELECT "栏位1", SUM("栏位2") FROM "表格名" GROUP BY "栏位1" HAVING (函数条件)
13)ALIAS
我们可以通过ALIAS为列名称和表名称指定别名,语法为:
SELECT "表格别名"."栏位1" "栏位别名" FROM "表格名" "表格别名"
等值连接和自然连接的区别
若在等值连接中把目标列中重复的属性列去掉则为自然连接。
嵌套查询的概念
一个select-from-where语句称为一个查询块,将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询。
第四章
存取控制
确保只授权给有资格的用户访问数据库的权限,同时使所有未被授权的人员无法接近数据。包括定义用户权限和合法权限检查两部分。合法权限检查有自主存取控制和强制存取控制两种方法。
自主存取控制(Discretionary Access Control,DAC):用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的存取权限转授给其他用户。非常灵活。主要通过SQL的GRANT语句和REVOKE语句来实现。
强制存取控制(Mandatory Access Control,MAC):每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。较为严格。
数据库的安全性
存取控制技术
视图技术
审计技术
第五章
关系模型的完整性约束
1.实体完整性:用于标识实体的唯一性。它要求基本关系必须要有一个能够标识元组唯一性的主键,主键不能为空,也不可取重复值。
2.参照完整性: 用于维护实体之间的引用关系。 它要求一个关系的外键要么为空, 要么取与被参照关系对应的主键值,即外键值必须是主键中已存在的值。
3.用户定义的完整性:就是针对某一具体应用的数据必须满足的语义约束。包括非空、 唯一和布尔条件约束三种情况。
第六章
数据依赖
数据依赖:数据依赖是一个关系内部属性与属性之间的一种约束关系。有多种类型的数据依赖,其中最重要的是函数依赖(Functional Dependency,FD)和多值依赖(Multivalued Dependency,MVD)
四个问题
(1) 数据冗余太大
(2) 更新异常
(3) 插入异常
(4) 删除异常
数据库的范式
1.第一范式1NF
无重复的列
2.第二范式2NF
属性完全依赖于主键[消除部分子函数依赖]
3.第三范式3NF
属性不依赖于其它非主属性[消除传递依赖]
4.BC范式BCNF
第七章
数据库设计的6个步骤
需求分析
概念结构设计
逻辑结构设计
物理结构设计
数据库实施
数据库运行和维护
数据字典
数据字典是关系数据库管理系统内部的一组系统表,记录了数据库中所有的定义信息。关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。
数据项
数据结构
数据流
数据存储
处理过程
画E-R图
1.实体型:用矩形表示,矩形框内写明实体名
2.属性:用椭圆表示,并用无向边将其与相应的实体型连接起来
3.联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时标明联系的类型(1:1, 1:n, m:n)
第九章
存储管理
第十章
查询优化
查询优化的优点:用户不必考虑如何最好地表达查询以获得较好的效率,系统可以比用户程序的“优化”做得更好。
- 代数优化:基于关系代数等价变换规则的优化方法,称为代数优化
- 物理优化:物理优化就是要选择高效合理的操作算法或存取路径,求得优化的查询计划,达到查询优化的目标。
- 基于规则的启发式优化:如对于用OR连接的析取选择条件,一般使用全表顺序扫描;如果2个表都已经按照连接属性排序,则选用排序-合并方法等。
- 基于代价估算的优化:对各算法通过代价估算公式计算代价选择最优解
- 两者结合的优化方法
查询处理的4个阶段
查询分析
查询检查
查询优化
查询执行
第十一章
事物的概念及ACID特性
- 事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
1.原子性:事务是数据库中的逻辑工作单元,里面的操作要么全做,要么不做
2.一致性:事务执行结果必须是一个事务从一个一致性状态转到另一个一致性状态
3.隔离性:一个事务的执行不能受其他事务的影响
4.持久性:一旦一个事务完成提交了,那么对数据库的改变是永久的,保证了事务的原子性和隔离性
故障的种类
1.事务内部的故障
2.系统故障(软故障):如操作系统故障,CPU故障,系统断电
3.介质故障(硬故障):如磁盘损坏、磁头碰撞、瞬时强磁场干扰等
4.计算机病毒
数据库恢复技术
1.数据转储:转储即DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。这些备用的数据称为后被副本。
2.登记日志文件:日志文件是用来记录事务对数据库的更新操作的文件。不同数据库系统采用的日志文件格式并不完全一样,主要有两种格式:以记录为单位的日志文件和以数据块为单位的日志文件。——开始+结束+更新。
第十二章
并发控制——事务的隔离性和一致性
并发控制概述:事务是并发控制的基本单位,并发控制用于保证事务的隔离性和一致性。
如果不对并发操作进行正确调度,可能导致数据的不一致性问题,主要包括丢失修改、不可重复读和读“脏”数据。
1.丢失修改:两个事务读入同一数据并修改,其中一个事务的修改会丢失
2.不可读重复:事务T1读取数据后,T2执行更新操作,使T1无法再现前一次读取结果
3.读脏数据:“脏”数据指事务T1修改某一数据,并将其写回磁盘,事务T2读取同一数据后,T1由于某种原因被撤销,则T2读取到的数据就为“脏”数据,即不正确的数据
封锁
排它锁:写锁,X锁
共享锁:读锁,S锁
可串行化调度
定义:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行地执行这些事务时的结果相同,称这种调度策略为可串行化的调度。
两端锁协议
- 封锁协议(Locking Protocol)即对数据对象加锁时约定的一些规则,如何时申请封锁、持锁时间、何时释放锁等。两段锁协议是最常用的一种封锁协议,使用两段锁协议产生的是可串行化调度(充分条件)。
- 两段锁协议是指所有事务必须分两个阶段对数据项加锁和解锁
- 获得封锁(扩展阶段):在对任何数据进行读、写操作之前,首先要申请并获取对该数据的封锁。
- 释放封锁(收缩阶段):在释放一个封锁之后,事务不得再申请和获得任何其他封锁。
🤗 题型
选择5*2=10
填空1.5*10=15
简答3*5=15
事务的概念及ACID特性
事务具有以下4个特性:原子性、一致性、隔离性和持续性。
原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,这些操作要么全做要么全都不做。事务的原子性保证了DBS的完整性。
一致性:一个事务独立执行的结果保证了数据库的数据一致性,即数据不会因事务的执行而遭到破坏
隔离性:在并发事务被执行时,系统应保证与这些事务先后单独执行时的结果一样,隔离性使并发执行的事务不必关心其他事务,如同在单用户环境下执行一样。
持续性:一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中,即使以后系统发生故障,也应保留这个事务执行的痕迹。
数据库的三级模式结构
数据库设计的六个阶段
请简述在数据库恢复中日志文件的作用
(1)事务故障恢复和系统故障恢复必须用日志文件;
(2)在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库;
(3)在静态转储方式中也可以建立日志文件,当数据库毁坏后可重新装入后援副本把数据库恢复到转存结束时刻的正确状态,然后利用日志文件把已完成的事务进行重做处理,对故障银行发生时尚未完成的事务进行撤销处理。
相关子查询和非相关子查询
- 执行顺序:相关子查询是由外部查询驱动内部查询。 而正常的嵌套查询中,内部查询首先被立即执行,返回的值被外部查询使用并执行外部查询。
- 依赖性:相关子查询内部查询依赖于外部查询进行处理,而在嵌套查询中外部查询依赖于内部查询。
- 性能:使用相关子查询会使性能降低,因为它执行的次数远远大于嵌套查询的次数
运算题3*5=15
关系运算
事务调度
求候选码和闭包
分析12
候选码+范式
设计18
SQL操作
应用15
E-R图
关系模式
范式
📎 参考文章
- 一些引用
- 引用文章
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
- Author:Koreyoshi
- URL:https://Koreyoshi1216.com/article/814a793e-9102-42b7-a450-48748b93a6ff
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!