数据库知识点

数据库三级知识点

数据库用户

​ 1、系统管理员

​ 2、对象拥有者

​ 3、普通用户

概念数据模型
  1. 概念数据模型主要用来描述世界的概念化结构,是数据库设计人员集中精力用于分析数据以及数据之间的联系,与具体的数据库管理系统无关,所以,没有描述数据完整性的约束条件
  2. 使用户便于了解
  3. 是现实世界到信息世界的第一层抽象,强调语义功能
数据模型
  • 数据结构

    是研究对象类型的集合,他从语法角度表叔了客观世界中数据对象的结构和数据对象之间的关联关系,是系统静态特征的描述
    
  • 数据操作

    是对数据库中对象的实例允许执行的操作集合,主要指检索和更新两类操作,数据模型必须定义这些操作的确切含义,操作符号,操作规则以及实现操作的语言,数据操作是对系统动态特性的描述
    
  • 数据完整性约束

    是一组完整性规则集合,规定数据库状态及状态变化所满足的条件,以保证数据的正确性,有效性
    
数据库性能指标
1、数据操作响应时间

2、系统吞吐量

3、允许并发访问个数

4、每TPS代价值
数据库系统的实施活动
1、创建数据库

2、装载数据

3、应用程序的编码

4、数据库的试运行
数据库系统设计阶段
  • 概念设计
    • 总体框架设计
    • 自下而上的ER设计
    • 每个实体集需要有唯一的名字,实体集一般用名词或名词短语命名
  • 逻辑设计
    • 完成关系模式的设计
    • 设计视图和关系模式的完整性约束
  • 物理设计

    目标:设计一个空间利用率高,具有较高访问效率和较低维护成本的数据库物理结构

    结果:可以从时间、空间和维护代价等方面进行评估,一般需要从多种可行方案中根据评估情况选择最为合理 的方案

    • 并不包括文件和数据库的具体实现细节(列如如何创建文件,建立数据库以及如何加载数据)

    • 着眼于数据库底层的物理存储与存取,与操作系统和硬件环境及数据库管理系统密切相关

    • 需要考虑设置合理的数据库管理系统参数和操作系统相关参数

    • 需要考虑RAID级别,操作系统的文件管理机制、数据库管理系统支持的索引类型

    • 数据分布设计

  1. 主要进行系统编码和测试,白盒测试和黑盒测试,不会对发现需求进行进一步的升级,那是运行维护u阶段的工作
  2. 通过ER模型进行设计数据库,不考虑数据在计算机中的存储和处理特性
数据库应用系统设计
数据库应用系统逻辑设计
	1、数据库逻辑结构设计

	2、数据库事物概要设计

	3、应用程序概要设计
功能上
1、表示层

	人机界面设计
	用于显示数据和接受用户输入的数据
	
2、业务逻辑层

	存储过程所在层
	构件设计(梳理DBAS各项业务活动,将其表示为各种系统构件)
	表示层和数据访问层之间通信的桥梁,主要负责数据的传递和处理

	(1)、结构
	
	(2)、行为
	
	(3)、数据接口
	
	(4)、故障处理
	
	(5)、安全设计
	
	(6)、系统维护与保障
	
3、数据访问层

	主要实现对数据的保存和读取
	
4、数据持久层

	应用系统的存储结构设计
	数据组织与存储的方面的物理设计工作(索引设计)

	(1)、数据库逻辑模式调整

	(2)、选择或配置基本关系表的文件组织形式,为基本关系表设计数据存取方法或路径

	(3)、数据分布设计

	(4)、安全模式设计

	(5)、确定系统配置

	(6)、物理模式评估
数据库应用系统的需求
1、数据需求分析

	主要工作是从用户视图出发,分析与辨识应用领域所管理的各类数据项和数据结构,形成数据字典的主要内容

2、需求分析阶段

	系统需求分析员与用户充分沟通,并形成文档化的需求描述

3、需求分析过程
	
	1、标识问题
	
	2、建立需求模型
			
			DFD和IDEF0
			IDEF2用于系统模拟,建立动态模型
		
	3、描述需求
	
	4、确认需求

	需要系统的描述整个应用系统的特征、性能和约束,并形成需求规范说明文档

4、性能需求分析

	数据操作响应时间、系统吞吐量和最大并发度用户数都是重要指标
数据库应用系统的开发活动
系统规划和定义

​ 1、任务陈诉

​ 2、确定任务目标

​ 3、确定系统范围和边界

​ 4、确定用户视图

储存管理器的功能
  1. 存储管理器负责检查用户是否有数据访问权限
  2. 存储管理器会将部分内存用户数据缓冲,同时使用一定的算法对内存缓冲区中的数据项进想置换,这是为了提访问效率
  3. 存储管理器以事务方式管理用户的数据的访问,以确保数据库并发访问的正确性
查询处理器的功能
模块一:查询编译器

模块二:查询执行器
  1. 查询处理器会为编译好的查询语句生成执行计划,并根据执行计划访问相关的数据
B/S结构的数据库应用系统
  1. 用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,主要事务逻辑在服务器实现
  2. 不受空间限制,使用者可在全球任何地方,任何时间请求数据库应用系统提供的各种数据服务
函数依赖概念
主要用于研究关系中属性之间的依赖关系
三级模式
内模式
	物理模式
	他是数据物理结构和存储结构方式的描述,是数据在数据库内部的表示方法,一个数据库只有一个只能定义一个内模式

	对数据库的物理存储结构和存储方式的描述,是数据库在数据库内部的存储方式。拿MySQL来	讲,每建		一个表,都会在文件系统上生成一个或多个文件,这些文件存储了数据、表信息、索引信息,这就称为内模式 
模式
	逻辑模式
	对内模式的抽象,即<u>数据库</u> 
外模式
	子模式或用户模式
	对模式的抽象,用户直接使用的应用程序

	一个数据库可以有多个外模式
外模式+模式映像
	确保逻辑独立性,即便模式改变时(增加了表,记录,字段)外模式也不会受到影响
模式+内模式映像
	确保物理独立性 即便内模式发生改变 比如MySQL切换了存储引擎 ,模式也不会改变,从而外模式也不会改变
数据库系统的实施、运行、维护活动
数字类型的区别
触发器
前触发器

​ 使用INSTEAD OF 选项定义的触发器为前触发器,在这种模式的触发器中,指定执行触发器而不是执行引发触发器执行的SQL 语句,从而代替触发的操作

触发器的数量
1、一个表上可以在同一种操作上建立多个触发器

2、一个表上针对同一个数据操作只能定义一个前触发器
更新操作的触发器,会产生两张逻辑表
1、DELETED 用于存储更新前的表

2、INSERTED 用于更新后的表

触发器使用户定义在关系表上的一类由时间驱动的特殊过程
CHECK条件约束规则
当用CHECK条件进行约束的时候,若只涉及到一列的约束则可以放到该列后面,如果约束条件涉及到两列或者两列以上,则为对整个数据表的约束,放在表的最后面
用户与角色的权限冲突
当用户的权限和角色权限发生冲突时,以角色的权限为准
查询效率
  1. 加了共享锁,无法加入排它锁

  2. 数据库管理系统可以采用先来先服务的方式防止出现活锁现象

  3. 当数据库管理系统检测到死锁后,可以采用撤销瑟缩事务的方式接触死锁

    死锁

    检测死锁方法

    1、超时法

    2、等待图法:并不是在执行每个事务时进行检测

    应用程序中防止死锁

    1、事务按统一顺序访问资源

    2、将大事务切分为若干小事务

    3、使用绑定连接

    4、减少用户交互

    5、使用行级锁

    6、降低隔离级别

    数据库系统防止死锁

    1、检测事务等待图并撤销回路中的某个事务

索引
主索引
	是根据数据对象的主键建立的索引,他们决定了被索引记录的位置
辐索引
	他可以用来任何索引目的并且可以查找多个数据文件存放的位置
位索引
	一般在于范围查询时使用
  • 在频繁执行插入、修改、删除操作的表上建立索引可能会降低系统整体性能
  • 在一张表的某列上需要频繁的执行精确匹配查询时,可以考虑为此列建立哈希索引
  • 如果系统中存在频繁的夺标连接操作,可以考虑这些基本表组织为聚集文件,以提高查询效率
日志
  • 日志的写入顺序和并行事务执行的实践次序一致,因为这样才能再数据库恢复时,保证没有脏数据

  • 必须先写日志,再写数据库,因为,如果先写数据,若数据出错,则无法写入日志

  • 日志文件中检查点记录的主要作用是提高系统出现故障后的恢复效率

  • 系统故障恢复和事务故障恢复,都需要使用日志文件

    日志文件的格式

    主要有以记录为单位的日志文件和以数据块为单位的日志文件两种

    事物日志

    事务日志是一个与数据库文件分开的文件,它存储对数据库进行的鄋更改,并记录全部插入、更新、删除、提交、回退和数据库模式变化等操作,事物日志是数据备份和数据恢复的重要文件也是使用SQL Remote 或 【复制代理】 复制数据所必须的

备份(转储)
备份方式

​ 1、完全备份:是对数据库中的所有数据进行备份,此种方式占用较多的事件和空间

​ 2、差量备份:是对最近一次数据库完全备份以来发生的数据库变化进行备份,与增量备份相比,速度慢,占用空间多,但是恢复快

​ 3、增量备份:只复制上次备份后发生变化的文件或数据块,增量备份所需的时间和空间都比较短,但增量备份只能和完全佩芬配合才能对数据库进行恢复,增量备份恢复的事件比完全备份时间长

恢复模式
恢复级别

​ 1、数据库

​ 2、数据文件级别

1、简单恢复:无日志备份,自动回收日志空间,以减少空间需求,实际上不再需要管理事务日志空间,最新备份之后的更改不受保护,在发生灾难时,只能恢复到备份的结尾 
	注意: 
		1、主要包含只读数据的数据库 如数据仓库
		2、只用于测试和开发数据库

2、完整恢复:需要日志备份,数据文件丢失或穗槐不会导致丢失工作,可以恢复到任意时点

3、大容量日志恢复:需要日志备份,是完整恢复模式的附加模式,允许执行高性能的大容量复制操作,通过使用最小记录大多数大容量操作,减少日志空间使用量

注意:
	1、事物日志备份仅课用在完整恢复模式和大容量日志恢复模式
恢复顺序
1、首先恢复最近的完全备份

2、其次恢复完全备份之后的差异备份

3、按日志备份的先后顺序恢复自最近的完全或差异数据库备份之后的所有日志文件

4、备份日志时用Norecovery用来备份尾日志,这样备份日志的时候数据库就处于恢复状态,其他进程进不能访问数据库,日志就不会增加,如果有多个日志备份,除了最后一个日志备份不需要Norecovery,其他都需要

使用日志备份并不能降低数据库的备份空间

日志文件没有收到损坏

​ 首先对数据库进项一次结尾日志备份,然后再恢复数据库

并行数据库
划分方式
1、轮转法:对关系扫描,将第i条记录存储到标号为Dimod的磁盘上,该方式保证了元组在多个磁盘上均匀分布(适合整表扫描)

2、散列法:选定一个值域为{0,1,2,........,n-1}的散列函数,对关系中的元组基于划分属性进行散列,如果散列函数返回i,则将其存储到第i个磁盘(适合点查询,顺序扫描表)

3、范围划分:根据表中的某个属性取值区间划分为不同的子区域,然后根据表中的属性值属于的不同区域,将表扥城不同的子表(适合范围查询和点查询)

4、多维划分:维是观察的角度,从不同的角度观察能得到不同的结果
主要目的
是通过高速通信介质连接多个可独立处理的单元以并行执行的方式完成对数据库系统的互联查询、内部查询及各种内部查询
提高数据库系统的吞吐率和减少事物响应时间
1、层次结构可以分为两层,顶层是无共享结构,底层是共享内存或共享磁盘结构

2、无共享结构通过最小化共享资源来降低资源竞争,每个处理机拥有独立的主存储器和磁盘因此具有很高的可扩展性,

3、经常通过负载均衡的方法来提高数据库系统的业务吞吐率

4、共享内存的优势是实现简单,缺点是忧郁共享内存,如果处理器数量过多,容易造成访问内存冲突

5、共享磁盘结构所有的处理机拥有独立的主存储器,通过互联网共享磁盘,这种结构可以克服共享内存结构,但是由于通过互联网实现处理器之间信息交换,会产出一定的通信代价
分布式数据库
特征

​ 1、本地自治

​ 2、非集中式管理

​ 3、高可用性

组成
1、局部数据库管理系统
	
	负责创建和管理局部数据库,提供场地自治能力,执行全局应用以及全局查询的子查询

2、全局数据库管理系统

	它为终端用户提供分布式透明性,协调全局事物在各个场地的执行,为全局应用提供支持

3、全局数据字典

	分布式数据库管理系统能管理全局数据字典

4、通信管理

	是分布式数据库管理系统的重要功能,负责在各个场地之间传送数据和消息,为各个场地的协同工作提供可靠的通信
主要目的
	实现场地自治和数据全局透明共享
数据分配
1、集中式:所有数据片段都安排在一个场地上

2、分割式:全局数据有且只有一份,他们被分割成若干片段,每个片段分配在一个场地上

3、全复制式:每个站点都有全局数据的复制样本,数据的冗余性最大

4、混合模式:全局数据被分为若干个数据子集,每个子集被安排在一个或多个不同的场地上,但是每个场地未必保存所有的数据 (结余分割式和全复制式的分布方式)
模式

1、全局外模式:是全局应用的用户视图,即终端用户看到的逻辑上并未分布的表、视图等

2、全局概念模式:用于描述全体数据的逻辑结构特征

3、分片模式:用于描述每个数据片段以及全局关系到片段的映像,是分布式数据库系统中全局数据的逻辑划分视图

4、分配模式:用于描述个片段到物理存放场地的映像

5、局部概念模式:用于描述全局 关系在场地上村粗的物理片段的逻辑结构以及特征

6、局部内模式:用于描述局部概念模式设计的数据在本场地的物理存储

分片类型
1、水平分片
	关系中从行(元组)的角度一句一定条件氛围不同的片段,关系中的每一行必须至少属于一个片段,以便在需要时可以重构关系
	
2、垂直分片
	垂直分片是关系从列(属性)的角度一句一定条件氛围不同的片段,个片段应该包含关系的主码属性,以便通过连接方法恢复关系

3、导出分片

4、混合分片 ( 以上三种分片的混合)
分布透明性
1、分片透明性:最高层次,指的是用户或应用程序支队全局关系进行操作,而不必考虑关系分片的情况,(全局概念模式和分片模式之间)

2、位置透明性:是下一层次,指用户或应用程序只需了解数据分片情况,而不必了解片段存储场地

3、局部数据模型透明性:指用户或应用程序不必了解局部场地上使用的是那种数据模型,但是必须了解全局数据的分片情况,还需了解各片段的副本复制情况及各片段和他们副本场地位置分配情况  (位于分配模式和局部概念模式之间)
连接操作
半连接操作可以减少场地之间的数据传输量
查询操作中
导致传输数据量大的主要原因是:数据之间的连接和并操作
传输代价
1、I/O代价

2、CPU代价

3、通信代价 (查询优化的首要目标)
分区
步骤:

​ 1、创建分区函数

​ 目的是告诉数据库管理系统以什么方式对表进行分区

​ 2、创建分区方案

​ 作用是将分区函数生成的分区映射到文件组中,不同的分区可以映射到相同的数据库文件组中

​ 3、再使用分区方案创表

联机事务处理(OLTP)和联机分析处理(OLAP)
OLTP
1、安全性高,实现困难

	是对数据库联机的日常操作,通常是对一条记录的查询和修改,要求快速的响应用户的请求,对数据的安全性、完整性及事务吞吐量要求很高。
多维分析操作
	1、切片 : 实现局部数据的显示,帮助用户从众多混乱的数据中进项选择

	2、切块 : 实现局部数据的显示,帮助用户从众多混乱的数据中进项选择

	3、旋转 : 改变维的方向

	4、钻取 : 通过维级别中下降或引入某个维更细致的观察数据

	5、卷起 : 数据立方体中执行聚集操作,通过维级别中上升或通过消除某个或某些维来观察更概括的数据
OLAP
	是对数据的查询和分析操作,通常是对海量历史数据的查询和分析,要访问的数据量十分庞大

1、MOLAP

	MOLAP称为基于多维库的OLAP,这种OLAP的核心是多维数据库技术,MOLAP工具以多维数据库的形式将元数据、基础事实数据和到处数据存储在以多维数据为基本存储结构的多维数据库中

2、ROLAP

	基于关系数据库

3、HOLAP

	混合型
信息系统分析的需求建模方法
1、DFD

	自顶向下逐步细化的结构分析法

2、IDEFO

3、UML
UML图
UML的语义是定义在一个四层建模概念框架中的

1、元元模型层

	元元模型层组成了UML最基本的元素“事物”,代表要定义的所有事物

2、元模型层
	
	元模型层组成了UML的基本元素,这一层中的每个概念都是元元模型层中事物概念的实列

3、模型层

	模型层组成了UML的模型,这层中的每个概念都是元模型层中概念的实列

4、用户模型层

	用户模型层中的所有元素都是UML模型的实列,这层中的每个概念都是用户模型层的一个实列
视图
UML中的视图是由一个或多个图组成的,一个图是系统模型的某个侧面的展示	
组件图
交互图
状态图

​ 主要用来描述一个实体在发生一些事件时的状态变化情况

描述一个对象生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件,以及因状态转移而伴随的动作

注意:
	1、状态图只有一个起始状态,有多个结束状态
类图

​ 展现一组类、接口和写作以及他们之间关系的静态视图

1、类(泛化):空心三角实线相连   

2、接口(实现):空心三角虚线相连

3、关联:实心三角实线相连

4、聚合关系(组合):空心菱形实线相连

5、依赖:带箭头的虚线
用例图

​ 把满足用户需求的所有功能表示出来

1、用例代表的事一个完整的功能,是动作的集合

2、用例用椭圆形描述,位于系统的内部

3、用例间的扩展关系用于描述一个已有用例及在其基础上增加新动作形成的用列关系

4、用例间的组合关系用于描述一个包及其组成用例间的关系

用于描述系统与外部系统及用户之间的交互
表达系统的功能需求
<u>用例之间的关系</u>

1、扩展

2、使用

3、组合

<u>描述系统的功能</u>

1、用例

2、系统

3、角色
时间图
时间图适用于当状态的转移与实践密切相关时,同时强调时间因子在状态转换过程中的重要作用

时间图作为状态图的辅助说明工具,一张时间图通常会对应至少一张状态图
通信图(协作图)
1、空间中如何交互,他也直接描述了对象如何连接在一起的情形,并不侧重交互的顺序,他没有将时间作为一个单独的维度,而是使用序列号来确定消息及并发线程的顺序

	通信图是交互图的一种,也被称作为协作图,他是表达对象之间的联系以及对象间发送和接收消息的图		
顺序图
1、用于描述指定的一组对象如何交互的,它着眼于消息队列,也就是消息间如何发送和接收消息

2、使用来描述对象自身及对象间信息传递顺序的视图

3、可以描述如何销毁和创建对象,销毁或创建一个对象的消息一般是同步的

4、顺序图可以表示递归的过程,当一个操作调用它本身时,消息总是同步的

5、顺序图中国的消息可以有条件,并规定只有条件为真时才可以发送和接收消息,如果条件之间不排斥,则消息是并行发出
部署图
1、描述的是系统运行时的结构,展示了硬件的配置以及其他软件如何部署到网络结构中,一个系统模型只有一个部署图,部署图通常用来帮助理解分布式系统
活动图
1、用于描述系统、用例和程序模块中逻辑流程的先后执行次序、并行次序

2、主要目的在于陈述活动与活动之间的流程控制的转移
对象图

​ 1、对象图可以看成是系统某一时间点的快照,用于描述特定时间上所有对象在系统中的结构

​ 2、对象图用于解释类图以及验证所涉及的类图是否符合实际状况,也可用于协助程序设计人员理解复杂的类图结构

ER图转UML图
1、一对多使用   <u>*</u>   表示
三级加锁协议
三级加锁协议保证了并发事务的一致性
故障恢复操作
故障种类
故障种类
1、事务内部故障

	(1)、预期事务故障

	(2)、非预期事务故障  : 不可预期的,不能有应用程序处理,包括溢运算‘并发事务发生死锁、违背了完整性限制      运算溢出、并发事物死锁、违反了某些完整性限制

2、系统故障 (软故障)
	数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞,突然停电等情况,导致系统停止运转,所有事务以非正常的方式终止,需要系统重新启动的一类故障

3、介质故障

4、计算机病毒故障
转储
  • 完全转储
  • 差量转储
  • 增量转储
数据仓库
目的

​ 数据仓库是服务于决策支持的数据集合

元数据

​ 类别

​ 1、技术元数据

​ 2、业务元数据

元数据可以帮助数据仓库管理员和数据仓库的开发人员非常方便的找到他们所关心的数据,元数据就是描述数据仓库的结构和建立方法的数据

元数据是关于数据的数据,或者叫做描述数据的数据。

元数据描述了数据的结构、内容、链和索引等项内容,在关系数据中,这种描述就是对数据库、表、列等其他对象的定义
1、主题

2、集成

3、非易失(稳定的)

4、随时间变化 (时变性)(反映历史变化)
	数据仓库中的每个数据单元都有时间标志,记录一般都有时间戳,有时记录可能包含事务的发生时间,同时,数据仓库随时间变化的特性还指数据仓库在运行中必须不断捕捉操作性环境中的数据,并将新的数据集成后追加到其中,并不是指数据操作与访问的实时性要求很高
ODS
	是数据仓库体系种可选的一个部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征,他是面向主题的、集成的、当前或近当前的、不断变化的数据

<u>第一类</u>

	更新频率是秒级的

<u>第二类</u>		

	更新频率是小时级的

<u>第三类</u>

	更新频率是天级的

<u>第四类</u>

	根据数据源方向和类型划分的
建立数据仓库的理由
1、充分利用企业信息系统生成各种数据

2、解决企业业务应用和数据分析应用的性能冲突

3、以面向主题、集成的方式合理的组织数据
转换
数据仓库的数据来自多种数据源,不同的数据源可能由不同的平台开发,使用不同的数据库管理系统,数据格式也可能不同,源数据在被装载到数据仓库之前,需要进行一定的数据转换,数据转换的主要任务是对数据力度以及不一致的数据进行转换
数据挖掘方法
1、关联规则挖掘

	反映一个事物与其他事物之间的相互性、依存性和关联性
架构
  • 架构与用户是一对多的关系,一个用户只能有一个架构,一个架构有多个用户
  • 架构相当于数据库对象的容器,在同一个数据库中架构不能重名
  • 架构是数据库中的逻辑命名空间,同一个数据库的不同架构中可以存在同名表
  • 在同一个架构中可以定义表、视图等不同的数据库对象
  • 在创建架构,如果没有指定架构名,则架构名隐含为用户名
  • 在删除架构时,如果使用RESTRICT选项,则会将该架构中的所有架构对象一起全部删除
权限
某用户只拥有登录到 SQL Server实例的权限:只能查询master和msdb系统数据库中的部分数据
不允许用户获得对表的某种权限
 	DENY DELETE ON T TO U1
进行授权
	GRANT SELECT NO DB1(T1) TO U1
	
	如果要使某用户可以将授予他的权限再转授给其他用户,那么在授权语句中需要加上 WITH GRANT OPTION
收回权限
    REVOKE DELETE ON T FROM User1
    
    REVOKE CASCADE DELETE ON T FROM User1  //将该用户转授给其他用户的权限也一并收回,加上CASCADE
数据库运行管理与维护
1、日常维护
2、系统监控与分析
3、系统性能优化调整

​ 1、根据应用系统运行情况完善应用功能,提高人员工作效率

​ 2、根据业务需要调整相关查询或视图

4、系统进化(升级)
数据库管理员监控任务
监控分析的对象是数据库而不是数据库系统(服务器)
职责
1、数据库的转储与恢复

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

3、数据库性能的检测和改善

4、数据库的重组和重构
日常监控
1、数据库的空间使用情况

2、数据库缓冲区命中率情况

3、数据库中索引使用情况
日常维护
1、数据库的备份、锁管理,当出现出现锁不能及时解除时,可能需要手工解锁、日志的维护、自动化监控

2、数据库的转储和恢复

3、数据库安全性、完整性控制

4、数据库性能的检测和改善

5、数据库的重组和重构 (尽量避免改动应用程序)
数据库性能优化
提高事物吞吐量
1、尽量使用行级锁

2、降低事务的隔离级别

3、将单一磁盘改为RAID1磁盘存储系统 (RAID1速度比RAID5的速度快,因为RAID5多了一个奇偶校验信息)
  • 增加派生性冗余列可以境地查询过程中的计算量

  • 增加冗余列可以减少查询过程中的JOIN操作

  • 适当减少关系模式对的规范化程度,可以减少查询过程中的JOIN操作

  • 当一个表的数据量超过一定规模时,可以采用分割表的方法提高效率

  • 修改某些频繁使用的SQL语句,提高性能

  • IO读写出现颈瓶,考虑使用高速磁盘存储常用数据,低俗磁盘存储不常用数据,提高数据库内存

  • 把数据、日志、索引挡道不同的I/O设备上,增加读取速度

  • 升级硬件设施,提高SQL Server 2008内存,增加服务器CPU个数,扩充宽带速度

  • 索引可以提高查询速度,但也可能降低写入速度,同时也会增加磁盘空间使用

  • 优化锁结构

  • 数据库性能优化和数据库的外部环境有很大的关系,如果外部环境出现颈瓶,单独对数据库进行调整很难取得较好的效果

  • 在数据库性能优化期间,可能对原有范式的关系转为不符合范式的关系

  • 物化视图是预先计算并保存表连接或聚集等耗时较多的操作结果,可以手动刷新也可以自动刷新

    优化查询

    1、在保证数据库一致性的情况下,将平凡操作的多个可以分割的处理过程放在多个存储过程中,可以大大提高系统响应速度

    2、使用游标会占用较多的系统资源,尤其堆土大规模并发量的情况下,很容易使得系统资源耗尽而崩溃,

    3、而使用临时表能够加速查询

    4、相关子查询不可以加速查询,合理使用子查询

    5、避免或简化排序的目的是实现查询优化

    6、任何地方都不要使用select * from 进行全盘扫描

    7、在ORDER BY 所涉及的列上建立索引

    存储优化

    ​ 建立物化视图和聚集

索引
正确的是
1、当数据库表更新大量数据后一般需要重建对应的B数索引

2、多属性索引中,索引属性的顺序是按照其分区度进行排序

3、与非聚集索引相比,聚集索引更适合范围查询
两大类
	1、有序索引

	2、散列索引
适合建立索引
	1、在经常需要搜索的列

	2、在经常需要连接的列

	3、在经常使用WHERE子句的列
稀疏索引
	1、如果只是一部分查找码的值有对应的索引记录,则该索引为稀疏索引
	
	2、稀疏索引所指向的数据文件一定是有序的
稠密索引
	1、如果数据文件中的每一个查找码在索引文件中都对应一个索引记录,则该索引为稠密索引
聚集索引
	1、聚集索引的键值可以重复

	2、索引项顺序与表中记录的物理顺序一直的索引组织

	3、建立聚集索引时,数据库管理系统会按照聚集索引键值对数据进行排序
	
	4、聚集索引可以是主索引也可以是辅索引
主索引

​ 在数据文件的主码属性集上建立的索引称为主索引

	1、主索引可以是聚集索引,也可以是非聚集索引
索引列列值
视图
1、简单性

	看到的就是需要的,可以简化用户对数据的理解,还可以简化用户对数据的操作

2、安全性

	通过视图用户只能查询和修改他们看到的数据,其他的数据看不到也取不到

3、逻辑数据独立性

	视图可以帮助用户屏蔽真实表结构变化带来的影响

视图是从一个或者多个基本表中到处的虚表,数据库中只存放视图的定义,而不存放视图对应的数据

这些数据任然在原表中,并且视图在一定程度和是哪个能提供数据的逻辑独立性

1、数据库中只存储标准视图的定义,并不存储是标准视图的内容

2、如果在视图上创建了唯一聚集索引,则数据库中将保存该视图的内容

3、索引视图的数据源只能是基本表

4、索引视图引用的基本表必须与视图在同一个数据库中

5、通过视图进行数据查询时,最终都会转化为对基本表的查询

6、不能够在视图上定义AFTER触发器

索引视图
索引视图的数据被物理的保存在数据库中,因此建立索引视图会占用更多的存储空间
并且建有唯一聚集索引
提高效率
	1、处理大量行的连接和聚合

	2、许多查询经常执行连接和聚合操作

	3、决策支持工作负荷
不会提高
	1、具有大量写操作的OLTP系统

	2、具有大量更新的数据库

	3、不涉及聚合或联接的查询

	4、GROUP BY 不能提高
集合操作
  • 并操作 UNION (合并两个或多个查询语句的结果集,并且自动删除合并后结果集中的重复记录)
  • 交操作 INTERSECT
  • 差操作 EXCEPT
  • 去除重复 DISTINCT
  • 限制结果集前n%行 TOP N PERCENT
  • 限制结果集最后一行并行取值 TOP N WITH TIES
  • 公用表达式 WITH
约束
关系级别约束

​ 1、FOREIGN KEY 和 PRIMAEY KEY

列级约束

​ 1、NOT NULL

​ 2、UNIQUE

元组约束

​ 1、CHECK

事务
事物是构成数据库应用中一个独立逻辑工作单元的操作集合,也是访问并可能更新数据库中各种数据项的一个程序执行单元。数据库系统通过执行各种事物实现对数据库数据的操作,管理和执行事物是DBMS的基本功能,事物的四大特性为
原子性
	事务中包括的诸多操作为了保持一致性,要么都做,要么都不做
一致性
	事务执行结果从一个一致性到另一个一致性的变化
隔离性
持久性
事务调度
	事务调度就是为了保证事务的此四大特性

	1、串行调度:一个事务的所有操作都执行完后才开始执行另一个事务,不存在事务的交叉执行

	2、并发调度:不同事务操作的交叉执行称为并发调度,DBMS交叉执行多个事务的各个操作,以提高数据库系统的性能。
并发事物
调度
	两段加锁协议可以保证事物调度的可串性
提高事物并发度,改进数据库应用系统性能
1、尽可能使用行锁

2、设较低的事物等级

3、将大事物分成若干小事物
降低并发度,降低数据库应用系统性能
1、尽可能使用排它锁
guest账户
  • guest账户没有对应的登录账户名
  • 通过授权语句,可以启用数据库中的guest用户
  • 任何SQL Server登录账户都可以访问启用了guest用户的数据库
  • 所有数据库用户并不是继承数据库中guest用户的权限
元数据
元数据是关于数据的数据,或者叫做描述数据的数据。

元数据描述了数据的结构、内容、链和索引等项内容

在关系数据中,这种描述就是对数据库、表、列等其他对象的定义
支持度-置信度-关联规则挖掘
支持度
支持度=事物中同时包含X,Y的百分比
置信度
置信度=在事物已经包含X的情况下包含Y的百分比
函数
SQL Server 2008 支持三种用户自定义函数

1、标量函数 :可以出现在SELECT语句目标列中

	标量函数的返回值可以是除了timestamp类型以外的所有数据类型

2、内嵌表函数 : 必须放在SELECT语句的FROM子句中

3、多语句表值函数 : 必须放在SELECT语句的FROM子句中
分割表

水平分割表

水平分割表
查询数据需要使用UNION(并操作)
垂直分割表
查询数据需要使用JOIN操作
基于C/S和基于B/S

C/S

C/S
客户端/服务器端架构

	客户端

		包含一个或多个在用户的电脑上运行的程序

	服务端

		1、数据库服务器端

		2、Socket服务器端
B/S(三层)
1、表示层
	位于客户端,由Web浏览器实现,
2、应用层
	位于Web应用服务器,实现面向具体应用领域的业务规则
3、数据层
	位于数据库服务器,通过DBMS完成具体的数据存储和数据存取等数据管理功能
ADO对象模型
通过RecordSet对象可对几乎所有数据进行操作,所有RecordSet对象均使用记录(行)和字段(列)

进行构造,RecordSet的常用方法为

1、AddNew 创建一条新记录

2、Cancel 撤销一次执行

3、Close 关闭一个RecordSet 

4、Dleete 删除一条记录或一组记录
DFD (数据流图)
数据流图(DFD)是便于用户理解系统数据库流程图的图形表示,DFD建模方法的核心是数据流,他能精确的在逻辑上描述系统的功能,输入,输入和数据存储等,从而摆脱了其物理内容,数据流图是系统逻辑模型的重要组成部分
DFD的特性

	1、抽象性

		在DFD中具体的组织机构、工作场所,物质流等都已经去掉,只剩下信息和数据存储,流动,使用以及加工情况,所以描述的是抽象出来的数据

	2、概括性

		他把系统对各种业务的处理过程联系起来考虑,形成一个总体,可反映出数据流之间的概括情况
左边是输入

上边是控制

下边是机制

右边是输出

1、数据流

	箭头表示
	
	父图中描述的数据流必须在相应的子图中出现
	
	一个数据流,至少有一端是处理框

2、处理
	
	矩形表示
	
	一个处理至少有一个输入流和一个输出流

3、数据存储

	圆角矩形表示
	
	一个存储必须有流入的输入流,流出的输出流

4、外部项	

	外部项用平行四边形或者圆角框
	
	数据的提供者和使用者
IDEFO
组成

​ 1、箭头

​ 2、活动

​ 3、箭头不是强调流或顺序,而是强调数据约束

堆文件
如果数据库中的一个基本表中的数据量很少,且插入、删除、更新等操作频繁,该基本表最佳采用的文件结构是堆文件
数据字典
数据字典是对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。

数据字典一般有数据库管理系统本身管理和维护
五大约束
1、主键约束

2、外键约束

3、唯一性约束

4、缺省约束

5、检查约束
撤销操作
UNDO(撤销、回滚)
检查点操作
系统在执行检查点操作时,所有事物处理都被暂时中止,长时间的事物影响检查点的效果
数据库空间使用情况管理
1、重点监控空间增长较快的表

2、当硬件存储空间已经不能满足需求时,可以考虑将一些不再使用的数据转移到其他设备
算法
1、聚类算法
	聚类将一个集中的数据进行分组,使得每一组内的数据尽可能相似而不同组间的数据尽可能的不同,

	<u>与分类不同</u>:他强调一个组中的对象有较高的相似度,不同组中的对象之年差别很大,分类事先知道哪些类别可以分,聚类不知道事先有哪些类别可以分,需要有聚类算法来自动确定
2、分类算法
3、关联分析算法
4、回归预测算法
数据库的完整性
1、创建触发器

2、定义事务隔离级别
实体完整性
1、定义主码
游标
1、每个游标都有一个当前指针,当游标打开后,当前行指针自动指向结果集的第一行数据

2、如果在声明游标时未指定INSENSITIVE选项,则已提交的堆积表的更新都会反应在后面的提取中

3、关闭游标后,可以通过OPEN语句再次打开该游标
@@FETCH_STATUS的值
1、=0:FETCH语句成功

2、=-1:FETCH语句失败或行不在结果集中

3、=-2:提取的行不存在
未声明SCROLL
则NEXT是唯一支持的提取选项
文件结构
1、散列文件

	是利用散列存储方式组织的文件,亦称为直接存取文件

	<u>特点</u>:文件随机存放,记录不需要排序,插入、删除方便;存取速度快、不需要索引区,节省存储空间

	<u>缺点</u>:不能进行顺序存取,只能按关键字所及存取,且询问方式只限简单询问,会造成文件结构不合理
	
	不适合以下情况:
		1、基于散列域值得非精准查询(如模糊搜索,范围查询)
		2、基于非散列域进行的查询

2、堆文件

	无需建立索引,维护代价非常低,虽然堆文件的数据访问效率比较低,但在数据量很少时,定位文件记录的时间非常短

3、顺序文件

	文件信息存放在若干连续的物理块中,如果用户的查询条件定义在查找码上,则顺序文件是比较适合

	<u>优点</u>:简单,支持顺序春去和随机存取,顺序存取的速度相对较快

	<u>缺点</u>:文件不能动态增长,不利于文件的插入和删除

4、聚集文件

	将不同关系表中有关联关系的记录存储在一起,如果重要而频繁的用户查询经常需要进行多表连接操作,适合聚集文件
数据库的存取控制
1、自助存取控制主要通过GRANT,DENY,REVOKE来控制

2、在强制存取控制中,DBMS将实体划分为主题和课题两大类

3、仅当主体的许可级别大于或等于客体时,才能读取相应的客体

	仅当主体的许可级别等于客体的级别时,才能写相应的客体
数据库的重组和重构
重组
1、重组工作可能会对数据库数据的磁盘分区方法和存储空间进行调整

2、重组并不修改原设计的逻辑和物理结构

3、重组工作一般在数据库运行一段时间后进行,不应频繁进行数据库重组

4、重组工作中尤其注意频繁修改数据的表,因为这些表很容易出现存储碎片,导致效率下降,会进行磁盘碎片的整理
重构

1、重构工作班会改变数据库逻辑结构

2、重构工作一般会修改内模式(模式)

3、数据库重构一般是由DBA完成的,不需要应用程序开发人员参加

文件和文件组

1、一个数据库可以包含多个数据文件和日志文件

2、一个数据文件只能是一个文件组的成员

3、主要数据文件和次要数据文件都可以放在相同的磁盘上

4、一个数据库有且仅有一个主要数据文件

5、主要数据文件的大小最小只能是3M

主文件组是系统定义好的一个文件组,它包含主要数据文件和任何没有明确分配给其他文件组的其他数据文件,如果次要文件没有分配给其他文件组,也是可以放在主文件组中的
规范化和反规范化
规范化程度越高,数据冗余度就越低,然后会出现数据处理性能下降的问题,有时候为了提高查询效率,需要对数据进行反规范化,增加数据的冗余
ETL
ETL是实现数据集成的主要技术,即填充更新数据仓库的数据提取、转换、装载的数据采集过程
实体和联系转换成关系模式的规则

​ 1、每一个实体集转换为一个关系模式

​ 2、-对一,一对多,并入到多端的实体关系模式中

​ 2、每一个多对多联系转换成一个关系模式

XML

​ 在查询语句中加入 FOR XML子句实现以XML格式返回查询结果

云计算

​ 1、软件即服务

​ 互联网上的应用服务称为软件即服务,它是一种软件分配模式

​ 2、平台即服务

​ 通过网络提供操作系统和相关服务,而无需下载和安装

​ 3、基础设施即服务

​ 用于支持运作的设备对外提供服务

系统数据库
1、master

​ 1、记录了所有其他数据库的数据库文件的物理存储位置

2、madb

​ 1、SQL Server 实列作业信息存储在msdb数据库中

3、tempdb

​ 1、每次启动SQL Server 时,都会重新创建tempdb数据库

​ 2、tempdb用于存放临时信息,用户创建的局部和全局临时表均被自动放置在该数据库中

4、resource

​ 1、是个只读数据库,包好了SQL Server 中所有系统对象

机器学习
1、监督学习
2、无监督学习

​ 将未知类别的一组数据,采用聚类方法,分成不同的组

3、强化学习
分类测试
结果集

​ 1、训练集

​ 2、测试集

​ 3、验证集

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值