【高级数据库】第一章 第02讲 DBMS概述
【高级数据库】第一章 DBMS系统概述
上一讲主要介绍数据库、数据库管理系统、数据仓库等的基本概念。本节详细讲解数据库管理系统的原理。
第02讲 DBMS概述
DBMS又称数据库管理系统,主要是对数据库进行管理,提供用户(应用程序)执行数据操作,提供数据库管理员进行关系模式的定义。因此DBMS主要由两个不同的命令来源,分别是用户(应用程序)和数据库管理员(DBA)
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概述相关推荐
- 数据库 第一章 绪论
1 数据库系统概述 1.1 数据库的4个基本概念 1.数据(Data) 数据(Data)是数据库中存储的基本对象 数据的定义 描述事物的符号记录 2.数据库(Database) 数据库的定义 数据库( ...
- 山西农业大学c语言答案,第一章C语言及程序设计概述-东北农业大学教务处.doc...
全国高等农林院校"十一五"规划教材 C语言程序设计 孙力 主编 中国农业出版社 内容简介 本书是全国高等农林院校"十一五"规划教材之一. 全书共11章,分别介绍 ...
- 学堂在线_操作系统_notes_第0-2讲_OS概述、OS实验环境准备
学堂在线_操作系统_notes_第0-2讲_OS概述.OS实验环境准备 - 20220626.No.1821 - 操作系统OS 综合了 C语言 + 数据结构与算法DSA + 计算机组成. OS 是 控 ...
- 【高级数据库】第一章 第01讲 数据库概述
[高级数据库]第一章 DBMS系统概述 博主学院最近有关于高级数据库的课程,为了很好的记录高级数据库的相关知识点,开辟了以<数据库系统实现(第二版)>为基础,结合学院课程具体的内容,编 ...
- css高级教程第一章笔记
2019独角兽企业重金招聘Python工程师标准>>> 大年30,今天刚刚看完第一章,上传上来一些笔记. 1.css:可以将文档的表现部分与内容分开 2.id:是唯一的,id可以用来 ...
- Oracle数据库-第一章:select语句,数据查询操作
前言: 1.一个认知 认知什么是oracle? oracle:商业运用第一的关系型数据库 实质:关系型数据库 了解oracle数据库发展历史(文档) 2.二个概念 数据库:数据存储的仓库 关系型数据库 ...
- c++输出的值精确到小数点后5位_七年级上册第一章有理数专讲专练(适合暑期预习后巩固)...
供同学们复习使用. 专题一 有理数的概念 一.典题剖析 例1 <九章算术>中注有"今两算得失相反,要令正负以名之",意思是:今有两数若其意义相反,则分别叫做正数与负数, ...
- UNIX环境高级编程-第一章
1.UNIX体系结构: 严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境.我们通常将这种软件称为内核,因为它相对较小,而且位于环境的核心.图1-1显示了UNIX系统的体 ...
- 【读书笔记】C#高级编程 第一章
这一章主要就是一个大体的介绍. 有几个概念需要注意下. 1: CTS: Common Tpye System 通用类型系统. .Net平台有多种语言,比如用VB.NET 写了一个类,然后C#需要继承这 ...
最新文章
- 年过四十的男人,为何路越走越窄?
- 数据库元数据数据字典查询_4_列出给定表的索引信息
- 这Hadoop分布式文件系统
- 模式识别听课笔记【武汉理工大学】
- python搭建https代理服务器_使用NGINX作为HTTPS正向代理服务器
- 微软为 Chrome 带来更流畅的页面滚动效果,来自 Edge
- 1011 A+B和C
- c语言联盟,程序设计(C语言)(山东联盟)
- 给兆芯出主意:开发一批新指令,交叉授权
- w10计算机字体怎么设置在哪里设置,win10电脑字体大小怎么设置_win10如何设置字体大小...
- 如何查看MySQL源码
- linux驱动开发架构
- opencv RGB 颜色 灰色图片显示
- 安卓系统,启用微信浮窗 session 丢失
- 谷歌发布 Android 12 硬件标准:6GB内存+1080P屏幕
- jmeterhttp代理服务器_Jmeter使用HTTP代理服务器录制脚本
- 北、上、广、深数据分析职位分析
- 时间复杂度O(n)的理解
- jquery短信验证码倒计时
- carsim2020.0的教程在“将HDWDZDPPV6 替换成 复制的HostID”这个步骤总是安装失败,解决这个问题,成功安装carsim2020.0的经验