我们熟悉结构化查询语言 (SQL),这是一种处理关系数据库的编程语言。现在,SQL Server 是基于 SQL 构建的。
SQL Server 是一个关系数据库管理系统 (RDBMS)。它由 Microsoft 于 1989 年开发和销售,作为 SQL Server 1.0,用 C/C++ 编写。最初在 2016 年之前,它仅在 Windows 环境中受支持,但后来它可用于 Linux、Microsoft Windows Server、Microsoft Windows。
SQL 服务器也与 Transact-SQL 或 T-SQL 相关联。基本上,T-SQL 是 Microsoft 的一组编程扩展,它为结构化查询语言 (SQL) 添加了多项功能,包括事务控制、异常和错误处理、行处理和声明的变量。
SQL Server 中数据库的基本信息:
基本上,一台机器可以安装一个或多个 SQL Server。并且,每个实例可能包含一个或多个数据库。然后,数据库中有架构,其中包含表、视图和存储过程等数据库对象。 SQL Server 数据库存储在文件系统中的文件中,这些文件被进一步分组为文件组。
用户在 SQL Server 中也有不同的分类,例如当用户获得对 SQL Server 实例的访问权限时,他们被标识为登录名。但是当他们获得对数据库的访问权限时,他们被称为数据库用户。如果启用了包含的数据库,则可以创建不基于登录名的数据库用户。包含的数据库是具有数据库用户而无需登录的数据库。它包括与数据库相关的所有设置及其元数据,因此系统将不依赖于 SQL 服务器登录。
有权访问数据库的用户可以被授予访问数据库中对象的权限。建议创建数据库角色,将数据库用户添加到角色中,然后为角色授予访问权限,尽管可以授予普通个人用户的权限。因为,随着用户数量的增加,更容易保持权限的一致性和可理解性。
在 SQL Server 中使用数据库:
大多数人在使用 SQL Server 中的数据库时更喜欢使用 SQL Server Management Studio 工具。因为,它具有用于创建数据库和数据库中的对象的图形用户界面。可以从SQL Server安装盘安装,也可以直接从MSDN下载。它还有一个查询编辑器,我们可以在其中编写 Transact-SQL 语句并直接与数据库交互。
SQL 服务器架构:
Microsoft SQL Server 是一种客户端-服务器架构。 MS SQL Server 进程从发送请求的客户端应用程序开始。 SQL Server 接受进程并使用处理后的数据回复请求。
SQL Server 由两个主要组件组成:
- 数据库引擎
- 操作系统
这些解释如下。
1. 数据库引擎:
它是 SQL Server 架构的核心组件,用于存储、处理和保护数据。 SQL Server 在一台计算机上最多支持 50 个数据库引擎实例。它提供受控访问和快速事务处理,以满足企业中数据消耗最高的应用程序的要求。甚至存储过程、视图和触发器等数据库对象也是通过数据库引擎创建和执行的。
在内部,它由一个用于处理查询的关系引擎和一个用于管理数据库文件、页面、索引等的存储引擎组成。更简单地说——
关系引擎:
关系引擎的最终任务是处理查询,因此也称为查询处理器。但是关系引擎的一些任务还可能包括查询处理、内存管理、线程和任务管理、缓冲区管理和分布式查询处理。它通常从存储引擎请求给定输入查询的数据,并在此基础上处理输出。关系引擎有 3 个主要组件。这些都是 :
- CMD 解析器 –
它是关系引擎接收查询数据的第一个组件。它主要检查查询的语法和语义错误。最后生成查询树。 - 优化器——
优化器的主要任务是找到最便宜的,而不是最好的,性价比最高的执行计划。优化主要针对 DML(SELECT、INSERT、UPDATE、DELETE)命令而不是所有查询。最终目标是最小化查询运行时间。 - 查询执行器 –
它调用访问方法。它为执行所需的数据获取逻辑提供了执行计划。从存储引擎接收数据后,结果进入协议层。最后,数据被发送给最终用户。
存储引擎:
它主要负责从磁盘和SAN等存储系统中存储和检索数据。它具有以下三个主要组成部分:
- 访问方法 –
它确定查询是选择语句还是非选择语句。然后相应地调用缓冲区和传输管理器。 - 缓冲区管理器 –
它管理计划缓存、数据解析和脏页的核心功能。 - 交易经理 –
它在日志和锁管理器的帮助下管理非选择事务。此外,促进 Write Ahead 日志记录和 Lazy writers 的实现。
2.SQLOS:
SQL Server 操作系统 (SQLOS) 是位于 SQL Server 数据库引擎最低级别的独立应用程序层,SQL Server 和 SQL Reporting Services 均在其顶部运行。它是在 SQL Server 2005 中引入的。它位于关系引擎和存储引擎之下。它实际上提供操作系统服务,例如内存和 I/O 管理,包括其他服务,包括异常处理和同步服务。
它实际上为 SQL Server 执行以下关键功能:
- 调度器和 IO 完成:当 IO 完成时,SQLOS 负责向线程发出信号。
- SQLOS 负责管理线程同步。
- 异常处理框架。
- 死锁检测和管理。
- SQLOS 可以控制 SQL Server 中的组件消耗多少内存。
- 托管外部组件(如 CLR 和 MDAC)的服务。
因此,我们可以说它具有出色的资源管理能力,并且始终确保 SQL Server 正在运行。