目录
写在前面:考数据库三级的宝贝们不用去看b站的课,很长,而且那个老师讲的有点乱还有一些错误;以下内容都是我根据官方指定用书的总结(有两章内容不太好总结,分数占比不高,大家可以在做题的过程中记忆),是从我的笔记文档直接复制过来的,也可以加我vx问我要文档和导图,总结的内容大家大致浏览几遍,对考试内容有大概框架就行,在刷题的过程中去记忆;如果可以的话大家可以看看教材上的MySQL代码,总结里面只包含了一点点代码;刷题才是硬道理!去做无忧题库!无忧题库!无忧题库!!重要的事情说三遍!祝看到这边笔记的宝贝们都能成功拿证
第一章:数据库应用系统开发方法
数据库应用系统生命周期:
软件生产与开发全过程的经典方法有:瀑布模型、快速原型模型、螺旋模型
瀑布模型:
1:项目规划>定义项目背景、目标、实现功能、性能指标、问题
2:系统分析>调研分析系统需求
3:总体设计>分析系统需求变成“如何做”
4:详细设计>细化总体设计结果,设计界面,选用算法等详细设计系统
5:编码调试和集成测试>用程序设计语言描述每个板块求解步骤,通过单元测试和集成测试,保证应用系统已经达到既定目标
6:运行维护阶段
快速原型模型:根据基本需求构建一个早期版本,之后在系统用户的参与下,不断完善得到满意的系统目标
1:快速分析
2:设计构造模型
3:运行原型
4:评价原型
5:改进原型
螺旋模型:不断迭代,直到产生满意产品
1:项目规划>确认功能与目标,选择可行的方案
2:风险评估>识别评估风险
3:工程实现>通过实施活动将需求转化为产品
4:用户评估>评价实现结果
DBAS是一类典型的面向数据管理和数据处理的复杂软件系统。
DBAS的生命周期由项目规划、需求分析、系统设计、实现与部署、运行与维护五个简本活动组成(参照瀑布模型),设计部分细分为:概念设计、逻辑设计、物理设计渐进迭代的开发数据库应用系统(引用快速原型模型和螺旋模型)。
DBAS生命周期五个基本活动:
1:规划与分析>目标是将数据库应用系统作为由计算机硬件、计算机软件和用户组成的复杂人机系统,从项目管理者角度,面向实际应用和用户需求,确定整个系统的目标和任务,进行可行性分析,制定合理的项目开发计划。
2:需求分析>用户在对DBAS在功能、性能、行为、设计约束等方面的期望和要求(希望系统做到什么)。
数据需求分析:从用户视图出发,分析各类数据项和数据结构,形成数据字典。数据字典包括:数据项(数据最小组成单位)、数据结构(若干数据项组成)、数据流、数据存储、处理过程(数据字典通过对数据项和数据结构来描述数据流和数据存储的逻辑内容)。
功能需求分析(DBAS系统要做什么):需求分析的核心环节,分为数据处理需求分析和业务规则需求分析。数据处理需求分析从数据访问和处理角度,明确各数据项所需进行的数据访问操作分析结果得到一个数据流图DFD。也可以从用户视图出发进行数据的处理需求分析结果得到一个事务规范。业务规则需求分析从DBAS的高层目标和整体功能出发,分析系统或者系统中一些大粒度子系统应具有的业务功能,明确用户或外部系统与DBAS的交互模式。
性能需求分析(DBAS系统要做到什么程度):分析系统的性能指标,数据操作响应时间、系统吞吐量、允许并发访问的最大用户数、每TPS代价值(划不划的来)。
其他需求分析:存储需求分析(初始数据库大小,数据库增长速度)、安全性需求分析、备份和恢复需求分析。
3:系统设计>有概念设计、逻辑设计、物理设计三个部分
概念设计:数据库概念模型设计和系统总体设计。数据库概念模型设计是根据需求分析阶段得到的那个需求规范说明文档,分析各类应用领域的设计特征以及相互关系,采用概念数据模型(比如ER模型)表示出来。系统总体设计就是依据系统规划和分析结果,确定软件硬件的总体框架,作为系统后续设计活动基础。
逻辑设计:数据库逻辑结构设计、应用程序概要设计、数据库事务概要设计。
物理设计:在具体的环境约束下,为数据库的逻辑设计符合要求的物理结构。包括数据库物理结构设计和数据可事务详细设计。
4:实现与部署>根据系统设计结果,组合成完整DBAS。主要工作内容:建立数据库结构、数据加载、事务和应用程序的编码以及测试、系统集成测试与试运行、系统部署
5:运行管理与维护>进行日常维护、监控分析、性能优化、系统优化。
影响DBAS性能的主要因素有:硬件资源、网络通信设备性能、操作系统环境、数据库逻辑设计和物理设计的质量配置、应用程序自身。
第二章:需求分析
需求分析的概念和意义
概念:通过对需求的调查、了解、观察和分析,采用已证实是有效的技术、方法或工具,对原始资料进行加工整理,得到有关目标系统需要实现的功能以及相互关系等一系列活动的集合。
需求获取的困难:软件的复杂性、可变性、不可见性。
需求获取的方法
面谈;实地观察;问卷调查;查阅资料。
需求分析过程
第一步:标识问题。
第二步:建立需求模型。
第三步:描述需求。分析结果主要由需求模型和软件需求说明书组成。
第四步:确认需求。审查小组会逐步确认功能需求、数据需求、性能、数据管理、其他需求。
需求分析的方法
结构化分析与功能建模主要方法有:DFD、IDEF0
DFD需求建模方法概念:从应用系统的数据流着手以图形方式刻画和表示一个具体业务中的数据处理过程和数据流,通过对业务流程的层层追踪和分析把要解决的问题清晰的展现以及描述出来。
DFD的四种基本元素:数据流、处理、数据存储、外部项(也称为数据源或数据终点)。
DFD图:自顶向下逐步细化的结构化分析方法表示目标系统。
DFD建模过程:明确目标,确定系统范围
建立顶层DFD图
建立第一层DFD分解图
开发DFD层次结构图
其他需求建模方法
(1)IDEF0方法基本元素:矩形框(活动)和箭头 控制
DFD与IDEF0比较:
相同:都是结构分析思想,自上向下逐步求精 机制
差别:1、IDEF0的箭头强调数据约束
2、IDEF0的箭头不仅表示数据流,还表示控制流和说明处理或活动实施方式的一些约束
3、元素组成不同。IDEF0模型结构更简单清楚,便于理解
第三章:数据库结构设计
数据库概念设计
数据库设计的任务:
主要任务是理解和获取应用领域中的数据需求,分析、抽取、描述和表示清楚目标系统需要存储和管理什么数据,这些数据具有怎样的属性特征以及组成格式,数据之间有怎样的依赖关系。
概念设计的依据:需求分析整理的说明书以及需求建模
数据库概念设计的过程:
- 明确建模目标
- 定义实体集:自下向上,从子系统入手,分类标识,概括命名。
- 定义联系:描述实体间的关联关系。
- 建立信息模型:ER模型
- 确定实体属性
- 对信息模型进行继承与优化
数据建模方法:ER模型、UML、IDEF1X
ER模型:用简单的图形直观的抽象出现实世界中客观对象的属性特征及其关系。
ER建模方法面向数据存储需求建模。仅从存储需求描述数据的属性特征及数据之间的关系。
实体:客观真实存在的事物
实体集:具有相同特征的实体的集合
属性:描述一个实体集共有的特征的名词
域:每个属性的取值范围
码:实体集中唯一标识每一个实体的属性
联系:现实世界中实体与实体之间的关系。可以分为三类>一对一联系(1:1),一对多联系(1:n),多对多的联系(m:n)。
ER模型通常描述了系统的全部数据存储需求,数据库要存储的数据范围、数据属性特征、数据之间的联系都将在这个模型中反映出来。
IDEF1X模型:跟IDEF0(功能建模方法)是一个系列的,IDEF1X是数据建模方法。
数据库逻辑设计
数据库逻辑设计的任务就是把数据库概念设计的结果(ER模型)转化为具体的数据库管理系统支持的数据模型。
按照DBMS支持的数据模型来组织和存储数据,最后得到DBMS可处理的数据库模式,为物理设计打下基础。
数据库物理设计
通概念设计和逻辑设计得到了规范化的关系模式,物理设计是将数据的逻辑描述转化为实现技术规范,其目标是设计数据存储方案,以便提供足够好的性能确保数据库数据的完整性、安全性、可恢复性。
逻辑设计只规定了逻辑结构,物理设计进一步考虑应用数据在实际数据库管理系统和操作系统平台下的具体存储结构和数据存取方式(也就是考虑数据库的物理结构)。
数据库的物理结构:
每个DB文件被看作逻辑记录的集合,每个逻辑记录被映射存储到特定磁盘块上也就是物理文件。
文件的逻辑关系由DBMS管理,物理结构要注意文件组织、文件结构、文件存取、索引技术。
索引技术:
是一种快速访问技术。将某些属性取值与物理存储地址联系起来,实现快速访问。方便,但是占用空间以及一定的维护代价。
索引技术分为两类:有序索引和散列索引。
有序索引也称文件索引机制。利用索引文件实现记录域取值到记录物理地址间的映射关系。
三列索引也称哈希索引机制。利用散列函数实现记录域取值到记录物理地址间的直接映射关系。
有序索引有多种形式:聚集索引就是按照你索引的顺序查找到的结果也是按照你查找的顺序。非聚集索引就是顺序会打乱。稠密索引就是每个查找码都是一对一,稀疏索引就是只有一部分内容有索引。主索引就是主码属性建立的索引。非主属性建立的索引就是辅索引。唯一索引就是确保所有列中不包含重复的值。
数据库物理设计:
目标:得到存储空间占用少、数据访问效率高、维护代价低的数据库物理模式。
设计环节:1、数据库逻辑模式描述
- 文件组织与存取设计
- 数据分布设计
- 确定系统配置
- 物理模式评估
数据库逻辑模式描述:1、设计面向目标数据库描述基本表(DBMA支持的关系表)和视图。
- 设计基本表业务规则。
DB文件组织的存取与设计:
事务分析步骤:确认事务访问哪些基础表,对基础表执行了哪些操作;估计各事务执行频率;汇总访问信息,设计更有效的文件组织和索引方式。
基本表选择合适文件结构的原则:
- 数据量少但操作频繁,该基本表可以采用对文件组织方式。
- 顺序文件支持基于查找码顺序访问,也支持快速的二分查找。
- 访问顺序很随机,建议使用散列文件。
- B-树和B+树属于动态索引,可以随着数据文件的内容不断调整,保证数据查询的性能不会恶化。
- 如果频繁执行多表链接的操作查询,可以考虑使用聚集文件。
数据分布设计:1、不同类型数据的物理分布>备份数据一般放在磁带中,应用数据、索引和日志使用频繁,必须放在支持直接存取的磁盘存储介质上。
2、应用数据的划分与分布>一个基本表中:可分为频繁使用分区(此区用多层索引)和非频繁使用分区(此区用单层索引);可按照某属性相同的分一块,不同的分另一块;可以用分布式数据系统(DDBS)中的数据划分,采用水平划分和垂直划分两种方法。
3、派生属性数据分布>派生属性就是可以根据其他属性推导出来的。可作为单独一列放在基本表中然后用触发器实时更新,也可以不出现在基本表中。
4、关系模式的去规范化>可以根据实际需要对数据库中的某些3NF、BCNF模式考虑是否可以降低其规范化程度,以提高查询效率。
其他物理设计环节:确定系统配置;物理模式评估。
第四章:数据库应用系统功能设计与实施
功能设计分为:总体设计、概要设计、详细设计
软件体系结构={构件、连接件、约束}。软件体系结构描述了软件系统的总体组织和层次划分、系统元素以及功能分配、全局控制、系统元素间的协调和交互、数据存取等。
软件设计过程:由设计(概要设计和详细设计)、实现、测试三部分组成。
概要设计是要建立软件系统的总体结构和模块间的关系,定义各功能模块接口,设计全局数据库或数据结构,规定设计约束,制定测试计划。
DBAS总体设计:
主要任务是依据系统规划和分析结果,特别是其中的技术可行性分析内容,以及系统需求规范,确定系统总体框架,作为后续设计活动的基础。
主要内容:DBAS体系结构设计
DBAS软件总体设计
软件硬件选型与配置设计
业务规则初步设计
DBAS体系结构设计:将系统从各个角度进行分解,划分为多个子系统,定义子系统应实现的功能。设计系统全局控制,明确各子系统之间的交互和接口关系。
DBAS常见的体系结构:(C/S)结构【客户/服务器体系结构】;(B/S)结构【浏览器/服务器结构】
B/S在适用Internet、维护工作量等方面比C/S 强;C/S运行速度更快、数据安全性强、人机交互更优。
DBAS软件总体设计:略
软硬件选型和配件设计:略
业务规则初步设计:就是从系统的角度的业务流程使之符合客户实际业务需要。
DBAS功能概要设计:
DBAS功能概要设计的目标时产生软件总体结构和软件功能模块
总体设计后,进一步细化模块/子模块,组成应用软件的系统-子模块-模块-子模块层次结构,并对这几个系统元素从结构、行为、数据三方面进行设计。
功能角度DBAS有四个层次:
用户体验 传递数据到后面 与DBMS交互 保存管理数据
关于这四层的概要设计:
表示层:主要是进行人机界面设计。
业务逻辑层:主要是梳理DBAS的各项业务活动,将其表示为各种系统构件。业务逻辑层要做表示层和数据访问层之间的桥梁。他的设计包括:结构、行为、数据、接口、故障处理、安全设计、系统维护与保障。保证高内聚松耦合原则。
数据访问层:主要是针对DBAS的数据处理需求设计用于操作数据库的各类事务。
数据持久层:略。
DBAS功能详细设计:
表示层详细设计:分为三步>初步设计、用户界面细节设计、原型设计与改进。
业务逻辑层详细设计:细化业务逻辑层概要设计。
数据访问层详细设计:略。
数据持久层详细设计:略。
应用系统安全架构设计:在功能设计过程中,安全性设计是贯穿始终的。
数据安全设计:主要有五个方面>安全性保护、完整性保护、并发控制数据库的备份与恢复、数据加密传输。
- 安全性保护:主要保护方式>用户身份鉴别、权限控制、视图机制
- 完整性保护:指数据库中数据的正确性、一致性、相容性。设置完整性检查,也就是对一些数据设置一些约束条件。完整性约束功能有完整性约束条件设置和检查两方面,前者是用户通过约束性语句给出,后者是DBMS负责完成。
- 数据库的并发控制:用封锁技术>某一时间内进制某用户对数据对象做某些操作以避免产生数据不一致的问题,分为排他锁(X锁)和共享锁(S锁)。
为了避免死锁,有如下原则:
A:按同意顺序访问资源。
B:避免事务中的用户交互
C:采用小事务模式,林良缩短事务的长度,减少占有锁的时间
D:尽量使用记录级别的锁,减少使用表级别的锁
E:使用绑定连接
- 数据库的备份与恢复
A:双机热备
B:数据转储
C:数据加密存储(对高敏感数据的安全保护)
- 数据加密传输:防止敏感数据在传输过程中被恶意拦截或丢失,有以下传输手段>:
A:数字安全证书
B:对称密钥加密
C:数字签名
D:数字信封
环境安全设计:
- 漏洞与补丁>保障操作系统运行的稳定是DBAS运行安全的基础。选择较高稳定性的操作系统的同时(UNIX、Linux等)定期检查系统的漏洞和补丁。
- 计算机病毒防护>主要病毒防护手段→安装杀毒软件;计算机实时监控;
- 网络环境安全>防火墙【网络之间访问控制】;入侵检测系统IDS【网络传输即时监控】;网络隔离【物理隔离和逻辑隔离】。
- 物理环境安全>设立专门存放硬件的空间,UPS提供不间断电源
- 制度安全设计>从管理角度出发,进行安全体系设计
DBAS的实施:
主要包括以下工作:
- 创建数据库→使用DBMS提供的数据定义语言或图形化工具创建数据库和数据库对象。
考虑的因素:a初始空间大小 b数据库增量大小 c访问性能
- 装载数据→组织数据入库是数据库实施阶段主要的工作。
具体的步骤:a筛选数据 b转换数据格式 c输入数据 d校验数据
3、编写与调试应用程序→编写应用程序要严格按照详细设计来
4、数据库试运行→功能测试和性能测试
a功能测试要测试应用程序是否满足设计要求。
b性能测试对于数据较大的中大型系统测试时只要先装载一小部分数据进行试运行;试运行阶段应该先检测DBMS的恢复功能,做好数据的转储和恢复工作。
第五章:UML与数据库应用系统
DBAS建模:
统一建模语言UML>UML是一种定义良好、易于表达、功能强大、通用的可视化建模语言,为软件开发的各个阶段提供模型化和可视化支持。
UML由语义(自然语言描述)和表示法(定义了可视化标准表示符号)两部分组成。
语义分四层:元元模型层>代表要定义的所有事物
元模型层>元元模型层的事务概念的实例,包括面向对象和面向组件的概念。
模型层>元模型层中概念的一个实例
用户模型层>这层中所有元素都是UML模型实例。
UML2.0有13种图:结构图(类图、对象图、复合结构图、包图、组件图、部署图)和行为图(用例图、交互图【顺序图、通信图、互概述图、时间图】、状态图、活动图)
在UML种,圆形矩阵表示活动;箭头线表示活动间的转换;其上的标注表示执行下一个活动的条件。
DBAS业务流程与需求表达:
业务流程与活动图:
活动图主要目的>陈述活动和活动之间的流程控制的转移
活动图主要用于描述系统、用例和程序模块中逻辑流程的先后执行次序、并行次序。
活动图内容>实心圆表起始点;实心环表结束点;分区可以将活动分配给对应角色;菱形表判断;粗实线表并行,箭头表示执行方向。
系统需求与用例图:
用例模型由系统(用例活动区域)、角色(与系统交互的外部实体)、用例(从用户角度观察系统功能)三部分组成。
系统>用长方形框表示。
角色>是一类人或者一类实体,会和系统进行交互。可以找到角色的通用化关系,构成超类,用空心箭头指向超类。
用例>代表一个完整的功能,是所有动作(系统的一次操作)的集合。用例有关联和关系。关联表示角色与用例之间可以通信用直线箭头表示;关系分为扩展、使用、组合三种。扩展关系就是加入新动作形成另一个用例;使用关系就是一个用例使用另一个用例;组合关系是把相关用例打包当成一个整体看待。
用例主要用在需求分析的范畴。
DBAS系统内部结构的表达:
系统内部结构分为静态结构和动态结构。类图表示静态结构,顺序图和通信图表示动态结构。
系统结构和类图:构造系统架构,类图底层给出属性和操作,高层给出主要职责。
属性:可见性 名称: 类型=缺省值{约束性}
可见性分三种:Public[+] Protected[#] Private[-]
名称:就是属性的名字
类型:属性的种类,是什么数据类型
缺省值:属性的初始值
约束性:列出该属性的可能取值
操作:描述类的动态行为>可见性 名称(参数表):返回类型表达式{约束性}
可见性分三种:Public[+]公有操作 Protected[#]受保护操作 Private[-]私有操作
名称:操作的名字
参数表:参数个数是任意的
返回类表达式:依赖于语言的描述
约束性:对此操作的约束
关系分为四种:关联,通用化,依赖,精化
- 关联关系>类与类之间是单向的就称为导航关联。聚集是一种特殊形式的关联,表示整体与部分的关系。聚集可以进一步划分为共享聚集和组成;共享聚集就是部分可以参加多个整体(空心菱形),组成就是整体拥有各部分(实心菱形)。
- 继承关系>将共同特性抽象成类别,然后增加特殊性进一步分类,用空心三角形连线
- 依赖关系>修改x会引起y的更改。
- 精化关系>同一事物的两种描述之间的关系。
系统结构与顺序图:说明对象的协作如何达到系统的目标。主要用于描述系统内对象之间的消息发送和接收序列。主要目的是表达对象之间如何沟通与合作。
系统结构与通信图:通信图显示了在交互过程中各个对象之间的组织交互关系以及对象彼此之间的链接。它着重表现对象之间的关系,使用序列号来确定消息及并发线程的顺序。
DBAS系统微观设计的表达:【聚焦单一事件】
微观设计与对象图:对象图描述特定时间点的所有对象在系统中的结构。对象图是类图的一个实例。
微观设计与状态机图:当一个对象或者事件有非常复杂的状态转换时,可以用状态机图来描述这个过程。主要是表现对象状态的改变或者转移
微观设计与时间图:一般用来辅助状态机图,展现时间对事件状态的影响。
DBAS系统宏观设计的表达:【聚焦元素联系】
宏观设计与包图:包图可以表达系统中的包、命名空间或不同的项目间彼此的关系。
宏观设计与交互概述图:用活动图为基础,连接的UML元素时交互图。
宏观设计与复合结构图:复合结构图适用于需要进行系统整合的情况,可以利用复合结构图绘制要开发的系统与外部系统之间的关系。
DBAS系统实现与部署的表达:
系统实现与组件图:组件图用来表示系统的静态实现视图,展现了一组组件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库等的系统建模。组件是逻辑设计中定义的概念和功能在物理架构的实现。典型情况下,组件时开发环境种的实现文件。组件间的相关性连接用一条虚线箭头表示一个组件只有和另一个组件在一起才有完整的意义。
系统实现与部署图:部署图用来描述系统中硬件和软件的物理配置情况和系统体系结构。用结点表示实际的物理设备,并根据他们之间的连接关系,将相应的结点连接起来,并说明其连接方式。
第六章:高级数据查询
一般数据查询功能扩展:
- 使用TOP:用TOP谓词限制输出结果,得到前几行或者前百分之几的结果。
语法>TOP n [percent] [WITH TIES]
语法解释>TOP n就是前n行的数据;percent可要可不要,用percent就是指前百分之n的数据;WITH TIES就是指最后一行并列的结果也要显示出来。
使用方法>TOP...跟在select后面,要加上order by进行排序,不然结果没有意义。
- 使用CASE函数:实现分情况显示不同类型数据的目的,计算多条表达式然后返回结果为true的那一个。分为简单case函数和搜索case函数。
简单case函数语法>
CASE 测试表达式
WHEN 简单表达式1 THEN 结果表达式1(如果when满足,就输出then的内容)
WHEN 简单表达式2 THEN 结果表达式2
WHEN 简单表达式n THEN 结果表达式n
[ELSE 结果表达式n+1]
END
搜索case函数语法>
CASE 测试表达式
WHEN 布尔表达式1 THEN 结果表达式1(如果when满足,就输出then的内容)
WHEN 布尔表达式2 THEN 结果表达式2
WHEN 布尔表达式n THEN 结果表达式n
[ELSE 结果表达式n+1]
END
- 使用INTO保存数据到新表:select查询到的结果保存在内存中,在select中使用INTO就可以保存在指定的表中。
语法>SELECT 查询列表序列 INTO <新表名>
语法解析>通过查询的东西列出一个新的表,然后把查询到的结果放进新的表中。新表可以是永久表(存放在磁盘上),也可以是临时表(存放在tempdb数据库中)。
知识扩展>临时表可以分为局部临时表和全局临时表。局部临时表前面加“#”标识,它的生存期与创建此临时表的用户连接生存期相同,它只能在创建此临时表的当前连接中可以使用;全局临时表前面加“##”标识,全局临时表的生存期与创建此表的用户的连接生存期相同,并且在生存期内的所有连接中可以使用。
查询结构的并、交、差运算:
并运算:将多个查询语句结果进行合并,用UNION运算符实现。
UNION与JOIN连接操作不同,JOIN连接表是增加列的个数,UNION是增加行的个数。
语法>
SELECT 语句1
UNION[ALL]
SELECT 语句2
UNION[ALL]
SELECT 语句n
UNION[ALL]
语法解析>ALL会加上所有重复的结果,没有ALL的话会去掉重复的记录。
使用方法>使用UNION的表的列要一样,列中所有属性的语义要一样;数据类型可以兼容;产生的结果用第一个SELECT语句的列标题;用ORDER BY【IDSC是降序,ASE是升序】排序的话,需要那个列在select语句里面存在。
交运算:两个结果中都出现过的记录,用INTERSECT运算符实现。
语法>
SELECT 语句1
INTERSECT
SELECT 语句2
INTERSECT
SELECT 语句n
INTERSECT
注意>使用方法同UNION
差运算:返回第一个集合里面有但是第二个集合里面没有的数据,用EXCEPT实现。
语法>
SELECT 语句1
EXCEPT
SELECT 语句2
EXCEPT
SELECT 语句n
EXCEPT
注意>使用方法同UNION
相关子查询:
如果一个SELECT语句嵌套在SELECT DELETE UPDATE INSERT语句中,这个SELECT语句就是子查询,上面的就是主查询。
- 子查询进行基于集合的测试:
形式>WHERE 表达式 [NOT] IN(子查询)
注意>先执行子查询,子查询表示的结果再去执行主查询。子查询返回的实际上就是一个集合,外层查询就在这个集合上用IN做比较。
- 子查询进行比较测试:
形式>WHERE 表达式 比较运算符(子查询)
注意>子查询语句必须是返回单值的。
- 子查询进行存在性测试:
形式>WHERE [NOT] EXISTS(子查询)
注意>EXISTS谓词的查询是先执行主查询,再执行子查询。外层执行结果决定内层执行结果,外层结果数决定内层执行次数。
其他形式子查询:
- 替代表达式的子查询:在SELECT语句的选择列表中嵌入一个只返回一个标量值的SELECT语句,这个查询语句通常是通过一个聚合函数来返回一个单值。
2、派生表:将子查询作为一个表处理,这个由子查询产生的新表就被称为派生表。生成派生表之后,在查询语句中对派生表的操作和普通表是一样的。
其他一些查询功能:
- 开窗函数(分为排名开窗函数和聚合开窗函数)
它是可以用于分区或分组计算的函数,这些函数结合OVER子句对组内的数据进行编号、求和、求平均值等,可以对每个分区进行计算。
- 公共表表达式
将查询语句产生的结果集指定一个临时命名的名字,这些命名的结果集就称为共用表表达式。命名后的共用表表达式就可以在查询、插入、更新、删除语句中被多次引用。共用表表达式还可以包括对自身的引用,这种表达式成为递归共用表表达式。
第七章:数据库及数据库对象
创建及维护数据库:
1、SQL Server数据库概述:每个数据库在物理上和逻辑上都是独立的。
SQL Server将数据库分成两类>系统数据库和用户数据库
系统数据库是SQL Server数据库管理系统自动创建和维护的,这些数据库用于保存维护系统正常运作的信息。用户一般只有查询权。
用户数据库保存的是与用户业务相关的数据,创建的数据库也就是指这类数据库。
2、SQL Server数据库组成:SQL Server将数据库映射为一组操作系统文件,分为两类>数据文件和日志文件
a数据文件用于存放数据库数据,主要分为>主要数据文件(.mdf)和次要数据文件(.ndf)。
主要数据文件包含数据库的系统信息,也可以存放用户数据。每个数据库有且只有一个主要数据文件,大小不能小于3MB.
次要数据文件可以没有,也可以有多个。当某个数据库的数据量很大的时候可以创建多个次要数据文件以使每个文件建立在不同的磁盘上。
b事务日志文件(.ldf)用于存放恢复数据库的所有日志信息,每一个数据库都必须至少有一个日志文件。
c数据库储存空间分配规则:创建用户数据库的时候,model数据库自动被复制到新建用户数据库中,并且是复制到主要数据文件中;数据存储分配单位以及最小单位是数据页,一页8KB,页的大小决定一行数据最大大小;一行数据不可以储存在不同的页上,一页不能超过8*1024B.
- 数据库文件组:类似操作系统的文件夹,分为>主文件组和用户定义的文件组。
主文件组是系统定义的文件组,包含主要数据文件和没有明确表示分配给其他文件组的其他数据文件。系统表的所有页均分配在主要文件组中。
用户定义的文件组就是字面意思,它可以将文件组织起来方便管理和数据分配。日志文件不包括在文件组内,日志空间和数据空间是分开管理的;一个文件只存在一个文件组之下;一个文件添加到数据库中,是不可以将这些文件移动到其他文件组中的;如果文件组中有多个文件,则他们在左右文件被填满之前不会自动增长,而填满后这些文件会循环增长。
- 数据库文件属性:定义数据库的数据文件和日志文件,需要指定的信息包括:
a文件名及位置>文件名分为逻辑文件名和物理文件名。逻辑文件名是引用这个文件的时候写的那个名称,要满足SQL标识符规则;物理文件名十九有储存文件的路径以及物理磁盘文件名,要满足操作系统的命名规则。
b初始大小>不能小于model数据库主要数据文件大小。
c增长方式>默认是自动增长。
d最大大小>默认无限制,文件如果不限制增长就会一直耗尽磁盘大小才停止。
- T-SQL创建数据库:CREATE DATABASE
注意事项>没有指定日志文件名就用:databasename_log作为逻辑名和物理名;没有指定主要文件名就用databasename作为逻辑名和物理名;没有指定primary主文件组,那第一个创建的文件就是主要数据文件;如果没有指定主要数据文件的size,那就用model数据库主要数据文件的大小;次要文件或者日志文件没有指定大小就用1MB;默认数据文件自动增量就是1MB;日志文件默认增长比例为当前文件大小的10%,最小值是64KB;DEFAULT指定默认文件组。
- 修改数据库:对数据库的定义进行修改
扩大数据库空间>1:扩大数据库已有文件大小。2:为数据库添加新的文件
ALTER DATABASE 库名
ADD FILE:添加新的数据文件
MODIFY FILE:指定要修改的文件,一次智能更改一个属性
ADD LOG FILE:添加新的日志文件
收缩数据库空间>释放数据库未使用的空间
收缩整个数据库的大小:DBCC SHRINKDATABASE
NOTRUNCATE:数据库文件中保留释放的文件空间
TRUNCATEONLY:将文件中任何未使用军事放给操作系统
收缩指定文件大小:DBCC SHRINKFILE
EMPTYFILE:将文件里面的东西移到同一文件组的其他文件中,使这个文件为空,方便删除。
NOTRUNCATE:释放的文件空间保留在文件中
TRUNCATEONLY:文件中所有未使用的空间还给操作系统
添加和删除数据文件>通过往数据库中添加文件的方法扩大数据库空间,也可以通过删除文件的方法缩小数据库空间。
ALTER DATABASE 数据库名
REMOVE FILE 逻辑文件名
- 分离和附加数据库:这两个操作可以实现将数据库从一台数据库服务器移动到另一台数据库服务器,而不需要重新创建数据库的目的。
分离数据库是指将数据库从SQL Server实例中删除,但是保留数据文件和日志文件,这样可以让数据库的文件不受DBMS的管理,使得用户可以把数据复制下来放到另外的数据库服务器上去。
例子:EXEC db_detach_db:’Students’,’True’[分离数据库,跳过更新统计信息]
附加数据库是指将分离的数据库重新附加到DBMS上,可以附加到另一个SQL Server实例上。
例子:
CREATE DATABASE Students [附加之前分离的数据库]
ON (FILENAME=’F:/DATA/students1.mdf’)
FOR ATTACH[指定通过一组现有的操作系统文件来创建数据库,如果是FOR ATTACH_REBULID_LOG这个是只限于只能读写的数据库,没有日志文件就会重新产生日志文件]
架构:一个数据库对象的容器,可以存放基本表、视图、触发器等数据对象。架构名必须是唯一的,由特定的授权用户所拥有。一个数据库可以包含一个或多个架构,一个架构可以有零个或多个架构对象。
定义架构语法>CREATE SCHEMA 架构名 AUTHORIZATION 用户名
注意>如果没有指定架构名,架构名隐含为用户名
删除架构语法>DROP SCHEMA 架构名
分区表:将表中数据水平划分成不同的自己,这些数据子集存放在数据库的一个或多个文件组中。数据量大、数据分段、不同段使用的操作不同,就可以使用分区。
创建步骤>创建分区函数;创建分区方案;使用分区方案创建表。
创建分区函数>
CREATE PARTITION FUNCTION 分区函数名(分区函数数据类型)
AS RANGE [LEFT\RIGHT] →【边界值属于左边还是右边】
FOR VALUES(边界值)
创建分区方案>
CREATE PARTITION SCHEME 分区方案名
AS PARTITION 分区函数名
[ALL] TO 提供的文件组
索引:
创建索引>CREATE INDEX
删除索引>DROP INDEX
索引视图:
使用说明>很少跟新基础数据的;基础数据以批处理形式定期更新的;索引视图处理大量行的连接与聚合操作的表。
定义索引视图>
CREATE VIEW 索引视图名 WITH SCHEMABINDING
第八章:数据库后台编编址技术
存储过程:实际上是储存在数据库中工所有用户程序调用的子程序。
使用存储过程的好处:允许模块化程序设计;改善性能;减少网络流量;增强应用程序的安全性。
创建存储过程语法>CREATE PROCEDURE 存储过程名
执行存储过程语法>EXECUTE 存储过程名 参数
删除存储过程语法>DROP PROC 存储过程名
用户定义函数:
标量函数是指返回单个数据值的函数。
定义标量函数>CREATE FUNCTION 用户定义函数名称
调用标量函数>函数被拥有者和函数名
内联表值函数返回的是一个表,表的内容是查询语句的结果。
创建内联表值函数>CREATE FUNCTION 架构名 函数名
调用内联表值函数
创建多语句表值函数
调用多语句表值函数
删除用户自定义函数>DROP FUNCTION 函数名
触发器:特殊的存储过程,特殊在于不需要用户调用,而是自动触发执行。
使用场合>完成比check约束更复杂的数据约束;为保证数据库性能而维护的非规范化数据;可实现复杂的商业规则;触发器也可以评估数据修改前后的表状态,根据差异采取对策。
三种类型触发器>DML,DDL,登录触发器
创建触发器>CREATE TRIGGER
删除触发器>DROP TRIGGER
注意>一个表可以建立多个触发器,每个触发器可以由三个操作引发;AFTER型触发器可以在同一操作建立多个触发器,INSTEAD OF型触发器同一操作只能建立一个触发器;所有建立和更改数据库以及数据库对象的语句、所有的DROP语句都不允许在触发器中使用;通常不要在触发器中返回任何结果。
游标:
游标组成>
使用游标>
第九章:安全管理
安全控制概述:
数据库安全性是指保护数据防止不合法的使用而造成数据被泄露、更改和破坏。(数据被有意破坏)
数据完整性就是指数据的有效性和准确性。(数据被无意更改)
安全性确保用户被允许做想做的事情,完整性确保用户所做的事情是正确的。
数据库安全控制的目标:保护数据免受意外或故意的丢失、破坏、滥用。
数据库管理员负责数据库系统的全部安全。
数据库安全的威胁:
可用性的损失
机密性数据的损失
私密性数据的损失
偷窃和欺诈
意外损害
安全控制模型:一是要进入数据库系统要先通过应用程序的验证,二是合法的用户在数据库执行某项操作时DBMS还会验证用户是否具有该操作的权限,三是文件可能会备份或者设置操作权限。
授权和认证:认证是鉴定用户身份的机制。授权规则限制用户对数据的访问,同时也限制用户访问数据的行为。访问控制问题的两种解决办法:自主存取控制和强制存储控制。
自主存取控制非常灵活,用户对不同的数据对象具有不同的存取权限,而且没有固定的关于哪个对象具有哪些存取权限设置。强制存取控制就比较严格而且是分层的,对任意对象只有具有合法权限的才可以存取。
存取控制:
- 自主存取控制:
权限种类>一类是对DBMS进行维护的权限;一类是对数据库的对象和数据库进行操作的权限,这个又可以分为两类:语句权限(对对象增删改)和对象权限(对表、视图等增删改)。
用户分类>一类是系统管理员DBA;一类是数据库对象拥有者;一类是普通用户。
自主存取控制仅仅通过对数据存取权限来进行安全控制,而数据本身并没有安全标记。
- 强制存取控制:
强制存取控制中,DBMS将全部分为主体和客体两类。
主体代表实际用户和用户的各个进程,客体代表受主体操控的表、视图等等。
Label敏感度标记分为:绝密、秘密、可信、公开。主体Label成为许可证级别,客体Label称为密级。
强制存取控制机制就是对比主体Label和客体Label,最后确定主体是否能够读取客体。主体Label>客体Label则可以读取客体;主体Label=客体Label则可以写相应客体。实现强制存取控制首先要能满足自主存取控制。
四类安全级别:D(最小保护),C(自主保护),B(强制保护),A(验证保护)
审计跟踪:实质上是一种特殊的文件或数据库,系统在上面自动记录用户对常规数据的所有操作。审计跟踪对数据库安全有辅助作用。
统计数据库的安全性:统计数据库允许查询聚合类型信息,统计数据库安全系统用于控制对统计数据库的访问。
SQL Server的安全控制:
身份验证模式:
- Windows身份验证模式>SQL Server将通过Windows操作系统来获得用户信息,并对登录名和密码进行重新验证登录(无需提供登录名和密码);有Windows的安全系统集成在一起以提供更多安全功能。
- 混合身份验证模式>如果要非Windows用户也登上去,就要用这种混合模式,用户必须提供登录名和密码。
登陆账户:两类>一类是Windows网络账户,一类是SQL自身负责身份验证的登陆账户。
- 建立登陆账户CREATE LOGIN 登录名WITH PASSWORD FROM ...
- 修改登陆账户属性ALTER LOGIN(ENABLE[启用]/DISABLE[禁用])
- 删除登陆账户DROP LOGIN
数据库用户:登录账户之后要成为合法的数据库的用户才可以访问该数据库。
- 建立数据库CREATE USER
- Guest用户GRANT/REVOKE CONNECT TO guest[启用/禁用数据库的guest用户]
- 删除数据库用户DROP USER
权限管理:成为合法用户之后还只有查询权限,所以需要对不同用户授予不同的操作权限。
- 对象级别的权限:有六种>SELECT\INSERT\UPDATE\DELETE\REFERENCES\EXCUTE
GRANT 对象权限 ON 授予对象 TO 授予用户
DENY 对象权限 ON 拒绝对象 TO 拒绝用户
REVOKE 对象权限 ON 收权对象 FROM 收权用户
- 语句级别的权限:
GRANT 对象权限 TO 授予用户
DENY 对象权限 TO 拒绝用户
REVOKE 对象权限 FROM 收权用户
角色:具有相同权限的用户。管理员只需要划分不同的角色,然后将不同权限划分给不同角色就行。
角色分为:系统角色(固定服务器角色和固定数据库角色)和用户定义角色。
固定服务器角色>作用域属于服务器范围,这些角色具有完成特定服务器管理活动的权限。189页查看角色及权限。
添加成员:EXEC sp_addsrvrolemember ’登录名’,’角色名’
删除成员:EXECA SP_dropsrvrolemember’登录名’,’角色名’
固定数据库角色>作用域属于数据库级别,190页查看角色及权限。
添加成员:EXEC sp_addrolemember’角色名’,’用户名’
删除成员:EXEC sp_droprolemember’角色名’,’用户名’
用户定义角色>主要是为了简化用户在使用数据库时的权限管理。
- 创建用户定义的角色CREATE ROLE
- 为用户定义的角色授权
- 添加和删除用户定义的角色中的成员
- 删除用户定义的角色
Oracle的安全管理:
Oracle安全机制可分为:数据库级的安全控制(通过身份认证和授予用户相应系统权限保证),表级、行级、列级的安全控制(通过授予或回收对象特权保证)。
用户与资源管理:用户在Oracle可分为DBA用户(拥有全部系统特权)和普通用户(拥有DBA用户授予的系统特权)。
权限管理:
- 系统特权:Oracle有三种角色>connect只有查询数据字典和访问有权限的对象;Resource可以在数据库中建立关系表、视图、序列、索引、聚集、存储过程、存储函数、触发器、数据库链路;DBA具有所有特权。
- 对象特权:195页表
Oracle提供了审计功能,应用于安全性要求较高的场合,会记录操作信息。
第十章:数据库运行维护与优化
数据库运行维护阶段的主要任务是保证数据库系统的安全、可靠且高效率的运行。
维护的基本工作:
- 数据库的转储与恢复:针对各种数据指定合理的转储计划,定期对数据库的日志文件进行备份,保证数据库出现故障也可以恢复,而且要定期检查转储的数据并进行恢复测试。
- 数据库的安全性、完整性控制:通过权限管理、口令、跟踪以及审计等保证数据库的安全性,还要维护数据副本等等;及时修改完整性等;
- 检测并改善数据库的性能:检测数据库系统的运行、观察数据库的动态变化,出现故障就可以及时保护数据库;根据用户需求进行一定改进。
- 数据库的重组和重构:长期运行数据库使得数据库的存储空间比较零散,所以需要定期对数据库进行重组。适当调整数据库的模式和内模式。
运行状态的监控和分析:
监控分析是指管理员借助相应工具在数据库运行过程中检测数据库系统的运行状况,为系统安全运行和性能调优提供依据,并提出相应的改善措施等。
根据监控分析实现方法不同,监控分析机制分为两种:一种是自动监控机制,一种是手动监控机制。
- 自动监控机制就是由DBMS自己检测数据库运行情况,自动采取有效措施
- 手动监控机制是DBA关注数据库的动态变化采取措施
根据监控对象不同,监控分析机制分为两种:一种是对数据库架构体系的监控,一种是对数据库性能的监控。
1、对数据库架构体系的监控>主要监控的是空间的基本信息、空间使用率与剩余空间大小、空间是否具有自动扩展的能力、那些表的扩展将引起空间的扩展、段的占用空间与区间数。
2、对数据库性能的监控>主要监控内容是数据缓冲区的命中率、库缓冲、用户锁、锁与等待、回滚段、临时段使用情况、等待事件和共享池。
数据库存储空间管理:
存储结构一般分为逻辑存储结构和物理存储结构。
物理存储结构决定了数据库存储数据时的数据文件所占空间大小以及分布。
逻辑存储结构>数据库→表空间→段→区→数据块
数据库性能优化:
进行性能优化要先确定优化目标。
性能优化一般从以下几个方面考虑:
- 数据库运行环境与参数调整:从以下几个方面着手改变数据库参数,提高其性能。
a外部调整:CPU调整(增加CPU数量或减少进程数)、网络调整(调整网络设备)
b调整内存分配
c调整磁盘I/O:通过另I/O时间最小化来减少磁盘上的文件竞争带来的瓶颈
d调整竞争:修改参数以控制连接到数据库的最大进程数;减少调度进程的竞争;减少多线程服务进程竞争;减少重做日志缓冲区竞争;减少回滚段竞争。
- 模式调整与优化:完整性规范化会消耗很多资源,进行调整优化就要执行一些反规范化的操作:
a增加派生性冗余列:增加的列是由表中一些数据项计算而成,它的作用就是在查询时减少连接操作。
b增加冗余列:多个表中增加具有相同语义的列(非关键字段的列)。
c重新组表:多个表直接连成一张大表。
d分割表:具有独立使用能力的表可以适当拆分。有水平分割和垂直分割。
e新增汇总表:频繁的操作的数据放在汇总表中。
- 存储优化:
a物化视图
b聚集
- 查询优化:几种优化查询的常用方法
a合理使用索引
b避免或简化程序
c消除对大型表数据的顺序存取
d避免复杂的正则表达式
e使用临时表加速查询
f用排序来取代非顺序磁盘存取
g不充分的连接条件
h存储过程
i不要随意使用游标
j事务处理
- SQL性能优化工具
SQL ServerProfiler
数据库引擎优化顾问
第十一章:故障管理
故障管理概述:
故障类型>
- 事物内部的故障:分为预期的事物内部故障和非预期的事物内部故障。预期的可以通过将事务回滚撤销其对数据库的修改,从而是数据库回到一致性的状态;非预期的不能由事务程序处理,回复程序必须强行回滚事务,在保证该事务对其他事务没有影响的条件下,利用日志文件撤销其对数据库的修改,使数据库恢复到运行之前的状态。
- 系统故障(软故障):数据库在运行过程中由于硬件故障、软件或操作系统漏洞、突然停电等情况导致系统停止运转,所有正在运行的事务以非正常方式终止。这会导致易失性存储器内容丢失;容错对策时在重新启动系统之后,撤销所有未提交的事务,重做所有已经提交的事务,以达到容错目的。
- 介质故障(硬故障):数据库在运行过程中由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸使得数据库中的数据部分或全部丢失的一类故障;导致物理存储设备损坏、数据文件以及数据全部丢失;容错对策两种:一种是软件容错,一种是硬件容错。
软件容错是使用数据库备份和事务日志文件,通过回复技术,恢复数据库到备份结束时的状态,很有局限性。
硬件容错常用两种方法:一个是双物理存储设备,使用两个硬盘存储一样的东西,另一个是设计两套一样的数据库系统同步变化数据。
- 计算机病毒故障:病毒是一种恶意的计算机程序,会对数据库系统和计算机系统造成破坏。
所有恢复技术都是通过数据的冗余来实现!!!
数据转储(数据备份):DBA定期复制数据库数据转存到其他介质上
静态转储和动态转储:静态转储就是在转出过程中不可以对数据库有什么操作以保证数据的一致性;动态转储就允许转储操作和用户事务并发执行,动态转储不能保证数据的一致性。
数据转储机制:完全转储、增量转储、差量转储。完全转储就是对数据库中所有数据进行转储;增量转储只复制上次转储之后发生变化的文件或数据块;差量转储是最近一次数据库完全转储以来发生的数据变化就行转储。
三种转储机制配合:完全转储产生大量数据移动占用时间空间影响性能;完全转储+增量转储:避免完全转储的大量数据移动,它会先完全转储,之后再覆盖增量转储,恢复时间长出现问题转储就会失败;完全转储+差量转储:储存数据会更多但是操作简单时间短。
日志文件:
a日志文件概念:记录每个事务对数据库的修改操作
b日志文件作用:
- 事务故障恢复和系统故障必须使用日志文件
- 在动态转储方式中必须建立日志文件
- 在静态转储方式中也可以使用日志文件
c日志文件的格式与内容:
格式主要有两种>以记录为单位的日志文件和以数据块为单位的日志文件。
以记录为单位的日志文件主要内容有:事务标识(哪个事务)、操作类型、操作对象、更新前数据的旧值、更新后数据的新值。
以数据块为单位的日志文件主要内容有事务标识和被更新的数据块。
d写日志文件的原则:先写日志文件后写数据库;按照时间顺序写。
e检查点:
作用>最大限度减少数据库完全恢复时所必须执行的日志部分
检查点记录内容>建立检查点时刻所有正在执行的事务清单;这些事务最近一个日志记录的地址。
硬件容错方案:只介绍与数据库运行相关性最紧密的数据库存储保护技术、服务器容错技术、数据库镜像与容灾技术。
- 磁盘保护技术(防止磁盘损坏):RAID系统(廉价冗余磁盘阵列),连接在主机系统上作为其存储数据的介质,具有设备虚拟化的能力。两个冗余技术>镜像冗余(所有数据复制到其他设备上)和校验冗余(对成员磁盘的数据执行异或,得到校验值,并存放在另外的校验磁盘上)。RAID采用的方法>RAID1,RAID5,RAID10
- 服务器容错技术(防止服务器硬件异常):两台相同服务器,共享存储设备,中间用专用的网络进行检测,运行服务器出现问题,另一台就替补,叫做active-standby模式。备用服务器需要接管的资源是:共享储存资源、服务器IP地址。此容错技术资源浪费比较严重,服务器资源交换时耗时长,但适用性不错。
- 数据库镜像与数据库容灾:
引入数据库镜像原因:为了避免介质故障对数据库可用性的影响,许多数据库管理系统都提供了数据库镜像的功能。
数据库镜像介绍:自动把整个数据库或其中的关键数据复制到另一个磁盘上,不同磁盘有不同的数据服务器,他们实现相互数据备份,服务器之间彼此检测对方的运行状态,出现故障就迅速被另一台服务器接管,并能够继续提供服务。
分类:双机互备援模式和双机热备份模式。双机互备援模式是有两台工作机,都为信息系统提供支持,互相监视运行状况。一台出现异常时,另一台迅速接管其工作。双机热备份模式一台工作机一台备用机,备用机监视工作机,工作机出现故障,备用机就顶上来,保证信息系统能够不间断的运行。
SQL数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像的复制是一个备用的复制,不能直接访问,只用来进行错误恢复。
两种镜像运行模式:“高安全性模式”(镜像与主体尽可能同步)和“高性能模式”(镜像写入有滞后性)。
第十二章:数据仓库与数据挖掘
决策支持系统的发展:
操作型数据是指由企业的基本业务系统所产生的数据,操作型数据以及相应数据处理所处的环境(用于支持企业任务的环境),被称为联机事务处理环境(OLTP)。OLTP环境中的企业各种基本业务应用系统称为操作型系统。
决策支持系统DSS是综合利用大量数据,有机组合众多模型,通过人机交互,辅助各级决策者实现科学决策的系统。
基于数据仓库的决策系统:这种体系结构以数据仓库为核心,数据仓库将企业决策支持所需的数据集成在一起,构成一个集成的、一致而稳定的数据源。数据仓库是核心,决策支持系统是数据的需求者,数据分为原始数据(操作型数据)和导出数据(分析型数据)两类。
数据仓库技术概述:
数据仓库的主要目的在于根据决策者需求对企业的数据采取适当的手段进行集成,形成一个综合的、面向分析的数据环境,用于支持企业的信息型、决策型的分析应用。
数据仓库是一个面向主题的、集成的、非易失的、且随时间变化的数据集合,用来支持管理人员的决策。
典型的数据仓库的数据体系结构主要包括操作型数据、操作型数据存储、数据仓库和数据集市。
体系结构能能分为数据处理、数据管理、数据应用三个层次。
数据仓库的数据组织:
- 数据组织结构:此结构中的数据分为早期细节级、当前细节级、轻度综合级、高度综合级。
- 粒度:一般将数据综合级别称为粒度。粒度越大,表示综合程度越高,反之相反。
- 数据分区:分为系统层分区和应用层分区。
元数据:是描述数据的数据。描述了数据的结构、内容、链、索引等内容。数据仓库中,元数据分为技术型元数据和业务型元数据。
操作型数据存储(ODS):分为四类:ODS1;ODS2;ODS3
设计与建造数据仓库:
数据仓库设计需求与方法:数据仓库的数据组织是面向主题的。
数据仓库数据模型:一般划分为概念、逻辑、物理三级数据模型。概念模型是用于描述客观世界的对象以及属性的一种概念性工具;数据仓库的逻辑模型可以采用关系型模型,也可以采用多维数据模型,也可以通过关系模型来表示多维模型;物理模型就是逻辑模型在具体的数据存储平台上的物理定义,也就是逻辑模型在数据仓库的实现,主要包括物理存取方式、数据存储结构、数据存放位置和存储分配。
数据集成是将源自不同数据源的数据经过抽取、转换、清理、装载的等操作载入数据仓库的过程,是实施数据仓库的重要步骤。
ETL是实现数据集成的主要技术。
数据仓库的运行与维护:数据仓库的日常管理工作主要是包括操作型数据环境中新生成的数据的集成、载入、刷新数据仓库中的细节数据和导出数据、将过时的数据转移到磁带等存储设备上、清除不再使用的数据、对元数据进行管理;数据仓库的维护基本思路是:根据某种维护策略,在一定条件下出发维护操作,维护操作捕捉到的数据源中的数据变化,通过一定策略对数据仓库中的数据进行相应的更新操作,以保持两者的一致性。
维护策略分为:实时维护、延时维护、快照维护。
来源地址:https://blog.csdn.net/qq_57629191/article/details/129474871