Открыть сервис

Издатель SQL Server

Microsoft SQL Server — это реляционная система управления базами данных (СУБД), разрабатываемая корпорацией Microsoft. Основной функцией SQL Server является хранение, обработка и обеспечение доступа к структурированным данным по запросам, написанным на языке SQL (Structured Query Language). Система относится к классу клиент-серверных СУБД и включает в себя широкий набор инструментов для управления данными, бизнес-аналитики, машинного обучения и интеграции с другими продуктами Microsoft.

История

Разработка SQL Server началась в середине 1980-х годов как совместный проект компаний Microsoft, Sybase и Ashton-Tate. Первая версия, SQL Server 4.2 для OS/2, была выпущена в 1993 году. После разрыва партнёрства с Sybase в 1994 году Microsoft продолжила самостоятельную разработку, выпустив в 1995 году SQL Server 6.0, который стал первой версией, полностью написанной собственными силами.

Ключевым этапом стал выход SQL Server 2000 (версия 8.0), который ввёл поддержку XML, улучшенную аналитику и механизмы репликации. SQL Server 2005 (версия 9.0) ознаменовался внедрением интегрированной среды разработки SQL Server Management Studio (SSMS), поддержки .NET Framework и служб Reporting Services. Версия 2008 года добавила прозрачное шифрование данных (TDE) и сжатие данных.

С выпуском SQL Server 2012 (версия 11.0) была введена технология AlwaysOn Availability Groups, обеспечивающая высокую доступность и аварийное восстановление. Версия 2016 года включила поддержку JSON, встроенные средства машинного обучения и технологию Stretch Database для гибридного хранения данных в облаке Azure. В 2017 году Microsoft выпустила SQL Server 2017, который впервые стал доступен для операционной системы Linux, а также в контейнерах Docker. Последняя на текущий момент версия, SQL Server 2022, была выпущена в ноябре 2022 года и включает улучшенную интеграцию с облаком Azure, поддержку Azure Synapse Link и новые возможности безопасности.

Архитектура и компоненты

SQL Server построен на модульной архитектуре, включающей несколько ключевых компонентов.

Ядро СУБД (Database Engine)

Основной компонент, отвечающий за хранение, обработку и обеспечение безопасности данных. Включает в себя:

  • Реляционный движок — обрабатывает SQL-запросы, управляет транзакциями и блокировками.
  • Хранилище — управляет файлами данных (MDF, LDF, NDF) и страницами памяти.
  • Сетевой интерфейс — обеспечивает взаимодействие с клиентскими приложениями по протоколам Tabular Data Stream (TDS) и TCP/IP.

Службы SQL Server

SQL Server включает несколько дополнительных служб:

Инструменты управления

Основным инструментом администрирования является SQL Server Management Studio (SSMS) — графическая среда для управления экземплярами SQL Server, написания запросов, мониторинга производительности и настройки безопасности. Для разработки и отладки кода T-SQL используется Azure Data Studio, кроссплатформенное приложение с поддержкой расширений.

Редакции и лицензирование

Microsoft SQL Server выпускается в нескольких редакциях, различающихся по функциональности и стоимости.

Основные редакции

  • Enterprise — наиболее полная редакция, предназначенная для крупных корпоративных систем. Поддерживает неограниченный размер баз данных, AlwaysOn Availability Groups, расширенную аналитику и машинное обучение. Лицензируется по модели «на ядро» (Core-based licensing).
  • Standard — редакция для среднего бизнеса. Ограничена по размеру баз данных (до 524 ПБ) и количеству ядер (до 24). Включает базовые функции высокой доступности (зеркалирование, доставка журналов, AlwaysOn с двумя репликами).
  • Web — редакция для веб-хостинга, с ограниченной функциональностью и низкой стоимостью лицензирования.
  • Developer — бесплатная редакция для разработки и тестирования, функционально идентичная Enterprise, но запрещённая для использования в производственных средах.
  • Express — бесплатная редакция для небольших приложений и обучения. Ограничена размером базы данных (до 10 ГБ) и использованием одного процессора.

Облачные версии

В рамках облачной платформы Microsoft Azure доступны:

  • Azure SQL Database — полностью управляемая облачная база данных, построенная на ядре SQL Server.
  • Azure SQL Managed Instance — сервис, обеспечивающий практически полную совместимость с локальным SQL Server при управлении со стороны облачного провайдера.
  • SQL Server on Azure Virtual Machines — виртуальные машины с установленным SQL Server, позволяющие сохранить полный контроль над конфигурацией.

Безопасность

SQL Server предоставляет многоуровневую систему безопасности, включающую:

  • Аутентификацию — поддерживаются два режима: Windows Authentication (интеграция с Active Directory) и SQL Server Authentication (логин и пароль, хранящиеся в системе).
  • Авторизацию — управление доступом на уровне сервера (роли фиксированного сервера, например sysadmin, dbcreator) и на уровне базы данных (роли базы данных, например db_owner, db_datareader).
  • Шифрование — прозрачное шифрование данных (TDE) для защиты файлов базы данных на диске, шифрование на уровне ячеек (Always Encrypted) и шифрование соединений (SSL/TLS).
  • Аудит — SQL Server Audit позволяет отслеживать действия пользователей и события на сервере, записывая их в журнал или файл.
  • Динамическую маскировку данных — функция, скрывающая конфиденциальные данные от неавторизованных пользователей при выполнении запросов.

Производительность и масштабирование

SQL Server поддерживает несколько механизмов для обеспечения высокой производительности и масштабирования:

  • Индексы — кластеризованные, некластеризованные, columnstore, полнотекстовые и пространственные индексы ускоряют поиск и сортировку данных.
  • Секционирование — разделение больших таблиц и индексов на логические части для улучшения управления и производительности.
  • In-Memory OLTP — технология, позволяющая хранить таблицы и хранимые процедуры в оперативной памяти для ускорения транзакционной обработки.
  • Resource Governor — механизм управления ресурсами, ограничивающий потребление CPU и памяти отдельными рабочими нагрузками.
  • AlwaysOn Availability Groups — технология высокой доступности, обеспечивающая автоматическое переключение между синхронными и асинхронными репликами.
  • Репликация — механизм синхронизации данных между несколькими экземплярами SQL Server, включая транзакционную, слиянием и моментальных снимков.

Язык T-SQL

SQL Server использует расширенную версию SQL — Transact-SQL (T-SQL). Помимо стандартных операторов DDL, DML и DCL, T-SQL включает:

  • Процедурные расширения — переменные, условные операторы (IF...ELSE), циклы (WHILE), обработка ошибок (TRY...CATCH).
  • Хранимые процедуры — предварительно скомпилированные блоки кода, хранящиеся на сервере.
  • Функции — скалярные и табличные функции, возвращающие значения.
  • Триггеры — специальные хранимые процедуры, автоматически выполняемые при событиях DML (INSERT, UPDATE, DELETE) или DDL.
  • Динамический SQL — возможность построения и выполнения SQL-запросов на лету с помощью оператора EXECUTE или sp_executesql.

Применение

SQL Server широко используется в корпоративных информационных системах, веб-приложениях, системах электронной коммерции, финансовых и банковских системах, здравоохранении, логистике и государственных учреждениях. Благодаря интеграции с продуктами Microsoft (Azure, Power BI, Office 365, SharePoint) и поддержке .NET, SQL Server является стандартом де-факто для многих организаций, использующих технологический стек Microsoft.

Критика

SQL Server подвергается критике за высокую стоимость лицензирования редакции Enterprise, особенно в сравнении с открытыми СУБД, такими как PostgreSQL или MySQL. Также отмечается привязка к экосистеме Microsoft, что усложняет миграцию на другие платформы. Некоторые пользователи указывают на сложность администрирования и необходимость в квалифицированных специалистах. В версиях до 2017 года отсутствовала поддержка Linux, что ограничивало выбор операционных систем.

Интересные факты

  • SQL Server поддерживает работу с пространственными данными (географические и геометрические типы) и может выполнять запросы с использованием библиотек .NET.
  • В версии SQL Server 2019 была введена поддержка языка Java для написания хранимых процедур и функций.
  • SQL Server является одной из немногих СУБД, которая включает встроенную поддержку машинного обучения без необходимости установки сторонних библиотек.
  • Название «SQL Server» исторически происходит от кодового имени «SQL Server» (Structured Query Language Server), которое использовалось в ранних версиях.

Источники

  • Microsoft Docs — SQL Server documentation
  • «SQL Server 2019 Administration Inside Out» — William Assaf, Randolph West, et al.
  • «Pro SQL Server Internals» — Dmitri Korotkevitch
  • «T-SQL Fundamentals» — Itzik Ben-Gan
  • Официальный сайт Microsoft SQL Server

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →