Содержание
СУБД расшифровывается как система управления базами данных. Проще всего представлять СУБД как таблицу в Excel. В ней есть и сами данные, расположенные в ячейках таблицы, и система, которая управляет этими значениями: поиск, различные математические функции, возможность перемещать строки и столбцы таблицы и сортировать их по определенным параметрам.
СУБД немного сложнее этого примера. У большинства программ есть своя база данных (БД) и система управления ей. Например, в базе данных компьютерной игры хранится информация о прогрессе вашего персонажа в игровом мире: сколько золота у вас в кошельке и какие квесты вы уже проходили. Основываясь на этих данных, игра дает вам возможность купить какой-либо игровой предмет или пройти новый квест, который открылся после прохождения предыдущего.
Для БД очень важно, чтобы она могла защитить свое содержимое от постороннего вмешательства. Например, чтобы злоумышленники не смогли зайти в таблицу, где служба доставки записывает данные о клиентах, и испортить там строки таблицы. В таком случае работа такой службы доставки будет надолго парализована.
Еще одна важная вещь для БД ― способность обрабатывать множество запросов одновременно. Например, если тысячи клиентов одного банка одновременно решат перевести деньги, то у неподготовленной к этой ситуации БД случится коллапс ― она не сможет обработать запросы и «зависнет». Клиенты останутся недовольны и начнут задумываться, а не сменить ли им банк.
Чтобы таких ситуаций не происходило, существуют распределенные облачные СУБД. По сути, это ряд серверов, где лежат несколько копий баз данных клиентов компании. Если нагрузка на один из серверов возрастает, часть запросов перебрасывается на соседний сервер, клиентам не приходится ждать ответа по несколько минут. Как пример можно привести облачный сервис для бизнеса «Рег.ру», который обеспечивает для своих клиентов высокую доступность, масштабируемость и производительность даже при пиковой загрузке.
Рассмотрим подробнее содержимое СУБД.
Управление базами данных невозможно без ядра. В него включают движок хранения данных ― систему, предназначенную для того, чтобы распределять нолики и единички по физическому носителю: флеш-памяти или жесткому диску. Формат хранения определяет, как данные структурируются и хранятся физически. Функция управления пространством отвечает за то, чтобы новая информация не записывалась поверх старой.
В ядре также есть собственная система поиска ― индексация, она нужна для того, чтобы находить информацию быстрее. Менеджер транзакций отвечает за то, чтобы все операции выполнялись последовательно, чтобы избежать ошибок записи и считывания. Менеджер блокировок управляет доступом к БД, чтобы предотвратить конфликты, когда несколько пользователей пытаются через интерфейс одновременно получить доступ к одной и той же ячейке информации.
C его помощью компьютер понимает, какая структура у БД. Где у нее расположены таблицы, а внутри них ― столбцы. Также он узнает, какие данные записаны в ячейки ― текст, число, видео или картинка. С помощью этого языка можно менять содержимое БД ― копировать, удалять, перемещать.
Чаще всего для манипулирования данными применяют язык SQL. Запросы на этом языке помогут найти необходимые данные, обновить их, скопировать или удалить.
Устанавливает иерархию пользователей. Администратор имеет полные права по работе с БД, специалист может добавлять разделы, а обычный пользователь только запрашивать информацию из нее.
Это инструменты, которые дают доступ к содержимому БД. Языки программирования разрешают использовать СУБД в приложениях. Инструменты администрирования позволяют конфигурировать и мониторить БД. А клиентские приложения помогают обычным пользователям с удобством обрабатывать большие объемы информации.
В СУБД есть инструменты для создания копий БД, чтобы их можно было восстановить в случае случайного удаления. Есть также инструменты для того, чтобы анализировать производительность и оптимизировать работу системы. Инструменты репликации обеспечивают синхронизацию данных, которые распределены по нескольким серверам.
СУБД можно разделить на две широкие категории: реляционные и нереляционные.
Реляционные нужны в программах, где во главе угла стоит строгость хранения данных, их целостность и поддержка транзакций.
Нереляционные выбирают для программ, где нужно обрабатывать много неструктурированных или полуструктурированных данных, при этом делать это быстро и с возможностью многократно увеличивать нагрузку на эту БД.
В такой БД вся информация хранится в виде таблиц, где легко найти явные соотношения: здесь у нас температура за год, а тут зарплаты сотрудников. Главный инструмент для работы с такой БД ― язык SQL (Structured Query Language), с помощью которого можно менять содержимое базы данных.
Реляционные СУБД поддерживают транзакции, это гарантирует, что операции с данными происходят атомарно, последовательно, изолированно и устойчиво (ACID).
Язык SQL ― стандарт для таких СУБД, это помогает легче переносить информацию из одного источника в другой.
В такой БД можно хранить данные различных модификаций, например пары ключ―значение, веб-документы в формате JSON и XML. Есть разновидности БД, где информация собрана в виде графиков, а также БД, где все значения собраны не в строчках, а в столбцах.
Такие СУБД используют, чтобы хранить неструктурированные или полуструктурированные объекты: тексты, картинки, видео или JSON. Часто они масштабируются горизонтально, что помогает распределять информацию по многим узлам.
Такие БД отличаются высокими показателями производительности: записать и считать данные из них можно гораздо быстрее, чем из классической базы данных. Еще одна отличительная черта ― это гибкость в моделировании, такие БД проще адаптировать к новым условиям.
Приведем несколько примеров разных видов СУБД и поговорим об их особенностях.
В СУБД есть и сами данные, и система, которая управляет этими значениями. Для БД очень важно, чтобы она могла защитить свое содержимое от постороннего вмешательства. Еще одна важная вещь для СУБД ― способность обрабатывать множество запросов одновременно.
Вся информация здесь представлена в виде таблиц, где легко найти явные соотношения. Реляционные СУБД поддерживают транзакции, это гарантирует, что операции с данными происходят атомарно, последовательно, изолированно и устойчиво (ACID). Язык SQL ― стандарт для таких СУБД, это помогает легче переносить информацию из одного источника в другой.
В такой БД можно хранить данные различных модификаций, например пары ключ―значение, веб-документы в формате JSON и XML. Такие СУБД используют, чтобы хранить неструктурированные или полуструктурированные объекты: тексты, картинки, видео или JSON. Они отличаются высокими показателями производительности: записать и считать данные из них можно гораздо быстрее, чем из классической базы данных.