计算机三级数据库

第一章:数据库应用系统开发方法

第一节:数据库基本概念

1 、数据:

1.1 、数据是数据库中存储的基本对象,是描述事物的==符号序列==

1.2 、计算机中数据分为两部分:临时性数据(内存中),持久性数据(磁盘中)

1.3 、数据有型(type)与值(value)之分,型:数据的类型,如整型、字符型等,值:给出了符合给定型的值

2、数据库

2.1、数据库—database,简称 DB,数据的集合,具有统一的结构形式并存于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享

第二节:软件工程与数据库技术

1 、 1968 年北大西洋公约组织提出“工程管理”概念。软件工程是用工程、科学和数据的原则与方法来开发、维护计算机软件的有关技术和管理方法。软件工程由==方法、工具和过程==三部分组成——软件工程三要素

2 、软件生存周期:一般来说,软件产品从定义开始,经过开发、使用与维护,直到最后退役的全过程称为软件生存周期

3 、数据库工程:数据库应用工程的开发是一项软件工程,但又有自己的特点,所以特称为“数据库工程”。数据库工程按内容可分为两部分,一部分是数据库设计,另一部分是相应的应用的设计与实现。数据库应用系统的设计开发必须有**软件过程模型作为指导。典型的软件开发模型有:瀑布模型、快速原型模型、螺旋模型**等。

第三节:DBAS(数据库应用系统)生命周期

1、参照软件工程中软件开发瀑布模型原理,DBAS 的生命周期由:==项目规划、需求分析、系统设计、实现与部署、运行管理与维护==等五个基本活动组成 。

​ 1.1、规划与分析:目标是面向实际应用和需求,确定整个数据库应用系统的目标和任务,从技术、操作和经济三个方面进行可行性分析,并制定合理的项目开发计划。主要工作内容是:

  • 系统规划与定义:任务陈述、确定任务目标、确定范围和边界、确定用户视图
  • 可行性分析:技术、操作、经济可行性及开发方案选择
  • 项目规划:项目团队、环境、活动,成本预算,进度计划

​ 1.2、需求分析:过程由需求获取、需求分析、需求描述与规格说明、需求验证等步骤组成。主要工作内容是:

  • 数据需求分析:描述用户需要组织的信息内容形成数据字典

  • 功能需求分析:描述系统做什么,数据处理需求分析、业务规则需求分析

  • 性能需求分析:描述系统应该做到什么程度,数据操作响应时间,系统吞吐量、硬件资源等

  • 其他需求:存储需求、安全性需求、备份与恢复需求

​ 1.3、系统设计:

  • 概念设计:数据库概念模型设计、系统总体设计
  • 逻辑设计:数据库逻辑结构设计、应用程序概要设计、数据库事务概要设计
  • 物理设计:数据库物理结构设计、数据库事务详情设计、应用程序详情设计

​ 1.4、实现与部署

​ 包含建立数据库结构,数据加载,事务和应用程序的编码及测试,系统集成、测试与运行,系统部署

​ 1.5 、运行管理与维护

​ 主要包括日常维护、系统监控与分析、系统性能调整、系统进化升级等。

2 、根据 DBAS 的软件组成和各自的功能,分为**数据组织与存储设计、数据访问与处理设计、应用设计三条设计主线,分别用于设计数据库、数据库事务和应用程序**。

3 、根据数据库系统三级模式结构,DBAS 设计阶段分为:**概念设计、逻辑设计、物理设计**三个步骤,每一步设计内容涵盖了三条主线

第二章:需求分析

第一节、需求分析

1 、需求分析的概念与意义

​ 需求是指用户对软件的功能和性能的要求。需求分析是在计算机系统的软件功能分配和软件设计之间起重要桥梁作用的一项软件工程活动。描述待开发的系统所需要完成的功能

2 、需求分析的特性

​ 软件功能的复杂性、需求的可变性、软件产品的不可见性。

3 、需求获取的方法

  • 面谈

  • 实体观察

  • 问卷调查

  • 查阅资料

4 、需求分析的过程

​ 4.1 标识问题:需求分析的第一步,通过对问题和标识获得的对所有求解问题及其运行环境的理解

​ 4.2 建立需求模型:目前在信息系统的需求分析中可使用**结构化分析模型或面向对象分析模型**。

​ 4.3 描述需求:需求、功能、信息、性能、环境、其他需求。

​ 4.4 确认需求:需求确认及评审。评审功能需求、数据需求、性能、数据管理及其他需求。

第二节 需求分析方法

结构化分析与建模方法(SAD):DFD建模、 IDEF 建模

1 、结构化分析任务:

​ 1.1建立分析模型。 SA 模型是描述软件需求的一组模型,主要包括: 功能模型、数据模型和行为模型。

​ 1.2 编写需求规格说明书。 SRS 是分析阶段编写的以文字为主的文档,主要内容包括:引言、信息描述、功能描述、行为描述、质量保证、接口描述以及其他需求等。

​ 1.3 结构化分析的指导细想。**抽象与分解**是结构化分析的主要指导细想。

2 、 DFD 需求建模方法

​ 2.1 数据流图(data flow diagram, DFD):DFD建模方法的核心是数据流(input -> process -> output),从应用系统的数据流着手以图形方法刻画和表示一个具体业务系统的数据处理过程和数据流。

在这里插入图片描述

​ 2.2 数据流

​ 数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。如订票单由旅客姓名、年龄、单位、身份证号、日期、目的地等数据项组成。由于数据流是流动中的数据,所以必须由方向,除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。

​ 2.3 数据源(终点):代表系统之外的实体,可以是人、物或其他软件系统

​ 2.4 对数据的加工(处理):加工是对数据进行处理的单元,他接受一定的数据输入,对其进行处理,并产生输出。

​ 2.5 数据存储:表示信息的静态存储,可以代表文件、文件的一部分、数据库的元素等。

3 、 DFD 建模过程

​ 3.1 具体建模过程及步骤:

  • 明确目标,确定系统范围:将用户对目标系统的功能需求完整、准确、一致的描述出来
  • 建立顶层 DFD 图:说明系统边界,即系统的输入和输出数据流,顶层DFD只有一张
  • 构建第一层 DFD 分解图:中间层的 DFD
  • 开发 DFD 层次结构图:底层 DFD,由一些不可分解的过程组成。
  • 检查确认 DFD 图:五条规则
    • 父图中描述过的数据流必须在相应子图出现。
    • 一个处理至少有一个输入流和输出流
    • 一个存储必定有流入的数据流和流出的数据流
    • 一个数据流至少有一端是处理框
    • 表达描述的信息是全面、完整、正确和一致的

4 、 IDEF 建模:由 IDEF0 ~IDEF14,IDEF1X 共 16 套组成,最常用的是 IDEF0~IDEF4

  • IDEF0:描述系统功能及其相互关系
  • IDEF1:系统信息及其数据之间联系
  • IDEF2:系统模拟,动态建模
  • IDEF3:过程描述及 获取方法
  • IDEF4:面向对象设计

面向对象分析与建模方法(OOAD):UML 用例建模

​ UML 方法采用面向对象思想建模,使用用例图来描述系统功能需求。用例图由系统、角色、用例三种模型元素及其之间的关系构成

第三章 数据库结构设计

一般分为:数据库概要设计、数据库逻辑设计、数据库物理设计。概念设计是数据库设计的核心环节,概念数据模型是对现实世界的抽象与模拟

第一节 数据库概念设计

1 、数据库概念设计的目标

  • 定义和描述应用领域设计的数据范围
  • 获取信息模型
  • 描述数据的属性特征
  • 描述数据之间的关系
  • 定义和描述数据的约束
  • 说明数据的安全性要求
  • 支持用的各种数据处理需求
  • 保证信息模型能转化成数据库的逻辑结构(即数据库模式)

2 、概念设计的依据及过程

  • 依据:数据库概念设计以需求分析的结果为依据。即需求说明书、DFD图以及在需求阶段收集到的应用领域中的各类报表等。
  • 结果:概念设计的结果是概念模型(ER)与概念设计说明书。
  • 过程:
    • 明确建模目标(模型覆盖范围)
    • 定义实体集(自底向上标识和定义实体集)
    • 定义联系(实体间关联关系)
    • 建立信息模型(构造 ER 模型)
    • 确定实体集属性(属性描述一个实体集的特征或性质)
    • 对信息模型进行集成与优化(检查和消除命名不一致,结构不一致等)

3 、E-R模型的表示:主码的属性名带下划线

在这里插入图片描述

第二节 数据库逻辑设计

三种主要的数据模型:层次模型、网状模型、关系模型。

关系模型就是用二维表结构来表示实体及实体之间联系的模型。关系模式由五部分组成:R(U,D,DOM,F)

R:关系名,U:组成该关系的属性名集合,D:属性中U中属性所来自的域,DOM:属性到域的映射,F:属性组 U 上的一组数据依赖

1 、关系数据库设计的核心:关系模式的设计

2 、关系模式的设计目标:按照一定的原则从数量众多而又相互关联的数据中,构造出一组既能较好的反应现实世界,而又有良好的操作性能的关系模式。

数据库设计步骤(新奥尔良法):需求分析—>概念结构设计(产物:E-R图)—>逻辑结构设计(产物:关系模式设计)—>物理结构设计

3、数据依赖:关系内部属性与属性的一种约束关系。函数依赖就是唯一确定的关系,多值依赖却不能唯一确定

数据依赖的类型:多值依赖(multivalued dependency,MD)数据依赖类型:函数依赖(function dependency,FD)(类似于函数 y = f(x), 当x的值确定后,y的值就能确定了。)

​ 3.1 平凡函数依赖与非平凡函数依赖

​ X—>Y:y函数依赖X

​ 平凡函数依赖:X—>Y,并且Y属于X的子集,例如:(学号,课程号)—> 学号

​ 非平凡函数依赖:X—>Y,并且Y不属于X的子集,例:(学号,课程号)—> 成绩

​ 3.2 完全函数依赖与部分函数依赖

​ 完全函数依赖:例如:(学号,课程号)—f—> 成绩单

​ 部分函数依赖:例如:(学号,课程号)—p—> 课程名

​ 3.3 传递函数依赖:X->Y, Y —> Z, 记作:X—传递—>Z. 例如:学号—>系名,系名—> 系主任

4 、候选码、主码、外码(外键)

  • 候选码:某属性值能唯一确定整个元组的值,则称该属性为候选码或候选关键字,候选码如有多个可以选其中一个作为主码(primary key)
  • 外码(外键):属性或属性组 X 不是关系模式R的码(既不是主码也不是候选码),但X是另一个关系模式的码,则称X是R的外部码,也称外码、外键(foreign key)

5 、数据规范化

​ 5.1 范式:关系模式满足的约束条件称为范式。根据满足规范化的程度不同,范式由低到高分为 1NF,2NF,3NF,BCNF,4NF,5NF.

  • 1NF:如果关系模式 R,其==所有属性都是不可再分的基本数据项==,则称为属于第一范式。要求数据库表中的字段都是单一属性的,不可再分,原子性。
  • 2NF:满足 1NF,并且每个非主属性完全函数依赖于主码,则称R属于第二范式。
  • 3NF:满足 2NF,并且R中的每个非主属性不传递依赖于 R 的主码,则称关系R是属于第三范式的。

第三节 数据库物理设计

1、物理设计概述

​ 物理数据库设计是==设计数据库的存储结构和物理实现方法==。目的:将数据的逻辑描述转换为实现技术规范,设计数据存储方案,以便提供好的性能并确保数据的完整性、安全性、可靠性。

2 、数据库的物理结构

物理设备上的存储结构与存取方法称为数据库的物理结构。数据库中的数据以==文件形式存储在外设存储介质上。一个文件在物理上可看作是存放记录的一系列磁盘块组成的,称为物理文件==。数据库的物理结构需要解决:文件组织、文件结构、文件存取、索引技术

3 、索引

索引(index)是数据库中独立的存储结构,其作用是提供一种无须扫描每个页面(存储表格数据的物理块)而快速访问数据页的方案。索引技术(indexing)是一种快速数据访问技术。

索引技术的关键:建立记录域值(如图书术语)到记录的物理地址(如页码)间的映射关系,即索引。索引能提高性能,但是有代价的。设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资源方面的代价。

4 、索引技术分类

  • 有序索引:索引文件机制,利用索引文件(索引记录组成)实现记录域(查找码,排序域)取值到记录物理地址间的映射关系。

    数据文件(主文件)和索引文件(索引记录或索引项的集合)是有序索引技术中的两个主体,数据文件常采用顺序文件结构

    • 聚集索引(索引项与数据记录排列顺序一致,索引顺序文件)和非聚集索引。一个数据文件只可建立一个聚集索引,但可建立多个非聚集索引。
    • 稠密索引(数据文件中每个查找码都对应索引里的记录)和稀疏索引(部分查找码的值对应索引记录)
    • 主索引(主码属性集上建立的索引)与辅索引(非主属性上建立的索引)
    • 唯一索引(索引列不包含重复值)
    • 单层索引(线性索引,每个索引项顺序排列直接指向数据文件中的数据记录)和多层索引(大数据量文件中的采用多层树形(B,B+树)索引快速定位)。
  • 散列索引:哈希(Hash)索引机制,利用散列函数实现记录域取值到记录物理地址间的直接映射关系。

5 、分布式数据库系统(DDBS)中的数据划分:水平划分与垂直划分

  • 水平划分:将基本表划分为多张具有相同属性、结构完全相同的子表,子表包含的元组是基本表中元组的子集
  • 垂直划分:将基本表划分为多张子表,每张子表包含的属性是原基本表的子集

第四章 数据库应用系统功能设计与实施

DBAS功能设计包括应用软件中的==数据库事务设计和应用程序设计==

功能设计过程一般被划分为:总体设计、概要设计和详细设计。而具体到数据事务设计部分,又可分成==事务概要设计和事务详细设计==

第一节 软件体系结构与设计过程

1 、软件体系结构

又称软件架构,软件体系结构={构件,连接件,约束}。软件体系结构是软件系统中最本质的东西。良好的体系必须是普适、高效和稳定的。软件体系结构有多种风格和类型,如分层体系结构、模型-视图-控制器 (MVC)体系结构、客户端/服务端体系结构。

2 、软件设计过程

2.1 软件开发由设计、实现、测试三个环节组成,设计有包含概要设计和详细设计。

2.2 概要设计的任务是进行软件总体结构设计,可采用层次结构图建立软件总体结构图。详细设计的任务是进行数据设计、过程设计及人机界面设计。

2.3 设计原则:模块化、信息隐藏、抽象与逐步求精。

2.4 软件设计可选用结构化设计方法、面向对象设计方法、面向数据设计方法等。

第二节 DBAS 总体设计

DBAS 总体设计的任务是确定系统总体框架,主要内容包括:DBAS 体系结构设计、软件体系结构设计、软件硬件选型与配置设计、业务规划初步设计

1 、 DBAS 体系结构设计

​ 将系统从功能、层次/结构、地理分布等角度进行分解,划分为多个子系统,定义各个子系统功能;设计系统的全局控制,明确各个子系统间的交互与接口关系。两种常见的 DBAS 体系结构:客户/服务器体系结构(C/S),浏览器/服务器体系结构(B/S)

2、软件体系结构设计

DBAS 软件包括操作系统、数据库管理系统、开发环境、中间件、应用软件(数据库事务和应用程序)。从需求分析出发分解成各个子系统,分配相应功能,定义相互间交互机制,完成子系统结构设计,将各个系统从功能上分成数据库事务模块(事务自身处理逻辑)与粒度大的应用程序模块(业务规则),确定全局控制和调用关系,可用==模块结构图(模块+调用+数据+控制+转接)==表示系统总体结构和分层模块结构。

3 、软件硬件选型与配置设计

规划分析阶段提出系统功能、性能及实现的约束,对软、硬件 做了评估和选择建议;需求对系统功能性能提出了具体要求。保证 DBAS 功能性能顺利实现,总体设计阶段需要对软硬件设备做出合理选择,并进行初步配置设计。

软硬件选型设计的内容:网络及设备选型;数据存储及备份方案;服务器选型;终端软件环境;软件开发平台和语言、工具;系统中间件及第三方软件选型。

4 、业务规则初步设计

任务:从系统的角度,规划 DBAS 的业务流程,使之符合客户的实际业务需要。

DBAS 的各项业务活动具有逻辑上的先后关系,可将它们表示成一个操作序列,并用==业务流程图==表示

第三节 DBAS 功能概要设计

在总体设计结构基础上,将 DBAS 应用软件进一步细化为模块/子摸快,组成应用软件的系统—子系统—模块—子摸快结构,并从结构、行为、数据三方面进行设计。

从功能角度,DBAS 系统通常划分为四个层次实现:表示层、业务逻辑层、数据访问层、数据持久层

1 、表示层概要设计

人机界面设计,影响系统易用性。目前第四代 WIMP(窗口、图标、菜单、指示器)与 Web 技术多任务处理技术相结合

设计原则:‘用户自助控制’;反馈及时上下感知;容错与错误恢复;界面标准常规;输出界面简洁交互及时

2 、业务逻辑层概要设计

设计原则:高内聚低耦合(各个模块之间是相互独立的,模块内部的业务流程是紧密的),即构件(模块)单一原则;构件独立功能;接口简单明确;构件间关系简单,过于复杂就细化、分解。

设计内容:结构、行为、数据、接口、故障处理、安全设计,系统维护和保障等。

3 、数据访问层概要设计

任务:针对 DBAS 的数据处理需求设计用于操作数据的各类事务。

事务概要设计核心在于辨识和设计事务自身处理逻辑,注重流程,不考虑与平台相关、具体操作方法和事务实现机制。

一个完整的事务概要设计包括事务名称、访问的关系表及其数据项、事务逻辑(事务描述)、事务用户(使用、启动、调用事务的软件模块和系统)

事务:事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)

事务的特性:原子性、一致性、隔离性、持续性。称为 ACID 特性

  • 原子性(atomicity):一个不可分割的工作单位
  • 一致性(consistency):从一个一致性状态变道另一个一致性状态
  • 隔离性(isolation):执行不能被其他事务干扰
  • 持久性(durability):指一个事务一但提交,它对数据库中数据的改变就应该是永久性的

4 、数据持久层概要设计:属于数据组织与存储方面的设计内容

第四节 DBAS 功能详细设计

1 、表示层详细设计

人机界面采用**原型迭代法**,三个步骤

  • 初步设计:设计人机交互命令系统并优化(总体设计)

  • 用户界面细节设计:如组织形式、风格、色彩等(概要设计)

  • 原型设计与改进(详细设计)

2 、业务逻辑层详细设计

设计各模块内部处理流程和算法、具体数据结构、对外详细设计接口等

第五节 应用系统安全架构设计

1 、数据安全设计五个方面

  • 安全性保护:防止非法用户对数据库的非法使用,避免数据泄露、篡改或破坏
    • 解决方法:用户身份鉴别、权限控制、视图机制
  • 完整性保护:保证数据源的正确性、一致性和相容性
    • 解决方法:设置完整性检查,即对数据设置一些约束条件(如实体完整性、参考完整性、自定义完整性)
    • 完整性约束条件作用对象:列(类型、范围、精度、);元组/记录(记录中各属性之间的联系约束)、关系/表(表与表之间的联系)三种级别。
  • 并发性控制:保证多个用户能共享数据库,并维护数据一致性。
    • 并发访问:事务在时间上重叠执行
    • 对用户多并发存取同一数据的操作可能导致数据不一致,破坏事务的隔离性,因此 DBMS 必须提供并发控制机制,并发机制是衡量一个 DBMS 性能的重要标志之一。实现数据库并发机制的常用方法是==封锁技术(上锁)==
    • 封锁(上锁):是指事务T在对某个数据对象(例如表、记录)进行操作之前,先向系统发出请求,对其加锁,加锁后,事务就对该数据对象有了一定的控制,在事务T释放它的锁之前,其他事务不能更新此数据对象
    • 基本锁类型
      • 排他锁(eXclusive lock, 简记为 X 锁),写锁,若事务T对数据对象 A 加上 X 锁,则只允许事务T读取和修改数据对象A,其他任何事务都不能再对 A 加任何类型的锁,直到T释放A上的锁。排他锁保证了其他事务在 T 释放A 上的锁之前不能再读取和修改 A
      • 共享锁(Share lock,简记为 S 锁),读锁,若事务 T 对数据对象 A 加上 S 锁,则其他事物只能再对 A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S 锁。共享锁保证了其他事务可以读 A,但在 T 释放 A 上的 S 锁之前不能对 A 做任何修改。
    • 避免死锁:死锁是两个或两个以上的事务之间的循环等待。设计==避免死锁的原则==:
      • 按照同一顺序访问资源(第一个事务提交或回滚后第二个事务进行)
      • 避免事务交互性
      • 采用小事务模式,缩短长度和占用时间
      • 尽量使用记录级别的锁(行锁),少用表级别的锁
      • 使用绑定连接,同一用户打开的两个或多个连接时可以相互合作
  • 数据备份与恢复:系统失效后的数据恢复,配合定时备份数据库,不丢失数据
    • 数据库恢复的基本原理:利用存储在系统其他存储器上的冗余数据(即数据备份)来重建
    • 数据库备份与恢复策略:
      • 双机热备(基于 active/standby 方式的服务器热备)
      • 数据转储(数据备份)
      • 数据加密存储(针对高敏感数据)
  • 数据加密传输:将一些高级的敏感数据通过一定的加密算法后传输,常见的数据加密传输手段:
    • 数字安全证书
    • 对称密钥加密
    • 数字签名
    • 数字信封

2 、环境安全设计

  • 漏洞与补丁:定期查找漏洞更新补丁
  • 计算机病毒防护:杀毒软件;实时监控
  • 网络环境安全:防火墙;入侵检测系统;网络隔离(逻辑隔离与物理隔离)
  • 物理环境安全:如防盗设施;UPS;温湿度报警器

第六节 DBAS 实施

DBAS 实施阶段主要包括一下工作:

1 、创建数据库

考虑因素:初始空间大小;数据库增量大小;访问性能(如并发数,访问频率)

2 、数据装载

步骤:筛选数据—转换数据格式—输入数据—校验

3 、编写与调试应用程序

4 、数据库系统试运行(功能测试与性能测试)

SQL server 中有五种约束,分别是主键约束、外键约束、唯一性约束、缺省约束和检查约束

第五章 UML 与数据库应用系统

第一节 DBAS 建模

1 、统一建模语言(UML):unified modeling language

UML 是一种基于面向对象的可视化的通用建模语言,该方法结合了Booch,OMT和 OOSE 方法的优点,统一了符号体系并从其他的方法和工程实践中吸收了许多经过实际检验的概念。 UML 只是一种建模语言,不是建模方法

​ 建模方法应包括建模语言和建模过程两部分:

​ 建模语言:提供这种方法用于表示建模结果的符号(图形符号:可视化)

​ 建模过程:描述建模时需要遵循的步骤。

2、UML 的组成

由语义(自然语言)与表示法(可视化标准符号)组成。

其语义定义在一个四层建模概念框架中:

  • 元元模型(meta-Meta model),代表要定义的所有事物。
  • 元模型(meta Model),UML 的基本元素,“事物”概念的实例
  • 模型层(modal):UML的模型,类模型或类型模型
  • 用户模型(user model):UML 模型的实例,对象模型或实例模型

UML 的五种视图:结构、实现、行为、环境和用例视图

第二节 DBAS 业务流程与需求表达

1 、业务流程与活动图

活动图主要描述系统、用例和程序模块中逻辑流程的执行次序,并行次序最适合描述系统或子系统的工作流程。活动图用于低层次程序模块的作用类似于流程图,但**活动图可以描述并行操作,而流程图只能描述串行操作。一张活动图中有且仅有一个起点,可以有多个结束点**。

2 、系统需求与用例图

系统需求:用户心中的真正期望。用例模型是把满足用户需求的所用功能表示出来的工具。用例模型由用例、角色、系统三部分组成

系统:各种用例的“黑匣子”;角色:与系统交互的人或其他实体;用例:完整功能所有动作(一次操作)集合

第三节 DBAS 系统内部结构的表达

1 、系统结构与类图

系统内部结构一般分为**静态结构和动态结构在 UML 中,用类图来描述系统静态结构,用顺序图和通讯图来表示系统动态结构。类图主要表达的是问题领域的概念模型。类图由类名、属性及操作组成。**类与类之间的关系:关联(聚集(共享聚集,组成或组合)),继承(或叫泛化),依赖,精化(或叫实现)

类图中的关系符号:

在这里插入图片描述

2、系统结构与顺序图

针对每一个特定用例,如何利用类图规范的对象来完成用例交付的任务,必须要利用顺序图。顺序图主要用于描述系统内对象之间的消息发送和接收序列。顺序图中所有的元素,都必须在类图中存在

3 、系统结构与通信图

通信图是交互图的一种,也称为协作图。通信图显示对象间组织交互关系和链接。不侧重交互顺序,用序列号来确定消息及其并发线程的顺序。顺序图强调时间,通讯图强调空间

第四节 DBAS 系统的微观设计的表达

1 、微观设计与对象图

系统设计中,需要考虑细节部分。 UML 中对于细节方面的内容可用对象图、状态机图及时间图来表达、分析和描述某个特定状态系统的运作情况。对象图是类图的实例描述特定时间中所有对象在系统中的结构,是一个**快照**

2 、微观设计与状态机图

状态图用来描述有关事件或对象的状态转移。状态图只能有一个起始状态,可有多个结束状态。状态间的转移由时间驱动

3 、微观设计与时间图

当状态的转换由时间因素决定的,使用时间图来描述状态的变化。描述时间驱动的状态转换,即当状态维持多少时间后转移。时间图中,整个矩形框就是一个生命线

第五节 DBAS 系统宏观设计的表达

1 、宏观设计与包图

宏观设计指将涉及的焦点放在研究比较大范围中的元素之间的联系。如包、命名空间、子系统等。一个良好的命名空间,便于开发人员理解,并使得各个命名空间之间能够松耦合,而命名空间内则可以高内聚的要求。包图表示系统中不同包、命名空间或不同项目彼此关系。也就是逻辑层次上与实体层次上的关系

2 、宏观设计与交互概述图

是**将活动图和顺序图嫁接在一起的图**。以活动图为基础,在控制流间连接交互图,从而将所有交互图关系呈现出来。交互概述图可以把不同的交互图结合在一张图中来表达。

3 、宏观设计与复合结构图

外部系统的整合关系着项目的成败。在项目开始前,最好将待开发的系统与外部系统的关系做一个初步的定义。复合结构图适用于==**系统间**的沟通接口==,适合做框架师在初期阶段评估系统复杂度的工具,也可以是系统维护的参考图

4 、系统实现与组件图

组件图用来表示==系统的静态实现视图==。用来展现一组**组件间的组织和依赖**,用与对源代码、可执行的发布、物理数据库等的系统建模。组件是逻辑设计中定义的概念和功能在物理构架中的实现。

5 、系统实现与部署图

部署图又叫配置图,描述系统中硬件和软件的物理配置情况与系统体系结构。部署图说明实体组件,如可执行程序,将如何部署到实际的计算机中。部署图要在项目进行集成测试前提供。

第六章 数据库及数据库对象

第一节 创建及维护数据库

1 、 SQL Server 数据库概述

SQL server的特色:保护数据库查询;在服务器的管理操作上花费更少的时间;增加应用程序的文件性;系统执行效能优化与预测功能

SQL server 中数据库的分类:系统数据库(自动创建)与 用户数据库(保存与用户业务有关的数据)

系统数据库分类:

  • master:所有系统级信息、元数据、端点、连接服务器和系统配置
  • msdb:代理服务调度报警和作业、记录操作员时使用保存此类信息
  • tempdb:用户保存临时对象和中间结果,每次启动会重新创建
  • model:所有数据库的模板,存放用户数据库公共信息
  • resource:只读数据库。在对象资源管理其中看不到

2 、 SQL server 数据库的组成

SQL server 将数据库映射为一组操作系统文件

数据文件:

  • .mdf:主要数据文件。只有一个,大小不得小于 3MB
  • .ndf:次要数据文件。只有 0 个或多个,可在一个或多个磁盘存放

日志文件:

  • .ldf:事务日志文件。至少有一个日志文件

数据库存储空间的分配:创建用数据库时,model 数据库被自动复制到新建库

数据存储的最小单位:数据页(page,简称页),1 页是一块 8kb的连续磁盘空间。页的大小决定了数据库表中一行数据的最大大小。行不能夸页存储

3 、数据库文件组

两种类型的文件组:

主文件组(PRIMARY):系统定义,包含主要数据文件和任何没有明确分配的其他文件组的其他数据文件,系统表所有页均分配在主文件组中。

用户定义文件组:在定义或修改数据库时用 FILEGROUP 关键字指定

注意:

  • 日志文件不在文件组中,日志空间与数据空间分开管理
  • 一个文件不可以是多个文件组成员
  • 若文件组包含多个文件,则在所有文件被填满后才会自动循环增长
  • 文件加入数据库中后,不能移动到其他文件组
  • 只能指定一个文件组为默认文件组

4 、数据库文件的属性

定义数据库的数据文件和日志文件所需信息:文件名及其位置(逻辑文件名,物理文件名),初始大小(不能小于 model 数据库主要数据文件的大小),曾长方式(可指定文件是自动增长(默认)),最大大小(文件增长的最大限制。默认无限制)

5 、用 T-SQL 创建数据库

语法说明:

  • PRIMARY:指定为主要数据库文件,没有指定时默认第一个文件是主要数据文件。
  • LOG ON:自动创建日志文件,大小为数据文件总和 25%或 512KB
  • NAME:逻辑文件名,唯一
  • FILENAME:物理文件名
  • SIZE:初始大小,.mdf(不小于3MB)大小不小于 model,.ndf默认为 1MB
  • MAXSIZE:最大大小,未指定则文件自动增长到磁盘满。
  • UNLIMITED:增长无限制,一般指定为日志文件2TB,数据文件 16TB 。
  • FILEGROWTH:指定文件自动增量,不超过 MAXSIZE,默认数据文件1MB,日志文件为当前文件的 10%
  • FILEGROUP:文件组逻辑名,唯一,不能是系统名
  • DEFAULE:指定该文件组为默认文件组

6 、修改数据库

6.1 收缩数据库空间:释放数据库中未使用的空间,文件的收缩从末尾开始

自动收缩:AUTO_SHRINK,默认 false

手工收缩:收缩数据库中某个文件大小;按比例收缩整个数据库大小。

收缩整个数据库大小:DBCC SHRINKDATABASE

收缩指定文件大小:DBCC SHRINKFILE

6.2 添加和删除数据库文件

  • 扩大指定文件的大小:

​ ALTER DATABASE 数据库名

​ MODIFY FILE(NAME = student_data, SIZE = 8MB)

  • 添加新的数据文件:

​ ALTER DATABASE STU_DB

​ ADD FILE(NAME = student_data2), FILENAME = ‘E:\Data\student_data2.ndf’, SIZE = 6MB , FILEGROWTH = 0)

  • 删除数据库文件:

​ ALTER DATABASE STU_DB

​ REMOVE FILE student_log1

注意:添加文件时,每个文件组中的数据文件按比例填充,日志文件是依次增加的。文件为空才能删除

7 、分离和附加数据库

分离数据库:实现将数据库从一台数据库服务器移到另一台,不需要重建。从实例中删除,不删除数据文件和日志文件,保持了数据文件和日志文件的完整一致。使用sp_datach_db系统存储过程实现。如 EXEC sp_datach_db ‘student’, ‘true’

附和数据库:将分离的数据库重新附加到数据库管理系统中。必须指定主要数据文件的物理存储位置和文件名。

CREATE DATABASE … FOR ATTCH|ATTCH_REBUILD_LOG , 如 CREATE DARABASE students On ( FILENAME = ‘F:\Data\Students_data1.mdf’)

第二节 架构

架构(schema ,也称模式),是数据库下的一个逻辑命名空间,是数据库对象的容器,一个数据库包含一个或多个架构,同一个数据库内架构名唯一

定义架构:CREATE SCHEMA [ <架构名> ] AUTHORIZATION <用户名>

删除架构:DROP SCHEMA [ <架构名> ]

第三节 分区表

1 、概念:分区表是将表中的数据按水平分割成不同子集,并将数据子集存储在数据库一个或多个文件组中。物理上将大表分成几个小表,逻辑上还是一个大表。合理使用分区能提高数据库性能。是否创建分区取决于当前数据量大小,以及将来数据量,还取决于表中数据的操作特点。表包含(或将包含)以多种不同方式使用的大量数据。数据是分段的,如以年份分割。

2 、创建分区表三步骤:

  • 创建分区函数:告诉 DBMS 以什么方式进行分区。create partition function
    • 实例:CREATE PARTITION FUNCTION myPF1(int) AS RANGE LEFT FOR VALUES (1, 100, 1000)
  • 创建分区方案:作用是将分区函数生成的分区映射到文件组中。create patition scheme
    • 实例:CREATE PATTITION SCHEME myPS1 AS PARTITION myPF1 TO (test1fg, test2fg, test3fg, test4fg)
  • 使用分区创建表

完整实例:CREATE PARTITION FUNCTION myPF1(int) AS RANGE LEFT FOR VALUES (1, 100, 1000) GO CREATE PATTITION SCHEME myPS1 AS PARTITION myPF1 TO (test1fg, test2fg, test3fg, test4fg) GO CREATE TABLE PartitionTable (Coll int, Col2 char(10) ON myPS1(Coll) )

第四节 索引

1 、创建索引的语法

CREATE [ UNIQUE ] [ CLUSTERED ] [ NONCLUSTERED ] INDEX index_name ON table_name ( column_name …. ) [ WITH FILLACTOR = x ]

UNIQUE 表示唯一索引,可选

CLUSTERED 、 NONCLUSTERED 表示聚集索引还是非聚集索引

可选 FILLACTOR 表示填充因子,指定一个 0 到 100 之间的值,该值指示索引页填满的空间所占的百分比

2 、删除索引

DROP INDEX ‘tablename.indexname | viewable.indexname’ [, … n]

[, … n] :表示可以指定多个要删除的索引

‘tablename.indexname | viewable.indexname’:索引列所在的表或索引视图和要删除的索引名

第五节 索引视图

1 、概念: 标准视图也称虚拟表,返回结果集与基本表一致。标准视图的结果集不永久存放。建立唯一聚集索引的视图称为索引视图,也称为物化视图。建立索引后,视图的结果集存放在数据库中。对基本表的修改会反映到索引视图存储的数据中。

2 、建立索引视图的场合:

很少更新基础数据,索引视图效果更好。若基础数据以==批处理==形式定期更新,且主要是作为**只读数据**进行处理,可以考虑在更新前删除所有索引视图,然后重建,提高更新性能。

可以提高查询类型性能场景:

  • 处理大量行的连接和聚合
  • 许多查询经常执行的连接和聚合操作

不会提高查询性能场景:

  • 具有大量写操作的 OLTP 系统
  • 具有大量更新操作的数据库
  • 不涉及聚合和连接的查询
  • GROUP BY 具有高基数度的数据聚合

3 、定义索引视图

创建聚合索引前视图必须符合的条件:定义索引视图时,视图只能引用基本表,不能是其他视图。引用的所有基本表和视图是处于同一数据库,所有者(拥有者)相同。必须用==SCHEMABINDING==选项建视图。视图中表达式引用的所有函数必须确定。对视图建立的第一个索引是唯一聚合索引,之后在创建其他索引。

语法:CREATE VIEW ;WITH SCHEMABINDING ; CREATE UNIQUE CLUSTERED INDEX …

第七章 高级数据库查询

第一节 一般数据查询功能扩展

1 、 SELECT 语法:

SELECT

[ DISTINCT ] : 取出查询结果中重复的行数据(去重)

[TOP n]:取查询结果集的前N行

select_list

[ INTO new_table ] : 将查询结果创建到新表

[ FROM table_source] :查询的数据表

[ WHERE search_condition] : 查询的条件

[GROUP BY group_by_expression] : 对查询结果进行分组

[HAVING search_condition] : 进行聚合查询的条件

[ORDER BY order_expression [ ASC | DESC] ] : 对查询结果进行排序 asc:升序,desc: 降序

[COMPUTE expression] : 对查询结果集进行汇总

2 、使用 TOP 限制结果集

TOP n [ percent] [WITH ties]

  • Top n: 前n行
  • top n [precent] : 前 n%行
  • [WITH ties] :包括最后一行取值并列的结果

3 、使用 CASE 函数

分情况显示不同类型的数据。 case 函数是一种多分支表达式。两种类型:简单 case 函数,搜索 case 函数

语法:

CASE

WHEN 布尔表达式 1 then 结果表达式 1

WHEN 布尔表达式 2 then 结果表达式 2

…….

WHEN 布尔表达式 n then 结果表达式 n

[ELSE 结果表达式 n+1]

END

4 、将查询结果保存到新表中

SELECT 查询列表序列 INTO <新表名> FROM 数据源……(其他行过滤、分组语句)

注意:表名前加 # 为局部临时表,##为全局临时表,若只有表名时为永久表

第二节 查询结果的并、交、差运算

1 、并运算

并运算(UNION):将多个查询结果合并为一个结果集

语法:SELECT 语句 1 UNION [ALL] SELECT 语句 2 UNION [ALL] ……

注意:

  • 要进行合并的查询,select 中列数必须相同,语义相同
  • 每个相对应列的数据类型**隐式兼容**,如char(20) 与 varchar(40)
  • 合并后结果采用第一个 select 语句的列标题
  • 若需排序,分组,则 order by | group by 语句写在最后一个 select 之后,且排序的语句是第一个 select 中的列名

2、交运算

返回同时在两个结果集合中出现的记录

语法:SELECT 语句 1 INTERSECT SELECT 语句 2 INTERSECT …. SELECT 语句 n

3、差运算

返回第一个数据集中有而第二个数据集中没有的记录

语法:SELECT 语句 1 EXCEPT SELECT 语句 2 EXCEPT …. SELECT 语句 n

第三节 相关子查询

子查询是一条包含在另一条 SELECT语句里的 SELECT 语句。外层的 SELECT 语句叫外层查询,内层的 SELECT 语句叫内层查询(或子查询),子查询总是写在圆括号中

包括子查询的SELECT 语句主要采用以下格式中的一种:

  • WHERE 表达式 [NOT] IN (子查询) :返回的结果集 是否在 子查询结果集的范围内
  • WHERE 表达式 [ANY | ALL] (子查询):任意一个或所有的结果集在 子查询范围内
  • WHERE [NOT] EXISTS (子查询):是否存在于子查询范围内

第八章 数据库后台编程技术

第一节 存储过程

1、基本概念

使用T-SQL语言编写代码时,有两种方式存储和执行代码

  • 在客户端存储代码,通过客户端程序或 SQL 命令向 DBMS 发出操作代码,由 DBMS 将结果返回给用户程序。
  • 以子程序的形式将程序模块存储在数据库中,供有权限的用户用过调用反复执行。

存储过程:存储在数据库中供所有用户程序调用的子程序

存储过程分为三类:

  • 系统存储过程
  • 用户自定义存储过程
  • 扩展存储过程:是 SQL server 可以动态装载并执行的动态链接库(DLL)。扩展存储过程使您得以使用像 C 这样的编程语言创建自己的外部例程。对用户来说,扩展存储过程与普通存储过程一样,执行方法也相同。

存储过程的优点:

  • 极高的执行效率(批处理)
  • 增强代码的重用性和共享性
  • 使用存储过程可以减少网络流量
  • 使用存储过程保证安全性
  • 在大型数据库中,应用程序访问数据库的最主要方式就是存储过程
  • 存储过程可以**在系统启动时自动执行**

2 、创建、执行和删除存储过程

存储过程的定义包含两个主要组成部分:

  • 过程名称及其参数的说明
  • 过程的主体(其中包含执行过程操作的 Transact—SQL 语句)。

创建存储过程的语法:

CREATE PROCEDURE procedure_name [;number] // 定义过程名称

[{@parameter data_type} // 定义参数的类型

[VARYING] [ = default ] [OUTPUT]] // 定义参数的属性

[,…n1]

[WITH {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}]

[FOR REPLICATION] // 执行的操作

AS sql_statement[,…n2]

执行:EXEC[UTE] procedure_name

删除:DROP PROCEDURE 过程名

第二节 用户定义函数

用户定义函数:类似于编程语言中的函数,其结构与存储过程类似,但函数必须有一个 RETURN子句,用于返回函数值。

两类用户定义函数:标量函数和表值函数。前者返回单个数据值,表值函数返回一个表。

注意:调用标量函数时需要提供函数拥有者名和函数名;可以在任何出现表达式的 SQL 语句中调用类型一致的标量函数。

删除自定义函数:DROP FUNCTION 函数名

第三节 触发器

1 、概念

触发器:特殊存储过程,在对表中的数据进行 UPDATE、 INSERT、 DELETE 操作时**自动**触发执行,常用于保证业务规则和数据完整性,增强数据完整性约束能力。

SQL server 2008 支持的三种类型的触发器:DML 、 DDL 、登录触发器

2、创建触发器:

CREATE TRIGGER trigger_name ON {table | view } [WITH ENCRYPTION] { FOR | AFTER | INSTEAD OF } { [INSERT] [,] [UPDATE] [,] [DELETE]} AS sql_statement[…n]

参数说明:FOR 或 AFTER:后触发型,操作、约束检查完成后触发

INSTEAD OF :前触发型,数据操作语句最多定义一个触发器。执行触发器而非引发语句。若满足完整性约束则需要重新执行这些数据操作

注意:一个表可建多个触发器,每个触发器可由三个操作触发。 ALTER 类型同一操作上建立多个触发器INSTEAD OF 类型同一操作上建立一个触发器。所有建立和更改数据库以及对数据库对象的语句,DROP 语句不允许在触发器中。触发器不要返回任何结果。

3 、删除触发器:DROP TRIGGER 触发器名

第四节 游标

游标:实现对 SELECT 结果集的逐行处理

1 、游标的组成

游标结果集(SELECT 返回的结果集)与游标当前行指针(指向结果集中某一行)

特点:定位特定行;从当前位置检索一行或多行;支持当前行数据修改;对修改结果提供不同级别的可见性支持

2 、使用游标

​ 2.1 声明游标:DECLEAR cursor_name[1] CURSOR FOR variable_name[,….n]

参数说明:[1] INSENSTITIVE:创建临时副本,对临时的操作,否则对基本表;SCROLL:范围,否则只支持 NEXT;[2]READ ONLY : 禁止更新 UPDATE 更新列指定列或所有

​ 2.2 打开游标:OPEN cursor_name

​ 2.3 提取数据:FETCH [1] FROM cursor_name [INTO @ variable_name[,….n]]

​ 2.4 关闭游标:CLOSE cursor_name 可以再次打开

​ 2.5 释放游标:DEALLOCATE cursor_name 释放分配给游标的所有资源

第九章 安全管理

第一节 安全控制概述

安全性:保护数据以防止不合法用户故意造成破坏(确保用户被允许做其想做的事情)

完整性:保护数据以防止合法用户无意中造成的破坏(确保用户做的事情是正确的)

1 、数据库安全控制的目标:保护数据免受意外或故意的丢失、破环或滥用

2 、数据库安全的威胁:安全计划需要考虑:可用性损失,机密性数据损失,私密性数据损失,偷窃和欺诈,意外的损害。

3 、安全控制模型:身份验证(用户),操作权限控制(数据库应用程序与数据库管理系统),文件操作控制(操作系统),加密存储与冗余(数据库)

4 、授权与认证:认证是一种鉴定用户身份的机制。授权是将合法访问数据库或数据对象的权限授予用户的过程。包括认证用户对象的访问请求。 DBMS 通常采用自主存取控制和强制存取控制两种方案来解决安全控制问题。

第二节 存取控制

1 、自主存取控制:又称自主安全模式,通过 SQL 的 GRANT,REMOVE,DENY 语句来实现。

权限种类:维护权限与操作权限(语句权限与对象权限)

用户分类:系统管理员(SA)、数据库对象拥有者、普通用户

2 、强制存取控制:为避免自主存取模式下数据的“无意泄露”,采取强制存取控制。 DBMS 将全部实体分为主体客体两大类。

主体:系统活动实体,实际用户和进程

客体:被动实体,受主体操纵,包括文件基本表、视图

对于主体和客体,DBMS 为他们的每个实例指派了一个**敏感度标记**

敏感度标记:DBMS 指派,主体为许可证级别,客体为密级。分绝密、秘密、可信和公开等若干级别。

强制存取控制遵循规则:

  • 仅当主体许可证级别**大于或等于客体密级,主体可以读取**相应客体
  • 仅当主体许可证级别等于客体密级,该主体才能****相应客体

第三节 审计跟踪

审计跟踪实质上是一种特殊的文件或数据库。系统自动记录用户对常规数据的所有操作。审计跟踪对数据安全有辅助作用

第四节 统计数据库的安全性

统计数据库提供基于各种不同标准的统计信息或汇总数据。统计数据库安全系统用于控制对统计数据库的访问。统计数据库允许用户查询聚合类型的信息。如总和、平均等,但不允许查询个人信息

第五节 SQL server 的安全控制模式

1 、身份验证模式

  • Windows 身份验证模式:SQL server 通过 Windows 操作系统获得用户信息,验证登录名和密码。
  • 混合身份验证模式:Windows 授权用户和 SQL 授权用户可以登录。

2 、登录账户

  • SQL server 自身负责身份验证的账户,内置系统账户与用户自己创建的
  • 登录到 SQL server 的 Windows 网络账户,可以是组账户或用户账户

建立登录账户:CREATE LOGIN login_name

修改登录账户属性:ALTER LOGIN login_name

删除登录账户:DROP LOGIN login_name

3、数据库用户:用户有了登录账户,只能连接到 SQL 服务器,并不具备访问数据库的权限

映射:让登录账户成为数据库用户的操作称为映射。一个登录账户可以映射为多个数据库账户。默认情况下,新建数据库只有一个用户: ddo,数据库用户的拥有者

建立数据库用户:CREATE USER user_name[|FOR|FROM] LOGIN login_name

Guest用户,特殊数据库用户,匿名访问,没有映射到登录账户的时候使用

GRANT CONNECT TO guest

REVOKE CONNECT TO guest

删除数据库用户:DROP USER user_name

4 、权限管理

登录账户成为合法用户后没有任何操作权限,就需要为用户授予数据库数据及其对象的操作权限。

对象级别的权限:SELECT 、INSERT 、 UPDATE 、 DELETE 、 REFERENCES 、 EXECUTE

授权语法:GRANT 对象权限 ON 对象 TO (主体:数据库用户名或角色) [WITH GRANT OPTION]

拒绝权限语法:DENY 对象权限 ON 对象 TO (主体:数据库用户名或角色)[CASCADE] [AS主体]

收权语法:REVOKE 对象权限 ON 对象 TO (主体:数据库用户名或角色)[CASCADE] [AS角色]

语句级别的权限:CREATE [ DATABASE | PROCEDURE | TABLE |VIEW | FUNCTION|BACKUP DATABASE | LOG]

​ 创建数据库 存储过程 表 视图 自定义函数 备份数据库

5、角色:一组具有相同权限的用户就是角色

SQLserver 中,角色分为预定义的**系统角色和用户角色**两种

系统角色又分为**固定服务器角色(服务器级角色)和固定数据库角色(数据库级角色)**

用户角色均是数据库级角色

固定服务器角色

  • Bulkadmin:执行 BULK INSERT 语句权限
  • Dbcreater: 创建、修改、删除还原数据库权限
  • Diskadmin: 具有管理磁盘文件的权限
  • Processadmin: 管理运行进程的权限
  • Securtyadmin: 专门管理登录账户、读取错误日志执行 CREATE DATABASE 权限的账户
  • server admin:服务器级别的配置选项和关闭服务器权限
  • setupadmin:添加删除连接服务器
  • sysadmin:系统管理员,Windows 超级用户自动映射为系统管理员
  • Public:系统预定义服务器角色,每个登录账户都是这个角色成员。没有授予或拒绝特定权限权限,则都将具有这个角色权限

例:

为固定服务器角色添加成员:EXECUTE Sp_addsrvrolemember ‘user1’ , ‘sysadmin’

删除固定服务器角色成员:EXECUTE Sp_dropsrvrolemember ‘user1’, ‘sysadmin’

固定数据库角色:定义在数据库级别上,存在于每个数据库中。用户加入固定数据库角色就具有数据库角色权限

  • Db_accessadmin: 添加或删除数据库权限
  • Db_backuppoperator: 备份数据库、日志权限
  • Db_datareader: 查询数据库数据权限
  • Db_datawriter: 具有插入、删除、更改数据库权限
  • Db_ddladmin: 执行数据定义的权限
  • Db_denydatareader: 不允许具有查询数据库中所有用户数据的权限
  • Db_denydatawriter: 不允许具有插入、删除、更改数据库中所有用户数据权限
  • Db_owner: 具有全部操作权限,包括配置、维护、删除数据库
  • Db_securityadmin: 具有管理数据库角色,角色成员以及数据库中语句和对象的权限

例:

为固定数据库角色添加成员:EXECUTE Sp_addrolemember ‘Db_datareader’, ‘sql_user1’

删除固定数据库角色成员:EXECUTE Sp_droprolemember ‘Db_datareader’, ‘sql_user1’

用户定义的角色属于数据库一级的,用户定义的角色成员可以是用户定义的角色或数据库用户。注意:角色中的成员拥有的权限 = 成员自身权限 + 所在角色权限。但**若某个权限在角色中被拒绝,则成员不再拥有**

创建用户定义的角色:CREATE ROLE 角色名

删除用户定义的角色:DROP ROLE 角色名

第六节 Oracle 的安全管理

Oracle 的安全机制分为数据库级的安全控制、表级、行级、列级的安全控制。

  • 数据库级的安全性通过**用户身份认证和授予用户相应系统权限**来保证
  • 表级、行级、列级的安全性通过**授予或回收对象权限**保证。支持集中式、分布式、跨平台应用

Oracle系统通常设置两级安全管理员:

  • 全局级:负责管理、协调,维护全局数据一致性和安全性
  • 场地级:负责本结点数据库安全性和用户管理、系统特权与角色管理

1 、用户与资源管理

按权限大小划分为:DBA 用户与普通用户

  • DBA 用户:由 DDMS 自动创建,sys 与 system 用户,拥有全部系统特权
  • 普通用户:由 DBA 用户或有相应特权的用户创建,并授予系统特权

建立用户:CREATE USER user1 IDENTIFIED BY 123456 DEFAULT TABLESPACE student (存储在 student 表空间) QUOTA 5M ON student (限制使用空间为5M)

管理用户和资源:DBA 特权用户可以改变一个用户资源使用限额、密码、登录次数等

ALTER USER user1 QUOTA 60M ON student (限制使用空间为 60M)

ALTER USER user1 IDENTIFIED BY 12345678 (修改密码)

删除用户:DROP USER user1 CASCADE (删除用户及其所有用的全部对象)

2 、权限管理

2.1 系统特权

  • Connect:不能建立任何对象,可以查询数据字典及访问数据库对象。
  • Recource: 可以建立数据库对象(表、视图、索引….)
  • DBA:拥有预定义的全部权限

2.2 对象特权

用于维护表级、行级、列级数据的安全性。

实例:GRANT all ON dip TO user1 // 给user1 用户设置dip表的所有权限

​ GRANT select(tno, tname, tsex) ON teacher TO user1 // 给 user1用户仅设置查询no, name,sex三列的权限对于 teacher 表

第十章 数据库运行维护与优化

第一节 数据库运行维护基本工作

DBAS 进入运行维护阶段的主要任务:保证数据库系统安全、可靠且高效率地运行

数据库的运行除了 DBMS 与数据库外,还需要各种系统部件协同工作。首先必须有各种相应的应用程序,其次各应用程序与 DBMS 都需要在操作系统(OS)支持下工作。

维护工作包括:

  • 数据库的转储与恢复
  • 数据库安全性、完整性控制
  • 检测并改善数据库性能
  • 数据库的重组和重构 (注:重组不修改数据库原有设计的逻辑结构和物理结构,重构不分修改模式和内模式

第二节 运行状态监控与分析

数据库的监控分析:指管理员接住工具检测 DBMS 的运行情况,掌握系统当前或以往的负荷、配置、应用等信息,并分析监测数据的性能参数和环境信息,评估 DBMS 的整体运行状态。

根据监控分析实现不同,可分为:数据库系统建立的自动监控机制(由 DBMS 自动监测数据库的运行情况)、管理员手动实施的监控机制

根据监控对象不同,可分为:数据库架构体系的监控(监控空间基本信息、空间使用率与剩余空间大小等)、数据库性能监控(监控数据缓冲区命中率、库缓冲、用户锁、索引使用、等待事件等)

第三节 数据库存储空间管理

对数据库使用空间进行管理是一项非常重要的工作。

空间使用情况变化带来的问题:降低数据库系统服务性能,空间溢出导致灾难停机事故。

数据存储结构分为:逻辑存储结构、物理存储结构

SQL server 数据库中一个逻辑上的数据库直接和一组物理上的数据文件对应,没有表空间概念。

DBMS 对空间的管理包括:创建数据库空间、更改空间大小、删除空间、修改空间状态,新建、移动、关联数据文件等。

第四节 数据库性能优化

数据库性能优化是 DBAS 系统上线后最常见的运行维护任务之一。进行数据库能行优化时,首先要确定优化目标,一般从数据库运行环境、参数调整、模式调整、数据库存储优化、查询优化几个方面考虑。

1 、数据库运行环境与参数调整

一般来说,可以从外部环境、调整内存分配、调整整个磁盘的 I/O、调整资源竞争等几个方面着手改变数据库参数,提高其性能。

1.1 外部调整:数据库性能和外部环境有很大关系,主要外部条件包括:CPU(CPU 的处理能力是衡量计算机性能的一个标志)、网络(大量的 SQL 数据在网络上传输会导致网速变慢)

CPU 使用情况判断依据:对于一台数据库服务器,如业务空闲时使用率超过 90%,说明服务器缺乏 CPU 资源,如高峰时 CPU 使用率低,说明服务器 CPU 资源充足。解决方案:增加 CPU 数量或者终止需要许多资源的进程

1.2 调整内存分配:调整相关参数控制数据库内存分配,很大程度改善数据库系统性能。

1.3 磁盘调整 I/O:数据库性能优劣的重要度是响应时间。改善方法:令 I/O 时间最小化,减少磁盘上文件竞争带来的瓶颈

1.4 调整竞争:

  • 修改参数以控制链接到数据库的最大进程数。

  • 减少调度进程的竞争

  • 减少多线程服务进程竞争

  • 减少重做日志缓冲区竞争

  • 减少回滚段竞争

2 、模式调整与优化

数据库的规范化过程:高效率利用存储空间、减少数据的冗余,减少数据的不一致性

问题:规范化关系解决了数据维护的异常,并使数据冗余最小化,但会导致数据处理性能下降。

反规范化:将规范化关系转变为非规范化关系的过程。增加派生冗余列、增加冗余列、重新组表、分割表和新增汇总表等方法。都会破坏数据完整性。采用反规范化技术从实际出发均衡利弊。

2.1 增加派生行冗余列:增加的列由表中的一些数据想经过计算生成。作用:查询时减少连接操作,避免使用聚合函数。

2.2 增加冗余列:在多个表中增加具有相同语义的列,常用来在查询时避免连接操作(外码不属于这种情况)。

2.3 重新组表:当用户经常查看的某些数据是由多个表连接之后才能看得到,就可以考虑先把这些数据重新组成一个表,这样在查询时就会减少连接提高效率。

2.4 分割表:水平分割、垂直分割

  • 水平分割:根据行的使用特点进行分割,分割之后所有表的机构都相同。而存储的数据相同。使用并(Union)操作。
  • 垂直分割:根据列的特点分割,分割后所得表除了都包含主码外其他列都不相同。通常将常用列与不常用列分别存放在不同的表中,查询减少 I/O 次数。缺点是使用连接(Join)操作。

2.5 新增汇总表

​ 大量执行报表等汇总操作会影响性能。为降低汇总操作的时间,将频繁使用的统计中间结果或最终结果存储在汇总表中,从而降低数据访问量和汇总操作的 CPU 计算量

  1. 存储优化

    3.1 物化视图(索引视图)

    定义:包括一个查询结果的数据库对象,是预先计算并保存表连接或聚集等耗时较多的操作结果。(一个定期刷新数据的视图,自动刷新或人工刷新)

    适用:多个数据量较大的表进行连接操作及查询数据库中在多站点的表进行连接时使用。

    物化视图还可以进行远程数据的本地复制(物化视图的存储也成为快照),用于实施数据库间的同步

    3.2 聚集:聚集是物理存储表中数据的可选择的方法。一个聚集是一组表,将经常一起使用的具有同一公共列值的多个表的数据行存储在一起,由公共列构成聚集码

    作用:最小化必须执行的 I/O 次数

    注意:将记录插入聚集的表之前,必须建立聚集索引,且按聚集码进行索引,对于聚集中的多个表,聚集值只存储一次。

    劣势:聚集表的插入、更新、删除性能差。

  2. 查询优化:效率低下的 SQL 语句常常是系统效率不佳的主要原因。

    常用的优化方法:

​ 4.1 合理使用索引(权衡:索引提高查询效率,索引增加系统开销)

建立索引原则:

  • 是否为一个属性建立索引:该属性是码或存在某个查询中被使用。
  • 在那些属性建立索引:若一个关系的多个属性共同出现在若干个查询中,一般会采用多属性索引
  • 是否建立聚簇索引:聚簇索引适合范围查询,可建立多属性索引,优点体现在数据记录存储过程中。
  • 使用散列还是树索引:散列适合等值查询;关系数据库多使用B+树索引,支持作为搜索码的属性上的等值查询和范围查询。

使用索引原则:

  • 经常在查询中作为条件被使用的列,应为其建立索引。
  • 频繁进行排序或分组的列,应为其建立索引
  • 一个列的值域很大时,应为其建立索引。
  • 如果待排列的列有多个,建复合索引
  • 可以使用系统工具来检查索引完整性,必要进行修复,当数据表更新大量数据后,删除并重建索引以提高查询

索引建立完成后,运行期间还需调优。调优的目的:动态地评估需求

索引调整和修改的原因:

  • 由于缺少索引,某些查询语句执行时间过长。
  • 某些索引自始自终没有使用,却占用了较多磁盘空间。
  • 某些索引建立在被频繁改变的属性上,导致系统的开销过大。

4.2 避免或简化排序

ORDER BY 和 GROUP BY 语句的执行涉及排序,磁盘排序开销很大,应利用索引自动以适当的次序产生输出

影响优化器的因素:由于现有索引不足,导致排序索引中不包括一个或几个待排序的列。 Group by 和 order by 子句中列的次序和索引次序不一致,排列的列来自不同的表,为避免不必要的排序,要正确的增建索引,合理合并数据库表,如排序不可避免,则简化它,如缩小排序列的范围。

4.3 消除对大型表数据的顺序存取

嵌套查询中,对表的顺序存取严重影响查询效率。优化方法:对连接列进行索引,或使用并集来避免顺序存取

4.4 避免复杂正则表达式:原因是消耗较多 CPU 资源进行字符串匹配

4.5 使用临时表加速查询:将表的一个子集进行排序并创建临时表

4.6 用排序来取代非顺序磁盘存取:非顺序磁盘存取最慢。使用以数据库排序功能为基础的 SQL 替代非顺序存取

4.7 不充分的连接条件:左(右)外连接包含与 NULL 数据的匹配,相比内连接,代价可能很高

4.8 存储过程:尽量使用自带返回参数,而非自定义返回参数,减少不必要参数,避免数据冗余

4.9 不要随意使用游标:占用较多系统资源。尤其是大规模并发情况下,很容易使得系统资源耗尽而崩溃

4.10 事务处理:一旦将多个处理放入事务,会降低系统处理速度。将频繁操作的多个可分割的处理过程放入多个存储过程中,这样就大大提高系统的响应速度。

5、SQL server 性能工具

SQL server profile :用来监视 SQL server 事件的多用途监控工具。结果存储在跟踪文件中,可通过分析文件诊断问题。

数据库引擎优化顾问:测试数据库工作负荷

第十一章 故障管理

第一节 故障管理概述

1、故障类型及其解决方案

DBMS 中常见的 4 类故障:

  • 事务内部故障:事务故障导致数据不一致,分为预期的(大部分)和非预期的

    • 预期的事务内部故障:可通过事务过程本身发现的。解决方法:事物回滚
    • 非预期的事务内部故障:不能由事务程序处理的故障,如运算溢出等。事务故障的恢复由系统自动完成
  • 系统故障:又称软故障,运行期间,由于硬件故障、数据库软件及 OS 漏洞、突然断电等故障,导致数据不一致。解决方法:重启后,撤销(UNDO)所有未 提交的事务;重做(REDO)所有已提交的事务

  • 介质故障:又称硬故障,运行期间由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等,使得数据丢失的一类故障。导致物理存储设计损坏,数据文件及数据全部丢失。破坏性最大。解决方法:软件容错及硬件容错

    • 软件容错:使用数据库备份及事务日志文件,通过恢复技术,恢复数据库备份结束时的状态。若故障导致事务日志文件丢失,则不能完成恢复
    • 硬件容错:一种方案是使用双物理存储设备,如双硬盘镜像。缺点:自然灾害或机房水灾、火灾导致双硬盘同事损坏,则失去保护作用。另一种方案是设计两套相同的数据库系统,通过数据库软件机制,同步变化数据。
  • 计算机病毒故障:病毒是恶意的计算机程序,破坏 OS 及数据库系统(破坏数据文件为主)。解决方法:防火墙、杀毒软件、数据库备份文件。

2 、数据库恢复技术概述

恢复的基本原理是冗余。数据库恢复:把数据库从错误的状态恢复到某一已知的正确状态。在 DBMS 中,数据库恢复子系统占 ==10%==以上。

建立冗余数据的技术:数据备份、登记日志文件、数据库复制、数据库镜像、为段设立保存点以及使用后备段与现行页表来支持对段的保存等。最常用的是数据库备份和登记日志文件

第二节 数据存储

数据转储即数据备份。指 DBA 或DBMS 定期复制数据库,并将其存放到其他介质的过程。这些保存的副本被称为:后援副本或后备副本

1 、静态转储和动态转储

  • 静态转储:期间系统不能运行其他事务,不允许任何存取、修改活动。静态转储保证数据的一致性,降低了数据库的可用性。转储和事务是互斥的
  • 动态转储:即允许转储和事务并发执行。动态转储不能保证转储数据的一致性。

动态转储+日志文件(记录转储期间各事务对数据库的修改活动记录):既保证数据一致性又提高了数据库的可用性

2 、数据转储机制

  • 完全转储:对数据库中所有数据进行转储。占据较多时间和空间,但恢复时间短

  • 增量转储:只复制上次转储后发生变化的文件或数据块。所需时间及空间短,但只能和完全转储配合才能对数据库进行恢复

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

3 、多种转储方式结合使用

仅使用完全转储:占据时间和空间多,代价大

完全转储+增量转储:恢复时间较长

完全转储+差量转储:恢复时间短

第三节 日志文件

1 、日志文件的概念

DBMS 运行中,将所有事务的修改操作登记到日志文件

作用:事务故障恢复和系统故障恢复必须使用日志文件

在动态转储方式中必须建立日志文件,静态转储可以使用日志文件

2、日志文件的格式与内容

两种格式:

  • 记录为单位的日志文件

    记录的内容:

    • 各个事务的开始标记 BEGIN TRANSACTION
    • 各个事务的结束标记 COMMIT OR ROLLBACK
    • 各个事务的所有更新操作
  • 数据块为单位的日志文件

    记录的内容:

    • 事务标识
    • 被更新的数据块

3 、登记日志文件的原则

  • 登记的次序严格按照并行事务执行的时间次序。保证事务对数据库的操作的可再现性和正确性
  • 必须先写日志文件,后写数据库。先后顺序导致必然性

4 、检查点

最大限度的减少数据完全恢复时必须执行的日志部分。

检查点的引入:在日志中增加检查点记录,增加一个“重新开始文件”

检查点记录的内容:建立检查点时刻正在执行的事务清单;这些事务最近一个日志记录的地址

重新开始文件记录的内容:各个检查点记录在日志中的地址

基于检查点的恢复步骤

  • 从“重新开始文件”中找到最后一个检查点记录在日志文件中的地址,从而找到最后一个检查点记录。
  • 由该检查点记录得到执行的事务清单 ACTIVE_LIST
  • 从检查点开始正向扫描文件
  • 对 UNDO—LIST 中的事务执行 UNDO,对 REDO-LIST 中的事务执行 REDO

第四节 硬件容错方案

由于数据库运行的硬件故障、机房电力故障、机房自然灾害等,要求从硬件级别对 DBMS 进行保护。

相关度最紧密的技术:数据库存储保护技术,服务器容错技术及数据库镜像与容灾技术

1 、磁盘保护技术

  • RAID:廉价冗余磁盘阵列,多块磁盘构成的一个整体。依靠冗余技术的数据保护
    • 镜像冗余:即把所有的数据复制到其他设备。额外开销大:更多的磁盘、控制器、电缆
    • 校验冗余:对成员磁盘的数据执行**异或**(XOR)操作,得到其校验值,并存放在另外的校验盘上。实现较复杂,但比镜像冗余占据的空间小

RAID 根据所采用的方法不同,分为:RAID-0RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID-10,RAID-50,RAID-60。

  • RAID-0:将多个磁盘合并成一个大的磁盘,不具有冗余,并行 I/O,速度最快。
  • RAID-1:两组以上的 N 个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于磁盘数量的倍速,另外写入速度有微小的降低,只要一个磁盘正常即可维持运作,可靠性最高。
  • RAID-5: 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk striping(硬盘分区)技术。 RAID-5 至少需要三颗硬盘,RAID-5 不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成 RAID5 的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
  • RAID-10:RAID0 与 RAID-1 的组合体,继承了前者的快速和后者的安全。 RAID-10 冗余度为50%。

3 、服务器容错技术

采用两台相同的服务器,共享存储设备(双机热备,Active-Standby).两台服务器之间会有私有网络进行心跳检测

第十二章 备份与恢复数据库

SQL server 的备份与恢复机制

1 、使用系统存储过程创建备份设备

语法:sp_addumpdevice [@devicetype = ] ‘device_type’ , [@logicalname = ] ‘logical_name’ , [@physicalname = ] ‘physical_name’

其中,device_type表示设备类型,其值可为 disk(磁盘) 和 tape(磁带) 。 logical_name表示设备的逻辑名称。 physical_name表示设备的实际名称。

2 、完全备份数据库语句:BACKUP database 旧数据库 TO 新数据库

​ 完全备份并覆盖掉备份设备上已有的内容:BACKUP DATABASE 旧数据库 TO 新数据库 WITH INIT

备份事务日志并以追加的方式备份到信息设备上:BACKUP LOG xxx TO xxx

3 、完全备份进行的恢复数据库语句:RESTORE DATABASE 旧数据库 FROM 新数据库

第十三章 大规模数据库架构

第一节 分布式数据库

1 、分布式数据库系统概述

分布式数据库系统与分布式数据库的区别:分布式数据库系统——数据分布存储于若干场地,并且每个场地由独立于其他场地的 DBMS 进行数据管理。**物理上分散、逻辑上集中的数据库系统。**分布式数据库——分布式数据库系统中各场地上数据库的逻辑集合。

2、数据分布策略:按一定规则讲某一个全局关系划分为多个片段。四中基本方法:

水平分片:每个分片是原始关系所有数据的子集合

垂直分片:每个分片是原始关系所有数据的子集合

导出分片:导出水平分片

混合分片:以上三种的混合

数据分配(对分片结果操作):讲分片产生的片段分配存储在各个场地上。

解决分配的方法:

  • 集中式:所有数据片段安排在一个场地上。
  • 分割式:所有全局数据有且只有一份,分割成若干被分配在特定场地上的片段
  • 全复制式:全局数据有多个副本,每个场地上有一个完整的数据副本
  • 混合式:介于分割与全复制式之间。

第二节 并行数据库

1 、并行数据库概述

并行数据库系统——通过并行实现各种数据操作,如数据载入、索引建立、数据查询等,可以提高系统的性能

优势:增强系统可用性。当存储某个关系场地系统崩溃时,可继续使用存储在别的场地的副本

2 、并行数据库系统结构——实现并行 DBMS 的三种硬件结构

  • 共享内存系统
  • 共享磁盘系统
  • 无共享资源系统
  • 层次结构

第四节 XML数据库

1 、 XML 数据库:extensible markup language 可扩展标识语言。支持对 XML 文档格式进行存储和查询等操作的数据库管理系统

优势:能够对半结构化数据进行处理;提供对标签和路径的操作;能清晰地表达数据的层次特征。

第十四章 数据仓库与数据挖掘

第一节 数据仓库技术

1 、数据仓库的概念和特性

建立数据仓库的目的:根据决策需求对企业的数据才去适当的手段进行集成,形成一个综合的、面相分析的数据环境,用于支持企业的信息型、决策型的分析应用。

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

2 、数据仓库的体系结构与环境

从数据层次角度上,典型的数据仓库的数据体系结构包括:操作型数据、操作型数据存储、数据仓库和数据集市。也可以包括个体层数据。

从功能结构上,可分为:数据处理、数据管理和数据应用三个层次。

3 、数据仓库的数据组织

  • 粒度:数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度越小
    • 粒度影响到数据仓库的数据量及系统能回答的查询类型
    • 进行数据仓库的数据组织时,应根据当前应用的需求进行多粒度级设计。满足多角度、多层次数据查询要求。
  • 数据分区(分割):数据分散到各自的物理单元中去,它们能独立地处理。
    • 最常见的是按照时间标准分区
    • 数据分区的方式可以分为==系统层分区(数据库系统提供的机制)和应用层分区(由应用代码实现)==两种。
  • 元数据:关于数据的数据,或叫描述数据的数据。用于构造、维持、管理和使用数据仓库,在数据仓库中尤为重要。
    • 元数据描述了数据的结构、内容、链和索引等内容
    • 在数据仓库中,元数据分成技术型元数据和业务型元数据
  • Data mart ::数据集市——小型的、面向部门或工作组级数据仓库。
  • Operation Data Store : 操作型数据存储——ODS 是能支持企业日常的全局应用的数据集合,是不同于 DB 的一种新的数据环境,是 DW 扩展后得到的一个混合形式。四个基本特点:面向主题的、集成的、可变的、当前的或接近当前的。
    • ODS分成 4 类:
      • ODS I:数据更新频率秒级
      • ODS II:数据更新频率小时级
      • ODS III:数据更新频率天级
      • ODS IV:根据数据来源方向和累西行区分

第二节 设计与建造数据仓库

数据仓库的 CLDS:

  • 实现数据仓库
  • 集成数据
  • 校验偏差
  • 针对数据编程
  • 设计 DSS 系统
  • 分析结果
  • 理解需求

SDLC 是典型的需求驱动开发生命周期,CLDS 是典型的数据驱动开发生命周期

2 、数据仓库的数据模型:分为概念(E-R)、逻辑(关系型模型或多维数据模型)、物理三级数据模型。与普通数据库系统的数据模型不同:

  • 一般不包含纯操作型数据
  • 一般需要扩充关键字结构,在其中加入时间属性
  • 需要增加导出数据

第四节 数据仓库的运行与维护

1 、数据仓库数据的更新与维护

数据仓库维护的基本思路:根据某种维护策略,在一定条件下触发维护操作;维护操作捕捉到数据源中的数据变化;通过一定策略对数据仓库中的数据进行相应的更新操作,以保持两者的一致性。

维护的策略

  • 实时维护——在数据源发生变化时,立即更新
  • 延时维护——在数据仓库中的视图被查询时完成更新
  • 快照维护——定期对数据仓库进行维护,触发条件是时间

捕捉数据源的变化:当数据源发生变化时,告知数据仓库源数据发生变化的机制,就是源数据变化的监听及捕捉问题。典型的方法有:

  • 触发器
  • 修改数据源应用程序
  • 通过日志文件
  • 快找比较法

导出数据的刷新有两种:

  • 根据维护对象的数据源对其进行重新计算
  • 根据数据源的变化量在维护对象原有数据的基础上进行添加和修改,即增量式维护

用户不可存取数据仓库时间的长短是衡量数据维护效率的重要指标。将维护分为“聚集”和“更新”两个部分

第五节 联机分析处理与多维数据模型

1.OLAP 简介

OLAP——联机分析处理或在线分析处理。主要用于支持复杂的分析操作,侧重对计策人员和高层管理人员的决策支持。

2.多维分析简介

——观察数据的角度。数据的多维分析——针对数据仓库中以多维形式组织起来的数据,从多个角度、不同层次,采取各种数据分析技术,对数据进行剖析,以使用户能从多角度和不同层次观察和分析数据。

3 .OLAP 的实现方式有三种

  • 基于多维数据库的 OLAP(MOLAP)——以多维数组为基本存储结构
  • 基于关系数据库有的 OLAP(ROLAP)——采用关系表表示和存储(星形模式或雪花模式)
  • 混合型的 OLAP(HOLAP)——结合 MOLAP 与 ROLAP。具有最好的查询性能

第六节 数据挖掘技术

数据挖掘——就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值