知识发现过程由三个阶段组成:数据准备、数据挖掘、结果的解释评估。
数据仓库 是面向主题的、集成的、不可更新的、随时间不断变化的数据的集合。
数据从操作型环境转移到数据仓库过程中所用到ETL(Extract-Transform-Load)工具通常需要完成的处理操作包括抽取、转换和装载。
数据仓库的数据来自多种数据源,需要进行一定的数据转换。
数据转换的主要任务是对数据粒度以及不一致的数据进行转换。
元数据是关于数据的数据,是描述数据仓库内数据的结构和建立方法的数据,按用途的不同分为两类:技术元数据和业务元数据。
在数据仓库设计和建设过程中,设计者需要调查用户的决策或数据处理需求,并将功能相近且需要相关联数据支持的需求进行归类,得到不同的需求集合,并在企业数据模型中寻找能够满足各个需求集合的数据集合,然后针对各个数据集合开展数据仓库数据模型的设计。这种设计方法称为 面向主题的设计方法。
粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大(粗糙)。
数据仓库是为了构建新的分析处理环境而出现的一种数据存储和组织的新技术。它的建立能充分利用已有的数据资源,把数据转换为信息,从中挖掘出知识,最终创造出效益;数据仓库的更新与时间间隔有关。
- 算法及数据挖掘
分为操作型数据和DSS(分析型)型数据。
- 联机事务处理(OLTP)(微观操作)
OLTP是对数据库联机的日常操作,通常是对一条记录的查询和修改,要求快速响应用户的请求,对数据的安全性、完整性及事物吞吐量要求很高。- 联机分析处理(OLAP)(宏观分析)
通常是对海量历史数据的查询和分析,要访问的数据量非常大,查询和分析操作十分复杂。
- OLAP的实现技术有以下三类:
① 基于关系型数据库的DLAP(ROLAP,Relational OLAP);
② 基于多维数据库的OLAP(MOLAP,Multi-Dimensional OLAP);
③ 混合型OLAP(HOLAP,Hybrid OLAP)
算法
- 分类算法:通过(样本集)学习得到一个目标函数f,把每个属性集x(测试集)映射到一个预先定义的类标号y。(监督学习)
- 聚类算法:据在数据中发现的描述对象及其关系的信息,将数据对象分组,组内的对象相互之间是相似的,而不同组中的对象则不同。(无监督学习)
- 关联规则挖掘:发现隐藏在大型数据集中的有意义的联系。
- 多维分析:各级管理决策人员从不同的角度、快速灵活地对数据仓库中的数据进行复杂查询多维分析处理。
常用的OLAP多维分析操作有切片、切块、旋转、钻取和卷起。
- 卷起:在数据立方体中执行聚集操作,通过在维级别中上升或通过消除某个或某些维来观察更概括的数据。
- 钻取:通过在维级别中下降或通过引入某个或某些维来更细致的观察数据。
- 切片/切块:实现局部数据的显示,帮助用户从众多混杂的数据中进行选择。
- 旋转:改变维的方向。
算法 | 工具 |
---|---|
聚类算法 | 聚类工具 |
分类算法 | 分类器 |
关联规则算法 | 规则集 |
多维分析算法 | OLAP工具 |
-
关联规则挖掘:强度可用支持度(s)和置信度(c)度量。
关联规则是形如X->Y的蕴涵表达式。
保证用户定义的完整性
1 . CHECK短语指定列值应满足的条件;
2 . 触发器约束:通过服务器自动激活相应的触发器。访问机制
用户若想在SQL Server中访问数据库的表,应为建表用户或其授权用户;同时,必须同该表建立一个连接表示通信渠道,当连接中断时,无法对其进行访问。当用户被赋予的两种角色的权限出现冲突时,为了安全起见,都是DENY优先。
二层的C/S(Client/Server,客户端/服务器)结构
在适用Internet、维护工作等等方面,B/S比C/S强;
在运行速度、数据安全、人机交互等方面,B/S不如C/S。
- 三层的B/S(Browser浏览器,Server)结构
浏览器(表示层):系统向用户提供的访问系统客户端(标准的浏览器形式)。
应用服务器(逻辑层):实现业务逻辑与数据操作。
任务:接受用户的请求,首先执行扩展的应用程序并与数据库进行链接,通过SQL方式向数据库服务器提出数据处理申请,数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器将结果传回给客户端。
数据库服务器(数据层):在数据层中包含系统的数据处理逻辑。
任务:接受Web服务器向数据库操作的请求,实现对数据库查询、修改、更新功能,把运行结果提交给Web服务器。
B/S结构的数据库应用系统的特点是用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,主要的事务逻辑在服务器实现,所以其对客户机配置要求不高,即使对服务器要求较高,也不需要安装客户端软件。
三层架构将更多的任务传给服务器端计算,所以增加了网络的通信量,其运行速度受制于网络。
- SQL Server 数据库P159
1 . 4个系统数据库
- master:记录 SQL Server 系统的所有系统级别信息,包括所有的登录帐户、系统配置设置及所有其它的数据库;
- model:在系统上创建的所有数据库的模板;
- msdb:供 SQL Server 代理程序调度警报和作业以及记录操作员时使用;(主存数据库)
- tempdb:保存所有的临时表和临时存储过程。
系统中创建一个新的用户数据库,则用户数据库中主要数据文件的大小不能小于model数据库的大小。model数据库为新创建的数据库提供模版。
master 数据库只能进行完全数据库备份操作。
仅具有登录权限的用户对SQL Server只能进行系统数据库中有关SQL Server的一些系统信息的查询,即只能对master、msdb数据库部分数据进行查询。
系统数据库 master、model、msdb 因为被修改地较少,且对数据库系统影响较大,每次修改后应及时备份;
tempdb 是系统临时文件的数据库,每次启动后都会清空,没必要备份。
2 . 用户数据库
用户自定义的数据库(如学生成绩管理系统中的数据库)在使用过程中会经常不定期的修改,采用定期备份。
- 并行数据库常用的划分技术
- 轮转划分:对关系顺序扫描,将第i个元组存储到标号为Dimod的磁盘上;该方式保证了元组在多个磁盘上均匀分布,最适合于扫描整个关系的应用,并在扫描时可以并行地从几个磁盘读取数据,负载平衡,充分发挥了并行性;(最适合于扫描整个关系)
- 散列划分:选定一个值域为{0, 1, …,n-1}的散列函数,对关系中的元组基于划分属性进行散列。如果散列函数返回i,则将其存储到第i个磁盘;(比旋转法更适合点查询,也适合顺序扫描关系;)
- 范围划分:该策略按照关系中某个属性的取值范围将数据文件划分为几部分,分别存放到磁盘上。(利于范围查询和点查询)
- 多维划分:维是人们观察事物的角度,同样的数据从不同的维 、 角度进行观察可能会得到不同的结果(eg:各个分店的角度、各种商品的角度)。
- 索引
聚簇及非聚簇索引
(聚集索引键值可重复)
什么情况下不适合建立索引?
1.对于在查询过程中很少使用或参考的列,不应该创建索引;
2.对于那些只有很少数据值的列,不应该创建索引;
3.对于那些定义为image,text和bit数据类型的列,不应该创建索引;
4.当修改性能远大于检索性能,不应该建立索引。
(索引可以提高某些查询的速度,但也可能降低写入速度,同时也会增加磁盘空间使用)
建立索引的优点?
1.通过创建唯一性的索引,可以保证表中每一行数据的唯一性;
2.可以大大加快表中数据的检索速度,这也是创建索引的主要原因;
3.可以加快表与表之间的链接,特别是在实现表与表之间的参照完整性实现有特别的意义;
4.通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统性能。
视图建立索引
使用了带有索引的视图,将所关心的数据从基本表中提取出来建立视图,并对该视图建立按某属性排序的聚簇索引。这样大大减少了在搜索时调用的数据表的规模,从而提高了查询效率。
避免或简化排序的目的是实现查询优化:
应当简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时,优化器就避免了排序的步骤。
稀疏索引:如果只是一部分查找码的值有对应的索引记录,则该索引为稀疏索引;
稠密索引:如果数据文件中的每一个查找码值在索引文件中都对应一个索引记录。
- 主索引
在指定的索引字段或表达式中不允许出现重复值的索引,是根据数据对象的 主键 建立的索引。一个数据库表只能有一个主索引。- 辅助索引(非聚集索引)
可以用于任何索引目的并且可以查找多个数据文件存放的位置。- 位图索引
一般在范围查询时使用。
- 索引技术分类
根据索引的实现方式,索引技术被分成两大类:有序索引和散列索引。
- 传统的索引如有序索引、树型索引、聚集索引都是建立在"比较"的基础上,即在结构中查找记录时需要进行一系列与关键字的比较;
- 哈希/散列索引是将属性值作为参数,不采用索引键值比较,而是采用一定的计算方法定位数据。在一张表的某列上需要频繁执行精确匹配查询时,可以考虑为此列建立哈希索引。
用户可以根据应用环境的需要建立一个或多个索引,以提供多种存取路径,加快查找速度。经常出现在Where子句中的字段,特别是大表的字段,应该建立索引。同时,在SQL Server内存够用的情况下,索引会被放到内存中,在内存中查找自然又会提高效率,所以必须合理利用索引。
-
并行数据服务器分为两种结构:完全共享资源结构、完全不共享资源结构。
无共享结构被认为是支持并行数据库系统的最好并行结构。
- 完全共享资源结构:对每个数据项的存取都要经过公共通信线路,其所有的处理器共享内存、磁盘等资源;
- 完全不共享资源结构:高功能计算机系统由多个较小的系统替代,每个站点都要实现全局数据目录,每个站点有独立的内存和磁盘对应该站点的服务器。
- 数据库管理系统的三个主要成分是查询处理器、存储管理器、事务管理器。
查询处理器
为编译好的查询语句生成执行计划,并根据执行计划访问相关数据。
存储管理器
负责检查用户是否具有数据访问权限;
为了提高数据访问效率,存储管理器会将部分内存用于数据缓冲,同时使用一定的算法对内存缓冲区中的数据块进行置换;
以事务方式管理用户对数据的访问,以确保数据库并发访问的正确性。
事务管理器
对于一系列数据库操作进行管理,是逻辑管理的工作单元。
- 触发器(一种特殊类型的存储过程)
需要修改NEW值的时候使用前触发器,其余场景一律使用after;
触发器会增加了磁盘空间的消耗,使CPU的消耗更高。批量操作、多次触发的情况下,触发器的效率低。
- 日志
- 日志写入顺序必须和并行事务执行的时间次序一致,因为这样才能在数据库恢复时进行redo,undo操作(事务恢复),从而保证数据的一致性而不会产生脏数据;
- 必须先写日志(我要修改)再写数据库。
日志文件的格式主要有以记录为单位的日志文件和以数据块为单位的日志文件两种。
- 数据库转储机制
- 完全(海量)转储
对整个数据库中的数据全部重新备份,效率低,时间长;- 差量转储
基于上一次完全转储基点之后变化转储,是对上次转储之后对所有文件中修改或删除的记录的转储,效率高,时间短;- 增量转储
对数据库中凡是有记录变化的文件的整个文件进行复制,效率介于前两种转储方式之间。
- 数据恢复
- 完全备份(首先databade)
- 差异/增量备份(其次)
差异备份是指备份自上一次完全备份之后有变化的数据和日志。(SQL Server 2008)- (事务)日志备份(最后log)
事务日志用于保存对数据的更新操作。
SQL Server 2008对数据库提供的备份有完全备份和差异备份。
SQL Server 2008的数据恢复模式有三种:
① 简单恢复模式
可以最大幅度减少事务日志的管理开销,因为恢复模式不备份事务日志。但是如果数据库损坏,则简单恢复模式将面临极大的数据丢失风险。在这种恢复模式下,数据只能恢复到最新备份状态。因此对于用户数据库,简单恢复模式只适用于测试和开发数据库,或用于主要包含只读数据的数据库。
② 完整恢复模式
可以完整的记录所有事务,并将事务日志记录保留到对其备份完毕为止。此方法相对简单恢复模式来说,更占用时间。
③ 大容量日志恢复模式
只对大容量操作进行最小记录,使事务日志不会被大容量加载操作所填充。
在SQL Server 2008中,事务日志备份仅可用在完整恢复模式和大容量日志恢复模式中。
数据库的恢复顺序:
①恢复最近的完全数据库备份;
②恢复完全备份之后的(离现在)最近的差异数据库备份;
③按日志备份的先后顺序恢复自(离现在)最近的完全数据库备份之后的所有日志备份。
首先执行结尾日志备份,然后根据上次的完整性备份和新备份的结尾日志文件,找到上次备份的时间点,而后重新执行时间点之后的事务操作。
备份日志时使用 Norecovery 用来备份尾日志,这样备份日志的时候数据库处于恢复状态,别的进程就不能再访问数据库,日志就不会再增加,因此在还原的时候就可以正常恢复。还原备份的时候如果想同时还原之后的日志,必须加上 Norecovery 才可以还原;如果有多个日志备份,除了最后一个日志备份外,还原其他日志也必须加上 Norecovery 。
- 故障管理
- 事务日志能够实现数据恢复;
- 硬件容错最完全的方法是设计两套相同的数据库系统同时工作,数据的变化也同步,空间有一定的距离,因此同时破坏两套的概率几乎为零,这样能达到数据库的完全安全。