Издатель 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 Agent — планировщик задач, выполняющий автоматизированные операции (резервное копирование, обслуживание индексов, отправка уведомлений).
- SQL Server Integration Services (SSIS) — платформа для извлечения, преобразования и загрузки данных (ETL).
- SQL Server Analysis Services (SSAS) — служба многомерного и табличного анализа данных, используемая для построения кубов и моделей данных.
- SQL Server Reporting Services (SSRS) — серверная система для создания, развёртывания и управления отчётами.
- SQL Server Machine Learning Services — встроенная поддержка языков R и Python для выполнения задач машинного обучения непосредственно в базе данных.
Инструменты управления
Основным инструментом администрирования является 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 →