目录

一、相关概念

二、数据库的体系结构

1. 集中式体系结构

2. 客户-服务器体系结构

3.并行处理系统

4. 分布式数据库体系结构

(1)分片

 (2)透明性

三、数据库的三级模式结构

1.三级模式

2.两级映像


一、相关概念

  • 数据:描述事物的符号记录,如图书信息、学生档案。

  • 数据库管理系统(DBMS):位于用户和操作系统之间的数据管理软件,是数据库系统的核心,负责数据的定义、操纵、维护等。

  • 数据库管理员:负责数据库的规划、设计、维护和性能优化的专业人员。

  • 数据库系统:由数据库、硬件、软件和人员组成的完整系统。

组成部分

描述

数据库

长期存储在计算机内、有组织的、可共享的大量数据的集合,遵循特定结构。

硬件

计算机系统的物理设备,含存储数据所需的外部设备。

软件

包含操作系统、数据库管理系统(DBMS) 及各类应用程序。

人员

系统分析和数据库设计人员、应用程序员、最终用户、数据库管理员(DBA)。

二、数据库的体系结构

        数据库系统的体系结构受数据库系统运行所在的计算机系统的影响很大,尤其是受计算机体系结构中的联网并行分布这些方面的影响。

1. 集中式体系结构

        所有核心组件(数据、DBMS、应用程序)都运行在同一台物理主机上,不与其他计算机系统进行数据交互的数据库架构。用户通过终端连接到中心主机,所有计算和数据处理任务都由中心主机完成。

        特点:简单、易管理,但扩展性差、单点故障风险。

2. 客户-服务器体系结构

      数据库存放在服务器中,应用程序可以根据需要安排在服务器或客户工作站上,实现了客户端程序和服务器端程序的协同工作。这种结构解决了集中式结构和文件服务器结构的费用和性能问题。

        特点:负载分担、灵活性高。目前多数Web应用和桌面数据库使用这种结构(如MySQL、PostgreSQL的典型部署)。

3.并行处理系统

        提供并行地使用多个 CPU 和磁盘来提高处理速度和 I/O 速度。有些应用需要在每秒钟处理很大数量的事务,这些应用的需求推动了并行数据库系统的发展。集中式数据库系统和客户 - 服务器数据库系统的能力不够强大,不足以处理这样的应用。

        并行机器有若干种体系结构模式。如图 1-4 所示是其中比较重要的几种,图中的 M 表示存储器,P 表示处理器,圆柱体表示磁盘。

  • 共享内存:所有的处理器共享一个公共的存储器。
  • 共享磁盘:所有的处理器共享一组公共的磁盘,共享磁盘系统有时又称作群集。
  • 无共享:各处理器既不共享公共的存储器,又不共享公共的磁盘。
  • 层次的:这种模式是前几种体系结构的混合。

4. 分布式数据库体系结构

        数据库存储在几台计算机中,这些计算机不共享主存储器或磁盘。数据分布在不同地理位置的计算机上,由通信网络连接;每个场地具备独立处理能力,也可协同其他场地工作。

        (1)分片

        把一个大的逻辑表,拆分成若干个小片段,存到不同的计算机(也叫节点)上。主要有两种拆法:

分片方式

核心逻辑

水平分片

从 行(元组)的角度,按条件将关系划分为不同片段;要求关系的每一行必须至少属于一个片段,必要时可重构关系。

垂直分片

从 列(属性)的角度,按条件将关系划分为不同片段;各片段必须包含关系的主键属性,便于通过连接恢复原关系。

        举例:

        水平分片:

        按 user_id 分成两片:

        分片 A:user_id 为 101、102→ 订单 1、2、4

        分片 B:user_id 为 103→ 订单 3

每个分片包含完整的列,但只包含部分行。
合并 A ∪ B 即可还原原表。

        垂直分片:

        按列拆成两个分片(都必须包含主键 order_id):

        分片 X:order_id, user_id, amount

        分片 Y:order_id, created_at

两个分片通过 order_id 可以 JOIN 回原表。

         分片是手段,解决了数据量太大、一台电脑存不下的问题。

        (2)透明性

        分布式数据库要达成的一个目标,让使用者(应用或用户)感觉就像在操作一个普通的、集中式的数据库,完全不用考虑数据被拆到了哪里、存了几份。

透明性类型

核心描述

地位

分片透明性

用户 / 应用程序无需知道逻辑上访问的表具体如何分片存储

最高级别的透明性

位置透明性

用户知道表被分片了(如知道有“用户分片1”、“用户分片2”),但不知道这些分片具体存放在哪台计算机上。操作时只需指定分片名,系统会自动去相应节点执行。

逻辑透明性(局部数据模型透明性)

用户需要知道数据在本地节点上的模型和访问方式,用户自己得清楚每个节点怎么操作。

最低级透明性

复制透明性

用户不知道数据被复制了几份。系统自动维护副本的一致性,用户写一个UPDATE,系统会自动去更新所有副本。

        举例:

  • 分片透明性:

SELECT * FROM orders WHERE user_id = 300;

        用户不知道表被分片了

        系统自动判断:去节点1执行

        用户也不需要写 orders_part1

  • 位置透明性:

SELECT * FROM orders_part1 WHERE user_id = 300;

        用户知道表被分成了 orders_part1、orders_part2

        但不知道 orders_part1 在哪台机器上(IP、端口未知)

        系统根据分片名找到对应节点

  • 逻辑透明性:

        用户需要知道:orders_part1 是一个 MySQL 表,节点2 是 PostgreSQL

        因此要写不同的 SQL 语法或通过特定接口访问

        系统不帮助统一查询语言或模型    

  • 复制透明性:

        假设 orders_part1 实际有 2 个副本(节点1、节点3):

UPDATE orders SET amount = 400 WHERE order_id = 2;

        用户只写一条 UPDATE

        系统自动更新节点1 和 节点3 上的两个副本

        用户完全不知道存在多个副本

        透明性是目标,解决了系统复杂度太高、开发人员用起来复杂的问题。

        特点:高可用、可扩展,但增加了同步和一致性管理的复杂性。

三、数据库的三级模式结构

1.三级模式

模式结构

别名 / 对应关系

核心描述

独立性保障

概念模式(模式)

对应基本表

描述数据库全局的逻辑结构,不涉及物理存储。

-

外模式

对应视图 

是用户与数据库的接口,为用户提供个性化数据视角。

面向用户,保障逻辑独立性

内模式

对应存储模式

描述数据的物理存储方式和结构。

面向物理存储,保障物理独立性

2.两级映像

        模式/内模式映像:连接概念模式和内模式。当物理存储改变时,修改此映像即可,应用程序不变 → 保障物理独立性

        外模式/模式映像:连接外模式和概念模式。当表结构改变时,修改此映像即可,应用程序不变 → 保障逻辑独立性

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐