热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

数据库体系结构

关于SQLServer2005的学习笔记(二)——体系结构一SQLServer2005引擎组件首先让我们先来看看SQLServer2005的引擎组件,SQLServer2005有四大组件:协议、关系引擎、存储引擎和SQLOS。协议层接收来自于用户的请求(查询、更改、删除、创建表等等操作)并

关于SQLServer2005的学习笔记(二)——体系结构一 SQLServer2005引擎组件 首先让我们先来看看 SQL Server2005的引擎组件,SQLServer2005有四大组件:协议、关系引擎、存储引擎和SQLOS。 协议层接收来自于用户的请求(查询、更改、删除、创建表等等操作)并

关于SQLServer2005 的学习笔记(二)——体系结构一

SQLServer2005 引擎组件

首先让我们先来看看 SQL Server2005 的引擎组件, SQLServer2005 有四大组件:协议、关系引擎、存储引擎和 SQLOS 。

协议层接收来自于用户的请求(查询、更改、删除、创建表等等操作)并把它们转换成关系引擎能够识别的形式。它还能够获取任意查询、状态信息、错误信息的结果,然后把这些结果转换成客户端能够理解的性,最后再返回客户端。这一层的意义在于是应用程序访问 SQL Server 的接口。

关系引擎层能够接收 SQL 批处理,以及决定如何处理。它能够解析、编译和优化请求并检查批处理的执行过程,对于所需的数据会发送数据请求给存储引擎。这一层的主要是解析、编译和优化,生成语法树,并与存储引擎进行交互。

存储引擎则负责管理 所有的数据访问,包括基于事务的命令和大批量操作。这些操作包括备份 、批量插入和某些数据库 一致性检查。根据图上所示,主要是实现数据的访问、数据的缓存、锁的管理等操作。

SQLOS 则可以理解为 SQL Server2005 的操作系统,主要负责处理与操作系统之间的工作,如何进行内存分配、死锁检查、 I/O 操作等;很难说的清楚 SQLOS 是 SQLServer 自己独有的处理机制呢,还是调用 OS 来完成相关处理的。

SQLServer2000 引擎结构

我们再回头看看 SQLServer2000 的组件关系,在 SQLServer2000 联机帮助中基本上缺乏相关 detail 的体系架构图,该图主要也是描述了 SQLServer2000 中各个主要组件之间的层次和调用关系;而且我对 SQLServer2000的体系结构也缺乏深刻认识,再次不做详述。

Oracle 体系架构

对于 Oracle 而言, Oracle 并没有提供一个比较全面的组件架构,而是认为 Oracle 就是数据库和实例的集合,当然我们也可以把 SGA 各个组成部分、 Oracle 各种进程、各种数据库文件视为其组件。实例是由 SGA 和Oracle 进程构成的。每一个运行的 Oracle 数据库都与一个 Oracle 实例关联。 Oracle 数据库使用内存结构和进程来管理、访问数据库。所有内存结构都存在于构成数据库服务器的计算机的主存中。进程指的是在这些计算机内存中运行的作业。进程被定义为“控制线程”或操作系统中可以运行一系列步骤的一种机制


实际上从总体结构上看, SQLServer2005 也是基于实例和关系数据库的集合,即通过每一个实例来管理若干数据库( Oracle 和 SQL Server 的数据库是概念不同的,从 Oracle 角度而言, SQL Server 的数据库概念比较怪异,理论上应该与 Oracle 的逻辑概念表空间是等效的),这些数据库总的来说都是为了满足某个应用需要和业务逻辑而组合起来的一个完整的应用,而每个数据库又是一个相对独立的业务逻辑单位,但他们是为了实现一个共同的目标,因此也不大适合进行分割成若干实例。

SQL Server2005 的引擎组件更注重的是数据库处理过程中的依次顺序,实际上从实例角度而言,两者可以说是类似的,比如都具备数据缓冲区、字典缓冲区、日志缓冲区、各种数据库进程或线程(数据库读写进程、日志读写进程、检查点)

推荐阅读
  • RocketMQ在秒杀时的应用
    目录一、RocketMQ是什么二、broker和nameserver2.1Broker2.2NameServer三、MQ在秒杀场景下的应用3.1利用MQ进行异步操作3. ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 在将Web服务器和MySQL服务器分离的情况下,是否需要在Web服务器上安装MySQL?如果安装了MySQL,如何解决PHP连接MySQL服务器时出现的连接失败问题? ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 操作系统如何通过进程控制块管理进程
    本文详细介绍了操作系统如何通过进程控制块(PCB)来管理和控制进程。PCB是操作系统感知进程存在的重要数据结构,包含了进程的标识符、状态、资源清单等关键信息。 ... [详细]
  • 本文介绍了Memcached分布式集群中的取模算法和一致性哈希算法的原理及其对缓存命中率的影响。通过详细分析,探讨了如何优化这些算法以提高系统的稳定性和性能。 ... [详细]
  • 短暂的人生中,IT和技术只是其中的一部分。无论换工作还是换行业,最终的目标是成功、荣誉和收获。本文探讨了技术人员如何跳出纯技术的局限,实现更大的职业发展。 ... [详细]
  • 本文介绍了Spring 2.0引入的TaskExecutor接口及其多种实现,包括同步和异步执行任务的方式。文章详细解释了如何在Spring应用中配置和使用这些线程池实现,以提高应用的性能和可管理性。 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 大势至服务器文件备份系统是一款专为服务器数据保护设计的安全软件,能够实现自动化的全量备份和增量备份,支持多种备份目标,如服务器其他分区、外接硬盘、其他服务器或NAS存储空间,并提供灵活的备份频率设置,有效保障服务器文件的安全。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文详细介绍了MySQL数据库服务器(mysqld)和客户端(mysql)的区别,并提供了多种启动和关闭MySQL服务器的方法。通过这些方法,您可以更好地管理和维护MySQL数据库。 ... [详细]
author-avatar
mobiledu2502857923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有