当前位置: 首页 > news >正文

《数据库系统概论》——陈红、卢卫-1-数据库系统概述

第1章 绪论

1.1 数据库系统概述

1. 四个基本概念

(1) 数据 (Data)
  • 定义:数据是描述事物的符号记录,是数据库中存储的基本对象。

  • 种类:其形式可以是数字、文字、图形、图像、音频、视频等多种多样的。

  • 数据的语义:数据本身并不能完全表达其内容,必须结合其语义(即数据的含义)才有意义。例如,数字93 可以是某门课的成绩,也可以是某人的体重。对于学生记录,我们需要解释其每个字段分别代表姓名、性别、出生年月等,这就是数据的解释。

(2) 数据库 (DB)
  • 定义:数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。

  • 基本特征

    • 数据按一定的数据模型来组织、描述和储存。

    • 可为各种用户共享 。

    • 冗余度较小、易于扩展。

    • 数据独立性较高。

(3) 数据库管理系统 (DBMS)
  • 定义:DBMS 是位于用户应用与操作系统之间的一层数据管理软件,是一个大型、复杂的基础软件。它在整个计算机系统软件中处于基础软件平台层,支撑着上层的应用软件。

  • 用途:科学地组织和存储数据,并高效地获取和维护数据。

  • 主要功能

    1. 数据定义功能:提供数据定义语言(DDL),用于定义数据库中的各种数据对象。

    2. 数据组织、存储和管理:高效地组织和管理数据,确定其存储结构和存取方式,以提高效率。

    3. 数据操纵功能:提供数据操纵语言(DML),实现对数据的查询、插入、删除和修改等基本操作。

    4. 事务管理和运行管理:提供统一的控制功能,确保数据的安全性、完整性,支持多用户并发使用,并在系统故障后进行恢复。

    5. 数据库的建立和维护:提供各种实用工具,支持数据的批量装载、转储、恢复和性能监控等。

    6. 其他功能:支持与其他软件系统的通信、数据转换以及异构数据库间的互操作等。

(4) 数据库系统 (DBS)
  • 定义:在计算机系统中引入数据库后的系统构成,就是数据库系统。在不引起混淆的情况下,我们常常将其简称为数据库。

2. 数据库系统的特点

a.数据结构化
  • 数据库系统中的数据不仅记录内部是结构化的,数据整体也是结构化的,数据之间存在联系。

  • 这种结构化是面向整个组织的,而不仅仅是某一个应用。

  • 数据的最小存取单位是数据项

  • 数据的结构由数据模型描述,无需应用程序自己定义。

b.数据的共享性高,冗余度低且易扩充
  • 数据面向整个系统,可被多个用户和应用共享。

    • 减少了不必要的数据冗余,节约存储空间;
    • 避免了数据不一致的问题;
    • 使得系统易于扩展 58。
c.数据独立性高
  • 物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储(如存储设备、文件结构)改变时,应用程序无需修改。

  • 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。当数据的逻辑结构(如增加新的字段、改变表结构)改变时,只要不影响应用程序用到的部分,应用程序就无需修改。

  • 数据独立性由DBMS的二级映像功能来保证。

d.数据由DBMS统一管理和控制
  • **安全性:**保护数据,防止非法使用导致的数据泄露和破坏。

  • **完整性:**保证数据的正确性、有效性和相容性。

  • 并发控制:协调多用户的并发操作,防止相互干扰产生错误结果。

  • 数据库恢复:在系统发生故障时,将数据库从错误状态恢复到某个已知的正确状态。

1.2 数据模型

1. 数据模型的概念

  • 定义:数据模型是现实世界数据特征的抽象,通俗地讲就是现实世界的模拟。它是数据库系统的核心和基础。

  • 数据模型需要满足以下三方面的要求

    • 能比较真实地模拟现实世界;

    • 容易为人所理解;

    • 便于在计算机上实现。

  • 两个层次的模型

    1. 概念模型:也称信息模型,是按用户的观点对数据和信息建模,用于数据库设计阶段。

    2. 数据模型:通常指逻辑模型和物理模型,是按计算机系统的观点对数据建模,用于DBMS的实现。

  • 数据建模过程在这里插入图片描述

2. 概念模型

  • 用途:用于信息世界的建模,是现实世界到机器世界的一个中间层次,也是数据库设计人员和用户之间进行交流的语言。

  • 基本概念在这里插入图片描述

    • 实体 (Entity):客观存在并可相互区别的事物。

      • **举例:**每一个学生都是一个实体。

      • 学号为 “20230101”,姓名为 “张三” 的这个学生是一个实体。

    • 属性 (Attribute):实体所具有的某一特性。

      • **举例:**椭圆框里面都是“学生”这个实体的属性。

      • 对张三而言,他“姓名”的属性值就是“张三”,“学号”的属性值就是“20230101”。

    • 码 (Key):唯一标识实体的属性或属性集。

      • **举例:**学生的“学号”属性,姓名可能重复,但是学号不会。因此学号就是这个实体型的码(或者称为主键)。
    • 实体型 (Entity Type):对同类实体的抽象,用实体名及其属性名集合来描述。

      • 上图本身就定义了一个实体型。这个实体型的名称是“学生”,它包含了学号、姓名、性别、出生年份、系、入学时间等一系列属性。我们可以这样表示这个实体型: 学生 ( 学号, 姓名, 性别, 出生年份, 系, 入学时间 )
    • 实体集 (Entity Set):同一类型实体的集合。

      • 举例:{学生张三,学生李四,学生王五,……}
    • 联系 (Relationship):实体内部(属性之间)以及实体之间的关联。实体间的联系主要有一对一 (1:1)一对多 (1:n)多对多 (m:n) 三种。在这里插入图片描述

  • E-R模型:==实体-联系模型(Entity-Relationship Model)==是表示概念模型最常用的方法,通常用E-R图来描述。(注:带有下划线的是主键。)

    在这里插入图片描述

3. 数据模型的三要素

  1. 数据结构:描述系统的静态特性,即数据库的组成对象以及对象间的联系。数据模型的命名通常依据其数据结构,如层次模型、网状模型、关系模型。在这里插入图片描述

  2. 数据操作:描述系统的动态特性,是对数据库中各种对象实例允许执行的操作集合,主要包括查询和更新(增、删、改)。

  3. 完整性约束:是一组完整性规则的集合,给定的数据模型中数据及其联系所具有的制约和依存规则,以保证数据的正确、有效和相容。

4. 常用的数据模型

在这里插入图片描述

(1) 层次模型
  • 数据结构:树。

  • 模型要求

    • 有且只有一个结点没有双亲结点,这个结点被称为根结点

    • 根以外的其它结点有且只有一个双亲结点。

    在这里插入图片描述

  • 特点

    • 结点的双亲是唯一的。

    • 只能直接处理一对多的实体联系。

    • 任何记录值只有按其路径查看时,才能显出它的全部意义。

    • 没有一个子女记录能脱离双亲记录值而独立存在。在这里插入图片描述

  • 处理多对多关系

    • 要表示多对多的联系,必须通过冗余节点虚拟节点的方式进行分解,核心就是将多对多拆解为一对多。在这里插入图片描述
  • 层次模型中的增删改查

    • 没有相应的双亲结点值就不能插入子女结点值;

    • 如果删除双亲结点值,则相应的子女结点值也会被同时删除;

    • 更新操作时,应该更新所有的相应记录,以保证数据的一致性。

  • 优缺点

    • 优点:模型简单,查询效率高,能很好地支持完整性。

    • 缺点:表示多对多联系不自然,插入和删除操作限制多,查询子女必须通过双亲,命令趋于程序化。

(2) 网状模型
  • 数据结构:图。

  • 模型要求:

    • 允许一个以上的结点没有双亲

    • 一个结点可以有多个双亲结点。

  • 表示方法

    • **实体型:**用记录类型描述,每个结点表示一个记录类型。

    • **属性:**用字段描述。每个记录类型可包含若干个字段。

    • **联系:**用结点之间的连线表示记录(类)型之间的一对多的父子联系。

    • 每个记录类型定义一个排序字段,称为码字段

  • 特点

    • 只能处理一对多的实体联系;
    • 任何记录值只有按照其路径查看时,才能显出全部含义。
    • 网状模型是层次模型的超集和扩展,层次模型可以视为是网状模型的特例。
  • 处理多对多关系在这里插入图片描述

    • 解决方法是创建一个全新的、作为中间桥梁的记录类型,如这个例子中的“S-C”(选课记录),它的属性不仅包含了描述这个联系本身的信息(例如“成绩”),还必须包含能唯一识别学生和课程的信息(例如“学号”和“课程号”)。
    • 这样,原来的M:N模型就被分解成了两个1:N关系:
      • 学生 与 选课 1:N;
      • 课程 与 选课 1:N;
    • 在这个新结构中,“学生”记录是“选课”记录的双亲,“课程”记录也是“选课”记录的双亲,“选课”记录同时拥有两个双亲。
  • 完整性约束——DBTG

    • 支持的概念,唯一标识取唯一值;

    • 确保双亲记录与子女记录之间是一对多联系;

    • 可以定义双亲记录子女记录之间的某些约束条件,如属籍类别

      • 插入约束:不允许插入没有相应双亲结点的子女节点。

      • 删除约束:如果删除双亲结点,则相应的子女结点也会被同时删除,这是一种级联删除。

  • 优缺点

    • 优点:能更直接地描述现实世界,性能好,存取效率高。

    • 缺点:结构复杂,DDL和DML语言复杂,用户不易使用,程序员负担重。

(3) 关系模型
  • 数据结构:在用户看来,其逻辑结构是一张二维表。在这里插入图片描述

  • 核心术语

    • **关系 **:一张二维表。如上面的“学生登记表”。

    • 元组:表中的一行。如学号2018004一行。

    • 属性:表中的一列,给每个属性起一个名字就叫作属性名。如“姓名”一列。

    • 主码:也成为码键,表中可以唯一确定一个元组的属性组。如“学号”一列。

    • :一组具有相同数据类型的值的集合,属性的取值范围来自某个域。如年龄属性的域(15~45岁),性别的域是(男,女),属性的取值范围来自某个域。

    • 分量:元组中的一个属性值。

    • 关系模式:对关系的描述,格式为 关系名(属性1, 属性2, …, 属性n)

  • 基本规范:关系中的每一个分量(单元格)必须是不可再分的数据项,即表中不允许还有表。在这里插入图片描述

  • 关系模型术语与一般表格对比

    关系术语一般表格的术语
    关系名表名
    关系模式表头
    关系一张二维表
    元组
    属性
    属性名列名
    属性值列值
    分量一条记录中的一个列值
    非规范关系表中有表
  • 数据操纵

    • 存取路径对用户隐蔽;
    • 在层次模型和网状模型中,用户或程序员在查询数据时,必须明确指出数据的存取路径(例如,从哪个父节点开始,沿着哪个指针或“系”去查找子节点);
    • 而在关系模型中,存取路径对用户是完全隐蔽的 ,用户只需要在查询时用数据操纵语言(如SQL)声明自己需要什么样的数据(即满足什么条件)。
  • 完整性约束

    • 实体完整性

      • 要求关系中的主码的值不能为空NULL。
      • **例子:**在 学生(学号, 姓名, ...) 这个关系中,学号 是主码。实体完整性就要求每个学生的学号字段都必须有一个值,不允许存在没有学号的学生记录。
    • 参照完整性

      • 要求关系中外码的值,要么必须是其参照的另一个关系中某个元组的主码值,要么为空NULL。

      • 例子:我们有两个关系:

        • 学生(学号, 姓名, ...)学号是主码。
        • 选课(学号, 课程号, 成绩),其中学号是外码,参照学生表的主码。

        参照完整性要求:选课表里每一个学号的值,都必须能在学生表里找到对应的记录。你不能添加一条学号为“S007”的选课记录,如果学生表里根本没有“S007”这个学生。

    • 用户定义的完整性

      • 确保属性的取值范围符合现实世界的约束。
  • 优缺点

    • 优点:建立在严格的数学概念基础上;概念单一(实体和联系都用关系表示);存取路径对用户隐蔽,数据独立性高、保密性高,简化了开发工作。

    • 缺点:由于存取路径对用户隐蔽,查询效率有时不如格式化模型,需要复杂的优化技术来提升性能。

1.3 数据库系统的结构

1. 数据库系统的三级模式结构

  • 模式 与实例

    • 模式:是对数据库逻辑结构和特征的描述,是“型”,相对稳定。

    • 实例:是模式的一个具体值,是数据库某一时刻的状态,是“值”,随数据更新而变动。

  • 三级模式在这里插入图片描述

a.模式
  • 也称概念模式或逻辑模式。
  • 是数据库中全体数据的逻辑结构和特征的描述,是数据库系统模式结构的中心。
  • 一个数据库只有一个模式
  • DDL定义数据的逻辑结构,以某种数据模型为基础,确定数据结构由哪些数据项构成,包括数据项的名字、类型、取值范围等。在这里插入图片描述
b.外模式
  • 也称子模式或用户模式。
  • 是数据库用户使用的局部数据的逻辑结构和特征的描述,是用户的数据视图,与某一应用有关的数据的逻辑表示。
  • 外模式通常是模式的子集一个模式可以有多个外模式,反应不同用户的需求。
  • 一个外模式可以为多个应用系统所使用,一个应用程序只能使用一个外模式。
c.内模式
  • 是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
    • 记录存储方式(如顺序存储、对存储、B+树存储、hash存储等);
    • 索引的组织方式(B+树、Bitmap,Hash等);
    • 数据是否压缩存储;
    • 数据是否聚簇存放;
    • 数据是否加密;
    • 数据存储记录结构的规定(如变长/定长、记录是否可以跨块存储等)。
  • 一个数据库也只有一个内模式。

2. 数据库的二级映像与数据独立性

  • 为了在三个抽象层次之间实现联系和转换,DBMS提供了二级映像功能。在这里插入图片描述
a.外模式/模式映像
  • 定义了外模式模式之间的对应关系。

  • 保证数据的逻辑独立性

    • 当模式改变时(例如增加新表、新字段),数据库管理员对外模式/模式映像作相应改变,使外模式保持不变;
    • 应用程序是依据数据的外模式编写的,应用程序不用修改,保证了数据与程序的逻辑独立性。
  • 举例

    • 假设一个大学的教务数据库,其数据库管理员设计的 模式 中包含一个学生表:

    初始状态

    1. 模式 —— 数据库的全局逻辑结构

      ​ DBA 定义了一个完整的学生表 STUDENT,包含了所有学生信息:

      STUDENT (Sno CHAR(8), Sname CHAR(10), Ssex CHAR(2), Sage SMALLINT, Major CHAR(20))
      -- 字段: 学号, 姓名, 性别, 年龄, 专业
      
    2. 外模式 —— 应用程序的数据视图

      ​ 现在,有一个 “成绩查询”应用程序,这个程序只需要关心学生的学号姓名,不需要其他信息。因此,DBA 为这个应用程序定义了一个外模式,我们称之为 VIEW_GRADE_QUERYVIEW_GRADE_QUERY (Sno, Sname),这个外模式只包含了 STUDENT 表中的 SnoSname 两个字段。

    3. 外模式/模式映像

      ​ 在数据库中,存在一个定义好的映像,它告诉系统如何从模式生成这个外模式。简单来说,这个映像的定义是:VIEW_GRADE_QUERY 来源于 STUDENT 表,并只取其 Sno 和 Sname 两列

    4. 应用程序

      ​ “成绩查询”应用程序的编程代码是基于 VIEW_GRADE_QUERY 这个外模式来写的。它的查询语句可能是这样的:SELECT * FROM VIEW_GRADE_QUERY WHERE Sno = '20100001';

    发生变化

    ​ 现在,由于学校管理需求的变化,DBA 决定对数据库的 模式 进行修改。为了更好地管理数据,DBA 决定将 STUDENT 表拆分为两个表:

    • STUDENT_BASIC (学生基本信息表): (Sno, Sname)

    • STUDENT_DETAIL (学生详细信息表): (Sno, Ssex, Sage, Major)

      这是一个对数据库 全局逻辑结构 (模式) 的重大改变。原来的 STUDENT 表已经不存在了。

    ​ 如果没有外模式/模式映像这一层,那么“成绩查询”应用程序会立刻出错并瘫痪,因为它查询的 STUDENT 表(或其视图)已经不存在了。但有了这个机制,DBA 可以进行如下操作:

    1. 修改外模式/模式映像

      ​ DBA 不需要 通知应用程序员修改代码。他只需要在数据库中 更新 VIEW_GRADE_QUERY 这个外模式的定义(即修改映像),使其从新的 STUDENT_BASIC 表中获取数据。

      ​ 新的映像定义变为:VIEW_GRADE_QUERY 来源于 STUDENT_BASIC 表,并取其 Sno 和 Sname 两列

    2. 外模式保持不变

      ​ 对于“成绩查询”应用程序来说,它所依赖的 外模式 VIEW_GRADE_QUERY 没有任何变化。在它看来,这个视图仍然叫 VIEW_GRADE_QUERY,并且仍然只包含 SnoSname 两列。它完全不知道底层的表已经从一张 STUDENT 表变成了两张独立的表。

    3. 应用程序无需修改

      ​ 由于应用程序所依赖的数据视图(外模式)没有改变,所以应用程序的代码 一行都不需要修改。它仍然可以执行 SELECT * FROM VIEW_GRADE_QUERY WHERE ...,数据库系统会通过新的映像,自动地从 STUDENT_BASIC 表中取出正确的数据返回给它。

b.模式/内模式映像
  • 定义了全局逻辑结构存储结构之间的对应关系。

  • 数据库中模式/内模式映像是唯一的,该映像定义通常包含在模式描述中。

  • 作用:保证数据的物理独立性。当数据库的物理存储结构改变时(例如增加索引、改变文件组织方式),DBA可以修改这个映像,使得模式保持不变,从而上层的应用程序也完全不受影响。

  • 举例

    • 假设一个大学数据库中,我们关注学生表 STUDENT

      初始状态

      1. 模式 —— 逻辑结构

        ​ 数据库的逻辑定义中,学生表是这样的:STUDENT (Sno CHAR(8), Sname CHAR(10), Major CHAR(20)),这个定义告诉我们 STUDENT 表有三个字段:学号、姓名、专业,以及它们的数据类型。这是应用程序员和用户所看到的“表结构”。

      2. 内模式 —— 物理存储结构

        ​ 在初始阶段,DBA 为了节约存储空间,决定 STUDENT 表的数据以 堆存储 的方式存放在磁盘上,并且 没有建立任何索引。这意味着记录是无序存放。

      3. 模式/内模式映像

        ​ 此时,数据库内部存在一个映像,它建立了逻辑表 STUDENT 和其物理存储之间的对应关系。这个映像可以简单理解为:

        • 逻辑表 STUDENT 对应于物理文件 student_data.dbf
        • 访问 STUDENT 表的数据需要对 student_data.dbf 文件进行 顺序扫描(全表扫描)

      发生变化

      ​ 随着学生数量的急剧增加,教务处的老师反映,按“专业”查询学生的功能变得非常慢。例如,执行 SELECT * FROM STUDENT WHERE Major = '计算机'; 这个查询需要花费很长时间,因为它需要遍历整个表。

      ​ 为了解决这个性能瓶颈,DBA 决定进行物理层面的优化。他 只修改内模式,而不触及模式:DBA 在 Major 字段上创建一个 B+树索引。这是一个纯粹的物理结构变更。

      保证物理独立性

      1. 修改内模式和映像

        ​ DBA 执行了 CREATE INDEX idx_major ON STUDENT(Major); 这样的命令。

        • 内模式被更新:数据库的物理存储描述(内模式)现在包含了这个新建的 idx_major 索引的信息。
        • 模式/内模式映像被更新:连接逻辑层和物理层的映像也随之更新。它现在记录了逻辑表 STUDENTMajor 字段可以通过 idx_major 这个索引进行快速访问。
      2. 模式保持不变

        ​ 请注意,逻辑模式 没有发生任何变化。在所有用户和应用程序看来,STUDENT 表的定义依然是 STUDENT (Sno, Sname, Major)。他们完全不知道,也不需要知道底层增加了一个索引。

      3. 应用程序无需修改

        ​ 所有基于 STUDENT 表编写的应用程序(包括教务处老师使用的查询程序)的 代码一行都不需要修改

        • 当程序再次执行 SELECT * FROM STUDENT WHERE Major = '计算机'; 时,数据库的查询优化器会通过更新后的 模式/内模式映像 发现现在有一个可用的索引 idx_major
        • 系统会自动决定使用这个索引来快速定位数据,而不是进行全表扫描。
        • 最终结果是:应用程序代码没变,但查询速度得到了数量级的提升
c.两种模式对比
特性外模式/模式映像模式/内模式映像
连接的层次连接 外模式模式
它定义了某个应用程序或用户的局部数据视图是如何从数据库的全局逻辑结构中导出的。
连接 模式内模式
它定义了数据库的全局逻辑结构与数据的物理存储结构之间的对应关系。
保证的独立性逻辑独立性
当数据库的全局逻辑结构(模式)改变时,只要应用程序所依赖的外模式不变,应用程序就无需修改。
物理独立性
当数据库的物理存储结构(内模式)改变时,上层的逻辑结构(模式)可以保持不变,从而应用程序也无需修改。
数量多个
数据库中每一个外模式都需要一个对应的外模式/模式映像。因为一个数据库可以有多个外模式,所以也存在多个这样的映像 。
唯一的
在一个数据库系统中,模式和内模式都是唯一的,因此连接它们的映像也是唯一的。
作用为不同的应用程序提供数据的 逻辑 视图,并屏蔽模式层级的变化。将数据的逻辑表示与 物理 实现相分离,屏蔽内模式层级的变化,使得DBA可以对物理存储进行优化而不影响用户和应用。
变更场景举例模式变更:将一个表拆分为两个表,或给表增加新字段。DBA只需修改此映像,保证原外模式不变,应用代码就无需改动。内模式变更:为某个字段增加索引,改变数据的存储文件或存储方式(如从堆存储改为B+树存储)。DBA修改此映像,模式和应用代码都无需改动。
  • 外模式/模式映像 关注的是 “逻辑层内部的隔离”。它保护应用程序不受数据库整体逻辑结构变化的影响。
  • 模式/内模式映像 关注的是 “逻辑层与物理层的隔离”。它保护所有用户和应用程序不受数据库物理存储结构变化的影响。

3. 数据库系统外部的体系结构

a.集中式数据库系统
  • 所有数据和DBMS都集中在一台计算机上,如主从式数据库。在这里插入图片描述

  • **优点:**简单,数据便于管理和维护。

  • 缺点:

    • 随终端用户数目增加,系统性能大幅下降;
    • 系统可靠性不高,主机出现故障,整个系统不能使用。
b.分布式数据库
  • 数据在逻辑上是一个整体,但物理地分布在网络的不同结点上。
  • 网络中每个结点都可以独立处理本地数据库中的数据,执行局部应用;同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用。
c.客户机/服务器数据库系统
  • 服务器:网络中某个(些)结点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器。

  • 客户机:其他结点上的计算机安装DBMS的外围应用开发工具,支持用户的应用,称为客户机。

  • 可以分为两种,两层结构(C/S)(Client - Sever)和三层结构(B/S)(Client - Application Sever - Sever)

  • 集中式两层结构处理方式

    • Client接受用户的SQL请求,对其进行查询检查和分析,然后发送到Server
    • Server接受场地查询,并处理(由DBMS执行)得到查询结果,并将该结果送回Client发送场地;
    • Client将回送结果返回给用户。
  • 集中式三层结构处理方式

    • Client接收用户的SQL请求,将其传送给应用服务器;
    • 应用服务器对SQL请求进行查询检查和分析,并将其发送到数据库服务器;
    • 数据库服务器接受场地查询,并处理,得到查询结果并将该结果送回应用服务器;
    • 应用服务器将所有回送结果返回给Client发送场地;
    • Client将最终查询返回给用户。
  • 分布式两层结构处理方法

    • Client接收用户的SQL请求,将其分解成若干个独立的场地查询,并将每个独立的场地查询发送到相应场地;
    • Server接受场地查询,并处理(由DBMS执行),得到局部查询结果,并将该结果送回Client发送场地;
    • Client将所有回送结果合并形成最终查询结果,返回给用户。
  • 分布式三层结构处理方法

    • Client接收用户的SQL请求,将其传送给应用服务器;
    • 应用服务器对SQL请求进行查询检查和分析,并将其分解成若干个独立的场地查询,并将每个独立的场地查询发送到相应场地的数据库服务器;
    • 数据库服务器接受场地查询,并处理,得到局部查询结果,并将该结果送回应用服务器;
    • 应用服务器将所有回送结果合并形成最终查询结果,返回给Client发送场地;
    • Client将最终查询返回给用户。
d.并行数据库系统
  • 在并行计算机上运行,利用并行处理技术提升性能。
e.云数据库系统
  • 将数据库部署在云计算环境中,以服务形式提供功能,具有良好的动态伸缩性。

1.4 数据库系统的组成

​ 一个完整的数据库系统由硬件平台及数据库软件人员三部分组成。在这里插入图片描述

  1. 硬件平台及数据库

    • 需要足够大的内存、磁盘等外部存储设备,以及较高的I/O能力。
  2. 软件

    • DBMS、操作系统、高级语言及其编译系统、以数据库管理系统为核心的应用开发工具和数据库应用系统。
  3. 人员在这里插入图片描述

  • 数据库管理员 (DBA):负责数据库的设计、建立、运行、监控和维护的核心人员。

  • 系统分析员和数据库设计人员:负责需求分析和数据库各级模式的设计。

  • 应用程序员:负责编写利用数据库的应用系统模块。

  • 最终用户:通过应用程序界面与数据库交互,完成业务操作的各类人员。

1.5 小结

  • 数据库系统概述

    • 数据库的基本概念
    • 数据管理的发展过程
  • 数据模型

    • 概念模型,E-R模型
    • 数据模型的三要素
    • 三种主要数据模型
  • 数据库系统的结构

    • 数据库系统三级模式结构
    • 数据库系统的体系结构
  • 数据库系统的组成

http://www.dtcms.com/a/393921.html

相关文章:

  • VLA-Adapter:一种适用于微型 VLA 的有效范式
  • JVM内存模型深度剖析与优化
  • 固定收益理论(六)波动率曲面、曲线及其构建模型
  • Zotero使用学习笔记
  • 分布式 | 布隆过滤器实战指南:原理、编码实现、应用与Redisson最佳实践
  • STM32的VSCode下开发环境搭建
  • Rsync+sersync实现数据实时同步
  • HttpServletRequest/Response/请求转发/响应重定向
  • 数据结构(2) —— 双向链表、循环链表与内核链表
  • 告别传统打版:用CLO 3D联动Substance,打造超写实数字服装
  • Linux | i.MX6ULL Sqlite3 移植和使用(第二十三章)
  • SpringBoot整合Smart Doc
  • 部署dataxweb
  • C#练习题——双向链表的创建,添加和删除
  • 大厂思维与“小快轻准”产品的矛盾
  • C++二进制转八进制
  • STL容器 --- 模拟实现 list
  • Java LTS版本进化秀:从8到21的欢乐升级之旅
  • yolo转tensorrt nano
  • paimon实时数据湖教程-分桶详解
  • kafka集群部署
  • Windows系统安装OpenSSL库最新版方法
  • 因果推断:关于工具变量的案例分析
  • 字节面试题:激活函数选择对模型梯度传播的影响
  • 5.Spring AI Alibaba
  • 如何优化Java并发编程以提高性能?
  • 【重量上下限报警灯红黄绿】2022-12-13
  • Node.js后端学习笔记:Express+MySQL
  • Ubuntu24.04 安装 禅道
  • StandardScaler,MinMaxScaler 学习