【软件设计师】——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级或以上
      数据分析需求现有数据的分析与检测深度分析(关联分析、回归分析)
      硬件平台高端服务器集群平台

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python 办公自动化-生成ppt文本和图

最终样式 代码实现 # 可编辑折线+写入文字 成功 # 问题: 设置字体类型和加粗和字体为微软雅黑,是只改了字母和数字的字体,中文没变化 pip install pptx_ea_font 这个库可以解决这个问题 import pandas as pd import pptx_ea_font import matplotlib.pyplot as plt from pp…

深入学习 torch.distributions

0. 引言 前几天分几篇博文精细地讲述了《von Mises-Fisher 分布》, 以及相应的 PyTorch 实现《von Mises-Fisher Distribution (代码解析)》, 其中以 Uniform 分布为例简要介绍了 torch.distributions 包的用法. 本以为已经可以了, 但这两天看到论文 The Power Spherical dist…

瑞士初创公司着手开发世界上第一台活体处理器

前言 研究人员首次提供了一个在线远程平台&#xff0c;用于对生物神经元进行实验。瑞士生物计算初创公司FinalSpark推出了Neuroplatform&#xff0c;该项目使用16个人脑类器官来开发所谓的世界上第一个活体处理器&#xff0c;也称为生物处理器。 用于 Neuroplatform 的多电极阵…

基于Java+SpringBoot+Mybaties-plus+Vue+elememt + uniapp 新闻资讯 的设计与实现

一.项目介绍 本系统分为 后端 和 小程序端 后端&#xff1a;点击登录按钮 设置个人中心、 管理员账号数据维护、 基础数据维护、 短视频信息维护(包括查看短视频留言、短视频收藏)、 论坛维护(增删改查帖子信息&#xff0c;包括查…

对于高速信号完整性,一块聊聊啊(15)

此实例所用软件为ADS软件&#xff0c;ADS可以做有源、无源仿真&#xff0c;也可以做前仿、后仿仿真。需要注意前仿还没有PCB板子&#xff0c;所以都是手动直连&#xff0c;不需要导入模型。 本文将搭建一个前仿无源链路。 1&#xff09;、在当前工作空间下新建原理图&#xf…

【yolov10】使用自己的数据集训练目标检测模型

【yolov10】使用自己的数据集训练目标检测模型 一、anaconda安装二、环境配置三、数据集制作1、labelimg的安装2、使用labelimg 四、正片1、下载yolov10源码2、数据集目录3、训练4、推理 一、anaconda安装 直接参考前一篇博客&#xff1a; https://blog.csdn.net/m0_71523511/…

网易面试:手撕定时器

概述&#xff1a; 本文使用STL容器-set以及Linux提供的timerfd来实现定时器组件 所谓定时器就是管理大量定时任务&#xff0c;使其能按照超时时间有序地被执行 需求分析&#xff1a; 1.数据结构的选择&#xff1a;存储定时任务 2.驱动方式&#xff1a;如何选择一个任务并执…

CC工具箱使用指南:【淹没区分析(BHM)】

一、简介 群友定制工具。 这个工具适用面比较小。 工具的应用场景如下&#xff1a; 提供一个淹没区范围&#xff0c;类型是面要素。统计这个范围内的一些线、面要素的面积或长度。 给定的几个数据有&#xff1a;耕地、永久基本农田、房台、道路&#xff08;线&#xff09;…

LeetCode - 贪心算法 (Greedy Algorithm) 集合 [分配问题、区间问题]

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/139242199 贪心算法&#xff0c;是在每一步选择中&#xff0c;都采取当前状态下&#xff0c;最好或最优&#xff08;即最有利&#xff09;的选择&…

【MySQL】库的操作+表的操作

库的操作表的操作 1.库的操作1.1创建数据库1.2删除数据库1.3查找数据库1.4修改数据库1.5数据库备份和恢复1.6查看连接情况 2.库的操作2.1创建表2.2查看表结构2.3修改表2.4删除表 点赞&#x1f44d;&#x1f44d;收藏&#x1f31f;&#x1f31f;关注&#x1f496;&#x1f496; …

Petalinux 制作ZYNQ镜像文件流程

1概述 在Zynq-7000 SoC中搭建运行Linux&#xff0c;嵌入式软件栈。 处理器系统引导是一个分两个阶段的过程。第一个阶段是一个内部 BootROM&#xff0c;它存储 stage-0 的引导代码。BootROM 在 CPU 0 上执行&#xff0c;CPU 1 执行等待事件&#xff08;WFE&#xff09;指令。…

单片机通信协议(1):SPI简介

关于SPI SPI&#xff08;串行外设接口&#xff09;是板载设备间通信接口之一。它是由摩托罗拉公司&#xff08;飞思卡尔半导体&#xff09;推出的。由于其简单性和通用性&#xff0c;它被纳入各种外围设备中&#xff0c;并与飞利浦I2C总线并列。 SPI的三线或四线信号数量比IIC…

connection problem,giving up

参考&#xff1a; https://zhuanlan.zhihu.com/p/93438433 仅仅安装 sudo apt-get install xrdp 在用RDP远程的时候总是卡在登录界面&#xff0c;connection problem,giving up&#xff0c; some problem… 第一步&#xff1a; sudo apt-get install xserver-xorg-core sudo…

接口性能测试复盘:解决JMeter超时问题的实践

在优化接口并重新投入市场后&#xff0c;我们面临着一项关键任务&#xff1a;确保其在高压环境下稳定运行。于是&#xff0c;我们启动了一轮针对该接口的性能压力测试&#xff0c;利用JMeter工具模拟高负载场景。然而&#xff0c;在测试进行约一分钟之后&#xff0c;频繁出现了…

【OpenVINO™】在C#中使用 OpenVINO™ 部署 YOLOv10 模型实现目标

文章目录 1. 前言1.1 OpenVINO™ C# API1.2 YOLOv10 2. 模型获取2.1 源码下载2.2 配置环境2.3 下载模型 3. Yolov10 项目配置3.1 项目创建与环境配置3.2 定义模型预测方法3.2.1 定义目标检测模型方法3.2.2 使用OpenVINO™ 预处理接口编译模型 3.2 模型预测方法调用 4. 项目运行…

在Linux中 --help 和 -h 的区别

在Linux命令行工具中&#xff0c;--help 和 -h&#xff08;而不是 -help&#xff09;是常见的选项&#xff0c;用于显示工具的帮助信息。 --help&#xff1a; 这是一个长选项&#xff08;long option&#xff09;&#xff0c;用于提供详细的帮助信息。许多工具都支持这个选项。…

这款信创FTP软件,可实现安全稳定的文件传输

信创&#xff0c;即信息技术应用创新&#xff0c;2018年以来&#xff0c;受“华为、中兴事件”影响&#xff0c;国家将信创产业纳入国家战略&#xff0c;并提出了“28n”发展体系。“8”具体指金融、石油、电力、电信、交通、航空航天、医院、教育等主要行业。目前企业使用比较…

ElementPlus-日期选择器实现周选择

ElementPlus的日期选择器实现周选择&#xff0c;并且显示的是日期范围&#xff0c;其效果如下&#xff1a; 首先修改中文语言环境&#xff0c;否则日期选择器是从周日开始的。在main.js文件中加上以下代码&#xff1a; import ElementPlus,{dayjs as elDayjs} from element-…

【包邮送书】你好!C语言

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

使用YOLOv9训练和测试自己的数据集

任务&#xff1a;检测舌头上的裂纹和齿痕 已经有了labelme标注的数据集&#xff0c;并且转为了coco格式 参考&#xff1a; 详细&#xff01;正确&#xff01;COCO数据集&#xff08;.json&#xff09;训练格式转换成YOLO格式&#xff08;.txt&#xff09;_coco数据集的train…