导图社区 数据库基本原理概论(第五版)
数据库基本原理概论(第五版)F是关系R中的一个或一组属性,但不是R中码且与关系S中的某个主码一一对应、包含被另一关系参照的主码的关系是被参照关系。
编辑于2022-11-10 10:22:41时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
社区模板帮助中心,点此进入>>
时间管理-读书笔记,通过学习和应用这些方法,读者可以更加高效地利用时间,重新掌控时间和工作量,实现更高效的工作和生活。
本书是法兰教授的最新作品之一,主要阐明了设计史的来源、设计史现在的状况以及设计史的未来发展可能等三个基本问题。通过对设计史学科理论与方法的讨论,本书旨在促进读者对什么是设计史以及如何写作一部好的设计史等问题的深入认识与反思。
《计算机组成原理》涵盖了计算机系统的基本组成、数据的表示与运算、存储系统、指令系统、中央处理器(CPU)、输入输出(I/O)系统以及外部设备等关键内容。通过这门课程的学习,学生可以深入了解计算机硬件系统的各个组成部分及其相互之间的连接方式,掌握计算机的基本工作原理。
数据库基本原理概论(第五版)
第十章 数据库恢复技术
事务的基本概念
事务
事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位
事务的ACID特性
原子性
一致性
隔离性
持续性
故障种类
事务内部故障
系统故障
介质故障
计算机病毒
恢复的实现技术
数据转储
转储状态分类
动态转储
静态转储
转储方式分类
海量转储
增量转储
动态海量转储、动态增量转储、静态海量转储、静态增量转储
登记日志文件
登记的次序严格按并发事务执行的时间次序
必须先写日志文件,后写数据库
如果先写了数据库修改发生错误,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。
第九章 关系查询处理和查询优化
关系数据库系统的查询优化
查询处理步骤
1⃣️查询分析
2⃣️检查查询
3⃣️查询优化
4⃣️查询执行
关系代数表达式等价变换规则
代数优化策略是通过对关系代数表达式的等价变换来提高查询效率
查询树的启发式优化
1⃣️选择运算应尽可能先做
2⃣️把投影运算和选择运算同时进行
3⃣️把投影同其前后的双目运算符结合起来
4⃣️把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算
5⃣️找出公共子表达式
第八章 数据库编程
存储过程和函数
使用存储过程的优点
1⃣️运行效率高,提供了快速执行SQL语句的有效途径
2⃣️存储过程降低了客户机和服务器之间的通信量
3⃣️方便实施企业规划
创建存储函数
create function <函数名>(参数 <类型>) [returns 返回值类型]
begin
return(SQL语句);
end;
使用 select 函数名 ([<参数>]) 执行函数
创建存储过程
create procedure <存储过程名> ([out/in 参数名][,out/in 参数名])
begin
[declare <变量名> 类型];
SQL语句或其他代码
end;
使用 call <存储过程名>([参数]) 调用存储过程
第七章 数据库设计
数据库设计概述
数据库设计的特点
三分技术,七分管理,十二分基础数据
数据库设计的六个阶段
需求分析
准确了解与分析用户需求(包括数据与处理)
概念结构设计
对用户需求进行综合、归纳与抽象
对于关系型数据库管理系统,常用的方法是E-R图设计
逻辑结构设计
将概念结构转换为所选择的数据库管理系统支持的数据模型
物理结构设计
为逻辑数据模型选择合适的物理结构(包括存储结构和存取方法)
数据库实施
建立数据库、编写和调试应用程序,组织数据入库
数据库运行和维护
将数据库投入正式运行且不断对数据库进行评估、调整与修改
概念结构设计和逻辑结构设计
例题
各子系统之间E-R图的冲突主要由三类:属性冲突、命名冲突和结构冲突
物理结构设计
关系模式存取方法选择
常用的存取方法为索引方法和聚簇方法
索引方法
B+树索引存取方法
hash索引存取方法
聚簇方法
一个数据库可以建立多个聚簇,一个关系只能加入一个聚簇
第六章 关系数据库理论
相关概念
数据依赖
数据依赖是一个关系内部属性与属性之间的约束关系。通过属性之间的值相等与否体现。
函数依赖
X可以唯一确定Y,就称Y函数依赖于X,记作:X->Y
X->Y且不存在X的一个真子集能确定Y,称为完全函数依赖,否则是部分函数依赖
X->Y,Y->Z
范式
规范化
一个第一级的范式通过模式分解可以转换为若干个高一级的关系模式的集合,这个过程称为规范化
2NF
关系满足1NF且每一个非主属性完全依赖于任何一个候选码
3NF
关系满足2NF且每一个非主属性不传递依赖于候选码
BCNF
满足2NF且主属性对候选码的不存在部分和传递函数依赖
第一章 绪论
数据库系统概述
数据库的四个基本概念
数据(DATA)、数据库(DB)、数据库管理系统(DBMS)、数据库系统(DBS)
数据
描述事物的符号记录,数据库中存储的基本对象
📝记录是计算机表示数据的基本格式
数据库
长期存储在计算机内有组织的、可共享的大量数据的集合
数据库的基本特征
按一定的数据模型描述、组织和存储数据
较小的冗余度
较高的独立性
可共享、易于扩展
数据库管理系统
位于用户与操作系统之间的一层数据管理软件
数据库的功能
数据定义
提供数据提供数据定义语言,定义数据模型
分类组织、存储和管理数据库相关数据
数据操纵
提供数据操纵语言,查询和更新数据
数据库的事务管理和运行管理
数据库系统
由数据库(数据存储)、数据库管理系统(组织,存取,管理维护)、应用程序和数据库管理员组成
数据管理技术的产生和发展
数据管理(数据处理的中心问题)
对数据进行分类、组织、编码、存储、检索和维护
发展过程
人工管理阶段➡️文件系统阶段➡️数据库系统阶段
数据库管理技术的发展动力
应用需求、硬件发展、软件发展
数据库系统的特点
数据库的整体结构化(与文件系统的本质区别)
数据共享度高、低冗余度且易于扩充
数据独立性高
数据库管理系统统一管理和控制数据
❓数据是啥?
❓数据库是啥?
❓数据库管理系统是啥?
❓数据库系统是啥?
❓数据库系统与文件系统的本质区别是啥?
❓数据库系统有啥优点?(结构化、两高一低加统一控制)
数据模型
数据模型基础
数据模型是对现实世界的数据特征的抽象,用来描述数据、组织数据和操作数据
数据模型是数据库系统的核心和基础,现有的数据库系统均是基于某种数据模型的
数据模型分类
第一类模型
概念模型
第二类模型
逻辑模型
层次模型
网状模型
关系模型
其他
物理模型
概念模型
实体
客观存在且可以相互区别的事物
属性
实体所具有的某一特征
🔑码(key)
唯一标识实体的属性集
实体型
用实体名及其属性名集合来抽象和刻画同类实体
实体集
实体型的具体反映➡️实体集
联系
实体内部的联系
实体所具有的属性之间的联系
实体间的联系
不同实体集之间的联系,包括一对一、一对多、多对多
E-R模型(Entity-Relationship )
逻辑模型
数据结构
描述组成对象及对象之间的联系
数据操作
允许对数据库中各种对象的实例执行的操作的集合
数据完整性约束条件
一组完整性规则,用以限定数据的变化,保证数据正确、有效、相容
常用的数据模型
层次模型
实体间是一对多的父子关系
所有结点中只有一个结点没有双亲结点,称为根结点
根结点以外的其他结点有且只有一个双亲结点
优点
结构清晰简单,能直观地表示一对多关系
缺点
现实意义不强,难以表示现实世界中多对多的关系
对插入和删除操作限制多
查询某一结点必须通过其双亲结点
网状模型
实体间是多对多的关系
结点可以没有双亲结点也可以有多个双亲结点
缺点
随着范围的扩大结构会越来越复杂
数据及模型定义语言复杂,不易使用
关系模型
关系模型中数据的逻辑结构是一张二维表,由行和列组成
数据结构
关系
一个关系一张表
元组
一行一个元组(📝记录)
属性
一列一个属性
主码
表中的某个属性组,可以唯一确定一个元组
域
一组具有相同数据类型值的集合,属性取值范围来自某个域
分量
元组中的某一个属性值
关系模式
对关系的描述
关系必须是规范化的
最基本的规范条件是第一范式
优点
建立在严格的数学概念(集合代数)基础上
概念单一,实体和联系用关系表示,数据操作的结果也是关系
存取路径对用户透明
缺点
由于存取路径对用户透明,查询效率往往不如格式化数据模型
为提高性能,必须对用户的查询请求进行优化,增加了系统开发的难度
面向对象数据模型
对象关系数据模型
半结构化数据模型
❓逻辑模型是啥?
❓逻辑模型的定义包括哪些方面?
❓物理模型是啥?
❓常用的逻辑模型有哪些?
❓数据模型的三个要点?
❓概念模型是啥?
数据库系统的结构
数据库通常采用三级模式结构
外模式
模式(逻辑模式)
内模式
数据模式
数据模式是数据库全体数据的逻辑结构和特征描述,仅涉及型的描述,不涉及具体的值
型(Type)
对某一数据的结构和属性的说明
值(Value )
型的一个具体取值
模式和实例
模式(逻辑模式)
数据库逻辑结构和特征的描述
对型的描述,不涉及具体的值
反映数据的结构及其联系
模式是相对稳定不轻易变化的
实例
模式的一个具体值
反映数据库某一时刻的状态
同一个模式可以有很多实例
实例随数据库中的数据更新而变动
模式特点
一个数据库只有一个模式
是所有用户的公共数据视图
是模式结构的中间层,不涉及物理存储细节,与应用程序无关
模式定义
数据的逻辑结构(数据项名、类型、取值范围等)
数据库有关的安全性、完整性要求
外模式
局部数据的逻辑结构和特征描述
介于模式与应用之间
数据库用户的数据视图,与应用有关的数据逻辑表示
外模式特点
外模式通常是模式的子集,一个数据库可以有多个外模式
外模式可以保证数据安全,用户只能看到外模式中的数据
外模式用视图实现
内模式(存储模式)
数据在数据库内部的表示方式,是对物理结构和存储方式的描述
存取方法:索引方法和聚簇方法
数据压缩、加密
内模式特点
一个数据库只有一个内模式
数据库模式的二级映像
外模式/模式映像
模式/内模式映像
数据库模式带来的好处
保证了数据逻辑的独立性
保证了数据物理的独立性
❓三级模式结构指的是什么?
❓模式(逻辑模式)的定义包括哪些方面?
❓一个数据库可以有几个模式和内模式?
❓怎么区别数据模式和数据模型的概念?
数据库系统的组成
硬件平台和数据库
软件
操作系统
数据库管理系统
应用程序
人员
数据库管理员
系统分析员
数据库设计人员
应用程序员
用户
第二章 关系数据库
关系模型理论是 E.F.Codd提出来的
关系数据结构和形式化定义
关系
域
笛卡尔积
元组
分量
基数
关系
属性
候选码
主码
主属性
三类关系
基本关系(基本表)
查询表
视图表
关系模式
关系模式是型,关系是值,关系模式是对关系的型的描述。
关系模式的表示方法
R(U, D, DOM, F)
关系操作
查询操作
选择、投影、并、差、笛卡尔积是5种基本查询操作
更新操作
插入
删除
修改
关系操作的特点
操作对象和结果均是集合。
关系的完整性
实体完整性
实体完整性规则
主属性不能取空值
主属性不能取两个相同的值
参照完整性
外码
F是关系R中的一个或一组属性,但不是R中码且与关系S中的某个主码一一对应
参照关系
设置外码的关系是参照关系
包含被另一关系参照的主码的关系是被参照关系
参照完整性规则
外码的取值必须是被参照表中对应的码已有的值或空值
用户定义的完整性
设置属性的检查条件
用户定义的完整性
关系的两个不变性
关系模型必须满足的实体完整性和参照完整性
关系代数
并
r 1∪ r2={t|t∈r1∨t∈r2}
交
r 1∩r2={t|t∈r1∧t∈r2}
差
r 1-r2={t|t∈r1∧t∉r2}
笛卡尔积
投影
投影操作是对一个关系进行垂直分割,消去某些列,并重新排列顺序。
投影运算符是 π
选择
选择操作是根据某些条件对关系进行水平分割,即选取符合条件的元组。
连接
等值连接
当θ 为“=”时,是等值连接,选取A、B属性值相同的元组
自然连接
当没有θ时时自然连接
自然连接是一种特殊的等值连接
一般连接从行的角度运算,自然连接会消去重复列,所以是同时从行和列的角度运算
悬浮元组
在自然连接中R中某些元组有可能在S中不存在公共属性上值相等的元组,这些元组(悬浮元组)会被舍弃
外连接:保留悬浮元组,在其他属性上填 null
左外连接:保留左边关系R的悬浮元组
右外连接:保留右边关系S的悬浮元组
除
1⃣️确定结果属性:R➗S,即R包含而S不包含的属性(假设它是A属性)
2⃣️找出A属性各取值的象集
3⃣️找出S在R与S的公共属性集上的投影
4⃣️如果A属性的某个或某些取值的象集包含了该投影,则该A的该取值就是结果
第三章 SQL(Structured Query Language)
SQL的功能与特点
功能
数据定义
数据查询
数据控制
特点
功能完备、扩展性好
高度非过程化
面向集合的操作方式
同一语法结构提供多种使用方式
简洁易用
表的基本操作
定义表
create table <表名> (<字段名> <类型> [列级完整性约束条件][,字段名 类型……][,表级完整性约束条件])
常用约束
① NULL/NOT NULL(空值约束/非空值约束)
② DEFAULT (默认值约束)
③ UNIQUE(唯一值约束)
④ CHECK(检查约束)
⑤ PRIMARY KEY(主键约束)
⑥ FOREIGN KEY(外键约束)
auto_increment (自动增量)
常用数据类型
char(n)
varchar(n)
int
DECIMAL(p,d) NUMERIC(p,d)
修改表
alter table <表名>
[ADD <新列名> <数据类型>[完整性约束条件]]
[ADD [索引类型] INDEX [索引名](列名)]
[DROP [COLUMN] <列名>]
[DROP <完整性约束名>]
[MODIFY <列名> <数据类型> [完整性约束条件]]
[CHANGE <列名> <新列名> <数据类型> [完整性约束条件]];
rename table <表名> to <新表名>;
alter table <表名> drop primary key;
删除表
DROP TABLE <表名>
索引的建立和删除
创建
CREATE [UNIQUE][CLUSTER] INDEX <索引名>
ON <表名>(<列名>[ASC/DESC][,<表名>[ASC/DESC]]);
修改索引名
ALTER INDEX <旧索引名> RENAME TO <新索引名>;
删除索引
DROP <索引名>;
数据字典
数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有的定义信息
执行SQL的定义语句时,实际上就是在更新数据字典中的相应信息
SQL的数据查询
SELECT
[ALL/DISTINCT] <目标列表达式> [, <目标列表达式>]…
FROM <表名或视图名>[, <表名或视图名>]…
[WHERE <条件表达式>]
[GROUP BY <列名1>[HAVING <条件表达式>]]
[ORDER BY <列名2> [ASC/DESC]];
常用查询条件
模糊查询(字符串匹配)
[NOT] LIKE ‘<匹配串>’[ESCAPE’<换码字符>’]
%百分号代表任意长度的字符串
_代表一个字符
当查询的字符串本身就含有通配符%或_时,用ESCAPE ‘<换码字符>’
ORDER BY子句
DESC
ASC
用于查询最终结果排序
聚集函数
聚集函数不能在 WHERE 子句中使用,只能用于select 和 group by 的having子句
GROUP BY子句
将查询结果按某一列或多列的值分组,值相等的为一组
分组后的聚集函数将分别作用于每一组,即每一组都有一个函数值
连接查询
一个查询涉及同时涉及两个以上的表
等值连接、自然连接 、非等值连接、外连接、复合条件连接
自然连接
查询选修课程2号课程且在90分以上的所有学生的学号和姓名
自身连接
查询每一门课的间接先修课(先修课的先修课)
外连接
左外连接
右外连接
嵌套查询
将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 子句中称为嵌套查询
查询与“刘晨”在同一个系的所有学生
子查询条件依赖父查询称为相关查询,不依赖称为不相关查询
找出每个学生超过他自己选修的平均成绩的课程号
带有 ANY 或 ALL 谓词的子查询
查询非计算机科学系中比计算机科学系所有年龄都小的学生及年龄
带有EXISTS的子查询
带有EXISTS子查询不返回任何数据,只产生逻辑值
查询所有选修了1号课程的学生姓名
查询选修了全部课程的学生的学号
将其转换为:查询不存在一门课程是没有选修的学生的学号
集合查询
UNION 并操作
INTERSECT 交操作
EXCEPT 差操作
派生表查询
子查询出现在 form 子句内称为派生表
数据更新
插入数据
插入元组
INSERT INTO <表名> [(<属性>[,<属性>]……)]
VALUES(<值>[,<值>]……);
插入查询结果
INSERT INTO <表名> [(<属性>[,<属性>])]
子查询;
修改数据
UPDATE <表名> SET <列名>=<表达式>[,<列名>=<表达式>] [WHERE <条件>]
删除数据
DELETE FROM <表名>[where<条件>];
视图
定义视图
建立视图
CREATE VIEW <视图名> [(<列名1>[,<列名2>]……)] AS <查询> [WITH CHECK OPTION]
删除视图
DROP VIEW <视图名> [CASCADE]
查询视图
与查询表一样的操作
视图消解
更新视图
由于视图不存储实际数据,所以对视图的更新最终要转换为对基本表的更新
视图的作用
1⃣️视图能够简化用户的操作
2⃣️视图使用户能够以多种角度看待同一数据
3⃣️视图对重构数据库起了一定程度的逻辑独立性
4⃣️视图能够对机密数据提供安全保护
5⃣️适当利用视图可以更清晰地表达查询
第四章 数据库安全性
数据库安全性概述
数据库不安全因素
1⃣️非授权用户对数据库的恶意存取和破环
2⃣️数据库重要或敏感数据被泄露
3⃣️安全环境的脆弱性
数据库安全性控制
用户身份鉴别
存取控制
存取控制机制主要包括定义用户权限和合法权限检查
自主存取控制
强制存取控制
自主存取控制方法
通过GRANT HE REVOKE 语句实现
用户权限
数据库对象
操作类型
定义存储权限称为授权
授权:授予与收回
GRANT
GRANT <权限>[,<权限>……] ON <对象类型> <对象名> [,<对象类型> <对象名>] TO <用户> [,<用户>] [WITH GRANT OPTION]
REVOKE
ROVOKE <权限> [,<权限>] ON <对象类型> <对象名> [,<对象类型> <对象名>] FROM <用户> [,<用户>] [CASCADE/RESTRICT]
数据库角色
数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合
强制存取控制方法
主体是系统中的活动实体(如用户、程序)
客体是系统中的被动实体(如文件、数据表等)
视图机制
审计
数据加密
存储加密
传输加密
其他安全性保护
推理控制
隐蔽信道
数据隐私
第五章 数据库完整性
数据库的完整性是指数据的正确性和相容性
实体完整性
主码取值非空、唯一
参照完整性
外码的取值必须是参照表中对应属性下已有的取值或为空值
违反参照完整性的处理策略
拒绝执行(NO ACTION)
级联操作(CASCADE)
设置空值
用户定义的完整性
完整性约束命名自句
CONSTRAINT <完整性约束条件名> <完整性约束条件>
断言
触发器
触发器(TRIGGER)是用户定义在关系表上的一类由事件驱动的特殊过程
定义触发器
CREATE TRIGGER <触发器名> {before/after} <触发事件> on <表名>
FOR EACH{ROW/STATEMENT}
触发动作(begin……end;)
激活触发器
执行顺序
1.执行 BEFORE 触发器
2.执行 激活触发器的sql语句
3.执行 AFTER 触发器