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