(ps:本人的学习记录,用于上下班途中背诵记忆的,若有侵权联系我删除)
4.1数据库基础知识
4.1.1基础概念
- 数据库系统DBS:是一个采用了数据库技术,有组织地、动态地存储大量相关数据,方便多用户访问的计算机系统。由下面四个部分组成
- 数据库:统一管理、长期存储在计算机内的,有组织的相关数据的集合
- 硬件:构成计算机系统包括存储数据所需要的外部设备
- 软件:操作系统、数据库管理系统以及应用程序
- 人员:系统分析和数据库设计人员、应用程序员、最终用户、数据库管理员DBA
- 数据库管理系统DBMS
- 实现对共享数据有效的组织、管理和存取
- 包括数据定义、数据库操作、数据库运行管理、数据的存储管理、数据库的建立和维护等
4.1.2数据库的分类
数据库管理系统的类型通常有多个分类标准。如按数据模型分类、按用户数分类、按数据库分布站点分类等。
4.2数据库模式与范式
4.2.1数据库结构与模式
过程 | 产出物 | 说明 |
---|---|---|
需求分析 | 数据流图 数据字典 需求说明书 |
分析数据存储的要求,包含数据处理要求和数据要求整理 |
概念结构设计 | 用户数据模型:ER模型(实体-属性图) | 与DBMS(物理实现)无关 |
逻辑结构设计 | 关系模式 | 把E-R模型转换为关系模式,即转换成实际表和表中的列熟悉,考虑数据库设计约束 |
物理设计 | 考虑DBMS特性等,生成物理数据库 |
4.3.2E-R模型
1、并
把两个集合的所有记录合并在一起,并且相同的记录只显示一次
3、差
S1-S2:结果是S1表中有S2表中没有的那些记录
5、投影
是按条件选择某关系模式中的某列
7、连接(自然连接)
选择两个集合中关联的部分,相同的属性列只显示一次,显示两个关系模式中属性相同且值相同的记录,若没有标明连接关系,则默认表示两个集合中相等的列
连接可以转换为笛卡尔积和投影、选择的组合,例如:
S1??S2= π S1.Sno,S1.Sname,S1.Sdept,S2.Age [ σ S1.Sno=S2.Sno (S1×S2)] S1rhdlhd S2=pi_{S1.Sno,S1.Sname,S1.Sdept,S2.Age}[sigma_{S1.Sno=S2.Sno}(S1times S2)]S1??S2=πS1.Sno,S1.Sname,S1.Sdept,S2.Age?[σS1.Sno=S2.Sno?(S1×S2)]
? A、B的组合键确定C,即A可以决定C;即主键是两个函数的组合键,主键的某一部分可以确定某一部分
- 传递函数依赖
- 1NF:第一范式
- 属性值都是不可分的原子值:在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,每个属性都是简单属性,不是复合属性,则称R是第一范式。
- 通俗地说,第一范式就是表中不允许有小表的存在
- 消除非主属性对候选键的部分依赖,则会达到第二范式
- 2NF:第二范式
- 当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖,即主键不是复合主键)时,则称R是第二范式。
- 即2NF是在1NF的基础上,表中的每一个非主属性不会依赖复合主键中的某一个列
- 消除非主属性对候选键的传递依赖,则会达到第三范式
- 3NF:第三范式
- 当且仅当R是2NF,且表中没有非主属性传递依赖时,则称表是第三范式。
- 即非主属性不存在传递依赖
- 消除非主属性对候选键的传递依赖,则会达到BC范式
- BCNF:BC范式
- BCNF是在3NF的基础上进一步消除主属性对于键的部分函数依赖和传递依赖,设R是一个关系模式,F是它的依赖集,R属于BCNF当且仅当其F中每个依赖的决定因素必定包含R的某个候选键
- 通俗地说,就是在每一种情况下,每一个依赖的左边决定因素都必然包含候选键
- 主属性与非主属性
- 首先找出候选键集合
- 属性中不在候选键中的则是非主属性,在则是主属性
- 范式在级别的越来越高,数据规范化越来越规范,往往会把数据表进行拆分,拆分得越来越细,则会带来性能问题
6、模式分解
- 保持函数依赖分解:
- 分解前有哪些函数依赖,分解后这些依赖仍然存在,注意要消除掉冗余依赖(如传递依赖)
- 例如:R(A,B,C),依赖集F(A→B,B→C,A→C),则分解后为R1(A,B)和R2(B,C),A→C为冗余依赖
- 无损分解
- 有损:不能还原,无损:可以还原
- 无损联接分解:指将一个关系模式分解成若干个关系模式后,通过自然连接和投影等运算仍能还原到原来的关系模式
- 无损分解判断方法(只适用于一分为二的模式分解)
1、事务
事务:由一系列操作组成,这些操作要么全做,要么全不做,拥有四种特性:
- 原子性:事务不可拆分,要么全做,要么全不做
- 一致性:在事务执行前后,数据保持一致的状态
- 隔离性:事务之间是独立的,互不影响
- 持续性:事务执行后,其结果和影响是持续的
为了实现原子性和持久性的最为简单的策略是“影子拷贝”。
- 影子拷贝:该策略假设在某一个时刻只有一个活动的事务,首先对数据库做副本(称为影子副本),并在磁盘上维护一个dp_pointer指针,指向数据库的当前副本。对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除新副本,原数据库副本没有受到任何影响。
2、并发会产生的问题
- 丢失更新:事务1对数据A进行修改并写回,事务2也对A进行了修改并写回,此时事务2写回的数据会覆盖事务1写回的数据,就丢失了事务1对A的更新,即对数据A的更新会被覆盖
- 不可重复读问题:事务2读A,而后事务1对数据A进行了修改并写回,此时若事务2再读A,发现数据不对,即一个事务重复读A两次,会发现数据A有误
- 读“脏”数据:事务1对数据A进行修改后,事务2读数据A,而后事务1回滚,数据A恢复了原来的值,那么事务2对数据A做的事事无效的,读到了脏数据。
3、并发控制方法
-
X锁是排它锁(写锁)。若事务T对数据对象A加上X锁,则只允许T读取和修改A,其他事务都不能再对A加任何类型的锁,知道T释放A上的X锁
-
S锁是共享所(读锁)。若事务T对数据对象A加上S锁,则只允许T读取A,但不能修改A,其他事务智能再对A加S锁(也即能读不能修改),直到T释放A上的S锁
-
一级封锁协议:事务T在修改数据R前必须先对其加X锁,直到事务结束才可以释放,可防止丢失更新
-
二级封锁协议:一级封锁协议的基础上,加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁,可防止丢失更新,还可防止读“脏”数据
-
三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放,可防止丢失更新、防止读“脏”数据与防止数据重复读
-
两段锁协议:可串行化的,可能会发生死锁
4.5数据库安全
4.5.1数据库安全措施
措施 | 说明 |
---|---|
用户标识和鉴定 | 最外层的安全保护措施,可以使用用户账户、口令和随机数检验等方式 |
存取控制 | 对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限 |
密码存储和传输 | 对远程终端信息用密码传输 |
视图的保护 | 对视图进行授权 |
审计 | 使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来 |
4.5.2故障与恢复
故障关系 | 故障原因 | 解决方法 |
---|---|---|
事务本身的可预期故障 | 本身逻辑 | 在程序中预先设置Rollback语句 |
事务本身的不可预期故障 | 算术溢出、违反存储保护 | 由DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态 |
系统故障 | 系统停止运转 | 通常使用检查点法 |
介质故障 | 外存被破坏 | 一般使用日志重做业务 |
4.6数据库备份与恢复
4.6.1根据备份方式分类
- 冷备份:也称静态备份,是将数据库正常关闭,在停止状态下,将数据库的文件全部备份(复制)下来。
- 优点:非常快速的备份方法、容易归档(直接物理复制操作)
- 缺点:只能提供到某一时间点上的恢复,不能做其他工作,不能按表或用户恢复
- 热备份:也称动态备份,是利用备份软件,在数据库正常运行的状态下,将数据库中的数据文件备份出来
- 优点:可在表空间或数据库文件级备份,数据库仍可使用,可以达到秒级恢复
- 缺点:不能出错,否则后果严重,若热备份不成功,所得结果几乎全部无效
- 比较
4.7.2其他概念
1、分布透明性
- 分片透明性:用户或应用程序不需要知道逻辑上访问的表具体是如何分块存储的
- 水平分片:将表中水平的记录分别存放在不同的地方
- 垂直分片:将表中的垂直的列值分别存放在不同的地方
- 混合分片:水平和垂直分片融合
- 位置透明性:用户或应用程序不关心数据存储物理位置
- 局部数据模型透明性(逻辑透明):用户或应用程序无需知道局部使用的是哪种数据模型
- 复制透明性:用户或应用程序不关心复制的数据从何而来。
2、分布式数据库管理系统
- 组成
- LDBMS
- GDBMS
- 全局数据字典
- 通信管理(CM)
- 结构
- 全局控制集中的DDBMS
- 全局控制分散的DDBMS
- 全局控制部分分散的DDBMS
4.8数据库优化
数据仓库是一种特殊的数据库,也是按数据库形式存储数据的,但是目的不同。
2、特点
- 面向主题的:按主题组织数据,用来做数据分析
- 集成的:记录集成式的数据
- 相对稳定的:指对进入数据仓库的数据尽量不做修改删除操作,一般不会做修改
- 反映历史变化:会定期导入新的数据
4.9.2数据挖掘
1、定义
数据挖掘(Data Mining)技术是人们长期对数据库技术进行研究和开发的结果。起初各种商业数据是存储在计算机的数据库中的,然后发展到可对数据库进行查询和访问,进而发展到对数据库的即时遍历。
2、常用技术
- 关联分析:关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。关联分析的重点在于快速发现那些有实用价值的关联发生的事件。其主要依据是事件发生的概率和条件概率应该符合一定的统计意义。
- 序列分析:主要用于发现一定时间间隔内接连发生的事件。这些事件构成一个序列,发现的序列应该具有普遍意义,其依据除了统计上的概率之外,还要加上时间的约束。
- 分类分析:通过分析具有类别的样本的特点,得到决定样本属于各种类别的规则或方法。
- 预测:与分类类似,但预测是根据样本的已知特征估算某个连续类型的变量的取值的过程,而分类则只是用于判别样本所属的离散类别而已。
- 聚类分析:据物以类聚的原理,将本身没有类别的样本聚集成不同的组,并且对每一个这样的组进行描述的过程。其主要依据是聚到同一个组中的样本应该彼此相似,而属于不同组的样本应该足够不相似。
- 时间序列分析:分析的是随时间而变化的事件序列,目的是预测未来发展趋势,或者寻找相似发展模式或者是发现周期性发展规律。
4.9.3商业智能BI
BI系统主要包括数据预处理、建立数据仓库、数据分析和数据展现四个阶段
- 数据预处理:是整合企业原始数据的第一步,包括数据的抽取、转换、加载三个过程(ETL过程)
- 建立数据仓库:是处理海量输的基础
- 数据分析:是体现系统智能的关键,一般采用联机分析处理(OLAP)和数据挖掘两大技术
- 联机分析处理(OLAP):不仅进行数据汇总/聚集,同时还提供切片、切块、下钻、上卷和旋转等数据分析功能,用户可以方便地对海量数据进行多维分析
- 数据挖掘:目标是挖掘数据背后隐藏的知识,通过关联分析、聚类分析和分类分析等方法建立分析模型,预测企业未来发展趋势和将要面了的问题
- 数据展现:在海量数据和分析手段增多的情况下,主要负责保障系统分析结果的可视化
4.9.4联邦数据库
1、定义
-
联邦数据库系统(FDBS)是一个彼此协作却有相互独立的成员数据库(CDBS)的集合,它将成员数据库系统按不同程度进行集成。
-
联邦数据库管理系统(FDBMS):对联邦数据库系统整体提供控制和协同操作的软件。
2、特征
- 分布性
- 异构性
- 自治性
- 透明性
3、分类
- 紧耦合
- 松耦合
4.10NoSQL技术
- NoSQL(Not only SQL)数据库:非关系型数据库
- 与传统数据库对比
关系数据库模式 | NoSQL模式 | |
---|---|---|
并发支持 | 支持并发、效率低 | 并发性能高 |
存储与查询 | 关系表方式存储、SQL查询 | 海量数据存储、查询效率高 |
扩展方式 | 向上扩展 | 向外扩展 |
索引方式 | B树、哈希等 | 键值索引 |
应用领域 | 面向通用领域 | 特定应用领域 |
- 缺点
- 成熟度不够,大量关键特性有待实现
- 开源数据库产品的支持力度有限
- 数据挖掘与商务智能支持不足
- 数据库专家较少
- 主流产品:Redis、MongoDB、Flare等
4.11大数据
- 定义:大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
- 特点
- Volume:数据体量大
- Velocity:处理速度快
- Variety:多样性,数据类型繁多
- Value:价值密度低
- 与传统数据比较
传统数据 | 大数据 | |
---|---|---|
数据量 | GB或TB级 | PB级或以上 |
结构化程度 | 结构化或半结构化数据 | 所有类型的数据 |
数据化分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台 |
- 关键技术:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。
- 大数据处理系统应该具有的重要特征
- 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本
传统数据 | 大数据 | |
---|---|---|
数据量 | GB或TB级 | PB级或以上 |
结构化程度 | 结构化或半结构化数据 | 所有类型的数据 |
数据化分析需求 | 现有数据的分析与检测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台 |
- 关键技术:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。
- 大数据处理系统应该具有的重要特征
- 高度可扩展性
- 高性能
- 高度容错
- 支持异构环境
- 较短的分析延迟
- 易用且开放的接口
- 较低成本
- 向下兼容性
文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树数据库组成表33031 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!