第七章 数据库技术基础
数据库(DB)是指长期存储在计算机内的,有组织的,可共享的数据集合
数据库系统(DBS)有数据库、硬件、软件和人员组成
数据库技术的发展
1、人工管理阶段
2、文件管理阶段
3、数据库系统阶段(有较高的数据独立性)
数据模型的三要素
1、数据结构
2、数据操作
3、数据的约束条件
对数据操作的有
DDL语言(CREATE/ALTER/DROP/完整性约束)
DML语言(SELECT/INSERT/DELETE/UPDATE)
DCL语言:对权限的操作
数据模型分为
概念数据模型(E-R模型)
基本数据模型
目前提出的对象模型
实体属性
1、简单属性(不可再分)和复合属性(可分,如地址(省份、市))
2、单值属性(只有一个值)和多值属性(如电话号码可以有多个)
3、NULL属性(没有或未知)
4、派生属性(从其他属性可推出来)
E-R法的构件
扩充的E-R模型
1、弱实体(要依赖另一个实体而存在)
2、特殊化
数据库系统的体系结构
1、三级模式结构(三层两映射)
1、数据物理独立性
2、数据逻辑独立性
2、集中式数据库系统
两段提交协议:
封锁阶段(扩展阶段)和解锁阶段(收缩阶段)
3、客户/服务器数据库体系结构
4、并行数据库(多个CPU)
1、共享内存式多处理器
2、无共享式并行体系结构
5、分布式数据库系统
两段提交协议
表决阶段和执行阶段
web数据库
全码:指关系模型中所有的属性组是这个关系模式的候选键
数据库的控制功能
1、事务管理(不可分割的逻辑工作单位)
1、原子性:要么都做,要么什么都不做
2、一致性:只包含成功提交的是事务
3、隔离性:多个事务并发执行时是相互隔离的
4、持久性:一旦事务成功提交,则永久的反映到数据库中
2、故障恢复
1、事务内部故障
2、系统故障
3、介质故障
4、计算机病毒
恢复方法
1、静态转存和动态转存
2、海量转存、增量转存,日志文件
事务恢复的步骤
反向扫描文件日志
对事务的更新操作执行逆操作
继续反向扫描日志文件
知道事务开始的标志
数据库镜像
3、并发控制
1、并发操作带来的问题:带来数据的不一致性(丢失更新、不可重复读和脏读数据);破坏了数据的隔离性
2、并发控制技术:封锁,排他锁(X锁)和共享锁(S锁)
3、三级封锁协议
1、解决丢失更新
2、解决脏读数据
3、解决不可重复读
4、并发调度的可串行性:可串行化是并发事务正确性准则,当且仅当可串行化时才是正确的并发调度
5、封锁粒度:封锁的范围
6、事务是不可嵌套的,因为违背了事务的原子性,当且仅当当前没有实物执行时才能开始执行事务
4、安全性和授权
1、安全性违规(未经授权读取、修改、破坏数据)
2、授权
1、read:允许读取,不许修改
2、insert:允许插入不许修改
3、update:允许修改不许删除
4、delete:允许删除
5、index:允许创建或删除索引
6、resource:允许创建新关系
7、alteration:允许添加或删除关系中的属性
8、允许删除关系
事务的执行状态
1、活动状态:事务的初始状态
2、部分提交状态:全部执行完
3、失败状态:由于硬件或逻辑上的错误,使事务不能再继续进行,处于失败状态的事务必须回滚。
然后事务进入终止状态
4、终止状态:事务回滚并数据库恢复到开始执行前的状态
5、提交状态:当事务成功完成后,事务处于提交状态,只有事务属于提交状态,才能说明事务已经提交了
事务的隔离级别(高到低)
1、可串行化(读幻影):SERIALIZABLE——对同一事务两次读取满足相同条件的记录(WHER子句的条件未变),而读取到的记录不一样,原因在于:两次读取中间涉及WHERE条件的属性值被其他事务修改,或者其他事务插入、删除
了满足Where条件的记录
2、可重复读:(repeatable read )REPEATABLE READ——两次读取同一事务而读取的结果不一样,因为两次读的之间该数据被其他事务修改了
3、读提交数据:READ COMMITTED
4、可以读未提交数据(读脏):read uncommitted——读到了未提交的数据,而该数据后来因为执行了事务回滚而无效。
5、SQL语句定义:SET RANSACTION SOLATION LEVEL 1/2/3/4
数据仓库
DW的基本特性:面向主题的,数据是集成的,数据是相对稳定的,数据是反映历史变化的(时限一般是5~10年)
数据模式——事实表,多维数据模式包括(星型模式,雪花模式,事实星型模式)
数据仓库体系结构
通常采用:数据仓库服务器,OLAP(联机分析处理),前端服务器
从结构的角度:企业仓库,数据集市,虚拟仓库
数据仓库的设计
1、数据仓库的数据模型与操作行数据库的区别
1、不包含纯操作型的数据
2、扩充了码结构,增加了时间属性作为码的一部分
3、增加了一些导出数据
2、数据仓库的物理设计
主要提高I/O性能,通过粒度划分和数据分割来提高系统的性能
数据挖掘技术
海量数据搜集,强大的多处理计算机和数据挖掘算法
数据挖掘的常用技术
人工神经网络,决策树,遗传算法,近邻算法和规则推倒
数据挖掘的应用过程
1、确定挖掘对象
2、准备数据(数据挖掘工作量的60%),包括
1、数据选择
2、数据预处理(清洗)
3、数据转换
3、建立模型
4、数据挖掘
5、结果分析
6、知识应用
数据转储:DBA定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程
1、动态转储:指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行
2、静态转储:在系统中无运行事务时进行转储操作
3、增量转储:指每次只转储上一次转储后更新过的数据
4、海量转储:每次转储全部数据库
5、从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来会更加方便些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用有效
OLAP(联机分析处理):通常用对数据仓库进行数据挖掘;
OLTP(联机事务处理)是面向事物程序的执行,通常对应密集型更新事物的程序,应用于对数据库的操作
OLAP没有严格的时间要求,OLTP是面向业务的,对时效要求比较高。
OLAP用于数据挖掘以提供决策支持,OLTP用于具体的业务