Включите исполнение JavaScript в браузере, чтобы запустить приложение.

База данных: что это такое, типы БД и их назначение

4 сен 2024
Простыми словами рассказываем о том, что такое базы данных, об их назначении в работе с проектами. Читайте в нашей статье об отличиях баз данных от электронных таблиц. Типы баз данных, их свойства и функции: расскажем, какие базы данных применять для своих проектов.

База данных: что это такое, типы БД и их назначение

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

Разница между электронной таблицей и БД

Назначение баз данных

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

Популярные СУБД

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

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

Это хранилище взаимосвязанной информации в структурированном виде:

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

Элементарный аналог такого хранилища — таблица в Excel, Google Sheets, Яндекс.Документах, Access или другом приложении. Для примера посмотрим, как может выглядеть файл учета остатков на складе магазина матрасов.

Табличный файл состоит из двух смысловых частей:

  • столбцы — параметры, по которым нужно упорядочить данные; 
  • строки — переменные и расчетные величины, которыми наполняется файл в процессе ведения бизнеса.

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

Числовые величины попадают в файл разными способами:

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

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

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

Разница между электронной таблицей и БД

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

Объем и способы управления

Вернемся к примеру магазина матрасов. Табличный файл постоянно наполняется новыми записями:

  • обновляются переменные в столбце «Продано»;
  • пересчитывается количество товара;
  • меняется ассортимент.

С ростом объема информации становится всё сложнее работать с файлом. В большой excel-таблице даже простой поиск по текстовому фрагменту может занять несколько минут или привести к зависанию приложения. Фильтровать, сортировать и обрабатывать информацию вручную долго и неэффективно.

Для полноценной работы с динамично меняющимися big data нужны автоматизированные инструменты — например, скрипты на SQL или других языках программирования. Несколько скриптов можно объединить в программу, с помощью которой удобнее наполнять хранилище новыми переменными, упорядочивать, удалять или извлекать записи для использования в других приложениях. Такая программа называется системой управления базой данных, или кратко — СУБД.

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

Возможности многопользовательского доступа

Excel, Яндекс.Документы и другие подобные приложения хорошо подходят для однопользовательского режима. Менеджер открывает файл, вносит и сохраняет изменения, после чего с файлом может работать другой пользователь. Если с таблицей работают несколько сотрудников и одновременно меняют содержимое одной и той же ячейки, возникает конфликт версий. При синхронизации версий на нескольких компьютерах значения, внесенные последним сотрудником, запишутся поверх предыдущих изменений.

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

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

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

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

Назначение баз данных

Датабазы используются во всех сферах и отраслях:

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

Главная функция БД — хранить большие объемы данных и предоставлять к ним доступ в режиме реального времени. Операции, которые можно выполнять в БД:

  • внесение новых элементов;
  • изменение ранее сохраненных записей;
  • поиск элементов по заданным параметрам;
  • удаление элементов;
  • настройка ограничений доступа.

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

Другая возможность — автоматическая проверка вносимых записей для защиты от ошибок, опечаток, неверного формата. Валидация, или проверка данных, позволяет наполнять хранилище только точными и полезными элементами. Например, для параметра «email» система может проверять синтаксис и формат: указан ли домен, существует ли указанный домен, нет ли в адресе лишних пробелов и недопустимых символов. Это помогает формировать базу реальных email для маркетинговых рассылок, отправки уведомлений и переписки с клиентами.

С датабазой могут «общаться» не только пользователи, но и программы. Допустим, покупатель заходит на сайт интернет-магазина, чтобы узнать статус выполнения своего заказа. Роль консультанта выполняет чат-бот. Процесс может выглядеть следующим образом:

  • покупатель отправляет в чат номер заказа;
  • чат-бот запрашивает в базе актуальное состояние заказа;
  • в ответ приходит параметр, показывающий текущий статус;
  • чат-бот формулирует ответ и отправляет в чат текстовое сообщение: например, «Сборка», «Отправка», «Ожидание оплаты».

Кроме виртуальных помощников с датабазой могут взаимодействовать CRM, ERP, онлайн-сервисы и системы учета. Можно настроить автоматический экспорт и импорт записей для обмена со сторонними приложениями, формирование отчетов, заполнение форм и других задач.

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

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

По организации хранилища

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

  • считать себестоимость и маржу;
  • считать процент возврата;
  • отмечать предзаказ и непроданные, но забронированные товары.

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

  • остатки на складах;
  • показатели продаж;
  • детали по каждому клиенту и заказу.

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

  • записи хранятся в табличной форме;
  • датабаза состоит из нескольких таблиц;
  • таблицы связаны внешним ключом.

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

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

По назначению

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

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

  • интернет-порталы с текстами федеральных законов;
  • сборники профессиональных нормативных документов, регламентов, ГОСТов;
  • сервисы по поиску лекарственных препаратов в аптеках;
  • цифровые архивы фотографий, статей, журналов;
  • корпоративные Wiki для использования внутри компании: например, для обучения новичков, развития кадров, проверки знаний сотрудников.

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

  • системы кадрового учета со списками сотрудников, кадровой документацией, зарплатными ведомостями;
  • CRM с записями о клиентах и заказах;
  • ERP для координации производственных процессов;
  • каталоги товаров для интернет-магазинов;
  • бухгалтерские программы.

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

По степени доступности

Общедоступные БД открыты широкому кругу пользователей, часто на бесплатной основе. При этом пользовательские возможности могут быть ограничены:

  • просматривать записи могут все пользователи через онлайн-интерфейс;
  • добавлять, удалять и редактировать могут только зарегистрированные пользователи.

По такому принципу работают порталы информационного назначения, агрегаторы товаров и услуг:

  • сервисы подбора банковских и кредитных продуктов;
  • сайты поиска жилья для аренды или покупки;
  • маркетплейсы;
  • справочные ресурсы формата Википедии.

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

По топологии хранения

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

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

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

Популярные СУБД

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

MySQL

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

  • производительность;
  • универсальность;
  • простота установки, настройки и использования.

Система быстро работает даже при больших объемах хранилища и многопользовательском доступе. MySQL совместима со множеством табличных форматов, поддерживает Windows, Linux, macOS, eComStation, UnixWare и многие другие ОС. Вместо командной строки для выполнения операций можно использовать графический интерфейс, который легко освоить за несколько дней. Администрировать датабазу можно без знания языка SQL.

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

Система распространяется под открытой лицензией GNU GPL. Это означает свободное использование исходного кода, включая разработки других пользователей на основе СУБД. При этом нужно учитывать, что ваши собственные наработки также становятся достоянием общественности. Из-за этого MySQL подходит не всем проектам: например, крупным разработчикам ПО и поставщикам ИT-решений работать по GNU GPL невыгодно.

PostgreSQL

СУБД с открытым исходным кодом и свободным доступом. После скачивания и установки на устройство работать с PostgreSQL можно бесплатно. Основной язык команд — SQL, но его можно сменить на Python, Java или Perl. Система совместима с Linux, macOS, Windows.

Лимит по количеству записей отсутствует, объем ограничен только мощностью сервера, компьютера или параметрами облака при использовании виртуального хранилища.

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

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

Postgres Pro

Российская open source система объектно-реляционного типа. Postgres Pro создана на основе PostgreSQL, но отличается большей производительностью и функциональностью.

Например, запас устойчивости Postgres Pro выше за счет 64-битного счетчика транзакций (в PostgreSQL используется 32-разрядный). Механизм резервного копирования на уровне блоков делает процесс создания бэкапов быстрее и экономит место на диске. Поддержка автономных транзакций позволяет отменять изменения текущей транзакции выборочно.

Система адаптирована к работе с 1C, имеет сертификат соответствия ФСТЭК и подробную документацию на русском языке. Пользователи могут расширять Postgres Pro, добавляя новые функции, операторы и методы индексирования.

MSSQL

Microsoft SQL Server — система реляционного типа, совместимая с Windows и Linux. MSSQL работает с командами на специальном языке программирования — Transact-SQL. С помощью T-SQL можно управлять записями в датабазе, а также прописать хранимые процедуры — программы для автоматических действий с записями прямо на сервере.

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

MongoDB

Нереляционная NoSQL-система с документоориентированной структурой. В отличие от табличных форматов со строками и столбцами, хранилище MongoDB представляет собой коллекцию файлов со значениями и ключами. Для создания команд используется язык с собственным синтаксисом на основе JSON. 

Для поддержания высокой производительности, надежности и скорости поиска записей в MongoDB реализованы следующие механизмы:

  • репликация между несколькими узлами;
  • собственная технология GridFS для сохранения записей большого объема;
  • индексация;
  • мгновенный поиск по диапазонным запросам;
  • балансировщик нагрузки.

MongoDB разработана на C++, это кроссплатформенная система, интегрируемая с Windows, Linux и другими ОС.

OrientDB

Нереляционная open source система гибридного многомодельного типа. Если MongoDB работает с документами, то OrientDB поддерживает модели графов, объектов и документов. Это дает еще больше гибкости, масштабируемости и производительности.

Apache Kafka

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

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

ClickHouse

Столбцовая система управления БД от Яндекса. Особенность ClickHouse — организация порядка хранения записей. Если в традиционных системах информация располагается и обрабатывается построчно, то в ClickHouse — по колонкам. Такая структура хорошо подходит для OLAP-сценариев интерактивной аналитической обработки, изначально решение создавалось для обеспечения веб-аналитики в Яндекс.Метрике.

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

Apache AirFlow

AirFlow — это ETL-фреймворк с открытым исходным кодом. Инструмент используют в аналитике для обработки исходной информации по принципу Extract Transform Load («извлечение, трансформация, загрузка»).

Фреймворк извлекает записи из датасета, преобразовывает их по заданным правилам и предоставляет пользователю в нужном виде: например, выводит в интерфейс в форме отчёта, готовит для машинного обучения, передает массив внешнему серверу. AirFlow можно интегрировать с ClickHouse, PostgreSQLи другими СУБД.

Greenplum

Столбцовая массивно-параллельная СУБД на основе PostgreSQL. Как и ClickHouse, система хорошо подходит для решения аналитических задач при работе с большими датасетами. Объем хранения может достигать нескольких сотен терабайт.

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

Redis

Нереляционная open source система. Записи хранятся в виде структур, например, словарей Data Dictionary, в формате «ключ — значение».

Особенность Redis — сверхвысокая скорость ответа за счет организации хранилища в оперативной памяти (in-memory). Для защиты от потери информации реализована встроенная асинхронная репликация. Подробнее о преимуществах и возможностях использования системы мы рассказали в статье «Что такое Redis: как начать с ним работать».

OpenSearch

Программный комплекс поисковых и аналитических инструментов от Amazon. Это open source решение с распространением под лицензией Apache 2.0.

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