Здравствуйте, уважаемые посетители сайта Info-Comp.ru! Сегодня мы с Вами поговорим о том, что нужно знать разработчику T-SQL, иными словами, с какими технологиями, приложениями и языками программирования приходится сталкиваться разработчику T-SQL в реальной жизни на работе.
- Немного вводной информации
- Что нужно знать разработчику T-SQL
- Язык T-SQL
- Теория баз данных
- Устройство Microsoft SQL Server, SSMS и навыки администрирования
- SQL Server Analysis Services (SSAS)
- SQL Server Reporting Services (SSRS)
- SQL Server Integration Services (SSIS)
- Visual Studio и SQL Server Data Tools (SSDT)
- C# и платформа .NET Framework
- Delphi
- VBA (Excel, Word, Access)
- Power Query, Power Pivot, Power BI
- Python и R
- Microsoft Azure SQL Databases
- Другие СУБД
- WEB технологии
- Другие полезные знания и навыки
Немного вводной информации
Сразу хотелось бы отметить, что перечень технологий и языков программирования, которые перечислены в данной статье, не является исчерпывающим, он основан на моем личном опыте, а также на основе анализа большинства соответствующих вакансий на популярных сервисах поиска работы.
Однако в любом случае можно с уверенностью сказать, что если Вы на достаточно хорошем уровне знаете большую часть всех перечисленных ниже технологий (включая сам язык T-SQL), то Вы без каких-либо проблем сможете найти работу разработчиком T-SQL, в противном случае Вам нужно будет подтягивать знания по той или иной технологии, но это уже в зависимости от специфики возлагаемых обязанностей на должность разработчика T-SQL.
Заметка! Что такое T-SQL. Подробное описание для начинающих.
Дело в том, что обязанности разработчика T-SQL могут быть на самом деле достаточно широкими, например, в крупных компаниях кроме как с реализацией каких-то сложных алгоритмов в БД разработчик T-SQL с чем-то другим может и не сталкиваться, так как для всех остальных целей есть другие узконаправленные специалисты. А вот в малых и средних организациях за должностью «Разработчик T-SQL» в большинстве случаев скрывается и разработчик интерфейсов, и архитектор, и администратор баз данных, и аналитик, и разработчик хранилищ данных, что в свою очередь требует от человека дополнительных знаний и навыков.
В данной статье как раз и рассмотрено все то, с чем может столкнуться разработчик T-SQL.
При этом обязательно стоит отметить, что знать на хорошем уровне абсолютно все технологии, которые здесь перечислены, на мой взгляд, невозможно, хотя такие люди наверное и существуют.
Поэтому не пугайтесь довольно внушительному и в некоторых случаях разнообразному перечню технологий, как было уже отмечено, разработчик T-SQL в большинстве случаев должен знать (на хорошем уровне) как минимум 5-6 пунктов из перечисленного ниже списка.
Стоит отметить, что большинство перечисленных в этой статье технологий будет связано с компанией Microsoft, так как язык T-SQL используется в Microsoft SQL Server, который в свою очередь разработала компания Microsoft, поэтому достаточно часто Microsoft SQL Server используется совместно с другими технологиями этой компании.
Данную статью Вы можете использовать как некую шпаргалку для подготовки к становлению разработчиком T-SQL и планирования своего пути, а также для подготовки к собеседованиям.
Итак, давайте начнем.
Что нужно знать разработчику T-SQL
Язык T-SQL
Конечно же, язык T-SQL разработчик T-SQL должен знать на очень профессиональном уровне, без этого никуда. И если Вы знаете, как написать запросы на выборку данных, как создать таблицы, это еще не значит, что Вы разработчик T-SQL, Вы должны уметь гораздо больше, и погрузиться в особенности SQL Server и языка T-SQL.
Так, например, разработчик T-SQL должен уметь:
- Разрабатывать хранимые процедуры, функции, триггеры;
- Работать с транзакциями, блокировками и обработкой ошибок;
- Создавать ограничения, индексы, последовательность и псевдонимы типов данных;
- Пользоваться CTE, PIVOT, ROLLUP, CUBE, APPLY и предложением OVER;
- Писать динамические инструкции;
- Работать с In-memory OLTP;
- Оптимизировать SQL инструкции и читать план выполнения запросов.
И это только общий функционал без какого-либо углубления.
Теория баз данных
Разработчик T-SQL обязательно должен знать устройство баз данных, понимать реляционную модель, а также знать принципы нормализации баз данных, ведь без этих фундаментальных знаний корректно проектировать базу данных, SQL запросы и хранимые процедуры практически невозможно. Нет, конечно же, возможно, но, как было отмечено, результат будет в большинстве случаев не совсем корректный и приемлемый.
Заметка! Нормализация баз данных простыми словами.
Устройство Microsoft SQL Server, SSMS и навыки администрирования
Язык T-SQL – это процедурное расширение языка SQL, реализованное в Microsoft SQL Server. Поэтому разработчик T-SQL, конечно же, должен знать как общее, так и внутреннее устройство Microsoft SQL Server. Он должен знать, как организованы файлы баз данных, как устроено внутреннее хранение данных в этих файлах, какие процессы запускаются во время выполнения SQL инструкций и в какой последовательности.
Кроме этого, как я уже отмечал ранее, разработчик T-SQL иногда выполняет роль и администратора баз данных, поэтому безусловно он должен уметь самостоятельно устанавливать SQL Server, осуществлять настройку сервера и баз данных, оптимизировать сервер и базы данных в процессе эксплуатации, а также обеспечивать безопасность данных на сервере (создание ролей и пользователей, разграничение прав доступа).
Еще хотелось бы отметить, что основным инструментом разработчика T-SQL в большинстве случаев выступает среда SQL Server Management Studio (SSMS), поэтому разработчик T-SQL обязан владеть этим инструментом на достаточно высоком уровне, знать как базовый функционал, так и более расширенные, тонкие возможности.
Заметка! Обзор функционала SQL Server Management Studio (SSMS).
SQL Server Analysis Services (SSAS)
В современном мире размер данных, которые необходимо хранить, постоянно растет, поэтому анализировать данные и формировать отчеты на основе OLTP баз данных становится проблематично, за счет того, что подобные отчеты формируются очень долго.
Однако у нас есть OLAP технология (аналитическая обработка онлайн), которая решает проблему медленного выполнения SQL запросов и формирования отчетов. При этом, конечно же, внутреннее устройство OLAP баз данных отличается от OLTP баз данных.
Однако, как Вы помните, разработчик T-SQL достаточно часто выступает и в роли аналитика, и в роли разработчика хранилищ данных для бизнес-анализа.
Поэтому в большинстве вакансий на должность разработчика T-SQL в требованиях будет стоять знания OLAP и в частности SSAS.
SQL Server Analysis Services (SSAS) – это службы для работы с многомерными данными (OLAP) от компании Microsoft. Многомерные данные позволяют проектировать, создавать и управлять сложными структурами, которые содержат детализирующие и статистические данные из нескольких источников данных, например, из реляционной базы данных SQL Server.
SSAS – разработаны для бизнес-анализа и хранения данных в формате, который позволяет быстро получить результат обработки большого объема данных.
Иными словами, OLAP – это хранилище данных, в котором хранится агрегированная информация большого массива данных. Данные из такой базы можно получить в десятки раз быстрей, чем из обычной базы.
В знания SSAS, конечно же, включается еще и язык MDX, который используется в системах OLAP. MDX – это своего рода SQL, но только для многомерных данных.
Таким образом, разработчик T-SQL должен уметь работать с SSAS, проектировать OLAP-кубы данных, писать и оптимизировать MDX-запросы.
SQL Server Reporting Services (SSRS)
В большинстве случаев в обязанности разработчика T-SQL входит и разработка аналитических отчетов в той или иной системе построения отчетов. И очень часто для этих целей компании используют практически встроенный в Microsoft SQL Server компонент SQL Server Reporting Services.
SQL Server Reporting Services (SSRS) – это службы SQL сервера для построения отчетов. С помощью SSRS можно разрабатывать и формировать как простые табличные отчеты, так и интерактивные, графические и другие более сложные отчеты с использованием диаграмм и других отчетных элементов. Отчеты можно формировать на основе различных источников данных, иными словами, источником может выступать не только Microsoft SQL Server.
Таким образом, разработчик T-SQL просто обязан уметь работать со службами SSRS и разрабатывать отчеты.
SQL Server Integration Services (SSIS)
Кроме разработки бизнес логики в базе данных, разработки отчетов и хранилищ данных, в обязанности разработчика T-SQL очень часто входит организация и реализация ETL процессов.
ETL (Extract, Transform, Load) – извлечение, преобразование, загрузка.
Как и в предыдущих случаях, у Microsoft для этих целей есть свой продукт SQL Server Integration Services, который и используется в большинстве случаев, когда в качестве системы хранения данных выступает Microsoft SQL Server.
SQL Server Integration Services (SSIS) – это службы SQL Server, которые предназначены для автоматизации извлечения, трансформации и консолидации данных из одного типа источников данных в другой тип источника данных. Очень часто, если используется линейка продуктов от компании Microsoft, ETL процесс заключается в переносе данных из OLTP базы данных SQL Server (а также других источников данных) в хранилище данных средствами службы SSIS.
И все это иногда выполняет разработчик T-SQL, поэтому он должен уметь работать со службами SSAS, SSRS и SSIS.
Заметка! Статистика в Microsoft SQL Server – что это такое и для чего она нужна.
Visual Studio и SQL Server Data Tools (SSDT)
Продолжая разговор о SSAS, SSRS и SSIS, обязательно стоит отметить, что основным инструментом, которым пользуется разработчик T-SQL для работы со всем вышеперечисленным, является Visual Studio, в частности компонент SQL Server Data Tools (SSDT) и расширения.
SQL Server Data Tools (SSDT) – это отдельный компонент (рабочая нагрузка) Visual Studio, который предназначен для разработки реляционных баз данных SQL Server.
SSDT создан для проектной разработки баз данных с применением всех возможностей и преимуществ Visual Studio, а также с использованием привычного для разработчиков приложений интерфейса и функционала.
Microsoft Analysis Services Projects – расширение для работы с SSAS, т.е. для создания многомерных баз данных (OLAP), кубов и всего, что с этим связано.
Microsoft Reporting Services Projects – расширение для работы с SSRS, в частности для разработки отчетов.
SQL Server Integration Services Projects – расширение для работы с SSIS, с помощью именно этого инструмента создаются SSIS пакеты и публикуются на сервере.
Отсюда следует, что если Вам предстоит создавать многомерные базы, отчеты или настраивать ETL процессы, то Вы обязательно должны уметь пользоваться Visual Studio и перечисленными выше расширениями.
Заметка! Как установить SQL Server Data Tools (SSDT) и что это такое.
C# и платформа .NET Framework
Кроме непосредственной работы с данными разработчик T-SQL достаточно часто выполняет роль разработчика графического интерфейса информационной системы, которой пользуются конечные пользователи компании.
Дело в том, что если основная бизнес логика информационной системы перенесена в базу данных и реализуется средствами СУБД, то отдельный программист, который программирует на языке общего назначения, в большинстве случаев просто не нужен, так как в интерфейс ИС изменения вносятся редко, ведь основная логика реализована в БД.
При этом на разработчика T-SQL возлагается роль того, кто в тех редких случаях будет вносить изменения в графическую оболочку информационной системы.
И здесь снова вспоминаем, что мы работаем с продуктом компании Microsoft, поэтому очень часто интерфейс информационных систем реализован с использованием языка C# и платформы .NET Framework, так как это тоже технологии компании Microsoft, которые тесно интегрируются с Microsoft SQL Server.
Кроме этого, на языке C# разрабатываются CLR сборки, которые можно подключать к SQL Server и тем самым расширять стандартные возможности языка T-SQL, дополняя его всеми преимуществами языка C#.
Таким образом, разработчик T-SQL должен знать принципы ООП, язык C#, устройство платформы .NET Framework и, конечно же, он должен уметь работать в среде Visual Studio.
Delphi
Кроме языка C# для разработки приложений, в которых в качестве системы хранения данных используется Microsoft SQL Server, достаточно часто используется язык Delphi, и во многих вакансиях в требованиях указано знание языка Delphi.
Поэтому разработчику T-SQL будет плюсом, если он умеет работать с языком Delphi.
VBA (Excel, Word, Access)
Кроме разработки отчётов в системе SSRS на разработчика T-SQL иногда возлагают обязанности разработки отчетов в Excel, Word или Access, при этом используя внутренние возможности этих приложений, в частности язык VBA, макросы, формулы и так далее.
Поэтому разработчику T-SQL не помешают знания языка VBA (Visual Basic for Applications) и объектной модели Excel, Word, Access, а также навыки формирования отчетов в этих приложениях.
Power Query, Power Pivot, Power BI
Продолжая разговор об аналитике данных нельзя не упомянуть такие приложения, как Power Query, Power Pivot, Power BI, которые предназначены для бизнес анализа, а как мы помним, разработчик T-SQL может выступать и в качестве аналитика данных, поэтому часто от разработчика T-SQL требуют и знания этих приложений.
Python и R
Новые версии SQL Server поддерживают выполнение кода на внешних языках внутри базы данных, например, на Python или R, которые славятся своими возможностями для анализа данных, поэтому разработчику T-SQL, чтобы проводить аналитику данных внутри базы данных, требуются знания языков Python и R.
Заметка! Как выполнить код Python в Microsoft SQL Server на T-SQL.
Microsoft Azure SQL Databases
В современном мире многие компании располагают свои сервисы и хранят данные в облаке, при этом выбирая в качестве решения продукты компании Microsoft.
Microsoft Azure SQL Databases – это облачный сервис от компании Microsoft, который предоставляет возможность хранения и обработки реляционных данных. Он основан на Microsoft SQL Server.
Поэтому разработчик T-SQL должен знать устройство и возможности этой платформы, и уметь работать с ней. Дело в том, что функционал облачного SQL Server (включая возможности языка T-SQL) отличается от локального, т.е. классического.
Другие СУБД
Достаточно распространённое явление, когда в одной компании используются несколько СУБД, причем от разных производителей, например, все тот же Microsoft SQL Server и PostgreSQL или Oracle.
И нередко на разработчика T-SQL возлагают некоторые обязанности по разработке или поддержанию функционала в другой системе управления базами данных, отличной от Microsoft SQL Server. Или просто необходимо периодически осуществлять перенос или миграцию данных с одной системы на другую.
И все это может лечь на плечи разработчика T-SQL, поэтому он должен знать процедурное расширение языка SQL других СУБД (PL/SQL или PLpg/SQL), хотя бы на поверхностном уровне, и просто уметь работать с этими СУБД.
Заметка! Рейтинг популярности систем управления базами данных (СУБД).
WEB технологии
Иногда Microsoft SQL Server используется для WEB приложений, а как Вы помните, на разработчика T-SQL могут возлагать обязанности по разработке и поддержанию пользовательского интерфейса.
Поэтому разработчику T-SQL будут очень полезны знания WEB технологии, в частности:
- NET
- JavaScript
- AJAX
- HTML
- CSS
Другие полезные знания и навыки
Кроме всего вышеперечисленного, что требуется на самом деле достаточно часто, существуют и другие, менее распространённые технологии и навыки, которые могут потребоваться разработчику T-SQL, хотя некоторые из них можно было и выделить в отдельный пункт, например, английский язык, так как английский язык требуется практически любому программисту и программист T-SQL не исключение.
Технологии, приложения и языки, знание которых также может потребоваться разработчику T-SQL:
- Английский язык
- SharePoint
- Microsoft Dynamics NAV
- Windows Server
- PowerShell
- XPath
- XQuery
- GIT
- 1С
- PowerShell
- PHP
Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней язык SQL рассматривается как стандарт, чтобы после прочтения данной книги можно было работать с языком SQL в любой системе управления базами данных.
На сегодня это все, надеюсь, материал был Вам полезен, пока!
«Что нужно знать и уметь разработчику T-SQL» — это точно всё про одного человека написано? Очень похоже на отдел из 5-8 человек. Хотя если все эти технологии (от T-SQL до 1С) знать на уровне правильного произношения аббревиатур, то может в принципе и 1 человек справиться …