В чем заключается работа с базами данных

Обновлено: 16.05.2024

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

Пример использования

Базы данных нужны для хранения информации. Чтобы получить полное понимание необходимости использования БД в современном веб-программировании, необходимо ответить на три вопроса:

  1. Какую информацию и зачем мы храним?
  2. В каком виде и как надо хранить эту информацию?
  3. Как и каким способом можно получить доступ к этой информации?

Предположим, вы решили сделать сайт, где каждый пользователь может вести личный дневник наблюдения за погодой в своем городе.
Такой сайт должен иметь как минимум одну форму ввода со следующими полями: город, дата, температура, облачность, погодное явление, и так далее.
Каждый день наблюдатель записывает показания погоды в эту форму, чтобы когда-нибудь в будущем вернуться на сайт и посмотреть, какая была погода месяц или даже год назад.
Из этого примера следует, что программист каким-то образом должен сохранять данные из формы для дальнейшего использования.

Кроме обычного просмотра дневника погоды за месяц в виде таблицы, можно сделать и более сложный проект.
Например, чтобы электронный дневник чем-то качественно отличался от своего бумажного аналога, будет неплохо добавить туда возможности для простого анализа: показать какой день был самым холодным в ноябре или какой продолжительности была самая длинная серия пасмурных дней.
Получается, что данные надо не просто как-то хранить, но и иметь возможность их обрабатывать и анализировать.
Именно для этих целей и существуют базы данных.

Как хранится информация в БД

В основе всей структуры хранения лежат три понятия:

  • База данных;
  • Таблица;
  • Запись.

База данных

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

Таблица

По отношению к базе данных таблица является вложенным объеком. То есть одна БД может содержать в себе множество таблиц.
Аналогией из реального мира может быть шкаф (база данных) внутри которого лежит множество коробок (таблиц).
Таблицы нужны для хранения данных одного типа, например, списка городов, пользователей сайта, или библиотечного каталога.
Таблицу можно представить как обычный лист в Excel-таблице, то есть совокупность строк и столбцов.
Наверняка каждый хоть раз имел дело с электронными таблицами (MS Excel).
Заполняя такую таблицу, пользователь определяет столбцы, у каждого из которых есть заголовок. В строках хранится информация.
В БД точно также: создавая новую таблицу, необходимо описать, из каких столбцов она состоит, и дать им имена.

Запись

Запись — это строка электронной таблицы.
Это неделимая сущность, которая хранится в таблице. Когда мы сохраняем данные веб-формы с сайта, то на самом деле добавляем новую запись в какую-то из таблиц базы данных. Запись состоит из полей (столбцов) и их значений. Но значения не могут быть какими угодно.
Определяя столбец, программист должен указать тип данных, который будет храниться в этом столбце: текстовый, числовой, логический, файловый и т.д. Это нужно для того, чтобы в будущем в базу не были записаны данные неверного типа.

Соберем всё вместе, чтобы понять, как будет выглядеть ведение дневника погоды при участии базы данных.

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

Реляционная база данных

Так мы решим сразу две задачи:

  • Сократим объём хранимой информации, так как погодные записи больше не будут содержать название города;
  • Избежим дублирования: все пользователи будут выбирать один из заранее определённых городов, что исключит опечатки.
  • описывать структуры данных в конфигураторе,
  • манипулировать данными с помощью объектов встроенного языка,
  • составлять запросы к данным, используя язык запросов.

Работа с базой данных

Общая система типов

Хранение ссылок на объекты

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

Эта ссылка также хранится в поле базы данных, вместе с остальными данными объекта. Кроме того, ссылка может быть использована как значение какого-либо поля другого объекта. Например, ссылка на объект справочника Контрагенты может быть использована как значение соответствующего реквизита документа Приходная накладная.

Составные типы

Работа с базой данных

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

Хранение любых данных как Хранилище значения

Для этого введен специальный тип данных — ХранилищеЗначения. Поля базы данных могут хранить значения такого типа, а встроенный язык содержит специальный одноименный объект, позволяющий преобразовывать значения других типов к специальному формату Хранилища значений.

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

Создание и обновление структур данных на основе метаданных

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

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

Все действия по созданию или изменению структуры таблиц базы данных платформа выполнит самостоятельно, на основании состава объектов прикладного решения и их характеристик.

Все, что требуется сделать разработчику — щелчком мыши добавить к справочнику табличную часть и задать два ее строковых реквизита: Имя и Родство. При сохранении или обновлении конфигурации платформа самостоятельно выполнит реорганизацию структуры базы данных, создаст необходимые таблицы и т.д.

Объектный / табличный доступ к данным

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

Работа с базой данных

При манипулировании данными в объектной модели обеспечивается сохранение целостности объектов, кэширование объектов, вызов соответствующих обработчиков событий и т.д.

В табличной модели все множество объектов того или иного класса представляется как совокупность связанных между собой таблиц, к которым можно обращаться при помощи запросов — как к отдельной таблице, так и к нескольким таблицам во взаимосвязи:

Работа с базой данных

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

Что такое база данных

Итак, что такое база данных? Этот термин широко применим в повседневной жизни. Что неудивительно, ведь по сути, база данных — это просто хранилище упорядоченной информации. Мы же, применительно к SQL, будем рассматривать базу данных как контейнер для информации в виде одного или нескольких файлов. Также надо знать, что программное обеспечение которое управляет базой данных называется СУБД т.е система управления базой данных.

Ещё один момент который нужно понимать это структура базы данных. Здесь тоже ничего сложного. База данных состоит из трех элементов: таблица, строка и столбец. Ну и пару слов о них.

Таблица — это основной структурный элемент базы данных. При чем в одной базе может быть несколько таблиц. С точки зрения безопасности и удобства использования считается правильным хранить в каждой таблице только определенный тип данных. При создании таблицы нужно присвоить ей уникальное имя. В одной базе не может быть таблиц с одинаковыми именами, также нужно указать из каких столбцов она состоит и тоже присвоить им имена.

Столбец (колонка) — это структурный элемент уже таблицы. Для каждого столбца нужно указать какой именно тип данных разрешено в нем хранить. Это может быть текст, числа, диапазоны чисел, файлы, логические значения и т.д.

Что такое SQL

Что такое базы данных, вроде разобрались. Осталось разобраться, что с ними делать. Но к счастью тут не всё так сложно как могло показаться на первый взгляд. Для того что бы работать с базами данных был придуман язык SQL.

SQL (Structured Query Language) — это язык структурированных запросов. И он позволяет выполнять любые действия с данными и базами данных: от простого ввода данных и создания таблиц до администрирования сервера СУБД. При этом он очень удачно совмещает в себе простоту и огромные возможности. Чтобы понять принцип работы SQL представь себе, что ты разговариваешь и даешь команды человеку, который очень исполнительный, но знает всего несколько слов. И, вот, если ты дашь ему команду известными ему словами — он выполнит её идеально. Вообщем смысл в том, что создание запросов на SQL очень напоминает разговор, но обо всем по порядку.

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

Установка MySQL

Для начала нам понадобится СУБД. Мы будем использовать MySQL (просто для примера), но точно также всё будет работать и в любой другой СУБД.

Или установить командой:

После установки MySQL автоматически запустится, проверить это можно командой:

MySQL

если вдруг, по какой-то непонятной причине у тебя не запустилось, запускай вручную:

Следующим шагом нам надо, для небольшого повышения безопасности нашей базы, изменить некоторые стандартные настройки и поудалять всякие тестовые записи. Для этого вводим команду:

Первый шагом нам предложат придумать пароль. Выбираем Y и дважды вводим пароль, ну и на все следующие вопросы отвечаем Y.

Теперь подключимся к серверу и продолжим:

После ввода пароля, мы увидим приглашение к вводу MySQL. Это означаем что мы можем начинать работать с базами данных.

mysql

Чтобы процесс изучения SQL был более наглядным, мы создадим базу данных, например, пользователей какого-то условного сайта. И с ней и будем работать. В нашей базе будут какие-нибудь условные таблицы, которые мы придумаем в процессе.

Создание базы данных и таблиц в SQL

Как видишь мы сказали: СОЗДАЙ БАЗУ ДАННЫХ all_users. Теперь нужно сказать о том, что мы хотим поработать с этой базой. Для этого существует команда USE

создание базы данных

Если базу данных нужно удалить используется команда DROP DATABASE имя_базы; Командой DROP, кстати, можно удалять все что угодно, не только базы. Например, чтобы удалить таблицу используется команда DROP TABLE имя_таблицы; А если нужно удалить все данные из таблицы, но саму таблицу при этом оставить, то есть команда: TRUNCATE TABLE имя_таблицы;

CREATE TABLE

Так как база данных состоит из таблиц, то теперь переходим непосредственно к созданию таблиц. Для этого используется команда CREATE TABLE. После которой нужно указать название новой таблицы. А потом в скобках, через запятую, перечислить какие в таблице будут колонки и типы данных в этих колонках. Давай для примера создадим таблицу с именами пользователей и их статусом на сайте:

Теперь давай посмотрим, что мы там насоздавали:

sql create table

Ну и давай более детально разберем саму команду которую мы вводили:

Также создадим таблицу в которой будут перечислены возможные статусы пользователей:

SHOW TABLES

Чтобы посмотреть все созданные нами таблицы используется команда:

show tables

Если нужно удалить отдельную запись из таблицы, то используется команда DELETE:

Здесь мы сказали: УДАЛИ ИЗ ТАБЛИЦЫ users_nick ТАМ ГДЕ id РАВЕН 1.

Добавление данных в таблицу в SQL

Теперь нужно заполнить данными созданные нами таблицы т.е. добавить строки. Для этого используется команда INSERT. Она может добавлять строки тремя способами:
— полную строку
— часть строки
— результат запроса

Начнем с таблицы статусов:

переводя на человеческий мы сказали: Добавь в таблицу users_status в столбец status значение admin. В приведенном мной примере название столбца и значение которое мы добавляем в скобки можно не брать. Потому что мы добавляем одно значение в один столбец. Но как правило нужно добавлять в несколько столбцов — разные значения, для этого в скобках, через запятую перечисляем вначале столбцы, а значения которые мы хотим вписать в соответствующий столбец после команды VALUES. Значения всегда должны быть в одинарных кавычках. И не забывай, что значения надо указывать в том же порядке в котором мы перечисляли столбцы, но при этом этот порядок не обязательно должен соответвовать порядку столбцов в таблице:

Как видишь, мы добавили только часть строки, пропустив столбец status. В такой ситуации туда будет записано значение NULL т.е . пусто, но только если мы не указывали параметр NOT NULL для этого столбца. Ну и, кстати столбец id по правильному тоже надо было бы пропускать, потому что он всё равно автоматически заполниться.

Если вдруг ты решил изменить какое-то значение в таблице для этого применяется команда UPDATE:

По сути мы сказали: ОБНОВИ значение в таблице users_status В СТОЛБЦЕ status на administrator ТАМ ГДЕ Используя WHERE мы задали условия для поиска нужной нам записи. Тут нам как раз и понадобились наши идентификаторы, благодаря которым мы выбираем именно нужную строку. Кстати, если не указать условие, используя WHERE мы обновим все значение в таблице. Так делать не нужно.

Извлечение данных из таблицы в SQL. SELECT

Получение данных из таблицы — это, наверное, одна из основных функций которую мы будем использовать чаще других. Для того чтобы извлечь данные из одной или нескольких таблиц используется команда SELECT. Для того чтобы эта команда была выполнена корректно нужно указать два параметра: что получить и откуда.
Так, например, что бы получить все имена пользователей из нашей таблицы, нам нужно написать:

sql select

Таким образом мы увидели список пользователей из столбца nick таблицы users_nick. По такому же принципу мы можем вывести данные нескольких столбцов, указав их через запятую. Либо если мы хотим увидеть всю нашу таблицу, то вместо перечисления столбцов нужно поставить символ *

sql select

На человеческом это бы звучало так: ВЫБЕРИ всё ИЗ users_nick.

Сортировка данных

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

Для того чтобы разобраться с сортировкой я добавил в нашу таблицу users_nick несколько записей. Самым простым способом сортировки является использование условий, например:

sql select

В этом запросе мы попросили железяку показать нам записи в таблице users_nick в которых, в столбце status присвоено значение user. При этом не забывай что в условии WHERE можно использовать логические операторы (AND/OR) и математические операторы сравнения (=, , =, <>). Ну и не менее полезная штука, это поиск по шаблону. Потому что мы не всегда знаем какая точно запись нам нужна, для этого используется команда LIKE:

sql select

Также иногда нужно выбрать только уникальные значения в таблице. Для этого используется команда SELECT DISTINCT, так например введя:

мы получим все уникальные значения из столбца status таблицы users_nick.

ORDER BY

Также очень часто для сортировки данных используется команда ORDER BY. После которой мы должны указать имя одного или нескольких столбцов по которым и будут отсортированы выведенные данные. Самый простой пример её использования:

sql select

Здесь мы попросили отсортировать данные таблицы по столбцу nick. И в результате получили список пользователей в алфавитном порядке. Но это не единственны способ. Можно, например, отсортировать данные не в алфавитном порядке (по возрастанию — если цифровые), но и в обратном порядке (по убыванию — если цифровые). Для этого к названию столбца по которому фильтруем нужно дописать DESC.

Объединение таблиц в SQL

Так как таблиц в базе данных несколько, то может возникнуть необходимость показать данные сразу из нескольких таблиц. И отфильтровать их по каким-нибудь общим значениям. Так, например в нашей таблице с пользователями, пользователю Pulse не присвоен статус, но есть отдельная таблица со статусами. При этом общим параметром у нас будет id (хотя конечно логичнее было бы общим параметром использовать например ник, но да ладно, смысл от этого не меняется). Для получения данных используем команду INNER JOIN:

sql select

Оба варианта правильные и ты можешь использовать тот который тебе удобней.

Кстати, обрати внимание, что когда мы используем команду SELECT и выбираем какие-то столбцы из разных таблиц, и при этом эти столбцы имеют одинаковые названия (как у нас столбец status есть в обеих таблицах) то нужно вначале написать какую таблицу мы имеем ввиду, потом поставить точку и написать столбец. Иначе на выходе получим ошибку.

Также полезно помнить про существование итоговых функций, они нужны для получения, например характеристик таблицы:

  • COUNT (столбец) — возвращает количество строк;
  • SUM (столбец) — возвращает сумму значений в данном столбце;
  • AVG (столбец) — возвращает среднее значение данного столбца;
  • MIN (столбец) — возвращает наименьшее значение данного столбца;
  • MAX (столбец) — возвращает наибольшее значение данного столбца.

select

покажет нам максимальное значение в столбце id таблицы users_nick.

При использовании команды SELECT стоит помнить про команду UNION. Которая позволяет объединить два запроса SELECT в один.

sql union

В этом запросе мы сначала нашли пользователя с ником Pulse в одной таблице. А потом вывели все записи из из столбца status второй таблицы.

Некоторые нюансы языка SQL

Регистр символов.
Как ты мог заметить мы писали команды в верхнем регистре. На самом деле это не обязательно, язык SQL не чувствителен к регистру символов. А потому команды можно вводит как угодно: SELECT select Select — это всегда одна и та же команда. Потому верхний регистр в командах и нижний в названиях столбцов и таблиц используется просто для удобства. Но не забывай, что названия таблиц и столбцов к регистру чувствительны т.е. users_nick и USERS_NICK — это две разных таблицы.

Пробелы
Все лишние пробелы в SQL отбрасываются. Потому, например, одна инструкция может быть записана на нескольких строках. Можешь использовать пробелы там где тебе удобней, это принципиально не на что не влияет.

На этом наше знакомство с базами данных и SQL можно считать оконченным. Конечно же в этой статье я дал только самые базовые знания. Но их более-менее достаточно для понимания процессов происходящих с базами данных и самостоятельного более углубленного изучения SQL и всего что с ним связанно, в том числе изучения sql-инъекция. Чем, кстати, мы займемся в следующих статьях на эту тему, а потому не забывай возвращаться к нам.

photo

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

Для чего используют базы данных

Как понять, что для хранения и обработки конкретных данных нужна БД, а не привычный ресурс? Необходимо проанализировать сами сведения и цели их использования. Принимают во внимание 3 момента:

  1. Что и для чего надо сохранить.
  2. Как и в каком виде нужно содержать информацию.
  3. Как получить доступ к хранящимся данным.

К примеру, программист делает сайт, где каждый желающий пользователь имеет возможность вести дневник наблюдения за погодой в месте проживания. Ежедневно наблюдатель вносит показания в разработанную форму. Позже он отслеживает изменение погодных условий и сравнивает сведения за несколько лет. Задача программиста — сохранение этих фактов и их обработка для того, чтобы наблюдатель смог произвести необходимые расчеты и сделать соответствующие выводы.

В этих целях и используют БД, благодаря которым возможно не только просматривать данные в таблице, но и анализировать их.

Как управлять базой данных. Понятие СУБД

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

Большинство БД представляют собой таблицы, в столбцах и строках которых размещены сведения. Пользователи управляют последними, изменяют их, упорядочивают, обновляют и контролируют. В основном данные вносят и запрашивают с помощью SQL — языка структурированных запросов (об этом позже).

Задачи, которые ставят перед БД

Работа крупных корпораций основана на использовании большого массива информации. Соответственно, сотрудники должны получать оперативные ответы даже на очень сложные запросы. Администраторы БД, в свою очередь, повышают производительность используемого софта, чтобы:

  • эффективно управлять постоянно возрастающим объемом информации (от устройств, датчиков и других источников) и упорядочивать его;
  • обеспечивать безопасность сведений, минимизируя возможность их утечки и хакерских атак;
  • предоставлять пользователям легкий доступ к информации, чтобы они могли своевременно принимать важные решения;
  • управлять и обслуживать БД — регулярно мониторить их на наличие сбоев и ошибок, проводить профилактические работы, обновлять ПО и исправлять возникающие проблемы;
  • расширять возможности управления для развития бизнеса.

Чтобы своевременно решать все вышеперечисленные задачи, необходимо привлекать и обучать новых специалистов, т. к. БД становятся сложнее, а объемы рабочей информации возрастают.

Типы баз данных

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

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

Самые популярные реляционные СУБД

Для удобной работы с реляционными БД больше всего подойдут системы управления MySQL, Oracle и Microsoft SQL Server. Они строго отслеживают незыблемость структуры, представленной как комплекс таблиц с многочисленными полями и ячейками.

MySQL

Бесплатный софт от компании Oracle. Имеет открытый исходный код. Стабильно работает с любыми операционными системами, тщательно тестируя обновления перед тем, как внедрить их. Репликация базы на несколько узлов снижает нагрузку, при этом увеличивая доступность программы. При желании софт можно доработать самостоятельно либо найти в библиотеке готовые исправления.

Oracle

Oracle Database — частый выбор корпораций. Пользователям коммерческой версии часто предлагают грамотные обновления, круглосуточно оказывают техподдержку. Oracle работает с любыми ОС. Обладает серьезным преимуществом — способностью восстановить предыдущую версию БД.

Microsoft SQL Server

Microsoft SQL Server чаще других выбирают представители малого и среднего бизнеса. Работает только с ОС Windows и Linux. Обладает простым интерфейсом.

Наиболее распространенные нереляционные СУБД

Управлять нереляционными БД проще всего при помощи систем MongoDB, Apache Cassandra и Google Cloud BigTable. Это гибкие многофункциональные продукты, которые хранят всю информацию как единый целостный объект в одной базе. Сведения могут выглядеть и как одиночный объект, но при этом система обязательно обслужит все запросы.

MongoDB

MongoDB — бесплатная, но качественная программа, которую чаще других применяют для работы с NoSQL. Приложение позволяет изменять схемы данных во время работы, масштабироваться по горизонтали, обладает простым интерфейсом. Сегодня софт обладает высокой популярностью благодаря внедрению в решение глобальной облачной БД.

Apache Cassandra

Apache Cassandra — приложение, легко адаптируемое для решения любых задач, особенно масштабных проектов. Идентичность узлов позволяет быстро и удобно нарастить архитектуру БД. Программа гарантирует высокоскоростную запись, быстрое предоставление информации и безотказность действий. Восстановление и резервное копирование обеспечивает безопасность сведений.

Google Cloud BigTable

Google Cloud BigTable — разработка Google, быстрая и безотказная система. Репликация БД обеспечивает долговечность, стабильность и доступность приложения при сбоях. Особенности продукта позволяют отделить рабочую нагрузку, чтобы провести приоритетный анализ.

Сравнение SQL и NoSQL

Подавляющее большинство пользователей достаточно давно используют SQL-системы, доверяя их надежности. Наиболее распространена СУБД MySQL. Ниже приведем сравнение SQL и NoSQL, чтобы вы самостоятельно смогли сделать вывод и выбрать наилучший в вашей ситуации вариант.

SQLNoSQL
Работа с информациейСтрогое стандартизированное представление данныхСпособность и свобода обработки любого вида сведений
МасштабируемостьВертикальное масштабирование (увеличение объема системных ресурсов, затрачиваемых на работу с информацией)Кроме вертикального, применяет и горизонтальное масштабирование
Техническая поддержкаКачественное решение проблем благодаря продолжительной жизни системы и накопленного за счет этого опытаМолодость систем не позволяет оперативно исправлять возникающие ошибки и сбои
Формирование запросовНа основе стандартных методов с применением языка SQLКаждая NoSQL-СУБД использует специфическую технологию
Хранение сведений и доступ к нимДостаточно быстро, удобно и понятноЧасто необходимо детально изучить систему, чтобы облегчить работу, но NoSQL-СУБД продолжают стремительно совершенствоваться и постепенно завоевывают популярность
НадежностьВысокая, проверенная не одним годом существованияТоже достаточно высокая, но пока вызывает меньше доверия

Как видим, SQL-системы просты, понятны и надежны, но и NoSQL в этом плане не отстают от них и стремятся если не перегнать, то хотя бы догнать по популярности.

Заключение

Мы продолжаем цикл публикаций про ИТ-профессии. В этот раз мы поговорили с Марией, ведущим разработчиком баз данных в IBS. Она рассказала о том, кто такие БД-шники и почему выбрала именно это направление разработки; какими качествами должен обладать хороший специалист и как осваивать базы данных с нуля; а также о том, какие профессии могут быть лучше профессии программиста.

Разработчик баз данных — это специалист, который занимается их созданием, их отладкой, модернизацией, обслуживанием.

— Кто такой разработчик баз данных?

— Это человек, который любит все структурировать и находить взаимосвязи. Часто разработчиков баз данных называют data scientist. Но это просто модное слово, чаще нас называют БД-шниками.

— В какой момент у ребят, которые обучаются в университете, появляется разработка баз данных как направление?

— Она появляется далеко не у всех. В университетах обычно учат все-таки объектно-ориентированному программированию. А базы идут, по-моему, у нас только на физфаке и мехмате на младших курсах, и то как факультативный предмет.

— А как ты тогда пришла к базам данных?

— Моя мама работала физиком-теоретиком в институте механики сплошных сред. Когда я была в 11 классе, посмотрела, с чем она работает, тогда это были Interbase и Visual FoxPro. Взяла ее книжки, мне стало интересно. Познакомилась с FreeBSD, с *Nix системами. Сначала это было хобби, параллельное основной работе, а потом занялась базами данных всерьез.

— Чем конкретно занимаются разработчики баз данных? Корректно ли будет сказать, что они пишут код?

— Да, мы пишем код. Причем у каждой СУБД есть свои диалекты.

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

Второе более сложное, здесь берут существующую, запущенную в пром (промышленная эксплуатация) систему и ищут в ней слабые места. Затем переписывают код так, чтобы не сломался функционал и все работало быстро.

Третье направление — это DBA, администраторы и архитекторы баз данных. Они занимаются проектированием, настройкой и самих СУБД, и железа под них.

Я работаю во всех трех направлениях.

— И как это соотносится с backend, frontend и full stack разработкой?

— Это глубокий backend, база, основа. Потом идет backend, затем — frontend. Так из трех звеньев выстраивается домик. Бывает full stack разработка, когда специалист умеет писать все понемножку. Но база этого не прощает. И часто процессы после full stack разработки приходится переписывать. Потому что у специалистов разное мышление и разное отношение, как я понимаю.

— Три качества, которыми должен обладать хороший специалист.

— Назову четыре. Любопытство. Некоторая нудность. Желание видеть во всем закономерности и логику. И стремление выстраивать процессы. То есть ты видишь данные и должен научиться видеть в них логику.

— Можешь назвать преимущества своего направления?

Второе преимущество: рука об руку с базами данных идет машинное обучение и data science. А если у тебя есть еще и R или Python, то можно делать клевые проекты — пусть даже для себя. Хороших БД-шников мало.

— Да. Почему так?

— Все сейчас в основном изучают объектно-ориентированное программирование. Кроме того, высокоуровневый БД-шник не нужен маленьким конторам — у них нет таких задач. Особенно если ты занимаешься, например, хранилищами данных. Так что умение работать с базами данных это и плюс и минус одновременно. Найти работу БД-шнику сложнее.

— Почему PostgreSQL набирает такую популярность?

— Чем ты занимаешься на работе?

— Сейчас выполняю несколько ролей. Во-первых, я — технический архитектор на проекте. Во-вторых, разработчик БД. Занимаюсь переносом кода и архитектуры в приложение.

— Как вообще проходит твой день рабочий? Насколько плотно ты занята?

— Все зависит от музы. Муза пришла — я работаю. А если серьезно, обычно сажусь, включаю музыку и погружаюсь в работу. Но стараюсь делать перерывы и на обед, и кофе выпить. Если есть интересная задача, я ее и ночью думаю, в фоновом процессе. Решение оформляется, и я его воплощаю в жизнь.

— А какой стек технологий ты сейчас используешь?

— Сейчас у меня Postgres Pro Enterprise 10.3 и OpenJDK.

— Как ты считаешь, профессия программиста круче других профессий? Или ты выделяешь какие-то другие, более интересные сферы?

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

— Без каких знаний разработчикам баз данных не обойтись?

— Смотря на каком уровне они хотят работать. Если просто с хорошими постановками писать код или выполнять рутинную работу, то необходимо только знание баз данных и SQL. Если человек хочет углубиться, то нужна и математика, и статистика, и другие знания, например администрирование никсовых систем.

— А где эти знания можно получить?

— Искать самому в интернете, ездить на конференции, спрашивать на форумах, читать книжки.

— Как часто бываешь на профессиональных мероприятиях: конференциях, форумах? На какие реально стоит ходить?

— А как ты повышаешь свою квалификацию?

— Что можешь посоветовать тем, кто хочет стать разработчиками баз данных?

— Расскажи про свои хобби.

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

— А второе хобби?

— У меня есть собачка, и я занимаюсь с ней кинологическим спортом. И кошка сиамо-ориентальная, Сиаори.

— Распределенная команда или все в одном офисе?

— Это зависит от команды. Я и с теми работала, и с другими. И то и другое нормально. Все зависит от людей, они — главное.

— Рисование или полет в аэротрубе?

— Хорошо. Оупенспейс или кабинет?

— Кабинет. Не важно, сколько человек, главное — сидеть в уголочке где-нибудь, за стеночкой.

— Обучение с командировками в Москву или в родном городе?

— Смотря какое обучение. И то и другое, и можно без хлеба. Если есть крутой курс здесь, можно здесь. Если есть крутой курс там, можно и там.

Читайте также: