软件设计师考试—第九章 数据库系统知识

第九章 数据库系统知识

1 基本概念

数据库系统DBS是一个采用了数据库技术,有组织地、动态地存储大量相关数据的集合,由数据库、硬件、软件和人员组成。

数据库管理系统DBMS是数据库系统的核心软件,主要实现对共享数据有效地组织、管理和存取。

  • 主要功能:数据定义DDL、数据操纵DML、数据库运行管理、数据的组织存储和管理、数据库的建立和维护等。
  • 特征:数据结构化且统一管理、有较高的数据独立性(包括逻辑独立、物理独立)、数据控制功能(包括数据的安全性、完整性、并发控制、故障恢复)
  • 分类:关系型数据库系统RDBS、面向对象的数据库系统OODBS、对象关系数据库系统ORDBS
1.1 数据库体系结构

1.集中式数据库系统:数据是集中的,数据管理是集中的;数据库系统的所有功能都集中在DBMS所在的计算机上。

2.客户端/服务器(C/S)结构:客户端负责数据表示服务,服务器负责数据库服务;数据库系统功能分为前端和后端,前端和后端交互通过SQL或应用程序接口(ODBC和JDBC)。

3.并行数据库系统:多个物理上连在一起的CPU,分为共享内存式多处理器、无共享式并行体系结构。

4.分布式数据库:包括物理上分布逻辑上集中、物理上分布逻辑上分布两种。

1.2 分布式数据库

分布式数据库:局部数据库位于不同的位置,使用一个全局DBMS对所有局部数据库进行联网管理。

在这里插入图片描述

分布式数据库特点:

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

分布式数据库透明性

  • 分片透明:用户或应用程序不需要直到逻辑上访问的表数据是如何分片/分块存储的,他们对数据的操作在全局关系上进行。
  • 复制透明:用户或应用程序不必关心数据库在网络中各个节点的复制情况,被复制的数据的更新由系统自动完成。
  • 位置透明:用户不必知道所操作的数据存储的物理位置及位置变换情况。
  • 局部映像透明性(逻辑透明):最低层次的透明性,该透明性提供数据到局部数据库的映像,用户不必关心局部DBMS支持那种数据模型,使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。

分片模式

  • 水平分片:将表中水平的记录分别存放在不同的地方。
  • 垂直分片:将表中垂直的列值分别存放在不同的地方。
1.3 三级模式结构

三级模式:

  • 内模式:又称存储模式,是数据物理结构和存储方式的描述;物理层,对应存储文件。
  • 概念模式:又称模式,是数据的逻辑结构和特征的描述;逻辑层,对应基本表。
  • 外模式:又称用户模式或子模式,是用户与数据库系统的接口;视图层,对应视图。

两级映像:

  • 外模式/模式映像:逻辑独立性,数据的逻辑结构发生变化,如修改了表中数据,用户程序可以不用修改,只需要修改外模式和概念模式之间的映像。
  • 模式/内模式映像:物理独立性,数据的存储方式发生变化时,应用程序、逻辑结构不需要变化,只需要修改概念模式和内模式之间的映像。

在这里插入图片描述

2 数据库设计

数据库设计过程

  • 需求分析:根据当前和未来应用的数据要求进行需求分析,产物有数据流图、数据字典、需求说明书
  • 概念结构设计:生成概念模型,设计E-R图
  • 逻辑结构设计:根据转换规则、规范化理论,将E-R图转换为关系模式
  • 物理设计:根据生成的表等,生成物理数据库 (聚簇索引是物理设计阶段的任务,属于内模式)

在这里插入图片描述

2.1 概念结构设计
2.1.1 概念结构设计过程

在这里插入图片描述

合并/集成的方法:

  • 多个局部E-R图一次集成。
  • 逐步集成,用累加的方式一次集成两个局部E-R图。

集成产生的冲突及解决方法(针对同一对象):

  • 属性冲突:包括属性域冲突和属性类型取值冲突
  • 命名冲突:包括同名异义和异名同义
  • 结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的属性个数和属性排列次序不完全相同。
2.2.2 E-R图

在这里插入图片描述

1.实体:矩形表示,现实世界中可以区别于其他对象的事件或事物。实体的集合称为实体集。

2.属性:椭圆形表示。实体某方面的特性。

(1)简单属性和复合属性:

  • 简单属性:原子的,不可再分的。
  • 复合属性:可以细分为更小的部分,即划分为别的属性,如地址可以细分为省市县等。

(2)单值属性和多值属性:

  • 单值属性:定义的属性对于一个特定的实体都只有单独的一个值。
  • 多值属性:在某些特定的情况下,一个属性可能对应一组值。

(3)NULL属性:表示无意义或不知道。

(4)派生属性:可以从其他属性得来。

3.联系:菱形表示。实体的联系分为实体内部的联系和实体与实体之间的联系。

(1)两个不同实体集之间的联系:一对一(1:1) 、一对多(1:n) 、多对多(m:n)

(2)两个以上不同实体集之间的联系(三元联系): 1 : 1 : 1 、 1 : 1 : n 、 1 : m : n 、 r : m : n 1:1:1、1:1:n 、1:m:n 、r:m:n 1:1:11:1:n1:m:nr:m:n

分析方法:以其中一个实体为中心,若能与其他实体的一个实例进行关联,则中心实体的连通数为1,若有多于一个实例能与另外的实体实例进行关联,则中心实体的连通数为多。
在这里插入图片描述

(3)同一个实体集内的二元联系
在这里插入图片描述

扩充的E-R模型

弱实体:双线矩形表示。一个实体的存在必须依赖另一个实体,如家属与职工、附件与邮件。

特殊化:某些实体一方面具有一些共性,另一方面还具有各自的特性,即一个实体可以按照某些特征区分为几个子实体,如学生实际集可以分为研究生、本科生等。

聚集:一个联系作为另一个联系的一端。

在这里插入图片描述

2.2 逻辑结构设计
2.2.1 关系模式相关概念

数据模型

三要素:数据结构、数据操作、数据的约束条件

分类:层次模型(树形结构)、网状模型、面向对象模型、关系模型

关系模型

关系模型:用表格结构表达实体集与实体集之间的联系,特点是描述的一致性。

  • 目或度:关系模式中属性的个数
  • 超键:可以唯一标识元组的属性
  • 候选键(候选码):可以唯一标识元组,且无冗余的属性
  • 主键(主码):多个候选键选择其中一个为主键
  • 主属性与非主属性:组成候选码的属性是主属性,其他的是非主属性
  • 外键(外码):其他关系的主键
  • 全码:关系模式中所有属性组成这个关系的候选码

关系的3种类型:基本关系表、查询表、视图表(虚表)

完整性约束:

  • 实体完整性约束:主键唯一非空
  • 参照完整性约束:外键要么是其他关系的主键要么是空
  • 用户自定义完整性约束:触发器可以设定复杂的约束条件
2.2.2 E-R图转关系模式

实体:一个实体必须转换为一个关系模式

联系

(1)一对一

  • 独立关系模式:并入两端主键及联系自身属性(主键:任一端主键)

  • 归并关系模式(任意一端):并入另一端属性及联系自身属性(主键:保持不变)

在这里插入图片描述

独立关系:

校长(姓名,性别,职称,年龄 )学校(校名,地址,电话) 任职(校名,姓名,任职时间)

归并关系:

校长(姓名,性别,职称,年龄,校名,任职时间) 学校(校名,地址,电话)

校长(姓名,性别,职称,年龄) 学校(校名,地址,电话,姓名,任职时间)

(2)一对多

  • 独立关系模式:并入两端主键及联系自身属性(主键:多端主键)

  • 归并关系模式(多端):并入另一端属性及联系自身属性(主键:保持不变)

在这里插入图片描述

独立关系:

客户(客户名,身份证号,地址,联系电话) 账户 (账户号,余额) 存款者(账户号,身份证号,开户时间)

归并关系:

客户(客户名,身份证号,地址,联系电话) 账户 (账户号,余额,身份证号,开户时间)

(3)多对多

  • 独立关系模式:并入两端主键及联系自身属性(主键:两端主键的组合键)

在这里插入图片描述

独立关系:

学生(学号,姓名,性别,年龄) 课程(课程号,课程名,授课老师) 考试(学号课程号,成绩)

2.2.3 关系代数

并 交 差

在这里插入图片描述

笛卡尔积 投影 选择

在这里插入图片描述

自然连接:特殊的等值连接,去除重复的列属性。

在这里插入图片描述

效率问题:笛卡尔积计算数据量极大,效率最低,因此如果有条件查询时,先条件查询再笛卡尔积查询可以提高计算效率。

在这里插入图片描述

例题答案:BD

2.3.4 规范化理论

1.规范化理论概念

函数依赖:设R(U)是属性U的一个关系模式,X和Y是U的子集,r为R的任一关系,如果对于r中任意两个元组u和v,只要有u[X]=v[Y],则称X函数决定Y,或Y函数依赖X,记为X—>Y。X为决定因素,Y为被决定元素。

  • 部分函数依赖:(A,B)—>C,A—>C,称C对A部分函数依赖。

  • 传递函数依赖:A—>B,B—>C,称C对A传递函数依赖。

在这里插入图片描述

  • 函数依赖的公理系统(ArmStrong公理系统)

在这里插入图片描述

2.候选键求解

过程:

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

  2. 找出入度为0的属性集,以该属性集合为起点,尝试遍历有向图,若能遍历所有节点,则该属性集为候选键;

  3. 若入度为0的属性集不能遍历所有节点,则需要将一些中间节点并入入度为0的属性集中,直至该集合可以遍历所有节点,最终集合为候选键。

在这里插入图片描述

在这里插入图片描述

例题答案:AC

3.范式判断

规范化:通过分解将低级范式的关系模式转换为高级范式的关系模式。通过判断分解后的模式达到几级范式来评价规范化的程度。

解决的问题:数据冗余 修改异常 插入异常 删除异常。

第一范式(1NF):关系模式中每个属性都是不可再分的原子值。

第二范式(2NF):关系模式R是第一范式(1NF),且每一个非主属性完全依赖候选键(消除非主属性对候选键的部分依赖)。

第三范式(3NF):关系模式R是第二范式(2NF),且R中没有非主属性传递依赖于候选键(消除非主属性对候选键的传递依赖)。

BC范式(BCNF):关系模式R的依赖集F中每个依赖的决定因素必定包含R的某个候选码(消除主属性对候选键的部分依赖和传递依赖)。

快速判断:候选键只有一个属性,至少满足2NF;没有非主属性至少可以满足3NF。

在这里插入图片描述

例题答案:BCC

4.模式分解

模式分解:通过拆分属性实现范式之间的转换,将具有部分函数依赖和传递依赖的属性分离出来,来进行关系模式优化。包括保持函数依赖分解、无损分解两种方式。

  • 保持函数依赖分解:对于关系模式R进行分解,使分解后的多个关系模式仍然保持原来的依赖集不变。注意:冗余函数依赖可以消除不需要考虑。
  • 无损分解 :接一个关系模式分解成若干关系模式后,通过自然连接、投影运算仍能还原到原来的关系模式

​ 分解还原:分解后的关系模式之间存在同名属性列,且存在以该属性列为左侧决定因素的函数依赖,然后还原与之对应的被决定因素。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

例题答案:AD

3 SQL语言

  • 数据查询:SELECT
  • 数据定义:CREATE、DROP、ALTER
  • 数据操纵:INSERT、UPDATE、DELETE
  • 数据控制:GRANT、REVORK

在这里插入图片描述

在这里插入图片描述

4 并发控制

1.事务的特性:ACID

  • 原子性Atomicity:事务是原子的,要么做要么不做。
  • 一致性Consistency:事务执行的结果必须保证数据库从一个一致性状态到另一个一致性状态。
  • 隔离性Isolation:事务相互隔离。当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的。
  • 持久性Durability:一旦事务成功提交,即使数据库崩溃,其对数据库的更新操作也永久有效。

2.并发问题

  • 丢失更新:事务1和事务2先后对数据进行修改并写回,事务2的写回的数据会覆盖事务1的数据,因此丢失了事务1对数据的更新。
  • 不可重复读数据:事务1读取数据后,事务2对数据进行修改写回,此时事务1再次读取数据发现数据有误。
  • 读脏数据:事务1修改数据后,事务2读取数据,之后事务1回滚回复原数据,那么事务2读到了脏数据。

3.封锁协议

锁的类型

  • S锁/读锁/共享锁:若事务T对数据对象A加了S锁,则A能被T读取,但不能修改,其他事务只能对A再加S锁,不能加X锁,直到T释放A上的S锁。
  • X锁/写锁/排它锁:若若事务T对数据对象A加了X锁,则A能被T读取和修改,其他事务不能再对A加任何锁,直到T释放A上的X锁。

封锁协议

一级封锁协议:事务在修改数据前先加X锁,直到事务结束才释放,可以解决丢失更新的问题。

二级封锁协议:一级封锁协议的基础上加上事务在读数据之前先加S锁,读完后即可释放S锁,可以解决丢失更新、读脏数据的问题。

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

5 数据仓库

特点:

  • 面向主题:数据按主题组织
  • 集成的:消除元数据中的不一致性,提供整个企业的一致性全局信息
  • 相对稳定的:主要进行查询操作,只有少量的修改和删除操作,或者不删除
  • 反映历史变化(随着时间变化):记录了企业从过去某一时刻到当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测。

形成过程:

  • 数据预处理:抽取、转换、加载(ETL)
  • 建立数据仓库:处理海量数据的基础
  • 数据分析:系统智能的关键,采用数据联机分析(OLAP)和数据挖掘技术进行多维数据分析
  • 数据展现:数据可视化

在这里插入图片描述

数据挖掘的分析方法

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

大数据

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

  • 数据量:PB或以上

  • 数据分析需求:深度分析(关联分析、回归分析)

  • 硬件平台:集群平台,又称大数据处理系统

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值