首页 > 数据库 >【高级数据库】第一章 第02讲 DBMS概述

【高级数据库】第一章 第02讲 DBMS概述

时间:2022-12-21 14:37:06浏览次数:47  
标签:02 DBMS 管理器 数据库 事务 查询 执行


【高级数据库】第一章 DBMS系统概述

  上一讲主要介绍数据库、数据库管理系统、数据仓库等的基本概念。本节详细讲解数据库管理系统的原理。

第02讲 DBMS概述

  DBMS又称数据库管理系统,主要是对数据库进行管理,提供用户(应用程序)执行数据操作,提供数据库管理员进行关系模式的定义。因此DBMS主要由两个不同的命令来源,分别是用户(应用程序)和数据库管理员(DBA)
  DBMS的系统架构如图所示:


【高级数据库】第一章 第02讲 DBMS概述_数据

  数据定义命令主要由用户(应用程序)和DBA两个来源。对于DBA来说(图中右上角),主要是对数据库关系模式以及权限进行管理。例如对数据表格式、字段的约束条件、表之间的关联等进行预先定义,并且可以进行修改等操作。而用户(图中左上角)则是在已定义的关系模式基础上进行数据的增删改查等操作。可知绝大多数交互是沿着左侧路径进行。
  用户或应用程序使用数据操纵语言(DML)启动某个活动,该活动不影响数据库模式,但可能影响数据库内容,或者从数据中抽取数据。
  用户或应用程序发送的数据操纵请求主要分为两个部分:
  (1)查询。由查询编译器对查询请求进行分析和优化,生成查询计划传给执行引擎。执行引擎向资源管理器发出请求,资源管理器中包含有关数据文件的格式、记录,和索引等。执行引擎将查询的请求传给缓冲区管理器,其可以从磁盘内的数据取出到主存缓冲区中。缓冲区管理器与存储管理器进行通信完成数据获取。
  (2)事务。事物是一系列的增删改查命令的集合。用户或应用程序发出事务命令后,由事务管理器接受进行分析,并通过日志管理器和并发控制管理器进行操作。其中:
  1. 并发控制管理器负责保证事务的原子性和孤立性;
  2. 日志和恢复管理器负责事务的持久性。


相关知识

(1) DBMS中的主存与缓冲区管理器
  数据库中的数据通常驻存在辅助管理器中(磁盘),执行一系列的操作则需要在主存上。DBMS中的存储管理器即控制数据在磁盘上的放置和在磁盘与主存之间的移动,更细的讲,存储管理器跟踪文件在磁盘上的位置并获得缓冲区管理器所要求的的文件的磁盘块号。
  缓冲区管理器则负责对主存进行划分,并将磁盘中的数据传送到每个分区。

(2)什么是事物处理?
  通常将一个或多个数据库操作的组合成为事务。事务是一系列数据库操作的命令集合。事务必须作为一个原子,要么全部执行,要么全部不执行,且在表面上是一个独立的执行单位。事务处理器主要包括:
  1. 日志记录。日志管理器可以保证系统发生故障或崩溃时,通过恢复管理器查看数据库变化日志并可以恢复到任意时刻的状态。日志保证了事务的持久性。
  2. 并发控制。多个事务可以并发执行。
  3. 死锁解决。当事务之间由于缺少必要资源和均处于停滞阶段,即发生死锁,事务管理器需要检测到死锁状态并进行干预。

(3)事务的ACID性质是什么?
  “A”指原子性:事务内的所有操作要么全部执行,要么全部终止。当整个事务在执行一半时发生错误,需要事务管理器对已执行的操作进行回滚。
  “C”指一致性:保证数据库之间的约束是一致的。
  “I”指孤立性:事务是可以并发执行的,但对于用户层面来讲,每个事务执行又是相互独立的。
  “D”指持久性:通过日志和恢复管理器可以保证事务一旦执行后,影响记录是不会消失的。

(4)什么是查询处理器?
  查询处理器主要包括两个部分:
  1. 查询编译器:根据用户提出的查询命令,DBMS可将其翻译成查询计划,查询计划是在数据上执行的一系列操作。查询编译器主要由查询分析器、查询预处理器和查询优化器组成。
  2、执行引擎:负责执行选中的查询计划中的每一步。

(5)相关术语


【高级数据库】第一章 第02讲 DBMS概述_数据库_02


上一讲:​​数据库概述​​下一讲:数据库基础知识概览


  博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。


标签:02,DBMS,管理器,数据库,事务,查询,执行
From: https://blog.51cto.com/u_15919249/5959905

相关文章

  • 数据库连接池
    池化技术:准备一些预先的资源,过来就连接预先准备好的编写一个连接池,实现一个接口DataSource 开源数据实现:DBCPC3P0Druid使用了这些数据库连接池之后,就不需要编写连......
  • 2020第十七届华为杯数模C题——P300脑电信号数据预处理算法
    脑电信号数据预处理  这两天的数学建模选的C题,目标是要处理脑电P300信号的数据并进行相关预测任务。该题重点是数据预处理,因此根据最后实验的结果,分享相关的预处理方法以......
  • C# Oracle数据库连接并执行类
    OracleHelper.cs usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Text;usingSystem.Data;usingSystem.Con......
  • C# SQLServer数据库连接并执行类
    SQLHelper.cs usingSystem;usingSystem.Collections.Generic;usingSystem.Configuration;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Linq;......
  • MySQL统计某个数据库中有多少张表
    在一些命令行下无法查看某个数据库一共有多少张表的时候,可以采用下面的SQL语句SQL语句SELECTcount(*)TABLES,table_schemaFROMinformation_schema.TA......
  • [Ubuntu 21.02] Build wine-8.0-rc1 from source
    wiki2Build(x64only)./configure--enable-win64sudoaptinstallclangsudoaptinstallflexbisonlibfreetype6-devmingw-w64Installmissingdependencies......
  • 20221322 实验八-Web部署 实验报告
    Web部署(openEuler中基于LAMP部署WordPress)实验过程一、配置openEuler华为云openEuler安装后,没有配置yum源,我们通过重新配置。cd/etc/yum.repos.dviopenEuler_x86......
  • 2022年12月18日晚19:30足球赛总结
    今天是世界杯决赛日,北京时间23点开球,而我们滨江队与中联的比赛提前于19:30开始。中联是一个劲敌,实力强悍,但是我认为并没有五条友球队强。这次的比赛场地是熟悉的水口劲......
  • NoSQL 数据库案例实战 --MongoDB 数据库 用户管理
    MongoDB数据库用户管理​​前言​​​​一、创建用户​​​​二、登录数据库​​前言本环境是基于Centos7.8系统构建mongodb-enterprise-4.2.8学习环境具体构建,请参考......
  • jsp中下拉菜单显示数据库里的内容
    <%@pageimport="java.sql.*"%><%@pageimport="java.sql.ResultSet"%><%@pageimport="com.wdq.Utils.ConnectionMySql"%><%@pageimport="java.sql.Connection"%><%@page......