СУБД — это аббревиатура от «Система управления базами данных» и обозначает программное обеспечение, используемое для создания, изменения, администрирования баз данных. Базами данных, в свою очередь, называют хранилище информации, относящееся к сайту или любому приложению. Запросы к базам для управления и поиска нужной информации пишут на разных языках (обычно это SQL, язык структурированных запросов).
Сиситемы используют бэкенд-разработчики, которым нужно обращаться к данным для сайта или приложения, разработчики локальных приложений, администраторы БД и прочие IT-специалисты.
Для чего нужны СУБД
Мы разобрали, что же это такое, а теперь переходим к тому, для чего эти системы используют:
- Создание базы нужного типа, а также управление ей, включая создание новых записей, изменение текущих, удаление ненужной информации.
- Получение информации из базы в удобной форме. Информация удобно структурируется и хранятся в определённом формате. За счёт того, что запросы к системам фильтруются, пользователь получает только нужную ему информацию.
- Администрирование и настройка прав доступа к базе. В зависимости от наличия прав, пользователи могут получать доступ к документам разной степени конфиденциальности.
- Возможность обеспечить безопасность и сохранность информации.
- Защита от взлома, сбоев.
- Контроль изменений, бэкапы, восстановление базы при необходимости.
Основные виды
СУБД могут классифицироваться по тому, в каком виде в них представлена информация, по методам управления, а также языкам, на которых отправляются запросы. Кроме того можно разделить платные и бесплатные системы, СУБД для локального или распределенного использования, а также по размеру проектов, в которых они используются (для крупных, средних или небольших).
По структуре и организации данных
Реляционные. Данные представляются в форме таблиц, которые связаны сквозными параметрами. Каждая строка имеет уникальный идентификатор (ключ), который позволяет без труда находить нужную информацию.
Реляционная структура обычно используется работы с небольшими транзакциями, которые поступают большим потоком. Обычно время отклика в этом случае минимально и есть возможность отменить любые изменения.
Ключ-значение. Это наиболее простой тип хранения информации. Здесь применяют уникальный идентификатор, состоящий из 2-х частей (ключ и значение). Идентификатор присваивается каждой единице данных.
СУБД представляет собой таблицу с уникальным ключом и связанным с ним значением. Обычно такие системы применяются для кэширования благодаря быстроте работы. Кроме того, системы ключ-значение подходят для баз с простыми структурами и возможностью быстрого доступа.
Документные. Из названия понятно, что сведения хранятся в форме документов со структурированным текстом и специальным синтаксисом. Здесь могут быть архивы, каталоги, логи сайтов и т.п.
Документные модели применяют в том случае, если данные нужно хранить в виде сущности, но при этом они имеют различную структуру. Например, такое актуально для микросервисов.
Графовые. Они работают с базами, в которых единицами информации становятся взаимосвязи, подобные тем, что существуют между родственниками. Графовые системы широко применяются в соцсетях и других сервисах, где пользователи делятся по увлечениям или степени родства.
Колоночные. Они напоминают реляционные, но данные хранятся в виде колонок, которые приравниваются к самостоятельной таблице. Поэтому чтение происходит сразу же из нужного столбца, что даёт значительное преимущество по скорости. Колоночные СУБД способны эффективно выполнять сложные аналитические запросы даже при больших объёмах данных.
По месту хранения баз данных
Локальные. Все части системы располагаются на одном сервере. Обычно сервер находится внутри компании.
Распределённые. здесь части системы находятся на разных серверах, включая облачные.
В реальности зачастую СУБД поддерживают оба варианта для большей безопасности.
По типу хранения и обработки данных и запросов
Клиент-серверные. СУБД и базы хранятся на одном сервере, к которому пользователи обращаются с запросами. Сделать это можно с любого ПО без установки специальных программ. Данная архитектура подразумевает, что напрямую получить доступ к базе может только сервер, который, в свою очередь, занимается обработкой обращений клиентов. Обычно клиент-серверный подход используется в интернет-магазинах, и такие базы отличаются высокой доступностью.
Файл-серверные. Здесь базы находятся на одном файл-сервере, в то время как СУБД располагаются на устройствах, с которых совершается запрос. То есть для получения доступа к базам, пользователь должен иметь на своём компьютере настроенную систему управления. Такой вариант обычно применим для локальных корпоративных сервисов, таких, как система CRM.
Встраиваемые. Локальные СУБД, которые встраиваются в приложение как отдельный модуль и используются для управления данными только внутри него. Используются такие системы при разработке локальных приложений и чаще всего мало весят.
По используемому языку
SQL СУБД. SQL является самым популярным, универсальным языком для работы с системами баз данных.
NoSQL. Это нереляционные СУБД, поддерживающие другие языки запросов, базирующиеся на языках программирования, таких как JavaScript. Это актуально при работе с большими данными и архивами с многочисленными связями.