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

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

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

Кто пользуется СУБД

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

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

  • Администраторы баз данных — если продукт сложный, то для обслуживания базы, как правило, необходим собственный администратор. Такие сотрудники обычно специализируются на конкретной СУБД.

  • Другие IT-специалисты — в разных ситуациях работать с БД могут аналитики, DevOps-инженеры или специалисты по Big Data.

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

  • Создание и хранение базы данных нужного типа — он зависит от того, к какому виду относится система.

  • Управление базой — сюда относится создание новых записей, модификация существующих или удаление данных, которые уже не нужны.

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

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

  • Обеспечение безопасности и целостности данных, чтобы какая-либо проблема не привела к потере информации из базы.

  • Защита от возможных атак и сбоев.

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

Как информация хранится в БД

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

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

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

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

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

Если база данных — это хранилище, то СУБД — комплекс средств для обслуживания хранилища. СУБД имеет сложное устройство.

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

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

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

Виды СУБД по способу доступа

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

Системы по-разному обеспечивают хранение и доступ к данным. Существуют три вида архитектуры.

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

Клиент-серверная архитектура подразумевает, что прямой доступ к базе есть только у сервера — он обрабатывает обращения клиентов. Сами клиенты не обязаны иметь специальное ПО для взаимодействия с базами данных. Так для доступа к сайту не нужно устанавливать программы, которые будут обрабатывать запросы, — все сделает сервер, жестко отделенный от клиентской части.

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

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

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

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

Что такое NoSQL-системы

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

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

Вместо SQL применяются внутренние языки запросов, часто основанные на тех или иных языках программирования. Иногда они схожи с SQL, а иногда вместо внутреннего языка система использует JavaScript или иной ЯП.

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

  • Oracle Database — объектно-реляционная клиент-серверная СУБД, одна из первых и самых популярных в мире. Платная, сложная, подходит для больших проектов.

  • PostgreSQL — объектно-реляционная СУБД клиент-серверного типа, которую иногда называют бесплатным аналогом Oracle. Масштабная, рассчитана на высоконагруженные проекты, содержит огромное количество функций и распространяется бесплатно.

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

  • MongoDB — документно-ориентированная NoSQL-СУБД, где данные хранятся в JSON-подобных файлах. Тоже бесплатная, а внутренний язык запросов основан на JavaScript.

  • SQLite — маленькая и легкая встраиваемая СУБД, которая активно применяется в локальных проектах.

В рамках дисциплины будут рассмотрены установка и настройка СУБД MySQL и MongoDB. С остальными вы можете познакомиться самостоятельно или в рамках лабораторных работ.

Last updated