软考笔记——3.2数据库(2)

1、事务管理

事务提交commit,事务回滚rollback.

事务:由一系列操作组成,这些操作,要么全做,要么全不做,拥有四种特性,详解如下:

(操作)原子性:要么全做,要么全不做。

(数据)一致性:事务发生后数据是一致的,例如银行转账,不会存在A账户转出,但是B账户没收到的情况。

(执行)隔离性:任一事务的更新操作直到其成功提交的整个过程对其他事务都是不可见的,不同事务之间是隔离的,互不干涉。

(改变)持续性:事务操作的结果是持续性的。

【例题】“当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程对其他事务都;是不可见的”,这一性质通常被称为事务的(   C   )。
A.原子性                B.一致性                C.隔离性                D.持久性

2、并发控制

事务是并发控制的前提条件,并发控制就是控制不同的事务并发执行,提高系统效率,但是并发控制中存在下面三个问题::

丢失更新:事务1对数据A进行了修改并写回,事务2也对A进行了修改并写回,此时事务2写回的数据会覆盖事务1写回的数据,就丢失了事务1对A的更新。即对数据A的更新会被覆盖。

不可重复读:事务2读A,而后事务1对数据A进行了修改并写回,此时若事务2再读A,发现数
据不对。即一个事务重复读A两次,会发现数据A有误。

读脏数据:事务1对数据A进行了修改后,事务2读数据A,而后事务1回滚,数据A恢复了原来
的值,那么事务2对数据A做的事是无效的,读到了脏数据。

3、封锁协议

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

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

一级封锁协议:事务在修改数据R之前必须先对其加X锁,直到事务结束才释放。可解决丢失更新问题
二级封锁协议:一级封锁协议的基础上加上事务T在读数据R之前必须先对其加S锁,读完后即可释放S锁。可解决丢失更新、读脏数据问题

三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可解决丢失更新、读脏数据、数据重复读问题

4、数据库安全

安全措施和级别:

措施说明
用户标识和鉴定最外层的安全保护措施,可以使用用户账号、口令及随机数检验等方式
存取控制对用户进行授权,包括操作类型(如查找、插入、删除、修改等动作)和数据对象(主要是数据范围)的权限
密码存储和传输对远程终端信息用密码传输
视图的保护对视图进行授权
审计使用一个专用文件或数据库,自动将用户对数据库的所有操作记录下来

数据故障:

故障关系故障原因解决方法
事务本身的可预期故障本身逻辑咋程序中预先设置Rollback语句
事务本身的不可预估故障算术溢出、违反存储保护由DBMS的恢复子系统通过日志,撤销事务对数据库的修改,回退到事务初始状态
系统故障系统停止运转通常使用检查点法
介质故障外存被破坏一般使用日志重做业务

5、数据库备份

静态转储:即冷备份,指在转储期间不允许对数据库进行任何存取、修改操作

  • 优点是非常快速的备份方法、容易归档(直接物理复制操作)
  • 缺点是只能提供到某一时间点上的恢复,不能做其他工作,不能按表或按用户恢复

动态转储:即热备份,在转储期间允许对数据库进行存取、修改操作,因此,转储和用户事务可并发执行

  • 优点是可在表空间或数据库文件级备份,数据库扔可使用,可达到秒级恢复
  • 缺点是不能出错,否则后果严重,若热备份不成功,所得结果几乎全部无效

完全备份:备份所有数据

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

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

日志文件:在事务处理过程中,DBMS把事务开始、事务结束以及对数据库的插入、删除和修改的每一次操作写入 日志文件。一且发生故障,DBMS的恢复子系统利用日志文件撤销事务对数据库的改变,回退到事务的初始状态

6、分布式数据库

局部数据库位于不同的物理位置,使用一个全局DBMS将所有局部数据库联网管理,这就是分布式数据库。其体系结构如下图所示:

分片模式

水平分片:将表中水平的记录分别存放在不同的地方

垂直分片:将表中的垂直的列值分别存放在不同的地方

分布透明性

分片透明性:用户或应用程序不需要知道逻辑上访问的表具体是如何分块存储的

位置透明性:应用程序不关心数据存储物理位置的改变

逻辑透明性:用户或应用程序无需知道局部使用的是哪种数据模型

复制透明性:用户或应用程序不关心复制的数据从何而来

7、数据仓库

数据仓库是一种特殊的数据库,也是按数据库形式存储数据的,但是目的不同:数据库经过长时间的运行,里面的数据会保存的越来越多,就会影响系统运行效率,对于某些程序而言,很久之前的数据并非必要的,因此,可以删除掉以减少数据,增加效率,考虑到删除这些数据比较可惜,因此,一般都将这些数据从数据库中提取出来保存到另外一个数据库中,称为数据仓库。

由此,可知,数据仓库的目的不是为了应用,是面向主题的,用来做数据分析,集成不同表,而且是相对稳定的,一般不会做修改,同时会在特定的时间点,做大量的插入,反映历史的变化

依据上述,可以提炼出数据仓库的形成过程,如下图所示:

8、数据挖掘

由上图可知,形成数据仓库后,有两个作用,一个是用来做数据的查询、分析、生成报表。另一个是使用数据挖掘工具对这些历史数据进行挖掘,查找数据间的关系,发现剩余价值。

数据挖掘的分析方法

  • 关联分析:关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生
  • 序列分析:序列分析主要用于发现一定时间间隔内接连发生的事件,这些事件构成一个序列,发现的序列应该具有普遍意义
  • 分类分析:分类分析通过分析具有类别的样本特点,得到决定样本属于各种类别的规则或方法。分类分析时首先为每个记录赋予一个标记(一组具有不同特征的类别),即按标记分类记录,然后检查这些标定的记录,描述出这些记录的特征
  • 聚类分析:聚类分析是根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,并且对每个这样的组进行描述的过程

9、商业智能

BI系统主要包括数据预处理、建立数据仓库、数据分析和数据展现四个主要阶段

数据预处理是整合企业原始数据的第一步,它包括数据的抽取(Extraction) 、转换(Transformation)和加载(Load) 三个过程(ETL过程)

建立数据仓库则是处理海量数据的基础

数据分析是体现系统智能的关键,一般采用联机分析处理(OLAP) 和数据挖掘两大技术。联机分析处理不仅进行数据汇总/聚集,同时还提供切片、切块、下钻、上卷和旋转等数据分析功能,用户可以方便地对海量数据进行多维分析。数据挖掘的目标则是挖掘数据背后隐藏的知识,通过关联分析、聚类和分类等方法建立分析模型,预测企业未来发展趋势和将要面临的问题

在海量数据和分析手段增多的情况下,数据展现则主要保障系统分析结果的可视化。

10、反规范化技术

由前面介绍可知,规范化操作可以防止插入、更新、删除异常和数据冗余,一般是通过模式分解,将表拆分,来达到这个目的

但是表拆分后,解决了上述异常,却不利于查询,每次查询时,可能都要关联很多表,严重降低了查询效率,因此,有时候需要使用反规范化技术来提高查询效率

技术手段包括:增加派生性冗余列,增加冗余列,重新组表,分割表

主要就是增加冗余,提高查询效率,为规范化操作的逆操作

11、大数据

特点:大量化、多样化、价值密度低、快速化。

大数据和传统数据的比较如下:

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

要处理大数据,一般使用集成平台,称为大数据处理系统,其特征为:

高度可扩展性、高性能、高度容错、支持异构环境、较短的分析延迟、易用且开放的接口、较低成本、向下兼容性。

12、SQL语言

SQL语言中的语法关键字,不区分大小写

创建表create table;

指定主键primary key();

指定外键foreign key(); 

修改表alter table;

删除表drop table;

索弓lindex,视图view;

CREATE TABLE S( Sno CHAR(5) NOT NULL UNIQUE,
Sname CHAR(30) UNIQUE,
Status
CHAR(8),
City CHAR(20)
PRIMARY KEY(Sno));
ALTER TABLE S ADD Zap CHAR(6);
DROP TABLE Student
CREATE UNIQUE INDEX S-SNO ON S(Sno);
CREATE VIEW CS-STUDENT

数据库查询select...from...where;

分组查询group by,分组时要注意select后的列名要适应分组,having为分组查询附加条件:select sno,avg(score) from student group by sno having(avg(score)>60)

更名运算as: select sno as “学号” from t1

字符串匹配like, %匹配多个字符串,_匹配任意一个字符串:select * from t1 where sname like 'a_ '

数据库插入insert into...values():insert into t1 values('a' ,66)

数据库删除delete from...where:delete t1 where sno=4
数据库修改update...where:update t1 set sname='aa' where sno=3
排序order by,默认为升序,降序要加关键字DESC:select * from t1 order by sno desc

SELECT [ALL[DISTINCT]<目标列表达式>[,<目标列表达式>]...
    FROM <表名或视图名>[,<表名或视图名>]
        [WHERE <条件表达式>]
        [GROUP BY <列名1>[HAVING<条件表达式>]]
        [ORDER BY <列名2>[ASCIDESC]...]

DISTINCT:过滤重复的选项,只保留一条记录

UNION:出现在两个SQL语句之间,将两个SQL语句的查询结果取或运算,即值存在于第一句或第二句都会被选出

INTERSECT:对两个SQL语句的查询结果做与运算,即值同时存在于两个语句才被选出

MIN、AVG、MAX:分组查询时的聚合函数

解析:自然连接后的属性列取两个表所有属性列,但相同属性列只显示-次,因此共7列; SELECT
后是要查询显示的列,与投影π下标相同,将ABCDEFG七列从1开始编号, 取第1,3,6,7列; FROM后面是要查询的表格,是R和S两张表,以逗号分开; WHERE后面是条件,自然连接取的是属性相同且值相同的记录,因此有R的B,C列与s的B,C列相等,表达式中的条件是第3列小于第6列,也加上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值