Architecture of a Database System论文——第一章:概述

2019-12-01

09:50:06

让我们来考虑这样一个简单却很典型的数据库在机场的应用实例:查询某次航班的所有 旅客名单。这个操作所引发的的查询请求大致按如下方式被处理

1、机场登机口的 PC 机(客户端)调用 API 与 DBMS 的客户端通信管理器(Client Communications Manager)建立网络连接。在一些情况下,客户端直接通过 ODBC 或 JDBC 连接协议与数据库服务器建立这种连接。这种处理方式被称为“两层”或者“客户端-服务器”。还有一些情形中,客户端与“中间层服务器”建立连接,如 web 服务器、事务处理系 统等,它们通过协议代理原本直接建立在客户端与数据库服务器之间的连接,这被称为“三 层”模式。在一些网络应用中,还会再多一个应用服务器架设于网络服务器和 DBMS 之间, 这被称为“四层”模式。为了适用于如此多的环境,一个 DBMS 需要兼容许多不同客户端 以及中间系统的多种连接协议。不过实际上,DBMS 中负责多种协议的管理器基本上是相 同的:为调用者(客户端或者中间件)建立连接并记录其连接地址,对客户端的 sql 语句做 出回应,并在适当的时候返回数据以及控制信息。在本文例子中,通信管理器还将为客户端 建立安全证书,为新的连接细节以及客户端 sql 命令分配空间,并将客户端的请求传送到 DBMS 更底层进行处理。

2、在收到客户端的第一个请求之后,DBMS 必须为之分配一个计算线程。系统必须确 保该线程的数据以及控制输出是通过通信管理器与客户端连接的。这些工作交由 DBMS 的 进程管理器(Process Manager)来管理(图 1-1 左)。在这一部分中,DBMS 所做的主要 工作是准入控制,即系统是否应该立即处理该查询,或是等待系统有足够资源时再处理该查 询。我们将在第二章详细介绍进程管理器。

3、在分配控制进程之后,登机口的查询便可以被处理了。处理工作借助于关系查询处 理器(Relational Query Processor,图 1-1 中间部分)中的代码来实现。这些模块检查用 户是否有权进行该查询,然后将用户的 sql 查询语句编译为中间查询计划。在编译之后,结 果查询计划被交给查询执行器。查询执行器包含一系列处理查询的操作(关系型算法实现)。 典型的处理查询任务的操作包括:连接、选择、投影、聚集、排序等等,当然也包括从底层 读取需要的数据。在我们的例子中,包括优化查询的操作在内,调用了一个操作集合来解决 用户的查询问题。在第四章我们将讨论查询处理问题。

(这部分应该是在查询处理器里面)

4、在登机口代理的查询计划的底层,由若干操作从数据库请求数据。这些操作通过调 用(call)来从 DBMS 的存储管理器(transactional storage manager,图 1-1 底部)中收集数 据;存储管理器负责所有的数据接口(读)和操作调用(建立、更新、删除)。存储系统包 括用于管理磁盘数据的基本算法和数据结构,比如基本的表和索引。它还包括一个缓冲管理 器,用来控制内存缓冲区和磁盘之间的数据传输。回到我们的例子中,在获取数据的过程中, 登机口客户端的查询必须调用事务管理代码来保证“ACID”性质(将在第 5.1 节讨论)。在 获取数据之前,需要通过锁管理器来确保并发情况下运行的正确性。如果登机口客户端的查 询包含对数据库的更新操作,那么,它需要与日志系统进行交互,来确保更新操作的持久性 以及撤销操作的完整性。在第 5 章,我们会讨论存储与缓冲管理的更多细节,弟 6 章介绍业务一致性结构

5、在查询的这一时期,查询操作已经开始获取数据并准备好用它们来为客户端计算结 果。这一步通过展开我们之前提到的所有操作的堆栈来完成。访问方法把控制权交给查询处 理器,查询处理器将数据库的数据组织成结果元组;结果元组生成后被放入客户通信管理器 的缓冲区中,然后该通信管理器将结果发送给调用者。对于较大的结果集合,客户端会发送 更多的请求来获取更多的数据,这也导致了通信管理器、查询处理器和存储管理器的循环操 作。在我们的例子中,在查询操作的最后,事务结束,连接关闭;事务管理器中的结果被清 空,进程管理器释放无用的数据结构,通信管理器将连接状态清空

我们通过这个查询的例子讨论了 RDBMS 的许多关键组件,但还有一些没有涉及到。图 1-1 右边一侧有许多共享组件和工具,它们对于一个功能完整的 DBMS 而言,同样是十分 重要的。目录和存储管理器在传输数据时被作为工具来调用,在我们的例子中也是这样。在 认证、分解以及查询优化过程中,查询处理器都会用到目录。同样,存储管理器也广泛应用 于整个 DBMS 运行过程中动态分配和释放内存的场合。在图 1-1 中最右边列出的其余组件, 独立运行于任何查询,它们使数据库保持稳定性和整体性。我们将在第 7 章讨论这些共享 的组件和工具。



我们开篇谈到了数据库系统的整体架构。在所有服务器架构中第一个问题便是服务器整 个的进程架构,我们会介绍各种切实可行的方案,首先是单处理机,然后是多种并行处理架 构。关于核心服务器系统架构的讨论,是适合于许多其他系统的,但是,在很大程度上是在 DBMS 设计中最早得到应用的。随后,我们探讨 DBMS 的专有组件。我们从一个简单查询 的角度开始,重点关注关系数据库查询处理器。在这之后,我们研究存储架构和事务存储管 理设计。最终,我们介绍一些大部分 DBMS 都会有的共享组件和工具,这一点在教材中很 少被提及。

原文地址:https://www.cnblogs.com/JasonPeng1/p/11965178.html

时间: 2024-10-08 21:29:25

Architecture of a Database System论文——第一章:概述的相关文章

软件工程读书笔记(1)——第一章 概述

第一章 概述 一.软件工程概念的提出 1968年NATO(North Atlantic Treaty Organization,北大西洋公约组织)会议首次提出“软件工程”概念. 软件工程是为了解决开发成本效益和软件质量的问题而产生. 二.软件 1.什么是软件? <IEEE Standard Glossary of Software Engineering Terminology>给出了有关软件的如下定义: 软件是计算机程序.规程以及运行计算机系统可能需要的相关文档和数据.(软件≠程序) 根据软

【网络原理】期末复习笔记 第一章 概述

第一章 概述 1.1 网络在现代的作用 21世纪三化:数字化(声音信号数字化处理,为了电脑处理和传输).网络化.信息化 三网:电信网络(电话).有线电视网络(同轴电缆.从有线电视公司到用户).计算机网络(因特                 网.其他网络) 1.2 计算机网络的重要功能       连通性:彼此联通.交换信息     ·远程桌面客户端:mstsc(Microsoft terminal services client) Win10.win7是单用户操作系统,只允许一个用户同时操作.

《ASP.NET Web API 2框架揭秘》第一章 概述【样章】

<ASP.NET Web API 2框架揭秘>(详情请见<新作<ASP.NET Web API 2框架揭秘>正式出版>)以实例演示的方式介绍了很多与ASP.NET Web API相关的最佳实践,同时还提供了一系列实用性的扩展.本书详细讲解了ASP.NET Web API从接收请求到响应回复的整个流程,包括路由.Http Controller的激活.Action方法的选择与执行.参数的绑定与验证.过滤器的执行和安全等相关的机制.除此之外,本书在很多章节还从设计的角度对AS

perl5 第一章 概述

第一章 概述 by flamephoenix 一.Perl是什么?二.Perl在哪里?三.运行四.注释 一.Perl是什么?      Perl是Practical Extraction and Report Language的缩写,它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程.      .Perl具有高级语言(如C)的强大能力和灵活性.事实上,你将看到,它的许多特性是从C语言中借用来的.      .与脚本语言一样,Perl不需要编译器和链接器来运行代码,

《TCP/IP详解 卷1:协议》读书笔记(第一章 概述 &amp; 第二章 链路层)

第一章 概述 TCP/IP协议族:四层协议系统 链路层(数据链路层.网络接口层)设备驱动程序和网络接口卡. 网络层(互联网层)处理分组在网络中的活动,点对点服务.IP.ICMP.IGMP 运输层提供端对端通信.TCP.UDP 应用层处理应用程序细节.Telnet.FTP.SMTP.SNMP 部分概念 构造互联网最简单的方法是把两个或多个网络通过路由器(Router)进行连接.路由器的好处是为不同类型的物理网络提供连接:以太网.令牌环网.点对点的链接等等. 网络层IP协议提供的是一种不可靠的服务.

Camel In Action 阅读笔记 第一部分概述 + 第一章概述 认识Camel

第一部分: 最开始的一小步 Apache Camel 是一个开源集成框架,其目的是让系统集成变得更加简便,在本书的第一章中,我们会为您介绍它并向您展示它是如何在大型企业应用中做好集成工作.您也会了解到Camel 的一些原理和术语. 第二章会为您集中讲述Camel 最重要特性之一: 消息路由. Camel还提供两种方式来定义路由规则: 基于Java的领域特定语言(Domain Specific Language--DSL)和Spring XML 配置方式. 除了创建路由,我们还会为您讲述如何使用企

计算机网络笔记之第一章概述

如今计算机网络早已融入生活中的方方面面,”互联网+“充斥着我们的生活.那么我们就有必要了解一下网络. 课本:谢希仁<计算机网络(第六版)> 首先,从总体上了解计算机网络,走进计算机网络的大门. 在学习之前,总会有一些疑问. 1在生活中,计算机网络扮演着什么角色呢?计算机网络有什么作用? 2什么是计算机网络?什么是互联网?什么是因特网? 3为什么叫课本叫计算机网络,而不是叫互联网或者因特网呢? 4因特网的历史,它是怎样发展变化的?建立的初衷是什么? 5因特网是怎样组成的? 6日常生活中的网络又是

软件工程—理论、方法和实践 第一章:概述

今天,软件遍布这个世界,对这个社会的经济和文化产生了深远的影响.如何以经济有效的方法开发高质量的软件是人们长期以来一直努力研究的问题.而软件工程就是为了解决开发成本效益和软件质量的问题产生的. 一.软件: 软件的特性 (1)       软件是复杂的.(2)软件是不可见的.(3)软件是不断变化的.没有任何变化的软件一定是没有用的. 软件的发展 (1)       第一阶段:20世纪50-60年代,计算机主要应用是快速计算出现了Algol,Fortune等编程语言为标志的算法技术. (2)    

python基础第一章 概述

本章内容 python简介 python 2 和python 3 python安装 第一个python程序 python简介 python发展史 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python应用广泛,应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学