Що потрібно знати і вміти розробнику t-sql. Технології, мови, навички

12

Привіт, шановні відвідувачі сайту info-comp.ru! сьогодні ми з вами поговоримо про те, що потрібно знати розробнику 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 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 процесів.

Як і в попередніх випадках, у 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.

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 і перерахованими вище розширеннями.

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.

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

На сьогодні це все, сподіваюся, матеріал був вам корисний, поки!