【软考-软件设计师精华知识点笔记】第九章 数据库技术基础

前言

由于笔记复制到CSDN样式失效,没有精力再重新完整的检查并设置一遍样式,有积分的可以前往下载word、pdf、有道云笔记版本。
需要说明的是,下载的内容与本篇分享内容一致,只有样式的区别【比如重点记忆、常考内容有颜色、字号、自重等样式,目录结构更完善,表格不是图片,等】

本章下载地址:
https://download.csdn.net/download/chengsw1993/86261349

如果发现文章存在阅读不同、显示异常等内容,请评论区告知以便修改,应该都是CSDN的markdown语法导致的。

系列文章

上一篇:【软考-软件设计师精华知识点笔记】第八章 算法分析设计

下一篇:【软考-软件设计师精华知识点笔记】第十章 网络与信息安全

基本概念

DBS:数据库系统
DBA:数据库管理员

三级模式-两级映像

内模式:管理如何存储物理的数据,对应具体物理存储文件。基本表文件和索引文件一起构成了数据库系统的内模式

模式:又称为概念模式,就是我们通常使用的基本表,根据应用、需求将物理数据划分成一张张表。

外模式:对应数据库中的视图这个级别,将表进行一定的处理后再提供给用户使用。

外模式-模式映像:是表和视图之间的映射,存在于概念级和外部级之间,若表中数据发生了修改,只需要修改此映射,而无需修改应用程序。

模式-内模式映像:是表和数据的物理存储之间的映射,存在于概念级和内部级之间,若修改了数据存储方式,只需要修改此映射,而不需要去修改应用程序。
在这里插入图片描述

数据库设计

需求分析:即分析数据存储的要求,产出物有数据流图、数据字典、需求说明书。

概念结构设计:就是设计E-R图,也即实体-属性图,与物理实现无关,说明有哪些实体,实体有哪些属性。

逻辑结构设计:将E-R图,转换成关系模式,也即转换成实际的表和表中的列属性,这里要考虑很多规范化的东西。

物理设计:根据生成的表等概念,生成物理数据库。
在这里插入图片描述

E-R模型

数据模型三要素:数据结构(所研究的对象类型的集合)、数据操作(对数据库中各种对象的实例允许执行的操作的集合)、数据的约束条件(一组完整性规则的集合)。

E-R模型:即实体-联系模型,使用椭圆表示属性(一般没有)、长方形表示实体、菱形表示联系,联系两端要标注联系类型。

联系类型:一对一1:1、一对多1:N、多对多M:N。

属性分类:简单属性和复合属性(属性是否可以分割)、单值属性和多值属性(属性有多个取值)、NULL属性(无意义)、派生属性(可由其他属性生成)。
在这里插入图片描述

关系模型

关系模型也即数据库中常用的表,包括实体的属性,标识出实体的主键和外键,如下:

S(Sno,Sname,SD,Sage,Sex) 学生S关系模式,属性为学号、姓名、系、年龄和性别
T(Tno,Tname,Age,Sex) 教师T关系模式,属性为教师号、姓名、年龄和性别
C(Cno,Cname,Pcno) 课程C关系模式,属性为课程号、课程名和先修课程号
SC(Sno.Cno,Grade) 学生选课SC关系模式,属性为学号、课程号和成绩

模型转换

E-R图转换为关系模型:每个实体都对应一个关系模式;联系分为三种:
1:1联系中,联系可以放到任意的两端实体中,作为一个属性(要保证1:1的两端关联);
1:N的联系中,联系可以单独作为一个关系模式,也可以在N端中加入1端实体的主键;
M:N的联系中,联系必须作为一个单独的关系模式,其主键是M和N端的联合主键。

关系代数运算

并:结果是两张表中所有记录数合并,相同记录只显示一次。
交:结果是两张表中相同的记录。
差:S1-S2,结果是S1表中有而S2表中没有的那些记录。
在这里插入图片描述

笛卡尔积:S1×S2,产生的结果包括S1和S2的所有属性列,并且S1中每条记录依次和S2中所有记录组合成一条记录,最终属性列为S1+S2属性列,记录数为S1乘以S2记录数。

投影:实际是按条件选择某关系模式中的某列,列也可以用数字表示。符号π

选择:实际是按条件选择某关系模式中的某条记录。符号σ
在这里插入图片描述

自然连接的结果显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录。

设有关系R、S如下左图所示,自然连接结果如下右图所示:
在这里插入图片描述

自然连接和笛卡儿积的关系:以上面为例

笛卡儿积列是A B C A C D,自然连接是A B C D,所以先要投影到1 2 3 6列,再选择值相等的条件。
R⋈S = π₁¸₂¸₃¸₆(σ₁=₄∧₃=₅(R×S) )

∧表示且

规范化基础

函数依赖

给定一个X,能唯一确定一个Y,就称X确定Y,或者说Y依赖于X,表示方法:X→Y,例如Y=X*X函数。

函数依赖又可扩展以下两种规则:

部分函数依赖:A可确定C,(A,B)也可确定C,(A,B)中的一部分(即A)可以确定C,称为部分函数依赖。

传递函数依赖:当A和B不等价时,A可确定B,B可确定C,则A可确定C,是传递函数依赖;若A和B等价,则不存在传递,直接就可确定C。
在这里插入图片描述

键与约束

超键:能唯一标识此表的属性的组合。

候选键:超键中去掉冗余的属性,剩余的属性就是候选键。

主键:任选一个候选键,即可作为主键。

外键:其他表中的主键。

主属性:候选键内的属性为主属性,其他属性为非主属性。

实体完整性约束:即主键约束,主键值不能为空,也不能重复。

参照完整性约束:即外键约束,外键必须是其他表中已经存在的主键的值,或者为空。

用户自定义完整性约束:自定义表达式约束,如设定年龄属性的值必须在0到150之间。

*范式【考点】

第一范式1NF:所有属性都不可以再分割为两个或多个分量。

第二范式2NF:当且仅当R是1NF,且每一个非主属性完全依赖主键(不存在部分依赖)时,R就是2NF。比较典型的例子就是候选键是单属性,单属性是不可能存在部分函数依赖的。

第三范式3NF:当且仅当R是2NF,且R中没有非主属性传递依赖于候选键时,R就是3NF(此时,也不会存在部分依赖)。一般解决方法是拆分传递依赖的非主属性为一个新的关系模式。本质就是主键要直接决定所有非主属性,不能通过非主属性间接决定。

BC范式BCNF:R属于BCNF是指 当且仅当其F中每个依赖的决定因素必定包含R的某个候选码,实例如下:

设有关系模式R(S,T,J),依赖集为F={SJ→T,T→J}。

画图可以求出其候选键为(S,T),(S,J)。
在这里插入图片描述

凡是求范式都需要先求出候选键,候选键从入度为0的开始,能够遍历整个关系的就是候选键。

数据库安全

事务管理

特性:(操作)原子性、(数据)一致性、(执行)隔离性、(数据改变)持久性

并发控制

问题:脏读、不可重复读、幻读

三级封锁协议

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

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

一级封锁协议:事务在修改数据R之前必须先对其加X锁,直到事务结束才释放。一级封锁协议可防止丢失修改,并保证事务T是可恢复的。但不能保证可重复读和不读"脏"数据。

二级封锁协议:一级封锁协议的基础上加上事务T在读数据R之前必须先对其加S锁,读完后即可释放S锁。二级封锁协议可防止丢失修改,还可防止读"脏"数据。但不能保证可重复读。

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

两段锁协议:所有事务必须分两个阶段对数据项加锁和解锁。其中扩展阶段是在对任何数据进行读、写操作之前,首先要申请并获得对该数据的封锁;收缩阶段是在释放一个封锁之后,事务不能再申请和获得任何其他封锁。若并发执行的所有事务均遵守两段封锁协议,则对这些事务的任何并发调度策略都是可串行化的。遵守两段封锁协议的事务可能发生死锁。

封锁粒度小则并发性高,但开销大;封锁粒度大则并发性低但开销小,综合平衡照顾不同需求以合理选取适当的封锁的粒度是很重要的。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库事务的隔离级别有 4 个,由低到高依次为 Read uncommitted (读未提交)、 Read committed( 读已提交 ) 、 Repeatable read (可重复读)、 Serializable( 序列化 )。这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。

  1. Oracle 支持的 2 种事务隔离级别:READ COMMITED,SERIALIZABLE。Oracle 默认的事务隔离级别为: READ COMMITED

  2. Mysql 支持 4 中事务隔离级别,Mysql 默认的事务隔离级别为:REPEATABLE READ
    在这里插入图片描述

数据库故障

在这里插入图片描述

数据库备份

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

优点是非常快速的备份方法、容易归档(直接物理复制操作);

缺点是只能提供到某一时间点上的恢复,不能做其他工作,不能按表或按用户恢复。

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

优点是可在表空间或数据库文件级备份,数据库扔可使用,可达到秒级恢复;

缺点是不能出错,否则后果严重,若热备份不成功,所得结果几乎全部无效。

完全备份:备份所有数据。

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

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

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

分布式数据库

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

分片模式

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

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

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

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

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

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

数据仓库

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

由此可知,数据仓库的目的不是为了应用,是面向主题的,用来做数据分析,集成不同表,而且是相对稳定的,一般不会做修改,同时会在特定的时间点,做大量的插入,反映历史的变化。依据上述,可以提炼出数据仓库的形成过程,如下图所示:
在这里插入图片描述

数据挖掘

由上图可知,形成数据仓库后,有两个作用,一个是用来做数据的查询、分析、生成报表。另一个是使用

数据挖掘工具对这些历史数据进行挖掘,查找数据间的关系,发现剩余价值。

数据挖掘的分析方法

关联分析:关联分析主要用于发现不同事件之间的关联性,即一个事件发生的同时,另一个事件也经常发生。

序列分析:序列分析主要用于发现一定时间间隔内接连发生的事件,这些事件构成一个序列,发现的序列应该具有普遍意义。

分类分析:分类分析通过分析具有类别的样本特点,得到决定样本属于各种类别的规则或方法。分类分析时首先为每个记录赋予一个标记(一组具有不同特征的类别),即按标记分类记录,然后检查这些标定的记录,描述出这些记录的特征。

聚类分析:聚类分析是根据“物以类聚”的原理,将本身没有类别的样本聚集成不同的组,并且对每个这样的组进行描述的过程。

商业智能 BI

Bl系统主要包括数据预处理、建立数据仓库、数据分析和数据展现四个主要阶段。数据预处理是整合企业原始数据的第一步,它包括数据的抽取(Extraction)、转换(Transformation)和加载(Load)三个过程(ETL过程);

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

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

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

反规范化技术

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

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

技术手段包括:增加派生性冗余列,增加冗余列,重新组表,分割表。主要就是增加冗余,提高查询效率,是规范化操作的逆操作。

大数据

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

大数据和传统数据的比较如下:
在这里插入图片描述

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

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

SQL语言

SQL语言中的语法关键字,不区分大小写
创建表create table;
指定主键primary key();
指定外键foreign key();
修改表alter table;
删除表drop table;
索引index,视图view;

SELECT … FROM table WHERE … GROUP BY … HAVING … ORDER BY … LIMIT …

猜你喜欢

转载自blog.csdn.net/chengsw1993/article/details/125987932