需求分析过程
1、标识问题
2、建立需求模型 DFD和IDEFO可用于建立需求模型
3、描述需求
4、确认需求
服务器容错技术
1、主-备方式(Active - Standby方式)
即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)
该方式的特点是当Active状态服务器出现故障的时候,通过软件诊断将Standby机器激活,保证系统在最短时间内恢复正常使用。
2、双主机方式(Active-Active方式)
即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)
优点是两台服务器切换速度快,数据库连接不中断,应用不受影响。
XML数据库
1、主要包括XEDB,NXD和HXD三种
2、 因为XML文档本身标记知识文档本身的描述,需要经过解析才能达到用途
ODS
1、是数据仓库体系结构中的一个可选部分,ODS具备数据令库的部分特征和OLTP系统的部分特征
2、它是“面向主题的、集成的、当前或接近当前的、不断变化的“数据
3、第一类ODS数据更新频率是秒级
4、第二类ODS的数据更新频率是小时级
5、第三类ODS的数据更新频率是天级,上述三类是根据数据更新的速度划分的
6、ODSIV:第四类ODS是根据数据来源方向和类型划分的。
小知识
增加冗余列可以减少查询过程中的JOIN连接操作
数据库物理设计不包括文件和数据库的具体实现细节(创建文件,创建数据库以及如何加载数据)
元数据
1、如数据库中数据字典就是一种元数据
2、DBMS数据字典、数据库结构证明文档、前端应用程序表中数据库的定义及说明文档都是元数据
数据库系统实施的活动
1、创建数据库
2、装载数据
3、应用程序的编码与调试
4、数据库的试运营
数据签名用于数据防篡改
定义主码是用于实体的完整性
关键字CLUSTERED表明该索引属于聚集索引
标量函数中不适用SET语句
用户自定义函数主要包括标量函数和表值函数两类。
架构
1、在删除架构时,如果使用CASCADE选项,则会将该架构中的所有架构对象一起全部删除;
2、如果使用RESTRICT选项,如果被删除的架构中包含架构对象,则拒绝删除此架构。
强制存取控制
1、仅当主体的许可证级别不低于客体的密级时,该主体才能读取相应的客体
2、仅当主体的许可证级别不高于客体的密级时,该主体才能写相应的客体
范围划分 有利于范围查询及点查询;
轮转法 最适合于扫描整个关系的应用,在扫描时可以并行的从n个磁盘读取数据,负载均衡,充分发挥了并行性;
散列划分 适合于点查询。
五种约束类型
1、主键(PRIMARY KEY)约束
2、外键(FOREIGN KEY)约束
3、唯一(UNIQUE)约束
4、缺省(DEFAULT)约束
5、检查(CHECK)约束
两端加锁协议保证事务调度的可串行性
知识发现的三个步骤
1、数据准备
2、数据挖掘
3、结果的解释评估
日志文件格式
1、以记录为单位的日志文件
2、以数据块为单位的日志文件
DFD和IDEFO可用于建立需求模型;而IDEF2用于系统模拟,建立动态模型。
在IDEF1X中一个非确定联系又称为多对多关系或m:n联
SQL Server 2008数据库中主要数据文件大小最小不能小于3MB
RAID1提高了读写速度,加强了系统的可靠性,但是磁盘的利用率低;
RAID5写入数据的速度比对RAID1慢,但是磁盘的利用率比RAID1高,存储成本相对较低
无共享结构被认为是支持并行数据库系统的最好并行结构,
它通过最小化共享资源来降低资源竞争的概率,具有极高的可扩展性,并可在复杂数据库查询处理和联机事务处理过程中达到近线性的加速比
无共享结构比较适合OLTP之类的应用。
增加冗余列的调优方法是指在多个表中增加具有相同语义的列,它常用来在查询时避免连接操作。
日志文件
1、日志的写入顺序和并行事务执行的时间必须一致 日志的写入顺序和并行事务执行的时间必须一致
2、为了保证数据库是可恢复的,必须先写日志再写数据库
3、事务恢复同样需要日志
粒度
1、指数据的细化程度
2、细化程度越高,粒度越小
3、细化程度越低,粒度越大
数据库
1、主要用于提取数据中的潜在信息和知识
2、不做汇总和统计
3、数据库文件
1、每个数据库有且仅有一个主要数据文件,可以有多个次要数据文件
2、每个数据库必须至少有-一个日志文件,也可以有多个日志文件。
3、日志文件不能包含在文件组内。一个文件不可以是多个文件组的成员
数据仓库
1、为了构建新的分析处理环境而出现的一种数据存储和组织技术
2、数据是面向主题的、集成的、非易失的、随时间不断变化的
3、构建数据仓库不是把各种应用集中在一起,而是利用企业信息生成数据,以面向主体,集成的方式合理组织数据,解决数据分析
UML模型
1、协作图 用于描述对象在空间中如何交互,即除了动态交互,它也直接描述了对象如何链接在一起的情形
2、状态图
1、用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作
2、一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机,重点在与描述状态图的控制流
3、顺序图
1、用于描述指定的一组对象是如何交互的,它着眼于消息队列,也就是在消息间如何发送和接收信息。
2、对象间的通信用对象生命线之间的水平消息线表示,箭头说明消息的类型,如同步、异步或简单。
3、顺序图可以表示递归过程,当一个操作调用它本身时,消息总是同步的。
4、在顺序图中可以描述如何创建和销毁对象,创建或销毁一个对象的消息一般是同步的。顺序图中的消息可以有条件,并规定只有条件为真时才可以发送和接收消息,如果条件之间不互相排斥,则消息可能会并行发出。
4、部署图
1、描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。
2、一个系统模型只有一个部署图,部署图通常用来帮助理解分布式系统。
需求分析常用的建模方法
DFD建模方法
1、DFD建模方法的核心是数据流,它能精确地在逻辑上描述系统的功能、输入、输出和数据存储等,从而摆脱了其物理内容。
2、数据流图是系统逻辑模型的重要组成部分。
3、特征
1、①抽象性:在DFD中具体的组织机构、工作场所、物质流等都已经去掉,只剩下信息和数据存储、流动、使用以及加工的情况。所以描述的是抽象出来的数据。
2、②概括性:它把系统对各种业务的处理过程联系起来考虑,形成一个总体,可反映出数据流之间的概括情况。
3、自顶向下逐步细化的结构化分析方法
4、表示方法
1、数据流用 箭头表示
2、处理用 矩形框表示
3、数据存储用 圆角矩形框表示
4、外部项用 圆角框或者平行四边形框表示
IDEF0方法
1、组成IDEFO图的基本元素
1、矩形框 代表功能活动
2、箭头
2、其中矩形框左边的输入箭头 表示完成活动需要的数据
3、矩形框上方的控制箭头 描述了影响整个活动执行的事件或约束条件
4、右边的输出箭头说明由活动产生的结果及信息
5、下方进入的机制箭头 表示实施该活动的物理手段或完成活动需要的资源(计算机系统、人或组织)。
IDEF1X方法
1、直角矩形框用于表示独立实体集
2、圆角矩形框用于表示从属实体集
UML方法
1、活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序
2、四层建模概念框架
1、元元模型层
2、元模型层
3、模型层
4、用户模型层
3、在UML的状态机图中,状态之间的转移是由事件驱动的。
数据库应用系统设计
1、每个步骤的设计活动按照数据组织与存储、数据访问与处理、应用设计等几个方面进行
2、 概念设计 采用自下而上的ER设计
3、逻辑设计
1、设计视图和关系模式的完整性约束
2、工作内容
1、数据库逻辑结构设计
2、数据库事务概要设计
3、SAD 32ezdw-+
4、物理设计
1、将关系模式转换为具体DBMS平台支持的关系表
2、工作内容
1、数据库逻辑模式调整
2、文件组织与存取设计
3、数据分布设计
4、数据分布设计
5、确定系统配置
6、物理模式评估
四个层次
1、表示层 位于最外层,离用户最近,用于显示数据和接受用户输入的数据
2、业务逻辑层
1、 表示层和数据访问层之间通信的桥梁,主要负责数据的传递和处理,例如数据有效性的检验、业务逻辑描述相关功能。
2、业务逻辑层概要设计包括:结构、行为、数据接口、故障处理、安全设计、系统维护与保障等方面的内容
3、业务逻辑层的主要任务是梳理DBAS的各项业务活动,将其表示为各种系统构件(如类、模块、组件等)
3、数据访问层
1、主要实现对数据的保存和读取操
2、进行事务设计
4、数据持久层
1、以程序为媒介把表现层或服务层的数据持久化,他位于物理层和数据访问层之间的
2、进行应用系统的存储结构设计
减少死锁发生的数量
1、各个事务应顺序访问共享资源,将复杂的、大的事务分解成多个简单、小的事务;
2、按同一顺序访问对象;
3、事务隔离性级别;
4、使用绑定连接;
5、灵活使用显示加锁技术等
DBAS性能指标
1、数据操作响应时间,或数据访问响应时间;
2、系统吞吐量,即指系统在单位时间内可以完成的数据库事务或查询的数量;
3、允许并发访问最大用户数;
4、每TPS(Price per TPS)代价值
数据库运行维护与优化
数据库的转储和恢复
数据库的安全性和完整性控制
数据库性能的监控分析和改进
数据库的重组和重构
其中引入汇总表是属于数据库性能优化的一部分。
分割表的调优方法
水平分割会给应用增加复杂度,特别是在查询所有数据时需要union操作
垂直分割使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/0次数,从而提高系统性能,但其缺点是查询所有数据时需要Join(连接)操作。
DBAS的性能指标
1、数据操作响应时间(或数据访问响应时间):从提交请求到返回结果的时间
2、系统吞吐量:指系统在单位时间内所完成的事务或查询的数量,单位为TPS;
3、允许并发访问的最大用户数:在保证响应时间的前提下,系统最多允许多少用户同时访问数据库
4、每TPS代价值,用于衡量系统性价(性能价格)比的指标
约束性
UNIQUE约束
1、强调不是主键的唯一性约束
2、允许出现空值 不允许出现重复值
PRIMARY KEY约束
1、强调主键不可以出现相同元素
2、不允许出现空值
通过事务等待图来实现死锁检测
1、是周期性的生成事务等待图进行检测,不是执行每个事务都进行检测
2、检测事务等待图并撤销回路中的某个事务是在数据库应用系统运行过程中由DBMS完成的工作
程序设计中预防死锁的办法
1、事务按同一顺序访问资源
2、避免事务中的用户交互
3、将大事务切成若干个小事务、采用小事务模式
4、使用绑定连接
5、尽量缩短事务的长度
6、减少占有锁的时间
7、尽量使用记录级别的锁(行锁),少使用表级别的锁
并行数据服务器的两种结构
1、目的 是通过高速通信介质连接多个可独立处理的单元以并行执行的方式完成对数据库系统的互联查询、内部查询及各种内部操作
2、完全共享资源结构
对每个数据项的存取都要经过公共通讯线路
所有的处理器共享 内存 磁盘资源
3、完全不共享资源结构
高功能计算机系统由多个较小的系统组成
每个站点都要实现全局数据目录,每个站点有独立的内存和磁盘对该站点的服务器
4、并行数据库中一维数据的划分方法
(1)轮转法:最适合于扫描整个关系;
(2)散列划分法:比转转法更适合点查询,也适合顺序扫描关系;
(3)范围划分法:明显利于范围查询和点查询。
分布式数据库
目的 实现场地自治和数据全局透明共享。
本地自治、非集中式管理以及高可用性是分布式数据库最基本的特征。
集中式指所有数据片断都安排在一个场地上
分割式指全局数据有且只有一份,它们被分割成若干片段,每个片段被分配在一个特定场地上
全复制式是在每个站点上都有全局数据的复制样本,数据的冗余性最大
混合式指全局数据被分为若干个数据子集,每个子集被安排在一个或多个不同的场地上,但是每个场地未必保存所有数据。
在集中式数据库系统中,查询代价主要是由CPU代价和I/0代价来衡量的
在分布式数据库系统中主要由通信代价衡量
分布透明性
分片透明性:是最高层次,指的是用户或应用程序只对全局关系进行操作而不必考虑关系分片的情况
位置透明性:是下一层次,指用户或应用程序只需了解数据分片情况,而不必了解片段的存储场地
局部数据模型透明性:指的是用户或用户程序不必了解局部场地上使用的是哪种数据模型,但是必须了解全局数据的分片情况,还需了解各片断的副本复制情况及各片断和它们副本的场地位置分配情况
联机
联机事务处理 OLTP
OLTP是对数据库联机的日常操作,通常是对一条记录的查询和修改
要求快速响应用户的请求,对数据的安全性、完整性及事物吞吐量要求很高。
OLTP为微观操作 面向企业的中下层业务人员使用
联机分析处理 OLAP
OLAP是对数据的查询和分析操作,通常是对海量历史数据的查询和分析
要访问的数据量非常大,查询和分析操作十分复杂
OLAP为宏观分析 面向中上层和决策者使用
三类OLAP技术
1、基于关系型数据库的OLAP(ROLAP,Relational OLAP);
2、基于多维数据库的OLAP(MOLAP,Multi-Dimensional OLAP);
3、混合型OLAP(HOLAP,Hybrid OLAP)
数据恢复
首先恢复完全备份,其次恢复差异备份,最后恢复日志备份(Norecovery用来备份尾日志
SQL Server 2008三种恢复模式
1.简单恢复
无日志备份。自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。
最新备份之后的更改不受保护。在发生灾难时,这些更改必须重做。只能恢复到备份的结尾。
2.完整恢复
需要日志备份。数据文件丢失或损坏不会导致丢失工作。
可以恢复到任意时点(例如应用程序或用户错误之前)。
3.大容量日志恢复
需要日志备份。是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。
通过使用最小方式记录大多数大容量操作,减少日志空间使用量。
4、SQL Server支持对数据库中的一个数据文件进行还原的操作,在还原过程中数据库自动处于脱机状态,其它的文件不能进行读写操作,因此将受到一定的影响。
备份
master只支持完全数据库备份操作
差异备份
从最近一次完整备份到当前时间数据库中变化的数据和日志
如果使用WITH DIFFERENTIAL关键字则表明采用差异备份。
使用日志备份不能降低数据库的备份空间
索引
聚集索引:索引项的顺序与表中记录的物理顺序一致
适合索引使用的条件
①在经常需要搜索的列上,可以加快搜索的速度
②在经常使用连接的列上(这些列主要是一些外键)可以加快连接的速度,
在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;
③在经常使用WHERE子句中的列上面创建索引,加快条件的判断速度。
不适合索引的条件
1、对于那些在查询中很少使用或者参考的列不应该创建索引
2、对于那些只有很少数据值的列也不应该创建索引
3、经常进行更新的列不适宜创建索引。
数据模型三要素
数据结构
研究对象类型的集合
从语法角度表述了客观世界中数据对象本身的结构和数据对象之间的关联关系
是对系统静态特征的描述
数据操作
是对数据库中对象的实例允许执行的操作的集合
主要指检索和更新(插入、删除、修改)两类操作
数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。
数据操作是对系统动态特性的描述。
数据完整性约束
是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件
以保证数据的正确性、有效性和相容性。
方法
创建触发器
定义事务隔离性级别
数据库三级模式结构
①外模式也称子模式或用户模式
是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的视图,是与某一应用有关的数据的逻辑表示
外模式是模式的子集,一个数据库可以有多个外模式。
②模式也称逻辑模式
是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
它是数据库系统模式结构的中间层,不涉及数据的物理存储细节和硬件环境
与具体的应用和所使用的开发工具及高级程序设计语言无关。
③内模式也称存储模式或物理模式
它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。
并且一个数据库只有一个内模式。
数据库系统的三级模式结构是指数据库由外模式、模式和内模式三级构成,并通过二级映象功能将三个模式联系起来。
代码
让用户u1在数据库DB1中具有查询T1表的权限 GRANT SELECT ON DB1(T1) TO u1
包含INTO子句的SELECT语句的语法格式为: SELECT 查询列表序列INTO<新表名>FROM数据源
在使用TOP限定结果集中
WITH TIES表示包括最后一行取值并列的结果
TOP n表示取查询结果的前n行数据
TOP n percent表示取查询结果的前n%行数上
可以使用DROP FUNCTION语句从当前数据库中删除一个或多个用户自定义函数
如果要使某用户可以将授予他的权限再转授给其他用户,那么在授权语句中需 上WITH GRANT OPTION选项。
创建索引
CREATE INDEX 索引名 ON 表名(列名) 默认为非聚集索引
创建唯一索引 CREATE UNIQUE INDEX 索引名 ON 表名(列名)
创建聚集索引 CREATE CLUSTERED INDEX 索引名 ON 表名(列名)
创建唯一性聚集索引按列名降序 CREATE UNIQUE CLUSTERED INDEX 索引名 ON 表名(列名 DESC)
声明游标的语法是:DECLARE游标名 cursor FOR SQL语句
SQL中的操作符
IN 确定给定的值是否与子查询或列表中的值相匹配,选择与列表中的任意一个值匹配的行;
EXCEPT 指在第一个集合中存在,但是不存在于第二个集合中的数据
INTERSECT 是指在两个集合中都存在的数据
UNION
操作符用于合并两个或多个SELECT 语句的结果集
请注意,UNION内部的SELECT 语句必须拥有相同数量的列。
列也必须拥有相似的数据类型。同时,每条SELECT语句中的列的顺序必须相同
CLUSTERED 表示表创建聚集索引
授权和收权
GRANT:允许一个数据库用户或角色执行所授权限指定的操作;
DENY:拒绝一个数据库用户或角色的特定权限,并且阻止它们从其他角色中继承这个权限;
REVOKE:收回已经授予的权限。
需求分析阶段
数据处理需求分析
从对数据组织与存储的设计角度,辨识应用领域所管理的各类数据项和数据结构
与数据处理需求分析结果一起,组成数据字典,形成"数据规范说明书"。
功能需求分析
功能需求分析主要针对DBAS应具有的功能进行分析,是DBAS需求分析的核心环节,总体上可分为数据处理需求分析与业务规则需求分析。
数据处理需求分析从数据访问和处理的角度,明确对各数据项所需要进行的数据访问操作
性能需求分析 性能需求则描述了系统应当做到什么程度,分析DBAS应具有的性能指标。
其他需求分析包括:存储需求、安全性需求等。
a.存储需求分析:存储需求分析是指估计DBAS系统需要的数掘存储量,如DB所存储的数扼总量。
b.安全需求分析:主要用于数据库安全设计,避免被非法使用和攻击。
SQL Server固定数据库角色及其权限如下:
db-owner:具有在数据库中进行全部操作的权限,包括配置、维护数据库及删除数据库。
db-accessadmin:可以添加或删除数据库用户的权限。
db-securityadmin:具有管理数据库角色、角色成员以及数据库中的语句和对象的权限。
db-ddladmin:具有执行数据定义语言(DDL)的权限。
db-backupoperator:具有备份数据库、备份日志的权限。
db-datareader:具有查询数据库中所有用户数据的权限。
db.datawriter:具有插入、删除和更新数据库中所有用户数据的权限。
db.denydatareader:不允许具有查询数据库中所有用户数据的权限,等同于对所有的表和视图授予了DENY SELECT权限。
db_denydatawriter:iA有INSERT,DELETE和UPDATE数据库中所有用户数据的权限。
触发器
不能在视图上定义AFTER型触发器
INSERTED表用于存储INSERT和UPDATE语句所影响的行的副本。
在SQL Server 2008中,对于更新操作的触发器,系统将产生两张逻辑工作表
DELETED表 用于存储更新前数据
INSERTED表 用于更新后的数据
前触发器 使用INSTEAD OF选项定义的触发器为前触发器
后触发器 使用FOR或者AFTER选项定义的触发器为后触发的触发器
只有在引发触发器执行的语句中的操作都已成功执行,并且所有的约束检查也成功完成后,才执行触发器
ER图转换为关系模式
1、将实体转化为同名的关系,实体的属性就是关系的属性,实体的主码就是关系的主码
2、将一对多关系的m端的主属性为主码, 1端的主码为m端的属性并且为外码
3、多对多的实体还是作为本身的关系,属性还是自身的
4、多对多的联系作为关系,两边的主码作为属性,是主码同时也是外码
数据库性能优化
数据库性能优化一般可以从数据库运行环境、数据库参数调整、模式调整、数据库存储优化和查询优化进行操作
只有物化视图属于数据库性能优化中的存储优化内容。
三层B/S架构系统
表示层 表示层位于客户端,由Web浏览器实现
应用层 应用层位于Web应用服务器,实现面向具体应用领域的业务规则
数据层 数据层位于数据库服务器,通过DBMS完成具体的数据存储和数据存取等数据管理功能。