数据仓库与数据挖掘

联机事务处理(OLTP)环境:用于支持企业基本业务应用的环境。

数据仓库:面向主题的、集成的、非易失的、随时间变化的数据集合,用来支持管理人员的决策。

数据仓库特性:面向主题、集成、不可更新、时间特性。

典型数据仓库的数据体系结构:操作型数据、操作型数据存储、数据仓库、数据集市、个体层数据。

数据仓库的数据体系中的功能可分为数据处理、数据管理、数据应用三层。

系统中存在不同综合级别的数据,一般将综合级别称为粒度。粒度越大,综合程度越高;粒度越小,综合程度越低。

数据分区:系统层分区和应用层分区。

元数据一般分为技术性元数据和业务型元数据。

操作型数据存储层(ODS):即时OLAP和全局型OLTP应用。

根据数据更新的速度来划分的三类ODS:

①ODS 1:数据更新频率秒级

②ODS 2:数据更新频率小时级

③ODS 3:数据更新频率天级

数据仓库的逻辑模型既可以采用关系型模型,也可以采用多维数据模型。

数据仓库中数据的维护策略分为三种:实施维护、延时维护、快照维护。

多维分析的基本操作:钻取与卷起。钻取与卷起是OLAP(联机分析处理)分析的两个最基本操作。

OLAP的实现方式有三种:基于多维数据库的OLAP、基于关系数据库的OLAP和混合型的OLAP。

数据挖掘一般由三个主要阶段组成:数据准备、数据挖掘、结果的解释评估。

数据仓库环境,粒度影响数据仓库的数据量和系统能回答的查询的类型。

大规模数据库架构

分布式数据库最基本的特征:本地自治、非集中式管理、高可用性。

分布式数据库分布透明性:位置独立性、数据分片独立性、数据复制独立性。

数据分布策略:

①数据分片:水平分片、垂直分片、导出分片

②数据分配:

*集中式:所有的数据片断安排在一个场地上。

*分割式:所有全局数据有且只有一份,被分割为若干片断,每个片断被分配在一个特定场地上。

*全复制式:全局数据有多个副本,每个场地上都有一个完整的数据副本。

*混合式:全局数据被分为若干个数据子集,每个子集被安排在一个或多个不同的场地上,但每个场地未必保留所有数据。

分布透明性:

①分片透明性:最高级别的透明性。

②位置透明性

③局部数据模型透明性

分布式数据库的查询中导致数据传输量大的主要原因是数据间的连接操作和并操作。

分布式事务管理主要包括恢复控制和并发控制。

分布式数据库系统的恢复控制采用的最典型策略是基于两阶段的提交协议,缺点是在协调者发生故障时可能导致阻塞,针对这个问题,提出三阶段提交协议。

并行数据库的四种体系结构:共享内存结构、共享磁盘结构、无共享结构、层次结构。

一维数据划分:

①轮转法:扫描整个关系,将元组依次划分到n个磁盘上,对于点查询和范围查询必须对所有磁盘进行查找,降低了查询效率。

②散列划分:使用散列函数,比轮转法更适合于点查询。

③范围划分:按照关系中某个属性的取值范围将数据文件划分,有利于范围查询及点查询。

其中,轮转法和范围划分适合于扫描整个关系的应用、散列划分适合于点查询的应用。

在分布式数据库中,查询代价由通信代价来衡量。

在云计算中,当云以即用即付的方式提供给公众的时候,我们称其为公共云。

备份与恢复数据库

SQL Server三种恢复模式:简单恢复模式(不进行日志备份)、完整恢复模式、大容量日志恢复模式。

造成数据丢失的原因:①存储介质故障 ②用户的操作错误 ③服务器故障 ④由于病毒的侵害而造成的数据丢失或损坏 ⑤由于自然灾害而造成的数据丢失或损坏

故障管理

数据库四类故障:事务内部故障、系统故障、介质故障、计算机病毒。

数据库恢复机制涉及的两个关键问题:

①如何建立冗余数据;②如何用这些冗余数据实施数据库恢复;

数据转储:DBA或数据库管理系统定期复制数据库,并将复制得到的数据存放在其他介质中的过程,数据转储也称为数据备份。

数据转储按操作可分为静态转储和动态转储。

数据转储机制:

①完全转储;

②增量转储:只复制上次转储后发生变化的文件或数据块

③差量转储:对最近一次数据库完全转储以来发生的数据变化进行转储。

日志文件的格式:①以记录为单位的日志文件 ②以数据块为单位的日志文件

以记录为单位的日志文件包括每个事务的开始标记、每个事务的结束标记、每个事务的所有修改操作。

RAID的冗余技术主要有镜像冗余和校验冗余。

登记日志文件两条原则:①登记的次序严格按并行事务执行的时间次序;②必须先写日志文件后写数据库。

数据库镜像的基本架构分为双机互备援模式和双机热备份模式。

数据库运行维护与优化

维护工作主要包括:

①数据库的转储与恢复

②数据库的安全性、完整性控制

③检测并改善数据库的性能

④数据库的重组和重构

监控分析机制分为两种:①数据库系统建立的自动监控机制 ②管理员手动实施的监控机制

监控分析可分为:①对数据库构架体系的监控 ②对数据库性能的监控

数据库的实施包括:

①用DDL定义数据库结构

②数据装载

③编写和调试应用程序

④数据库性能

安全管理

DBMS用一个加密表来保存用户账户和密码信息。

DBMS通常采用自主存取控制和强制存取控制来解决数据库安全系统的访问控制问题。

自主存取控制两类权限:①对数据库管理系统进行维护的权限 ②对数据库中的对象和数据进行操作的权限

用户分类:①系统管理员 ②数据库对象拥有者 ③普通用户

角色分类:①固定角色 ②用户自定义角色

权限分类:①对象权限 ②语句权限 ③隐含权限

在强制存取控制中,DBMS将全部实体划分为主体和客体两大类。

安全级别:D类:最小保护 C类:自主保护 B类:强制保护 A类:验证保护

身份验证模式:①Windows身份验证模式 ②混合身份验证模式

创建SQL Server身份验证的登录账户

CREATE LOGIN 登录名 WITH PASSWORD=‘密码’

创建Windows身份验证的登录账户

CREATE LOGIN 登录名 FROM WINDOWS

建立数据库用户

CREATE USER 用户名

启用guest用户

GRANT CONNECT TO guest

禁用guest用户

REVOKE CONNECT TO guest

删除数据库用户

DROP USER 用户名

角色:组织在一起的一组具有相同权限的用户。

固定服务器角色

bulkadmin     具有执行BULK INSERT语句的权限

dbcreator      创建、修改、删除和还原数据库的权限

Diskadmin     管理磁盘权限

Processadmin  管理SQL Server进程的权限

Securityadmin 处理大多数日常事务,但没有系统管理员的超级权限

Serveradmin 设置服务器级别和关闭服务器

Setupadmin 添加和删除链接服务器

Sysadmin     系统管理员角色

固定数据库角色

Db_accessadmin 添加或删除数据库用户

Db_backupoperator 备份数据库、备份日志

Db_datareader 查询数据库中所有用户数据

Db_datawriter 插入、删除、更改数据库中所有用户数据

Db_ddladmin 执行数据定义语言

Db_denydatareader 不允许具有查询数据库中所有用户数据

Db_denydatawriter 不允许有insert、delete和update

Db_owner 进行全部操作

Db_securityadmin 管理数据库角色、角色成员及数据库中语句和对象

如果未向某个用户授予或拒绝绝对安全对象的特定权限,则该用户具有public角色的权限

数据库及数据对象

SQL Server将数据库分为系统数据库和用户数据库。

五个系统数据库:master、msdb、model、tempdb、rescourse

SQL Server将数据库映射为一组操作系统文件,分为数据文件和日志文件。

数据文件分为主要数据文件(.mdf)[>=3MB](每个数据库有且仅有一个)、次要数据文件(.ndf)

让一个数据库包含多个数据文件,并且让这些数据文件分别建立在不同的磁盘上,不仅有利于充分利用多个磁盘上的存储空间,而且可以提高数据的存取效率。

事务日志文件(.ldf),用于存放恢复数据库的所有日志信息。

每个数据库至少有一个日志文件,也可以有多个日志文件。

页是存储数据的最小单位,页的大小决定了数据表中一行数据的最大大小。

两种类型的文件组:主文件组和用户定义的文件组。

主文件组包含主要数据文件和任何没有明确分配给其他文件组的其他数据文件。

用户定义文件组:

①日志文件不包括在文件组内,日志空间与数据空间分开管理。

②一个文件不可以是多个文件组的成员。

③如果文件组有多个文件,则他们在所有文件被填满之前不会自动增长,而填满后这些文件会循环增长。

④每个数据库只能指定一个文件组为默认文件组。

定义数据文件和日志文件需要指定:

①文件名及其位置 ②初始大小 ③增长方式 ④最大大小

分离和附加数据库实际就是让数据库的文件不受数据库管理系统的管理,使用户可以讲数据库的数据文件和日志文件复制到另一台计算机上或是同一台计算机的其他地方。

架构(模式)是数据库下的一个逻辑命名空间,可以存放表、视图等数据库对象,他是一个数据库对象的容器。

一个架构可以由零个或多个架构对象组成。架构名是显示的,也可以是由DBMS提供的默认名。

分区表是将表中的数据按水平方式划分成不同的子集,这些数据子集存储在数据库的一个或多个文件组中。

创建分区表步骤:

①创建分区函数

②创建分区方案

③使用分区方案创建表

在数据库中建立索引是为了加快数据的查询速度

unique:为表或视图创建唯一索引,不允许两行具有相同的索引键值。

clustered:创建聚集索引,键值的逻辑顺序决定表中对应行的物理顺序。

nonclustered:默认选项,创建一个非聚集索引

不能在大型对象数据类型:ntext、text、varchar(max)、nvarchar(max)、varbinary(max)和image

Asc |desc :指定索引列的排序方式。索引列排序方式默认为ASC(升序)

where:指定索引中要包含的数据行。筛选索引必须是对表的非聚集索引

On partition_scheme_name :指定分区方案,该方案定义要将分区索引的分区映射到的文件组。

索引视图通常不会提高下列查询类型的性能:

*具有大量写操作的OLTP系统

*具有大量更新操作的数据库

*不涉及聚合或连接的查询

*group by列具有高基数度的数据聚合。高基数度表示列包含许多不同的值。

在对视图创建聚集索引之前,该视图必须符合以下要求:

*定义索引视图时,视图不能引用任何其他视图,只能引用基本表

*视图引用的所有基本表必须与视图位于同一个数据库中,并且所有者也与视图相同。

*必须使用schemabinding选项创建视图

*视图中的表达式引用的所有函数必须是确定的

*对视图创建的第一个索引必须是唯一聚集索引,之后再创建其他的非聚集索引。

一个数据文件不可以是多个文件组的成员,日志文件不包括在文件组内。

一个数据库有且只能有一个主要数据文件。

创建分区表步骤:

创建分区函数、创建分区方案、使用分区方案创建表

数据库用户:系统管理员 对象拥有者 普通用户

数据库重组进行碎片整理和回收。