Database

Какую систему баз данных стоит изучить в первую очередь? И стоит ли вообще изучать какие-либо СУБД, ведь для этой работы есть специально обученные люди?

Да, разумеется, вы должны уметь пользоваться базами данных! Данные — это основа нашей профессии. Данные управляют приложениями, которые мы создаём. Поэтому вам следуют знать о системах баз данных, как можно больше.

В этой статье, я буду исходить из того, что вы новичок в базах данных.

СУРБД и NoSQL

В наши дни у вас есть выбор из двух основных СУБД. Это либо старая добрая реляционная СУБД, либо новая, но уже обкатанная NoSQL система. Если вдруг вы не понимает о чём идёт речь, я объясню основы каждой системы.

СУРБД — Система Управления Реляционными Базами Данных. Согласно Википедии, реляционная модель — это модель организации данных, в одной или нескольких таблицах, состоящих из строк и столбцов, где каждая строка имеет уникальный идентификационный ключ. Если вы совершенно не понимает о чём идёт речь, представьте себе простую электронную таблицу из строк и столбцов.

Электронные таблицы не сравнятся с мощью СУБД, это лишь упрощённая аналогия, для визуального представления. Связанные между собой данные, хранятся в таблицах внутри базы данных.

Базы данных NoSQL — это группы, различных по типу СУБД, которые хранят связанные данные вместе. Базы данных NoSQL предлагают нам механизм хранения и извлечения данных, отличный от табличного, который используют реляционные базы.

Базы NoSQL можно представить, как большой JSON-документ, или хранилище «ключей». За этим скрыто намного больше, но в качестве введения — этого достаточно. Если вы понятия не имеете, что такое JSON, ключи и значения ― что же, нам предстоит немало потрудиться. И мы сделаем это.

Я рекомендую сначала изучить СУРБД и набраться опыта. После того как вы освоитесь в большинстве баз этого типа, можете переходить к изучению NoSQL.

Ознакомьтесь с этими базами данных: PostgreSQL, MS SQL Server, и MySQL.

Роли специалистов по базам данных

  • Администратор баз данных ― как системный администратор, только по базам данных. Администратор ― наблюдает, настраивает, делает резервные копии, поддерживает и обновляет СУБД, которые вы используете каждый день.
  • Разработчик баз данных ― проектирует решения. Такой специалист проводит дни напролёт, погрузившись в базах данных с головой. Пишет ПО, для работы с большими, и не очень, массивами данных. Разработчик проектирует базы данных, а администратор обслуживает их.
  • ETL разработчик ― занимается перемещением данных из одной системы в другую. Аббревиатура ETL расшифровывается, как Extract, Transform, Load (извлечь, преобразовать и загрузить). Данные, извлечённые из одной базы, должны «вписаться» в другую. Для решения таких задач существует специальное ПО, но за три года работы на этой должности, я никогда не использовал его. Мы создавали собственные PL/SQL пакеты в Oracle, которые делали тоже, что и дорогое стороннее ПО. Но разработчики тоже стоят не дёшево, так была ли экономия?

Базы данных в веб-разработке

Работая над веб-проектом, вам понадобится организовать интерфейс взаимодействия с данными на постоянной основе. Вы можете делать запросы напрямую к базе данных, или через веб-сервис, который сделает это за вас.

А что, если этот сервис не удовлетворит ваши потребности в полной мере? Что, если вас попросят сделать то, что веб-сервис не поддерживает? Что ж, в обоих случаях пришло время обратится к back-end разработчику, или написать код самому.

Есть три основные категории веб-разработчиков: front-end, back-end и full-stack разработчики. Первые, не особо дружат с базами данных и запросами, но остальные две категории — должны. Тем не менее, даже front-end разработчикам, следует иметь представление о том, как всё устроено, иначе вы можете почувствовать себя не очень ценным сотрудником.

Я рекомендую овладеть навыками full-stack разработчика. Не обязательно быть крутым во всём (я не очень хорош во front-end), но нужно иметь представление обо всех процессах, начиная с того, как данные извлекаются из базы и до момента, когда пользователь увидит их.

Вы и Базы данных

Какую СУБД стоит изучить в первую очередь? Вам нужно знать основы их всех, но для начала ― изучайте СУРБД, пока не станете знатоком SQL. Эти базы данных всё ещё очень широко применяются, и они никуда не денутся в обозримом будущем. Вы легко найдёте документацию и большое количество бесплатных обучающих ресурсов.

Я думаю легче всего будет начать с MySQL или MS SQL Server Express ― это бесплатные системы. Для них существует множество уроков по применению, на все случае жизни.

Данные — это основа нашей профессии, так что вперёд, учиться!

Перевод статьи Caleb Rogers: What Database System Should I Learn First?