【软件设计师】——5.数据库系统

目录

5.1 基本概念

5.2 三级模式两级映射

5.3 设计过程和数据模型

5.4 关系代数

5.5 完整性约束

5.6 规范化和反规范化

5.7 控制功能

5.8 SQL语言

5.9 数据库安全

5.10 数据备份

5.11 数据库故障与恢复

5.12 数据仓库、数据挖掘和大数据


5.1 基本概念

  • 相关术语

    候选码/键:关系中能唯一标识一个元组的某一属性/属性组

    主码/键:若一个关系有多个候选码,则选定其中一个为主码

    主属性:包含在任何候选码中的诸属性

    非主属性:不包含在任何候选码中的属性

    外码/键:若公共属性在一个关系中是主属性,这个公共属性被称为另一个关系的外码。外码表示了两个关系间的相关联系

    全码:若关系模式的所有属性组都是这个关系模式的候选码,则称为全码

    弱实体:一个实体的键由另一个实体的部分或全部属性构成

  • 关系的三种类型

    基本关系/基本表/基表:实际存在的表,实际存储数据的逻辑表示

    查询表:查询结果对应的表

    视图表:由基本表/其他视图表导出的虚表,本身不独立存储在数据库中,数据库中只存放它的定义

  • 数据库 DB

    1. 理解:长期存储在计算机内、有组织、可共享的数据集合。数据库中的数据按一定数据模型组织、描述、存储,具有较小冗余度、较高数据独立性、易扩展性,并可为各种用户共享

    2. 数据库完整性:指数据的正确性、相容性。如学生性别只能是男/女,百分成绩只能取0~100间整数值等。为防止错误数据进入数据库,DBMS提供完整性约束机制,通过对数据库表结构进行约束,当修改数据时由系统对修改数据进行完整性检查,将错误数据拒绝于数据库之外。完整性约束不属于安全性控制机制

  • 数据库数据模型:层次模型、网状模型、关系模型、面向对象数据模型

    1. 非关系模型:层次模型、网状模型

    2. 关系模型:目前最常用数据模型之一。关系数据库系统采用关系模型作为数据组织方式,在关系模型中用二维表格结构表达实体集及实体集间的联系,最大特色是描述的一致性。关系模型是由若干关系模式组成的集合。一个关系模式相当于一个记录型,对应于程序设计语言中类型定义的概念。关系是一个实例,也是一张表,对应于程序设计语言中变量的概念。给定变量的值随时间可能发生变化;当关系被更新时,关系实例的内容也随时间发生变化

  • 数据库管理系统 DBMS

    1. 理解:① 数据库系统的核心软件要在操作系统支持下工作,解决如何科学地组织、存储数据、如何高效获取和维护数据的系统软件问题。② 主要功能包括数据定义、数据操纵、数据库运行管理、数据组织存储、管理和数据库的建立与维护。 ③ 为保证数据库中数据安全可靠和正确有效,DBMS提供数据库恢复、并发控制、数据完整性保护、数据安全性保护等功能

    2. 特征:数据结构化且统一管理;有较高数据独立性;提供数据控制功能

    3. 分类

      ①关系数据库系统:支持关系模型的数据库系统

      ②面向对象的数据库系统:支持以对象形式对数据建模的数据库系统

      ③对象关系数据库系统:在传统关系数据模型基础上,提供元组、数组、集合等更丰富的数据类型以及处理新的数据类型操作的能力,这样形成的数据模型为对象关系数据模型。基于对象关系数据模型的DBMS为对象关系数据库系统

  • 分布式数据库

    1. 理解:由一组数据组成,这组数据分布在计算机网络的不同计算机上,网络中的每个节点具有独立处理的能力(场地自治)。它可以执行局部应用,每个节点也能通过网络通信子系统执行全局应用。分布式数据库系统是在集中式数据库系统技术的基础上发展起来的

    2. 特点

      ① 数据独立性:分布式数据库系统中,数据独立性更加重要,有数据逻辑独立性、物理独立性、数据分布独立性(分布透明性) ② 集中与自治共享结合的控制结构:各局部DBMS可独立管理局部数据库,具有自治功能。系统又设有集中控制机制,协调各局部DBMS工作,执行全局应用 ③ 适当增加数据冗余度:在不同场地存储同一数据的多个副本,提高系统可靠性、可用性和系统性能 ④ 全局一致性、可串行性、可恢复性

    3. 透明性

      ①逻辑透明性/局部映像透明性:最低层次透明性,提供数据到局部数据库的映像。用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,用户/应用程序无须知道局部场地使用哪种数据模型,数据模型、操纵语言的转换由系统完成。对异构型、同构异质分布式数据库系统非常重要

      ②位置透明性:用户无须知道数据存放的物理位置,用户不必知道操作数据放在何处,数据分配到哪个/哪些站点存储对用户透明。数据分片模式的改变,如把数据从一个站点转移到另一个站点将不会影响应用程序,因而应用程序不必改写

      ③分片透明性:用户/应用程序不需知道逻辑上访问的表具体怎么分块存储,用户不必关心数据如何分片/分块。数据操作在全局关系上进行,如何分片对用户是透明的,当分片改变时应用程序可以不变

      ④复制透明性:用户不用关心数据库在网络中各节点的复制情况,被复制数据的更新由系统自动完成;采用复制技术的分布方法,用户不需知道数据是复制到哪些节点,如何复制

5.2 三级模式两级映射

  • 三级模式

    1. 视图级—外模式/用户模式/子模式

      用户与数据库系统的接口,描述用户看到/使用的那部分数据的逻辑结构,由若干外部记录类型组成

      ② 外模式 DDL:描述外模式的数据定义语言。用户根据外模式用数据操作语句/应用程序操作数据库中的数据

      ③ 描述:组成用户视图的各记录组成、相互关系、数据项特征、数据安全性、完整性约束条件

    2. 基表级—概念模式/模式

      数据逻辑结构、特征的描述,由若干概念记录类型组成,只涉及行的描述,不涉及具体值

      ② 概念模式的一个具体值称为模式的一个实例,同一个模式可有多个实例

      ③ 描述:现实世界中实体及其性质与联系,定义记录、数据项、数据完整性约束条件、记录间联系,是数据项值的框架

    3. 文件级—内模式/存储模式

      数据物理结构、存储方式的描述,是数据在数据库内部的表示方式定义所有内部记录类型索引、文件的组织方式,以及数据控制方面的细节

      ② 内模式DDL:描述内模式的数据定义语言。整个数据库的最低层表示不同于物理层,它假设外存是一个无限的线性地址空间

      ③ 定义存储记录类型、存储域表示、存储记录物理顺序,指引元、索引和存储路径等数据的存储组织

      ④ 聚簇/簇类索引:对磁盘上实际数据重新组织以按指定的一个/多个列的值排序,改变数据库内模式

  • 两级映射:保证数据的独立性

    1. 外模式—模式映像:实现外模式到概念模式间相互转换,保证数据与程序的逻辑独立性

    2. 模式—内模式映像:实现概念模式到内模式间相互转换,保证数据与程序的物理独立性

5.3 设计过程和数据模型

  • 数据模型

    1. 理解:是用来描述数据的一组概念和定义

    2. 数据模型三要素

      ① 数据结构:所研究对象类型的集合,是对系统静态特性的描述

      ② 数据操作:对数据库中各种对象实例 (值)允许执行的操作//操作规则集合,是对系统动态特性的描述

      ③ 数据约束条件:是一组完整性规则的集合,对于具体应用数据必须遵循特定的语义约束条件,保证数据正确、有效、相容

  • 基于UML的关系数据库设计的4个阶段

    1. 业务用例设计:进行数据库需求分析,使用用例图等建立业务模型。用户需求分析阶段形成相关文档作为概念结构设计的设计依据

    2. 逻辑数据模型设计:确定应用系统所需的持久数据,设计出关系数据库中表达持久数据的实体类及其联系,并将它们映射为数据库表和视图

    3. 物理数据模型设计:使用组件图、配置图等设计数据库的物理模型

    4. 物理实现设计:根据物理数据模型建立具体数据库环境下的数据库表、视图

  • 概念结构设计阶段工作步骤:抽象数据→设计局部视图→合并取消冲突→修改重构消除冗余

  • E-R模型

    1. 理解:实体联系模型,主要概念是实体、联系、属性

    2. 转换基本原则:实体和联系分别转换成关系模式,属性则转换成相应关系的属性

    3. 集成方法:多个局部E-R图一次集成;逐步集成,用累加方式一次集成两个局部E-R

    4. 集成产生的冲突:

      ① 属性冲突:包括属性域冲突、属性取值冲突

      ② 命名冲突:包括同名异义、异名同义

      ③ 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数、属性排列次序不完全相同

    5. 联系转关系模式:一个实体型转换为一个关系模式

      ① 1:1联系:可将联系合并至任意一端的实体关系模式中

      ② 1:n联系:可将联系合并至n端实体关系模式中

      ③ m:n联系:联系必须单独转成关系模式

      ④ 三个以上实体间的一个多元联系:对于三个不同实体集和它们之间的多对多联系 m : n :p ,最少可转换为3 + 1个关系模式

5.4 关系代数

  • 并、交、差、笛卡尔积

  • 投影 π:对列的操作

  • 选择 δ:对行的操作

  • 自然连接:去除重复属性列,等价于笛卡尔积先选择,后投影

    左外连接:R与S进行自然连接时,只把R中舍弃的元组放到新关系中

    右外连接:R与S进行自然连接时,只把S中舍弃的元组放到新关系中

    完全外连接:R与S进行自然连接时,把R和S中舍弃的元组都放到新关系中

  • 关系代数表达式查询优化原则

    1. 提早执行选取运算。对于有选择运算的表达式,优化成尽可能先执行选择运算的等价表达式,得到较小的中间结果,减少运算量及从外存读块的次数

    2. 合并乘积与其后的选择运算为连接运算

    3. 将投影运算与其后的其他运算同时进行,避免重复扫描关系

    4. 将投影运算和其前后的二目运算结合,没有必要为去掉某些字段再扫描一遍关系

    5. 执行连接前对关系适当预处理,快速找到要连接的元组

    6. 存储公共子表达式。对于有公共子表达式的结果应存于外存(中间结果),当从外存读出它的时间比计算的时间少时,可节约操作时间

5.5 完整性约束

  • 完整性规则:

    提供一种手段保证授权用户修改数据库时不会破坏数据一致性,是对关系的某种约束条件,防止意外破坏数据

    1. 实体完整性:规定基本关系R的主属性A不能取空值,唯一

    2. 参照完整性:若F是基本关系R的外码,它与基本关系S的主码对应(基本关系R、S不一定是不同关系),则对于R中每个元组在F上的值必须为:① 空值(F的每个属性值均为空值) ② 等于S中某个元组的主码值

    3. 用户定义完整性:针对某具体关系数据库的约束条件,反映某具体应用涉及的数据必须满足的语义要求,由应用环境决定

5.6 规范化和反规范化

  • 函数依赖

    1. 函数依赖:设 R(U)是属性集上的关系模式,X和Y是U的子集。若对 R(U)的任何一个可能的关系r,r中不可能存在两个元组在X上的属值相等,而在Y上的属性值不等,则称X函数决定 Y或Y函数依赖于 X,记作X-Y

    2. 非平凡的函数依赖:如果 X-Y,但 Y⊈X,则称X-Y是非平凡的函数依赖

    3. 平凡的函数依赖: 如果X-Y,但 Y⊂X,则称X-Y是平凡的函数依赖

    4. 完全函数依赖:在 R(U)中,如果 X-Y并且对于任何一个真子集X`(记为xx),都有xx不能决定 Y,则称Y对X完全函数依赖,记作 X-Y

    5. 部分/局部函数依赖:如果 X-Y,但 Y不完全函数依赖于X,则称Y对X部分函数依赖记作X-Y

    6. 传递依赖:在 R(U,F)中,如果X-Y,Y⊈X,Y不能函数决定X,Y-Z,则称Z对X传递依赖

  • 图示法求候选键

    1. 将关系的函数依赖关系,用“有向图”表示

    2. 找出入度为0的属性,以该属性集合为起点,尝试遍历有向图,若能正常遍历图中所有结点,则该属性集即为关系模式的候选键

    3. 若入度为0的属性集不能遍历图中所有结点,则需要尝试性的将一些中间结点(有入度和出度的结点) 并入入度为0的属性集中,直至该集合能遍历所有结点,集合为候选键

  • 非规范化关系模式

    1. 问题:数据冗余、更新异常、插入异常、删除异常(部分依赖、传递依赖导致)

    2. 第一范式1NF:若关系模式R的每一个分量都是不可再分的数据项,则关系模式R属于第一范式;当且仅当所有域只包含原子值

    3. 第二范式2NF:若关系模式R ∈ 1NF,且每一个非主属性完全依赖于主键,则关系模式R ∈2NF,即当1NF消除了非主属性对候选键部分函数依赖

    4. 第三范式3NF:若关系模式R(U,F)中不存在这样的码X、属性组Y及非主属性Z(Z不属于Y),使得X-Y,Y -\ X,Y-Z 成立,则称关系模式R ∈ 3NF,即当2NF消除了非主属性对候选键的传递函数依赖

    5. 巴克斯范式BCNF:当3NF 消除了主属性对码的部分、传递函数依赖。所有非主属性对每一个码都是完全函数依赖;所有非主属性对每一个不包含它的码也是完全函数依赖;没有任何属性完全函数依赖于非码的任何一组属性;所有函数依赖的箭头左边为候选键

  • 模式分解

    1. 理解:对一个给定模式进行分解,使分解后的模式与原来模式等价,分解具有无损连接性、分解要保持函数依赖。设数据库模式p={R1,R2,…,Rk}是关系模式R的一个分解,F是R上的函数依赖集,p中每个模式Ri上的FD集是Fi。如果(F1,F2,…,Fk)与F是等价的(即相互逻辑蕴涵),那么称分解p保持FD

    2. 无损联接分解:将一个关系模式分解成若干关系模式后,通过自然联接、投影等运算仍能还原到原来关系模式

    3. 无损分解公式法/表格法

      公式法:若R分解为p={R1,R2},F为R所满足的函数依赖集合,分解p具有无损连接性的充分必要条件是: R1 ∩ R2 一> (R1-R2) 或 R1 ∩ R2 一> (R2-R1)

  • Amstrong公理体系

    1. 关系模式R < U,F >来说有以下的推理规则

      A1.自反律:若Y ⊆ X ⊆ U,则X→Y成立

      A2.增广律:若Z ⊆ U 且 X→Y,则 XZ→YZ成立

      A3.传递律:若X→Y且Y→Z,则X→Z成立

    2. 根据A1,A2,A3得到下面三条推理规则

      合并规则:由X→Y,X→Z,有X→YZ (A2,A3)

      伪传递规则:由X→Y,WY→Z,有XW→Z (A2,A3)

      分解规则:由X→Y 及 Z ⊆ Y,有X→Z。(A1, A3)

  • 反规范化

    1. 理解:规范化会使表不断的拆分,导致数据表过多。减少了数据冗余,提高了增、删、改的速度,但会增加查询工作量。系统需进行多次连接,才能进行查询操作,使得系统效率大大下降

    2. 技术手段:增加派生性冗余列、增加冗余列、重新组表、分割表

5.7 控制功能

  • 事务

    1. 理解:是一个操作序列,是数据库环境中不可分割的逻辑工作单元

    2. 事务特性

    原子性:事务的所有操作在数据库中要么全做,要么全不做

    一致性:事务执行结果必须保证数据库从一个一致性状态变到另一个一致性状态。一个事务独立执行的结果将保持数据一致性,即数据不会因为事务执行而遭受破坏

    隔离性:事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事物都不可见。一个事务的执行不能被其他事务干扰

    持久性:一个事务一旦提交,对数据库中数据的改变必须是永久的,即便系统出现故障时也如此

  • 并发控制

    1. 理解:并发操作指在多用户共享的系统中,许多用户可能同时操作同一数据。并发操作带来问题的原因是事务的并发操作破坏了事务的隔离性。DBMS的并发控制子系统负责协调并发事务的执行,保证数据库完整性不受破坏,避免用户得到不正确的数据

    2. 并发产生问题:丢失更新、不可重复读、读出“脏”数据

    3. 解决方案:封锁协议

      两段锁协议:可串行化的,可能发生死锁

      排他锁/X锁/写锁:若事务T对数据对象A加上X锁,则只允许T读取、修改A,其他事务都不能再对A加任何类型的锁,直到T释放A上的锁

      共享锁/S锁/读锁:若事务T对数据对象A加上S锁,则只允许T读取A,但不能修改A,其他事务只能再对A加S锁,直到T释放A上的S锁

      ① 一级封锁协议:事务T在修改数据R前必须先对其加X锁,直到事务结束才释放。可防止丢失修改

      ② 二级封锁协议:一级封锁协议加上事务T在读取数据R前先对其加S锁,读完后可释放S锁。可防止丢失修改,读“脏”数据

      ③ 三级封锁协议:一级封锁协议加上事务T在读取数据R前先对其加S锁,直到事务结束才释放。可防止丢失修改、读“脏”数据、数据重复读

  • 数据恢复

    1. 反向扫描日志文件,查找该事务的更新操作

    2. 对事务的更新操作执行逆操作

    3. 继续反向扫描日志文件,查找该事务的其他更新操作,并做同样的处理,直到回到事务的开始标志

5.8 SQL语言

  • 分类

    数据查询:SELECT

    数据定义:CREATE、DROP、ALTER

    数据操纵:UPDATE、INSERT、DELETE

    数据控制:GRANT、REVOKE

  • 建表/视图

    1. 视图:与基本表不同,是从一个/几个基本表/视图导出的虚表。数据库中只存放视图定义,而不存放视图对应的数据,这些数据仍存放在原基本表

      注意:

      ① WITH CHECK OPTION 表示对UPDATE、INSERT、DELETE操作时保证更新、插入、删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)

      ② 子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY子句、DISTINCT短语

      ③ 组成视图的属性列名全部省略/全部指定。如果省略属性列名,则隐含该视图由SELECT子查询目标列的主属性组成

    2. 数据类型:

      字符型 char(N);整形 int;浮点型 float;日期型 date YYYY-MM-DD

      NULL:可以取空值;NOT NULL:不能取空值;UNIQUE:取值唯一 ;PRIMARY KEY:列名;

      FOREIGN KEY (列名1);REFERENCES 表名2

    // 创建表
    CREATE TABLE <表名1> ( <列名> <数据类型> [列级完整性约束条件]
    [,<列名> <数据类型> [列级完整性约束条件]]...
    [,<表级完整性约束条件> ] );
    ​
    // 创建视图
    CREATE VIEW 视图名(列表名)
    AS SELECT 查询字句
    [WITH CHECK OPTION];
  • 修改与删除表

    ALTER TABLE <表名>
    [ADD <新列名> <数据类型> [列级完整性约束条件]]
    [DROP <列名/完整性约束名>]
    [MODIFY/CHANGE <列名> <数据类型>];
    ​
    DROP TABLE<表名> 
    例如,删除表Student:DROP TABLE Student
  • 对数据的增删改查

    查询条件Where与Having的区别:

    1. Where:针对单条记录的判断条件

    2. Having:针对分组之后的判断条件

    3. 考虑到可能重复,需要加Distinct关键字去掉重复

    SELECT [ALL|DISTINCT] <目标表达式> [,<目标表达式>...]
    FROM <表名> [,<表名>...]
    [WHERE <条件表达式>]
    [GROUP BY <列名1> [HAVING<条件表达式>]]
    [ORDER BY <列名2> [ASC|DESC].. ];
    ​
    // 插入数据:VALUES子句可用子查询替代
    INSERT INTO <表名> [(<属性列1> [,<属性列2>...) ] VALUES (<常量1> [,<常量2>]...);         
    INSERT INTO student VALUES('95020','李四','男','CS','18’);
    INSERT INTO SC(Sno,Cno) VALUES('95020','1');// 删除数据
    DELETE FROM <表名> [WHERE<条件>]; 
    DELETE FROM student WHERE Sno= '95019'; //删除学号为95019的学生记录// 修改数据
    UPDATE <表名> SET <列名>=<表达式>[,<列名>=<表达式>...] [WHERE <条件>];                  
    UPDATE student SET Sage=23 WHERE Sno = '95001'; // 将学生95001的年龄改为23岁
    处理类型处理子类示例/语法
    结果排序升序/降序ORDER BY 字段名 ASC | DESC
    集函数统计COUNT([DISTINCT I ALL] <列名>)
    求一列值的总和SUM([DISTINCT I ALL] <列名>)
    求一列值的平均值AVG([DISTINCT|ALL] <列名>)
    求一列值中的最大值MAX([DISTINCT|ALL] <列名>)
    求一列值中的最小值MIN([DISTINCT I ALL] <列名>)
    对结果分组将查询结果按列值分组GROUP BY <列名>
    对分组结果筛选对分组结果筛选HAVING <条件列达式>
  • 授权语句

    GRANT <权限>[,...n]
    ON<对象类型><对象名>
    TO<用户>[,···n]
    WITH GRANT OPTION // 获得权限的用户还可以将权限赋给其他用户
  • 收回权限语句

    REVOKE <权限>[,···n]
    ON<对象类型><对象名>
    FROM <用户>[,···n]
    [RESTRICT|CASCADE]

5.9 数据库安全

  • 数据的安全性:保护数据库,防止未经授权或不合法的使用造成数据泄露、非法更改、破坏

  • 数据库系统的安全措施

    权限机制:限定用户对数据操作权限,把数据操作限定在具有制定权限的用户范围内。在标准SQL中定义授权语句GRANT实现权限管理

    用户视图:用户/应用程序只能通过视图操作数据,保证视图之外的数据安全性

    数据加密:对数据库中的数据进行加密,防止数据在存储、传输过程中失密

  • 具体安全措施

    1. 用户标识鉴定:最外层的安全保护措施,可使用用户帐户、口令、随机数检验等方式

    2. 存取控制:对用户进行授权,包括操作类型(查找/插入/删除/修改)和数据对象(数据范围)的权限

    3. 密码存储和传输:对远程终端信息用密码传输

    4. 视图的保护:对视图进行授权

    5. 审计:使用一个专用文件/数据库,自动将用户对数据库的所有操作记录下来

    6. 在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它

    7. 存储过程:① 存储过程是数据库所提供的一种数据库对象,通过存储过程定义一段代码,提供给应用程序调用来执行。 ② 从安全性角度考虑,更新数据时,通过提供存储过程让第三方调用,将需要更新数据传入存储过程,而在存储过程内部用代码分别对需要的多个表进行更新,避免向第三方提供系统的表结构,保证了系统数据安全

  • 数据库恢复

    1. 理解:数据库运行过程中由于软硬件故障可能造成数据破坏,数据库恢复是在尽可能短时间内,把数据库恢复到故障发生前的状态

    2. 具体实现方法:① 定期将数据库作备份 ② 事务处理时,将数据更新(插入、删除、修改)的全部有关内容写入日志文件 ③ 系统正常运行时,按一定时间间隔,设立检查点文件,把内存缓冲区内容还未写入到磁盘中去的有关状态记录到数据文件/检查点文件 ④ 发生故障时,根据现场数据内容、日志文件的故障前映像和检查点文件来恢复系统状态

5.10 数据备份

  • 冷备份

    1. 理解:静态备份,将数据库正常关闭,在停止状态下,将数据库文件全部备份/复制下来

    2. 优点:非常快速的备份方法(只需复制文件);容易归档(简单复制);容易恢复到某个时间点(只需将文件再复制回去);能与归档方法相结合,做数据库“最佳状态”的恢复;低度维护,高度安全

    3. 缺点:单独使用时只能提供到某一时间点的恢复;实施备份全过程中,数据库必须作备份而不能做其他工作;若磁盘空间有限只能复制到磁带等其他外存上,速度慢;不能按表或按用户恢复

  • 热备份

    1. 理解:动态备份,利用备份软件,在数据库正常运行状态下,将数据库的数据文件备份出来

    2. 优点:可在表空间/数据库文件级备份,备份时间短;备份时数据库仍可使用;恢复快速,可达到秒级恢复(恢复到某一时间点);可对几乎所有数据库实体做恢复

    3. 缺点:不能出错,否则后果严重;若热备份不成功所得结果不可用于时间点的恢复;因难于维护,所以要特别小心,不允许以失败告终

  • 备份策略

    完全备份:备份所有数据

    差量备份:仅备份上一次完全备份之后变化的数据

    增量备份:备份上一次备份之后变化的数据

    (1)静态海量转储:在系统中无运行事务时进行,每次转储全部数据库

    (2)静态增量转储:在系统中无运行事务时进行,每次只转储上一次转储后更新过的数据

    (3)动态海量转储:转储期间允许对数据库进行存取或修改,每次转储全部数据库

    (4)动态增量转储:转储期间允许对数据库进行存取或修改,每次只转储上一次转储后更新过的数据

    日志文件:事务日志是针对数据库改变所做的记录,它可以记录针对数据库的任何操作,并将记录结果保存在独立的文件中

5.11 数据库故障与恢复

故障关系故障原因解决方法
事务内部的可预期故障本身逻辑,可通过事务程序本身发现程序中预先设置Rollback语句
事务内部的非预期故障不能由事务程序处理,如算术溢出、违反存储保护、并发事务发生死锁由DBMS的恢复子系统通过日志,撤消事务对数据库的修改,回退到事务初始状态
系统故障/软故障造成系统停止运行的任何事件,使得系统要重新启动常使用检查点法
介质故障/硬故障发生几率小,破坏性最大,如磁盘损坏、磁头碰撞、瞬时强磁干扰、外存破坏使用日志重做业务
计算机病毒

5.12 数据仓库、数据挖掘和大数据

  • 数据仓库:面向主题、集成的、相对稳定的、非易失的、反映历史变化(随时间变化)


  • 数据挖掘

    1. 方法:决策树、神经网络、遗传算法、关联规则挖掘算法

    2. 分类

      关联分析:挖掘出隐藏在数据间的相互关系

      序列模式分析:侧重分析数据间的前后关系(因果关系)

      分类分析:为每一个记录赋予一个标记再按标记分类

      聚类分析:分类分析法的逆过程

  • 大数据

    1. 大数据特点:Volume大量、Velocity高速、Variety多样、Value低价值密度、Veracity真实性

    2. 大数据处理系统重要特征:高度可扩展性、高性能、高度容错、支持异构环境、较短分析延迟、易用且开放的接口、较低成本、向下兼容性

      比较维度传统数据大数据
      数据量GB/TB级PB级或以上
      数据分析需求现有数据的分析与检测深度分析(关联分析、回归分析)
      硬件平台高端服务器集群平台

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三分钟“手撕”顺序表与ArrayList

前言&#xff1a; 实现顺序表的代码放开头&#xff0c;供大家更好的查阅&#xff0c;每个方法都有代码的实现。 其次我会讲解Java自带的ArrayList的实例&#xff0c;扩容机制ArrayList使用方法&#xff0c;遍历以及它的优缺点。 目录 一、自己实现的顺序表 二、Java的ArrayLi…

Python | Leetcode Python题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; class Solution:def numDistinct(self, s: str, t: str) -> int:m, n len(s), len(t)if m < n:return 0dp [[0] * (n 1) for _ in range(m 1)]for i in range(m 1):dp[i][n] 1for i in range(m - 1, -1, -1):for j in range(n …

Docker快速安装SQL Server 2022

说明&#xff1a; 系统&#xff1a;Ubuntu 24.04 LTS 拉取SQL Server Docker镜像 docker pull mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04创建数据目录 sudo mkdir /var/mssql_data sudo chmod 777 /var/mssql_data说明&#xff1a; 权限设置为777&#xff0…

ubuntu下vscode的安装包

1.引言 ubuntu下面安装vscode&#xff0c;编码调用接口时可以跳到接口api的位置&#xff0c;因此在ubuntu下安装vscode还是非常有意义的。 2.下载地址 链接&#xff1a;https://pan.baidu.com/s/1j3XNmvbL574p_hYeBqO6dg?pwdryr7 提取码&#xff1a;ryr7 --来自百度网盘超…

如何应对触摸一体机触摸屏失灵问题?怎么校准?

触摸一体机是一种功能强大的设备&#xff0c;集成了电脑、电视和触摸屏等多种功能。其中&#xff0c;触摸屏是其重要组成部分之一。然而&#xff0c;当触摸屏突然失灵时&#xff0c;我们该如何应对呢&#xff1f;以下是一些建议&#xff0c;以帮助您排除问题并重新获得正常触摸…

2024 年你应该选择哪个开源大模型?

自2017年发表的论文《Attention Is All You Need》发明了Transformer架构以来&#xff0c;自然语言处理&#xff08;NLP&#xff09;取得了巨大的进展。随着2022年11月ChatGPT的发布&#xff0c;大型语言模型&#xff08;LLM&#xff09;引起了广泛关注。 你是否想在自己的用例…

通过Zerossl给IP申请免费SSL证书, 实现https ip访问

参考通过Zerossl给IP申请免费SSL证书 | LogDicthttps://www.logdict.com/archives/tong-guo-zerosslgei-ipshen-qing-mian-fei-sslzheng-shu

授权调用: 介绍 Transformers 智能体 2.0

简要概述 我们推出了 Transformers 智能体 2.0&#xff01; ⇒ &#x1f381; 在现有智能体类型的基础上&#xff0c;我们新增了两种能够 根据历史观察解决复杂任务的智能体。 ⇒ &#x1f4a1; 我们致力于让代码 清晰、模块化&#xff0c;并确保最终提示和工具等通用属性透明化…

关于指针和数组的一些经典笔试题解析

前言 大家好&#xff0c;本篇博客将为大家展示一些曾经考过的关于指针的经典笔试题&#xff0c;里面有些题目的难度还是不小的&#xff0c;所以希望大家可以认真理解&#xff1b;如果你点开了本篇博客&#xff0c;麻烦各位大佬一键三连&#xff0c;多多支持&#xff0c;感谢&a…

Aws CodeCommit代码仓储库

1 创建IAM用户 IAM创建admin用户&#xff0c;增加AWSCodeCommitFullAccess权限 2 创建存储库 CodePipeline -> CodeCommit -> 存储库 创建存储库 3 SSH 1) window环境 3.1.1 上载SSH公有秘钥 生成SSH秘钥ID 3.1.2 编辑本地 ~/.ssh 目录中名为“config”的 SSH 配置文…

JRT连接希森美康出图

上一篇用JRT连设备实现了比较有难度的Sebia绘图设备和TCP模式连接。这次连接最常见的检验设备&#xff08;西森美康&#xff09;&#xff0c;读文件和图上传出图。 视频演示 结果格式 通道对应 接口设置 接口处理实现&#xff0c;JRT设备连接全部采用CMD驱动方式实现&am…

The First项目报告:解读去中心化衍生品交易所AVEO

2023 年12月8日凌晨&#xff0c;Solana 生态 MEV 基础设施开发商 Jito Labs 开放了 JTO 空投申领窗口&#xff0c;JTO 的价格在开盘短暂震荡后迅速攀高&#xff0c;一度触及 4.94 美元。 JTO 是加密社区这两日关注的热门标的&#xff0c;而在这场讨论中&#xff0c;除 Solana …

springboot 集成 es--未完结

基于es7.10.x版本 一、前提知识 常见的两种方式&#xff1a;spring boot提供的API 和 ES 官方提供的API ES官方&#xff1a; RestHighLevelClient&#xff1a; 适用于复杂、更细粒度控制的Elasticsearch 操作 spring boot&#xff1a; ElasticsearchRestTemplate&#xff1a…

AI智能体研发之路-模型篇(四):一文入门pytorch开发

博客导读&#xff1a; 《AI—工程篇》 AI智能体研发之路-工程篇&#xff08;一&#xff09;&#xff1a;Docker助力AI智能体开发提效 AI智能体研发之路-工程篇&#xff08;二&#xff09;&#xff1a;Dify智能体开发平台一键部署 AI智能体研发之路-工程篇&#xff08;三&am…

C++ | Leetcode C++题解之第115题不同的子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int numDistinct(string s, string t) {int m s.length(), n t.length();if (m < n) {return 0;}vector<vector<unsigned long long>> dp(m 1, vector<unsigned long long>(n 1));for (i…

[docker] docker 安全知识 - 镜像,port registry

[docker] docker 安全知识 - 镜像&#xff0c;port & registry 这是第一篇&#xff0c;安全部分还有一篇笔记就记完了 说实话&#xff0c;看完了要学的这些东西&#xff0c;感觉大多数安全问题都可以通过验证登录的合法性去解决 镜像 镜像的问题还是比较多的&#xff0…

Mybatis——入门

新建 idea 准备 数据库 create table user(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1:男, 2:女,phone varchar(11) comment 手机号 ) comment 用…

C语言 | Leetcode C语言题解之第116题填充每个节点的下一个右侧节点指针

题目&#xff1a; 题解&#xff1a; struct Node* connect(struct Node* root) {if (root NULL) {return root;}// 从根节点开始struct Node* leftmost root;while (leftmost->left ! NULL) {// 遍历这一层节点组织成的链表&#xff0c;为下一层的节点更新 next 指针stru…

调整GIF图大小的方法是什么?分享4个

调整GIF图大小的方法是什么&#xff1f;在数字化时代&#xff0c;GIF以其独特的动图魅力&#xff0c;成为了网络交流中不可或缺的一部分。无论是社交媒体、博客文章还是工作汇报&#xff0c;一个恰到好处的GIF图往往能有效吸引观众的注意&#xff0c;传递信息&#xff0c;但过大…

File类.Java

一、File类 1&#xff0c;概述&#x1f3c0;&#x1f3c0;&#x1f3c0; &#xff08;1&#xff09; java.io.File类&#xff1a;文件和文件目录路径的抽象表示形式&#xff0c;与平台无关 &#xff08;2&#xff09; File类中涉及到关于文件或文件目录的创建、删除、重命…