Self-Learning – видеокурсы и книги по IT

Здравствуйте, уважаемые посетители сайта Self-Learning.ru! Сегодня мы с Вами поговорим о том, что нужно знать разработчику T-SQL, иными словами, с какими технологиями, приложениями и языками программирования приходится сталкиваться разработчику T-SQL в реальной жизни на работе.

Что нужно знать и уметь разработчику 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.

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 в OLAP базу службы SSAS средствами службы SSIS.

И все это иногда выполняет разработчик T-SQL, поэтому он должен уметь работать со службами SSAS, SSRS и SSIS.

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.

Заметка! Как стать программистом? 14 советов по достижению поставленной цели.

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.

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
  • PowerShell
  • PHP
Виталий Трунин
Автор статьи. Разработчик T-SQL
Задать вопрос
Приглашаю всех желающих пройти курсы по изучению языка T-SQL. На курсах применяется последовательная методика обучения и подробно рассматриваются как базовые конструкции языка, так и более продвинутые. Узнать подробности.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Теги: #
Понравилась статья? Поделитесь с друзьями:
Share on VK
VK
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Tumblr
Tumblr
Share on Reddit
Reddit
Email this to someone
email

Авторские онлайн-курсы по T-SQL

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх