导图社区 数据库系统思维导图
这是一篇关于数据库系统的思维导图,数据库系统(Database System),是由数据库及其管理软件组成的系统。
编辑于2021-06-17 20:27:26数据库系统
1. 基本概念
历史
人工管理、文件管理、数据库系统
数据库、数据库管理系统、数据库系统
核心:DBMS
三级模式
目的:物理独立性、逻辑独立性
外模式、模式、内模式
一个内模式、多个外模式
模式是数据库中全体数据的逻辑结构和特征的描述
外模式是数据库用户所见和使用的局部数据的逻辑结构和特征的描述
内模式是数据物理结构和存储方法的描述
两层映像
模式/内模式
物理独立性
外模式/模式
逻辑独立性
数据库系统的组成
硬件平台
软件系统
人员
数据库系统的特点
数据集成性好
数据共享性高
数据独立性强
数据控制力度大
术语
元组、属性、分量、表、行、列、标题等
主属性
候选码所有属性的并集
2. 关系数据库
关系
笛卡尔积的有限子集
性质
关系模式
R<U,D,DOM,F>
关系模型
特点
结构简单,表达力强
语言的一体化
非过程化操作
坚实的数学基础
表示不同的实体集之间联系
逻辑结构是若干个二维表
三要素
关系数据结构
关系数据操作
关系完整性约束
关系代数
集合运算
前提条件——兼容表
并、交、差、笛卡尔积
专门的关系运算
投影
可能会有重复结果
选择
简单或复杂逻辑表达式
连接
即自然连接
除
运算依赖
其他关系运算
外连接
左、右外连接
关系代数式
关系的完整性约束
规则1 第一范式规则
关系模型坚持不允许含有多值属性、内部结构的列
规则2 基于内容存取规则
行是没有次序的
标准语句不提供对指定行的存取
规则3 行唯一性规则
关系中任何两个元组的值在同一时刻不能是完全相同的
规则4 实体完整性规则
键
又称候选键
计算步骤
找到L,R,N
L一定在候选键中
R一定不在候选键中
组合判断
超键
唯一区分两行数据的列或多个列
包含超键的多个列都是超键
主键
被设计者选中作为行的唯一标识符的候选键
表中任意行在主键列的取值都不允许为空
可能破坏
插入和修改元组
规则5 参照完整性规则
R上每个元组在F上的值必须为空值或者等于S中某个元组的主键值
F是R的外键,S是被参照关系
可能破坏
S中删除和修改元组
R中插入和修改元组
3. SQL
特点
综合统一
高度非过程化
灵活的使用方式
简介、通用、功能强
分类
模式定义语句DDL
创建、更新、撤销各种数据库的对象
数据操纵语句
完成数据库的查询和更新操作
事务与控制语句
完成数据库授权、事务管理以及控制SQL语句集的运行
会话与诊断语句
建立数据库连接,为SQL绘画设置参数、获取诊断
两种使用方式
交互式SQL
嵌入式SQL
数据定义
表
建立
CREATE TABLE Student(……)
删除
DROP TABLE Student CASCADE
CASCADE
删除表时,删除数据、表本身和在其上建立的索引和视图
RESTINCE
先清除了表中的数据和在该标志上的索引与视图后才可以删除,否则拒绝
扩充和修改
alter
add新的列
drop已有的列
modify已有的列
补充定义主码
删除主码
删除完整性约束条件
索引
建立
CREATE UNIQUE INDEX SS ON Student(Sno ASC, Sname DESC)
UNIQUE
表示此索引的每个索引值只对应唯一的数据记录
CLUSTER
一个表最多建立一个
DROP INDEX ON Student SS
查询
select
DISTINCT 删去重复行
ALL
保留查询结果的所有值,缺省
其列必须在group by中或者时集合函数中
where
EXISTS的语法
选修了学号为5001的学生选的所有课程的学生的学号和姓名
BETWEEN...AND...
LIKE
where A not like '%good'
通配符
%
任意长度的字符
_
一个字符
要注意汉字占两个字符位
IN
空值
IS NULL
= ''
group by
having
所使用的列名必须在group by中或者包括在集合函数中
至少包括一个集合函数
与group by一起使用
order by
ASC
DESC
集合函数
SUM、COUNT、AVG、MAX、MIN
COUNT(DISTINCT A)
只用于select和having中
谓词
SOME、ANY、ALL
数据更新
插入
要求
如果插入的元组主键和数据库中已有的元组主键相同,报错
主键不能为空
not null要求不为空
CHAR类型注意引号
数字与字符串可自行转换,但是字符一定要有引号
语法
INSERT INTO TABLE (A) VALUES (1,2,3);
修改
UPDATE Student SET Sno = NULL WHERE Sname = 'liming';
不可以使用 is null
删除
集合运算
UNION、INTERSECT、EXCEPT
视图
建立
更新限制
4. 数据库安全
自主存取控制
强制存取控制
grant
一次向多个用户授权
一次多个权限
一次一个数据对象
revoke
其他安全机制
用户标识和鉴定
用户名和口令
预先约定函数
物理特征
数字签名技术
智能卡技术
触发器
目的:完整性保护
5. 数据库设计
特点
数据库建设是硬件、软件和干件(技术与管理的界面)的结合
结构(数据)设计和行为(处理)设计的结合
目标
满足要求与模拟精确程度
良好的数据库性能
六个步骤
需求分析
数据字典
数据库系统的核心
概念结构
ER图
形成独立于DBMX的概念模型
自底向上设计方法
抽象数据并设计局部视图
继承局部视图,得到全局的概念结构
逻辑结构
关系模型
转换为DBMS支持的数据模型
物理结构设计
确定数据库的物理结构
存取方法和存储结构
数据库实施
数据库运行和维护
职责分工
概念结构设计
ER图
长方体
实体
椭圆形
单值属性
双线椭圆
多值属性
虚线椭圆
派生属性
菱形
关系
双线矩形框
弱实体
CSDN
设计分ER图
确定局部结构范围
逐一设计分ER图
能作为属性,尽量作为属性对待
属性是不可分的数据项
属性不能与其他实体具有联系
视图的集成
合并E-R图
合并方法
二元合并法
n元合并法
冲突处理
属性冲突
命名冲突
结构冲突
修改和重构
用分析法消除冗余数据
利用关系规范消除冗余关系
逻辑结构设计
E-R模型转为关系模型
实体与实体属性的转换
一个实体型可转换为一个关系模式
实体间联系的转换
1:1
独立关系模式
各实体主码+联系的属性
与任意一端关系模式合并
加入另一端主码和联系的属性
1:n
独立的关系模式
1各实体主码+联系的属性
2关系主码为n端实体的主码
与n端的关系模式合并
弱实体
将被依赖实体的主码纳入弱实体中,作为弱实体主码或者主码的一部分
如果n端曾是弱实体,要注意其主码的更新
超类和子类
1超类、子类都转换为独立的关系模式
2将超类实体的主码加到子类实体中
m:n
1、必须建立新的关系模式
2、各实体主码+联系本身的属性作为关系模式的属性
3、关系模式主码是各实体主码的结合
三个或以上实体间的多元联系
关系模式主码是各实体主码的结合
具有相同主码的关系模式应该合并
属性处理
多值属性
建新的关系模式,主码由尸体住吗和多值属性组成
派生属性
消去
复合属性
为每个子属性创建一个单独的属性
6. 关系数据库理论
规范化与函数依赖
函数依赖
完全函数依赖
部分函数依赖
范式
1NF
2NF
非主属性完全函数依赖于键
将各个属性和他们完全函数依赖的主属性投影分为多个关系
3NF
非主属性无传递函数依赖于候选码
若主码为A,有A->X,X->Y,则将X->Y新建一个关系
BCNF
每一个决定因素都包括键
投影分解
4NF
多值依赖集合中左部都包含其候选码
判断方法
无多值属性和内部结构
非主属性完全函数依赖于候选码
非主属性不传递函数依赖于候选码
所有函数依赖左部包含任一候选码
规范化的步骤
规范化的目的
控制数据冗余、避免插入和删除异常操作,增强数据库结构的稳定性和灵活性
阿氏公理
自反、增广、传递
推论
合并、分解、伪传递规则
数据依赖的公理系统
属性闭包
最小函数依赖集
求解步骤
右边分为单属性
确保无多余的函数依赖,去除X->A,求X的闭包,如果有A,删去该函数依赖
确保左边没有多余属性
Fm是不唯一的
函数依赖保持性
F在R1,R2...上的投影的并集与F等价
无损连接性
表格法
二项分解定理
3NF的保持无损链接和函数依赖的分解算法
求最小函数依赖集
排除
若有X->A,XA = U,完成
独立
分组
添码
停止分解,完成
BCNF的保持无损链接和函数依赖的分解算法
函数依赖习题讲解CSDN
7. 数据库的安全性与完整性
触发器
目的:完整性保护
主动性
8. 事务
目的——一致性
不一致性
1丢失修改
2读“脏”数据
3不可重复读
幻像
ACID特性
原子、一致、隔离、持久
封锁
X加了之后不可加任何锁
S加了之后只可以加S,不可以加X
三级封锁协议
一级
修改数据前加X,事务结束后释放
解决1
二级
一级+读操作前加S读完立即释放
解决12
三级
一级+读操作前加S事务结束释放
解决123
两段锁协议
活锁与死锁
活锁
解决办法——先来先服务
死锁
预防+诊断与解除
选择一个处理思索代价最小的事务,撤消
数据库恢复技术
概述
数据恢复基本单位
事务
实现可恢复性
原理:重复存储数据
数据转储和登录日志文件
数据转储分为:动态和静态、海量和增量
日志文件
动态转储方式必须使用日志文件
登记的次序严格按照并发事务执行的时间次序来
先写日志文件后写数据库
故障种类和恢复策略
事故故障
系统故障
不破坏数据库
非正常终止事务回滚、重做已提交事务
介质故障
破坏存储在介质上的数据库
重装数据库,重做已完成的事务
检查点
具有检查点的数据库恢复步骤