Что такое СУБД и какие они бывают

Обновлено 02 августа 2024, 10:01

Зачем нужны системы управления базами данных (СУБД) и как они используются в IT-сфере и бизнесе

Shutterstock
Фото: Shutterstock

Что такое СУБД

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

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

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

Еще одна важная вещь для БД ― способность обрабатывать множество запросов одновременно. Например, если тысячи клиентов одного банка одновременно решат перевести деньги, то у неподготовленной к этой ситуации БД случится коллапс ― она не сможет обработать запросы и «зависнет». Клиенты останутся недовольны и начнут задумываться, а не сменить ли им банк.

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

Для чего нужны СУБД

  • Хранение данных. Вся информация собрана в одной БД, а не разбросана по файлам на разных компьютерах.
  • Простой доступ. Доступ из любой точки мира через интернет при наличии пароля от базы данных.
  • Легкость управления данными. Можно структурировать данные в зависимости от того, какую задачу вы выполняете: отсортировать клиентов по времени сделки или выбрать самые жаркие дни в году по температуре.
  • Целостность данных. Если на одном компьютере сломается жесткий диск, это никак не отразится на информации, расположенной на сервере.
  • Безопасность данных. Те, у кого нет пароля от СУБД, не получат к ней доступ и смогут внести в нее новые данные или удалить существующие.
  • Возможность восстановить удаленные данные. Если часть данных будет случайно удалена, ее можно будет восстановить из резервной копии.
  • Возможность совместного использования. Коллеги могут одновременно вносить информацию в БД и не влиять на работу друг друга.
  • Фактура для аналитики и отчетности. Если будет необходимо создать отчет или график, можно использовать для этого содержимое БД.

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

Рассмотрим подробнее содержимое СУБД.

1. Ядро базы данных

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

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

2. Язык определения данных (DDL)

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

3. Язык манипуляции данными (DML)

Чаще всего для манипулирования данными применяют язык SQL. Запросы на этом языке помогут найти необходимые данные, обновить их, скопировать или удалить.

4. Язык управления данными (DCL)

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

5. Средства доступа к данным

Это инструменты, которые дают доступ к содержимому БД. Языки программирования разрешают использовать СУБД в приложениях. Инструменты администрирования позволяют конфигурировать и мониторить БД. А клиентские приложения помогают обычным пользователям с удобством обрабатывать большие объемы информации.

6. Дополнительные компоненты

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

Основные виды СУБД

СУБД можно разделить на две широкие категории: реляционные и нереляционные.

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

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

1. Реляционные СУБД (RDBMS — Relational Database Management Systems)

В такой БД вся информация хранится в виде таблиц, где легко найти явные соотношения: здесь у нас температура за год, а тут зарплаты сотрудников. Главный инструмент для работы с такой БД ― язык SQL (Structured Query Language), с помощью которого можно менять содержимое базы данных.

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

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

2. Нереляционные СУБД (NoSQL — Not Only SQL)

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

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

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

Примеры современных СУБД

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

Реляционные СУБД

  • MySQL: Открытая СУБД, которая нашла применение в множестве веб-проектов, она легкая в использовании и настройке.
  • PostgreSQL: Открытая, мощная и надежная СУБД с богатой функциональностью. Известна тем, что поддерживает SQL-стандарт и хорошо расширяется.
  • Oracle Database: Проприетарная, высокопроизводительная RDBMS, известная своей масштабируемостью и надежностью. Широко применяется в корпоративных приложениях.
  • Microsoft SQL Server: Проприетарная RDBMS, разработанная корпорацией Microsoft. Хорошо интегрируется с продуктами Microsoft, такими как Windows и NET.
  • SQLite: Встроенная БД, которая не требует отдельного сервера. Это настоящая находка для тех, кто пишет мобильное приложение или программу для устройства с ограниченными ресурсами.

Нереляционные СУБД (NoSQL)

  • MongoDB: Предназначена для хранения документов в формате JSON. Известна гибкостью, масштабируемостью и тем, что выдерживает высокие нагрузки.
  • Cassandra: Колонно-ориентированная БД с высокой пропускной способностью.
  • Redis: БД, использующая in-memory хранилище. Известна тем, что хорошо справляется с нагрузками. Ее часто применяют для кэширования сессий и очередей сообщений.
  • Neo4j: БД, которая хранит данные в виде графиков. Ее выбирают для анализа связей между разными данными, например в социальных сетях или системах рекомендаций.
  • Couchbase: Документ-ориентированная NoSQL-СУБД, которая также поддерживает кэширование, поиск и полнотекстовый поиск.

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

  • Amazon DynamoDB: Полностью управляемая БД от Amazon Web Services.
  • Firebase: Популярный сервис, который используют разработчики приложений.
  • Apache HBase: Колонно-ориентированная БД, основанная на Hadoop. Ее используют, когда данных становится слишком много.

Что нужно запомнить о СУБД

В СУБД есть и сами данные, и система, которая управляет этими значениями. Для БД очень важно, чтобы она могла защитить свое содержимое от постороннего вмешательства. Еще одна важная вещь для СУБД ― способность обрабатывать множество запросов одновременно.

СУБД позволяют:

  • Хранить всю информацию в одном месте, а не на разных компьютерах.
  • Получать доступ из любой точки мира.
  • Легко структурировать данные.
  • Поддерживать целостность данных.
  • Защищать информацию от злоумышленников.
  • Восстанавливать утраченные данные.
  • Использовать данные совместно с коллегами.

СУБД состоят из:

  • Ядра, системы поиска, менеджера транзакций и менеджера блокировок.
  • Языка определения данных (DDL).
  • Языка манипуляции данными (DML).
  • Языка управления данными (DCL).
  • Средств доступа к данным.
  • Инструментов для бэкапа и анализа работы БД.

СУБД бывают реляционные и нереляционные

  • Реляционные СУБД

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

  • Нереляционные СУБД

В такой БД можно хранить данные различных модификаций, например пары ключ―значение, веб-документы в формате JSON и XML. Такие СУБД используют, чтобы хранить неструктурированные или полуструктурированные объекты: тексты, картинки, видео или JSON. Они отличаются высокими показателями производительности: записать и считать данные из них можно гораздо быстрее, чем из классической базы данных.

Поделиться