HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>22 май 2023</li>
2 <ul><li>22 май 2023</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Изучаем, что под капотом у классической СУБД от Microsoft, постигаем азы реляционности и закрепляем нюансы хранения данных в вебе.</p>
4 </ul><p>Изучаем, что под капотом у классической СУБД от Microsoft, постигаем азы реляционности и закрепляем нюансы хранения данных в вебе.</p>
5 <p>Иллюстрация: Doug Wilson / Corbis Historical / Getty Images/ Colowgee для Skillbox Media</p>
5 <p>Иллюстрация: Doug Wilson / Corbis Historical / Getty Images/ Colowgee для Skillbox Media</p>
6 <p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
6 <p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
7 <p>MS SQL Server появилась ещё в конце 1980-х и с тех пор держится в топе самых популярных СУБД в мире. Она быстрая, удобная и подходит почти для всего: от небольших сайтов до высоконагруженных веб-приложений. Да и вообще, база данных от Microsoft - должна же быть хорошая? Будем разбираться.</p>
7 <p>MS SQL Server появилась ещё в конце 1980-х и с тех пор держится в топе самых популярных СУБД в мире. Она быстрая, удобная и подходит почти для всего: от небольших сайтов до высоконагруженных веб-приложений. Да и вообще, база данных от Microsoft - должна же быть хорошая? Будем разбираться.</p>
8 <p>Это четвёртая статья в цикле о СУБД. Ранее мы рассказывали,<a>что это такое</a>, как они устроены, и даже разобрали пару известных решений - от <a>Oracle</a>и <a>MongoDB</a>. Сегодня на очереди MS SQL Server.</p>
8 <p>Это четвёртая статья в цикле о СУБД. Ранее мы рассказывали,<a>что это такое</a>, как они устроены, и даже разобрали пару известных решений - от <a>Oracle</a>и <a>MongoDB</a>. Сегодня на очереди MS SQL Server.</p>
9 <p>Из этой статьи вы узнаете:</p>
9 <p>Из этой статьи вы узнаете:</p>
10 <ul><li><a>БД и СУБД: в чём разница</a></li>
10 <ul><li><a>БД и СУБД: в чём разница</a></li>
11 <li><a>Что такое MS SQL Server</a></li>
11 <li><a>Что такое MS SQL Server</a></li>
12 <li><a>Как Билл Гейтс базу данных создавал</a></li>
12 <li><a>Как Билл Гейтс базу данных создавал</a></li>
13 <li><a>Как устроен язык запросов T-SQL</a></li>
13 <li><a>Как устроен язык запросов T-SQL</a></li>
14 <li><a>Как работает SQL Server</a></li>
14 <li><a>Как работает SQL Server</a></li>
15 <li><a>Ещё несколько фишек системы</a></li>
15 <li><a>Ещё несколько фишек системы</a></li>
16 <li><a>Выводы: кому и для чего нужен SQL Server</a></li>
16 <li><a>Выводы: кому и для чего нужен SQL Server</a></li>
17 </ul><p>Для начала - повторим основные моменты из предыдущих статей:</p>
17 </ul><p>Для начала - повторим основные моменты из предыдущих статей:</p>
18 <ul><li>Повсюду в интернете нас окружают данные: текст, картинки, посты, товары, нейронные арты с енотами, новые серии "Короля и Шута" и так далее. Чтобы как-то упорядочить весь этот хаос, придумали<strong>базы данных</strong>.</li>
18 <ul><li>Повсюду в интернете нас окружают данные: текст, картинки, посты, товары, нейронные арты с енотами, новые серии "Короля и Шута" и так далее. Чтобы как-то упорядочить весь этот хаос, придумали<strong>базы данных</strong>.</li>
19 <li>Но сама по себе база - это просто способ организовать данные, и она мало что умеет: например, она может знать, что в магазине есть белые "найки", но не способна сама обновить остатки, если их кто-то купит.</li>
19 <li>Но сама по себе база - это просто способ организовать данные, и она мало что умеет: например, она может знать, что в магазине есть белые "найки", но не способна сама обновить остатки, если их кто-то купит.</li>
20 <li>Чтобы проводить сложные манипуляции с данными, используют системы управления базами данных -<strong>СУБД</strong>.</li>
20 <li>Чтобы проводить сложные манипуляции с данными, используют системы управления базами данных -<strong>СУБД</strong>.</li>
21 <li>Они заточены на то, чтобы искать, добавлять и менять данные по запросу, защищать их от кражи и взлома. Это такая софтовая обёртка для данных, чтобы люди могли использовать их для своих нужд, не мешая друг другу.</li>
21 <li>Они заточены на то, чтобы искать, добавлять и менять данные по запросу, защищать их от кражи и взлома. Это такая софтовая обёртка для данных, чтобы люди могли использовать их для своих нужд, не мешая друг другу.</li>
22 <li>Можно сравнить СУБД со школьным библиотекарем Зинаидой, которая следит за состоянием книг, обновляет их когда нужно и выдаёт только приличным детям, а тем, кто рисует ручкой в учебниках, кричит в библиотеке и вообще задолжал кучу литературы, - не выдаёт.</li>
22 <li>Можно сравнить СУБД со школьным библиотекарем Зинаидой, которая следит за состоянием книг, обновляет их когда нужно и выдаёт только приличным детям, а тем, кто рисует ручкой в учебниках, кричит в библиотеке и вообще задолжал кучу литературы, - не выдаёт.</li>
23 </ul><p>А теперь перейдём непосредственно к детищу Microsoft.</p>
23 </ul><p>А теперь перейдём непосредственно к детищу Microsoft.</p>
24 <p>MS SQL Server - это система управления реляционными базами данных, работающая по клиент-серверной модели. Прозвучало много новых слов - сейчас разберём по порядку, что это всё значит.</p>
24 <p>MS SQL Server - это система управления реляционными базами данных, работающая по клиент-серверной модели. Прозвучало много новых слов - сейчас разберём по порядку, что это всё значит.</p>
25 <p><strong>Реляционные</strong>базы - это такие базы, где все данные хранятся в виде таблиц, и эти таблицы связаны между собой: одна с другой, другая - с третьей и так далее. Вот упрощённый пример такой базы данных в онлайн-кинотеатре - у нас есть три таблицы, которые отвечают за фильмы, пользователей и отзывы:</p>
25 <p><strong>Реляционные</strong>базы - это такие базы, где все данные хранятся в виде таблиц, и эти таблицы связаны между собой: одна с другой, другая - с третьей и так далее. Вот упрощённый пример такой базы данных в онлайн-кинотеатре - у нас есть три таблицы, которые отвечают за фильмы, пользователей и отзывы:</p>
26 <em>Изображение: Skillbox Media</em><p>Реляционный подход хорош тем, что позволяет СУБД избежать массы лишней работы. Например, если какой-то пользователь решит обновить, скажем, фото или никнейм, системе будет достаточно поменять это только в одной таблице - "Пользователи". А остальные базы сами подтянут эти данные по запросу.</p>
26 <em>Изображение: Skillbox Media</em><p>Реляционный подход хорош тем, что позволяет СУБД избежать массы лишней работы. Например, если какой-то пользователь решит обновить, скажем, фото или никнейм, системе будет достаточно поменять это только в одной таблице - "Пользователи". А остальные базы сами подтянут эти данные по запросу.</p>
27 <p><strong>"Клиент-серверная"</strong>означает, что вся логика работы с данными вынесена на сервер, а пользователи подключаются к нему через приложения-клиенты. Идея в том, что нам не надо хранить полную версию базы данных у себя на компьютере - достаточно просто иметь хороший интернет.</p>
27 <p><strong>"Клиент-серверная"</strong>означает, что вся логика работы с данными вынесена на сервер, а пользователи подключаются к нему через приложения-клиенты. Идея в том, что нам не надо хранить полную версию базы данных у себя на компьютере - достаточно просто иметь хороший интернет.</p>
28 <p>Более того, экосистему SQL Server можно развернуть и в облаке: в этом случае обслуживание базы данных берут на себя дата-центры Microsoft, а вы можете сосредоточиться на разработке клиентских приложений. Версия SQL Server, которая позволяет так делать, называется<a>Azure SQL</a>.</p>
28 <p>Более того, экосистему SQL Server можно развернуть и в облаке: в этом случае обслуживание базы данных берут на себя дата-центры Microsoft, а вы можете сосредоточиться на разработке клиентских приложений. Версия SQL Server, которая позволяет так делать, называется<a>Azure SQL</a>.</p>
29 <p>? Так как SQL Server - это СУБД от Microsoft, она заточена в основном на работу с Windows, хотя частично поддерживает и Linux. Частично - потому что в версии для этой системы нет<a>некоторых важных функций</a>. Поэтому, если ищете СУБД для Linux-машины, лучше дополнительно поизучать конкурентов.</p>
29 <p>? Так как SQL Server - это СУБД от Microsoft, она заточена в основном на работу с Windows, хотя частично поддерживает и Linux. Частично - потому что в версии для этой системы нет<a>некоторых важных функций</a>. Поэтому, если ищете СУБД для Linux-машины, лучше дополнительно поизучать конкурентов.</p>
30 <p>К началу 1980-х реляционные базы уже вовсю правили бал в энтерпрайзе. На этом рынке выросло сразу много крупных игроков, включая Oracle, Sybase, IBM и Ashton-Tate. И, конечно, Microsoft не могла не подвизаться на этой ниве:</p>
30 <p>К началу 1980-х реляционные базы уже вовсю правили бал в энтерпрайзе. На этом рынке выросло сразу много крупных игроков, включая Oracle, Sybase, IBM и Ashton-Tate. И, конечно, Microsoft не могла не подвизаться на этой ниве:</p>
31 <ul><li>с одной стороны, потому, что тогда, как и сейчас, пылесосила рынок в поиске перспективных технологий (<a>привет, Bing AI</a>);</li>
31 <ul><li>с одной стороны, потому, что тогда, как и сейчас, пылесосила рынок в поиске перспективных технологий (<a>привет, Bing AI</a>);</li>
32 <li>с другой - потому, что делала совместную с IBM операционку OS/2, которая нуждалась во встроенной базе данных.</li>
32 <li>с другой - потому, что делала совместную с IBM операционку OS/2, которая нуждалась во встроенной базе данных.</li>
33 </ul><p>Основная задача была в том, чтобы создать СУБД, которая может запускаться на маломощных домашних и рабочих станциях - что неудивительно, ведь "майки" на то и "майки", чтобы пилить софт для компактных машин. В то время же большинство СУБД работали на "тучных" серваках и мейнфреймах.</p>
33 </ul><p>Основная задача была в том, чтобы создать СУБД, которая может запускаться на маломощных домашних и рабочих станциях - что неудивительно, ведь "майки" на то и "майки", чтобы пилить софт для компактных машин. В то время же большинство СУБД работали на "тучных" серваках и мейнфреймах.</p>
34 <p>Чтобы реализовать такой подход, Microsoft выбрали набирающую тогда популярность клиент-серверную технологию. Идея в том, чтобы перенести все сложные вычисления на сервер, а пользователям дать доступ к "плодам" этих вычислений через клиентские приложения, запущенные на рабочих станциях.</p>
34 <p>Чтобы реализовать такой подход, Microsoft выбрали набирающую тогда популярность клиент-серверную технологию. Идея в том, чтобы перенести все сложные вычисления на сервер, а пользователям дать доступ к "плодам" этих вычислений через клиентские приложения, запущенные на рабочих станциях.</p>
35 <p>Тут важно отметить, что сама Microsoft ещё не умела делать такие системы, поэтому обратилась за помощью к компании Sybase, автору платформы DataServer, код которой и лёг в основу первых версий SQL Server. Ещё один партнёр по разработке - компания Ashton-Tate - помог Microsoft по части дистрибуции и создания клиентских приложений.</p>
35 <p>Тут важно отметить, что сама Microsoft ещё не умела делать такие системы, поэтому обратилась за помощью к компании Sybase, автору платформы DataServer, код которой и лёг в основу первых версий SQL Server. Ещё один партнёр по разработке - компания Ashton-Tate - помог Microsoft по части дистрибуции и создания клиентских приложений.</p>
36 <p>Сохранился даже рекламный ролик из махровых 1980-х, где Билл Гейтс вместе с главой Ashton-Tate Эдом Эсбером рассуждает о возможностях SQL Server:</p>
36 <p>Сохранился даже рекламный ролик из махровых 1980-х, где Билл Гейтс вместе с главой Ashton-Tate Эдом Эсбером рассуждает о возможностях SQL Server:</p>
37 <p><strong>Эд Эсбер:</strong>Главное преимущество SQL Server в том, что она позволяет пользователям dBase IV и обмениваться данными по сети.</p>
37 <p><strong>Эд Эсбер:</strong>Главное преимущество SQL Server в том, что она позволяет пользователям dBase IV и обмениваться данными по сети.</p>
38 <p><strong>Билл Гейтс:</strong>Извини, Эд, но ты не совсем прав. Главная фишка SQL Server в том, что она позволяет пользователям Excel анализировать и визуализировать данные рабочей группы.</p>
38 <p><strong>Билл Гейтс:</strong>Извини, Эд, но ты не совсем прав. Главная фишка SQL Server в том, что она позволяет пользователям Excel анализировать и визуализировать данные рабочей группы.</p>
39 <p><strong>Эд Эсбер:</strong>О чём ты говоришь, Билл? SQL Server отлично работает с dBase IV! Вот, смотри.</p>
39 <p><strong>Эд Эсбер:</strong>О чём ты говоришь, Билл? SQL Server отлично работает с dBase IV! Вот, смотри.</p>
40 <p><strong>Билл Гейтс:</strong>О, это же мои данные!</p>
40 <p><strong>Билл Гейтс:</strong>О, это же мои данные!</p>
41 <p><strong>Эд Эсбер:</strong>Это мои данные!</p>
41 <p><strong>Эд Эсбер:</strong>Это мои данные!</p>
42 <p><strong>Вместе:</strong>Это одни и те же данные - в одно и то же время!</p>
42 <p><strong>Вместе:</strong>Это одни и те же данные - в одно и то же время!</p>
43 <p>Сейчас эта реклама выглядит наивно, но она демонстрирует прорывные фишки в обработке данных для своего времени: например, возможность работать с одной и той же базой с разных ПК. А ещё - совместно визуализировать "дату", создавая на её основе красочные графики. И это в 1988 году!</p>
43 <p>Сейчас эта реклама выглядит наивно, но она демонстрирует прорывные фишки в обработке данных для своего времени: например, возможность работать с одной и той же базой с разных ПК. А ещё - совместно визуализировать "дату", создавая на её основе красочные графики. И это в 1988 году!</p>
44 <p>То есть уже тогда юзеры Microsoft могли работать с разными офисными приложениями, системами учёта, банковскими программами в режиме реального времени - SQL Server делала так, чтобы запросы не мешали друг другу, а данные не перезаписывались и ложились на диск по очереди.</p>
44 <p>То есть уже тогда юзеры Microsoft могли работать с разными офисными приложениями, системами учёта, банковскими программами в режиме реального времени - SQL Server делала так, чтобы запросы не мешали друг другу, а данные не перезаписывались и ложились на диск по очереди.</p>
45 Интерфейс одной из первых версий SQL Server<em>Скриншот: SQL Server</em><p>Стоит отметить, что совместный бизнес "майков" с Ashton-Tate и Sybase закончился ещё в конце 1990-х. Первая обанкротилась, а вторая вышла из предприятия и стала пилить собственный форк SQL Server под названием Adaptive Server Enterprise. Ну а сама Microsoft сосредоточилась на выпуске SQL Server под Windows - и по сей день она многими воспринимается именно как часть "оконной" экосистемы.</p>
45 Интерфейс одной из первых версий SQL Server<em>Скриншот: SQL Server</em><p>Стоит отметить, что совместный бизнес "майков" с Ashton-Tate и Sybase закончился ещё в конце 1990-х. Первая обанкротилась, а вторая вышла из предприятия и стала пилить собственный форк SQL Server под названием Adaptive Server Enterprise. Ну а сама Microsoft сосредоточилась на выпуске SQL Server под Windows - и по сей день она многими воспринимается именно как часть "оконной" экосистемы.</p>
46 <p>С "сервером" вроде разобрались, теперь поговорим об SQL. Многие из вас знают, что это специальный язык запросов к базе данных. И что он умеет делать с данными по запросу что угодно: извлекать, загружать, группировать, настраивать права доступа и так далее.</p>
46 <p>С "сервером" вроде разобрались, теперь поговорим об SQL. Многие из вас знают, что это специальный язык запросов к базе данных. И что он умеет делать с данными по запросу что угодно: извлекать, загружать, группировать, настраивать права доступа и так далее.</p>
47 <p>Но мало кто говорит о Transact-SQL - диалекте SQL, который Microsoft и Sybase создали специально для SQL Server. Главная его фишка в том, что это не только язык запросов, но и полноценный язык программирования - то есть в нём есть переменные, циклы, условные конструкции if-else и другие атрибуты.</p>
47 <p>Но мало кто говорит о Transact-SQL - диалекте SQL, который Microsoft и Sybase создали специально для SQL Server. Главная его фишка в том, что это не только язык запросов, но и полноценный язык программирования - то есть в нём есть переменные, циклы, условные конструкции if-else и другие атрибуты.</p>
48 <p>С помощью T-SQL можно создавать небольшие программки для обработки данных и запускать их прямо на сервере - называются<strong>хранимые процедуры</strong>. Это удобно, если у вас есть набор повторяющихся действий к базе и вам нужно его автоматизировать - например, добавление товара в корзину.</p>
48 <p>С помощью T-SQL можно создавать небольшие программки для обработки данных и запускать их прямо на сервере - называются<strong>хранимые процедуры</strong>. Это удобно, если у вас есть набор повторяющихся действий к базе и вам нужно его автоматизировать - например, добавление товара в корзину.</p>
49 -- Хранимая процедура для добавления товара в корзину CREATE PROCEDURE AddToCart @UserID int, @ProductID int, @Quantity int AS BEGIN -- Добавляем новый товар в корзину или обновляем количество, если он уже есть MERGE INTO Cart AS C USING (SELECT @UserID AS UserID, @ProductID AS ProductID) AS P ON C.UserID = P.UserID AND C.ProductID = P.ProductID WHEN MATCHED THEN UPDATE SET C.Quantity = C.Quantity + @Quantity WHEN NOT MATCHED THEN INSERT (UserID, ProductID, Quantity) VALUES (P.UserID, P.ProductID, @Quantity); END;<p>Смотрите, в примере выше мы создали хранимую процедуру AddToCart и добавили в неё универсальный запрос для добавления товара в корзину. Теперь, вместо того чтобы выполнять запрос для каждого товара и покупателя, серверу нужно будет всего лишь вызвать эту функцию:</p>
49 -- Хранимая процедура для добавления товара в корзину CREATE PROCEDURE AddToCart @UserID int, @ProductID int, @Quantity int AS BEGIN -- Добавляем новый товар в корзину или обновляем количество, если он уже есть MERGE INTO Cart AS C USING (SELECT @UserID AS UserID, @ProductID AS ProductID) AS P ON C.UserID = P.UserID AND C.ProductID = P.ProductID WHEN MATCHED THEN UPDATE SET C.Quantity = C.Quantity + @Quantity WHEN NOT MATCHED THEN INSERT (UserID, ProductID, Quantity) VALUES (P.UserID, P.ProductID, @Quantity); END;<p>Смотрите, в примере выше мы создали хранимую процедуру AddToCart и добавили в неё универсальный запрос для добавления товара в корзину. Теперь, вместо того чтобы выполнять запрос для каждого товара и покупателя, серверу нужно будет всего лишь вызвать эту функцию:</p>
50 -- Вызов хранимой процедуры для добавления товара с ID = 1 в корзину пользователя с ID = 101 EXEC AddToCart @UserID = 101, @ProductID = 1, @Quantity = 2;<p>Под капотом у SQL Server лежит движок Database Engine - это ядро СУБД, которое и отвечает за всю работу с данными. Именно движок принимает SQL-запросы от пользователей и распределяет их между ресурсами сервера. Технически он выглядит как служба в операционной системе -<strong>sqlservr.exe</strong>.</p>
50 -- Вызов хранимой процедуры для добавления товара с ID = 1 в корзину пользователя с ID = 101 EXEC AddToCart @UserID = 101, @ProductID = 1, @Quantity = 2;<p>Под капотом у SQL Server лежит движок Database Engine - это ядро СУБД, которое и отвечает за всю работу с данными. Именно движок принимает SQL-запросы от пользователей и распределяет их между ресурсами сервера. Технически он выглядит как служба в операционной системе -<strong>sqlservr.exe</strong>.</p>
51 <p>А ещё на один сервер можно установить несколько экземпляров SQL Server, и тогда движков тоже будет несколько - и каждый будет работать с каким-то своим набором баз данных. Например, на сервере Skillbox один движок может заниматься базой статей в Skillbox Media, а другой - онлайн-курсами.</p>
51 <p>А ещё на один сервер можно установить несколько экземпляров SQL Server, и тогда движков тоже будет несколько - и каждый будет работать с каким-то своим набором баз данных. Например, на сервере Skillbox один движок может заниматься базой статей в Skillbox Media, а другой - онлайн-курсами.</p>
52 Путь запроса от клиента до базы данных и обратно<em>Иллюстрация: Skillbox Media</em><p>Теперь заберёмся чуть поглубже и посмотрим, как именно SQL Server работает с клиентскими запросами. Допустим, мы зашли на маркетплейс, чтобы купить футболку - но не простую, а поло 48 размера бренда "Школьный вальс". Выставляем фильтры, нажимаем "Применить", а дальше - следим за руками:</p>
52 Путь запроса от клиента до базы данных и обратно<em>Иллюстрация: Skillbox Media</em><p>Теперь заберёмся чуть поглубже и посмотрим, как именно SQL Server работает с клиентскими запросами. Допустим, мы зашли на маркетплейс, чтобы купить футболку - но не простую, а поло 48 размера бренда "Школьный вальс". Выставляем фильтры, нажимаем "Применить", а дальше - следим за руками:</p>
53 <ul><li>Браузер превращает наши фильтры в запрос и отправляет на сервер.</li>
53 <ul><li>Браузер превращает наши фильтры в запрос и отправляет на сервер.</li>
54 <li>Там наш запрос встречает движок SQL Server, создаёт на его основе новую задачу (<strong>task</strong>) и переводит её в режим ожидания.</li>
54 <li>Там наш запрос встречает движок SQL Server, создаёт на его основе новую задачу (<strong>task</strong>) и переводит её в режим ожидания.</li>
55 <li>Далее задачу подхватывает рабочий поток (<strong>worker</strong>), анализирует содержимое запроса и составляет план: как его выполнить максимально быстро и не затратно по ресурсам.</li>
55 <li>Далее задачу подхватывает рабочий поток (<strong>worker</strong>), анализирует содержимое запроса и составляет план: как его выполнить максимально быстро и не затратно по ресурсам.</li>
56 <li>Потом в игру вступает планировщик задач (<strong>task scheduler</strong>) - он следит за тем, чтобы рабочие потоки эффективно расходовали ресурсы процессора и не мешали друг другу.</li>
56 <li>Потом в игру вступает планировщик задач (<strong>task scheduler</strong>) - он следит за тем, чтобы рабочие потоки эффективно расходовали ресурсы процессора и не мешали друг другу.</li>
57 <li>Только на этом этапе запрос начинает по-настоящему выполняться - операторы SQL работают с базой данных и извлекают из неё нужные данные.</li>
57 <li>Только на этом этапе запрос начинает по-настоящему выполняться - операторы SQL работают с базой данных и извлекают из неё нужные данные.</li>
58 <li>Сервер пуляет данные обратно в браузер, и вот мы видим список нужных футболок - прошла всего секунда, а сколько всего случилось :)</li>
58 <li>Сервер пуляет данные обратно в браузер, и вот мы видим список нужных футболок - прошла всего секунда, а сколько всего случилось :)</li>
59 </ul><p>Конечно, это очень упрощённая схема - она не учитывает, например, обработку HTTP-запросов на веб-сервере и некоторые аспекты архитектуры SQL Server. Если хотите лучше в этом разобраться, можете почитать<a>хорошую статью по этой теме на "Хабре"</a>или<a>документацию по SQL Server</a>от Microsoft.</p>
59 </ul><p>Конечно, это очень упрощённая схема - она не учитывает, например, обработку HTTP-запросов на веб-сервере и некоторые аспекты архитектуры SQL Server. Если хотите лучше в этом разобраться, можете почитать<a>хорошую статью по этой теме на "Хабре"</a>или<a>документацию по SQL Server</a>от Microsoft.</p>
60 <p>Разберём несколько приятных фишек, за которые SQL Server ценят компании и разработчики:</p>
60 <p>Разберём несколько приятных фишек, за которые SQL Server ценят компании и разработчики:</p>
61 <p><strong>Отказоустойчивость.</strong>Например, в SQL Server можно<a>создавать кластеры серверов</a>, которые будут работать с одним экземпляром СУБД. Если какая-то машина вдруг выйдет из строя, её работу сразу перехватит другая, и всё это случится абсолютно бесшовно и незаметно для пользователя. Эта технология называется кластеризацией.</p>
61 <p><strong>Отказоустойчивость.</strong>Например, в SQL Server можно<a>создавать кластеры серверов</a>, которые будут работать с одним экземпляром СУБД. Если какая-то машина вдруг выйдет из строя, её работу сразу перехватит другая, и всё это случится абсолютно бесшовно и незаметно для пользователя. Эта технология называется кластеризацией.</p>
62 <p>А ещё SQL Server постоянно создаёт<a>контрольные точки</a>, из которых можно восстановить базу данных в случае сбоя или повреждения данных.</p>
62 <p>А ещё SQL Server постоянно создаёт<a>контрольные точки</a>, из которых можно восстановить базу данных в случае сбоя или повреждения данных.</p>
63 <p><strong>Совместимость с Microsoft.</strong>Естественно, SQL Server тесно интегрирован в экосистему "оконных" приложений - например, с помощью расширения<a>mssql</a>можно управлять базами данных из IDE Visual Studio.</p>
63 <p><strong>Совместимость с Microsoft.</strong>Естественно, SQL Server тесно интегрирован в экосистему "оконных" приложений - например, с помощью расширения<a>mssql</a>можно управлять базами данных из IDE Visual Studio.</p>
64 <p><strong>Машинное обучение.</strong>С помощью SQL Server можно обучать ML-модели прямо внутри базы данных. Для этого там есть<a>специальная служба</a>, которая умеет выполнять скрипты для работы с big data на Python и R. А если к этому делу подключить какой-нибудь<a>TensorFlow</a>, то там и до своего ChatGPT недалеко :)</p>
64 <p><strong>Машинное обучение.</strong>С помощью SQL Server можно обучать ML-модели прямо внутри базы данных. Для этого там есть<a>специальная служба</a>, которая умеет выполнять скрипты для работы с big data на Python и R. А если к этому делу подключить какой-нибудь<a>TensorFlow</a>, то там и до своего ChatGPT недалеко :)</p>
65 <p><strong>Бизнес-аналитика.</strong>Можно делать интерактивные дашборды на основе данных с помощью<a>встроенной службы отчётов</a>, а можно выгрузить начинку базы данных в сторонний сервис - тот же майкрософтовский<a>PowerBI</a>.</p>
65 <p><strong>Бизнес-аналитика.</strong>Можно делать интерактивные дашборды на основе данных с помощью<a>встроенной службы отчётов</a>, а можно выгрузить начинку базы данных в сторонний сервис - тот же майкрософтовский<a>PowerBI</a>.</p>
66 <p><strong>Удобная студия управления.</strong>Считается, что SQL Server Management Studio - это одна из лучших сред разработки баз данных из существующих. Мы не будем спорить, просто добавим, что скоро про неё у нас выйдет отдельная статья.</p>
66 <p><strong>Удобная студия управления.</strong>Считается, что SQL Server Management Studio - это одна из лучших сред разработки баз данных из существующих. Мы не будем спорить, просто добавим, что скоро про неё у нас выйдет отдельная статья.</p>
67 Как выглядит интерфейс SQL Server Management Studio<em>Скриншот:<a>Database by Doug</a>/ YouTube</em><p><strong>Большое сообщество.</strong>SQL Server - вторая по популярности СУБД в мире, и в интернете по ней море учебных материалов, блогов и сообществ. Энтузиасты даже собрали все обучающие ресурсы в <a>один большой гайд</a>. Похожий, кстати,<a>есть на "Хабре"</a> - довольно старый, но с основами разобраться поможет.</p>
67 Как выглядит интерфейс SQL Server Management Studio<em>Скриншот:<a>Database by Doug</a>/ YouTube</em><p><strong>Большое сообщество.</strong>SQL Server - вторая по популярности СУБД в мире, и в интернете по ней море учебных материалов, блогов и сообществ. Энтузиасты даже собрали все обучающие ресурсы в <a>один большой гайд</a>. Похожий, кстати,<a>есть на "Хабре"</a> - довольно старый, но с основами разобраться поможет.</p>
68 <p>SQL Server можно использовать в любых проектах, где нужно управлять данными: контентом на сайтах, отчётностью, ресурсами предприятия, зарплатами сотрудников, цепочками поставок, проектами, торговлей, документами - да в целом чем угодно.</p>
68 <p>SQL Server можно использовать в любых проектах, где нужно управлять данными: контентом на сайтах, отчётностью, ресурсами предприятия, зарплатами сотрудников, цепочками поставок, проектами, торговлей, документами - да в целом чем угодно.</p>
69 <p>Так как это продукт Microsoft, стоит он недёшево - около<a>4000 долларов в год</a>за стандартную лицензию на два ядра. И это не считая затрат на поддержку обслуживание и серверную версию Windows, ибо только с ней SQL Server работает нормально - вариант для Linux сильно урезан по функциям.</p>
69 <p>Так как это продукт Microsoft, стоит он недёшево - около<a>4000 долларов в год</a>за стандартную лицензию на два ядра. И это не считая затрат на поддержку обслуживание и серверную версию Windows, ибо только с ней SQL Server работает нормально - вариант для Linux сильно урезан по функциям.</p>
70 <p>Подводя итог, можно сказать, что SQL Server - это хороший вариант для больших или средних проектов с прицелом на рост в будущем. Во всех остальных случаях лучше присмотреться к open-source-решениям вроде PostgreSQL - для большинства задач их возможностей вполне хватит.</p>
70 <p>Подводя итог, можно сказать, что SQL Server - это хороший вариант для больших или средних проектов с прицелом на рост в будущем. Во всех остальных случаях лучше присмотреться к open-source-решениям вроде PostgreSQL - для большинства задач их возможностей вполне хватит.</p>
71 <a>Курс с трудоустройством: "Веб-разработчик" Узнать о курсе</a>
71 <a>Курс с трудоустройством: "Веб-разработчик" Узнать о курсе</a>