SQL Server 简介|架构

原文:https://www . geesforgeks . org/intro-to-SQL-server-architecture/

我们熟悉结构化查询语言(SQL) ,一种处理关系数据库的编程语言。现在,SQL Server 是建立在 SQL 之上的。

SQL Server 是一个关系数据库管理系统。它是由微软在 1989 年开发和销售的,名为 SQL Server 1.0,用 C/C++编写。最初在 2016 年之前,它只在 Windows 环境下受支持,但后来它被用于 Linux、微软视窗服务器、微软视窗。

SQL 服务器也与 Transact-SQL 或 t-SQL 绑定在一起。基本上,T-SQL 是微软的一组编程扩展,它为结构化查询语言(SQL)增加了几个特性,包括事务控制、异常和错误处理、行处理和声明变量。

关于 SQL Server 中数据库的基本信息: 基本上,一台机器可以安装一台或多台 SQL Server。并且,每个实例可能包含一个或多个数据库。然后,数据库中有模式,这些模式具有数据库对象,如表、视图和存储过程。SQL Server 数据库存储在文件系统中的文件中,这些文件进一步分组到文件组中。

用户在 SQL Server 中的分类也不同,例如当用户获得对 SQL Server 实例的访问权限时,他们被标识为登录用户。但是当他们访问数据库时,他们被称为数据库用户。如果启用了包含的数据库,则可以创建不基于登录的数据库用户。包含的数据库是数据库用户没有登录的数据库。它包括所有与数据库相关的设置及其元数据,因此系统不会依赖于 SQL server 登录。

有权访问数据库的用户可以被授予访问数据库中的对象的权限。建议创建数据库角色,将数据库用户添加到角色中,然后授予角色访问权限,尽管权限可以授予普通的个人用户。从那时起,随着用户数量的增加,保持权限的一致性和可理解性变得更加容易。

在 SQL Server 中使用数据库: 大多数人在使用 SQL Server 中的数据库时更喜欢使用 SQL Server 管理工作室工具。因为,它有图形用户界面来创建数据库和数据库中的对象。可以从 SQL Server 安装盘安装,也可以直接从 MSDN 下载。它还有一个查询编辑器,我们可以在其中编写 Transact-SQL 语句并直接与数据库交互。

SQL Server 架构: 微软 SQL Server 是客户端-服务器架构。MS SQL Server 进程从客户端应用程序发送请求开始。SQL Server 接受处理并用处理过的数据回复请求。

SQL Server 由两个主要组件组成:

  1. 数据库引擎
  2. SQL OS(SQL OS)

这些解释如下。

1。数据库引擎: 它是用于存储、处理和保护数据的 SQL Server 体系结构的核心组件。SQL Server 在一台计算机上最多支持 50 个数据库引擎实例。它提供受控访问和快速事务处理,以满足企业中最高数据消耗应用程序的需求。甚至像存储过程、视图和触发器这样的数据库对象也是通过数据库引擎创建和执行的。

在内部,它由一个处理查询的关系引擎和一个管理数据库文件、页面、索引等的存储引擎组成。更简单地说–

关系引擎: 关系引擎的最终任务是处理查询,因此也被称为查询处理器。但是关系引擎的一些任务也可能包括查询处理、内存管理、线程和任务管理、缓冲区管理和分布式查询处理。它通常从存储引擎请求给定输入查询的数据,并在此基础上处理输出。关系引擎有三个主要组件。这些是:

  • CMD Parser– 它是关系引擎中接收查询数据的第一个组件。它主要检查查询的语法和语义错误。最后生成查询树。
  • Optimizer– Optimizer 的主要任务是找到最便宜的,而不是最好的,具有成本效益的执行计划。并且优化主要针对 DML (SELECT、INSERT、UPDATE、DELETE)命令,而不是所有的查询。最终目标是最小化查询运行时间。
  • 查询执行器– 它调用访问方法。它为执行所需的数据提取逻辑提供了一个执行计划。从存储引擎接收数据后,结果进入协议层。最后,数据被发送给最终用户。

存储引擎: 主要负责磁盘、存储区域网络等存储系统的数据存储和检索。它有以下三个主要组成部分:

  • 访问方式– 决定查询是选择语句还是非选择语句。然后相应地调用缓冲区和传输管理器。
  • 缓冲区管理器– 管理计划缓存、数据解析&脏页的核心功能。
  • 事务管理器– 它在日志和锁管理器的帮助下管理非选择事务。此外,促进提前写日志和惰性编写器的实现。

2。 SQL Server 操作系统(SQLOS)是一个独立的应用层,位于 SQL Server 数据库引擎的最底层,SQL Server 和 SQL Reporting Services 都运行在它的顶层。它是在 SQL Server 2005 中引入的。它在关系引擎和存储引擎下。它实际上提供了操作系统服务,如内存和输入/输出管理,包括其他服务,包括异常处理和同步服务。

它实际上为 SQL Server 执行以下关键功能:

  • 调度器和 IO 完成:SQLOS 负责在 IO 完成时给线程发信号。
  • SQLOS 负责管理线程同步。
  • 异常处理框架。
  • 死锁检测和管理。
  • SQLOS 可以控制一个组件消耗多少内存。
  • 为 CLR 和 MDAC 等外部组件提供托管服务。

因此,我们可以说它具有出色的资源管理能力,并始终确保 SQL server 正在运行。