Анализ данных  •  20 июля 2022  •  5 мин чтения

Как работают базы данных в IT: разбор на примерах

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

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

Таблицы помогают делать жизнь проще: выбрать из меню блюдо на обед или сгруппировать данные в квитанции для оплаты ЖКХ. Такие таблицы простые, их можно понять с помощью органов чувств без специальных инструментов. А когда количество строк и столбцов превышает сотни тысяч, обработать такую таблицу тяжело даже с помощью инструментов вроде Excel.

Поэтому программисты разбивают большие данные на несколько таблиц и организуют между ними связи. Так таблицы превращаются в базы данных.

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

Например, Моника и Фиби из «Друзей» решили открыть свою кофейню и размышляют, какие напитки будут продавать. Для начала они хотят проанализировать меню в других точках своего города. Затем составить базу данных из меню конкурентов, чтобы понять, какие напитки пользуются спросом и будут делать выручку, а какие — привлекать посетителей уникальностью: например, капучино с фисташками или матча-латте на банановом молоке.

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

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

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

  3. Объём информации в базах данных может быть огромным и не влиять на скорость работы. А в Google Таблицах уже после нескольких сотен строк или тысяч символов страница будет загружаться очень медленно.

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

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

Управлять базами данных с помощью языка запросов SQL и различных СУБД можно научиться на курсе «SQL для работы с данными и аналитики». Этот навык пригодится в работе аналитикам, маркетологам, продакт-менеджерам и экономистам. Даже без опыта в IT студенты за период от 1,5 месяцев осваивают современные инструменты для работы с базами данных.

Научитесь работать с SQL
Попробуйте себя в роли аналитика, даже если нет опыта работы с базами данных и html, и сделайте 2 бизнес-проекта по реальным требованиям заказчика за 1,5 месяца обучения. Начните с бесплатной вводной части курса «SQL для работы с данными и аналитики».

Свойства базы данных

Удобное использование баз данных основано на их свойствах:

1. Быстродействие

Современные БД проектируются по принципу «получить данные прямо сейчас», чтобы пользователь не ждал отклик на запрос.

2. Простота получения и обновления данных

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

3. Независимость структуры

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

4. Стандартизация

Аналогично свойству независимости структуры: при обновлении программного обеспечения или СУБД (сокр. от «системы управления базами данных») база данных не должна менять свою структуру или свойства.

5. Безопасность данных

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

6. Интегрированность

Данные должны быть логически связаны. И эти связи должны прослеживаться по структуре таблиц.

7. Многопользовательский доступ

Удалённо вносить изменения и получать информацию из БД могут сразу несколько человек с разных устройств.

Материал по теме:
Как устроен язык SQL и почему он так востребован

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

Чаще всего базы данных классифицируют в зависимости от того, как в них структурирована информация и как с ней взаимодействовать.
Иерархические
Простейшая структура, где записи, как ветви, отходят от «родителя». Информация связана по аналогии с папками на рабочем столе. У каждой записи есть физическая связь только с одной предыдущей, а отношение многих ко многим невозможно.

На примере базы данных для кофейни в виде иерархической структуры можно представить сорта кофе: Арабика (англ. Arabica), Робуста (англ. Robusta) и Либерика (англ. Liberica).

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

Можно построить граф с рецептами напитков, где связаны «Капучино» с «Эспрессо» и «Молоком», а «Эспрессо» — с «Кофейными зёрнами» и «Водой». «Латте» имеет связи с «Эспрессо», «Молоком» и «Молочной пеной».

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

Объект в ООП создаётся как отдельная сущность со своими свойствами и методами работы. И как только объект создан, его можно вызвать по «имени», или коду, а не разрабатывать заново.

Например, при разработке руки главного героя в компьютерной игре программист один раз создаёт объект «рука». И когда нужно запрограммировать движения, достаточно сказать на языке программирования: «рука, сожми кулак» или «рука, поднимись вверх».

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

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

В кофейне реляционные базы данных пригодились бы для описания рецептов, закупок и связей между ними. В таблице с поставщиками можно указать цены на один и тот же продукт у разных брендов. При выборе бренда данные будут автоматически попадать в таблицу «Закупка ингредиентов». Так можно будет настроить расчёт суммы всей закупки и себестоимости одного напитка. Каждый сотрудник сможет вывести данные по любому поставщику и обновить цены, если они изменятся.

Закупка ингредиентов

Ингредиент
Количество
Цена за ед., руб.
Код
Кофейные зёрна
50 кг
700
1
Молоко
10 л
50
2
Сахар
20 кг
50
3
Вода
200 л
10
4
...

Состав капучино

Код
Количество
Стоимость, руб.
1
10 г
7
2
100 мл
5
4
50 мл
0.5
...
Бренд-поставщик
Цена за ед., руб.
Стоимость доставки, руб.
Код
Обжарщик и обжарщица
700
300
1
Перемол
650
1000
1
Арабика-ночь
730
500
1
Молодо-молоко
46
100
2
Милый луг
50
0
2
...
Нереляционные (NoSQL)
Эту группу называют также NoSQL, потому что к таким базам данных нужны отличные от SQL-запросы.

● Базы данных «ключ-значение»

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

Пример нереляционных (NoSQL) БД
● Графовые базы данных

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

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

Графовые базы данных
● Колоночные базы данных

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

Например, в колоночном семействе «Десерты» будут строки «Печенье» и «Круассаны».

Колоночные базы данных
NewSQL базы данных
NewSQL совмещают реляционную модель, язык запросов SQL и распределённые горизонтально масштабируемые базы данных NoSQL. Этот тип появился на рубеже 2000-х и 2010-х годов как ответ на потребности рынка, которые существующие БД не могли удовлетворить. Так, SQL-базы не поддерживали масштабируемость на уровне NoSQL, а эти, в свою очередь, не отвечали стандартам точного выполнения оперативных транзакций ACID (англ. atomicity, consistency, isolation, durability — «атомарность, непротиворечивость, изолированность, долговечность»).

Для баз данных NewSQL характерны:

● реляционная модель и транзакционность,

● язык SQL для доступа к данным,

● горизонтальная масштабируемость,

● более быстрая производительность за счёт новых «движков».

Развитие типов баз данных не останавливается на NewSQL. Появляются новые гибридные модели (англ. multi-model databases), так как использование базы данных может решить разные задачи.

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

Примеры использования баз данных

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

Даже в небольшой точке питания вроде кофейни найдутся данные, которые нужно хранить, использовать и обновлять:

● Показания счётчиков

Коммерческое помещение, как и жилое, подключено к системам электро- и водоснабжения. Если счётчики автоматические, они сами передадут показания, управляющая компания назначит плату за услуги, и придёт счёт.

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

● Данные сотрудников

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

● База лояльных клиентов

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

● Налоги

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

● Заказы

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

● Сайты

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

Материалы по теме:
С чем работает аналитик данных: 10 популярных инструментов
Анализ больших данных: зачем он нужен и кто им занимается

Популярные системы управления базами данных

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

1. Oracle

Объектно-реляционная СУБД, созданная одноимённой компанией-лидером на рынке. Преимущества Oracle: быстрая установка и настройка, возможность расширять функционал, практичность и надёжность. Но лицензия стоит дорого, поэтому Oracle обычно используют крупные корпорации.

2. MySQL

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

3. Microsoft SQL Server

Оптимальная СУБД для операционных систем Windows, но совместима и с Linux. Легко интегрируется с другими продуктами Microsoft, удобна в использовании, но потребляет много ресурсов, а лицензия стоит дорого.

4. PostgreSQL

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

5. Apache Cassandra

В отличие от вышеназванных, Cassandra — нереляционная СУБД. Она разработана на языке Java и принадлежит фонду Apache Software Foundation. Система хранит данные по модели семейства столбцов и «ключ-значение», распределяет данные в несколько дата-центров и легко масштабируется при увеличении объёма информации.

6. Redis

NoSQL резидентная СУБД, которая использует модель «ключ-значение». Она написана на языках C и C++, а применяется для атомарных операций, например, записи и чтения быстро изменяющихся данных.

Управлять базами данных с помощью языка запросов SQL и различных СУБД можно научиться на курсе «SQL для работы с данными и аналитики». Этот навык пригодится в работе аналитикам, маркетологам, продакт-менеджерам и экономистам. Даже без опыта в IT студенты за период от 1,5 месяцев осваивают современные инструменты для работы с базами данных.

Главное о базах данных

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

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

  3. По структуре и способу связей основные базы данных делятся на типы: иерархические, сетевые, колоночные, реляционные, нереляционные и объектно-ориентированные.

  4. Чтобы управлять данными в базе, используют СУБД (систему управления базами данных). Каждому типу баз подходят свои СУБД.

Статью подготовили:

Александр Сушков
Яндекс Практикум
Автор курса «SQL для работы с данными и аналитики»
Анна Власова
Яндекс Практикум
Редактор в направлении анализа данных

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться 
Знакомство с IT: Бесплатный гид Практикума по профессиям
Thu Oct 12 2023 16:36:19 GMT+0300 (Moscow Standard Time)