数据库体系结构:
集中式数据库
我们在见到比较多的集中式数据库。什么是集中式数据库呢?
它的数据是集中的那我们数据放在一台电脑上。其次数据的管理也是集中的,由一个数据库管理系统来进行管理;
- 集中式数据库:所使用数据库的应用程序跟我们的数据库管理系统是在同一台电脑上;
- 早期的一些应用了。它即使不联网也可以用,也是我们常说的单机系统;
- 像一些Oracle server的话,像office自带的access,
- 这种也是可以组建集中式数据结构的
特点:数据集中管理、一致性和完整性、便于数据共享、高性能
- 更容易保证数据,一致性和完整性:统一的事务处理和约束机制,
- 可以确保在对数据进行更新和操作时,遵循相同的规则和逻辑,避免数据不一致的情况发生
- 集中式数据库通常配备高性能的硬件设备,如大型服务器、高速存储设备等,
- 能够处理大量的数据和高并发的查询请求,提供较快响应和处理速度;
并行数据库
中级考试并没有出现过,了解到它有共享内存式的,还有无共享式的并行数据库就可以了;
C/S结构
C/S 结构,即客户端 / 服务器(Client/Server)结构,是一种软件系统架构模式
它将软件系统分为客户端和服务器端两个部分,通过网络进行通信和交互,我们一般称它分为前端以及后端
在这个过程当中,C以外还可以有 B 这种结构。所谓的B,这个B(browse) 其实就是浏览器它的一个代称;
C 一般指的是应用程序的客户端居多了。我们的服务器和应用程序分开在两个节点的;
这种通信的过程当中会用到数据接口,我们叫做数据库的中间件;
- JDBC—Java的、还有ODBC是oracle的;
功能分布合理:
- 这种功能分布使得系统的职责明确,便于开发、维护和扩展
- 客户端主要负责与用户进行交互,提供友好的用户界面,接收用户输入并向服务器发送请求
- 服务器端则承担着数据存储、管理和处理的任务,如数据库管理、业务逻辑处理等,将处理结果返回给客户端
可扩展性较好:业务需求发生变化 扩展,分别对客户端和服务器端进行升级和修改,不会影响整个系统运行。
安全性较高:服务器端可以对客户端的访问进行严格的权限控制和身份验证
性能优化:客户端和服务器端,根据各自性能需求进行独立硬件配置,
- 可以针对不同的任务进行性能优化
分布式数据库:
分布式是数据库当中所用到的内容是分散的;
它包括物理上分布、逻辑上分布、物理+逻辑上分布的;为了做一些容灾的工作:
在不同的物理节点上去存,并且有一些节点上的数据还是复制出来作用于备份,都是分布式数据库的一些特点;
- 比如:大地震,如果数据文件是存在某一台电脑上,那这台服务器一崩,大家都懵了;
- 一些银行的数据,都是目前都是分布式存储的
分布式数据库特点:
数据独立性:它的这些数据在物理节点上是分开存的
- 用不同的电脑进行存储,仍然会保持数据的逻辑独立性 和 物理独立性
- 除此以外,它还有数据分布的独立性。在后面看到相应的分布透明性了,就是数据独立性的体现;
适当增加数据冗余度:在不同的场地存储同一数据的多个副本
- 可以提高系统的可靠性和可用性,同时也能提高系统性能,即当系统中某个节点发生故障时,
- 因为数据有其他副本在非故障场地上,对其他所有场地来说,数据仍然是可用的,从而保证数据的完备性
集中与自治共享结合的控制结构:各局部的DBMS可以独立地管理局部数据库,具有自治的功能
- 同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用
全局的一致性、可串行性和可恢复性:
分布式数据库透明性:
分片透明:是指用户不必关心数据是如何分片|分块的,
- 它们对数据的操作在全局关系上进行,即如何分片对用户是透明的。
复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成;
- 复制指的就是数据的冗余存储的。它的这种的部本情况,用户不需要关注数据哪一个节点?
- 有几个复制,有几个备份,全部由我们的数据库管理系统来负责操作;
位置透明:用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的;
- 他不需要了解自己操作的数据到底是放在哪一个或者哪一些站点去存储,跟用户都是没关系的;
局部映像透明-逻辑透明:是最低层次的透明性,该透明性提供数据到局部数据库的映像,
- 用户不必关心局部DBMS支持哪种数据模型、哪种数据操纵语言,数据模型和操纵语言转换是由系统完成
- 因此,局部映像透明性对异构型、同构异质的分布式数据库系统是非常重要的;
数据库三级模式结构 & 数据仓库
⭐三级模式结构:
数据库的三级模式结构
三级模式:主要针对是集中式、C/S 架构,
常见数据库:Oracle、SQL Server,都会能用到三级模式 —— 两级映射
为什么需要三级模式:
在最早期的时候,是手工用一些条目来记录,记录了之后需要做一定的 数据共享;
又有了一些在线的数据管理,后面呢针对这些数据,开发应用程序,形成了:C/S 结构的数据库系统;
在这当中,我们发现:用户程序最终所对应的并不是整个数据库本身,而数据库本身的实质又是什么呢?
- 整个数据库的实质仍然是数据的集合,在数据库管理系系统当中,本质还是数据库文件;
- 这种物理数据库 —— 也就是我们讲到的具体的文件,称为:类模式 - 存储模式;
💡小注:标准术语叫内模式(存储模式),原文 “类模式” 属于口误笔记,考试写内模式。
而实际情况,用户、应用程序,并不需要特别关注,类模式;
我应用程序增加了一个填空内容,就要去修改具体的数据库文件,
我的数据库文件从这台电脑 C 盘搬到了 D 盘,就要重新修改整个应用程序;
应用程序和我们的物理文件之间,耦合度不应该这么强,为了解决耦合度问题:采用分层的结构;
数据库的三级模式结构是对数据的三个抽象级别:为了实现数据的转换
数据库管理系统必须提供两层映射功能:外模式和概念模式的映射,概念模式和内部模式的映射
外模式
外模式也称子模式(subschema)或用户模式,它是数据库(包括应用程序员和最终用户)
能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图;
外模式通常是模式的子集。一个数据库可以有多个外模式。由于它是各个用户的数据视图
不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则其外模式描述就是不同的
即使对模式中同一数据,在外模式的结构、类型、长度、保密等级等都可以不同;
同一外模式也可以为某一用户的多个应用系统所使用,
但一个应用程序只能使用一个外模式;
外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所应用的外模式中的数据;
外模式‑概念模式映射
关联用户视图与全局逻辑结构。
当模式修改(如新增字段)时,通过调整映射关系保持外模式不变,确保应用程序无需改动
✨对应特性:逻辑独立性
概念模式
概念模式也称:模式、逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
模式实际上是数据库数据在逻辑上的视图。一个数据库只有一个模式;
数据库模式以一种数据模型为基础,综合地考虑了用户需求,并将这些需求有机地结合成一个逻辑整体;表
定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等
而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求,模式数据定义语言:模式 DDL;
概念模式‑内模式映射
定义逻辑结构与物理存储的对应关系。当存储方式变更(如索引类型调整)时,仅需更新映射,无需重构模式
✨对应特性:物理独立性
内模式
内模式也称存储模式(storage schema),
一个数据库只有一个内模式,它是数据物理存储和存储方式的描述,是数据在数据库内部的组织方式;
- 记录的存储方式是堆存储还是按照某个(些)属性值的升(降)序存储,
- 或按照属性值聚簇(cluster)存储;索引按照什么方式组织,是 B + 树索引还是 hash 索引;
- 数据是否压缩存储,是否加密;存储记录结构有何规定,长结构还是变长结构,能不能跨物理页存储;
📌补充考试记忆点
- 一库:1 个概念模式,1 个内模式,多个外模式
- 两级映射作用:
- 外模式 / 模式映射 →逻辑数据独立性:全局逻辑改,应用程序不用改
- 模式 / 内模式映射 →物理数据独立性:物理存储改,上层逻辑不用改
数据仓库
数据仓库是面向分析的集成化数据平台,分析的结果给企业提供决策支持;
企业中一般先有数据库,然后有数据仓库;可以没有数据仓库,但是不能没有数据库;
数据仓库特点
- 面向主题性:在数仓中开展分析,首先确定分析的主题,然后基于主题寻找,
- 采集跟主题相关的数据,一个分析的主题可以对应多个数据源
- 集成的: 消除了源数据中的不一致性,提供整个企业的一致性全局信息
- 因为同一个主题的数据可能来自不同的数据源,它们之间会存在着差异(异构数据)
- 诸如字段同名不统一、单位不统一、编码不统一,因此在集成的过程中需要进行:ETL(抽取、转换、加载)
- 相对稳定的 (非易失的):主要进行查询操作,只有少量的修改和删除操作 (或是不删除)
- 数仓上面的数据几乎没有修改操作,都是分析的操作,数仓是分析数据规律的平台,不是创造数据平台;
- 反映历史变化 (随着时间变化):记录了企业当前各个阶段的信息,可对发展历程和未来趋势做定量分析和预测
- 数仓是一个持续维护建设的东西。站在时间的角度,数仓的数据成批次变化更新
- 一天一分析(T+1)、一周一分析(T+7)等
- 离线数仓,当下还有比较火的实时数仓
数据仓库的过程:
第一阶段是数据采集阶段:主要任务是将企业各部门的数据整合到一起,形成一个统一的数据仓库
- 这个阶段的关键技术是 ETL(抽取、转换、加载)技术,即从各个业务系统中抽取数据,
- 经过清洗和转换,将数据加载到数据仓库中。此阶段重点是数据的整合和规范化;
第二阶段是数据建模阶段:主要任务是对数据进行分析和建模,以便更好地支持决策分析。
- 这个阶段的关键技术是维度建模技术,即将数据按照时间和空间等维度进行组织和分析
- 这个阶段的重点是数据的分析和挖掘
第三阶段是数据分析阶段:主要任务是通过对数据进行分析和挖掘,为企业提供更加准确、全面的决策支持
- 这个阶段的关键技术是** OLAP(在线分析处理,联机数据分析)** ,即通过多维度的数据分析,
- 帮助企业更好地了解自身的业务状况和市场趋势。这个阶段的重点是数据的分析和应用。
第四阶段是数据可视化阶段:主要任务是将数据分析的结果通过可视化的方式呈现出来,
- 以便企业更加直观地了解自身的业务状况和市场趋势。这个阶段的关键技术是数据可视化技术,
- 即将数据分析的结果通过图表、图像等方式呈现出来,这个阶段的重点是数据的可视化和可理解化
OLAP和 OLTA:
- 数据仓库是典型的OLAP 是分析的意思,联机分析系统
- OLTP是我们常见的数据库:联机事务系统,它所着重的是我们数据库从记录到增查;
正确答案:B
- A选项:是数据清理
- B选项:联机分析
- C选项:联机事务
- D选项:ETL呢是整个数据抽取的过程;