第一次用xmind做思维导图,然后做出来的图太大了转成了大纲模式,将就看吧
第 1 章 数据库应用系统开发方法
1.1 数据库应用系统生命周期
1.1.1 软件工程与软件开发方法
瀑布模型(软件生命周期模型)
快速原型模型
螺旋模型(引入了风险评估活动
1.1.2 DBAS生命周期模型
DBAS——数据库应用系统
参照瀑布模型可分为项目规划、需求分析、系统设计、实现与部署、运行与维护
1.2 规划与分析
1.2.1 系统规划与定义
任务陈述、确认任务目标、确定范围和边界、确定用户视图
1.2.2 可行性分析
经济可行性、技术可行性、操作可行性、开发方案选择
1.2.3 项目规划
项目团队、项目环境、项目活动、成本预算、进度计划
1.3 需求分析
1.3.1 数据需求分析(从用户视图出发)
数据字典:数据项、数据结构、数据流、数据存储、处理过程
1.3.2 功能需求分析
数据处理需求分析
数据流图:数据项、数据存储、数据加工、数据流
业务规则需求分析
1.3.3 功能需求分析
DBAS性能指标:数据操作响应时间、系统吞吐量、允许并发访问的最大用户数、每TPS代价值(用于衡量系统性价比的指标)
影响DBAS性能的主要因素有:系统硬件资源、网络通信设备性能、操作系统环境、数据库的逻辑设计和物理设计质量、DBMS的配置和性能、数据库应用程序自身
1.3.4 其他需求分析
存储需求分析
安全性需求分析
数据安全要求不高可定位在C级
用于政府或军事等高保密场合定位在B级
备份和恢复需求分析
1.4 系统设计
1.4.1 概念设计
数据库概念模型设计、系统总体设计
1.4.2 逻辑设计
数据库逻辑结构设计、应用程序概要设计、数据库事务概要设计
1.4.3 物理设计
数据库物理结构设计、数据库事务详细设计、应用程序详细设计
1.5 实现与部署
1.6 运行管理与维护
第 2 章 需求分析
2.1 需求分析
2.1.1 需求分析的概念与意义
需求分析:系统功能的全面描述
软件产品的特性:功能复杂、需求的可变性、软件产品的不可见性
2.1.2 需求获取的方法
面谈、实地观察、问卷调查、查阅资料
2.1.3 需求分析过程
标识问题、建立需求模型、描述需求、确认需求、
2.2 需求分析方法
2.2.1 需求分析方法概述
结构化分析方法
抽象
分解:自顶向下逐步求精
2.2.2 DFD需求建模方法(核心:数据流)
DFD方法基本元素
数据流(箭头表示流向)
处理(矩形框)
数据存储
外部项(数据源/数据终点/用圆角框或平行四边形框表示)
DFD图
自顶向下逐步细化
DFD建模过程
明确目标,确定系统范围—>建立顶层DFD图—>构建第一层DFD分解图—>开发DFD层次结构图
2.2.3 其他需求建模方法
IDEF0方法简介
功能活动(矩形框)
左输入右输出,上控制下机制(箭头)
UML用例模型
面向对象
用例图由系统、角色、用例组成
2.2.4 DFD与IDEF0比较
箭头:数据流;DFD用来描述方向,IDEF0强调数据约束
组成元素:DFD4种,IDEF02种
第 3 章 数据结构设计
3.1 数据库概念设计
3.1.1 概念设计任务
面向现实世界,理解和获取应用领域中的数据需求,数据之间的依赖关系
3.1.2 概念设计的依据及过程
概念设计依据:需求分析阶段的文档
逻辑设计依据:信息模型、数据库概念设计说明书
概念设计过程:明确建模目标—>定义实体集—>定义联系—>建立信息模型—>确定实体集属性—>对信息模型进行集成与优化
3.1.3 数据建模方法
ER建模方法(Entity Relationship—实体联系)
元素:实体(实例)、实体集(矩形框)、属性(椭圆或圆角矩形)、码、联系(菱形)
联系:一对一、一对多、多对多
IDEF1X建模方法
IDEF0侧重系统功能需求、IDEF1X侧重数据需求
建模元素
实体集
独立实体集(矩形框)
从属实体集(圆角矩形框)
联系:标定型联系、非标定型联系、分类联系、非确定联系
3.2 数据库逻辑设计
把概念设计的结果(ER模型)转换为数据库管理系统支持的数据模型(转换为关系模式兵满足3NF)
3.3 数据库物理设计
3.3.1 物理设计概述
应用数据在实际数据库管理系统和操作系统平台下的具体存储结构和数据存取方式
3.3.2 数据库的物理结构
文件的组织、结构、存取及索引技术
3.3.3 索引
索引技术:一种快速数据访问技术,根据记录域的取值快速访问文件记录的机制;技术关键是建立记录域取值到记录的物理地址间的映射关系
索引技术分类
有序索引:利用索引文件实现映射,记录域即查找码
散列索引(哈希索引):利用散列函数实现映射,记录域即查找码
有序索引
采用顺序文件结构
聚集索引与非聚集索引
聚集索引:数据文件中的数据记录的排列顺序与索引文件中的索引项的排列顺序一致
非聚集索引反之,一个数据文件上可建立一个聚集索引多个非聚集索引
稠密索引与稀疏索引
稠密索引:数据文件中的每个查找码值在索引文件中都对应一个索引记录,查找速度快
稀疏索引:索引文件中只包含了数据文件中的部分查找码
主索引和辅索引
在数据文件的主码属性集上建立的索引为主索引,辅索引反之
唯一索引
确保索引列不包含重复的值
单层索引与多层索引
单层索引(线性索引):索引项根据键值在索引文件中顺序排列,组织成一维线性结构,每个索引项直接指向数据文件中的数据记录
多层树形索引结构用来快速定位大数据量文件中的数据记录,如B树和B+树索引
3.3.4 数据库物理设计
物理设计内容
数据库逻辑模式描述、文件组织与存取设计、数据分布设计、确定系统配置、物理模式评估
数据库逻辑模式描述
面向目标数据库描述基本表和视图、设计基本表业务规则
DB文件组织与存取设计
基本表选择合适文件结构原则
基本表数据量很少,且增删改操作频繁采用堆文件组织方式,堆文件无需建立索引维护代价低
顺序文件支持基于查找码的顺序访问也支持快速的二分查找
如果用户查询基于散列域值的等值匹配,特别是访问顺序随机用散列文件比较合适
B-和B+树属于动态索引,运用广泛
频繁执行且需要进行多表连接操作的查询可将基本表组织为聚集文件以改善查询效率
散列组织文件不适合情况
基于散列域值的非精确查询(如模糊查询、范围查询)
基于非散列域进行的查询
建立索引原则
对于经常需要进行查询、连接操作且数据量大可考虑建立索引
一个基本表可建立一个聚集索引多个非聚集索引,一个频繁更新的表应少建或不建索引
索引可由用户根据需要随时创建或删除,以提高数据查询性能
在某些属性上建立索引
表的主码、在WHERE查询子句中引用率较高的属性(多个属性多属性索引)、参与连接操作的属性、在Order By,Group By子句中出现的属性、在某一范围频繁搜索的属性只有使用索引查询结果不超过记录总数20%时索引才有效、一个属性有较多不同值时索引在有明显作用,对包含大量空值的属于建立索引时仔细考虑
数据分布设计
不同类型数据的物理分布
使用频率低数据量大可存储在磁带中,使用频繁要求响应时间短必须放在支持直接存取的磁盘存储介质上
应用数据的划分与分布
分布式数据库系统
水平划分-元组
垂直划分-属性
派生数据数据分布
派生属性:根据表中其他属性的取值唯一确定
3.3.5 其他物理设计环节
确定系统配置
物理模式评估
第 4 章 数据库应用系统功能设计与实现
4.1 软件体系结构与设计过程
4.1.1 软件体系结构
软件体系结构={构体,连接件,约束}
4.1.2 软件设计过程
软件设计过程中应遵循的原则:设计的软件结构应支持模块化、信息隐藏、抽象和逐步求精
概要设计应提供概要设计说明书、数据库或数据结构设计说明书、组装测试计划
详细设计侧重于模块的外部功能描述和模块间接口关系
4.2 DBAS总体设计
4.2.1 DBAS体系结构设计
客户/服务器体系结构(C/S)
数据库服务器完成DBMS核心功能,客户端或者应用服务器完成用户交互功能
浏览器/服务器结构(B/S)
表示层位于客户端用Web浏览器实现;功能层位于Web应用服务器,实现应用业务规则;数据层位于数据服务器
4.2.2 DBAS软件总体设计
DBAS软件包括操作系统、数据库管理系统、开发环境、中间件和应用软件(数据库事务和应用程序)
4.2.3 软硬件选型与配置设计
合理的软硬件选型和配置设计是保证DBAS功能和性能顺利实现的重要因素
4.2.4 业务规则初步设计
4.3 DBAS功能概要设计
原则:逐步求精、模块化、信息隐藏、功能细化原则
DBAS软件四层架构:表示层(人机界面设计)、业务逻辑层(高内聚低耦合)、数据访问层、数据持久层
4.4 DBAS功能详细设计
4.4.1 表示层详细设计(最好使用原型迭代法)
4.4.2 业务逻辑层详细设计
4.5 应用系统安全架构设计
4.5.1 数据安全设计
数据库的安全性保护
用户身份鉴别、权限控制、试图机制
数据库的完整性保护
完整性约束条件作用对象:列、元组、关系
数据库的并发控制
实现数据库并发控制常用封锁技术(排他/X锁、共享/S锁)
避免死锁原则:按同一顺序访问资源、避免事务中的用户交互、采用小事务模式缩短事务长度减少占有锁时间、尽量使用记录级别的锁(行锁)少用表级别的锁、使用绑定连接同一应用程序打开的两个或多个连接可以相互合作
数据库的备份与恢复
双机热备、数据转储、数据加密存储
数据加密传输
常用加密手段:数字安全证书、对称密钥加密、数字签名、数字信封
4.5.2 环境安全设计
漏洞与补丁、计算机病毒防护、网络环境安全(防火墙、入侵检测系统、网络隔离)、物理环境安全
4.5.3 制度安全设计
4.6 DBAS实施
4.6.1 创建数据库
4.6.2 装载数据
4.6.3 编写与调试应用程序
4.6.4 数据库试运行
第 5 章 UML与数据库应用系统
5.1 DBAS 建模
UML的定义由语义和表示法组成
语义的四层建模概念:元元模型层(最基本事物)、元模型层(基本元素,包括面向对象和面向组件概念)、模型层、用户模型层(UML实例)
5.2 DBAS业务流程与需求表达
5.2.1 业务流程与活动图
活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序,并行次序
5.2.2 系统需求与用例图
用例模型:表示表示用户需求,由用例(椭圆形)、角色(类)、系统(长方框)三部分组成
5.3 DBAS系统内部结构的表达
5.3.1 系统结构与类图
类图展现了一组类、接口和协作以及它们间的关系,是面向对象方法的核心技术
5.3.2 系统结构与顺序图
顺序图主要用于描述系统内对象之间的消息发送和接受序列
类与类之间通常有关联、通用化(继承)、依赖、精华四种关系
5.3.3 系统结构与通信图
通信图也称协作图,通信图中包含一组对象,并在图中展示这些对象之间的联系以及对象间发生和接收的消息
顺序图和通信图都描述交互,但是顺序图强调的是时间,通信图强调的是空间
5.4 DBAS系统微观设计的表达
5.4.1 微观设计与对象图
对象图是类图的一个实例,对象之间的关系是类之间的关系的实例,它是某一个时间点上,系统所存在的所有对象的一个快照
5.4.2 微观设计与状态机图
状态图的主要目的在于陈述系统中有关事件或对象的状态转移
5.4.3 微观设计与时间图
时间图主要利用时间轴的推移让时间因子(强调元素)呈现一个可视化的效果,一张时间图通常会对应至少一张状态图
5.5 DBAS系统宏观设计的表达
5.5.1 宏观设计与包图
包图表达系统中不同的包、命名空间或不同项目间彼此的关系
5.5.2 宏观设计与交互概述图
交互概述图主要利用活动图作为基础,只是在控制流向连接的UML元素并非活动而是交互图
5.5.3 宏观设计与复合结构图
复合结构图适用于需要进行系统整合的情况
5.6 DBAS系统实现与部署的表达
5.6.1 系统实现与组件图
组件图展示一组组件之间的组织和依赖,用于对源代码、可执行发布、物理数据库等的系统建模
5.6.2 系统实现与部署图
部署图又叫配置图,描述系统中硬件和软件的物理配置情况和系统体系结构
第 6 章 高级数据查询
6.1 一般数据查询功能扩展
6.1.1 使用TOP限制结果集
语法格式:TOP n[percent][WITH TIES],TOP n 取查询结果的前n行数据,加percent前为n%,WITH TIES表取值并列
使用TOP谓语时,应与ORDER BY子句一起使用,当使用WITH TIES时。则必须使用ORDER BY子句
6.1.2 使用CASE函数
CASE函数是一种多分支表达式,使用它可以达到分情况显示不同类型的数据
语法格式:CASE 测试表达式 WHEN简单表达式1 THEN结果表达式 ......WHEN简单表达式n THEN结果表达式n [ELSE 结果表达式n+1] END(若没有ELSE子句则返回NULL值)
6.1.3 将查询结果保存到新表中
使用SELECT语句查询结果保存在内存中,如果要长久保存下来如一个新表就使用SELECT... INTO语句,INTO子句创建的新表可以是永久表也可以是临时表(局部临时表#,全局临时表##)
语法格式:SELECT查询列表序列INTO<新表名> FROM数据源
6.2 查询结果的并、交、查运算
6.2.1 并运算
JOIN操作是水平地合并数据而UNION是垂直的合并数据
语法格式:SELECT 语句1 UNION[ALL] SELECT 语句2 UNION[ALL]...(ALL表示结果集中包含所有查询语句产生地全部记录包括重复地记录,如果没有ALL则系统删除默认删除重复记录)
6.2.2 交运算
语法格式:SELECT语句1 INTERSECT SELECT语句2 INTERSECT...
6.2.3 差运算
差运算返回第一个集合中有但第二个集合中没有地数据
语法格式:SELECT 语句1 EXCEPT SELECT 语句2...
6.3 相关子查询
使用子查询基于集合的测试:WHERE 表达式[not] IN(子查询);先执行子查询再外层查询
使用子查询进行比较测试:WHERE 表达式 比较运算符
使用子查询进行存在性测试:WHERE [NOT] EXISTS(子查询);先执行外层查询再内层查询
6.4 其他形式的子查询
替代表达式的子查询:在SELECT语句的选择列表中嵌入一个只返回一个标量值的SELECT语句
派生表(内联视图)将子查询作为一个表来处理,由子查询产生的新表
6.5 其他一些查询功能
6.5.1 开窗函数
在SQL Server中,开窗函数是指可以用于”分组“或“分区”计算的函数,SQL Server提供了两种开窗函数:排名开窗函数和聚合开窗函数,开窗函数必须放在OVER子句前
将OVER子句与聚合函数结合使用
语法格式
将OVER子句与排名函数一起使用
SQL Server提供了四个排名函数:RANK()(函数返回结果集中每行数据在每个分区内的排名)、DENSE_RANK()(该函数的排名中间没有任何间断返回的是一个连续的整数值)、NTILE()(将有序分区中的行划分到指定数目的组中,每个组都有一个编号,编号从1开始)、ROW_NUMBER()(返回结果集中每个分区内行的序列号,每个分区的第一行从1开始)
6.5.2 公用表表达式
语法格式:WITH....AS....
第 7 章 数据库及数据库对象
7.1 创建及维护数据库
7.1.1 SQL Server数据库概述
系统数据库
master(最重要)、msdb、model、tempdb(临时数据库)、Resource(只读数据库)
用户数据库
7.1.2 SQL Server数据库的组成
数据文件
主要数据文件。扩展名.mdf,每个数据库有且只有一个主要数据文件,SQL Server 2008要求主要数据文件的大小不能小于3MB
次要数据文件,扩展名.ndf,一个数据库可以不包含次要数据文件也可以包含多个,把数据文件建立在不同的磁盘上有利于利用磁盘空间,提高数据存取效率
事务日志文件
扩展名.ldf,用于存放恢复数据库的所有日志信息,每个数据库必须至少有一个日志文件也可以有多个
数据库存储空间的分配原则
在创建用户数据库时,model数据库自动被复制到新建用户数据库中,而且是复制到主要数据文件中
在SQL Server 2008 中数据的存储分配单位是数据页,一页8kb(8*1024B,其中8060B存放数据,另外132B存放系统信息),页是最小存储数据的单位
SQL Server不允许行跨页存储。即一行的数据大小不能超过8060B.在设计关系表时要考虑每行数据大小,提高空间利用率
7.1.3 数据库文件组
主文件组
包含主要数据文件和任何没有明确分配给其他文件组的其他数据文件
用户定义文件组
使用关键字指定的任何文件组
日志文件不在文件组内,日志空间和数据空间是分开管理的,一个文件可以是不同文件组的成员
7.1.4 数据库文件的属性
文件名及其位置(物理文件名和逻辑文件名,逻辑文件名是唯一的)、初始大小(主要数据文件初始大小不能小于model数据库主要数据文件的大小)、增长方式(默认配置为自动增长)、最大大小
7.1.5 用T-SQL语句创建数据库
CREATE DATABASE database_name
7.1.6 修改数据库
扩大数据库空间
ALTER DATABASE database_name
收缩数据库空间(释放数据库中未使用的空间)
收缩整个数据库,语法格式: DBCC SHRINKDATABASE
收缩指定文件大小,语法格式: DBCC SHRINKFILE
添加和删除数据库文
添加文件扩大数据空间删除文件减小数据库空间
7.1.7 分离和附加数据库
分离数据库使用的是sp_detach_db系统存储过程,它能将数据库从SQL Server实例中删除,但不删除数据库的数据文件和日志文件
附加数据库
将分离的数据库重新附加到数据库系统中
CREATE DATABASE database_name ON
7.2 架构
架构(Schema,也称模式)是数据库下的逻辑命名空间,可以存放表、视图等数据库对象,它是一个数据库对象的容器
定义架构语法格式:CREATE SCHEMA[<架构名>]AUTHORIZATION<用户名>
删除架构语法格式:DROP SCHEMA<架构名>{
7.3 分区表
7.3.1 基本概念
分区表是将表中的数据按水平方式划分成不同的子集
7.3.2 创建分区表
创建分区函数CREATE PARTITION FUNCTION
创建分区方案CREATE PARTITION SCHEMA
7.4 索引
创建索引CREATE [UNIQUE] [CLUSTERED][NONCLUSTERED] INDEX...;UNIQUE唯一索引,CLUSTERED聚集索引,NONCLUSTERED默认选项,非聚集索引
删除索引 DROP INDEX
7.5 索引视图
建有唯一聚集索引的视图称为索引视图,也称为物化视图
索引视图可以提高下列查询类型的性能:处理大量行的连接和聚合,许多查询经常执行的连接和聚合操作
索引视图不会提高下列查询类型的性能:具有大量写操作的OLTP系统,具有大量更新操作的数据库,不涉及聚合或连接的查询,GROUP BY列具有高度技术的数据聚合
第 8 章 数据库后台编程技术
8.1 存储过程
8.1.1 基本概念
存储在数据库中供所有用户程序调用的子程序
使用存储过程的好处:允许模块化程序设计、改善性能、减少网络流量、增强应用程序的安全性
8.1.2 创建、执行和删除存储过程
创建存储过程CREATE PROCEDURE/PROC
执行存储过程EXEC/EXECUTE
删除存储过程DROP PROCEDURE/PROC
8.2 用户定义函数
8.2.1 创建和调用标量函数
定义标量函数CREATE FUNCTION...,返回单个数据值
调用标量函数,必须提供至少由两部分组成的名称:函数拥有者和函数名
8.2.2 创建和调用内联表值函数
创建内联表值函数CREATE FUNCTION...,返回值是一个表,表内容为查询语句结果
调用内联表值函数与视图类似,SELECT...FROM...
8.2.3 创建和调用多语句表值函数
创建CREATE FUNCTION......,功能是视图和存储过程的组合
调用返回值是一个表,也是SELECT...FROM...
8.2.4 删除用户自定义函数
DROP FUNCTION
8.3 触发器
8.3.1 基本概念
一种特殊的存储过程,不需要用户调用,而是在对表中数据进行UPDATE,INSERT或DELETED操作时自动触发执行的
8.3.2 创建触发器
CREATE TRIGGER...;在视图上只能定义INSTEAD OF触发器,不能定义AFTER触发器
在触发器语句中可以使用两个特殊的临时工作表:INSERTED表DELETED表
INSRTED表存储DELETED和UPDATE语句影响的行的复本
DELETED存储INSERTED和UPDATE语句所影响的复本
使用FOR或AFTER选项定义的触发器为后触发型触发器
使用INSTEAD OF选项定义的触发器为前触发型触发器
8.3.3 删除触发器
DROP TRIGGER...
8.4 游标
8.4.1 游标的组成
游标结果集和游标当前行指针
8.4.2 使用游标
声明游标DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSOR......
打开游标OPEN cursor_name
提取数据FETCH....;NEXT返回紧跟在当前行之后的数据行,并且当前行递增为结果行,为默认选项;PRIOR返回当前行前面...递减...;FIRST返回游标中的第一行并将其作为当前行;LAST返回游标中的最后一行...;ABSOLUTE n:如果n为正数,返回从游标第一行开始的第n行,负数则从最后一行...,如果n为0则不返回任何结果;RELATIVE n如果n为正数,则返回当前行之后的第n行,负数返回当前行之前的...
关闭游标CLOSE cursor_name
8.4.3 游标示例
第 9 章 安全管理
9.1 安全控制概述
数据库安全控制的目标是保护数据免受意外或故意的丢失、破坏或滥用
数据库安全计划需考虑的情况可用性损失、机密性数据的损失、私密性数据的损失、偷窃和欺诈、以外的损害
认证和授权,授权是将合法访问数据库或数据库对象的权限授予用户的过程,认证是一种鉴定用户身份的机制。
DBMS通常采取自主存取控制和强制存取控制两种方法
9.2 存取控制
9.2.1 自主存取控制
权限种类
对数据库管理系统进行维护的权限
对数据库中的对象和数据进行操作的权限
对数据库对象的操作权限,包括创建、删除和修改数据库对象,称为语句权限
对数据库数据的操作权限,包括对表、视图数据的增删改查权限,存储过程的执行权,称为对象权限
按用户操作权限划分三类:系统管理员、数据库对象拥有者、普通用户
9.2.2 强制存取控制
DBMS将全部实体划分为主体和客体两大类
主体是系统中的活动实体,主体的敏感度标记被称为许可证级别
客体是系统中的被动实体,客体的敏感度标记被称为密级
通用安全性分级模式
D类提供最小保护,C类提供自主保护,B类提供强制保护,A类提供验证保护
9.3 审计跟踪
审计跟踪实质上是一种特殊的文件或数据库,系统在上面自动记录用户对常规数据的所有操作
审计跟踪对数据库安全有辅助作用
9.4 统计数据库的安全性
9.5 SQL Server的安全机制
9.5.1 身份验证模式
Windows身份验证模式,Windows操作系统用户身份登录到SQL Server的方式,也就是SQL Server将用户的身份验证交给了Windows操作系统来完成,这种方式能提供更多的安全功能,推荐使用
混合身份验证模式,SQL Server允许windows授权用户和sql授权用户登录到SQL Server数据库服务器,如果希望允许非Windows操作系统的用户也能登录到SQL Server数据库服务器上,则应该选择这个
9.5 2 登录账户
建立登录账户CREATE LOGIN
修改登录账户属性 ALTER LOGIN
删除登陆账户DROP LOGIN
9.5.3 数据库用户
建立数据库用户CREATE USER
Guest用户是SQL Server中一个特殊的数据库用户,在实际应用中经常作为数据库的匿名访问者使用,dbo是创建改数据库的登录账户映射到该数据库中的用户,其所创建的对象都是dbo.对象名
删除数据库用户 DROP USER
9.5.4 权限管理
对象级别的权限
授权语句GRANT...ON...TO...[WITH GRANT OPTION]...ALL[PRIVILEGES]
WITH GRANT OPTION指示该主体还可以向其他主体授予所指定的权限
拒绝权限DENY...ON...TO[CASCADE]...
CASCADE表示要拒绝的权限也会被对此主体授予该权限的其他主体拒绝
收权语句REVOKE...ON...TO[CASCADE]...
CASCADE对应GRANT语句中的WITH GRANT OPTION,表示要撤销的权限也会从此主体授予或拒绝该权限的其他主体中撤销
语句级别的权限
BACKUP DATABASE和BACKUP LOG是备份数据库和日志的权限
授权GRANT...TO...
拒绝权限DENY...TO..
收权语句 REVOKE...FROM|TO...
9.5.5 角色
固定服务器角色
bulkadmin、dbcreator、diskadmin、processadmin、securityadmin、serveradmin、setupadmin、sysadmin
用户不能添加、删除或更改固定服务器角色
固定数据库角色
db_accessadmin、db_backupoperator、db_datareader、db_datawriter、db_ddladmin、db_denydatareader、db_denydatawriter、db_owner、db_securityadmin
用户不能添加、删除或更改固定数据库角色、但可以将数据库用户添加到固定数据库角色中,使其成为数据库角色中的成员,从而具有数据库角色的权限
用户定义的角色
创建用户定义的角色:CREATE ROLE......
删除:DROP ROLE......
9.6 Oracle的安全管理
9.6.1 用户与资源管理
Oracle数据库中的数据库按其操作权限的大小可以分为DBA用户和普通用户
QUOTA表示限制用户使用数据库空间
9.6.2 权限管理
系统权限
三种默认角色
Connect:具有这种角色的用户不能在数据库中建立任何对象,但可以查询数据字典及访问有权限的数据库对象
Resource具有这种角色的用户可以在数据库中建立关系表、视图、序列、索引、聚集存储过程、存储函数、触发器、数据库链路
DBA这种角色拥有Oracle预定义的所有系统特权
对象特权
对象特权用于维护表级、行级与列级数据的安全性
9.6.3 审计功能
第 10 章 数据库运行维护与优化
10.1 数据库运行维护基本工作
数据库的转储与恢复
数据库的安全性、完整性控制
检测并改善数据库性能
数据库的重组和重构
重组:不修改数据库原有设计的逻辑结构和物理结构
重构指部分修改数据库的模式和内模式
10.2 运行状态监控与分析
自动监控机制
手动监控机制
对数据库架构体系的监控
对数据库性能的监控
10.3 数据库存储空间管理
逻辑存储结构:数据块—>区—>段—>表空间—>数据库
物理存储结构:数据文件、OS数据块
10.4 数据库性能优化
10.4.1 数据库运行环境与参数调整
外部调整
CPU、网络
调整内存分配
调整磁盘I/O
调整竞争
10.4.2 模式调整与优化
增加派生性冗余列
增加冗余列
重新组表
分割表
水平分割——查询所有数据时需要用到Union(并)操作
垂直分割——列——使用Join(连接)操作
新增汇总表
10.4.3 存储优化
物化视图
预先计算并保存表连接或聚集等耗时较多的操作结果,在查询时大大提高读取速度
聚集
聚集是一组表,如果经常同时被访问就可以创建一个聚集
10.4.4 查询优化
合理使用索引
提高查询效率,查询的性能在很大程度上取决于存在什么样的索引来加快选择和连接的处理
避免或简化排序
消除对大型表数据的顺序存取
避免复杂的正则表达式
使用临时表加速查询
用排序来取代非顺序磁盘存取
不充分的连接条件
存储过程
不要随意使用游标
事务处理
10.4.5 SQL Server性能工具
SQL Server Profiler——多用途性能监控工具
数据库引擎优化顾问
第 11 章 故障管理
11 1 故障管理概述
11.1.1 故障类型及其解决方法
事务内部的故障
预期的
非预期的
系统故障(软故障)
撤销(UNDO)未提交的事务
重做(REDO)已提交的事务
介质故障(硬故障)
软件容错:使用数据库备份及事务日志文件,通过恢复技术到备份结束时的状态
硬件容错保证介质故障下的数据库能够完全恢复
计算机病毒故障
11.1.2 数据库恢复技术概述
恢复机制设计两个关键
如何建立冗余
如何利用这些冗余数据实施数据库恢复
11.2 数据转储
静态转储和动态转储
静态转储
静态转储过程中系统不能运行其他事务,不允许在转储期间对数据库有任何的存取、修改活动,保证有效性,但降低了可用性
动态转储
允许在转储过程中对数据库进行存取和修改操作,提高数据库的可用性,但数据有效性得不到保证
数据转储机制
完全转储
对数据库中所有数据进行转储
增量转储
只复制上次转储后发生变化的文件或数据块
差量转储(差异转储)
对最近一次数据库完全转储以来发生的数据变化进行转储。差量转储和完全转储相比速度快,占用较小的空间;差量转储和增量转储相比,速度慢、占用空间较多,但恢复速度比增量转储快
多种转储方式结合使用
仅使用完全转储
占用空间时间较多,代价大
完全转储加增量转储
恢复使用的存储文件较多,其中任何一次转储出问题都会导致恢复的失败,同时恢复时间较长
完全转储加增量转储
差量转储比增量转储移动和存储更多的数据,但恢复操作简单,恢复时间也较短
11.3 日志文件
11.3.1 日志文件的概念
记录每个事务对数据库的修改操作
日志文件的作用
事务故障恢复和系统故障恢复必须使用日志文件
在动态转储方式中必须建立日志文件
在静态转储方式中,也可以使用日志文件
11.3.2 日志文件的格式与内容
以记录为单位的日志文件
日志文件内容包括每个事务的开始标记(BEGIN TRANSACTION)、每个事物的结束标记(包括事务提交记录或事务终止记录),以及每个事务的所有修改操作(位于开始标记和结束标记之间)
以数据块为单位的日志文件
11.3.3 登记日志文件的原则
登记的次序严格按并行事务执行的时间次序
必须先写日志文件,后写数据库
11.3.4 检查点
检查点的作用
最大限度地减少了数据库完全恢复时所必须执行的日志部分
检查点的引入
检查点记录了检查点时刻所有正在执行的事务清单
这些事务最近一个日志记录的地址
基于检查点的恢复步骤
11.4 硬件容错方案
11.4.1 概述
11.4.2 硬盘保护技术
RAID廉价冗余磁盘阵列
RAID冗余技术
镜像冗余
把所有的数据复制到其他设备或其他地方
校验冗余
通过对成员磁盘上的数据执行异或(XOR)操作,得到其校验值,并存放在另外的校验磁盘上
11.4.3 服务器容错技术
引入服务器容错技术就是为了解决服务器硬件异常问题而出现的解决问题
服务器容错技术一般采用两台相同的服务器,两台服务器共享存储设备,其中一台服务器运行数据库系统,数据库数据存储在存储设备中
11.4.4 数据库镜像与数据库容灾
数据库镜像架构两种模式
双机互备援模式
双机热备份模式
第 12 章 备份与恢复数据库
12.1 备份与恢复的概念
12.1.1 备份数据库
造成数据丢失的原因:存储介质故障、用户操作错误、服务器故障、由于病毒的侵害而造成的数据丢失或损害、由于自然灾害造成的数据丢失或损坏
12.1.2 恢复数据库
介质故障恢复
还原最近的一个数据副本,并利用备份日志重做(REDO)已提交事务的操作
非介质故障恢复
一般由数据库管理系统自动完成
12.2 SQL Server的备份与恢复机制
12.2.1恢复模式
简单恢复模式
不备份事务日志
适用于测试和开发数据库或用于主要包含只读数据的数据库
完整恢复模式
完整记录所有的事务并将事务日志记录保留到对其备份完毕为止
大容量日志恢复模式
只对大容量操作进行最小记录,一般作为完整恢复模式的附加模式
查看和更改恢复模式
语法ALTER DATABASE database_name SET RECOVERY{FULL(完整恢复模式)|BULK_LOGGED(大容量恢复模式)|SIMPLE(简单恢复模式)}
12.2.2 备份内容及时间
备份内容
用户数据+系统数据
备份时间
12.2.3 SQL Server的备份机制
备份设备
永久备份设备:先建立备份设备,然后再将数据库备份到备份设备上
临时备份设备:直接将数据库备份到物理文件上
语句:EXEC sp_addumpdevice...
备份类型
数据库备份
完整数据库备份(完全转储)
差异数据库备份(差异转储)
文件备份
文件备份
差异文件备份
事务日志备份(用于完整恢复模式和大容量恢复模式)
纯日志备份
大容量操作日志备份
结尾日志备份
常用备份策略
实现备份
12.2.4 SQL Server的恢复机制
还原的顺序
实现还原RESTORE DATABASE...
12.3 Oracle的备份与恢复机制
第13章 大规模数据架构
13.1 分布式数据库
13.1.1 分布式数据库系统概述
分布式数据库系统是物理上分散、逻辑上集中的数据库系统
13.1.2 分布式数据库目标与数据分布策略
分布式数据库目标
分布式数据库基本特征:本地自治、非集中式管理、高可用性
分布式数据库系统中的分布透明性:位置独立性、数据分片独立性、数据复制独立性
数据分布策略
数据分片
水平分片
行/元组
垂直分片
列/属性
导出分片
其他关系属性的条件
混合分片
数据分配
集中式
数据片段都安排在一个场地上
分割式
全局数据被分割成若干片段,每个片段被分配在一个特定场地上
全复制式
全局数据有多个副本,每个场地上都有一个完整的副本
混合式
介于分割式和全复制式
13.1.3 分布式数据库系统的体系结构
分布式数据库的参考模式结构
全局外模式:全局应用的用户视图
全局概念模式:全体数据的逻辑结构和特征
分片模式:全局关系到片段的映像
分配模式:各片段到物理存放场地的映像
局部概念模式:描述全局关系在场地上存储的物理片段的逻辑结构以及特征
局部内模式:局部概念模式涉及的数据在本场地的物理存储
分布透明性
分片透明性
最高级别的透明性,位于全局概念与分片模式之间
位置透明性
数据分片的分配位置对用户是透明的
局部数据模型透明性
处于分配模式和局部概念模式之间
分布式数据库管理系统
对各场地的软硬件资源进行管理,为用户提供数据接口
13.1.4 分布式数据库的相关技术
分布式查询
是用户与分布式数据库系统的接口,需考虑通信代价
导致数据传输量大的原因是数据间的连接操作和并操作
分布式事务管理
恢复控制
并发控制
13.2 并行数据库
13.2.1 并行数据库概述
13.2.2 并行数据库系统结构
共享内存结构
所有处理及通过互联网共享一个公共的主存储器
共享磁盘结构
所有处理机拥有独立的主存储器,通过互联网共享磁盘
共享磁盘结构相比共享内存具有更大的优势,但会产生一定的通信代价
无共享结构
处理机拥有独立的主存储器和磁盘不共享任何资源,支持并行数据库系统最好并行结构
层次结构
13.2.3 数据划分与并行算法
一维数据划分
轮转法
适合于扫描整个关系的应用
散列划分
适合于点查询
范围划分
利于范围查询以及点查询
多维数据划分
并行算法
并行排序
并行连接
划分连接
分片—复制连接
其他的关系操作
选择、消除重复、投影、聚集
13.3 云计算数据库架构
13.3.1 云计算概述
集中所有的计算资源,采用硬件虚拟化技术为云计算使用者提供强大的计算能力、存储和带宽等资源
13.3.2 云数据库体系结构
BigTable数据模型
BigTable的体系结构
13.3.3 云数据库与传统数据库比较
13.3.4 云数据库展望
13.4 XML数据库
13.4.1 XML数据库概述
XML被设计用来传送及携带数据信息,而不是用来展示数据(HTML),所以它的用途焦点是说明数据是什么以及携带的数据信息
13.4.2 SQL Server2008与XML
第14章 数据仓库与数据挖掘
14.1 决策支持系统的发展
14.1.1 决策支持系统及其演化
DSS综合利用大量数据结合模型通过人机交互辅助决策者实现科学决策
14.1.2 基于数据仓库的决策支持系统
数据仓库是核心,操作型系统是基本数据源
14.2 数据仓库技术概述
14.2.1 数据仓库的概念与特征
面向主题的、集成的、非易失的、随时间变化的数据集合、用来支持管理人员的决策
14.2.2 数据仓库的体系结构与环境
14.2.3 数据仓库的数据组织
数据组织结构
粒度
粒度越大综合程度越高细节程度越低能回答的查询就越少,反之
数据分区
14.2.4 元数据
数据仓库中的重要数据,是关于数据的数据
技术型元数据
业务型元数据
14.2.5 操作型数据存储
14.3 设计与建造数据仓库
14.3.1 数据仓库设计的需求与方法
14.3.2 数据仓库的数据模型
概念模型、逻辑模型、物理模型
14.3.3 数据仓库设计步骤
ETL是实现数据集成的主要技术
14.4 数据仓库的运行与维护
14.4.1 数据仓库的更新维护
维护策略
实时维护、延时维护、快照维护
捕捉数据源的变化
触发器、修改数据源应用程序、通过日志文件、快照比较法
导出数据的刷新
14.4.2 数据仓库监控与元数据管理
14.5 联机分析处理与多维数据模型
14.5.1 OLAP简介
14.5.2 多为分析的基本概念
14.5.3 多维分析的基本操作
钻取与卷起
切片和切块
旋转
14.5.4 OLAP的实现方式
基于多维数据库的OLAP(MOLAP)
具有最好的整体查询性能
基于关系数据库的OLAP(ROLAP)
混合型OLAP(HOLAP)
14.6 数据挖掘技术
14.6.1 数据挖掘步骤
数据准备
数据选取、数据预处理、数据交换
数据挖掘
结构解释评估
14.6.2 关联规则挖掘
14.6.3 分类挖掘
14.6.4 聚类挖掘
聚类方法:统计方法、机器学习方法、神经网络方法、面向数据库等
14.6.5 时间序列分析